From 4c96efb9b74bd959a57caacc8274ec827eaae520 Mon Sep 17 00:00:00 2001 From: Kurt Date: Tue, 31 Jul 2018 14:29:47 -0700 Subject: [PATCH] Update pk2->pk1 party stat transfer logic pk1 boxdata stores current level & current hp, which is only present in pk2 party data. if the user drops in pk2(boxdata), the transfer leaves 0 for both values, which isn't correct. detect stat_level to determine if values should be regenerated or not. Thanks HaxAras for finding this :) --- PKHeX.Core/PKM/PK2.cs | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/PKHeX.Core/PKM/PK2.cs b/PKHeX.Core/PKM/PK2.cs index 25e39d6d2..1a11cc9d0 100644 --- a/PKHeX.Core/PKM/PK2.cs +++ b/PKHeX.Core/PKM/PK2.cs @@ -365,9 +365,17 @@ public PK1 ConvertToPK1() Array.Copy(Data, 0x1, pk1.Data, 0x7, 0x1A); pk1.Species = Species; // This will take care of Typing :) - var hp = Stat_HPCurrent; - pk1.Stat_HPCurrent = hp != 0 ? hp : GetStat(PersonalInfo.HP, IV_ATK, EV_ATK, Stat_Level); - pk1.Stat_Level = Stat_Level; + var lvl = Stat_Level; + if (lvl == 0) // no party stats (originated from box format), need to regenerate + { + pk1.Stat_HPCurrent = GetStat(PersonalInfo.HP, IV_ATK, EV_ATK, Stat_Level); + pk1.Stat_Level = CurrentLevel; + } + else + { + pk1.Stat_HPCurrent = Stat_HPCurrent; + pk1.Stat_Level = Stat_Level; + } // Status = 0 Array.Copy(otname, 0, pk1.otname, 0, otname.Length); Array.Copy(nick, 0, pk1.nick, 0, nick.Length);