mirror of
https://github.com/smogon/pokemon-showdown.git
synced 2026-05-05 21:17:43 -05:00
Gen 5: Random Battle updates
- Various movepool changes - Prevent Trick Room + Haze Cofagrigus - Prevent Extreme Speed + Roost Dragonite - Prevent Head Smash + Roost Archeops - Give Bouffalant Sap Sipper - Give Rain Dance and Sunny Day Pokemon Life Orb - Remove Rocky Helmet Ferrothorn - Improve Leftovers, Life Orb, and Focus Sash selection - Fix Unown's level
This commit is contained in:
parent
bd6ad76a9c
commit
7ab649a666
|
|
@ -202,7 +202,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = {
|
|||
tier: "LC",
|
||||
},
|
||||
venomoth: {
|
||||
randomBattleMoves: ["batonpass", "bugbuzz", "quiverdance", "roost", "sleeppowder", "sludgebomb", "substitute"],
|
||||
randomBattleMoves: ["bugbuzz", "quiverdance", "roost", "sleeppowder", "substitute"],
|
||||
tier: "RUBL",
|
||||
doublesTier: "DUU",
|
||||
},
|
||||
|
|
@ -210,7 +210,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = {
|
|||
tier: "LC",
|
||||
},
|
||||
dugtrio: {
|
||||
randomBattleMoves: ["earthquake", "reversal", "stealthrock", "stoneedge", "substitute", "suckerpunch"],
|
||||
randomBattleMoves: ["aerialace", "earthquake", "memento", "stealthrock", "stoneedge", "suckerpunch"],
|
||||
tier: "(OU)",
|
||||
doublesTier: "DUU",
|
||||
},
|
||||
|
|
@ -349,7 +349,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = {
|
|||
doublesTier: "DUU",
|
||||
},
|
||||
farfetchd: {
|
||||
randomBattleMoves: ["bravebird", "leafblade", "return", "roost", "swordsdance"],
|
||||
randomBattleMoves: ["batonpass", "bravebird", "leafblade", "quickattack", "swordsdance"],
|
||||
tier: "(NU)",
|
||||
doublesTier: "DUU",
|
||||
},
|
||||
|
|
@ -393,7 +393,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = {
|
|||
doublesTier: "NFE",
|
||||
},
|
||||
gengar: {
|
||||
randomBattleMoves: ["disable", "focusblast", "painsplit", "shadowball", "sludgebomb", "substitute", "thunderbolt", "trick"],
|
||||
randomBattleMoves: ["focusblast", "shadowball", "sludgebomb", "substitute", "thunderbolt", "trick", "willowisp"],
|
||||
tier: "OU",
|
||||
doublesTier: "DOU",
|
||||
},
|
||||
|
|
@ -526,7 +526,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = {
|
|||
tier: "NFE",
|
||||
},
|
||||
kingdra: {
|
||||
randomBattleMoves: ["dracometeor", "dragondance", "hiddenpowerelectric", "hydropump", "icebeam", "outrage", "raindance", "substitute", "waterfall"],
|
||||
randomBattleMoves: ["dracometeor", "dragondance", "hiddenpowerelectric", "hydropump", "icebeam", "outrage", "raindance", "waterfall"],
|
||||
tier: "UU",
|
||||
doublesTier: "DOU",
|
||||
},
|
||||
|
|
@ -555,7 +555,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = {
|
|||
doublesTier: "DUU",
|
||||
},
|
||||
scyther: {
|
||||
randomBattleMoves: ["aerialace", "batonpass", "brickbreak", "bugbite", "quickattack", "roost", "swordsdance", "uturn"],
|
||||
randomBattleMoves: ["aerialace", "batonpass", "brickbreak", "bugbite", "quickattack", "roost", "swordsdance"],
|
||||
tier: "RU",
|
||||
doublesTier: "NFE",
|
||||
},
|
||||
|
|
@ -699,7 +699,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = {
|
|||
tier: "LC",
|
||||
},
|
||||
snorlax: {
|
||||
randomBattleMoves: ["bodyslam", "crunch", "curse", "earthquake", "firepunch", "pursuit", "rest", "selfdestruct"],
|
||||
randomBattleMoves: ["bodyslam", "crunch", "curse", "earthquake", "firepunch", "pursuit", "rest"],
|
||||
tier: "UU",
|
||||
doublesTier: "DUU",
|
||||
},
|
||||
|
|
@ -731,7 +731,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = {
|
|||
doublesTier: "DOU",
|
||||
},
|
||||
mewtwo: {
|
||||
randomBattleMoves: ["aurasphere", "calmmind", "fireblast", "icebeam", "psystrike", "recover", "taunt", "willowisp"],
|
||||
randomBattleMoves: ["aurasphere", "calmmind", "fireblast", "icebeam", "psystrike", "recover", "taunt"],
|
||||
tier: "Uber",
|
||||
doublesTier: "DUber",
|
||||
},
|
||||
|
|
@ -1145,7 +1145,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = {
|
|||
doublesTier: "DUU",
|
||||
},
|
||||
blaziken: {
|
||||
randomBattleMoves: ["batonpass", "flareblitz", "highjumpkick", "protect", "stoneedge", "swordsdance"],
|
||||
randomBattleMoves: ["flareblitz", "highjumpkick", "protect", "stoneedge", "swordsdance"],
|
||||
tier: "Uber",
|
||||
doublesTier: "DOU",
|
||||
},
|
||||
|
|
@ -1253,7 +1253,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = {
|
|||
tier: "LC",
|
||||
},
|
||||
masquerain: {
|
||||
randomBattleMoves: ["airslash", "batonpass", "bugbuzz", "quiverdance", "roost"],
|
||||
randomBattleMoves: ["airslash", "bugbuzz", "hydropump", "quiverdance", "roost"],
|
||||
tier: "(NU)",
|
||||
doublesTier: "DUU",
|
||||
},
|
||||
|
|
@ -1261,7 +1261,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = {
|
|||
tier: "LC",
|
||||
},
|
||||
breloom: {
|
||||
randomBattleMoves: ["bulletseed", "focuspunch", "leechseed", "lowsweep", "machpunch", "spore", "stoneedge", "substitute", "swordsdance"],
|
||||
randomBattleMoves: ["bulletseed", "focuspunch", "machpunch", "spore", "stoneedge", "substitute", "swordsdance"],
|
||||
tier: "OU",
|
||||
doublesTier: "DOU",
|
||||
},
|
||||
|
|
@ -1281,7 +1281,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = {
|
|||
tier: "LC",
|
||||
},
|
||||
ninjask: {
|
||||
randomBattleMoves: ["batonpass", "protect", "substitute", "swordsdance", "xscissor"],
|
||||
randomBattleMoves: ["protect", "substitute", "swordsdance", "xscissor"],
|
||||
tier: "NU",
|
||||
doublesTier: "DUU",
|
||||
},
|
||||
|
|
@ -1567,7 +1567,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = {
|
|||
tier: "LC",
|
||||
},
|
||||
dusclops: {
|
||||
randomBattleMoves: ["curse", "nightshade", "rest", "willowisp"],
|
||||
randomBattleMoves: ["nightshade", "rest", "sleeptalk", "willowisp"],
|
||||
tier: "UU",
|
||||
doublesTier: "NFE",
|
||||
},
|
||||
|
|
@ -1710,7 +1710,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = {
|
|||
doublesTier: "DUber",
|
||||
},
|
||||
deoxys: {
|
||||
randomBattleMoves: ["hiddenpowerfire", "icebeam", "lightscreen", "psychoboost", "reflect", "spikes", "stealthrock"],
|
||||
randomBattleMoves: ["hiddenpowerfire", "icebeam", "lightscreen", "psychoboost", "reflect", "stealthrock"],
|
||||
tier: "Uber",
|
||||
doublesTier: "DUU",
|
||||
},
|
||||
|
|
@ -1804,7 +1804,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = {
|
|||
tier: "LC",
|
||||
},
|
||||
rampardos: {
|
||||
randomBattleMoves: ["crunch", "earthquake", "firepunch", "headsmash", "rockpolish", "rockslide", "superpower"],
|
||||
randomBattleMoves: ["crunch", "earthquake", "firepunch", "headsmash", "rockpolish", "superpower"],
|
||||
tier: "(NU)",
|
||||
doublesTier: "DUU",
|
||||
},
|
||||
|
|
@ -1960,7 +1960,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = {
|
|||
tier: "LC",
|
||||
},
|
||||
drapion: {
|
||||
randomBattleMoves: ["aquatail", "crunch", "earthquake", "poisonjab", "pursuit", "swordsdance", "taunt", "toxicspikes", "whirlwind"],
|
||||
randomBattleMoves: ["aquatail", "crunch", "earthquake", "poisonjab", "pursuit", "swordsdance", "taunt", "toxicspikes"],
|
||||
tier: "RU",
|
||||
doublesTier: "DUU",
|
||||
},
|
||||
|
|
@ -2049,7 +2049,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = {
|
|||
doublesTier: "DUber",
|
||||
},
|
||||
heatran: {
|
||||
randomBattleMoves: ["earthpower", "fireblast", "flashcannon", "hiddenpowerice", "lavaplume", "protect", "roar", "substitute", "stealthrock", "toxic"],
|
||||
randomBattleMoves: ["earthpower", "fireblast", "flashcannon", "hiddenpowerice", "lavaplume", "protect", "roar", "stealthrock", "toxic"],
|
||||
tier: "OU",
|
||||
doublesTier: "DOU",
|
||||
},
|
||||
|
|
@ -2358,7 +2358,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = {
|
|||
tier: "LC",
|
||||
},
|
||||
whimsicott: {
|
||||
randomBattleMoves: ["encore", "leechseed", "substitute", "stunspore", "taunt", "uturn"],
|
||||
randomBattleMoves: ["encore", "gigadrain", "leechseed", "stunspore", "taunt", "uturn"],
|
||||
tier: "RU",
|
||||
doublesTier: "DOU",
|
||||
},
|
||||
|
|
@ -2523,7 +2523,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = {
|
|||
doublesTier: "DUU",
|
||||
},
|
||||
emolga: {
|
||||
randomBattleMoves: ["agility", "airslash", "batonpass", "chargebeam", "roost", "substitute", "thunderbolt"],
|
||||
randomBattleMoves: ["acrobatics", "encore", "roost", "thunderbolt", "toxic", "uturn"],
|
||||
tier: "(NU)",
|
||||
doublesTier: "DUU",
|
||||
},
|
||||
|
|
@ -2660,7 +2660,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = {
|
|||
doublesTier: "DUU",
|
||||
},
|
||||
druddigon: {
|
||||
randomBattleMoves: ["dragontail", "earthquake", "firepunch", "glare", "outrage", "suckerpunch", "stealthrock"],
|
||||
randomBattleMoves: ["dragontail", "earthquake", "glare", "outrage", "stealthrock", "suckerpunch"],
|
||||
tier: "RU",
|
||||
doublesTier: "DUU",
|
||||
},
|
||||
|
|
|
|||
|
|
@ -101,6 +101,9 @@ export class RandomGen5Teams extends RandomGen6Teams {
|
|||
case 'batonpass':
|
||||
if (!counter.setupType && !counter['speedsetup'] && !hasMove['substitute'] && !hasMove['wish'] && !hasAbility['Speed Boost']) rejected = true;
|
||||
break;
|
||||
case 'endeavor':
|
||||
if (!isLead) rejected = true;
|
||||
break;
|
||||
case 'focuspunch':
|
||||
if (!hasMove['substitute'] || counter.damagingMoves.length < 2 || hasMove['swordsdance']) rejected = true;
|
||||
break;
|
||||
|
|
@ -155,8 +158,8 @@ export class RandomGen5Teams extends RandomGen6Teams {
|
|||
case 'fakeout':
|
||||
if (counter.setupType || hasMove['substitute'] || hasMove['switcheroo'] || hasMove['trick']) rejected = true;
|
||||
break;
|
||||
case 'haze': case 'magiccoat': case 'pursuit': case 'selfdestruct': case 'spikes': case 'waterspout':
|
||||
if (counter.setupType || !!counter['speedsetup'] || (hasMove['rest'] && hasMove['sleeptalk'])) rejected = true;
|
||||
case 'haze': case 'magiccoat': case 'pursuit': case 'spikes': case 'waterspout':
|
||||
if (counter.setupType || !!counter['speedsetup'] || hasMove['trickroom'] || (hasMove['rest'] && hasMove['sleeptalk'])) rejected = true;
|
||||
break;
|
||||
case 'healingwish':
|
||||
if (counter.setupType || !!counter['recovery'] || hasMove['substitute']) rejected = true;
|
||||
|
|
@ -194,7 +197,7 @@ export class RandomGen5Teams extends RandomGen6Teams {
|
|||
if (counter.setupType || !!counter['speedsetup'] || hasMove['batonpass'] || hasMove['magnetrise'] || hasMove['uturn']) rejected = true;
|
||||
break;
|
||||
|
||||
// Bit redundant to have both
|
||||
// Ineffective having both
|
||||
// Attacks:
|
||||
case 'bugbite':
|
||||
if (hasMove['uturn']) rejected = true;
|
||||
|
|
@ -232,8 +235,8 @@ export class RandomGen5Teams extends RandomGen6Teams {
|
|||
case 'bonemerang': case 'earthpower':
|
||||
if (hasMove['earthquake']) rejected = true;
|
||||
break;
|
||||
case 'endeavor':
|
||||
if (!isLead) rejected = true;
|
||||
case 'extremespeed': case 'headsmash':
|
||||
if (hasMove['roost']) rejected = true;
|
||||
break;
|
||||
case 'facade':
|
||||
if (hasMove['suckerpunch'] && !hasType['Normal']) rejected = true;
|
||||
|
|
@ -253,12 +256,6 @@ export class RandomGen5Teams extends RandomGen6Teams {
|
|||
case 'psychic':
|
||||
if (hasMove['psyshock']) rejected = true;
|
||||
break;
|
||||
case 'rockblast': case 'rockslide':
|
||||
if (hasMove['headsmash'] || hasMove['stoneedge']) rejected = true;
|
||||
break;
|
||||
case 'stoneedge':
|
||||
if (hasMove['headsmash']) rejected = true;
|
||||
break;
|
||||
case 'scald': case 'surf':
|
||||
if (hasMove['hydropump']) rejected = true;
|
||||
break;
|
||||
|
|
@ -330,7 +327,7 @@ export class RandomGen5Teams extends RandomGen6Teams {
|
|||
(hasType['Steel'] && hasAbility['Technician'] && !counter['Steel']) ||
|
||||
(hasType['Water'] && (!counter['Water'] || (hasAbility['Adaptability'] && movePool.includes('waterfall'))) ||
|
||||
(hasAbility['Bad Dreams'] && movePool.includes('darkvoid')) ||
|
||||
(hasAbility['Contrary'] && !counter['contrary'] && species.name !== 'Shuckle') ||
|
||||
(hasAbility['Contrary'] && !counter['contrary'] && forme !== 'Shuckle') ||
|
||||
(hasAbility['Guts'] && hasType['Normal'] && movePool.includes('facade')) ||
|
||||
(hasAbility['Slow Start'] && movePool.includes('substitute')) ||
|
||||
(!counter.recovery && !counter.setupType && !hasMove['healingwish'] && (counter.Status > 1 || (species.nfe && !!counter['Status'])) &&
|
||||
|
|
@ -439,15 +436,15 @@ export class RandomGen5Teams extends RandomGen6Teams {
|
|||
} else if (ability === 'Pressure' || ability === 'Synchronize') {
|
||||
rejectAbility = (counter.setupType || counter.Status < 2);
|
||||
} else if (ability === 'Reckless' || ability === 'Rock Head') {
|
||||
rejectAbility = !counter['recoil'];
|
||||
rejectAbility = (!counter['recoil'] || hasAbility['Sap Sipper']);
|
||||
} else if (ability === 'Regenerator') {
|
||||
rejectAbility = hasAbility['Magic Guard'];
|
||||
} else if (ability === 'Sand Force' || ability === 'Sand Rush') {
|
||||
rejectAbility = !teamDetails['sand'];
|
||||
} else if (ability === 'Serene Grace') {
|
||||
rejectAbility = (!counter['serenegrace'] || species.name === 'Blissey');
|
||||
rejectAbility = (!counter['serenegrace'] || forme === 'Blissey');
|
||||
} else if (ability === 'Sheer Force') {
|
||||
rejectAbility = (!counter['sheerforce'] || hasMove['fakeout'] || hasAbility['Iron Fist'] && counter['ironfist'] > counter['sheerforce']);
|
||||
rejectAbility = (!counter['sheerforce'] || hasAbility['Guts']);
|
||||
} else if (ability === 'Sturdy') {
|
||||
rejectAbility = (!!counter['recoil'] && !counter['recovery']);
|
||||
} else if (ability === 'Swarm') {
|
||||
|
|
@ -493,24 +490,20 @@ export class RandomGen5Teams extends RandomGen6Teams {
|
|||
item = species.requiredItem;
|
||||
|
||||
// First, the extra high-priority items
|
||||
} else if (species.name === 'Marowak') {
|
||||
} else if (forme === 'Marowak') {
|
||||
item = 'Thick Club';
|
||||
} else if (species.name === 'Deoxys-Attack') {
|
||||
item = (isLead && hasMove['stealthrock']) ? 'Focus Sash' : 'Life Orb';
|
||||
} else if (species.name === 'Farfetch\u2019d') {
|
||||
} else if (forme === 'Farfetch\u2019d') {
|
||||
item = 'Stick';
|
||||
} else if (species.name === 'Pikachu') {
|
||||
} else if (forme === 'Pikachu') {
|
||||
item = 'Light Ball';
|
||||
} else if (species.name === 'Shedinja' || species.name === 'Smeargle') {
|
||||
} else if (forme === 'Shedinja' || forme === 'Smeargle') {
|
||||
item = 'Focus Sash';
|
||||
} else if (species.name === 'Unown') {
|
||||
item = 'Choice Specs';
|
||||
} else if (species.name === 'Wobbuffet' && hasMove['destinybond'] && this.randomChance(1, 2)) {
|
||||
} else if (forme === 'Wobbuffet' && hasMove['destinybond'] && this.randomChance(1, 2)) {
|
||||
item = 'Custap Berry';
|
||||
} else if (ability === 'Imposter') {
|
||||
item = 'Choice Scarf';
|
||||
} else if (hasMove['trick'] && hasMove['gyroball']) {
|
||||
item = (ability === 'Levitate' || hasType['Flying']) ? 'Macho Brace' : 'Iron Ball';
|
||||
} else if (hasMove['switcheroo'] || hasMove['trick']) {
|
||||
if (species.baseStats.spe >= 60 && species.baseStats.spe <= 108 && !counter['priority']) {
|
||||
item = 'Choice Scarf';
|
||||
|
|
@ -525,14 +518,14 @@ export class RandomGen5Teams extends RandomGen6Teams {
|
|||
item = 'Sitrus Berry';
|
||||
} else if ((ability === 'Magic Guard' || ability === 'Sheer Force') && counter.damagingMoves.length > 1) {
|
||||
item = 'Life Orb';
|
||||
} else if (hasMove['facade'] || ability === 'Poison Heal' || ability === 'Toxic Boost') {
|
||||
} else if (ability === 'Poison Heal' || ability === 'Toxic Boost' || hasMove['facade']) {
|
||||
item = 'Toxic Orb';
|
||||
} else if (hasMove['rest'] && !hasMove['sleeptalk'] && ability !== 'Natural Cure' && ability !== 'Shed Skin') {
|
||||
item = 'Chesto Berry';
|
||||
} else if (hasMove['raindance']) {
|
||||
item = 'Damp Rock';
|
||||
item = (ability === 'Forecast') ? 'Damp Rock' : 'Life Orb';
|
||||
} else if (hasMove['sunnyday']) {
|
||||
item = 'Heat Rock';
|
||||
item = (ability === 'Forecast' || ability === 'Flower Gift') ? 'Heat Rock' : 'Life Orb';
|
||||
} else if (hasMove['lightscreen'] && hasMove['reflect']) {
|
||||
item = 'Light Clay';
|
||||
} else if (hasMove['acrobatics']) {
|
||||
|
|
@ -560,39 +553,19 @@ export class RandomGen5Teams extends RandomGen6Teams {
|
|||
item = species.baseStats.spa >= 100 && species.baseStats.spe >= 60 && species.baseStats.spe <= 108 && !counter['priority'] && this.randomChance(2, 3) ? 'Choice Scarf' : 'Choice Specs';
|
||||
} else if (counter.Special >= 3 && hasMove['uturn']) {
|
||||
item = (ability === 'Download') ? 'Choice Scarf' : 'Choice Specs';
|
||||
} else if (this.dex.getEffectiveness('Ground', species) >= 2 && ability !== 'Levitate' && !hasMove['magnetrise']) {
|
||||
} else if (this.dex.getEffectiveness('Ground', species) >= 2 && ability !== 'Levitate') {
|
||||
item = 'Air Balloon';
|
||||
} else if (hasMove['substitute'] && hasMove['reversal']) {
|
||||
const eligibleTypes = [];
|
||||
for (const setMoveid of moves) {
|
||||
const move = this.dex.getMove(setMoveid);
|
||||
if (!move.basePower && !move.basePowerCallback) continue;
|
||||
eligibleTypes.push(move.type);
|
||||
}
|
||||
item = this.sample(eligibleTypes) + ' Gem';
|
||||
} else if ((hasMove['flail'] || hasMove['reversal']) && ability !== 'Sturdy') {
|
||||
item = 'Focus Sash';
|
||||
} else if (ability === 'Slow Start' || hasMove['detect'] || hasMove['protect'] || hasMove['sleeptalk'] || hasMove['substitute']) {
|
||||
} else if (hasType['Poison'] || hasMove['dragontail'] || hasMove['protect'] || hasMove['scald'] || hasMove['sleeptalk'] || hasMove['substitute']) {
|
||||
item = 'Leftovers';
|
||||
} else if (ability === 'Iron Barbs') {
|
||||
item = 'Rocky Helmet';
|
||||
} else if (species.name === 'Palkia' && (hasMove['dracometeor'] || hasMove['spacialrend']) && hasMove['hydropump']) {
|
||||
} else if (forme === 'Palkia' && (hasMove['dracometeor'] || hasMove['spacialrend']) && hasMove['hydropump']) {
|
||||
item = 'Lustrous Orb';
|
||||
} else if (species.baseStats.hp + species.baseStats.def + species.baseStats.spd > 275) {
|
||||
item = 'Leftovers';
|
||||
} else if (counter.Physical + counter.Special >= 3 && counter.setupType && ability !== 'Sturdy' && !hasMove['rapidspin']) {
|
||||
} else if (counter.damagingMoves.length >= 4) {
|
||||
item = (forme === 'Deoxys-Attack' || counter['Normal'] || hasMove['suckerpunch']) ? 'Life Orb' : 'Expert Belt';
|
||||
} else if (species.baseStats.spe >= 40 && counter.setupType && counter.damagingMoves.length >= 3 && ability !== 'Sturdy' && !hasMove['rapidspin']) {
|
||||
item = hasMove['outrage'] ? 'Lum Berry' : 'Life Orb';
|
||||
} else if (counter.Physical + counter.Special >= 4) {
|
||||
item = counter['Normal'] ? 'Life Orb' : 'Expert Belt';
|
||||
} else if (isLead && ability !== 'Regenerator' && ability !== 'Sturdy' && !counter['recoil'] && !counter['recovery'] && species.baseStats.hp + species.baseStats.def + species.baseStats.spd <= 275) {
|
||||
} else if (isLead && !!counter['hazards'] && ability !== 'Regenerator' && ability !== 'Sturdy' && !counter['recovery'] && species.baseStats.hp + species.baseStats.def + species.baseStats.spd < 255) {
|
||||
item = 'Focus Sash';
|
||||
|
||||
// This is the "REALLY can't think of a good item" cutoff
|
||||
} else if (hasType['Poison']) {
|
||||
item = 'Black Sludge';
|
||||
} else if (this.dex.getEffectiveness('Rock', species) >= 1 || hasMove['dragontail']) {
|
||||
item = 'Leftovers';
|
||||
} else if (counter.Status <= 1 && ability !== 'Sturdy' && !hasMove['rapidspin'] && !hasMove['uturn']) {
|
||||
} else if (counter.Status < 2 && ability !== 'Sturdy' && !hasMove['rapidspin'] && !hasMove['uturn'] && this.dex.getEffectiveness('Rock', species) < 1) {
|
||||
item = 'Life Orb';
|
||||
}
|
||||
|
||||
|
|
@ -617,16 +590,13 @@ export class RandomGen5Teams extends RandomGen6Teams {
|
|||
Delibird: 100, 'Farfetch\u2019d': 100, Luvdisc: 100, Unown: 100,
|
||||
};
|
||||
let level = levelScale[species.tier] || (species.nfe ? 90 : 80);
|
||||
if (customScale[forme]) level = customScale[forme];
|
||||
if (customScale[species.name]) level = customScale[species.name];
|
||||
|
||||
// Prepare optimal HP
|
||||
const srWeakness = this.dex.getEffectiveness('Rock', species);
|
||||
while (evs.hp > 1) {
|
||||
const hp = Math.floor(Math.floor(2 * species.baseStats.hp + (ivs.hp || 31) + Math.floor(evs.hp / 4) + 100) * level / 100 + 10);
|
||||
if (hasMove['substitute'] && hasMove['reversal']) {
|
||||
// Reversal users should be able to use four Substitutes
|
||||
if (hp % 4 > 0) break;
|
||||
} else if (hasMove['bellydrum'] && item === 'Sitrus Berry') {
|
||||
if (hasMove['bellydrum'] && item === 'Sitrus Berry') {
|
||||
// Belly Drum should activate Sitrus Berry
|
||||
if (hp % 2 === 0) break;
|
||||
} else {
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user