From 38c61854e692ff5dae92fa90657b95f1372bb820 Mon Sep 17 00:00:00 2001 From: Alex <93446519+AlexOn1ine@users.noreply.github.com> Date: Thu, 14 Dec 2023 18:09:06 +0100 Subject: [PATCH] Changed Ivy Gudgel effect (#3721) * Change Ivy Gudgel effect * test assumptions --------- Co-authored-by: Bassoonian --- data/battle_scripts_1.s | 3 +-- include/constants/battle_move_effects.h | 11 ++++----- src/battle_main.c | 7 +----- src/data/battle_moves.h | 3 ++- test/battle/move_effect/ivy_cudgel.c | 6 +++++ test/battle/move_effect/techno_blast.c | 31 +++++++++++++++++++++++++ 6 files changed, 46 insertions(+), 15 deletions(-) create mode 100644 test/battle/move_effect/techno_blast.c diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index 1598ecd53c..d057ca5092 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -439,7 +439,6 @@ gBattleScriptsForMoveEffects:: .4byte BattleScript_EffectChillyReception @ EFFECT_CHILLY_RECEPTION .4byte BattleScript_EffectMatchaGotcha @ EFFECT_MATCHA_GOTCHA .4byte BattleScript_EffectSyrupBomb @ EFFECT_SYRUP_BOMB - .4byte BattleScript_EffectHit @ EFFECT_IVY_CUDGEL .4byte BattleScript_EffectMaxMove @ EFFECT_MAX_MOVE .4byte BattleScript_EffectGlaiveRush @ EFFECT_GLAIVE_RUSH .4byte BattleScript_EffectBrickBreak @ EFFECT_RAGING_BULL @@ -10813,7 +10812,7 @@ BattleScript_BerserkGeneRet_End: BattleScript_EffectSnow:: attackcanceler attackstring - ppreduce + ppreduce call BattleScript_CheckPrimalWeather setsnow goto BattleScript_MoveWeatherChange diff --git a/include/constants/battle_move_effects.h b/include/constants/battle_move_effects.h index 47edeb55bf..beebe59462 100644 --- a/include/constants/battle_move_effects.h +++ b/include/constants/battle_move_effects.h @@ -416,12 +416,11 @@ #define EFFECT_CHILLY_RECEPTION 410 #define EFFECT_MATCHA_GOTCHA 411 #define EFFECT_SYRUP_BOMB 412 -#define EFFECT_IVY_CUDGEL 413 -#define EFFECT_MAX_MOVE 414 -#define EFFECT_GLAIVE_RUSH 415 -#define EFFECT_RAGING_BULL 416 -#define EFFECT_RAGE_FIST 417 +#define EFFECT_MAX_MOVE 413 +#define EFFECT_GLAIVE_RUSH 414 +#define EFFECT_RAGING_BULL 415 +#define EFFECT_RAGE_FIST 416 -#define NUM_BATTLE_MOVE_EFFECTS 418 +#define NUM_BATTLE_MOVE_EFFECTS 417 #endif // GUARD_CONSTANTS_BATTLE_MOVE_EFFECTS_H diff --git a/src/battle_main.c b/src/battle_main.c index 65df1dd51d..93702541c5 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -5606,12 +5606,7 @@ void SetTypeBeforeUsingMove(u32 move, u32 battlerAtk) gBattleStruct->dynamicMoveType++; gBattleStruct->dynamicMoveType |= F_DYNAMIC_TYPE_IGNORE_PHYSICALITY | F_DYNAMIC_TYPE_SET; } - else if (gBattleMoves[move].effect == EFFECT_CHANGE_TYPE_ON_ITEM) - { - if (holdEffect == gBattleMoves[move].argument) - gBattleStruct->dynamicMoveType = ItemId_GetSecondaryId(gBattleMons[battlerAtk].item) | F_DYNAMIC_TYPE_SET; - } - else if (gBattleMoves[move].effect == EFFECT_IVY_CUDGEL && holdEffect == HOLD_EFFECT_MASK) + else if (gBattleMoves[move].effect == EFFECT_CHANGE_TYPE_ON_ITEM && holdEffect == gBattleMoves[move].argument) { gBattleStruct->dynamicMoveType = ItemId_GetSecondaryId(gBattleMons[battlerAtk].item) | F_DYNAMIC_TYPE_SET; } diff --git a/src/data/battle_moves.h b/src/data/battle_moves.h index fadd8818a6..ea4f268f49 100644 --- a/src/data/battle_moves.h +++ b/src/data/battle_moves.h @@ -14447,7 +14447,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = [MOVE_IVY_CUDGEL] = { - .effect = EFFECT_IVY_CUDGEL, + .effect = EFFECT_CHANGE_TYPE_ON_ITEM, .power = 100, .type = TYPE_GRASS, .accuracy = 100, @@ -14456,6 +14456,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .target = MOVE_TARGET_SELECTED, .priority = 0, .split = SPLIT_PHYSICAL, + .argument = HOLD_EFFECT_MASK, .zMoveEffect = Z_EFFECT_NONE, .highCritRatio = TRUE, .metronomeBanned = TRUE, diff --git a/test/battle/move_effect/ivy_cudgel.c b/test/battle/move_effect/ivy_cudgel.c index ef0611c84f..e7aab5bc95 100644 --- a/test/battle/move_effect/ivy_cudgel.c +++ b/test/battle/move_effect/ivy_cudgel.c @@ -1,6 +1,12 @@ #include "global.h" #include "test/battle.h" +ASSUMPTIONS +{ + ASSUME(gBattleMoves[MOVE_IVY_CUDGEL].effect == EFFECT_CHANGE_TYPE_ON_ITEM); + ASSUME(gBattleMoves[MOVE_IVY_CUDGEL].argument == HOLD_EFFECT_MASK); +} + SINGLE_BATTLE_TEST("Ivy Gudgel changes the move type depending on the mask the user holds") { u16 species; diff --git a/test/battle/move_effect/techno_blast.c b/test/battle/move_effect/techno_blast.c new file mode 100644 index 0000000000..2a5b4f4396 --- /dev/null +++ b/test/battle/move_effect/techno_blast.c @@ -0,0 +1,31 @@ +#include "global.h" +#include "test/battle.h" + +ASSUMPTIONS +{ + ASSUME(gBattleMoves[MOVE_TECHNO_BLAST].effect == EFFECT_CHANGE_TYPE_ON_ITEM); + ASSUME(gBattleMoves[MOVE_TECHNO_BLAST].argument == HOLD_EFFECT_DRIVE); +} + + +SINGLE_BATTLE_TEST("Techno Blast changes the move type depending on the mask the user holds") +{ + u16 species; + u16 item; + + PARAMETRIZE { species = SPECIES_CHARIZARD; item = ITEM_DOUSE_DRIVE; } + PARAMETRIZE { species = SPECIES_BLASTOISE; item = ITEM_SHOCK_DRIVE; } + PARAMETRIZE { species = SPECIES_VENUSAUR; item = ITEM_BURN_DRIVE; } + PARAMETRIZE { species = SPECIES_DRATINI; item = ITEM_CHILL_DRIVE; } + + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { Item(item); } + OPPONENT(species); + } WHEN { + TURN { MOVE(player, MOVE_TECHNO_BLAST); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_TECHNO_BLAST, player); + HP_BAR(opponent); + MESSAGE("It's super effective!"); + } +}