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
|
healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE
|
||||||
datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE
|
datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE
|
||||||
tryfaintmon BS_ATTACKER
|
tryfaintmon BS_ATTACKER
|
||||||
|
tryactivateitem BS_ATTACKER, ACTIVATION_ON_HP_THRESHOLD
|
||||||
return
|
return
|
||||||
|
|
||||||
BattleScript_BideStoringEnergy::
|
BattleScript_BideStoringEnergy::
|
||||||
@ -6294,6 +6295,7 @@ BattleScript_YawnMakesAsleepEnd2::
|
|||||||
waitmessage B_WAIT_TIME_LONG
|
waitmessage B_WAIT_TIME_LONG
|
||||||
updatestatusicon BS_EFFECT_BATTLER
|
updatestatusicon BS_EFFECT_BATTLER
|
||||||
waitstate
|
waitstate
|
||||||
|
tryactivateitem BS_EFFECT_BATTLER, ACTIVATION_ON_STATUS_CHANGE
|
||||||
jumpfifsemiinvulnerable BS_EFFECT_BATTLER, STATE_SKY_DROP, BattleScript_YawnEnd
|
jumpfifsemiinvulnerable BS_EFFECT_BATTLER, STATE_SKY_DROP, BattleScript_YawnEnd
|
||||||
makevisible BS_EFFECT_BATTLER
|
makevisible BS_EFFECT_BATTLER
|
||||||
skydropyawn
|
skydropyawn
|
||||||
|
|||||||
@ -157,6 +157,7 @@ enum ItemActivationState
|
|||||||
ACTIVATION_ON_PICK_UP,
|
ACTIVATION_ON_PICK_UP,
|
||||||
ACTIVATION_ON_HARVEST,
|
ACTIVATION_ON_HARVEST,
|
||||||
ACTIVATION_ON_HP_THRESHOLD,
|
ACTIVATION_ON_HP_THRESHOLD,
|
||||||
|
ACTIVATION_ON_STATUS_CHANGE,
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // GUARD_HOLD_EFFECTS_H
|
#endif // GUARD_HOLD_EFFECTS_H
|
||||||
|
|||||||
@ -12211,6 +12211,10 @@ static void Cmd_tryactivateitem(void)
|
|||||||
if (ItemBattleEffects(battler, 0, GetBattlerHoldEffect(battler), IsOnHpThresholdActivation))
|
if (ItemBattleEffects(battler, 0, GetBattlerHoldEffect(battler), IsOnHpThresholdActivation))
|
||||||
return;
|
return;
|
||||||
break;
|
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")
|
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")
|
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);
|
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