[Move] Psycho Shift treats Comatose as Sleep (#1780)

* comotose + psycho_shift

* condensed conditional for psycho shift

---------

Co-authored-by: Tempoanon <163687446+Tempo-anon@users.noreply.github.com>
This commit is contained in:
Carson 2024-07-30 17:24:01 -04:00 committed by GitHub
parent 2900f22289
commit 64ca6dd827
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -1917,7 +1917,7 @@ export class PsychoShiftEffectAttr extends MoveEffectAttr {
}
apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean {
const statusToApply: StatusEffect = user.status?.effect;
const statusToApply: StatusEffect = user.status?.effect ?? (user.hasAbility(Abilities.COMATOSE) ? StatusEffect.SLEEP : undefined);
if (target.status) {
return false;
@ -1925,7 +1925,9 @@ export class PsychoShiftEffectAttr extends MoveEffectAttr {
if (!target.status || (target.status.effect === statusToApply && move.chance < 0)) {
const statusAfflictResult = target.trySetStatus(statusToApply, true, user);
if (statusAfflictResult) {
user.scene.queueMessage(getStatusEffectHealText(user.status.effect, getPokemonNameWithAffix(user)));
if (user.status) {
user.scene.queueMessage(getStatusEffectHealText(user.status.effect, getPokemonNameWithAffix(user)));
}
user.resetStatus();
user.updateInfo();
}
@ -7033,12 +7035,13 @@ export function initMoves() {
.unimplemented(),
new StatusMove(Moves.PSYCHO_SHIFT, Type.PSYCHIC, 100, 10, -1, 0, 4)
.attr(PsychoShiftEffectAttr)
.condition((user, target, move) => (user.status?.effect === StatusEffect.BURN
|| user.status?.effect === StatusEffect.POISON
|| user.status?.effect === StatusEffect.TOXIC
|| user.status?.effect === StatusEffect.PARALYSIS
|| user.status?.effect === StatusEffect.SLEEP)
&& target.canSetStatus(user.status?.effect, false, false, user)
.condition((user, target, move) => {
let statusToApply = user.hasAbility(Abilities.COMATOSE) ? StatusEffect.SLEEP : undefined;
if (user.status?.effect && isNonVolatileStatusEffect(user.status.effect)) {
statusToApply = user.status.effect;
}
return statusToApply && target.canSetStatus(statusToApply, false, false, user);
}
),
new AttackMove(Moves.TRUMP_CARD, Type.NORMAL, MoveCategory.SPECIAL, -1, -1, 5, -1, 0, 4)
.makesContact()