Superpower, CC, Hammer Arm
This commit is contained in:
parent
a8967da1c5
commit
e87fe533c3
7 changed files with 43 additions and 43 deletions
|
@ -116,7 +116,7 @@ gBattleScriptsForMoveEffects::
|
|||
.4byte BattleScript_EffectConversion2 @ EFFECT_CONVERSION_2
|
||||
.4byte BattleScript_EffectLockOn @ EFFECT_LOCK_ON
|
||||
.4byte BattleScript_EffectSketch @ EFFECT_SKETCH
|
||||
.4byte BattleScript_EffectHammerArm @ EFFECT_HAMMER_ARM
|
||||
.4byte BattleScript_EffectHit @ EFFECT_UNUSED_94
|
||||
.4byte BattleScript_EffectSleepTalk @ EFFECT_SLEEP_TALK
|
||||
.4byte BattleScript_EffectDestinyBond @ EFFECT_DESTINY_BOND
|
||||
.4byte BattleScript_EffectHit @ EFFECT_FLAIL
|
||||
|
@ -199,7 +199,7 @@ gBattleScriptsForMoveEffects::
|
|||
.4byte BattleScript_EffectWish @ EFFECT_WISH
|
||||
.4byte BattleScript_EffectAssist @ EFFECT_ASSIST
|
||||
.4byte BattleScript_EffectIngrain @ EFFECT_INGRAIN
|
||||
.4byte BattleScript_EffectSuperpower @ EFFECT_SUPERPOWER
|
||||
.4byte BattleScript_EffectHit @ EFFECT_UNUSED_177
|
||||
.4byte BattleScript_EffectMagicCoat @ EFFECT_MAGIC_COAT
|
||||
.4byte BattleScript_EffectRecycle @ EFFECT_RECYCLE
|
||||
.4byte BattleScript_EffectHit @ EFFECT_REVENGE
|
||||
|
@ -301,7 +301,7 @@ gBattleScriptsForMoveEffects::
|
|||
.4byte BattleScript_EffectReflectType @ EFFECT_REFLECT_TYPE
|
||||
.4byte BattleScript_EffectSoak @ EFFECT_SOAK
|
||||
.4byte BattleScript_EffectGrowth @ EFFECT_GROWTH
|
||||
.4byte BattleScript_EffectCloseCombat @ EFFECT_CLOSE_COMBAT
|
||||
.4byte BattleScript_EffectHit @ EFFECT_UNUSED_279
|
||||
.4byte BattleScript_EffectLastResort @ EFFECT_LAST_RESORT
|
||||
.4byte BattleScript_EffectHit @ EFFECT_RECOIL_33_STATUS
|
||||
.4byte BattleScript_EffectHit @ EFFECT_UNUSED_282
|
||||
|
@ -5630,14 +5630,6 @@ BattleScript_EffectIngrain:
|
|||
waitmessage B_WAIT_TIME_LONG
|
||||
goto BattleScript_MoveEnd
|
||||
|
||||
BattleScript_EffectSuperpower:
|
||||
setmoveeffect MOVE_EFFECT_ATK_DEF_DOWN | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN
|
||||
goto BattleScript_EffectHit
|
||||
|
||||
BattleScript_EffectCloseCombat:
|
||||
setmoveeffect MOVE_EFFECT_DEF_SPDEF_DOWN | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN
|
||||
goto BattleScript_EffectHit
|
||||
|
||||
BattleScript_EffectMagicCoat:
|
||||
attackcanceler
|
||||
trysetmagiccoat BattleScript_FailedFromAtkString
|
||||
|
@ -5884,10 +5876,6 @@ BattleScript_EffectWaterSport::
|
|||
waitmessage B_WAIT_TIME_LONG
|
||||
goto BattleScript_MoveEnd
|
||||
|
||||
BattleScript_EffectHammerArm::
|
||||
setmoveeffect MOVE_EFFECT_SPD_MINUS_1 | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN
|
||||
goto BattleScript_EffectHit
|
||||
|
||||
BattleScript_EffectTickle::
|
||||
attackcanceler
|
||||
attackstring
|
||||
|
|
|
@ -95,7 +95,7 @@
|
|||
#define EFFECT_CONVERSION_2 91
|
||||
#define EFFECT_LOCK_ON 92
|
||||
#define EFFECT_SKETCH 93
|
||||
#define EFFECT_HAMMER_ARM 94
|
||||
#define EFFECT_UNUSED_94 94
|
||||
#define EFFECT_SLEEP_TALK 95
|
||||
#define EFFECT_DESTINY_BOND 96
|
||||
#define EFFECT_FLAIL 97
|
||||
|
@ -178,7 +178,7 @@
|
|||
#define EFFECT_WISH 174
|
||||
#define EFFECT_ASSIST 175
|
||||
#define EFFECT_INGRAIN 176
|
||||
#define EFFECT_SUPERPOWER 177
|
||||
#define EFFECT_UNUSED_177 177
|
||||
#define EFFECT_MAGIC_COAT 178
|
||||
#define EFFECT_RECYCLE 179
|
||||
#define EFFECT_REVENGE 180
|
||||
|
@ -282,7 +282,7 @@
|
|||
#define EFFECT_REFLECT_TYPE 276
|
||||
#define EFFECT_SOAK 277
|
||||
#define EFFECT_GROWTH 278
|
||||
#define EFFECT_CLOSE_COMBAT 279
|
||||
#define EFFECT_UNUSED_279 279
|
||||
#define EFFECT_LAST_RESORT 280
|
||||
#define EFFECT_RECOIL_33_STATUS 281
|
||||
#define EFFECT_UNUSED_282 282
|
||||
|
|
|
@ -4339,7 +4339,6 @@ static s32 AI_CheckViability(u32 battlerAtk, u32 battlerDef, u32 move, s32 score
|
|||
else
|
||||
ADJUST_SCORE(1);
|
||||
break;
|
||||
case EFFECT_SUPERPOWER:
|
||||
case EFFECT_MAKE_IT_RAIN:
|
||||
if (aiData->abilities[battlerAtk] == ABILITY_CONTRARY)
|
||||
ADJUST_SCORE(3);
|
||||
|
@ -4870,7 +4869,10 @@ static s32 AI_CheckViability(u32 battlerAtk, u32 battlerDef, u32 move, s32 score
|
|||
if (sereneGraceBoost)
|
||||
IncreaseStatUpScore(battlerAtk, battlerDef, STAT_SPATK, &score);
|
||||
break;
|
||||
// case EFFECT_SUPERPOWER:
|
||||
// Effects that lower stat(s) - only need to consider Contrary
|
||||
case MOVE_EFFECT_V_CREATE:
|
||||
case MOVE_EFFECT_DEF_SPDEF_DOWN:
|
||||
case MOVE_EFFECT_ATK_DEF_DOWN:
|
||||
case MOVE_EFFECT_SP_ATK_TWO_DOWN:
|
||||
if (aiData->abilities[battlerAtk] == ABILITY_CONTRARY)
|
||||
ADJUST_SCORE(3);
|
||||
|
|
|
@ -955,7 +955,6 @@ static bool32 AI_IsMoveEffectInMinus(u32 battlerAtk, u32 battlerDef, u32 move, s
|
|||
switch (gBattleMoves[move].effect)
|
||||
{
|
||||
case EFFECT_RECHARGE:
|
||||
case EFFECT_SUPERPOWER:
|
||||
case EFFECT_MAKE_IT_RAIN:
|
||||
case EFFECT_MIND_BLOWN:
|
||||
case EFFECT_STEEL_BEAM:
|
||||
|
@ -978,6 +977,9 @@ static bool32 AI_IsMoveEffectInMinus(u32 battlerAtk, u32 battlerDef, u32 move, s
|
|||
case MOVE_EFFECT_SPD_MINUS_1:
|
||||
case MOVE_EFFECT_SP_ATK_MINUS_1:
|
||||
case MOVE_EFFECT_SP_ATK_TWO_DOWN:
|
||||
case MOVE_EFFECT_V_CREATE:
|
||||
case MOVE_EFFECT_ATK_DEF_DOWN:
|
||||
case MOVE_EFFECT_DEF_SPDEF_DOWN:
|
||||
case MOVE_EFFECT_SP_DEF_MINUS_1:
|
||||
case MOVE_EFFECT_SP_DEF_MINUS_2:
|
||||
if ((gBattleMoves[move].additionalEffects[i].self && GetBattlerAbility(battlerAtk) != ABILITY_CONTRARY)
|
||||
|
|
|
@ -246,7 +246,6 @@ static const u16 sPoints_MoveEffect[NUM_BATTLE_MOVE_EFFECTS] =
|
|||
[EFFECT_WISH] = 2,
|
||||
[EFFECT_ASSIST] = 2,
|
||||
[EFFECT_INGRAIN] = 6,
|
||||
[EFFECT_SUPERPOWER] = 3,
|
||||
[EFFECT_MAGIC_COAT] = 6,
|
||||
[EFFECT_RECYCLE] = 4,
|
||||
[EFFECT_REVENGE] = 4,
|
||||
|
@ -344,7 +343,6 @@ static const u16 sPoints_MoveEffect[NUM_BATTLE_MOVE_EFFECTS] =
|
|||
[EFFECT_REFLECT_TYPE] = 0, // TODO: Assign points
|
||||
[EFFECT_SOAK] = 0, // TODO: Assign points
|
||||
[EFFECT_GROWTH] = 0, // TODO: Assign points
|
||||
[EFFECT_CLOSE_COMBAT] = 0, // TODO: Assign points
|
||||
[EFFECT_LAST_RESORT] = 0, // TODO: Assign points
|
||||
[EFFECT_RECOIL_33_STATUS] = 0, // TODO: Assign points
|
||||
[EFFECT_RECOIL_50] = 0, // TODO: Assign points
|
||||
|
|
|
@ -5061,17 +5061,19 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] =
|
|||
|
||||
[MOVE_SUPERPOWER] =
|
||||
{
|
||||
.effect = EFFECT_SUPERPOWER,
|
||||
.effect = EFFECT_HIT,
|
||||
.power = 120,
|
||||
.type = TYPE_FIGHTING,
|
||||
.accuracy = 100,
|
||||
.pp = 5,
|
||||
.secondaryEffectChance = 0,
|
||||
.target = MOVE_TARGET_SELECTED,
|
||||
.priority = 0,
|
||||
.split = SPLIT_PHYSICAL,
|
||||
.zMoveEffect = Z_EFFECT_NONE,
|
||||
.makesContact = TRUE,
|
||||
ADDITIONAL_EFFECTS(
|
||||
PRIMARY_EFFECT_SELF(MOVE_EFFECT_ATK_DEF_DOWN)
|
||||
),
|
||||
},
|
||||
|
||||
[MOVE_MAGIC_COAT] =
|
||||
|
@ -6542,18 +6544,20 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] =
|
|||
|
||||
[MOVE_HAMMER_ARM] =
|
||||
{
|
||||
.effect = EFFECT_HAMMER_ARM,
|
||||
.effect = EFFECT_HIT,
|
||||
.power = 100,
|
||||
.type = TYPE_FIGHTING,
|
||||
.accuracy = 90,
|
||||
.pp = 10,
|
||||
.secondaryEffectChance = 100,
|
||||
.target = MOVE_TARGET_SELECTED,
|
||||
.priority = 0,
|
||||
.split = SPLIT_PHYSICAL,
|
||||
.zMoveEffect = Z_EFFECT_NONE,
|
||||
.makesContact = TRUE,
|
||||
.punchingMove = TRUE,
|
||||
ADDITIONAL_EFFECTS(
|
||||
PRIMARY_EFFECT_SELF(MOVE_EFFECT_SPD_MINUS_1)
|
||||
),
|
||||
},
|
||||
|
||||
[MOVE_GYRO_BALL] =
|
||||
|
@ -6727,17 +6731,19 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] =
|
|||
|
||||
[MOVE_CLOSE_COMBAT] =
|
||||
{
|
||||
.effect = EFFECT_CLOSE_COMBAT,
|
||||
.effect = EFFECT_HIT,
|
||||
.power = 120,
|
||||
.type = TYPE_FIGHTING,
|
||||
.accuracy = 100,
|
||||
.pp = 5,
|
||||
.secondaryEffectChance = 100,
|
||||
.target = MOVE_TARGET_SELECTED,
|
||||
.priority = 0,
|
||||
.split = SPLIT_PHYSICAL,
|
||||
.zMoveEffect = Z_EFFECT_NONE,
|
||||
.makesContact = TRUE,
|
||||
ADDITIONAL_EFFECTS(
|
||||
PRIMARY_EFFECT_SELF(MOVE_EFFECT_DEF_SPDEF_DOWN)
|
||||
),
|
||||
},
|
||||
|
||||
[MOVE_PAYBACK] =
|
||||
|
@ -11042,18 +11048,20 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] =
|
|||
|
||||
[MOVE_DRAGON_ASCENT] =
|
||||
{
|
||||
.effect = EFFECT_CLOSE_COMBAT,
|
||||
.effect = EFFECT_HIT,
|
||||
.power = 120,
|
||||
.type = TYPE_FLYING,
|
||||
.accuracy = 100,
|
||||
.pp = 5,
|
||||
.secondaryEffectChance = 100,
|
||||
.target = MOVE_TARGET_SELECTED,
|
||||
.priority = 0,
|
||||
.split = SPLIT_PHYSICAL,
|
||||
.zMoveEffect = Z_EFFECT_NONE,
|
||||
.makesContact = TRUE,
|
||||
.metronomeBanned = TRUE,
|
||||
ADDITIONAL_EFFECTS(
|
||||
PRIMARY_EFFECT_SELF(MOVE_EFFECT_DEF_SPDEF_DOWN)
|
||||
),
|
||||
},
|
||||
|
||||
[MOVE_HYPERSPACE_FURY] =
|
||||
|
@ -11182,18 +11190,20 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] =
|
|||
|
||||
[MOVE_ICE_HAMMER] =
|
||||
{
|
||||
.effect = EFFECT_HAMMER_ARM,
|
||||
.effect = EFFECT_HIT,
|
||||
.power = 100,
|
||||
.type = TYPE_ICE,
|
||||
.accuracy = 90,
|
||||
.pp = 10,
|
||||
.secondaryEffectChance = 100,
|
||||
.target = MOVE_TARGET_SELECTED,
|
||||
.priority = 0,
|
||||
.split = SPLIT_PHYSICAL,
|
||||
.zMoveEffect = Z_EFFECT_NONE,
|
||||
.makesContact = TRUE,
|
||||
.punchingMove = TRUE,
|
||||
ADDITIONAL_EFFECTS(
|
||||
PRIMARY_EFFECT_SELF(MOVE_EFFECT_SPD_MINUS_1)
|
||||
),
|
||||
},
|
||||
|
||||
[MOVE_FLORAL_HEALING] =
|
||||
|
@ -13585,22 +13595,20 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] =
|
|||
|
||||
[MOVE_HEADLONG_RUSH] =
|
||||
{
|
||||
#if B_UPDATED_MOVE_DATA >= GEN_9
|
||||
.power = 120,
|
||||
#else
|
||||
.power = 100,
|
||||
#endif
|
||||
.effect = EFFECT_CLOSE_COMBAT,
|
||||
.effect = EFFECT_HIT,
|
||||
.power = B_UPDATED_MOVE_DATA >= GEN_9 ? 120 : 100,
|
||||
.type = TYPE_GROUND,
|
||||
.accuracy = 100,
|
||||
.pp = 5,
|
||||
.secondaryEffectChance = 0,
|
||||
.target = MOVE_TARGET_SELECTED,
|
||||
.priority = 0,
|
||||
.split = SPLIT_PHYSICAL,
|
||||
.zMoveEffect = Z_EFFECT_NONE,
|
||||
.makesContact = TRUE,
|
||||
.punchingMove = TRUE,
|
||||
ADDITIONAL_EFFECTS(
|
||||
PRIMARY_EFFECT_SELF(MOVE_EFFECT_DEF_SPDEF_DOWN)
|
||||
),
|
||||
},
|
||||
|
||||
[MOVE_BARB_BARRAGE] =
|
||||
|
@ -14476,17 +14484,19 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] =
|
|||
|
||||
[MOVE_ARMOR_CANNON] =
|
||||
{
|
||||
.effect = EFFECT_CLOSE_COMBAT,
|
||||
.effect = EFFECT_HIT,
|
||||
.power = 120,
|
||||
.type = TYPE_FIRE,
|
||||
.accuracy = 100,
|
||||
.pp = 5,
|
||||
.secondaryEffectChance = 100,
|
||||
.target = MOVE_TARGET_SELECTED,
|
||||
.priority = 0,
|
||||
.split = SPLIT_SPECIAL,
|
||||
.zMoveEffect = Z_EFFECT_NONE,
|
||||
.metronomeBanned = TRUE,
|
||||
ADDITIONAL_EFFECTS(
|
||||
PRIMARY_EFFECT_SELF(MOVE_EFFECT_DEF_SPDEF_DOWN)
|
||||
),
|
||||
},
|
||||
|
||||
[MOVE_BITTER_BLADE] =
|
||||
|
|
|
@ -79,7 +79,7 @@ SINGLE_BATTLE_TEST("Hyper Cutter is ignored by Mold Breaker")
|
|||
SINGLE_BATTLE_TEST("Hyper Cutter doesn't prevent Attack stage reduction from moves used by the user")
|
||||
{
|
||||
GIVEN {
|
||||
ASSUME(gBattleMoves[MOVE_SUPERPOWER].effect == EFFECT_SUPERPOWER);
|
||||
ASSUME(gBattleMoves[MOVE_SUPERPOWER].additionalEffects[0].moveEffect == MOVE_EFFECT_ATK_DEF_DOWN);
|
||||
PLAYER(SPECIES_WOBBUFFET);
|
||||
OPPONENT(SPECIES_KRABBY) { Ability(ABILITY_HYPER_CUTTER); }
|
||||
} WHEN {
|
||||
|
|
Loading…
Reference in a new issue