Fix tests using old item functions
This commit is contained in:
parent
86ca6e2719
commit
dc6e40a839
@ -4,7 +4,7 @@
|
||||
SINGLE_BATTLE_TEST("Unburden doubles speed once user uses item")
|
||||
{
|
||||
GIVEN {
|
||||
ASSUME(ItemId_GetHoldEffect(ITEM_GRASSY_SEED) == HOLD_EFFECT_SEEDS);
|
||||
ASSUME(GetItemHoldEffect(ITEM_GRASSY_SEED) == HOLD_EFFECT_SEEDS);
|
||||
ASSUME(GetMoveEffect(MOVE_U_TURN) == EFFECT_HIT_ESCAPE);
|
||||
PLAYER(SPECIES_DRIFBLIM) { Ability(ABILITY_UNBURDEN); Item(ITEM_GRASSY_SEED); Speed(5); }
|
||||
OPPONENT(SPECIES_WOBBUFFET) { Speed(7); }
|
||||
|
||||
@ -864,7 +864,7 @@ AI_SINGLE_BATTLE_TEST("AI_FLAG_SMART_SWITCHING: AI considers Focus Sash when det
|
||||
AI_SINGLE_BATTLE_TEST("AI sees popped Air Balloon")
|
||||
{
|
||||
GIVEN {
|
||||
ASSUME(ItemId_GetHoldEffect(ITEM_AIR_BALLOON) == HOLD_EFFECT_AIR_BALLOON);
|
||||
ASSUME(GetItemHoldEffect(ITEM_AIR_BALLOON) == HOLD_EFFECT_AIR_BALLOON);
|
||||
ASSUME(GetMoveType(MOVE_EARTHQUAKE) == TYPE_GROUND);
|
||||
AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY | AI_FLAG_OMNISCIENT);
|
||||
PLAYER(SPECIES_TORCHIC) { Item(ITEM_AIR_BALLOON); Moves(MOVE_SCRATCH); }
|
||||
@ -878,7 +878,7 @@ AI_SINGLE_BATTLE_TEST("AI sees popped Air Balloon")
|
||||
AI_SINGLE_BATTLE_TEST("AI sees popped Air Balloon after Air Balloon mon switches out and back in")
|
||||
{
|
||||
GIVEN {
|
||||
ASSUME(ItemId_GetHoldEffect(ITEM_AIR_BALLOON) == HOLD_EFFECT_AIR_BALLOON);
|
||||
ASSUME(GetItemHoldEffect(ITEM_AIR_BALLOON) == HOLD_EFFECT_AIR_BALLOON);
|
||||
ASSUME(GetMoveType(MOVE_EARTHQUAKE) == TYPE_GROUND);
|
||||
AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY | AI_FLAG_OMNISCIENT);
|
||||
PLAYER(SPECIES_TORCHIC) { Item(ITEM_AIR_BALLOON); Moves(MOVE_SCRATCH); }
|
||||
|
||||
@ -79,7 +79,7 @@ SINGLE_BATTLE_TEST("Bestow fails if the user's held item is a Mega Stone")
|
||||
SINGLE_BATTLE_TEST("Bestow fails if the user's held item is a Z-Crystal")
|
||||
{
|
||||
GIVEN {
|
||||
ASSUME(ItemId_GetHoldEffect(ITEM_FIGHTINIUM_Z) == HOLD_EFFECT_Z_CRYSTAL);
|
||||
ASSUME(GetItemHoldEffect(ITEM_FIGHTINIUM_Z) == HOLD_EFFECT_Z_CRYSTAL);
|
||||
PLAYER(SPECIES_WOBBUFFET) { Item(ITEM_FIGHTINIUM_Z); }
|
||||
OPPONENT(SPECIES_WOBBUFFET);
|
||||
} WHEN {
|
||||
|
||||
@ -113,8 +113,8 @@ SINGLE_BATTLE_TEST("Hidden Power's type is determined by IVs")
|
||||
ASSUME(gTypeEffectivenessTable[type][foeType] == UQ_4_12(2.0)); // Foe's Type resists
|
||||
ASSUME(gSpeciesInfo[foeSpecies].types[0] == gSpeciesInfo[foeSpecies].types[1]); // Foe's pure type
|
||||
ASSUME(gSpeciesInfo[foeSpecies].types[0] == foeType); // Foe is the super-effective type
|
||||
ASSUME(ItemId_GetHoldEffect(foeItem) == HOLD_EFFECT_RESIST_BERRY); // Item is resist berry
|
||||
ASSUME(ItemId_GetHoldEffectParam(foeItem) == type); // Resist berry of type
|
||||
ASSUME(GetItemHoldEffect(foeItem) == HOLD_EFFECT_RESIST_BERRY); // Item is resist berry
|
||||
ASSUME(GetItemHoldEffectParam(foeItem) == type); // Resist berry of type
|
||||
PLAYER(SPECIES_DUNSPARCE) { HPIV(hp); AttackIV(atk); DefenseIV(def); SpAttackIV(spAtk); SpDefenseIV(spDef); SpeedIV(speed); }
|
||||
} else {
|
||||
PLAYER(SPECIES_DUNSPARCE);
|
||||
|
||||
@ -2116,17 +2116,17 @@ void MoveGetIdAndSlot(s32 battlerId, struct MoveContext *ctx, u32 *moveId, u32 *
|
||||
if (ctx->explicitGimmick && ctx->gimmick != GIMMICK_NONE)
|
||||
{
|
||||
u32 item = GetMonData(mon, MON_DATA_HELD_ITEM);
|
||||
u32 holdEffect = ItemId_GetHoldEffect(item);
|
||||
u32 holdEffect = GetItemHoldEffect(item);
|
||||
u32 species = GetMonData(mon, MON_DATA_SPECIES);
|
||||
u32 side = battlerId & BIT_SIDE;
|
||||
|
||||
// Check invalid item usage.
|
||||
INVALID_IF(ctx->gimmick == GIMMICK_MEGA && holdEffect != HOLD_EFFECT_MEGA_STONE && species != SPECIES_RAYQUAZA, "Cannot Mega Evolve without a Mega Stone");
|
||||
INVALID_IF(ctx->gimmick == GIMMICK_Z_MOVE && holdEffect != HOLD_EFFECT_Z_CRYSTAL, "Cannot use a Z-Move without a Z-Crystal");
|
||||
INVALID_IF(ctx->gimmick == GIMMICK_Z_MOVE && ItemId_GetSecondaryId(item) != GetMoveType(*moveId)
|
||||
INVALID_IF(ctx->gimmick == GIMMICK_Z_MOVE && GetItemSecondaryId(item) != GetMoveType(*moveId)
|
||||
&& GetSignatureZMove(*moveId, species, item) == MOVE_NONE
|
||||
&& *moveId != MOVE_PHOTON_GEYSER, // exception because test won't recognize Ultra Necrozma pre-Burst
|
||||
"Cannot turn %S into a Z-Move with %S", GetMoveName(ctx->move), ItemId_GetName(item));
|
||||
"Cannot turn %S into a Z-Move with %S", GetMoveName(ctx->move), GetItemName(item));
|
||||
INVALID_IF(ctx->gimmick != GIMMICK_MEGA && holdEffect == HOLD_EFFECT_MEGA_STONE, "Cannot use another gimmick while holding a Mega Stone");
|
||||
INVALID_IF(ctx->gimmick != GIMMICK_Z_MOVE && ctx->gimmick != GIMMICK_ULTRA_BURST && holdEffect == HOLD_EFFECT_Z_CRYSTAL, "Cannot use another gimmick while holding a Z-Crystal");
|
||||
|
||||
@ -2464,19 +2464,19 @@ void UseItem(u32 sourceLine, struct BattlePokemon *battler, struct ItemContext c
|
||||
{
|
||||
s32 i;
|
||||
s32 battlerId = battler - gBattleMons;
|
||||
bool32 requirePartyIndex = ItemId_GetType(ctx.itemId) == ITEM_USE_PARTY_MENU || ItemId_GetType(ctx.itemId) == ITEM_USE_PARTY_MENU_MOVES;
|
||||
bool32 requirePartyIndex = GetItemType(ctx.itemId) == ITEM_USE_PARTY_MENU || GetItemType(ctx.itemId) == ITEM_USE_PARTY_MENU_MOVES;
|
||||
// Check general bad use.
|
||||
INVALID_IF(DATA.turnState == TURN_CLOSED, "USE_ITEM outside TURN");
|
||||
INVALID_IF(DATA.actionBattlers & (1 << battlerId), "Multiple battler actions");
|
||||
INVALID_IF(ctx.itemId >= ITEMS_COUNT, "Illegal item: %d", ctx.itemId);
|
||||
// Check party menu items.
|
||||
INVALID_IF(requirePartyIndex && !ctx.explicitPartyIndex, "%S requires explicit party index", ItemId_GetName(ctx.itemId));
|
||||
INVALID_IF(requirePartyIndex && !ctx.explicitPartyIndex, "%S requires explicit party index", GetItemName(ctx.itemId));
|
||||
INVALID_IF(requirePartyIndex && ctx.partyIndex >= ((battlerId & BIT_SIDE) == B_SIDE_PLAYER ? DATA.playerPartySize : DATA.opponentPartySize), \
|
||||
"USE_ITEM to invalid party index");
|
||||
// Check move slot items.
|
||||
if (ItemId_GetType(ctx.itemId) == ITEM_USE_PARTY_MENU_MOVES)
|
||||
if (GetItemType(ctx.itemId) == ITEM_USE_PARTY_MENU_MOVES)
|
||||
{
|
||||
INVALID_IF(!ctx.explicitMove, "%S requires an explicit move", ItemId_GetName(ctx.itemId));
|
||||
INVALID_IF(!ctx.explicitMove, "%S requires an explicit move", GetItemName(ctx.itemId));
|
||||
for (i = 0; i < MAX_MON_MOVES; i++)
|
||||
{
|
||||
if (GetMonData(CurrentMon(battlerId), MON_DATA_MOVE1 + i, NULL) == ctx.move)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user