diff --git a/src/battle_gfx_sfx_util.c b/src/battle_gfx_sfx_util.c index d05a9bf86a..ca9bfb3d06 100644 --- a/src/battle_gfx_sfx_util.c +++ b/src/battle_gfx_sfx_util.c @@ -866,15 +866,8 @@ bool8 BattleInitAllSprites(u8 *state1, u8 *battler) } break; case 5: - if (IsOnPlayerSide(*battler)) - { - if (!(gBattleTypeFlags & BATTLE_TYPE_SAFARI)) - UpdateHealthboxAttribute(gHealthboxSpriteIds[*battler], GetBattlerMon(*battler), HEALTHBOX_ALL); - } - else - { + if (!IsOnPlayerSide(*battler) || !(gBattleTypeFlags & BATTLE_TYPE_SAFARI)) UpdateHealthboxAttribute(gHealthboxSpriteIds[*battler], GetBattlerMon(*battler), HEALTHBOX_ALL); - } SetHealthboxSpriteInvisible(gHealthboxSpriteIds[*battler]); (*battler)++; if (*battler == gBattlersCount) diff --git a/src/battle_interface.c b/src/battle_interface.c index 80c85bb141..92592d9fcb 100644 --- a/src/battle_interface.c +++ b/src/battle_interface.c @@ -1175,12 +1175,13 @@ void SwapHpBarsWithHpText(void) for (i = 0; i < gBattlersCount; i++) { + struct Pokemon *mon = GetBattlerMon(i); if (gSprites[gHealthboxSpriteIds[i]].callback == SpriteCallbackDummy && IsOnPlayerSide(i) && (GetBattlerCoordsIndex(i) != BATTLE_COORDS_SINGLES || !IsOnPlayerSide(i))) { - s32 currHp = GetMonData(GetBattlerMon(i), MON_DATA_HP); - s32 maxHp = GetMonData(GetBattlerMon(i), MON_DATA_MAX_HP); + s32 currHp = GetMonData(mon, MON_DATA_HP); + s32 maxHp = GetMonData(mon, MON_DATA_MAX_HP); bool8 noBars; gBattleSpritesDataPtr->battlerData[i].hpNumbersNoBars ^= 1; @@ -1202,7 +1203,7 @@ void SwapHpBarsWithHpText(void) else // text to bars { UpdateStatusIconInHealthbox(gHealthboxSpriteIds[i]); - UpdateHealthboxAttribute(gHealthboxSpriteIds[i], GetBattlerMon(i), HEALTHBOX_HEALTH_BAR); + UpdateHealthboxAttribute(gHealthboxSpriteIds[i], mon, HEALTHBOX_HEALTH_BAR); CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_FRAME_END_BAR), (void *)(OBJ_VRAM0 + 0x680 + gSprites[gHealthboxSpriteIds[i]].oam.tileNum * TILE_SIZE_4BPP), 32); } } @@ -1213,7 +1214,7 @@ void SwapHpBarsWithHpText(void) if (gBattleTypeFlags & BATTLE_TYPE_SAFARI) { // Most likely a debug function. - PrintSafariMonInfo(gHealthboxSpriteIds[i], GetBattlerMon(i)); + PrintSafariMonInfo(gHealthboxSpriteIds[i], mon); } else { @@ -1226,9 +1227,9 @@ void SwapHpBarsWithHpText(void) else // text to bars { UpdateStatusIconInHealthbox(gHealthboxSpriteIds[i]); - UpdateHealthboxAttribute(gHealthboxSpriteIds[i], GetBattlerMon(i), HEALTHBOX_HEALTH_BAR); + UpdateHealthboxAttribute(gHealthboxSpriteIds[i], mon, HEALTHBOX_HEALTH_BAR); if (gBattleTypeFlags & BATTLE_TYPE_SAFARI) - UpdateHealthboxAttribute(gHealthboxSpriteIds[i], GetBattlerMon(i), HEALTHBOX_NICK); + UpdateHealthboxAttribute(gHealthboxSpriteIds[i], mon, HEALTHBOX_NICK); } } gSprites[gHealthboxSpriteIds[i]].hMain_Data7 ^= 1; @@ -1805,9 +1806,9 @@ static void UpdateStatusIconInHealthbox(u8 healthboxSpriteId) battler = gSprites[healthboxSpriteId].hMain_Battler; healthBarSpriteId = gSprites[healthboxSpriteId].hMain_HealthBarSpriteId; + status = GetMonData(GetBattlerMon(battler), MON_DATA_STATUS); if (IsOnPlayerSide(battler)) { - status = GetMonData(GetBattlerMon(battler), MON_DATA_STATUS); switch (GetBattlerCoordsIndex(battler)) { case BATTLE_COORDS_SINGLES: @@ -1820,7 +1821,6 @@ static void UpdateStatusIconInHealthbox(u8 healthboxSpriteId) } else { - status = GetMonData(GetBattlerMon(battler), MON_DATA_STATUS); tileNumAdder = 0x11; } diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 1563b17bd2..98050a8a94 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -10158,10 +10158,7 @@ static void Cmd_various(void) case VARIOUS_UPDATE_NICK: { VARIOUS_ARGS(); - if (IsOnPlayerSide(battler)) - mon = GetBattlerMon(battler); - else - mon = GetBattlerMon(battler); + mon = GetBattlerMon(battler); UpdateHealthboxAttribute(gHealthboxSpriteIds[battler], mon, HEALTHBOX_NICK); break; } @@ -15848,7 +15845,8 @@ static void Cmd_handleballthrow(void) MarkBattlerForControllerExec(gBattlerAttacker); TryBattleFormChange(gBattlerTarget, FORM_CHANGE_END_BATTLE); gBattlescriptCurrInstr = BattleScript_SuccessBallThrow; - SetMonData(GetBattlerMon(gBattlerTarget), MON_DATA_POKEBALL, &ballId); + struct Pokemon *caughtMon = GetBattlerMon(gBattlerTarget); + SetMonData(caughtMon, MON_DATA_POKEBALL, &ballId); if (CalculatePlayerPartyCount() == PARTY_SIZE) gBattleCommunication[MULTISTRING_CHOOSER] = 0; @@ -15857,15 +15855,15 @@ static void Cmd_handleballthrow(void) if (ballId == BALL_HEAL) { - MonRestorePP(GetBattlerMon(gBattlerTarget)); - HealStatusConditions(GetBattlerMon(gBattlerTarget), STATUS1_ANY, gBattlerTarget); + MonRestorePP(caughtMon); + HealStatusConditions(caughtMon, STATUS1_ANY, gBattlerTarget); gBattleMons[gBattlerTarget].hp = gBattleMons[gBattlerTarget].maxHP; - SetMonData(GetBattlerMon(gBattlerTarget), MON_DATA_HP, &gBattleMons[gBattlerTarget].hp); + SetMonData(caughtMon, MON_DATA_HP, &gBattleMons[gBattlerTarget].hp); } else if (ballId == BALL_FRIEND) { u32 friendship = (B_FRIEND_BALL_MODIFIER >= GEN_8 ? 150 : 200); - SetMonData(GetBattlerMon(gBattlerTarget), MON_DATA_FRIENDSHIP, &friendship); + SetMonData(caughtMon, MON_DATA_FRIENDSHIP, &friendship); } } else // mon may be caught, calculate shakes @@ -15907,7 +15905,8 @@ static void Cmd_handleballthrow(void) TryBattleFormChange(gBattlerTarget, FORM_CHANGE_END_BATTLE); gBattlescriptCurrInstr = BattleScript_SuccessBallThrow; - SetMonData(GetBattlerMon(gBattlerTarget), MON_DATA_POKEBALL, &ballId); + struct Pokemon *caughtMon = GetBattlerMon(gBattlerTarget); + SetMonData(caughtMon, MON_DATA_POKEBALL, &ballId); if (CalculatePlayerPartyCount() == PARTY_SIZE) gBattleCommunication[MULTISTRING_CHOOSER] = 0; @@ -15916,15 +15915,15 @@ static void Cmd_handleballthrow(void) if (ballId == BALL_HEAL) { - MonRestorePP(GetBattlerMon(gBattlerTarget)); - HealStatusConditions(GetBattlerMon(gBattlerTarget), STATUS1_ANY, gBattlerTarget); + MonRestorePP(caughtMon); + HealStatusConditions(caughtMon, STATUS1_ANY, gBattlerTarget); gBattleMons[gBattlerTarget].hp = gBattleMons[gBattlerTarget].maxHP; - SetMonData(GetBattlerMon(gBattlerTarget), MON_DATA_HP, &gBattleMons[gBattlerTarget].hp); + SetMonData(caughtMon, MON_DATA_HP, &gBattleMons[gBattlerTarget].hp); } else if (ballId == BALL_FRIEND) { u32 friendship = (B_FRIEND_BALL_MODIFIER >= GEN_8 ? 150 : 200); - SetMonData(GetBattlerMon(gBattlerTarget), MON_DATA_FRIENDSHIP, &friendship); + SetMonData(caughtMon, MON_DATA_FRIENDSHIP, &friendship); } } else // not caught @@ -16042,26 +16041,28 @@ static void Cmd_givecaughtmon(void) } break; case GIVECAUGHTMON_GIVE_AND_SHOW_MSG: + { + struct Pokemon *caughtMon = GetBattlerMon(GetCatchingBattler()); if (B_RESTORE_HELD_BATTLE_ITEMS >= GEN_9) { u16 lostItem = gBattleStruct->itemLost[B_SIDE_OPPONENT][gBattlerPartyIndexes[GetCatchingBattler()]].originalItem; if (lostItem != ITEM_NONE && GetItemPocket(lostItem) != POCKET_BERRIES) - SetMonData(GetBattlerMon(GetCatchingBattler()), MON_DATA_HELD_ITEM, &lostItem); // Restore non-berry items + SetMonData(caughtMon, MON_DATA_HELD_ITEM, &lostItem); // Restore non-berry items } - if (GiveMonToPlayer(GetBattlerMon(GetCatchingBattler())) != MON_GIVEN_TO_PARTY + if (GiveMonToPlayer(caughtMon) != MON_GIVEN_TO_PARTY && gBattleCommunication[MULTISTRING_CHOOSER] != B_MSG_SWAPPED_INTO_PARTY) { if (!ShouldShowBoxWasFullMessage()) { gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SENT_SOMEONES_PC; StringCopy(gStringVar1, GetBoxNamePtr(VarGet(VAR_PC_BOX_TO_SEND_MON))); - GetMonData(GetBattlerMon(GetCatchingBattler()), MON_DATA_NICKNAME, gStringVar2); + GetMonData(caughtMon, MON_DATA_NICKNAME, gStringVar2); } else { StringCopy(gStringVar1, GetBoxNamePtr(VarGet(VAR_PC_BOX_TO_SEND_MON))); // box the mon was sent to - GetMonData(GetBattlerMon(GetCatchingBattler()), MON_DATA_NICKNAME, gStringVar2); + GetMonData(caughtMon, MON_DATA_NICKNAME, gStringVar2); StringCopy(gStringVar3, GetBoxNamePtr(GetPCBoxToSendMon())); //box the mon was going to be sent to gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SOMEONES_BOX_FULL; } @@ -16071,9 +16072,9 @@ static void Cmd_givecaughtmon(void) gBattleCommunication[MULTISTRING_CHOOSER]++; } - gBattleResults.caughtMonSpecies = GetMonData(GetBattlerMon(GetCatchingBattler()), MON_DATA_SPECIES, NULL); - GetMonData(GetBattlerMon(GetCatchingBattler()), MON_DATA_NICKNAME, gBattleResults.caughtMonNick); - gBattleResults.caughtMonBall = GetMonData(GetBattlerMon(GetCatchingBattler()), MON_DATA_POKEBALL, NULL); + gBattleResults.caughtMonSpecies = GetMonData(caughtMon, MON_DATA_SPECIES, NULL); + GetMonData(caughtMon, MON_DATA_NICKNAME, gBattleResults.caughtMonNick); + gBattleResults.caughtMonBall = GetMonData(caughtMon, MON_DATA_POKEBALL, NULL); gSelectedMonPartyId = PARTY_SIZE; gBattleCommunication[MULTIUSE_STATE] = 0; @@ -16084,14 +16085,16 @@ static void Cmd_givecaughtmon(void) gBattlescriptCurrInstr = cmd->nextInstr; break; } + } } static void Cmd_trysetcaughtmondexflags(void) { CMD_ARGS(const u8 *failInstr); - u32 species = GetMonData(GetBattlerMon(GetCatchingBattler()), MON_DATA_SPECIES, NULL); - u32 personality = GetMonData(GetBattlerMon(GetCatchingBattler()), MON_DATA_PERSONALITY, NULL); + struct Pokemon *caughtMon = GetBattlerMon(GetCatchingBattler()); + u32 species = GetMonData(caughtMon, MON_DATA_SPECIES, NULL); + u32 personality = GetMonData(caughtMon, MON_DATA_PERSONALITY, NULL); if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(species), FLAG_GET_CAUGHT)) { @@ -16108,7 +16111,8 @@ static void Cmd_displaydexinfo(void) { CMD_ARGS(); - u16 species = GetMonData(GetBattlerMon(GetCatchingBattler()), MON_DATA_SPECIES, NULL); + struct Pokemon *mon = GetBattlerMon(GetCatchingBattler()); + u16 species = GetMonData(mon, MON_DATA_SPECIES, NULL); switch (gBattleCommunication[0]) { @@ -16119,7 +16123,6 @@ static void Cmd_displaydexinfo(void) case 1: if (!gPaletteFade.active) { - struct Pokemon *mon = GetBattlerMon(GetCatchingBattler()); FreeAllWindowBuffers(); gBattleCommunication[TASK_ID] = DisplayCaughtMonDexPage(species, GetMonData(mon, MON_DATA_IS_SHINY), @@ -16275,14 +16278,15 @@ static void Cmd_trygivecaughtmonnick(void) case 2: if (!gPaletteFade.active) { - GetMonData(GetBattlerMon(gBattlerTarget), MON_DATA_NICKNAME, gBattleStruct->caughtMonNick); + struct Pokemon *caughtMon = GetBattlerMon(gBattlerTarget); + GetMonData(caughtMon, MON_DATA_NICKNAME, gBattleStruct->caughtMonNick); FreeAllWindowBuffers(); MainCallback callback = CalculatePlayerPartyCount() == PARTY_SIZE ? ReshowBlankBattleScreenAfterMenu : BattleMainCB2; DoNamingScreen(NAMING_SCREEN_CAUGHT_MON, gBattleStruct->caughtMonNick, - GetMonData(GetBattlerMon(gBattlerTarget), MON_DATA_SPECIES), - GetMonGender(GetBattlerMon(gBattlerTarget)), - GetMonData(GetBattlerMon(gBattlerTarget), MON_DATA_PERSONALITY, NULL), + GetMonData(caughtMon, MON_DATA_SPECIES), + GetMonGender(caughtMon), + GetMonData(caughtMon, MON_DATA_PERSONALITY, NULL), callback); gBattleCommunication[MULTIUSE_STATE]++; @@ -17674,24 +17678,26 @@ static void TryUpdateEvolutionTracker(u32 evolutionCondition, u32 upAmount, u16 { if (evolutions[i].params[j].condition == evolutionCondition) { + struct Pokemon *monAtk = GetBattlerMon(gBattlerAttacker); + struct Pokemon *monDef = GetBattlerMon(gBattlerTarget); // We only have 10 bits to use - u16 val = min(1023, GetMonData(GetBattlerMon(gBattlerAttacker), MON_DATA_EVOLUTION_TRACKER) + upAmount); + u16 val = min(1023, GetMonData(monAtk, MON_DATA_EVOLUTION_TRACKER) + upAmount); // Reset progress if you faint for the recoil method. switch (evolutionCondition) { case IF_USED_MOVE_X_TIMES: if (evolutions[i].params[j].arg1 == usedMove) - SetMonData(GetBattlerMon(gBattlerAttacker), MON_DATA_EVOLUTION_TRACKER, &val); + SetMonData(monAtk, MON_DATA_EVOLUTION_TRACKER, &val); break; case IF_RECOIL_DAMAGE_GE: if (gBattleMons[gBattlerAttacker].hp == 0) val = 0; - SetMonData(GetBattlerMon(gBattlerAttacker), MON_DATA_EVOLUTION_TRACKER, &val); + SetMonData(monAtk, MON_DATA_EVOLUTION_TRACKER, &val); break; case IF_DEFEAT_X_WITH_ITEMS: - if (GetMonData(GetBattlerMon(gBattlerTarget), MON_DATA_SPECIES) == evolutions[i].params[j].arg1 - && GetMonData(GetBattlerMon(gBattlerTarget), MON_DATA_HELD_ITEM) == evolutions[i].params[j].arg2) - SetMonData(GetBattlerMon(gBattlerAttacker), MON_DATA_EVOLUTION_TRACKER, &val); + if (GetMonData(monDef, MON_DATA_SPECIES) == evolutions[i].params[j].arg1 + && GetMonData(monDef, MON_DATA_HELD_ITEM) == evolutions[i].params[j].arg2) + SetMonData(monAtk, MON_DATA_EVOLUTION_TRACKER, &val); break; } return; diff --git a/src/battle_util.c b/src/battle_util.c index d0f5544645..668574af18 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -10194,12 +10194,7 @@ bool32 TryClearIllusion(u32 battler, u32 caseID) struct Pokemon *GetIllusionMonPtr(u32 battler) { if (gBattleStruct->illusion[battler].state == ILLUSION_NOT_SET) - { - if (IsOnPlayerSide(battler)) - SetIllusionMon(GetBattlerMon(battler), battler); - else - SetIllusionMon(GetBattlerMon(battler), battler); - } + SetIllusionMon(GetBattlerMon(battler), battler); if (gBattleStruct->illusion[battler].state != ILLUSION_ON) return NULL; diff --git a/src/battle_util2.c b/src/battle_util2.c index 607aebfba6..ba8db66f5d 100644 --- a/src/battle_util2.c +++ b/src/battle_util2.c @@ -95,17 +95,10 @@ void AdjustFriendshipOnBattleFaint(u8 battler) opposingBattlerId = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); } - if (gBattleMons[opposingBattlerId].level > gBattleMons[battler].level) - { - if (gBattleMons[opposingBattlerId].level - gBattleMons[battler].level > 29) - AdjustFriendship(GetBattlerMon(battler), FRIENDSHIP_EVENT_FAINT_LARGE); - else - AdjustFriendship(GetBattlerMon(battler), FRIENDSHIP_EVENT_FAINT_SMALL); - } + if (gBattleMons[opposingBattlerId].level - gBattleMons[battler].level > 29) + AdjustFriendship(GetBattlerMon(battler), FRIENDSHIP_EVENT_FAINT_LARGE); else - { AdjustFriendship(GetBattlerMon(battler), FRIENDSHIP_EVENT_FAINT_SMALL); - } } void SwitchPartyOrderInGameMulti(u8 battler, u8 arg1) diff --git a/src/recorded_battle.c b/src/recorded_battle.c index 52f9be63b5..2d9556311f 100644 --- a/src/recorded_battle.c +++ b/src/recorded_battle.c @@ -758,25 +758,26 @@ void RecordedBattle_CheckMovesetChanges(u8 mode) if (!(gBattleMons[battler].status2 & STATUS2_TRANSFORMED)) { + struct Pokemon *mon = GetBattlerMon(battler); for (j = 0; j < MAX_MON_MOVES; j++) - ppBonuses[j] = (GetMonData(GetBattlerMon(battler), MON_DATA_PP_BONUSES, NULL) & ((3 << (j << 1)))) >> (j << 1); + ppBonuses[j] = (GetMonData(mon, MON_DATA_PP_BONUSES, NULL) & ((3 << (j << 1)))) >> (j << 1); for (j = 0; j < MAX_MON_MOVES; j++) { - movePp.moves[j] = GetMonData(GetBattlerMon(battler), MON_DATA_MOVE1 + moveSlots[j], NULL); - movePp.currentPp[j] = GetMonData(GetBattlerMon(battler), MON_DATA_PP1 + moveSlots[j], NULL); + movePp.moves[j] = GetMonData(mon, MON_DATA_MOVE1 + moveSlots[j], NULL); + movePp.currentPp[j] = GetMonData(mon, MON_DATA_PP1 + moveSlots[j], NULL); movePp.maxPp[j] = ppBonuses[moveSlots[j]]; } for (j = 0; j < MAX_MON_MOVES; j++) { - SetMonData(GetBattlerMon(battler), MON_DATA_MOVE1 + j, &movePp.moves[j]); - SetMonData(GetBattlerMon(battler), MON_DATA_PP1 + j, &movePp.currentPp[j]); + SetMonData(mon, MON_DATA_MOVE1 + j, &movePp.moves[j]); + SetMonData(mon, MON_DATA_PP1 + j, &movePp.currentPp[j]); } ppBonusSet = 0; for (j = 0; j < MAX_MON_MOVES; j++) ppBonusSet |= movePp.maxPp[j] << (j << 1); - SetMonData(GetBattlerMon(battler), MON_DATA_PP_BONUSES, &ppBonusSet); + SetMonData(mon, MON_DATA_PP_BONUSES, &ppBonusSet); } gChosenMoveByBattler[battler] = gBattleMons[battler].moves[gBattleStruct->chosenMovePositions[battler]]; } diff --git a/src/reshow_battle_screen.c b/src/reshow_battle_screen.c index d46ef692cc..39cb711c86 100644 --- a/src/reshow_battle_screen.c +++ b/src/reshow_battle_screen.c @@ -302,17 +302,19 @@ void CreateBattlerSprite(u32 battler) if (!IsOnPlayerSide(battler)) { - if (GetMonData(GetBattlerMon(battler), MON_DATA_HP) == 0) + struct Pokemon *mon = GetBattlerMon(battler); + if (GetMonData(mon, MON_DATA_HP) == 0) return; if (gBattleScripting.monCaught) // Don't create opponent sprite if it has been caught. return; + u32 species = GetMonData(mon, MON_DATA_SPECIES); - SetMultiuseSpriteTemplateToPokemon(GetMonData(GetBattlerMon(battler), MON_DATA_SPECIES), GetBattlerPosition(battler)); + SetMultiuseSpriteTemplateToPokemon(species, GetBattlerPosition(battler)); gBattlerSpriteIds[battler] = CreateSprite(&gMultiuseSpriteTemplate, GetBattlerSpriteCoord(battler, BATTLER_COORD_X_2), posY, GetBattlerSpriteSubpriority(battler)); gSprites[gBattlerSpriteIds[battler]].oam.paletteNum = battler; gSprites[gBattlerSpriteIds[battler]].callback = SpriteCallbackDummy; gSprites[gBattlerSpriteIds[battler]].data[0] = battler; - gSprites[gBattlerSpriteIds[battler]].data[2] = GetMonData(GetBattlerMon(battler), MON_DATA_SPECIES); + gSprites[gBattlerSpriteIds[battler]].data[2] = species; StartSpriteAnim(&gSprites[gBattlerSpriteIds[battler]], 0); } @@ -338,15 +340,17 @@ void CreateBattlerSprite(u32 battler) } else { - if (!IsValidForBattle(GetBattlerMon(battler))) + struct Pokemon *mon = GetBattlerMon(battler); + if (!IsValidForBattle(mon)) return; + u32 species = GetMonData(mon, MON_DATA_SPECIES); - SetMultiuseSpriteTemplateToPokemon(GetMonData(GetBattlerMon(battler), MON_DATA_SPECIES), GetBattlerPosition(battler)); + SetMultiuseSpriteTemplateToPokemon(species, GetBattlerPosition(battler)); gBattlerSpriteIds[battler] = CreateSprite(&gMultiuseSpriteTemplate, GetBattlerSpriteCoord(battler, BATTLER_COORD_X_2), posY, GetBattlerSpriteSubpriority(battler)); gSprites[gBattlerSpriteIds[battler]].oam.paletteNum = battler; gSprites[gBattlerSpriteIds[battler]].callback = SpriteCallbackDummy; gSprites[gBattlerSpriteIds[battler]].data[0] = battler; - gSprites[gBattlerSpriteIds[battler]].data[2] = GetMonData(GetBattlerMon(battler), MON_DATA_SPECIES); + gSprites[gBattlerSpriteIds[battler]].data[2] = species; StartSpriteAnim(&gSprites[gBattlerSpriteIds[battler]], 0); }