Split "Do nothing" move effects (#5613)
This commit is contained in:
parent
42b94e378b
commit
0322d51887
7 changed files with 80 additions and 9 deletions
|
@ -3868,26 +3868,39 @@ BattleScript_EffectDoNothing::
|
|||
attackcanceler
|
||||
attackstring
|
||||
ppreduce
|
||||
jumpifmove MOVE_HOLD_HANDS, BattleScript_EffectHoldHands
|
||||
attackanimation
|
||||
waitanimation
|
||||
jumpifmove MOVE_CELEBRATE, BattleScript_EffectCelebrate
|
||||
jumpifmove MOVE_HAPPY_HOUR, BattleScript_EffectHappyHour
|
||||
incrementgamestat GAME_STAT_USED_SPLASH
|
||||
printstring STRINGID_BUTNOTHINGHAPPENED
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
goto BattleScript_MoveEnd
|
||||
BattleScript_EffectHoldHands:
|
||||
|
||||
BattleScript_EffectHoldHands::
|
||||
attackcanceler
|
||||
attackstring
|
||||
ppreduce
|
||||
jumpifsideaffecting BS_TARGET, SIDE_STATUS_CRAFTY_SHIELD, BattleScript_ButItFailed
|
||||
jumpifbyteequal gBattlerTarget, gBattlerAttacker, BattleScript_ButItFailed
|
||||
attackanimation
|
||||
waitanimation
|
||||
goto BattleScript_MoveEnd
|
||||
BattleScript_EffectCelebrate:
|
||||
|
||||
BattleScript_EffectCelebrate::
|
||||
attackcanceler
|
||||
attackstring
|
||||
ppreduce
|
||||
attackanimation
|
||||
waitanimation
|
||||
printstring STRINGID_CELEBRATEMESSAGE
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
goto BattleScript_MoveEnd
|
||||
BattleScript_EffectHappyHour:
|
||||
|
||||
BattleScript_EffectHappyHour::
|
||||
attackcanceler
|
||||
attackstring
|
||||
ppreduce
|
||||
attackanimation
|
||||
waitanimation
|
||||
seteffectprimary MOVE_EFFECT_HAPPY_HOUR
|
||||
goto BattleScript_MoveEnd
|
||||
|
||||
|
|
|
@ -624,6 +624,9 @@ extern const u8 BattleScript_EffectMimic[];
|
|||
extern const u8 BattleScript_EffectMetronome[];
|
||||
extern const u8 BattleScript_EffectLeechSeed[];
|
||||
extern const u8 BattleScript_EffectDoNothing[];
|
||||
extern const u8 BattleScript_EffectHoldHands[];
|
||||
extern const u8 BattleScript_EffectCelebrate[];
|
||||
extern const u8 BattleScript_EffectHappyHour[];
|
||||
extern const u8 BattleScript_EffectDisable[];
|
||||
extern const u8 BattleScript_EffectLevelDamage[];
|
||||
extern const u8 BattleScript_EffectPsywave[];
|
||||
|
|
|
@ -67,6 +67,9 @@ enum {
|
|||
EFFECT_METRONOME,
|
||||
EFFECT_LEECH_SEED,
|
||||
EFFECT_DO_NOTHING,
|
||||
EFFECT_HOLD_HANDS,
|
||||
EFFECT_CELEBRATE,
|
||||
EFFECT_HAPPY_HOUR,
|
||||
EFFECT_DISABLE,
|
||||
EFFECT_LEVEL_DAMAGE,
|
||||
EFFECT_PSYWAVE,
|
||||
|
|
|
@ -2412,6 +2412,9 @@ static s32 AI_CheckBadMove(u32 battlerAtk, u32 battlerDef, u32 move, s32 score)
|
|||
ADJUST_SCORE(-10);
|
||||
break;
|
||||
case EFFECT_DO_NOTHING:
|
||||
case EFFECT_HOLD_HANDS:
|
||||
case EFFECT_CELEBRATE:
|
||||
case EFFECT_HAPPY_HOUR:
|
||||
ADJUST_SCORE(-10);
|
||||
break;
|
||||
case EFFECT_INSTRUCT:
|
||||
|
@ -3513,6 +3516,9 @@ static u32 AI_CalcMoveEffectScore(u32 battlerAtk, u32 battlerDef, u32 move)
|
|||
ADJUST_SCORE(DECENT_EFFECT);
|
||||
break;
|
||||
case EFFECT_DO_NOTHING:
|
||||
case EFFECT_HOLD_HANDS:
|
||||
case EFFECT_CELEBRATE:
|
||||
case EFFECT_HAPPY_HOUR:
|
||||
//todo - check z splash, z celebrate, z happy hour (lol)
|
||||
break;
|
||||
case EFFECT_TELEPORT: // Either remove or add better logic
|
||||
|
|
|
@ -425,6 +425,27 @@ const struct BattleMoveEffect gBattleMoveEffects[NUM_BATTLE_MOVE_EFFECTS] =
|
|||
.encourageEncore = TRUE,
|
||||
},
|
||||
|
||||
[EFFECT_HOLD_HANDS] =
|
||||
{
|
||||
.battleScript = BattleScript_EffectHoldHands,
|
||||
.battleTvScore = 1,
|
||||
.encourageEncore = TRUE,
|
||||
},
|
||||
|
||||
[EFFECT_CELEBRATE] =
|
||||
{
|
||||
.battleScript = BattleScript_EffectCelebrate,
|
||||
.battleTvScore = 1,
|
||||
.encourageEncore = TRUE,
|
||||
},
|
||||
|
||||
[EFFECT_HAPPY_HOUR] =
|
||||
{
|
||||
.battleScript = BattleScript_EffectHappyHour,
|
||||
.battleTvScore = 1,
|
||||
.encourageEncore = TRUE,
|
||||
},
|
||||
|
||||
[EFFECT_DISABLE] =
|
||||
{
|
||||
.battleScript = BattleScript_EffectDisable,
|
||||
|
|
|
@ -15010,7 +15010,7 @@ const struct MoveInfo gMovesInfo[MOVES_COUNT_DYNAMAX] =
|
|||
.description = COMPOUND_STRING(
|
||||
"Doubles the amount of\n"
|
||||
"Prize Money received."),
|
||||
.effect = EFFECT_DO_NOTHING,
|
||||
.effect = EFFECT_HAPPY_HOUR,
|
||||
.power = 0,
|
||||
.type = TYPE_NORMAL,
|
||||
.accuracy = 0,
|
||||
|
@ -15080,7 +15080,7 @@ const struct MoveInfo gMovesInfo[MOVES_COUNT_DYNAMAX] =
|
|||
.description = COMPOUND_STRING(
|
||||
"Congratulates you on your\n"
|
||||
"special day."),
|
||||
.effect = EFFECT_DO_NOTHING,
|
||||
.effect = EFFECT_CELEBRATE,
|
||||
.power = 0,
|
||||
.type = TYPE_NORMAL,
|
||||
.accuracy = 0,
|
||||
|
@ -15110,7 +15110,7 @@ const struct MoveInfo gMovesInfo[MOVES_COUNT_DYNAMAX] =
|
|||
.description = COMPOUND_STRING(
|
||||
"The user and ally hold hands\n"
|
||||
"making them happy."),
|
||||
.effect = EFFECT_DO_NOTHING,
|
||||
.effect = EFFECT_HOLD_HANDS,
|
||||
.power = 0,
|
||||
.type = TYPE_NORMAL,
|
||||
.accuracy = 0,
|
||||
|
|
25
test/battle/move_effect/hold_hands.c
Normal file
25
test/battle/move_effect/hold_hands.c
Normal file
|
@ -0,0 +1,25 @@
|
|||
#include "global.h"
|
||||
#include "test/battle.h"
|
||||
|
||||
ASSUMPTIONS
|
||||
{
|
||||
ASSUME(gMovesInfo[MOVE_HOLD_HANDS].effect == EFFECT_HOLD_HANDS);
|
||||
}
|
||||
|
||||
DOUBLE_BATTLE_TEST("Hold Hands is blocked by Crafty Shield")
|
||||
{
|
||||
GIVEN {
|
||||
PLAYER(SPECIES_WYNAUT);
|
||||
PLAYER(SPECIES_WYNAUT);
|
||||
OPPONENT(SPECIES_WOBBUFFET);
|
||||
OPPONENT(SPECIES_WOBBUFFET);
|
||||
} WHEN {
|
||||
TURN {
|
||||
MOVE(playerLeft, MOVE_CRAFTY_SHIELD, target: opponentLeft);
|
||||
MOVE(playerRight, MOVE_HOLD_HANDS, target: playerLeft);
|
||||
}
|
||||
} SCENE {
|
||||
NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_HOLD_HANDS, playerLeft);
|
||||
MESSAGE("Wynaut protected itself!");
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue