Separates FRB and FRZ animations (#7611)
This commit is contained in:
parent
04622b202f
commit
a2e1835993
@ -31084,6 +31084,17 @@ gBattleAnimStatus_Nightmare::
|
|||||||
clearmonbg ANIM_DEF_PARTNER
|
clearmonbg ANIM_DEF_PARTNER
|
||||||
end
|
end
|
||||||
|
|
||||||
|
gBattleAnimStatus_Frostbite::
|
||||||
|
playsewithpan SE_M_ICY_WIND, 0
|
||||||
|
loadspritegfx ANIM_TAG_ICE_CRYSTALS
|
||||||
|
monbg ANIM_DEF_PARTNER
|
||||||
|
splitbgprio ANIM_TARGET
|
||||||
|
call IceCrystalEffectShort
|
||||||
|
createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_TARGET, 5, 7, 0, RGB(0, 20, 31)
|
||||||
|
waitforvisualfinish
|
||||||
|
clearmonbg ANIM_DEF_PARTNER
|
||||||
|
end
|
||||||
|
|
||||||
gBattleAnimGeneral_StatsChange::
|
gBattleAnimGeneral_StatsChange::
|
||||||
createvisualtask AnimTask_StatsChange, 5
|
createvisualtask AnimTask_StatsChange, 5
|
||||||
waitforvisualfinish
|
waitforvisualfinish
|
||||||
|
|||||||
@ -948,6 +948,7 @@ extern const u8 gBattleAnimStatus_Paralysis[];
|
|||||||
extern const u8 gBattleAnimStatus_Freeze[];
|
extern const u8 gBattleAnimStatus_Freeze[];
|
||||||
extern const u8 gBattleAnimStatus_Curse[];
|
extern const u8 gBattleAnimStatus_Curse[];
|
||||||
extern const u8 gBattleAnimStatus_Nightmare[];
|
extern const u8 gBattleAnimStatus_Nightmare[];
|
||||||
|
extern const u8 gBattleAnimStatus_Frostbite[];
|
||||||
|
|
||||||
// general animations
|
// general animations
|
||||||
extern const u8 gBattleAnimGeneral_StatsChange[];
|
extern const u8 gBattleAnimGeneral_StatsChange[];
|
||||||
|
|||||||
@ -616,8 +616,9 @@
|
|||||||
#define B_ANIM_STATUS_FRZ 6
|
#define B_ANIM_STATUS_FRZ 6
|
||||||
#define B_ANIM_STATUS_CURSED 7
|
#define B_ANIM_STATUS_CURSED 7
|
||||||
#define B_ANIM_STATUS_NIGHTMARE 8
|
#define B_ANIM_STATUS_NIGHTMARE 8
|
||||||
|
#define B_ANIM_STATUS_FRB 9
|
||||||
|
|
||||||
#define NUM_B_ANIMS_STATUS 9
|
#define NUM_B_ANIMS_STATUS 10
|
||||||
|
|
||||||
// Tasks with return values often assign them to gBattleAnimArgs[7].
|
// Tasks with return values often assign them to gBattleAnimArgs[7].
|
||||||
#define ARG_RET_ID 7
|
#define ARG_RET_ID 7
|
||||||
|
|||||||
@ -195,6 +195,7 @@ static const u8* const sBattleAnims_StatusConditions[NUM_B_ANIMS_STATUS] =
|
|||||||
[B_ANIM_STATUS_FRZ] = gBattleAnimStatus_Freeze,
|
[B_ANIM_STATUS_FRZ] = gBattleAnimStatus_Freeze,
|
||||||
[B_ANIM_STATUS_CURSED] = gBattleAnimStatus_Curse,
|
[B_ANIM_STATUS_CURSED] = gBattleAnimStatus_Curse,
|
||||||
[B_ANIM_STATUS_NIGHTMARE] = gBattleAnimStatus_Nightmare,
|
[B_ANIM_STATUS_NIGHTMARE] = gBattleAnimStatus_Nightmare,
|
||||||
|
[B_ANIM_STATUS_FRB] = gBattleAnimStatus_Frostbite,
|
||||||
};
|
};
|
||||||
|
|
||||||
static const u8* const sBattleAnims_General[NUM_B_ANIMS_GENERAL] =
|
static const u8* const sBattleAnims_General[NUM_B_ANIMS_GENERAL] =
|
||||||
|
|||||||
@ -464,8 +464,10 @@ void InitAndLaunchChosenStatusAnimation(u32 battler, bool32 isVolatile, u32 stat
|
|||||||
gBattleSpritesDataPtr->healthBoxesData[battler].statusAnimActive = 1;
|
gBattleSpritesDataPtr->healthBoxesData[battler].statusAnimActive = 1;
|
||||||
if (!isVolatile)
|
if (!isVolatile)
|
||||||
{
|
{
|
||||||
if (status == STATUS1_FREEZE || status == STATUS1_FROSTBITE)
|
if (status == STATUS1_FREEZE)
|
||||||
LaunchStatusAnimation(battler, B_ANIM_STATUS_FRZ);
|
LaunchStatusAnimation(battler, B_ANIM_STATUS_FRZ);
|
||||||
|
else if (status == STATUS1_FROSTBITE)
|
||||||
|
LaunchStatusAnimation(battler, B_ANIM_STATUS_FRB);
|
||||||
else if (status == STATUS1_POISON || status & STATUS1_TOXIC_POISON)
|
else if (status == STATUS1_POISON || status & STATUS1_TOXIC_POISON)
|
||||||
LaunchStatusAnimation(battler, B_ANIM_STATUS_PSN);
|
LaunchStatusAnimation(battler, B_ANIM_STATUS_PSN);
|
||||||
else if (status == STATUS1_BURN)
|
else if (status == STATUS1_BURN)
|
||||||
|
|||||||
@ -87,7 +87,7 @@ SINGLE_BATTLE_TEST("Aspear and Lum Berries cure freeze or frostbite")
|
|||||||
TURN { MOVE(player, MOVE_ICE_PUNCH); }
|
TURN { MOVE(player, MOVE_ICE_PUNCH); }
|
||||||
} SCENE {
|
} SCENE {
|
||||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_ICE_PUNCH, player);
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_ICE_PUNCH, player);
|
||||||
ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_FRZ, opponent);
|
ANIMATION(ANIM_TYPE_STATUS, (B_USE_FROSTBITE ? B_ANIM_STATUS_FRB : B_ANIM_STATUS_FRZ), opponent);
|
||||||
FREEZE_OR_FROSTBURN_STATUS(opponent, TRUE);
|
FREEZE_OR_FROSTBURN_STATUS(opponent, TRUE);
|
||||||
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, opponent);
|
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, opponent);
|
||||||
FREEZE_OR_FROSTBURN_STATUS(opponent, FALSE);
|
FREEZE_OR_FROSTBURN_STATUS(opponent, FALSE);
|
||||||
|
|||||||
@ -20,7 +20,7 @@ SINGLE_BATTLE_TEST("Powder Snow inflicts freeze")
|
|||||||
} SCENE {
|
} SCENE {
|
||||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_POWDER_SNOW, player);
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_POWDER_SNOW, player);
|
||||||
HP_BAR(opponent);
|
HP_BAR(opponent);
|
||||||
ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_FRZ, opponent);
|
ANIMATION(ANIM_TYPE_STATUS, (B_USE_FROSTBITE ? B_ANIM_STATUS_FRB : B_ANIM_STATUS_FRZ), opponent);
|
||||||
FREEZE_OR_FROSTBURN_STATUS(opponent, TRUE);
|
FREEZE_OR_FROSTBURN_STATUS(opponent, TRUE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -85,11 +85,11 @@ SINGLE_BATTLE_TEST("Freezing Glare shouldn't freeze Psychic-types")
|
|||||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_FREEZING_GLARE, player);
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_FREEZING_GLARE, player);
|
||||||
HP_BAR(opponent);
|
HP_BAR(opponent);
|
||||||
#if B_STATUS_TYPE_IMMUNITY > GEN_1
|
#if B_STATUS_TYPE_IMMUNITY > GEN_1
|
||||||
ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_FRZ, opponent);
|
ANIMATION(ANIM_TYPE_STATUS, (B_USE_FROSTBITE ? B_ANIM_STATUS_FRB : B_ANIM_STATUS_FRZ), opponent);
|
||||||
FREEZE_OR_FROSTBURN_STATUS(opponent, TRUE);
|
FREEZE_OR_FROSTBURN_STATUS(opponent, TRUE);
|
||||||
#else
|
#else
|
||||||
NONE_OF {
|
NONE_OF {
|
||||||
ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_FRZ, opponent);
|
ANIMATION(ANIM_TYPE_STATUS, (B_USE_FROSTBITE ? B_ANIM_STATUS_FRB : B_ANIM_STATUS_FRZ), opponent);
|
||||||
FREEZE_OR_FROSTBURN_STATUS(opponent, TRUE);
|
FREEZE_OR_FROSTBURN_STATUS(opponent, TRUE);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@ -15,7 +15,7 @@ SINGLE_BATTLE_TEST("Tri Attack can inflict paralysis, burn or freeze")
|
|||||||
u8 statusAnim;
|
u8 statusAnim;
|
||||||
PARAMETRIZE { statusAnim = B_ANIM_STATUS_PRZ; }
|
PARAMETRIZE { statusAnim = B_ANIM_STATUS_PRZ; }
|
||||||
PARAMETRIZE { statusAnim = B_ANIM_STATUS_BRN; }
|
PARAMETRIZE { statusAnim = B_ANIM_STATUS_BRN; }
|
||||||
PARAMETRIZE { statusAnim = B_ANIM_STATUS_FRZ; }
|
PARAMETRIZE { statusAnim = (B_USE_FROSTBITE ? B_ANIM_STATUS_FRB : B_ANIM_STATUS_FRZ); }
|
||||||
PASSES_RANDOMLY(1, 3, RNG_TRI_ATTACK);
|
PASSES_RANDOMLY(1, 3, RNG_TRI_ATTACK);
|
||||||
GIVEN {
|
GIVEN {
|
||||||
PLAYER(SPECIES_WOBBUFFET);
|
PLAYER(SPECIES_WOBBUFFET);
|
||||||
@ -29,7 +29,7 @@ SINGLE_BATTLE_TEST("Tri Attack can inflict paralysis, burn or freeze")
|
|||||||
ANIMATION(ANIM_TYPE_STATUS, statusAnim, opponent);
|
ANIMATION(ANIM_TYPE_STATUS, statusAnim, opponent);
|
||||||
if (statusAnim == B_ANIM_STATUS_BRN) {
|
if (statusAnim == B_ANIM_STATUS_BRN) {
|
||||||
STATUS_ICON(opponent, burn: TRUE);
|
STATUS_ICON(opponent, burn: TRUE);
|
||||||
} else if (statusAnim == B_ANIM_STATUS_FRZ) {
|
} else if (statusAnim == (B_USE_FROSTBITE ? B_ANIM_STATUS_FRB : B_ANIM_STATUS_FRZ)) {
|
||||||
FREEZE_OR_FROSTBURN_STATUS(opponent, TRUE);
|
FREEZE_OR_FROSTBURN_STATUS(opponent, TRUE);
|
||||||
} else if (statusAnim == B_ANIM_STATUS_PRZ) {
|
} else if (statusAnim == B_ANIM_STATUS_PRZ) {
|
||||||
STATUS_ICON(opponent, paralysis: TRUE);
|
STATUS_ICON(opponent, paralysis: TRUE);
|
||||||
|
|||||||
@ -32,7 +32,7 @@ SINGLE_BATTLE_TEST("Thunder, Ice and Fire Fang inflict status 10% of the time")
|
|||||||
ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_PRZ, opponent);
|
ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_PRZ, opponent);
|
||||||
STATUS_ICON(opponent, paralysis: TRUE);
|
STATUS_ICON(opponent, paralysis: TRUE);
|
||||||
} if (move == MOVE_ICE_FANG) {
|
} if (move == MOVE_ICE_FANG) {
|
||||||
ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_FRZ, opponent);
|
ANIMATION(ANIM_TYPE_STATUS, (B_USE_FROSTBITE ? B_ANIM_STATUS_FRB : B_ANIM_STATUS_FRZ), opponent);
|
||||||
FREEZE_OR_FROSTBURN_STATUS(opponent, TRUE);
|
FREEZE_OR_FROSTBURN_STATUS(opponent, TRUE);
|
||||||
} if (move == MOVE_FIRE_FANG) {
|
} if (move == MOVE_FIRE_FANG) {
|
||||||
ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_BRN, opponent);
|
ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_BRN, opponent);
|
||||||
|
|||||||
@ -34,7 +34,7 @@ SINGLE_BATTLE_TEST("Frostbite deals 1/16th (Gen7+) or 1/8th damage to affected P
|
|||||||
TURN {}
|
TURN {}
|
||||||
} SCENE {
|
} SCENE {
|
||||||
MESSAGE("The opposing Wobbuffet was hurt by its frostbite!");
|
MESSAGE("The opposing Wobbuffet was hurt by its frostbite!");
|
||||||
ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_FRZ, opponent);
|
ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_FRB, opponent);
|
||||||
HP_BAR(opponent, captureDamage: &frostbiteDamage);
|
HP_BAR(opponent, captureDamage: &frostbiteDamage);
|
||||||
} THEN { EXPECT_EQ(frostbiteDamage, opponent->maxHP / ((B_BURN_DAMAGE >= GEN_7) ? 16 : 8)); }
|
} THEN { EXPECT_EQ(frostbiteDamage, opponent->maxHP / ((B_BURN_DAMAGE >= GEN_7) ? 16 : 8)); }
|
||||||
}
|
}
|
||||||
@ -86,11 +86,11 @@ SINGLE_BATTLE_TEST("Frostbite is healed when the user uses a thawing move")
|
|||||||
HP_BAR(opponent);
|
HP_BAR(opponent);
|
||||||
if (move == MOVE_EMBER) {
|
if (move == MOVE_EMBER) {
|
||||||
MESSAGE("Wobbuffet was hurt by its frostbite!");
|
MESSAGE("Wobbuffet was hurt by its frostbite!");
|
||||||
ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_FRZ, player);
|
ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_FRB, player);
|
||||||
} else {
|
} else {
|
||||||
NONE_OF {
|
NONE_OF {
|
||||||
MESSAGE("Wobbuffet was hurt by its frostbite!");
|
MESSAGE("Wobbuffet was hurt by its frostbite!");
|
||||||
ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_FRZ, player);
|
ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_FRB, player);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user