mirror of
https://github.com/smogon/pokemon-showdown-client.git
synced 2026-05-09 04:23:01 -05:00
Support Inverse Mod in type effectiveness display (#2668)
* Type effectiveness: Support Inverse Mod * Support Inverse Mod in Hardcore Mode * fix trailing spaces
This commit is contained in:
parent
4d8221c18e
commit
f52c98107f
|
|
@ -1839,6 +1839,7 @@ export class BattleTooltips {
|
|||
return 1;
|
||||
}
|
||||
const hardcoreMode = this.battle.hardcoreMode;
|
||||
const inverse = this.battle.rules['Inverse Mod'];
|
||||
const targetTypes = target.getTypeList();
|
||||
const sourceAbility = source.effectiveAbility();
|
||||
// Mold Breaker doesn't ignore _everything_, but it sure ignores everything that affects effectiveness
|
||||
|
|
@ -1905,7 +1906,15 @@ export class BattleTooltips {
|
|||
factor = 1;
|
||||
break;
|
||||
}
|
||||
factor = 0;
|
||||
// Inverse replaces immunities with weaknesses. This has to
|
||||
// be coded here, else it won't calculate secondary type's
|
||||
// effectiveness. It sets a resistance to be consistent with
|
||||
// the inversion done at the end.
|
||||
if (inverse) {
|
||||
factor *= 0.5;
|
||||
} else {
|
||||
factor = 0;
|
||||
}
|
||||
} else if (move.id === 'freezedry' && targetType === 'Water') {
|
||||
factor *= 2;
|
||||
} else {
|
||||
|
|
@ -1970,11 +1979,20 @@ export class BattleTooltips {
|
|||
return factor * otherFactor === 0 ? 0 : 1;
|
||||
}
|
||||
if (hardcoreMode && dex.gen <= 9) {
|
||||
if (factor > 2) return 2;
|
||||
if (factor < 0.5) return 0.5;
|
||||
if (factor > 2) factor = 2;
|
||||
if (factor < 0.5) factor = 0.5;
|
||||
if (inverse && dex.gen >= 7) return 1 / factor;
|
||||
return factor;
|
||||
}
|
||||
if (hardcoreMode) return factor;
|
||||
if (hardcoreMode) {
|
||||
if (inverse && dex.gen >= 7) return 1 / factor;
|
||||
return factor;
|
||||
}
|
||||
|
||||
// Inverse Mod reverses effectiveness
|
||||
if (inverse) {
|
||||
return 1 / (factor * otherFactor);
|
||||
}
|
||||
return factor * otherFactor;
|
||||
}
|
||||
getMoveTypeText(move: Dex.Move, value: ModifiableValue, forMaxMove?: boolean | Dex.Move) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user