From 29ae22183bda084c2a9d3af85c04aefb58562e26 Mon Sep 17 00:00:00 2001 From: Bassoonian Date: Fri, 18 Nov 2022 22:17:08 +0100 Subject: [PATCH] Mystical Power effect --- data/battle_scripts_1.s | 5 +++++ include/constants/battle_move_effects.h | 3 ++- src/battle_ai_main.c | 4 ++++ src/battle_tv.c | 1 + src/data/battle_moves.h | 2 +- 5 files changed, 13 insertions(+), 2 deletions(-) diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index 9b7e3a070c..31251d62f2 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -414,6 +414,7 @@ gBattleScriptsForMoveEffects:: .4byte BattleScript_EffectDarkVoid @ EFFECT_DARK_VOID .4byte BattleScript_EffectSleepHit @ EFFECT_SLEEP_HIT .4byte BattleScript_EffectDoubleShock @ EFFECT_DOUBLE_SHOCK + .4byte BattleScript_EffectSpecialAttackUpHit @ EFFECT_SPECIAL_ATTACK_UP_HIT BattleScript_AffectionBasedEndurance:: playanimation BS_TARGET, B_ANIM_AFFECTION_HANGED_ON @@ -4993,6 +4994,10 @@ BattleScript_EffectAttackUpHit:: setmoveeffect MOVE_EFFECT_ATK_PLUS_1 | MOVE_EFFECT_AFFECTS_USER goto BattleScript_EffectHit +BattleScript_EffectSpecialAttackUpHit:: + setmoveeffect MOVE_EFFECT_SP_ATK_PLUS_1 | MOVE_EFFECT_AFFECTS_USER + goto BattleScript_EffectHit + BattleScript_EffectAllStatsUpHit:: setmoveeffect MOVE_EFFECT_ALL_STATS_UP | MOVE_EFFECT_AFFECTS_USER goto BattleScript_EffectHit diff --git a/include/constants/battle_move_effects.h b/include/constants/battle_move_effects.h index a2a633fb87..f6f109122a 100644 --- a/include/constants/battle_move_effects.h +++ b/include/constants/battle_move_effects.h @@ -395,7 +395,8 @@ #define EFFECT_DARK_VOID 389 #define EFFECT_SLEEP_HIT 390 #define EFFECT_DOUBLE_SHOCK 391 +#define EFFECT_SPECIAL_ATTACK_UP_HIT 392 -#define NUM_BATTLE_MOVE_EFFECTS 392 +#define NUM_BATTLE_MOVE_EFFECTS 393 #endif // GUARD_CONSTANTS_BATTLE_MOVE_EFFECTS_H diff --git a/src/battle_ai_main.c b/src/battle_ai_main.c index e141a45bf1..16a40de3d0 100644 --- a/src/battle_ai_main.c +++ b/src/battle_ai_main.c @@ -3942,6 +3942,10 @@ static s16 AI_CheckViability(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) if (sereneGraceBoost) IncreaseStatUpScore(battlerAtk, battlerDef, STAT_ATK, &score); break; + case EFFECT_SPECIAL_ATTACK_UP_HIT: + if (sereneGraceBoost) + IncreaseStatUpScore(battlerAtk, battlerDef, STAT_SPATK, &score); + break; case EFFECT_FELL_STINGER: if (gBattleMons[battlerAtk].statStages[STAT_ATK] < MAX_STAT_STAGE && AI_DATA->abilities[battlerAtk] != ABILITY_CONTRARY diff --git a/src/battle_tv.c b/src/battle_tv.c index db51c3f4eb..5a2a96e862 100644 --- a/src/battle_tv.c +++ b/src/battle_tv.c @@ -301,6 +301,7 @@ static const u16 sPoints_MoveEffect[NUM_BATTLE_MOVE_EFFECTS] = [EFFECT_DRAGON_DANCE] = 1, [EFFECT_CAMOUFLAGE] = 3, [EFFECT_SLEEP_HIT] = 1, + [EFFECT_SPECIAL_ATTACK_UP_HIT] = 1, }; static const u16 sPoints_Effectiveness[] = diff --git a/src/data/battle_moves.h b/src/data/battle_moves.h index c7f1064cc2..116c492944 100644 --- a/src/data/battle_moves.h +++ b/src/data/battle_moves.h @@ -13362,7 +13362,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_MYSTICAL_POWER] = { - .effect = EFFECT_PLACEHOLDER, // EFFECT_SPECIAL_ATTACK_UP_HIT + .effect = EFFECT_SPECIAL_ATTACK_UP_HIT, .power = 70, .type = TYPE_PSYCHIC, .accuracy = 90,