mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2024-11-16 11:37:40 +01:00
Add config to Frostbite & allow it to be inflicted
This commit is contained in:
parent
9c9a1fb831
commit
a561c6da6a
@ -286,7 +286,11 @@ gBattleScriptsForMoveEffects::
|
|||||||
.4byte BattleScript_EffectHealPulse @ EFFECT_HEAL_PULSE
|
.4byte BattleScript_EffectHealPulse @ EFFECT_HEAL_PULSE
|
||||||
.4byte BattleScript_EffectQuash @ EFFECT_QUASH
|
.4byte BattleScript_EffectQuash @ EFFECT_QUASH
|
||||||
.4byte BattleScript_EffectIonDeluge @ EFFECT_ION_DELUGE
|
.4byte BattleScript_EffectIonDeluge @ EFFECT_ION_DELUGE
|
||||||
|
#if B_USE_FROSTBITE == TRUE
|
||||||
|
.4byte BattleScript_EffectFrostbiteHit @ EFFECT_FREEZE_DRY
|
||||||
|
#else
|
||||||
.4byte BattleScript_EffectFreezeHit @ EFFECT_FREEZE_DRY
|
.4byte BattleScript_EffectFreezeHit @ EFFECT_FREEZE_DRY
|
||||||
|
#endif
|
||||||
.4byte BattleScript_EffectTopsyTurvy @ EFFECT_TOPSY_TURVY
|
.4byte BattleScript_EffectTopsyTurvy @ EFFECT_TOPSY_TURVY
|
||||||
.4byte BattleScript_EffectMistyTerrain @ EFFECT_MISTY_TERRAIN
|
.4byte BattleScript_EffectMistyTerrain @ EFFECT_MISTY_TERRAIN
|
||||||
.4byte BattleScript_EffectGrassyTerrain @ EFFECT_GRASSY_TERRAIN
|
.4byte BattleScript_EffectGrassyTerrain @ EFFECT_GRASSY_TERRAIN
|
||||||
@ -424,6 +428,7 @@ gBattleScriptsForMoveEffects::
|
|||||||
.4byte BattleScript_EffectDireClaw @ EFFECT_DIRE_CLAW
|
.4byte BattleScript_EffectDireClaw @ EFFECT_DIRE_CLAW
|
||||||
.4byte BattleScript_EffectBarbBarrage @ EFFECT_BARB_BARRAGE
|
.4byte BattleScript_EffectBarbBarrage @ EFFECT_BARB_BARRAGE
|
||||||
.4byte BattleScript_EffectRevivalBlessing @ EFFECT_REVIVAL_BLESSING
|
.4byte BattleScript_EffectRevivalBlessing @ EFFECT_REVIVAL_BLESSING
|
||||||
|
.4byte BattleScript_EffectFrostbiteHit @ EFFECT_FROSTBITE_HIT
|
||||||
|
|
||||||
BattleScript_EffectRevivalBlessing::
|
BattleScript_EffectRevivalBlessing::
|
||||||
attackcanceler
|
attackcanceler
|
||||||
@ -3464,6 +3469,10 @@ BattleScript_EffectBurnHit::
|
|||||||
setmoveeffect MOVE_EFFECT_BURN
|
setmoveeffect MOVE_EFFECT_BURN
|
||||||
goto BattleScript_EffectHit
|
goto BattleScript_EffectHit
|
||||||
|
|
||||||
|
BattleScript_EffectFrostbiteHit::
|
||||||
|
setmoveeffect MOVE_EFFECT_FROSTBITE
|
||||||
|
goto BattleScript_EffectHit
|
||||||
|
|
||||||
BattleScript_EffectSleepHit::
|
BattleScript_EffectSleepHit::
|
||||||
setmoveeffect MOVE_EFFECT_SLEEP
|
setmoveeffect MOVE_EFFECT_SLEEP
|
||||||
goto BattleScript_EffectHit
|
goto BattleScript_EffectHit
|
||||||
@ -8365,6 +8374,12 @@ BattleScript_MoveEffectBurn::
|
|||||||
waitmessage B_WAIT_TIME_LONG
|
waitmessage B_WAIT_TIME_LONG
|
||||||
goto BattleScript_UpdateEffectStatusIconRet
|
goto BattleScript_UpdateEffectStatusIconRet
|
||||||
|
|
||||||
|
BattleScript_MoveEffectFrostbite::
|
||||||
|
statusanimation BS_EFFECT_BATTLER
|
||||||
|
printfromtable gGotFrostbiteStringIds
|
||||||
|
waitmessage B_WAIT_TIME_LONG
|
||||||
|
goto BattleScript_UpdateEffectStatusIconRet
|
||||||
|
|
||||||
BattleScript_MoveEffectFreeze::
|
BattleScript_MoveEffectFreeze::
|
||||||
statusanimation BS_EFFECT_BATTLER
|
statusanimation BS_EFFECT_BATTLER
|
||||||
printfromtable gGotFrozenStringIds
|
printfromtable gGotFrozenStringIds
|
||||||
|
@ -132,6 +132,7 @@ extern const u8 BattleScript_MoveEffectSleep[];
|
|||||||
extern const u8 BattleScript_YawnMakesAsleep[];
|
extern const u8 BattleScript_YawnMakesAsleep[];
|
||||||
extern const u8 BattleScript_MoveEffectPoison[];
|
extern const u8 BattleScript_MoveEffectPoison[];
|
||||||
extern const u8 BattleScript_MoveEffectBurn[];
|
extern const u8 BattleScript_MoveEffectBurn[];
|
||||||
|
extern const u8 BattleScript_MoveEffectFrostbite[];
|
||||||
extern const u8 BattleScript_MoveEffectFreeze[];
|
extern const u8 BattleScript_MoveEffectFreeze[];
|
||||||
extern const u8 BattleScript_MoveEffectParalysis[];
|
extern const u8 BattleScript_MoveEffectParalysis[];
|
||||||
extern const u8 BattleScript_MoveEffectUproar[];
|
extern const u8 BattleScript_MoveEffectUproar[];
|
||||||
|
@ -182,14 +182,15 @@
|
|||||||
#define B_LAST_USED_BALL_BUTTON R_BUTTON // If last used ball is implemented, this button (or button combo) will trigger throwing the last used ball.
|
#define B_LAST_USED_BALL_BUTTON R_BUTTON // If last used ball is implemented, this button (or button combo) will trigger throwing the last used ball.
|
||||||
|
|
||||||
// Other settings
|
// Other settings
|
||||||
#define B_DOUBLE_WILD_CHANCE 0 // % chance of encountering two Pokémon in a Wild Encounter.
|
#define B_DOUBLE_WILD_CHANCE 0 // % chance of encountering two Pokémon in a Wild Encounter.
|
||||||
#define B_DOUBLE_WILD_REQUIRE_2_MONS FALSE // If set to TRUE, Wild Double Battles will default to Single Battles when the player only has 1 usuable Pokémon, ignoring B_DOUBLE_WILD_CHANCE and B_FLAG_FORCE_DOUBLE_WILD.
|
#define B_DOUBLE_WILD_REQUIRE_2_MONS FALSE // If set to TRUE, Wild Double Battles will default to Single Battles when the player only has 1 usuable Pokémon, ignoring B_DOUBLE_WILD_CHANCE and B_FLAG_FORCE_DOUBLE_WILD.
|
||||||
#define B_MULTI_BATTLE_WHITEOUT GEN_LATEST // In Gen4+, multi battles end when the Player and also their Partner don't have any more Pokémon to fight.
|
#define B_MULTI_BATTLE_WHITEOUT GEN_LATEST // In Gen4+, multi battles end when the Player and also their Partner don't have any more Pokémon to fight.
|
||||||
#define B_EVOLUTION_AFTER_WHITEOUT GEN_LATEST // In Gen6+, Pokemon that qualify for evolution after battle will evolve even if the player loses.
|
#define B_EVOLUTION_AFTER_WHITEOUT GEN_LATEST // In Gen6+, Pokemon that qualify for evolution after battle will evolve even if the player loses.
|
||||||
#define B_WILD_NATURAL_ENEMIES TRUE // If set to TRUE, certain wild mon species will attack other species when partnered in double wild battles (eg. Zangoose vs Seviper)
|
#define B_WILD_NATURAL_ENEMIES TRUE // If set to TRUE, certain wild mon species will attack other species when partnered in double wild battles (eg. Zangoose vs Seviper)
|
||||||
#define B_AFFECTION_MECHANICS FALSE // In Gen6+, there's a stat called affection that can trigger different effects in battle. From LGPE onwards, those effects use friendship instead.
|
#define B_AFFECTION_MECHANICS FALSE // In Gen6+, there's a stat called affection that can trigger different effects in battle. From LGPE onwards, those effects use friendship instead.
|
||||||
#define B_TRAINER_CLASS_POKE_BALLS GEN_LATEST // In Gen7+, trainers will use certain types of Poké Balls depending on their trainer class.
|
#define B_TRAINER_CLASS_POKE_BALLS GEN_LATEST // In Gen7+, trainers will use certain types of Poké Balls depending on their trainer class.
|
||||||
#define B_OBEDIENCE_MECHANICS GEN_LATEST // In PLA+ (here Gen8+), obedience restrictions also apply to non-outsider Pokémon, albeit based on their level met rather than actual level
|
#define B_OBEDIENCE_MECHANICS GEN_LATEST // In PLA+ (here Gen8+), obedience restrictions also apply to non-outsider Pokémon, albeit based on their level met rather than actual level
|
||||||
|
#define B_USE_FROSTBITE FALSE // In PLA, Frostbite replaces Freeze. Enabling this flag does the same here. Moves can still be cherry-picked to either Freeze or Frostbite. Freeze-Dry, Secret Power & Tri Attack depend on this config.
|
||||||
|
|
||||||
// Animation Settings
|
// Animation Settings
|
||||||
#define B_NEW_SWORD_PARTICLE FALSE // If set to TRUE, it updates Swords Dance's particle.
|
#define B_NEW_SWORD_PARTICLE FALSE // If set to TRUE, it updates Swords Dance's particle.
|
||||||
|
@ -306,79 +306,80 @@
|
|||||||
#define MOVE_EFFECT_FREEZE 4
|
#define MOVE_EFFECT_FREEZE 4
|
||||||
#define MOVE_EFFECT_PARALYSIS 5
|
#define MOVE_EFFECT_PARALYSIS 5
|
||||||
#define MOVE_EFFECT_TOXIC 6
|
#define MOVE_EFFECT_TOXIC 6
|
||||||
#define PRIMARY_STATUS_MOVE_EFFECT MOVE_EFFECT_TOXIC // All above move effects apply primary status
|
#define MOVE_EFFECT_FROSTBITE 7
|
||||||
#define MOVE_EFFECT_CONFUSION 7
|
#define PRIMARY_STATUS_MOVE_EFFECT MOVE_EFFECT_FROSTBITE // All above move effects apply primary status
|
||||||
#define MOVE_EFFECT_FLINCH 8
|
#define MOVE_EFFECT_CONFUSION 8
|
||||||
#define MOVE_EFFECT_TRI_ATTACK 9
|
#define MOVE_EFFECT_FLINCH 9
|
||||||
#define MOVE_EFFECT_UPROAR 10
|
#define MOVE_EFFECT_TRI_ATTACK 10
|
||||||
#define MOVE_EFFECT_PAYDAY 11
|
#define MOVE_EFFECT_UPROAR 11
|
||||||
#define MOVE_EFFECT_CHARGING 12
|
#define MOVE_EFFECT_PAYDAY 12
|
||||||
#define MOVE_EFFECT_WRAP 13
|
#define MOVE_EFFECT_CHARGING 13
|
||||||
#define MOVE_EFFECT_BURN_UP 14 // MOVE_EFFECT_BURN_UP replaces unused MOVE_EFFECT_RECOIL_25 so that stat change animations don't break
|
#define MOVE_EFFECT_WRAP 14
|
||||||
#define MOVE_EFFECT_ATK_PLUS_1 15
|
#define MOVE_EFFECT_BURN_UP 15 // MOVE_EFFECT_BURN_UP replaces unused MOVE_EFFECT_RECOIL_25 so that stat change animations don't break
|
||||||
#define MOVE_EFFECT_DEF_PLUS_1 16
|
#define MOVE_EFFECT_ATK_PLUS_1 16
|
||||||
#define MOVE_EFFECT_SPD_PLUS_1 17
|
#define MOVE_EFFECT_DEF_PLUS_1 17
|
||||||
#define MOVE_EFFECT_SP_ATK_PLUS_1 18
|
#define MOVE_EFFECT_SPD_PLUS_1 18
|
||||||
#define MOVE_EFFECT_SP_DEF_PLUS_1 19
|
#define MOVE_EFFECT_SP_ATK_PLUS_1 19
|
||||||
#define MOVE_EFFECT_ACC_PLUS_1 20
|
#define MOVE_EFFECT_SP_DEF_PLUS_1 20
|
||||||
#define MOVE_EFFECT_EVS_PLUS_1 21
|
#define MOVE_EFFECT_ACC_PLUS_1 21
|
||||||
#define MOVE_EFFECT_ATK_MINUS_1 22
|
#define MOVE_EFFECT_EVS_PLUS_1 22
|
||||||
#define MOVE_EFFECT_DEF_MINUS_1 23
|
#define MOVE_EFFECT_ATK_MINUS_1 23
|
||||||
#define MOVE_EFFECT_SPD_MINUS_1 24
|
#define MOVE_EFFECT_DEF_MINUS_1 24
|
||||||
#define MOVE_EFFECT_SP_ATK_MINUS_1 25
|
#define MOVE_EFFECT_SPD_MINUS_1 25
|
||||||
#define MOVE_EFFECT_SP_DEF_MINUS_1 26
|
#define MOVE_EFFECT_SP_ATK_MINUS_1 26
|
||||||
#define MOVE_EFFECT_ACC_MINUS_1 27
|
#define MOVE_EFFECT_SP_DEF_MINUS_1 27
|
||||||
#define MOVE_EFFECT_EVS_MINUS_1 28
|
#define MOVE_EFFECT_ACC_MINUS_1 28
|
||||||
#define MOVE_EFFECT_RECHARGE 29
|
#define MOVE_EFFECT_EVS_MINUS_1 29
|
||||||
#define MOVE_EFFECT_RAGE 30
|
#define MOVE_EFFECT_RECHARGE 30
|
||||||
#define MOVE_EFFECT_STEAL_ITEM 31
|
#define MOVE_EFFECT_RAGE 31
|
||||||
#define MOVE_EFFECT_PREVENT_ESCAPE 32
|
#define MOVE_EFFECT_STEAL_ITEM 32
|
||||||
#define MOVE_EFFECT_NIGHTMARE 33
|
#define MOVE_EFFECT_PREVENT_ESCAPE 33
|
||||||
#define MOVE_EFFECT_ALL_STATS_UP 34
|
#define MOVE_EFFECT_NIGHTMARE 34
|
||||||
#define MOVE_EFFECT_RAPIDSPIN 35
|
#define MOVE_EFFECT_ALL_STATS_UP 35
|
||||||
#define MOVE_EFFECT_REMOVE_STATUS 36
|
#define MOVE_EFFECT_RAPIDSPIN 36
|
||||||
#define MOVE_EFFECT_ATK_DEF_DOWN 37
|
#define MOVE_EFFECT_REMOVE_STATUS 37
|
||||||
#define MOVE_EFFECT_SCALE_SHOT 38 // MOVE_EFFECT_SCALE_SHOT replaces unused MOVE_EFFECT_RECOIL_33 so that stat change animations don't break
|
#define MOVE_EFFECT_ATK_DEF_DOWN 38
|
||||||
#define MOVE_EFFECT_ATK_PLUS_2 39
|
#define MOVE_EFFECT_SCALE_SHOT 39 // MOVE_EFFECT_SCALE_SHOT replaces unused MOVE_EFFECT_RECOIL_33 so that stat change animations don't break
|
||||||
#define MOVE_EFFECT_DEF_PLUS_2 40
|
#define MOVE_EFFECT_ATK_PLUS_2 40
|
||||||
#define MOVE_EFFECT_SPD_PLUS_2 41
|
#define MOVE_EFFECT_DEF_PLUS_2 41
|
||||||
#define MOVE_EFFECT_SP_ATK_PLUS_2 42
|
#define MOVE_EFFECT_SPD_PLUS_2 42
|
||||||
#define MOVE_EFFECT_SP_DEF_PLUS_2 43
|
#define MOVE_EFFECT_SP_ATK_PLUS_2 43
|
||||||
#define MOVE_EFFECT_ACC_PLUS_2 44
|
#define MOVE_EFFECT_SP_DEF_PLUS_2 44
|
||||||
#define MOVE_EFFECT_EVS_PLUS_2 45
|
#define MOVE_EFFECT_ACC_PLUS_2 45
|
||||||
#define MOVE_EFFECT_ATK_MINUS_2 46
|
#define MOVE_EFFECT_EVS_PLUS_2 46
|
||||||
#define MOVE_EFFECT_DEF_MINUS_2 47
|
#define MOVE_EFFECT_ATK_MINUS_2 47
|
||||||
#define MOVE_EFFECT_SPD_MINUS_2 48
|
#define MOVE_EFFECT_DEF_MINUS_2 48
|
||||||
#define MOVE_EFFECT_SP_ATK_MINUS_2 49
|
#define MOVE_EFFECT_SPD_MINUS_2 49
|
||||||
#define MOVE_EFFECT_SP_DEF_MINUS_2 50
|
#define MOVE_EFFECT_SP_ATK_MINUS_2 50
|
||||||
#define MOVE_EFFECT_ACC_MINUS_2 51
|
#define MOVE_EFFECT_SP_DEF_MINUS_2 51
|
||||||
#define MOVE_EFFECT_EVS_MINUS_2 52
|
#define MOVE_EFFECT_ACC_MINUS_2 52
|
||||||
#define MOVE_EFFECT_THRASH 53
|
#define MOVE_EFFECT_EVS_MINUS_2 53
|
||||||
#define MOVE_EFFECT_KNOCK_OFF 54
|
#define MOVE_EFFECT_THRASH 54
|
||||||
#define MOVE_EFFECT_DEF_SPDEF_DOWN 55
|
#define MOVE_EFFECT_KNOCK_OFF 55
|
||||||
#define MOVE_EFFECT_CLEAR_SMOG 56
|
#define MOVE_EFFECT_DEF_SPDEF_DOWN 56
|
||||||
#define MOVE_EFFECT_SP_ATK_TWO_DOWN 57
|
#define MOVE_EFFECT_CLEAR_SMOG 57
|
||||||
#define MOVE_EFFECT_SMACK_DOWN 58
|
#define MOVE_EFFECT_SP_ATK_TWO_DOWN 58
|
||||||
#define MOVE_EFFECT_FLAME_BURST 59
|
#define MOVE_EFFECT_SMACK_DOWN 59
|
||||||
#define MOVE_EFFECT_FEINT 60
|
#define MOVE_EFFECT_FLAME_BURST 60
|
||||||
#define MOVE_EFFECT_SPECTRAL_THIEF 61
|
#define MOVE_EFFECT_FEINT 61
|
||||||
#define MOVE_EFFECT_V_CREATE 62
|
#define MOVE_EFFECT_SPECTRAL_THIEF 62
|
||||||
#define MOVE_EFFECT_HAPPY_HOUR 63
|
#define MOVE_EFFECT_V_CREATE 63
|
||||||
#define MOVE_EFFECT_CORE_ENFORCER 64
|
#define MOVE_EFFECT_HAPPY_HOUR 64
|
||||||
#define MOVE_EFFECT_THROAT_CHOP 65
|
#define MOVE_EFFECT_CORE_ENFORCER 65
|
||||||
#define MOVE_EFFECT_INCINERATE 66
|
#define MOVE_EFFECT_THROAT_CHOP 66
|
||||||
#define MOVE_EFFECT_BUG_BITE 67
|
#define MOVE_EFFECT_INCINERATE 67
|
||||||
#define MOVE_EFFECT_RECOIL_HP_25 68
|
#define MOVE_EFFECT_BUG_BITE 68
|
||||||
#define MOVE_EFFECT_RELIC_SONG 69
|
#define MOVE_EFFECT_RECOIL_HP_25 69
|
||||||
#define MOVE_EFFECT_TRAP_BOTH 70
|
#define MOVE_EFFECT_RELIC_SONG 70
|
||||||
#define MOVE_EFFECT_DOUBLE_SHOCK 71
|
#define MOVE_EFFECT_TRAP_BOTH 71
|
||||||
#define MOVE_EFFECT_ROUND 72
|
#define MOVE_EFFECT_DOUBLE_SHOCK 72
|
||||||
#define MOVE_EFFECT_STOCKPILE_WORE_OFF 73
|
#define MOVE_EFFECT_ROUND 73
|
||||||
#define MOVE_EFFECT_DIRE_CLAW 74
|
#define MOVE_EFFECT_STOCKPILE_WORE_OFF 74
|
||||||
#define MOVE_EFFECT_STEALTH_ROCK 75
|
#define MOVE_EFFECT_DIRE_CLAW 75
|
||||||
#define MOVE_EFFECT_SPIKES 76
|
#define MOVE_EFFECT_STEALTH_ROCK 76
|
||||||
|
#define MOVE_EFFECT_SPIKES 77
|
||||||
|
|
||||||
#define NUM_MOVE_EFFECTS 77
|
#define NUM_MOVE_EFFECTS 78
|
||||||
|
|
||||||
#define MOVE_EFFECT_AFFECTS_USER 0x4000
|
#define MOVE_EFFECT_AFFECTS_USER 0x4000
|
||||||
#define MOVE_EFFECT_CERTAIN 0x8000
|
#define MOVE_EFFECT_CERTAIN 0x8000
|
||||||
|
@ -405,7 +405,8 @@
|
|||||||
#define EFFECT_DIRE_CLAW 399
|
#define EFFECT_DIRE_CLAW 399
|
||||||
#define EFFECT_BARB_BARRAGE 400
|
#define EFFECT_BARB_BARRAGE 400
|
||||||
#define EFFECT_REVIVAL_BLESSING 401
|
#define EFFECT_REVIVAL_BLESSING 401
|
||||||
|
#define EFFECT_FROSTBITE_HIT 402
|
||||||
|
|
||||||
#define NUM_BATTLE_MOVE_EFFECTS 402
|
#define NUM_BATTLE_MOVE_EFFECTS 403
|
||||||
|
|
||||||
#endif // GUARD_CONSTANTS_BATTLE_MOVE_EFFECTS_H
|
#endif // GUARD_CONSTANTS_BATTLE_MOVE_EFFECTS_H
|
||||||
|
@ -652,8 +652,9 @@
|
|||||||
#define STRINGID_ITEMCUREDSPECIESSTATUS 650
|
#define STRINGID_ITEMCUREDSPECIESSTATUS 650
|
||||||
#define STRINGID_ITEMRESTOREDSPECIESPP 651
|
#define STRINGID_ITEMRESTOREDSPECIESPP 651
|
||||||
#define STRINGID_PKMNHURTBYFROSTBITE 652
|
#define STRINGID_PKMNHURTBYFROSTBITE 652
|
||||||
|
#define STRINGID_PKMNGOTFROSTBITE 653
|
||||||
|
|
||||||
#define BATTLESTRINGS_COUNT 653
|
#define BATTLESTRINGS_COUNT 654
|
||||||
|
|
||||||
// This is the string id that gBattleStringsTable starts with.
|
// This is the string id that gBattleStringsTable starts with.
|
||||||
// String ids before this (e.g. STRINGID_INTROMSG) are not in the table,
|
// String ids before this (e.g. STRINGID_INTROMSG) are not in the table,
|
||||||
|
@ -346,7 +346,7 @@ struct BattleMove
|
|||||||
s8 priority;
|
s8 priority;
|
||||||
u32 flags;
|
u32 flags;
|
||||||
u8 split;
|
u8 split;
|
||||||
u8 argument;
|
u16 argument;
|
||||||
u8 zMoveEffect;
|
u8 zMoveEffect;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -101,6 +101,7 @@ static const u8 sText_PkmnAlreadyPoisoned[] = _("{B_DEF_NAME_WITH_PREFIX} is alr
|
|||||||
static const u8 sText_PkmnBadlyPoisoned[] = _("{B_EFF_NAME_WITH_PREFIX} is badly\npoisoned!");
|
static const u8 sText_PkmnBadlyPoisoned[] = _("{B_EFF_NAME_WITH_PREFIX} is badly\npoisoned!");
|
||||||
static const u8 sText_PkmnEnergyDrained[] = _("{B_DEF_NAME_WITH_PREFIX} had its\nenergy drained!");
|
static const u8 sText_PkmnEnergyDrained[] = _("{B_DEF_NAME_WITH_PREFIX} had its\nenergy drained!");
|
||||||
static const u8 sText_PkmnWasBurned[] = _("{B_EFF_NAME_WITH_PREFIX} was burned!");
|
static const u8 sText_PkmnWasBurned[] = _("{B_EFF_NAME_WITH_PREFIX} was burned!");
|
||||||
|
static const u8 sText_PkmnGotFrostbite[] = _("{B_EFF_NAME_WITH_PREFIX} got frostbite!");
|
||||||
static const u8 sText_PkmnBurnedBy[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_SCR_ACTIVE_ABILITY}\nburned {B_EFF_NAME_WITH_PREFIX}!");
|
static const u8 sText_PkmnBurnedBy[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_SCR_ACTIVE_ABILITY}\nburned {B_EFF_NAME_WITH_PREFIX}!");
|
||||||
static const u8 sText_PkmnHurtByBurn[] = _("{B_ATK_NAME_WITH_PREFIX} is hurt\nby its burn!");
|
static const u8 sText_PkmnHurtByBurn[] = _("{B_ATK_NAME_WITH_PREFIX} is hurt\nby its burn!");
|
||||||
static const u8 sText_PkmnHurtByFrostbite[] = _("{B_ATK_NAME_WITH_PREFIX} is hurt\nby its frostbite!");
|
static const u8 sText_PkmnHurtByFrostbite[] = _("{B_ATK_NAME_WITH_PREFIX} is hurt\nby its frostbite!");
|
||||||
@ -1430,6 +1431,7 @@ const u8 *const gBattleStringsTable[BATTLESTRINGS_COUNT] =
|
|||||||
[STRINGID_ATTACKERLOSTELECTRICTYPE - BATTLESTRINGS_TABLE_START] = sText_AttackerLostElectricType,
|
[STRINGID_ATTACKERLOSTELECTRICTYPE - BATTLESTRINGS_TABLE_START] = sText_AttackerLostElectricType,
|
||||||
[STRINGID_PKMNSABILITYPREVENTSABILITY - BATTLESTRINGS_TABLE_START] = sText_PkmnsAbilityPreventsAbility,
|
[STRINGID_PKMNSABILITYPREVENTSABILITY - BATTLESTRINGS_TABLE_START] = sText_PkmnsAbilityPreventsAbility,
|
||||||
[STRINGID_PKMNHURTBYFROSTBITE - BATTLESTRINGS_TABLE_START] = sText_PkmnHurtByFrostbite,
|
[STRINGID_PKMNHURTBYFROSTBITE - BATTLESTRINGS_TABLE_START] = sText_PkmnHurtByFrostbite,
|
||||||
|
[STRINGID_PKMNGOTFROSTBITE - BATTLESTRINGS_TABLE_START] = sText_PkmnGotFrostbite,
|
||||||
};
|
};
|
||||||
|
|
||||||
const u16 gTrainerUsedItemStringIds[] =
|
const u16 gTrainerUsedItemStringIds[] =
|
||||||
@ -1731,6 +1733,11 @@ const u16 gGotBurnedStringIds[] =
|
|||||||
[B_MSG_STATUSED_BY_ABILITY] = STRINGID_PKMNBURNEDBY
|
[B_MSG_STATUSED_BY_ABILITY] = STRINGID_PKMNBURNEDBY
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const u16 gGotFrostbiteStringIds[] =
|
||||||
|
{
|
||||||
|
[B_MSG_STATUSED] = STRINGID_PKMNGOTFROSTBITE
|
||||||
|
};
|
||||||
|
|
||||||
const u16 gGotFrozenStringIds[] =
|
const u16 gGotFrozenStringIds[] =
|
||||||
{
|
{
|
||||||
[B_MSG_STATUSED] = STRINGID_PKMNWASFROZEN,
|
[B_MSG_STATUSED] = STRINGID_PKMNWASFROZEN,
|
||||||
|
@ -61,6 +61,7 @@
|
|||||||
#include "constants/trainers.h"
|
#include "constants/trainers.h"
|
||||||
#include "battle_util.h"
|
#include "battle_util.h"
|
||||||
#include "constants/pokemon.h"
|
#include "constants/pokemon.h"
|
||||||
|
#include "config/battle.h"
|
||||||
|
|
||||||
// Helper for accessing command arguments and advancing gBattlescriptCurrInstr.
|
// Helper for accessing command arguments and advancing gBattlescriptCurrInstr.
|
||||||
//
|
//
|
||||||
@ -896,6 +897,7 @@ static const u32 sStatusFlagsForMoveEffects[NUM_MOVE_EFFECTS] =
|
|||||||
[MOVE_EFFECT_FREEZE] = STATUS1_FREEZE,
|
[MOVE_EFFECT_FREEZE] = STATUS1_FREEZE,
|
||||||
[MOVE_EFFECT_PARALYSIS] = STATUS1_PARALYSIS,
|
[MOVE_EFFECT_PARALYSIS] = STATUS1_PARALYSIS,
|
||||||
[MOVE_EFFECT_TOXIC] = STATUS1_TOXIC_POISON,
|
[MOVE_EFFECT_TOXIC] = STATUS1_TOXIC_POISON,
|
||||||
|
[MOVE_EFFECT_FROSTBITE] = STATUS1_FROSTBITE,
|
||||||
[MOVE_EFFECT_CONFUSION] = STATUS2_CONFUSION,
|
[MOVE_EFFECT_CONFUSION] = STATUS2_CONFUSION,
|
||||||
[MOVE_EFFECT_FLINCH] = STATUS2_FLINCHED,
|
[MOVE_EFFECT_FLINCH] = STATUS2_FLINCHED,
|
||||||
[MOVE_EFFECT_UPROAR] = STATUS2_UPROAR,
|
[MOVE_EFFECT_UPROAR] = STATUS2_UPROAR,
|
||||||
@ -919,6 +921,7 @@ static const u8 *const sMoveEffectBS_Ptrs[] =
|
|||||||
[MOVE_EFFECT_UPROAR] = BattleScript_MoveEffectUproar,
|
[MOVE_EFFECT_UPROAR] = BattleScript_MoveEffectUproar,
|
||||||
[MOVE_EFFECT_PAYDAY] = BattleScript_MoveEffectPayDay,
|
[MOVE_EFFECT_PAYDAY] = BattleScript_MoveEffectPayDay,
|
||||||
[MOVE_EFFECT_WRAP] = BattleScript_MoveEffectWrap,
|
[MOVE_EFFECT_WRAP] = BattleScript_MoveEffectWrap,
|
||||||
|
[MOVE_EFFECT_FROSTBITE] = BattleScript_MoveEffectFrostbite,
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct WindowTemplate sUnusedWinTemplate =
|
static const struct WindowTemplate sUnusedWinTemplate =
|
||||||
@ -3161,6 +3164,12 @@ void SetMoveEffect(bool32 primary, u32 certain)
|
|||||||
gMoveResultFlags |= MOVE_RESULT_DOESNT_AFFECT_FOE;
|
gMoveResultFlags |= MOVE_RESULT_DOESNT_AFFECT_FOE;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case STATUS1_FROSTBITE:
|
||||||
|
if (!CanBeFrozen(gEffectBattler))
|
||||||
|
break;
|
||||||
|
|
||||||
|
statusChanged = TRUE;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
if (statusChanged == TRUE)
|
if (statusChanged == TRUE)
|
||||||
{
|
{
|
||||||
@ -3319,7 +3328,11 @@ void SetMoveEffect(bool32 primary, u32 certain)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
#if B_USE_FROSTBITE == TRUE
|
||||||
|
static const u8 sTriAttackEffects[] = { MOVE_EFFECT_BURN, MOVE_EFFECT_FROSTBITE, MOVE_EFFECT_PARALYSIS };
|
||||||
|
#else
|
||||||
static const u8 sTriAttackEffects[] = { MOVE_EFFECT_BURN, MOVE_EFFECT_FREEZE, MOVE_EFFECT_PARALYSIS };
|
static const u8 sTriAttackEffects[] = { MOVE_EFFECT_BURN, MOVE_EFFECT_FREEZE, MOVE_EFFECT_PARALYSIS };
|
||||||
|
#endif
|
||||||
gBattleScripting.moveEffect = RandomElement(RNG_TRI_ATTACK, sTriAttackEffects);
|
gBattleScripting.moveEffect = RandomElement(RNG_TRI_ATTACK, sTriAttackEffects);
|
||||||
SetMoveEffect(FALSE, 0);
|
SetMoveEffect(FALSE, 0);
|
||||||
}
|
}
|
||||||
@ -9960,6 +9973,9 @@ static void Cmd_various(void)
|
|||||||
case STATUS1_TOXIC_POISON:
|
case STATUS1_TOXIC_POISON:
|
||||||
gBattleScripting.moveEffect = MOVE_EFFECT_TOXIC;
|
gBattleScripting.moveEffect = MOVE_EFFECT_TOXIC;
|
||||||
break;
|
break;
|
||||||
|
case STATUS1_FROSTBITE:
|
||||||
|
gBattleScripting.moveEffect = MOVE_EFFECT_FROSTBITE;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
gBattleScripting.moveEffect = 0;
|
gBattleScripting.moveEffect = 0;
|
||||||
break;
|
break;
|
||||||
@ -15079,7 +15095,11 @@ u16 GetSecretPowerMoveEffect(void)
|
|||||||
break;
|
break;
|
||||||
case BATTLE_TERRAIN_SNOW:
|
case BATTLE_TERRAIN_SNOW:
|
||||||
case BATTLE_TERRAIN_ICE:
|
case BATTLE_TERRAIN_ICE:
|
||||||
|
#if B_USE_FROSTBITE == TRUE
|
||||||
|
moveEffect = MOVE_EFFECT_FROSTBITE;
|
||||||
|
#else
|
||||||
moveEffect = MOVE_EFFECT_FREEZE;
|
moveEffect = MOVE_EFFECT_FREEZE;
|
||||||
|
#endif
|
||||||
break;
|
break;
|
||||||
case BATTLE_TERRAIN_VOLCANO:
|
case BATTLE_TERRAIN_VOLCANO:
|
||||||
moveEffect = MOVE_EFFECT_BURN;
|
moveEffect = MOVE_EFFECT_BURN;
|
||||||
|
@ -481,6 +481,7 @@ static const u16 sPoints_MoveEffect[NUM_BATTLE_MOVE_EFFECTS] =
|
|||||||
[EFFECT_DOUBLE_SHOCK] = 0, // TODO: Assign points
|
[EFFECT_DOUBLE_SHOCK] = 0, // TODO: Assign points
|
||||||
[EFFECT_SPECIAL_ATTACK_UP_HIT] = 1,
|
[EFFECT_SPECIAL_ATTACK_UP_HIT] = 1,
|
||||||
[EFFECT_VICTORY_DANCE] = 0, // TODO: Assign points
|
[EFFECT_VICTORY_DANCE] = 0, // TODO: Assign points
|
||||||
|
[EFFECT_FROSTBITE_HIT] = 1,
|
||||||
};
|
};
|
||||||
|
|
||||||
static const u16 sPoints_Effectiveness[] =
|
static const u16 sPoints_Effectiveness[] =
|
||||||
|
@ -121,7 +121,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] =
|
|||||||
|
|
||||||
[MOVE_ICE_PUNCH] =
|
[MOVE_ICE_PUNCH] =
|
||||||
{
|
{
|
||||||
.effect = EFFECT_FREEZE_HIT,
|
#if B_USE_FROSTBITE == TRUE
|
||||||
|
.effect = EFFECT_FROSTBITE_HIT,
|
||||||
|
#else
|
||||||
|
.effect = EFFECT_FREEZE_HIT,
|
||||||
|
#endif
|
||||||
.power = 75,
|
.power = 75,
|
||||||
.type = TYPE_ICE,
|
.type = TYPE_ICE,
|
||||||
.accuracy = 100,
|
.accuracy = 100,
|
||||||
@ -982,7 +986,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] =
|
|||||||
#else
|
#else
|
||||||
.power = 95,
|
.power = 95,
|
||||||
#endif
|
#endif
|
||||||
.effect = EFFECT_FREEZE_HIT,
|
#if B_USE_FROSTBITE == TRUE
|
||||||
|
.effect = EFFECT_FROSTBITE_HIT,
|
||||||
|
#else
|
||||||
|
.effect = EFFECT_FREEZE_HIT,
|
||||||
|
#endif
|
||||||
.type = TYPE_ICE,
|
.type = TYPE_ICE,
|
||||||
.accuracy = 100,
|
.accuracy = 100,
|
||||||
.pp = 10,
|
.pp = 10,
|
||||||
@ -1001,7 +1009,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] =
|
|||||||
#else
|
#else
|
||||||
.power = 120,
|
.power = 120,
|
||||||
#endif
|
#endif
|
||||||
.effect = EFFECT_FREEZE_HIT,
|
#if B_USE_FROSTBITE == TRUE
|
||||||
|
.effect = EFFECT_FROSTBITE_HIT,
|
||||||
|
#else
|
||||||
|
.effect = EFFECT_FREEZE_HIT,
|
||||||
|
#endif
|
||||||
.type = TYPE_ICE,
|
.type = TYPE_ICE,
|
||||||
.accuracy = 70,
|
.accuracy = 70,
|
||||||
.pp = 5,
|
.pp = 5,
|
||||||
@ -3062,7 +3074,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] =
|
|||||||
|
|
||||||
[MOVE_POWDER_SNOW] =
|
[MOVE_POWDER_SNOW] =
|
||||||
{
|
{
|
||||||
.effect = EFFECT_FREEZE_HIT,
|
#if B_USE_FROSTBITE == TRUE
|
||||||
|
.effect = EFFECT_FROSTBITE_HIT,
|
||||||
|
#else
|
||||||
|
.effect = EFFECT_FREEZE_HIT,
|
||||||
|
#endif
|
||||||
.power = 40,
|
.power = 40,
|
||||||
.type = TYPE_ICE,
|
.type = TYPE_ICE,
|
||||||
.accuracy = 100,
|
.accuracy = 100,
|
||||||
@ -7177,6 +7193,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] =
|
|||||||
#else
|
#else
|
||||||
.flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_SHEER_FORCE_BOOST | FLAG_STRONG_JAW_BOOST,
|
.flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_SHEER_FORCE_BOOST | FLAG_STRONG_JAW_BOOST,
|
||||||
#endif
|
#endif
|
||||||
|
#if B_USE_FROSTBITE == TRUE
|
||||||
|
.argument = STATUS1_FROSTBITE,
|
||||||
|
#else
|
||||||
|
.argument = STATUS1_FREEZE,
|
||||||
|
#endif
|
||||||
.effect = EFFECT_FLINCH_STATUS,
|
.effect = EFFECT_FLINCH_STATUS,
|
||||||
.power = 65,
|
.power = 65,
|
||||||
.type = TYPE_ICE,
|
.type = TYPE_ICE,
|
||||||
@ -7186,7 +7207,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] =
|
|||||||
.target = MOVE_TARGET_SELECTED,
|
.target = MOVE_TARGET_SELECTED,
|
||||||
.priority = 0,
|
.priority = 0,
|
||||||
.split = SPLIT_PHYSICAL,
|
.split = SPLIT_PHYSICAL,
|
||||||
.argument = STATUS1_FREEZE,
|
|
||||||
.zMoveEffect = Z_EFFECT_NONE,
|
.zMoveEffect = Z_EFFECT_NONE,
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -12354,7 +12374,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] =
|
|||||||
[MOVE_FREEZING_GLARE] =
|
[MOVE_FREEZING_GLARE] =
|
||||||
{
|
{
|
||||||
.power = 90,
|
.power = 90,
|
||||||
.effect = EFFECT_FREEZE_HIT,
|
#if B_USE_FROSTBITE == TRUE
|
||||||
|
.effect = EFFECT_FROSTBITE_HIT,
|
||||||
|
#else
|
||||||
|
.effect = EFFECT_FREEZE_HIT,
|
||||||
|
#endif
|
||||||
.type = TYPE_PSYCHIC,
|
.type = TYPE_PSYCHIC,
|
||||||
.accuracy = 100,
|
.accuracy = 100,
|
||||||
.pp = 10,
|
.pp = 10,
|
||||||
|
Loading…
Reference in New Issue
Block a user