Merge branch '_RHH/master' into _RHH/upcoming
This commit is contained in:
commit
80af2af9ad
10 changed files with 152 additions and 68 deletions
|
@ -265,46 +265,50 @@
|
|||
#define PARTY_SCREEN_OPTIONAL (1 << 7) // Flag for first argument to openpartyscreen
|
||||
|
||||
// cases for Cmd_moveend
|
||||
#define MOVEEND_SUM_DAMAGE 0
|
||||
#define MOVEEND_PROTECT_LIKE_EFFECT 1
|
||||
#define MOVEEND_RAGE 2
|
||||
#define MOVEEND_SYNCHRONIZE_TARGET 3
|
||||
#define MOVEEND_ABILITIES 4
|
||||
#define MOVEEND_ABILITIES_ATTACKER 5
|
||||
#define MOVEEND_STATUS_IMMUNITY_ABILITIES 6
|
||||
#define MOVEEND_SYNCHRONIZE_ATTACKER 7
|
||||
#define MOVEEND_CHOICE_MOVE 8
|
||||
#define MOVEEND_ATTACKER_INVISIBLE 9
|
||||
#define MOVEEND_ATTACKER_VISIBLE 10
|
||||
#define MOVEEND_TARGET_VISIBLE 11
|
||||
#define MOVEEND_ITEM_EFFECTS_TARGET 12
|
||||
#define MOVEEND_MOVE_EFFECTS2 13
|
||||
#define MOVEEND_ITEM_EFFECTS_ALL 14
|
||||
#define MOVEEND_KINGSROCK 15 // These item effects will occur each strike of a multi-hit move
|
||||
#define MOVEEND_NUM_HITS 16
|
||||
#define MOVEEND_SUBSTITUTE 17
|
||||
#define MOVEEND_SKY_DROP_CONFUSE 18
|
||||
#define MOVEEND_UPDATE_LAST_MOVES 19
|
||||
#define MOVEEND_MIRROR_MOVE 20
|
||||
#define MOVEEND_NEXT_TARGET 21 // Everything up until here is handled for each strike of a multi-hit move
|
||||
#define MOVEEND_MULTIHIT_MOVE 22
|
||||
#define MOVEEND_DEFROST 23
|
||||
#define MOVEEND_RECOIL 24
|
||||
#define MOVEEND_MAGICIAN 25 // Occurs after final multi-hit strike, and after other items/abilities would activate
|
||||
#define MOVEEND_EJECT_ITEMS 26
|
||||
#define MOVEEND_WHITE_HERB 27
|
||||
#define MOVEEND_RED_CARD 28
|
||||
#define MOVEEND_LIFEORB_SHELLBELL 29 // Includes shell bell, throat spray, etc
|
||||
#define MOVEEND_CHANGED_ITEMS 30
|
||||
#define MOVEEND_PICKPOCKET 31
|
||||
#define MOVEEND_DANCER 32
|
||||
#define MOVEEND_EMERGENCY_EXIT 33
|
||||
#define MOVEEND_SYMBIOSIS 34
|
||||
#define MOVEEND_OPPORTUNIST 35 // Occurs after other stat change items/abilities to try and copy the boosts
|
||||
#define MOVEEND_SAME_MOVE_TURNS 36
|
||||
#define MOVEEND_SET_EVOLUTION_TRACKER 37
|
||||
#define MOVEEND_CLEAR_BITS 38
|
||||
#define MOVEEND_COUNT 39
|
||||
enum MoveEndEffects
|
||||
{
|
||||
MOVEEND_SUM_DAMAGE,
|
||||
MOVEEND_PROTECT_LIKE_EFFECT,
|
||||
MOVEEND_RAGE,
|
||||
MOVEEND_SYNCHRONIZE_TARGET,
|
||||
MOVEEND_ABILITIES,
|
||||
MOVEEND_ABILITIES_ATTACKER,
|
||||
MOVEEND_STATUS_IMMUNITY_ABILITIES,
|
||||
MOVEEND_SYNCHRONIZE_ATTACKER,
|
||||
MOVEEND_CHOICE_MOVE,
|
||||
MOVEEND_ATTACKER_INVISIBLE,
|
||||
MOVEEND_ATTACKER_VISIBLE,
|
||||
MOVEEND_TARGET_VISIBLE,
|
||||
MOVEEND_ITEM_EFFECTS_TARGET,
|
||||
MOVEEND_MOVE_EFFECTS2,
|
||||
MOVEEND_ITEM_EFFECTS_ALL,
|
||||
MOVEEND_KINGSROCK, // These item effects will occur each strike of a multi-hit move
|
||||
MOVEEND_NUM_HITS,
|
||||
MOVEEND_SUBSTITUTE,
|
||||
MOVEEND_SKY_DROP_CONFUSE,
|
||||
MOVEEND_UPDATE_LAST_MOVES,
|
||||
MOVEEND_MIRROR_MOVE,
|
||||
MOVEEND_NEXT_TARGET, // Everything up until here is handled for each strike of a multi-hit move
|
||||
MOVEEND_MULTIHIT_MOVE,
|
||||
MOVEEND_DEFROST,
|
||||
MOVEEND_RECOIL,
|
||||
MOVEEND_ITEM_EFFECTS_ATTACKER,
|
||||
MOVEEND_MAGICIAN, // Occurs after final multi-hit strike, and after other items/abilities would activate
|
||||
MOVEEND_EJECT_ITEMS,
|
||||
MOVEEND_WHITE_HERB,
|
||||
MOVEEND_RED_CARD,
|
||||
MOVEEND_LIFEORB_SHELLBELL, // Includes shell bell, throat spray, etc
|
||||
MOVEEND_CHANGED_ITEMS,
|
||||
MOVEEND_PICKPOCKET,
|
||||
MOVEEND_DANCER,
|
||||
MOVEEND_EMERGENCY_EXIT,
|
||||
MOVEEND_SYMBIOSIS,
|
||||
MOVEEND_OPPORTUNIST, // Occurs after other stat change items/abilities to try and copy the boosts
|
||||
MOVEEND_SAME_MOVE_TURNS,
|
||||
MOVEEND_SET_EVOLUTION_TRACKER,
|
||||
MOVEEND_CLEAR_BITS,
|
||||
MOVEEND_COUNT,
|
||||
};
|
||||
|
||||
// switch cases
|
||||
#define B_SWITCH_NORMAL 0
|
||||
|
|
|
@ -102,5 +102,6 @@ void MoveDeleterForgetMove(void);
|
|||
void BufferMoveDeleterNicknameAndMove(void);
|
||||
void GetNumMovesSelectedMonHas(void);
|
||||
void MoveDeleterChooseMoveToForget(void);
|
||||
bool32 IsItemFlute(u16 item);
|
||||
|
||||
#endif // GUARD_PARTY_MENU_H
|
||||
|
|
|
@ -384,8 +384,8 @@ static void HandleInputChooseAction(u32 battler)
|
|||
&& !(gAbsentBattlerFlags & (1u << GetBattlerAtPosition(B_POSITION_PLAYER_LEFT)))
|
||||
&& !(gBattleTypeFlags & BATTLE_TYPE_MULTI))
|
||||
{
|
||||
// Return item to bag if partner had selected one.
|
||||
if (gBattleResources->bufferA[battler][1] == B_ACTION_USE_ITEM)
|
||||
// Return item to bag if partner had selected one (except flutes).
|
||||
if (gBattleResources->bufferA[battler][1] == B_ACTION_USE_ITEM && !IsItemFlute(itemId))
|
||||
{
|
||||
AddBagItem(itemId, 1);
|
||||
}
|
||||
|
|
|
@ -5740,6 +5740,11 @@ static void Cmd_moveend(void)
|
|||
}
|
||||
gBattleScripting.moveendState++;
|
||||
break;
|
||||
case MOVEEND_ITEM_EFFECTS_ATTACKER:
|
||||
if (ItemBattleEffects(ITEMEFFECT_MOVE_END, gBattlerAttacker, FALSE))
|
||||
effect = TRUE;
|
||||
gBattleScripting.moveendState++;
|
||||
break;
|
||||
case MOVEEND_SYNCHRONIZE_TARGET: // target synchronize
|
||||
if (AbilityBattleEffects(ABILITYEFFECT_SYNCHRONIZE, gBattlerTarget, 0, 0, 0))
|
||||
effect = TRUE;
|
||||
|
|
|
@ -13862,6 +13862,7 @@ const struct Item gItemsInfo[] =
|
|||
.type = ITEM_USE_PARTY_MENU,
|
||||
.fieldUseFunc = ItemUseOutOfBattle_Medicine,
|
||||
.battleUsage = EFFECT_ITEM_CURE_STATUS,
|
||||
.effect = gItemEffect_FullHeal,
|
||||
.flingPower = 30,
|
||||
.iconPic = gItemIcon_JubilifeMuffin,
|
||||
.iconPalette = gItemIconPalette_JubilifeMuffin,
|
||||
|
|
|
@ -4578,7 +4578,7 @@ static bool8 NotUsingHPEVItemOnShedinja(struct Pokemon *mon, u16 item)
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
static bool8 IsItemFlute(u16 item)
|
||||
bool32 IsItemFlute(u16 item)
|
||||
{
|
||||
if (item == ITEM_BLUE_FLUTE || item == ITEM_RED_FLUTE || item == ITEM_YELLOW_FLUTE)
|
||||
return TRUE;
|
||||
|
|
|
@ -27,3 +27,39 @@ DOUBLE_BATTLE_TEST("Restore HP Item effects do not miss timing")
|
|||
MESSAGE("The opposing Foe Wobbuffet was hurt by the sea of fire!");
|
||||
}
|
||||
}
|
||||
|
||||
DOUBLE_BATTLE_TEST("Restore HP Item effects do not miss timing after a recoil move")
|
||||
{
|
||||
u16 item;
|
||||
|
||||
PARAMETRIZE { item = ITEM_BERRY_JUICE; }
|
||||
PARAMETRIZE { item = ITEM_ORAN_BERRY; }
|
||||
PARAMETRIZE { item = ITEM_SITRUS_BERRY; }
|
||||
|
||||
GIVEN {
|
||||
ASSUME(gMovesInfo[MOVE_TAKE_DOWN].recoil == 25);
|
||||
ASSUME(gItemsInfo[ITEM_ORAN_BERRY].holdEffect == HOLD_EFFECT_RESTORE_HP);
|
||||
ASSUME(gItemsInfo[ITEM_BERRY_JUICE].holdEffect == HOLD_EFFECT_RESTORE_HP);
|
||||
ASSUME(gItemsInfo[ITEM_SITRUS_BERRY].holdEffect == HOLD_EFFECT_RESTORE_PCT_HP);
|
||||
PLAYER(SPECIES_WOBBUFFET);
|
||||
PLAYER(SPECIES_WOBBUFFET);
|
||||
OPPONENT(SPECIES_WYNAUT) { MaxHP(100); HP(51); Item(item); }
|
||||
OPPONENT(SPECIES_WOBBUFFET);
|
||||
} WHEN {
|
||||
TURN {
|
||||
MOVE(opponentLeft, MOVE_TAKE_DOWN, target: playerLeft);
|
||||
MOVE(opponentRight, MOVE_CELEBRATE);
|
||||
MOVE(playerLeft, MOVE_CELEBRATE);
|
||||
MOVE(playerRight, MOVE_CELEBRATE);
|
||||
}
|
||||
} SCENE {
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_TAKE_DOWN, opponentLeft);
|
||||
HP_BAR(playerLeft);
|
||||
HP_BAR(opponentLeft);
|
||||
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, opponentLeft);
|
||||
HP_BAR(opponentLeft);
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, opponentRight);
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, playerLeft);
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, playerRight);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -94,11 +94,14 @@ SINGLE_BATTLE_TEST("Burn Heal heals a battler from being burned")
|
|||
}
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Ice Heal heals a battler from being frozen")
|
||||
SINGLE_BATTLE_TEST("Ice Heal heals a battler from being frozen or frostbite")
|
||||
{
|
||||
u16 status;
|
||||
PARAMETRIZE { status = STATUS1_FREEZE; }
|
||||
PARAMETRIZE { status = STATUS1_FROSTBITE; }
|
||||
GIVEN {
|
||||
ASSUME(gItemsInfo[ITEM_ICE_HEAL].battleUsage == EFFECT_ITEM_CURE_STATUS);
|
||||
PLAYER(SPECIES_WOBBUFFET) { Status1(STATUS1_FREEZE); }
|
||||
PLAYER(SPECIES_WOBBUFFET) { Status1(status); }
|
||||
OPPONENT(SPECIES_WOBBUFFET);
|
||||
} WHEN {
|
||||
TURN { USE_ITEM(player, ITEM_ICE_HEAL, partyIndex: 0); }
|
||||
|
@ -112,12 +115,13 @@ SINGLE_BATTLE_TEST("Ice Heal heals a battler from being frozen")
|
|||
SINGLE_BATTLE_TEST("Full Heal heals a battler from any primary status")
|
||||
{
|
||||
u16 status;
|
||||
PARAMETRIZE { status = STATUS1_SLEEP; }
|
||||
PARAMETRIZE { status = STATUS1_POISON; }
|
||||
PARAMETRIZE { status = STATUS1_BURN; }
|
||||
PARAMETRIZE { status = STATUS1_FREEZE; }
|
||||
PARAMETRIZE { status = STATUS1_PARALYSIS; }
|
||||
PARAMETRIZE { status = STATUS1_POISON; }
|
||||
PARAMETRIZE { status = STATUS1_TOXIC_POISON; }
|
||||
PARAMETRIZE { status = STATUS1_SLEEP; }
|
||||
PARAMETRIZE { status = STATUS1_FROSTBITE; }
|
||||
GIVEN {
|
||||
ASSUME(gItemsInfo[ITEM_FULL_HEAL].battleUsage == EFFECT_ITEM_CURE_STATUS);
|
||||
PLAYER(SPECIES_WOBBUFFET) { Status1(status); }
|
||||
|
@ -134,12 +138,13 @@ SINGLE_BATTLE_TEST("Full Heal heals a battler from any primary status")
|
|||
SINGLE_BATTLE_TEST("Heal Powder heals a battler from any primary status")
|
||||
{
|
||||
u16 status;
|
||||
PARAMETRIZE { status = STATUS1_SLEEP; }
|
||||
PARAMETRIZE { status = STATUS1_POISON; }
|
||||
PARAMETRIZE { status = STATUS1_BURN; }
|
||||
PARAMETRIZE { status = STATUS1_FREEZE; }
|
||||
PARAMETRIZE { status = STATUS1_PARALYSIS; }
|
||||
PARAMETRIZE { status = STATUS1_POISON; }
|
||||
PARAMETRIZE { status = STATUS1_TOXIC_POISON; }
|
||||
PARAMETRIZE { status = STATUS1_SLEEP; }
|
||||
PARAMETRIZE { status = STATUS1_FROSTBITE; }
|
||||
GIVEN {
|
||||
ASSUME(gItemsInfo[ITEM_HEAL_POWDER].battleUsage == EFFECT_ITEM_CURE_STATUS);
|
||||
PLAYER(SPECIES_WOBBUFFET) { Status1(status); }
|
||||
|
@ -156,12 +161,13 @@ SINGLE_BATTLE_TEST("Heal Powder heals a battler from any primary status")
|
|||
SINGLE_BATTLE_TEST("Pewter Crunchies heals a battler from any primary status")
|
||||
{
|
||||
u16 status;
|
||||
PARAMETRIZE { status = STATUS1_SLEEP; }
|
||||
PARAMETRIZE { status = STATUS1_POISON; }
|
||||
PARAMETRIZE { status = STATUS1_BURN; }
|
||||
PARAMETRIZE { status = STATUS1_FREEZE; }
|
||||
PARAMETRIZE { status = STATUS1_PARALYSIS; }
|
||||
PARAMETRIZE { status = STATUS1_POISON; }
|
||||
PARAMETRIZE { status = STATUS1_TOXIC_POISON; }
|
||||
PARAMETRIZE { status = STATUS1_SLEEP; }
|
||||
PARAMETRIZE { status = STATUS1_FROSTBITE; }
|
||||
GIVEN {
|
||||
ASSUME(gItemsInfo[ITEM_PEWTER_CRUNCHIES].battleUsage == EFFECT_ITEM_CURE_STATUS);
|
||||
PLAYER(SPECIES_WOBBUFFET) { Status1(status); }
|
||||
|
@ -178,12 +184,13 @@ SINGLE_BATTLE_TEST("Pewter Crunchies heals a battler from any primary status")
|
|||
SINGLE_BATTLE_TEST("Lava Cookies heals a battler from any primary status")
|
||||
{
|
||||
u16 status;
|
||||
PARAMETRIZE { status = STATUS1_SLEEP; }
|
||||
PARAMETRIZE { status = STATUS1_POISON; }
|
||||
PARAMETRIZE { status = STATUS1_BURN; }
|
||||
PARAMETRIZE { status = STATUS1_FREEZE; }
|
||||
PARAMETRIZE { status = STATUS1_PARALYSIS; }
|
||||
PARAMETRIZE { status = STATUS1_POISON; }
|
||||
PARAMETRIZE { status = STATUS1_TOXIC_POISON; }
|
||||
PARAMETRIZE { status = STATUS1_SLEEP; }
|
||||
PARAMETRIZE { status = STATUS1_FROSTBITE; }
|
||||
GIVEN {
|
||||
ASSUME(gItemsInfo[ITEM_LAVA_COOKIE].battleUsage == EFFECT_ITEM_CURE_STATUS);
|
||||
PLAYER(SPECIES_WOBBUFFET) { Status1(status); }
|
||||
|
@ -200,12 +207,13 @@ SINGLE_BATTLE_TEST("Lava Cookies heals a battler from any primary status")
|
|||
SINGLE_BATTLE_TEST("Rage Candy Bar heals a battler from any primary status")
|
||||
{
|
||||
u16 status;
|
||||
PARAMETRIZE { status = STATUS1_SLEEP; }
|
||||
PARAMETRIZE { status = STATUS1_POISON; }
|
||||
PARAMETRIZE { status = STATUS1_BURN; }
|
||||
PARAMETRIZE { status = STATUS1_FREEZE; }
|
||||
PARAMETRIZE { status = STATUS1_PARALYSIS; }
|
||||
PARAMETRIZE { status = STATUS1_POISON; }
|
||||
PARAMETRIZE { status = STATUS1_TOXIC_POISON; }
|
||||
PARAMETRIZE { status = STATUS1_SLEEP; }
|
||||
PARAMETRIZE { status = STATUS1_FROSTBITE; }
|
||||
GIVEN {
|
||||
ASSUME(gItemsInfo[ITEM_RAGE_CANDY_BAR].battleUsage == EFFECT_ITEM_CURE_STATUS);
|
||||
PLAYER(SPECIES_WOBBUFFET) { Status1(status); }
|
||||
|
@ -222,12 +230,13 @@ SINGLE_BATTLE_TEST("Rage Candy Bar heals a battler from any primary status")
|
|||
SINGLE_BATTLE_TEST("Old Gateu heals a battler from any primary status")
|
||||
{
|
||||
u16 status;
|
||||
PARAMETRIZE { status = STATUS1_SLEEP; }
|
||||
PARAMETRIZE { status = STATUS1_POISON; }
|
||||
PARAMETRIZE { status = STATUS1_BURN; }
|
||||
PARAMETRIZE { status = STATUS1_FREEZE; }
|
||||
PARAMETRIZE { status = STATUS1_PARALYSIS; }
|
||||
PARAMETRIZE { status = STATUS1_POISON; }
|
||||
PARAMETRIZE { status = STATUS1_TOXIC_POISON; }
|
||||
PARAMETRIZE { status = STATUS1_SLEEP; }
|
||||
PARAMETRIZE { status = STATUS1_FROSTBITE; }
|
||||
GIVEN {
|
||||
ASSUME(gItemsInfo[ITEM_OLD_GATEAU].battleUsage == EFFECT_ITEM_CURE_STATUS);
|
||||
PLAYER(SPECIES_WOBBUFFET) { Status1(status); }
|
||||
|
@ -244,12 +253,13 @@ SINGLE_BATTLE_TEST("Old Gateu heals a battler from any primary status")
|
|||
SINGLE_BATTLE_TEST("Casteliacone heals a battler from any primary status")
|
||||
{
|
||||
u16 status;
|
||||
PARAMETRIZE { status = STATUS1_SLEEP; }
|
||||
PARAMETRIZE { status = STATUS1_POISON; }
|
||||
PARAMETRIZE { status = STATUS1_BURN; }
|
||||
PARAMETRIZE { status = STATUS1_FREEZE; }
|
||||
PARAMETRIZE { status = STATUS1_PARALYSIS; }
|
||||
PARAMETRIZE { status = STATUS1_POISON; }
|
||||
PARAMETRIZE { status = STATUS1_TOXIC_POISON; }
|
||||
PARAMETRIZE { status = STATUS1_SLEEP; }
|
||||
PARAMETRIZE { status = STATUS1_FROSTBITE; }
|
||||
GIVEN {
|
||||
ASSUME(gItemsInfo[ITEM_CASTELIACONE].battleUsage == EFFECT_ITEM_CURE_STATUS);
|
||||
PLAYER(SPECIES_WOBBUFFET) { Status1(status); }
|
||||
|
@ -266,12 +276,13 @@ SINGLE_BATTLE_TEST("Casteliacone heals a battler from any primary status")
|
|||
SINGLE_BATTLE_TEST("Lumiose Galette heals a battler from any primary status")
|
||||
{
|
||||
u16 status;
|
||||
PARAMETRIZE { status = STATUS1_SLEEP; }
|
||||
PARAMETRIZE { status = STATUS1_POISON; }
|
||||
PARAMETRIZE { status = STATUS1_BURN; }
|
||||
PARAMETRIZE { status = STATUS1_FREEZE; }
|
||||
PARAMETRIZE { status = STATUS1_PARALYSIS; }
|
||||
PARAMETRIZE { status = STATUS1_POISON; }
|
||||
PARAMETRIZE { status = STATUS1_TOXIC_POISON; }
|
||||
PARAMETRIZE { status = STATUS1_SLEEP; }
|
||||
PARAMETRIZE { status = STATUS1_FROSTBITE; }
|
||||
GIVEN {
|
||||
ASSUME(gItemsInfo[ITEM_LUMIOSE_GALETTE].battleUsage == EFFECT_ITEM_CURE_STATUS);
|
||||
PLAYER(SPECIES_WOBBUFFET) { Status1(status); }
|
||||
|
@ -288,12 +299,13 @@ SINGLE_BATTLE_TEST("Lumiose Galette heals a battler from any primary status")
|
|||
SINGLE_BATTLE_TEST("Shalour Sable heals a battler from any primary status")
|
||||
{
|
||||
u16 status;
|
||||
PARAMETRIZE { status = STATUS1_SLEEP; }
|
||||
PARAMETRIZE { status = STATUS1_POISON; }
|
||||
PARAMETRIZE { status = STATUS1_BURN; }
|
||||
PARAMETRIZE { status = STATUS1_FREEZE; }
|
||||
PARAMETRIZE { status = STATUS1_PARALYSIS; }
|
||||
PARAMETRIZE { status = STATUS1_POISON; }
|
||||
PARAMETRIZE { status = STATUS1_TOXIC_POISON; }
|
||||
PARAMETRIZE { status = STATUS1_SLEEP; }
|
||||
PARAMETRIZE { status = STATUS1_FROSTBITE; }
|
||||
GIVEN {
|
||||
ASSUME(gItemsInfo[ITEM_SHALOUR_SABLE].battleUsage == EFFECT_ITEM_CURE_STATUS);
|
||||
PLAYER(SPECIES_WOBBUFFET) { Status1(status); }
|
||||
|
@ -310,12 +322,13 @@ SINGLE_BATTLE_TEST("Shalour Sable heals a battler from any primary status")
|
|||
SINGLE_BATTLE_TEST("Big Malasada heals a battler from any primary status")
|
||||
{
|
||||
u16 status;
|
||||
PARAMETRIZE { status = STATUS1_SLEEP; }
|
||||
PARAMETRIZE { status = STATUS1_POISON; }
|
||||
PARAMETRIZE { status = STATUS1_BURN; }
|
||||
PARAMETRIZE { status = STATUS1_FREEZE; }
|
||||
PARAMETRIZE { status = STATUS1_PARALYSIS; }
|
||||
PARAMETRIZE { status = STATUS1_POISON; }
|
||||
PARAMETRIZE { status = STATUS1_TOXIC_POISON; }
|
||||
PARAMETRIZE { status = STATUS1_SLEEP; }
|
||||
PARAMETRIZE { status = STATUS1_FROSTBITE; }
|
||||
GIVEN {
|
||||
ASSUME(gItemsInfo[ITEM_BIG_MALASADA].battleUsage == EFFECT_ITEM_CURE_STATUS);
|
||||
PLAYER(SPECIES_WOBBUFFET) { Status1(status); }
|
||||
|
@ -329,6 +342,29 @@ SINGLE_BATTLE_TEST("Big Malasada heals a battler from any primary status")
|
|||
}
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Jubilife Muffin heals a battler from any primary status")
|
||||
{
|
||||
u16 status;
|
||||
PARAMETRIZE { status = STATUS1_SLEEP; }
|
||||
PARAMETRIZE { status = STATUS1_POISON; }
|
||||
PARAMETRIZE { status = STATUS1_BURN; }
|
||||
PARAMETRIZE { status = STATUS1_FREEZE; }
|
||||
PARAMETRIZE { status = STATUS1_PARALYSIS; }
|
||||
PARAMETRIZE { status = STATUS1_TOXIC_POISON; }
|
||||
PARAMETRIZE { status = STATUS1_FROSTBITE; }
|
||||
GIVEN {
|
||||
ASSUME(gItemsInfo[ITEM_JUBILIFE_MUFFIN].battleUsage == EFFECT_ITEM_CURE_STATUS);
|
||||
PLAYER(SPECIES_WOBBUFFET) { Status1(status); }
|
||||
OPPONENT(SPECIES_WYNAUT);
|
||||
} WHEN {
|
||||
TURN { USE_ITEM(player, ITEM_JUBILIFE_MUFFIN, partyIndex: 0); }
|
||||
} SCENE {
|
||||
MESSAGE("Wobbuffet had its status healed!");
|
||||
} THEN {
|
||||
EXPECT_EQ(player->status1, STATUS1_NONE);
|
||||
}
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Full Heal, Heal Powder and Local Specialties heal a battler from being confused")
|
||||
{
|
||||
u16 item;
|
||||
|
@ -342,6 +378,7 @@ SINGLE_BATTLE_TEST("Full Heal, Heal Powder and Local Specialties heal a battler
|
|||
PARAMETRIZE { item = ITEM_LUMIOSE_GALETTE; }
|
||||
PARAMETRIZE { item = ITEM_SHALOUR_SABLE; }
|
||||
PARAMETRIZE { item = ITEM_BIG_MALASADA; }
|
||||
PARAMETRIZE { item = ITEM_JUBILIFE_MUFFIN; }
|
||||
GIVEN {
|
||||
ASSUME(gItemsInfo[item].battleUsage == EFFECT_ITEM_CURE_STATUS);
|
||||
PLAYER(SPECIES_WOBBUFFET);
|
||||
|
|
|
@ -35,7 +35,7 @@ SINGLE_BATTLE_TEST("Wake-Up Slap does not cure paralyzed pokemons behind substit
|
|||
}
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Wake-Up Slap get incread power vs. sleeping targets")
|
||||
SINGLE_BATTLE_TEST("Wake-Up Slap gets increased power against sleeping targets")
|
||||
{
|
||||
u32 status1;
|
||||
PARAMETRIZE { status1 = STATUS1_SLEEP; }
|
||||
|
|
|
@ -65,8 +65,8 @@ struct Runner
|
|||
char failed_TestFilenameLine[MAX_SUMMARY_TESTS_TO_LIST][MAX_TEST_LIST_BUFFER_LENGTH];
|
||||
char knownFailingPassed_TestNames[MAX_SUMMARY_TESTS_TO_LIST][MAX_TEST_LIST_BUFFER_LENGTH];
|
||||
char knownFailingPassed_FilenameLine[MAX_SUMMARY_TESTS_TO_LIST][MAX_TEST_LIST_BUFFER_LENGTH];
|
||||
char assumeFailed_TestNames[MAX_SUMMARY_TESTS_TO_LIST * MAX_PROCESSES][MAX_TEST_LIST_BUFFER_LENGTH];
|
||||
char assumeFailed_FilenameLine[MAX_SUMMARY_TESTS_TO_LIST * MAX_PROCESSES][MAX_TEST_LIST_BUFFER_LENGTH];
|
||||
char assumeFailed_TestNames[MAX_SUMMARY_TESTS_TO_LIST][MAX_TEST_LIST_BUFFER_LENGTH];
|
||||
char assumeFailed_FilenameLine[MAX_SUMMARY_TESTS_TO_LIST][MAX_TEST_LIST_BUFFER_LENGTH];
|
||||
};
|
||||
|
||||
static unsigned nrunners = 0;
|
||||
|
|
Loading…
Reference in a new issue