mirror of
https://github.com/smogon/pokemon-showdown.git
synced 2026-03-21 17:25:10 -05:00
27 lines
1.2 KiB
TypeScript
27 lines
1.2 KiB
TypeScript
export const Scripts: ModdedBattleScriptsData = {
|
|
gen: 9,
|
|
inherit: 'gen9',
|
|
pokemon: {
|
|
isGrounded(negateImmunity) {
|
|
if ('gravity' in this.battle.field.pseudoWeather) return true;
|
|
if ('ingrain' in this.volatiles && this.battle.gen >= 4) return true;
|
|
if ('smackdown' in this.volatiles) return true;
|
|
const item = (this.ignoringItem() ? '' : this.item);
|
|
if (item === 'ironball' || this.volatiles['item:ironball']) return true;
|
|
// If a Fire/Flying type uses Burn Up and Roost, it becomes ???/Flying-type, but it's still grounded.
|
|
if (!negateImmunity && this.hasType('Flying') && !(this.hasType('???') && 'roost' in this.volatiles)) return false;
|
|
if (this.hasAbility('levitate') && !this.battle.suppressingAbility(this)) return null;
|
|
if ('magnetrise' in this.volatiles) return false;
|
|
if ('telekinesis' in this.volatiles) return false;
|
|
if (item === 'airballoon' || this.volatiles['item:airballoon']) return false;
|
|
return true;
|
|
},
|
|
hasItem(item) {
|
|
if (this.ignoringItem()) return false;
|
|
if (Array.isArray(item)) return item.some(i => this.hasItem(i));
|
|
const itemid = this.battle.toID(item);
|
|
return this.item === itemid || !!this.volatiles['item:' + itemid];
|
|
},
|
|
},
|
|
};
|