Superpower, CC, Hammer Arm

This commit is contained in:
Nephrite 2023-12-24 23:43:12 +09:00
parent a8967da1c5
commit e87fe533c3
7 changed files with 43 additions and 43 deletions

View file

@ -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

View file

@ -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

View file

@ -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);

View file

@ -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)

View file

@ -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

View file

@ -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] =

View file

@ -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 {