Fixes Tar Shot on Tera mons (#5302)
* Fixes Tar Shot on Tera mon * new line
This commit is contained in:
parent
cfa56962e1
commit
e09a59a7e4
@ -1674,6 +1674,11 @@
|
|||||||
callnative BS_FickleBeamDamageCalculation
|
callnative BS_FickleBeamDamageCalculation
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
|
.macro trytarshot failInstr:req
|
||||||
|
callnative BS_TryTarShot
|
||||||
|
.4byte \failInstr
|
||||||
|
.endm
|
||||||
|
|
||||||
@ various command changed to more readable macros
|
@ various command changed to more readable macros
|
||||||
.macro cancelmultiturnmoves battler:req
|
.macro cancelmultiturnmoves battler:req
|
||||||
various \battler, VARIOUS_CANCEL_MULTI_TURN_MOVES
|
various \battler, VARIOUS_CANCEL_MULTI_TURN_MOVES
|
||||||
@ -2210,11 +2215,6 @@
|
|||||||
.4byte \failInstr
|
.4byte \failInstr
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
.macro trytarshot battler:req, failInstr:req
|
|
||||||
various \battler, VARIOUS_TRY_TAR_SHOT
|
|
||||||
.4byte \failInstr
|
|
||||||
.endm
|
|
||||||
|
|
||||||
.macro cantarshotwork battler:req, failInstr:req
|
.macro cantarshotwork battler:req, failInstr:req
|
||||||
various \battler, VARIOUS_CAN_TAR_SHOT_WORK
|
various \battler, VARIOUS_CAN_TAR_SHOT_WORK
|
||||||
.4byte \failInstr
|
.4byte \failInstr
|
||||||
|
|||||||
@ -902,7 +902,7 @@ BattleScript_EffectTarShot::
|
|||||||
printfromtable gStatDownStringIds
|
printfromtable gStatDownStringIds
|
||||||
waitmessage B_WAIT_TIME_LONG
|
waitmessage B_WAIT_TIME_LONG
|
||||||
BattleScript_TryTarShot:
|
BattleScript_TryTarShot:
|
||||||
trytarshot BS_TARGET, BattleScript_MoveEnd
|
trytarshot BattleScript_MoveEnd
|
||||||
printstring STRINGID_PKMNBECAMEWEAKERTOFIRE
|
printstring STRINGID_PKMNBECAMEWEAKERTOFIRE
|
||||||
waitmessage B_WAIT_TIME_LONG
|
waitmessage B_WAIT_TIME_LONG
|
||||||
goto BattleScript_MoveEnd
|
goto BattleScript_MoveEnd
|
||||||
|
|||||||
@ -10715,20 +10715,6 @@ static void Cmd_various(void)
|
|||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
case VARIOUS_TRY_TAR_SHOT:
|
|
||||||
{
|
|
||||||
VARIOUS_ARGS(const u8 *failInstr);
|
|
||||||
if (gDisableStructs[battler].tarShot)
|
|
||||||
{
|
|
||||||
gBattlescriptCurrInstr = cmd->failInstr;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
gDisableStructs[battler].tarShot = TRUE;
|
|
||||||
gBattlescriptCurrInstr = cmd->nextInstr;
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
case VARIOUS_CAN_TAR_SHOT_WORK:
|
case VARIOUS_CAN_TAR_SHOT_WORK:
|
||||||
{
|
{
|
||||||
VARIOUS_ARGS(const u8 *failInstr);
|
VARIOUS_ARGS(const u8 *failInstr);
|
||||||
@ -17209,3 +17195,17 @@ void BS_FickleBeamDamageCalculation(void)
|
|||||||
gBattlescriptCurrInstr = cmd->nextInstr;
|
gBattlescriptCurrInstr = cmd->nextInstr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void BS_TryTarShot(void)
|
||||||
|
{
|
||||||
|
NATIVE_ARGS(const u8 *failInstr);
|
||||||
|
if (gDisableStructs[gBattlerTarget].tarShot || GetActiveGimmick(gBattlerTarget) == GIMMICK_TERA)
|
||||||
|
{
|
||||||
|
gBattlescriptCurrInstr = cmd->failInstr;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
gDisableStructs[gBattlerTarget].tarShot = TRUE;
|
||||||
|
gBattlescriptCurrInstr = cmd->nextInstr;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@ -42,3 +42,46 @@ SINGLE_BATTLE_TEST("Tar Shot doubles the effectiveness of Fire-type moves used o
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SINGLE_BATTLE_TEST("Tar Shot does not affect Pokemon that are Terastallized")
|
||||||
|
{
|
||||||
|
s16 damage[2];
|
||||||
|
GIVEN {
|
||||||
|
PLAYER(SPECIES_WOBBUFFET) { TeraType(TYPE_NORMAL); }
|
||||||
|
OPPONENT(SPECIES_WOBBUFFET) ;
|
||||||
|
} WHEN {
|
||||||
|
TURN { MOVE(player, MOVE_CELEBRATE, gimmick: GIMMICK_TERA); MOVE(opponent, MOVE_EMBER); }
|
||||||
|
TURN { MOVE(opponent, MOVE_TAR_SHOT); }
|
||||||
|
TURN { MOVE(opponent, MOVE_EMBER); }
|
||||||
|
} SCENE {
|
||||||
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_EMBER, opponent);
|
||||||
|
HP_BAR(player, captureDamage: &damage[0]);
|
||||||
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_TAR_SHOT, opponent);
|
||||||
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_EMBER, opponent);
|
||||||
|
HP_BAR(player, captureDamage: &damage[1]);
|
||||||
|
NOT MESSAGE("It's super effective!");
|
||||||
|
} THEN {
|
||||||
|
EXPECT_EQ(damage[0], damage[1]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
SINGLE_BATTLE_TEST("Tar Shot does affect Pokemon that Terastallized after Tar Shot status was applied")
|
||||||
|
{
|
||||||
|
s16 damage[2];
|
||||||
|
GIVEN {
|
||||||
|
PLAYER(SPECIES_WOBBUFFET) { TeraType(TYPE_NORMAL); }
|
||||||
|
OPPONENT(SPECIES_WOBBUFFET) ;
|
||||||
|
} WHEN {
|
||||||
|
TURN { MOVE(opponent, MOVE_EMBER); }
|
||||||
|
TURN { MOVE(opponent, MOVE_TAR_SHOT); }
|
||||||
|
TURN { MOVE(player, MOVE_CELEBRATE, gimmick: GIMMICK_TERA); MOVE(opponent, MOVE_EMBER); }
|
||||||
|
} SCENE {
|
||||||
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_EMBER, opponent);
|
||||||
|
HP_BAR(player, captureDamage: &damage[0]);
|
||||||
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_TAR_SHOT, opponent);
|
||||||
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_EMBER, opponent);
|
||||||
|
HP_BAR(player, captureDamage: &damage[1]);
|
||||||
|
MESSAGE("It's super effective!");
|
||||||
|
} THEN {
|
||||||
|
EXPECT_MUL_EQ(damage[0], Q_4_12(2.0), damage[1]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user