Fix berry activation timing for Yawn sleep and Leech Seed damage (#8776)
This commit is contained in:
parent
86ab719469
commit
0e33bf916e
@ -4958,6 +4958,7 @@ BattleScript_LeechSeedTurnDrain:
|
||||
healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE
|
||||
datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE
|
||||
tryfaintmon BS_ATTACKER
|
||||
tryactivateitem BS_ATTACKER, ACTIVATION_ON_HP_THRESHOLD
|
||||
return
|
||||
|
||||
BattleScript_BideStoringEnergy::
|
||||
@ -6294,6 +6295,7 @@ BattleScript_YawnMakesAsleepEnd2::
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
updatestatusicon BS_EFFECT_BATTLER
|
||||
waitstate
|
||||
tryactivateitem BS_EFFECT_BATTLER, ACTIVATION_ON_STATUS_CHANGE
|
||||
jumpfifsemiinvulnerable BS_EFFECT_BATTLER, STATE_SKY_DROP, BattleScript_YawnEnd
|
||||
makevisible BS_EFFECT_BATTLER
|
||||
skydropyawn
|
||||
|
||||
@ -157,6 +157,7 @@ enum ItemActivationState
|
||||
ACTIVATION_ON_PICK_UP,
|
||||
ACTIVATION_ON_HARVEST,
|
||||
ACTIVATION_ON_HP_THRESHOLD,
|
||||
ACTIVATION_ON_STATUS_CHANGE,
|
||||
};
|
||||
|
||||
#endif // GUARD_HOLD_EFFECTS_H
|
||||
|
||||
@ -12211,6 +12211,10 @@ static void Cmd_tryactivateitem(void)
|
||||
if (ItemBattleEffects(battler, 0, GetBattlerHoldEffect(battler), IsOnHpThresholdActivation))
|
||||
return;
|
||||
break;
|
||||
case ACTIVATION_ON_STATUS_CHANGE:
|
||||
if (ItemBattleEffects(battler, 0, GetBattlerHoldEffect(battler), IsOnStatusChangeActivation))
|
||||
return;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -116,6 +116,25 @@ SINGLE_BATTLE_TEST("Chesto and Lum Berries cure sleep")
|
||||
}
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Chesto Berry cures sleep when Yawn takes effect")
|
||||
{
|
||||
GIVEN {
|
||||
ASSUME(GetMoveEffect(MOVE_YAWN) == EFFECT_YAWN);
|
||||
ASSUME(gItemsInfo[ITEM_CHESTO_BERRY].holdEffect == HOLD_EFFECT_CURE_SLP);
|
||||
PLAYER(SPECIES_WOBBUFFET) { Item(ITEM_CHESTO_BERRY); }
|
||||
OPPONENT(SPECIES_WOBBUFFET);
|
||||
} WHEN {
|
||||
TURN { MOVE(opponent, MOVE_YAWN); }
|
||||
TURN { MOVE(opponent, MOVE_CELEBRATE); }
|
||||
} SCENE {
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_YAWN, opponent);
|
||||
ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, player);
|
||||
STATUS_ICON(player, sleep: TRUE);
|
||||
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player);
|
||||
STATUS_ICON(player, sleep: FALSE);
|
||||
}
|
||||
}
|
||||
|
||||
TO_DO_BATTLE_TEST("Chesto and Lum Berries don't trigger if the holder has Comatose")
|
||||
|
||||
SINGLE_BATTLE_TEST("Cheri and Lum Berries cure paralysis")
|
||||
|
||||
@ -63,3 +63,22 @@ DOUBLE_BATTLE_TEST("Restore HP Item effects do not miss timing after a recoil mo
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, playerRight);
|
||||
}
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Sitrus Berry restores HP immediately after Leech Seed damage")
|
||||
{
|
||||
GIVEN {
|
||||
ASSUME(GetMoveEffect(MOVE_LEECH_SEED) == EFFECT_LEECH_SEED);
|
||||
ASSUME(gItemsInfo[ITEM_SITRUS_BERRY].holdEffect == HOLD_EFFECT_RESTORE_PCT_HP);
|
||||
PLAYER(SPECIES_WOBBUFFET) { MaxHP(80); HP(41); Item(ITEM_SITRUS_BERRY); }
|
||||
OPPONENT(SPECIES_WYNAUT);
|
||||
} WHEN {
|
||||
TURN { MOVE(opponent, MOVE_LEECH_SEED); }
|
||||
TURN { }
|
||||
} SCENE {
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_LEECH_SEED, opponent);
|
||||
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_LEECH_SEED_DRAIN, player);
|
||||
HP_BAR(player);
|
||||
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player);
|
||||
HP_BAR(player);
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user