mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2025-01-27 13:53:52 +01:00
magician fixes, handle edge cases
This commit is contained in:
parent
1031703309
commit
9a4e0cf757
@ -1249,6 +1249,7 @@ BattleScript_EffectHitSwitchTarget:
|
||||
resultmessage
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
tryfaintmon BS_TARGET, FALSE, NULL
|
||||
moveendcase MOVEEND_MAGICIAN @ possibly others?
|
||||
jumpifability BS_TARGET, ABILITY_SUCTION_CUPS, BattleScript_AbilityPreventsPhasingOut
|
||||
jumpifstatus3 BS_TARGET, STATUS3_ROOTED, BattleScript_PrintMonIsRooted
|
||||
tryhitswitchtarget BattleScript_EffectHitSwitchTargetMoveEnd
|
||||
|
@ -243,15 +243,16 @@
|
||||
#define MOVEEND_UPDATE_LAST_MOVES 18
|
||||
#define MOVEEND_MIRROR_MOVE 19
|
||||
#define MOVEEND_NEXT_TARGET 20 // Everything up until here is handled for each strike of a multi-hit move
|
||||
#define MOVEEND_EJECT_BUTTON 21
|
||||
#define MOVEEND_RED_CARD 22
|
||||
#define MOVEEND_EJECT_PACK 23
|
||||
#define MOVEEND_LIFEORB_SHELLBELL 24 // Includes shell bell, throat spray, etc
|
||||
#define MOVEEND_PICKPOCKET 25
|
||||
#define MOVEEND_DANCER 26
|
||||
#define MOVEEND_EMERGENCY_EXIT 27
|
||||
#define MOVEEND_CLEAR_BITS 28
|
||||
#define MOVEEND_COUNT 29
|
||||
#define MOVEEND_MAGICIAN 21 // Occurs after final multi-hit strike, and after other items/abilities would activate
|
||||
#define MOVEEND_EJECT_BUTTON 22
|
||||
#define MOVEEND_RED_CARD 23
|
||||
#define MOVEEND_EJECT_PACK 24
|
||||
#define MOVEEND_LIFEORB_SHELLBELL 25 // Includes shell bell, throat spray, etc
|
||||
#define MOVEEND_PICKPOCKET 26
|
||||
#define MOVEEND_DANCER 27
|
||||
#define MOVEEND_EMERGENCY_EXIT 28
|
||||
#define MOVEEND_CLEAR_BITS 29
|
||||
#define MOVEEND_COUNT 30
|
||||
|
||||
// switch cases
|
||||
#define B_SWITCH_NORMAL 0
|
||||
|
@ -5075,9 +5075,12 @@ static void Cmd_moveend(void)
|
||||
if (GetBattlerAbility(gBattlerAttacker) == ABILITY_MAGICIAN
|
||||
&& gCurrentMove != MOVE_FLING && gCurrentMove != MOVE_NATURAL_GIFT
|
||||
&& gBattleMons[gBattlerAttacker].item == ITEM_NONE
|
||||
&& gBattleMons[gBattlerTarget].item != ITEM_NONE
|
||||
&& IsBattlerAlive(gBattlerAttacker)
|
||||
&& TARGET_TURN_DAMAGED
|
||||
&& CanStealItem(gBattlerAttacker, gBattlerTarget, gBattleMons[gBattlerTarget].item)
|
||||
&& !gSpecialStatuses[gBattlerAttacker].gemBoost // In base game, gems are consumed after magician would activate.
|
||||
&& !(gWishFutureKnock.knockedOffMons[GetBattlerSide(gBattlerTarget)] & gBitTable[gBattlerPartyIndexes[gBattlerTarget]])
|
||||
&& !DoesSubstituteBlockMove(gBattlerAttacker, gBattlerTarget, gCurrentMove)
|
||||
&& !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)
|
||||
&& (GetBattlerAbility(gBattlerTarget) != ABILITY_STICKY_HOLD || !IsBattlerAlive(gBattlerTarget)))
|
||||
|
Loading…
x
Reference in New Issue
Block a user