From f8f46244fb7a2c4ae5cb7e7dc430cca7047c1424 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Fri, 3 Aug 2018 22:45:27 +0200 Subject: [PATCH] Add Infatuation to debug. --- include/data/battle_moves.h | 5 +++-- src/battle_debug.c | 27 +++++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/include/data/battle_moves.h b/include/data/battle_moves.h index c127bc1e14..1f6c3d159c 100644 --- a/include/data/battle_moves.h +++ b/include/data/battle_moves.h @@ -5464,7 +5464,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_GEN6] = .split = SPLIT_PHYSICAL, }, { // MOVE_DEFEND_ORDER - .effect = EFFECT_PLACEHOLDER, // Needs a custom move effect + .effect = EFFECT_COSMIC_POWER, .power = 0, .type = TYPE_BUG, .accuracy = 0, @@ -7361,7 +7361,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_GEN6] = .split = SPLIT_PHYSICAL, }, { // MOVE_OBLIVION_WING - .effect = EFFECT_PLACEHOLDER, // Needs a custom move effect (Restores 75% of damage dealt back to user) + .effect = EFFECT_ABSORB, .power = 80, .type = TYPE_FLYING, .accuracy = 100, @@ -7371,6 +7371,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_GEN6] = .priority = 0, .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, .split = SPLIT_SPECIAL, + .argument = 75, // restores 75% HP instead of 50% HP }, { // MOVE_THOUSAND_ARROWS .effect = EFFECT_PLACEHOLDER, // Needs a custom move effect diff --git a/src/battle_debug.c b/src/battle_debug.c index 94a5ec8ae6..021d0465d4 100644 --- a/src/battle_debug.c +++ b/src/battle_debug.c @@ -19,6 +19,7 @@ #include "list_menu.h" #include "malloc.h" #include "string_util.h" +#include "util.h" #include "data2.h" #include "reset_rtc_screen.h" #include "reshow_battle_screen.h" @@ -107,6 +108,7 @@ enum VAR_SIDE_STATUS, VAR_SHOW_HP, VAR_SUBSTITUTE, + VAR_IN_LOVE, }; enum @@ -128,6 +130,7 @@ enum { VARIOUS_SHOW_HP, VARIOUS_SUBSTITUTE_HP, + VARIOUS_IN_LOVE, }; // const rom data @@ -202,6 +205,7 @@ static const u8 sText_PreferBatonPass[] = _("Baton Pass"); static const u8 sText_InDoubles[] = _("In Doubles"); static const u8 sText_HpAware[] = _("HP aware"); static const u8 sText_Unknown[] = _("Unknown"); +static const u8 sText_InLove[] = _("In Love"); static const u8 sText_EmptyString[] = _(""); @@ -304,6 +308,7 @@ static const struct ListMenuItem sVariousListItems[] = { {sText_ShowHP, VARIOUS_SHOW_HP}, {sText_SubstituteHp, VARIOUS_SUBSTITUTE_HP}, + {sText_InLove, VARIOUS_IN_LOVE}, }; static const struct ListMenuItem sAIListItems[] = @@ -1075,6 +1080,19 @@ static void UpdateBattlerValue(struct BattleDebugMenu *data) gBattleSpritesDataPtr->battlerData[data->battlerId].behindSubstitute = 1; } break; + case VAR_IN_LOVE: + if (data->modifyArrows.currValue) + { + if (IsBattlerAlive(BATTLE_OPPOSITE(data->battlerId))) + gBattleMons[data->battlerId].status2 |= STATUS2_INFATUATED_WITH(BATTLE_OPPOSITE(data->battlerId)); + else + gBattleMons[data->battlerId].status2 |= STATUS2_INFATUATED_WITH(BATTLE_PARTNER(BATTLE_OPPOSITE(data->battlerId))); + } + else + { + gBattleMons[data->battlerId].status2 &= ~(STATUS2_INFATUATION); + } + break; } data->battlerWasChanged[data->battlerId] = TRUE; } @@ -1336,6 +1354,15 @@ static void SetUpModifyArrows(struct BattleDebugMenu *data) data->modifyArrows.typeOfVal = VAR_SUBSTITUTE; data->modifyArrows.currValue = gDisableStructs[data->battlerId].substituteHP; } + else if (data->currentSecondaryListItemId == VARIOUS_IN_LOVE) + { + data->modifyArrows.minValue = 0; + data->modifyArrows.maxValue = 1; + data->modifyArrows.maxDigits = 1; + data->modifyArrows.modifiedValPtr = NULL; + data->modifyArrows.typeOfVal = VAR_IN_LOVE; + data->modifyArrows.currValue = (gBattleMons[data->battlerId].status2 & STATUS2_INFATUATION) != 0; + } break; case LIST_ITEM_STATUS1: data->modifyArrows.modifiedValPtr = &gBattleMons[data->battlerId].status1;