diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index 8caab496b9..31662bbd86 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -292,6 +292,72 @@ gBattleScriptsForMoveEffects:: @ 82D86A8 .4byte BattleScript_EffectTwoTypedMove .4byte BattleScript_EffectMeFirst .4byte BattleScript_EffectSpeedUpHit + .4byte BattleScript_EffectQuiverDance + .4byte BattleScript_EffectCoil + +BattleScript_EffectCoil: + attackcanceler + attackstring + ppreduce + jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_ATK, 0xC, BattleScript_CoilDoMoveAnim + jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_DEF, 0xC, BattleScript_CoilDoMoveAnim + jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_ACC, 0xC, BattleScript_CantRaiseMultipleStats +BattleScript_CoilDoMoveAnim: + attackanimation + waitanimation + setbyte sSTAT_ANIM_PLAYED, FALSE + playstatchangeanimation BS_ATTACKER, BIT_SPATK | BIT_SPDEF | BIT_SPEED, 0x0 + setstatchanger STAT_ATK, 1, FALSE + statbuffchange MOVE_EFFECT_AFFECTS_USER | 0x1, BattleScript_CoilTryDef + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_CoilTryDef + printfromtable gStatUpStringIds + waitmessage 0x40 +BattleScript_CoilTryDef: + setstatchanger STAT_DEF, 1, FALSE + statbuffchange MOVE_EFFECT_AFFECTS_USER | 0x1, BattleScript_CoilTryAcc + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_CoilTryAcc + printfromtable gStatUpStringIds + waitmessage 0x40 +BattleScript_CoilTryAcc: + setstatchanger STAT_ACC, 1, FALSE + statbuffchange MOVE_EFFECT_AFFECTS_USER | 0x1, BattleScript_CoilEnd + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_CoilEnd + printfromtable gStatUpStringIds + waitmessage 0x40 +BattleScript_CoilEnd: + goto BattleScript_MoveEnd + +BattleScript_EffectQuiverDance: + attackcanceler + attackstring + ppreduce + jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPATK, 0xC, BattleScript_QuiverDanceDoMoveAnim + jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPDEF, 0xC, BattleScript_QuiverDanceDoMoveAnim + jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPEED, 0xC, BattleScript_CantRaiseMultipleStats +BattleScript_QuiverDanceDoMoveAnim:: + attackanimation + waitanimation + setbyte sSTAT_ANIM_PLAYED, FALSE + playstatchangeanimation BS_ATTACKER, BIT_SPATK | BIT_SPDEF | BIT_SPEED, 0x0 + setstatchanger STAT_SPATK, 1, FALSE + statbuffchange MOVE_EFFECT_AFFECTS_USER | 0x1, BattleScript_QuiverDanceTrySpDef + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_QuiverDanceTrySpDef + printfromtable gStatUpStringIds + waitmessage 0x40 +BattleScript_QuiverDanceTrySpDef:: + setstatchanger STAT_SPDEF, 1, FALSE + statbuffchange MOVE_EFFECT_AFFECTS_USER | 0x1, BattleScript_QuiverDanceTrySpeed + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_QuiverDanceTrySpeed + printfromtable gStatUpStringIds + waitmessage 0x40 +BattleScript_QuiverDanceTrySpeed:: + setstatchanger STAT_SPEED, 1, FALSE + statbuffchange MOVE_EFFECT_AFFECTS_USER | 0x1, BattleScript_QuiverDanceEnd + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_QuiverDanceEnd + printfromtable gStatUpStringIds + waitmessage 0x40 +BattleScript_QuiverDanceEnd:: + goto BattleScript_MoveEnd BattleScript_EffectSpeedUpHit: setmoveeffect MOVE_EFFECT_SPD_PLUS_1 | MOVE_EFFECT_AFFECTS_USER diff --git a/include/constants/battle_move_effects.h b/include/constants/battle_move_effects.h index 488aca722c..c1fa0fdd17 100644 --- a/include/constants/battle_move_effects.h +++ b/include/constants/battle_move_effects.h @@ -281,5 +281,7 @@ #define EFFECT_TWO_TYPED_MOVE 275 #define EFFECT_ME_FIRST 276 #define EFFECT_SPEED_UP_HIT 277 +#define EFFECT_QUIVER_DANCE 278 +#define EFFECT_COIL 279 #endif // GUARD_CONSTANTS_BATTLE_MOVE_EFFECTS_H diff --git a/include/data/battle_moves.h b/include/data/battle_moves.h index f251d5fa99..9c346c0212 100644 --- a/include/data/battle_moves.h +++ b/include/data/battle_moves.h @@ -1552,7 +1552,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_GEN6] = .split = SPLIT_PHYSICAL, }, { // MOVE_SWIFT - .effect = EFFECT_ALWAYS_HIT, + .effect = EFFECT_HIT, .power = 60, .type = TYPE_NORMAL, .accuracy = 0, @@ -2224,7 +2224,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_GEN6] = .split = SPLIT_STATUS, }, { // MOVE_FAINT_ATTACK - .effect = EFFECT_ALWAYS_HIT, + .effect = EFFECT_HIT, .power = 60, .type = TYPE_DARK, .accuracy = 0, @@ -3904,7 +3904,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_GEN6] = .split = SPLIT_SPECIAL, }, { // MOVE_SHADOW_PUNCH - .effect = EFFECT_ALWAYS_HIT, + .effect = EFFECT_HIT, .power = 60, .type = TYPE_GHOST, .accuracy = 0, @@ -3988,7 +3988,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_GEN6] = .split = SPLIT_PHYSICAL, }, { // MOVE_AERIAL_ACE - .effect = EFFECT_ALWAYS_HIT, + .effect = EFFECT_HIT, .power = 60, .type = TYPE_FLYING, .accuracy = 0, @@ -4144,7 +4144,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_GEN6] = .split = SPLIT_PHYSICAL, }, { // MOVE_MAGICAL_LEAF - .effect = EFFECT_ALWAYS_HIT, + .effect = EFFECT_HIT, .power = 60, .type = TYPE_GRASS, .accuracy = 0, @@ -4216,7 +4216,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_GEN6] = .split = SPLIT_PHYSICAL, }, { // MOVE_SHOCK_WAVE - .effect = EFFECT_ALWAYS_HIT, + .effect = EFFECT_HIT, .power = 60, .type = TYPE_ELECTRIC, .accuracy = 0, @@ -4756,7 +4756,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_GEN6] = .split = SPLIT_PHYSICAL, }, { // MOVE_AURA_SPHERE - .effect = EFFECT_ALWAYS_HIT, + .effect = EFFECT_HIT, .power = 80, .type = TYPE_FIGHTING, .accuracy = 0, @@ -5320,7 +5320,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_GEN6] = .split = SPLIT_PHYSICAL, }, { // MOVE_MAGNET_BOMB - .effect = EFFECT_ALWAYS_HIT, + .effect = EFFECT_HIT, .power = 60, .type = TYPE_STEEL, .accuracy = 0, @@ -5800,7 +5800,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_GEN6] = .split = SPLIT_SPECIAL, }, { // MOVE_QUIVER_DANCE - .effect = EFFECT_PLACEHOLDER, // Needs a custom move effect + .effect = EFFECT_QUIVER_DANCE, .power = 0, .type = TYPE_BUG, .accuracy = 0, @@ -5872,7 +5872,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_GEN6] = .split = SPLIT_PHYSICAL, }, { // MOVE_COIL - .effect = EFFECT_PLACEHOLDER, // Needs a custom move effect + .effect = EFFECT_COIL, .power = 0, .type = TYPE_POISON, .accuracy = 0,