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
|
attackcanceler
|
||||||
attackstring
|
attackstring
|
||||||
ppreduce
|
ppreduce
|
||||||
jumpifmove MOVE_HOLD_HANDS, BattleScript_EffectHoldHands
|
|
||||||
attackanimation
|
attackanimation
|
||||||
waitanimation
|
waitanimation
|
||||||
jumpifmove MOVE_CELEBRATE, BattleScript_EffectCelebrate
|
|
||||||
jumpifmove MOVE_HAPPY_HOUR, BattleScript_EffectHappyHour
|
|
||||||
incrementgamestat GAME_STAT_USED_SPLASH
|
incrementgamestat GAME_STAT_USED_SPLASH
|
||||||
printstring STRINGID_BUTNOTHINGHAPPENED
|
printstring STRINGID_BUTNOTHINGHAPPENED
|
||||||
waitmessage B_WAIT_TIME_LONG
|
waitmessage B_WAIT_TIME_LONG
|
||||||
goto BattleScript_MoveEnd
|
goto BattleScript_MoveEnd
|
||||||
BattleScript_EffectHoldHands:
|
|
||||||
|
BattleScript_EffectHoldHands::
|
||||||
|
attackcanceler
|
||||||
|
attackstring
|
||||||
|
ppreduce
|
||||||
jumpifsideaffecting BS_TARGET, SIDE_STATUS_CRAFTY_SHIELD, BattleScript_ButItFailed
|
jumpifsideaffecting BS_TARGET, SIDE_STATUS_CRAFTY_SHIELD, BattleScript_ButItFailed
|
||||||
jumpifbyteequal gBattlerTarget, gBattlerAttacker, BattleScript_ButItFailed
|
jumpifbyteequal gBattlerTarget, gBattlerAttacker, BattleScript_ButItFailed
|
||||||
attackanimation
|
attackanimation
|
||||||
waitanimation
|
waitanimation
|
||||||
goto BattleScript_MoveEnd
|
goto BattleScript_MoveEnd
|
||||||
BattleScript_EffectCelebrate:
|
|
||||||
|
BattleScript_EffectCelebrate::
|
||||||
|
attackcanceler
|
||||||
|
attackstring
|
||||||
|
ppreduce
|
||||||
|
attackanimation
|
||||||
|
waitanimation
|
||||||
printstring STRINGID_CELEBRATEMESSAGE
|
printstring STRINGID_CELEBRATEMESSAGE
|
||||||
waitmessage B_WAIT_TIME_LONG
|
waitmessage B_WAIT_TIME_LONG
|
||||||
goto BattleScript_MoveEnd
|
goto BattleScript_MoveEnd
|
||||||
BattleScript_EffectHappyHour:
|
|
||||||
|
BattleScript_EffectHappyHour::
|
||||||
|
attackcanceler
|
||||||
|
attackstring
|
||||||
|
ppreduce
|
||||||
|
attackanimation
|
||||||
|
waitanimation
|
||||||
seteffectprimary MOVE_EFFECT_HAPPY_HOUR
|
seteffectprimary MOVE_EFFECT_HAPPY_HOUR
|
||||||
goto BattleScript_MoveEnd
|
goto BattleScript_MoveEnd
|
||||||
|
|
||||||
|
|
|
@ -624,6 +624,9 @@ extern const u8 BattleScript_EffectMimic[];
|
||||||
extern const u8 BattleScript_EffectMetronome[];
|
extern const u8 BattleScript_EffectMetronome[];
|
||||||
extern const u8 BattleScript_EffectLeechSeed[];
|
extern const u8 BattleScript_EffectLeechSeed[];
|
||||||
extern const u8 BattleScript_EffectDoNothing[];
|
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_EffectDisable[];
|
||||||
extern const u8 BattleScript_EffectLevelDamage[];
|
extern const u8 BattleScript_EffectLevelDamage[];
|
||||||
extern const u8 BattleScript_EffectPsywave[];
|
extern const u8 BattleScript_EffectPsywave[];
|
||||||
|
|
|
@ -67,6 +67,9 @@ enum {
|
||||||
EFFECT_METRONOME,
|
EFFECT_METRONOME,
|
||||||
EFFECT_LEECH_SEED,
|
EFFECT_LEECH_SEED,
|
||||||
EFFECT_DO_NOTHING,
|
EFFECT_DO_NOTHING,
|
||||||
|
EFFECT_HOLD_HANDS,
|
||||||
|
EFFECT_CELEBRATE,
|
||||||
|
EFFECT_HAPPY_HOUR,
|
||||||
EFFECT_DISABLE,
|
EFFECT_DISABLE,
|
||||||
EFFECT_LEVEL_DAMAGE,
|
EFFECT_LEVEL_DAMAGE,
|
||||||
EFFECT_PSYWAVE,
|
EFFECT_PSYWAVE,
|
||||||
|
|
|
@ -2412,6 +2412,9 @@ static s32 AI_CheckBadMove(u32 battlerAtk, u32 battlerDef, u32 move, s32 score)
|
||||||
ADJUST_SCORE(-10);
|
ADJUST_SCORE(-10);
|
||||||
break;
|
break;
|
||||||
case EFFECT_DO_NOTHING:
|
case EFFECT_DO_NOTHING:
|
||||||
|
case EFFECT_HOLD_HANDS:
|
||||||
|
case EFFECT_CELEBRATE:
|
||||||
|
case EFFECT_HAPPY_HOUR:
|
||||||
ADJUST_SCORE(-10);
|
ADJUST_SCORE(-10);
|
||||||
break;
|
break;
|
||||||
case EFFECT_INSTRUCT:
|
case EFFECT_INSTRUCT:
|
||||||
|
@ -3513,6 +3516,9 @@ static u32 AI_CalcMoveEffectScore(u32 battlerAtk, u32 battlerDef, u32 move)
|
||||||
ADJUST_SCORE(DECENT_EFFECT);
|
ADJUST_SCORE(DECENT_EFFECT);
|
||||||
break;
|
break;
|
||||||
case EFFECT_DO_NOTHING:
|
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)
|
//todo - check z splash, z celebrate, z happy hour (lol)
|
||||||
break;
|
break;
|
||||||
case EFFECT_TELEPORT: // Either remove or add better logic
|
case EFFECT_TELEPORT: // Either remove or add better logic
|
||||||
|
|
|
@ -425,6 +425,27 @@ const struct BattleMoveEffect gBattleMoveEffects[NUM_BATTLE_MOVE_EFFECTS] =
|
||||||
.encourageEncore = TRUE,
|
.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] =
|
[EFFECT_DISABLE] =
|
||||||
{
|
{
|
||||||
.battleScript = BattleScript_EffectDisable,
|
.battleScript = BattleScript_EffectDisable,
|
||||||
|
|
|
@ -15010,7 +15010,7 @@ const struct MoveInfo gMovesInfo[MOVES_COUNT_DYNAMAX] =
|
||||||
.description = COMPOUND_STRING(
|
.description = COMPOUND_STRING(
|
||||||
"Doubles the amount of\n"
|
"Doubles the amount of\n"
|
||||||
"Prize Money received."),
|
"Prize Money received."),
|
||||||
.effect = EFFECT_DO_NOTHING,
|
.effect = EFFECT_HAPPY_HOUR,
|
||||||
.power = 0,
|
.power = 0,
|
||||||
.type = TYPE_NORMAL,
|
.type = TYPE_NORMAL,
|
||||||
.accuracy = 0,
|
.accuracy = 0,
|
||||||
|
@ -15080,7 +15080,7 @@ const struct MoveInfo gMovesInfo[MOVES_COUNT_DYNAMAX] =
|
||||||
.description = COMPOUND_STRING(
|
.description = COMPOUND_STRING(
|
||||||
"Congratulates you on your\n"
|
"Congratulates you on your\n"
|
||||||
"special day."),
|
"special day."),
|
||||||
.effect = EFFECT_DO_NOTHING,
|
.effect = EFFECT_CELEBRATE,
|
||||||
.power = 0,
|
.power = 0,
|
||||||
.type = TYPE_NORMAL,
|
.type = TYPE_NORMAL,
|
||||||
.accuracy = 0,
|
.accuracy = 0,
|
||||||
|
@ -15110,7 +15110,7 @@ const struct MoveInfo gMovesInfo[MOVES_COUNT_DYNAMAX] =
|
||||||
.description = COMPOUND_STRING(
|
.description = COMPOUND_STRING(
|
||||||
"The user and ally hold hands\n"
|
"The user and ally hold hands\n"
|
||||||
"making them happy."),
|
"making them happy."),
|
||||||
.effect = EFFECT_DO_NOTHING,
|
.effect = EFFECT_HOLD_HANDS,
|
||||||
.power = 0,
|
.power = 0,
|
||||||
.type = TYPE_NORMAL,
|
.type = TYPE_NORMAL,
|
||||||
.accuracy = 0,
|
.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