Spaces:
Paused
Paused
| export const Abilities: import('../../../sim/dex-abilities').ModdedAbilityDataTable = { | |
| aerilate: { | |
| inherit: true, | |
| onBasePower(basePower, pokemon, target, move) { | |
| if (move.typeChangerBoosted === this.effect) return this.chainModify([5325, 4096]); | |
| }, | |
| rating: 4.5, | |
| }, | |
| aftermath: { | |
| inherit: true, | |
| onDamagingHit(damage, target, source, move) { | |
| if (move.flags['contact'] && !target.hp) { | |
| this.damage(source.baseMaxhp / 4, source, target, null, true); | |
| } | |
| }, | |
| }, | |
| galewings: { | |
| inherit: true, | |
| onModifyPriority(priority, pokemon, target, move) { | |
| if (move && move.type === 'Flying') return priority + 1; | |
| }, | |
| rating: 4, | |
| }, | |
| ironbarbs: { | |
| inherit: true, | |
| onDamagingHit(damage, target, source, move) { | |
| if (move.flags['contact']) { | |
| this.damage(source.baseMaxhp / 8, source, target, null, true); | |
| } | |
| }, | |
| }, | |
| liquidooze: { | |
| inherit: true, | |
| onSourceTryHeal(damage, target, source, effect) { | |
| this.debug(`Heal is occurring: ${target} <- ${source} :: ${effect.id}`); | |
| const canOoze = ['drain', 'leechseed']; | |
| if (canOoze.includes(effect.id)) { | |
| this.damage(damage, null, null, null, true); | |
| return 0; | |
| } | |
| }, | |
| }, | |
| magicguard: { | |
| inherit: true, | |
| onDamage(damage, target, source, effect) { | |
| if (effect.effectType !== 'Move') return false; | |
| }, | |
| }, | |
| normalize: { | |
| inherit: true, | |
| onModifyMovePriority: 1, | |
| onModifyMove(move) { | |
| if (move.id !== 'struggle' && this.dex.moves.get(move.id).type !== 'Normal') { | |
| move.type = 'Normal'; | |
| } | |
| }, | |
| onBasePower() {}, | |
| rating: -1, | |
| }, | |
| parentalbond: { | |
| inherit: true, | |
| // Damage modifier implemented in BattleActions#modifyDamage() | |
| rating: 5, | |
| }, | |
| pixilate: { | |
| inherit: true, | |
| onBasePower(basePower, pokemon, target, move) { | |
| if (move.typeChangerBoosted === this.effect) return this.chainModify([5325, 4096]); | |
| }, | |
| rating: 4.5, | |
| }, | |
| refrigerate: { | |
| inherit: true, | |
| onBasePower(basePower, pokemon, target, move) { | |
| if (move.typeChangerBoosted === this.effect) return this.chainModify([5325, 4096]); | |
| }, | |
| rating: 4.5, | |
| }, | |
| roughskin: { | |
| inherit: true, | |
| onDamagingHit(damage, target, source, move) { | |
| if (move.flags['contact']) { | |
| this.damage(source.baseMaxhp / 8, source, target, null, true); | |
| } | |
| }, | |
| }, | |
| stancechange: { | |
| inherit: true, | |
| onBeforeMovePriority: 11, | |
| onBeforeMove(attacker, defender, move) { | |
| if (attacker.species.baseSpecies !== 'Aegislash' || attacker.transformed) return; | |
| if (move.category === 'Status' && move.id !== 'kingsshield') return; | |
| const targetForme = (move.id === 'kingsshield' ? 'Aegislash' : 'Aegislash-Blade'); | |
| if (attacker.species.name !== targetForme) attacker.formeChange(targetForme); | |
| }, | |
| onModifyMove() {}, | |
| }, | |
| symbiosis: { | |
| inherit: true, | |
| onAllyAfterUseItem(item, pokemon) { | |
| const source = this.effectState.target; | |
| const myItem = source.takeItem(); | |
| if (!myItem) return; | |
| if ( | |
| !this.singleEvent('TakeItem', myItem, source.itemState, pokemon, source, this.effect, myItem) || | |
| !pokemon.setItem(myItem) | |
| ) { | |
| source.item = myItem.id; | |
| return; | |
| } | |
| this.add('-activate', source, 'ability: Symbiosis', myItem, `[of] ${pokemon}`); | |
| }, | |
| }, | |
| weakarmor: { | |
| inherit: true, | |
| onDamagingHit(damage, target, source, move) { | |
| if (move.category === 'Physical') { | |
| this.boost({ def: -1, spe: 1 }, target, target); | |
| } | |
| }, | |
| rating: 0.5, | |
| }, | |
| zenmode: { | |
| inherit: true, | |
| flags: { failroleplay: 1, noentrain: 1, notrace: 1 }, | |
| }, | |
| }; | |