Spaces:
Running
Running
export const Conditions: import('../../../sim/dex-conditions').ModdedConditionDataTable = { | |
brn: { | |
name: 'brn', | |
effectType: 'Status', | |
onStart(target) { | |
this.add('-status', target, 'brn'); | |
}, | |
onAfterMoveSelfPriority: 2, | |
onAfterMoveSelf(pokemon) { | |
this.damage(this.clampIntRange(Math.floor(pokemon.maxhp / 16), 1)); | |
}, | |
onAfterSwitchInSelf(pokemon) { | |
this.damage(this.clampIntRange(Math.floor(pokemon.maxhp / 16), 1)); | |
}, | |
}, | |
par: { | |
name: 'par', | |
effectType: 'Status', | |
onStart(target) { | |
this.add('-status', target, 'par'); | |
}, | |
onBeforeMovePriority: 2, | |
onBeforeMove(pokemon) { | |
if (this.randomChance(63, 256)) { | |
this.add('cant', pokemon, 'par'); | |
pokemon.removeVolatile('bide'); | |
pokemon.removeVolatile('lockedmove'); | |
pokemon.removeVolatile('twoturnmove'); | |
pokemon.removeVolatile('invulnerability'); | |
pokemon.removeVolatile('partialtrappinglock'); | |
return false; | |
} | |
}, | |
}, | |
slp: { | |
name: 'slp', | |
effectType: 'Status', | |
onStart(target, source, sourceEffect) { | |
if (sourceEffect && sourceEffect.effectType === 'Move') { | |
this.add('-status', target, 'slp', `[from] move: ${sourceEffect.name}`); | |
} else { | |
this.add('-status', target, 'slp'); | |
} | |
// 1-3 turns | |
this.effectState.startTime = this.random(1, 4); | |
this.effectState.time = this.effectState.startTime; | |
if (target.removeVolatile('nightmare')) { | |
this.add('-end', target, 'Nightmare', '[silent]'); | |
} | |
}, | |
onBeforeMovePriority: 2, | |
onBeforeMove(pokemon, target, move) { | |
pokemon.statusState.time--; | |
this.add('cant', pokemon, 'slp'); | |
pokemon.lastMove = null; | |
return false; | |
}, | |
onAfterMoveSelf(pokemon) { | |
if (pokemon.statusState.time <= 0) pokemon.cureStatus(); | |
}, | |
}, | |
frz: { | |
name: 'frz', | |
effectType: 'Status', | |
onStart(target) { | |
this.add('-status', target, 'frz'); | |
}, | |
onBeforeMovePriority: 2, | |
onBeforeMove(pokemon, target, move) { | |
this.add('cant', pokemon, 'frz'); | |
pokemon.lastMove = null; | |
return false; | |
}, | |
onHit(target, source, move) { | |
if (move.type === 'Fire' && move.category !== 'Status') { | |
target.cureStatus(); | |
} | |
}, | |
}, | |
psn: { | |
name: 'psn', | |
effectType: 'Status', | |
onStart(target) { | |
this.add('-status', target, 'psn'); | |
}, | |
onAfterMoveSelfPriority: 2, | |
onAfterMoveSelf(pokemon) { | |
this.damage(this.clampIntRange(Math.floor(pokemon.maxhp / 16), 1)); | |
}, | |
onAfterSwitchInSelf(pokemon) { | |
this.damage(this.clampIntRange(Math.floor(pokemon.maxhp / 16), 1)); | |
}, | |
}, | |
confusion: { | |
inherit: true, | |
onStart(target) { | |
this.add('-start', target, 'confusion'); | |
this.effectState.time = this.random(2, 6); | |
}, | |
}, | |
flinch: { | |
inherit: true, | |
onStart() {}, | |
}, | |
partiallytrapped: { | |
name: 'partiallytrapped', | |
duration: 2, | |
onBeforeMovePriority: 1, | |
onStart(target, source, effect) { | |
this.add('-activate', target, `move: ${effect}`, `[of] ${source}`); | |
}, | |
onBeforeMove(pokemon) { | |
if (this.effectState.source && (!this.effectState.source.isActive || this.effectState.source.hp <= 0)) { | |
pokemon.removeVolatile('partiallytrapped'); | |
return; | |
} | |
this.add('cant', pokemon, 'partiallytrapped'); | |
return false; | |
}, | |
onEnd(pokemon) { | |
this.add('-end', pokemon, this.effectState.sourceEffect, '[partiallytrapped]'); | |
}, | |
}, | |
}; | |