Overheat (and clones)
Also, Syrup Bomb (really weird script)
This commit is contained in:
parent
a244d7b8b6
commit
a8967da1c5
@ -221,7 +221,7 @@ gBattleScriptsForMoveEffects::
|
||||
.4byte BattleScript_EffectMudSport @ EFFECT_MUD_SPORT
|
||||
.4byte BattleScript_EffectHit @ EFFECT_UNUSED_197
|
||||
.4byte BattleScript_EffectHit @ EFFECT_WEATHER_BALL
|
||||
.4byte BattleScript_EffectOverheat @ EFFECT_OVERHEAT
|
||||
.4byte BattleScript_EffectHit @ EFFECT_UNUSED_199
|
||||
.4byte BattleScript_EffectTickle @ EFFECT_TICKLE
|
||||
.4byte BattleScript_EffectCosmicPower @ EFFECT_COSMIC_POWER
|
||||
.4byte BattleScript_EffectSkyUppercut @ EFFECT_SKY_UPPERCUT
|
||||
@ -432,7 +432,6 @@ gBattleScriptsForMoveEffects::
|
||||
.4byte BattleScript_EffectHit @ EFFECT_POPULATION_BOMB
|
||||
.4byte BattleScript_EffectHit @ EFFECT_UNUSED_408
|
||||
.4byte BattleScript_EffectSaltCure @ EFFECT_SALT_CURE
|
||||
.4byte BattleScript_EffectSyrupBomb @ EFFECT_SYRUP_BOMB
|
||||
.4byte BattleScript_EffectHit @ EFFECT_IVY_CUDGEL
|
||||
.4byte BattleScript_EffectMaxMove @ EFFECT_MAX_MOVE
|
||||
.4byte BattleScript_EffectGlaiveRush @ EFFECT_GLAIVE_RUSH
|
||||
@ -443,12 +442,6 @@ BattleScript_EffectGlaiveRush::
|
||||
setglaiverush
|
||||
goto BattleScript_TryFaintMon
|
||||
|
||||
BattleScript_EffectSyrupBomb::
|
||||
setmoveeffect MOVE_EFFECT_SYRUP_BOMB
|
||||
call BattleScript_EffectHit_Ret
|
||||
tryfaintmon BS_TARGET
|
||||
goto BattleScript_MoveEnd
|
||||
|
||||
BattleScript_SyrupBombActivates::
|
||||
printstring STRINGID_TARGETCOVEREDINSTICKYCANDYSYRUP
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
@ -5891,10 +5884,6 @@ BattleScript_EffectWaterSport::
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
goto BattleScript_MoveEnd
|
||||
|
||||
BattleScript_EffectOverheat::
|
||||
setmoveeffect MOVE_EFFECT_SP_ATK_TWO_DOWN | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN
|
||||
goto BattleScript_EffectHit
|
||||
|
||||
BattleScript_EffectHammerArm::
|
||||
setmoveeffect MOVE_EFFECT_SPD_MINUS_1 | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN
|
||||
goto BattleScript_EffectHit
|
||||
|
||||
@ -200,7 +200,7 @@
|
||||
#define EFFECT_MUD_SPORT 196
|
||||
#define EFFECT_UNUSED_197 197
|
||||
#define EFFECT_WEATHER_BALL 198
|
||||
#define EFFECT_OVERHEAT 199
|
||||
#define EFFECT_UNUSED_199 199
|
||||
#define EFFECT_TICKLE 200
|
||||
#define EFFECT_COSMIC_POWER 201
|
||||
#define EFFECT_SKY_UPPERCUT 202
|
||||
@ -413,11 +413,10 @@
|
||||
#define EFFECT_POPULATION_BOMB 407
|
||||
#define EFFECT_UNUSED_408 408
|
||||
#define EFFECT_SALT_CURE 409
|
||||
#define EFFECT_SYRUP_BOMB 410
|
||||
#define EFFECT_IVY_CUDGEL 411
|
||||
#define EFFECT_MAX_MOVE 412
|
||||
#define EFFECT_GLAIVE_RUSH 413
|
||||
#define EFFECT_IVY_CUDGEL 410
|
||||
#define EFFECT_MAX_MOVE 411
|
||||
#define EFFECT_GLAIVE_RUSH 412
|
||||
|
||||
#define NUM_BATTLE_MOVE_EFFECTS 414
|
||||
#define NUM_BATTLE_MOVE_EFFECTS 413
|
||||
|
||||
#endif // GUARD_CONSTANTS_BATTLE_MOVE_EFFECTS_H
|
||||
|
||||
@ -4340,7 +4340,6 @@ static s32 AI_CheckViability(u32 battlerAtk, u32 battlerDef, u32 move, s32 score
|
||||
ADJUST_SCORE(1);
|
||||
break;
|
||||
case EFFECT_SUPERPOWER:
|
||||
case EFFECT_OVERHEAT:
|
||||
case EFFECT_MAKE_IT_RAIN:
|
||||
if (aiData->abilities[battlerAtk] == ABILITY_CONTRARY)
|
||||
ADJUST_SCORE(3);
|
||||
@ -4871,6 +4870,11 @@ static s32 AI_CheckViability(u32 battlerAtk, u32 battlerDef, u32 move, s32 score
|
||||
if (sereneGraceBoost)
|
||||
IncreaseStatUpScore(battlerAtk, battlerDef, STAT_SPATK, &score);
|
||||
break;
|
||||
// case EFFECT_SUPERPOWER:
|
||||
case MOVE_EFFECT_SP_ATK_TWO_DOWN:
|
||||
if (aiData->abilities[battlerAtk] == ABILITY_CONTRARY)
|
||||
ADJUST_SCORE(3);
|
||||
break;
|
||||
}
|
||||
}
|
||||
else // consider move effects that hinder the target
|
||||
|
||||
@ -956,7 +956,6 @@ static bool32 AI_IsMoveEffectInMinus(u32 battlerAtk, u32 battlerDef, u32 move, s
|
||||
{
|
||||
case EFFECT_RECHARGE:
|
||||
case EFFECT_SUPERPOWER:
|
||||
case EFFECT_OVERHEAT:
|
||||
case EFFECT_MAKE_IT_RAIN:
|
||||
case EFFECT_MIND_BLOWN:
|
||||
case EFFECT_STEEL_BEAM:
|
||||
@ -978,6 +977,7 @@ static bool32 AI_IsMoveEffectInMinus(u32 battlerAtk, u32 battlerDef, u32 move, s
|
||||
case MOVE_EFFECT_DEF_MINUS_1:
|
||||
case MOVE_EFFECT_SPD_MINUS_1:
|
||||
case MOVE_EFFECT_SP_ATK_MINUS_1:
|
||||
case MOVE_EFFECT_SP_ATK_TWO_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)
|
||||
|
||||
@ -267,7 +267,6 @@ static const u16 sPoints_MoveEffect[NUM_BATTLE_MOVE_EFFECTS] =
|
||||
// [EFFECT_BLAZE_KICK] = 1,
|
||||
[EFFECT_MUD_SPORT] = 4,
|
||||
[EFFECT_WEATHER_BALL] = 1,
|
||||
[EFFECT_OVERHEAT] = 3,
|
||||
[EFFECT_TICKLE] = 1,
|
||||
[EFFECT_COSMIC_POWER] = 1,
|
||||
[EFFECT_SKY_UPPERCUT] = 1,
|
||||
|
||||
@ -1145,7 +1145,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] =
|
||||
.zMoveEffect = Z_EFFECT_NONE,
|
||||
.ignoresKingsRock = B_UPDATED_MOVE_FLAGS < GEN_3,
|
||||
ADDITIONAL_EFFECTS(
|
||||
PRIMARY_EFFECT_SELF(MOVE_EFFECT_RECHARGE),
|
||||
PRIMARY_EFFECT_SELF(MOVE_EFFECT_RECHARGE)
|
||||
),
|
||||
},
|
||||
|
||||
@ -3884,7 +3884,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] =
|
||||
.makesContact = TRUE,
|
||||
.sheerForceBoost = TRUE,
|
||||
ADDITIONAL_EFFECTS(
|
||||
SECONDARY_EFFECT_SELF(MOVE_EFFECT_DEF_PLUS_1, 10),
|
||||
SECONDARY_EFFECT_SELF(MOVE_EFFECT_DEF_PLUS_1, 10)
|
||||
),
|
||||
},
|
||||
|
||||
@ -5607,7 +5607,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] =
|
||||
.split = SPLIT_SPECIAL,
|
||||
.zMoveEffect = Z_EFFECT_NONE,
|
||||
ADDITIONAL_EFFECTS(
|
||||
PRIMARY_EFFECT_SELF(MOVE_EFFECT_RECHARGE),
|
||||
PRIMARY_EFFECT_SELF(MOVE_EFFECT_RECHARGE)
|
||||
),
|
||||
},
|
||||
|
||||
@ -5623,7 +5623,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] =
|
||||
.split = SPLIT_SPECIAL,
|
||||
.zMoveEffect = Z_EFFECT_NONE,
|
||||
ADDITIONAL_EFFECTS(
|
||||
PRIMARY_EFFECT_SELF(MOVE_EFFECT_RECHARGE),
|
||||
PRIMARY_EFFECT_SELF(MOVE_EFFECT_RECHARGE)
|
||||
),
|
||||
},
|
||||
|
||||
@ -5740,23 +5740,19 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] =
|
||||
|
||||
[MOVE_OVERHEAT] =
|
||||
{
|
||||
#if B_UPDATED_MOVE_DATA >= GEN_6
|
||||
.power = 130,
|
||||
#elif B_UPDATED_MOVE_DATA >= GEN_4
|
||||
.power = 140,
|
||||
#else
|
||||
.power = 140,
|
||||
.makesContact = TRUE,
|
||||
#endif
|
||||
.effect = EFFECT_OVERHEAT,
|
||||
.effect = EFFECT_HIT,
|
||||
.power = B_UPDATED_MOVE_DATA >= GEN_6 ? 130 : 140,
|
||||
.type = TYPE_FIRE,
|
||||
.accuracy = 90,
|
||||
.pp = 5,
|
||||
.secondaryEffectChance = 100,
|
||||
.target = MOVE_TARGET_SELECTED,
|
||||
.priority = 0,
|
||||
.split = SPLIT_SPECIAL,
|
||||
.zMoveEffect = Z_EFFECT_NONE,
|
||||
.makesContact = B_UPDATED_MOVE_DATA < GEN_4,
|
||||
ADDITIONAL_EFFECTS(
|
||||
PRIMARY_EFFECT_SELF(MOVE_EFFECT_SP_ATK_TWO_DOWN)
|
||||
),
|
||||
},
|
||||
|
||||
[MOVE_ODOR_SLEUTH] =
|
||||
@ -6161,7 +6157,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] =
|
||||
.split = SPLIT_SPECIAL,
|
||||
.zMoveEffect = Z_EFFECT_NONE,
|
||||
ADDITIONAL_EFFECTS(
|
||||
PRIMARY_EFFECT_SELF(MOVE_EFFECT_RECHARGE),
|
||||
PRIMARY_EFFECT_SELF(MOVE_EFFECT_RECHARGE)
|
||||
),
|
||||
},
|
||||
|
||||
@ -6456,16 +6452,18 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] =
|
||||
|
||||
[MOVE_PSYCHO_BOOST] =
|
||||
{
|
||||
.effect = EFFECT_OVERHEAT,
|
||||
.effect = EFFECT_HIT,
|
||||
.power = 140,
|
||||
.type = TYPE_PSYCHIC,
|
||||
.accuracy = 90,
|
||||
.pp = 5,
|
||||
.secondaryEffectChance = 100,
|
||||
.target = MOVE_TARGET_SELECTED,
|
||||
.priority = 0,
|
||||
.split = SPLIT_SPECIAL,
|
||||
.zMoveEffect = Z_EFFECT_NONE,
|
||||
ADDITIONAL_EFFECTS(
|
||||
PRIMARY_EFFECT_SELF(MOVE_EFFECT_SP_ATK_TWO_DOWN)
|
||||
),
|
||||
},
|
||||
|
||||
[MOVE_ROOST] =
|
||||
@ -7537,7 +7535,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] =
|
||||
.zMoveEffect = Z_EFFECT_NONE,
|
||||
.makesContact = TRUE,
|
||||
ADDITIONAL_EFFECTS(
|
||||
PRIMARY_EFFECT_SELF(MOVE_EFFECT_RECHARGE),
|
||||
PRIMARY_EFFECT_SELF(MOVE_EFFECT_RECHARGE)
|
||||
),
|
||||
},
|
||||
|
||||
@ -7655,9 +7653,9 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] =
|
||||
.sheerForceBoost = TRUE,
|
||||
.bitingMove = TRUE,
|
||||
ADDITIONAL_EFFECTS(
|
||||
SECONDARY_EFFECT(B_USE_FROSTBITE ? MOVE_EFFECT_FROSTBITE : MOVE_EFFECT_FREEZE, 10),
|
||||
SECONDARY_EFFECT(MOVE_EFFECT_FREEZE_OR_FROSTBITE, 10),
|
||||
SECONDARY_EFFECT(MOVE_EFFECT_FLINCH, 10)
|
||||
)
|
||||
),
|
||||
},
|
||||
|
||||
[MOVE_FIRE_FANG] =
|
||||
@ -7833,20 +7831,18 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] =
|
||||
|
||||
[MOVE_DRACO_METEOR] =
|
||||
{
|
||||
#if B_UPDATED_MOVE_DATA >= GEN_6
|
||||
.power = 130,
|
||||
#else
|
||||
.power = 140,
|
||||
#endif
|
||||
.effect = EFFECT_OVERHEAT,
|
||||
.effect = EFFECT_HIT,
|
||||
.power = B_UPDATED_MOVE_DATA >= GEN_6 ? 130 : 140,
|
||||
.type = TYPE_DRAGON,
|
||||
.accuracy = 90,
|
||||
.pp = 5,
|
||||
.secondaryEffectChance = 100,
|
||||
.target = MOVE_TARGET_SELECTED,
|
||||
.priority = 0,
|
||||
.split = SPLIT_SPECIAL,
|
||||
.zMoveEffect = Z_EFFECT_NONE,
|
||||
ADDITIONAL_EFFECTS(
|
||||
PRIMARY_EFFECT_SELF(MOVE_EFFECT_SP_ATK_TWO_DOWN)
|
||||
),
|
||||
},
|
||||
|
||||
[MOVE_DISCHARGE] =
|
||||
@ -7885,20 +7881,18 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] =
|
||||
|
||||
[MOVE_LEAF_STORM] =
|
||||
{
|
||||
#if B_UPDATED_MOVE_DATA >= GEN_6
|
||||
.power = 130,
|
||||
#else
|
||||
.power = 140,
|
||||
#endif
|
||||
.effect = EFFECT_OVERHEAT,
|
||||
.effect = EFFECT_HIT,
|
||||
.power = B_UPDATED_MOVE_DATA >= GEN_6 ? 130 : 140,
|
||||
.type = TYPE_GRASS,
|
||||
.accuracy = 90,
|
||||
.pp = 5,
|
||||
.secondaryEffectChance = 100,
|
||||
.target = MOVE_TARGET_SELECTED,
|
||||
.priority = 0,
|
||||
.split = SPLIT_SPECIAL,
|
||||
.zMoveEffect = Z_EFFECT_NONE,
|
||||
ADDITIONAL_EFFECTS(
|
||||
PRIMARY_EFFECT_SELF(MOVE_EFFECT_SP_ATK_TWO_DOWN)
|
||||
),
|
||||
},
|
||||
|
||||
[MOVE_POWER_WHIP] =
|
||||
@ -7929,7 +7923,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] =
|
||||
.zMoveEffect = Z_EFFECT_NONE,
|
||||
.ballisticMove = TRUE,
|
||||
ADDITIONAL_EFFECTS(
|
||||
PRIMARY_EFFECT_SELF(MOVE_EFFECT_RECHARGE),
|
||||
PRIMARY_EFFECT_SELF(MOVE_EFFECT_RECHARGE)
|
||||
),
|
||||
},
|
||||
|
||||
@ -8274,7 +8268,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] =
|
||||
.split = SPLIT_SPECIAL,
|
||||
.zMoveEffect = Z_EFFECT_NONE,
|
||||
ADDITIONAL_EFFECTS(
|
||||
PRIMARY_EFFECT_SELF(MOVE_EFFECT_RECHARGE),
|
||||
PRIMARY_EFFECT_SELF(MOVE_EFFECT_RECHARGE)
|
||||
),
|
||||
},
|
||||
|
||||
@ -10566,7 +10560,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] =
|
||||
.sheerForceBoost = TRUE,
|
||||
.metronomeBanned = TRUE,
|
||||
ADDITIONAL_EFFECTS(
|
||||
SECONDARY_EFFECT_SELF(B_UPDATED_MOVE_DATA >= GEN_7 ? MOVE_EFFECT_DEF_PLUS_2: MOVE_EFFECT_DEF_PLUS_1, 50),
|
||||
SECONDARY_EFFECT_SELF(B_UPDATED_MOVE_DATA >= GEN_7 ? MOVE_EFFECT_DEF_PLUS_2: MOVE_EFFECT_DEF_PLUS_1, 50)
|
||||
),
|
||||
},
|
||||
|
||||
@ -11707,17 +11701,19 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] =
|
||||
|
||||
[MOVE_FLEUR_CANNON] =
|
||||
{
|
||||
.effect = EFFECT_OVERHEAT,
|
||||
.effect = EFFECT_HIT,
|
||||
.power = 130,
|
||||
.type = TYPE_FAIRY,
|
||||
.accuracy = 90,
|
||||
.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_SP_ATK_TWO_DOWN)
|
||||
),
|
||||
},
|
||||
|
||||
[MOVE_PSYCHIC_FANGS] =
|
||||
@ -11813,7 +11809,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] =
|
||||
.split = SPLIT_SPECIAL,
|
||||
.zMoveEffect = Z_EFFECT_NONE,
|
||||
ADDITIONAL_EFFECTS(
|
||||
PRIMARY_EFFECT_SELF(MOVE_EFFECT_RECHARGE),
|
||||
PRIMARY_EFFECT_SELF(MOVE_EFFECT_RECHARGE)
|
||||
),
|
||||
},
|
||||
|
||||
@ -12335,7 +12331,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] =
|
||||
.makesContact = TRUE,
|
||||
.bitingMove = TRUE,
|
||||
ADDITIONAL_EFFECTS(
|
||||
PRIMARY_EFFECT(MOVE_EFFECT_TRAP_BOTH),
|
||||
PRIMARY_EFFECT(MOVE_EFFECT_TRAP_BOTH)
|
||||
),
|
||||
},
|
||||
|
||||
@ -12853,7 +12849,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] =
|
||||
.metronomeBanned = TRUE,
|
||||
.instructBanned = TRUE,
|
||||
ADDITIONAL_EFFECTS(
|
||||
PRIMARY_EFFECT_SELF(MOVE_EFFECT_RECHARGE),
|
||||
PRIMARY_EFFECT_SELF(MOVE_EFFECT_RECHARGE)
|
||||
),
|
||||
},
|
||||
|
||||
@ -12870,7 +12866,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] =
|
||||
.zMoveEffect = Z_EFFECT_NONE,
|
||||
.metronomeBanned = TRUE,
|
||||
ADDITIONAL_EFFECTS(
|
||||
PRIMARY_EFFECT_SELF(MOVE_EFFECT_RECHARGE),
|
||||
PRIMARY_EFFECT_SELF(MOVE_EFFECT_RECHARGE)
|
||||
),
|
||||
},
|
||||
|
||||
@ -14766,23 +14762,25 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] =
|
||||
.healBlockBanned = B_EXTRAPOLATED_MOVE_FLAGS,
|
||||
ADDITIONAL_EFFECTS(
|
||||
SECONDARY_EFFECT(MOVE_EFFECT_BURN, 20)
|
||||
)
|
||||
),
|
||||
},
|
||||
|
||||
[MOVE_SYRUP_BOMB] =
|
||||
{
|
||||
.effect = EFFECT_SYRUP_BOMB,
|
||||
.effect = EFFECT_HIT,
|
||||
.power = 60,
|
||||
.type = TYPE_GRASS,
|
||||
.accuracy = 85,
|
||||
.pp = 10,
|
||||
.secondaryEffectChance = 100, // syrup bomb volatile status
|
||||
.target = MOVE_TARGET_SELECTED,
|
||||
.priority = 0,
|
||||
.split = SPLIT_SPECIAL,
|
||||
.zMoveEffect = Z_EFFECT_NONE,
|
||||
.ballisticMove = TRUE,
|
||||
.metronomeBanned = TRUE,
|
||||
ADDITIONAL_EFFECTS(
|
||||
SECONDARY_EFFECT(MOVE_EFFECT_SYRUP_BOMB, 100)
|
||||
),
|
||||
},
|
||||
|
||||
[MOVE_IVY_CUDGEL] =
|
||||
|
||||
@ -82,7 +82,7 @@ SINGLE_BATTLE_TEST("Contrary raises stats after using a move which would normall
|
||||
PARAMETRIZE { ability = ABILITY_CONTRARY; }
|
||||
PARAMETRIZE { ability = ABILITY_TANGLED_FEET; }
|
||||
GIVEN {
|
||||
ASSUME(gBattleMoves[MOVE_OVERHEAT].effect == EFFECT_OVERHEAT);
|
||||
ASSUME(gBattleMoves[MOVE_OVERHEAT].additionalEffects[0].moveEffect == MOVE_EFFECT_SP_ATK_TWO_DOWN);
|
||||
ASSUME(gBattleMoves[MOVE_OVERHEAT].split == SPLIT_SPECIAL);
|
||||
PLAYER(SPECIES_WOBBUFFET);
|
||||
OPPONENT(SPECIES_SPINDA) { Ability(ability); }
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user