Spaces:
Running
Running
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 }, | |
}, | |
}; | |