Spaces:
Sleeping
Sleeping
File size: 3,436 Bytes
5c2ed06 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 |
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 },
},
};
|