mirror of
https://github.com/kwsch/PKHeX
synced 2025-02-17 05:48:44 +00:00
Fake OT/Nickname fetch for batch command compare
This commit is contained in:
parent
3a085c6607
commit
b04df6383a
4 changed files with 53 additions and 19 deletions
|
@ -352,8 +352,17 @@ public sealed class WA8 : DataMysteryGift, ILangNick, INature, IGigantamax, IDyn
|
|||
}
|
||||
}
|
||||
|
||||
public override string OT_Name { get; set; } = string.Empty;
|
||||
public string Nickname => string.Empty;
|
||||
public override string OT_Name
|
||||
{
|
||||
get => GetOT(Language);
|
||||
set
|
||||
{
|
||||
for (int i = 1; i < (int)LanguageID.ChineseT; i++)
|
||||
SetOT(i, value);
|
||||
}
|
||||
}
|
||||
|
||||
public string Nickname => GetIsNicknamed(Language) ? GetNickname(Language) : string.Empty;
|
||||
public bool IsNicknamed => false;
|
||||
public int Language => 2;
|
||||
|
||||
|
@ -396,7 +405,6 @@ public sealed class WA8 : DataMysteryGift, ILangNick, INature, IGigantamax, IDyn
|
|||
int metLevel = MetLevel > 0 ? MetLevel : currentLevel;
|
||||
var pi = PersonalTable.LA.GetFormEntry(Species, Form);
|
||||
var language = tr.Language;
|
||||
var OT = GetOT(language);
|
||||
bool hasOT = GetHasOT(language);
|
||||
|
||||
var pk = new PA8
|
||||
|
@ -424,7 +432,7 @@ public sealed class WA8 : DataMysteryGift, ILangNick, INature, IGigantamax, IDyn
|
|||
|
||||
Version = OriginGame != 0 ? OriginGame : tr.Game,
|
||||
|
||||
OT_Name = OT.Length > 0 ? OT : tr.OT,
|
||||
OT_Name = hasOT ? GetOT(language) : tr.OT,
|
||||
OT_Gender = OTGender < 2 ? OTGender : tr.Gender,
|
||||
HT_Name = hasOT ? tr.OT : string.Empty,
|
||||
HT_Gender = hasOT ? tr.Gender : 0,
|
||||
|
|
|
@ -292,8 +292,17 @@ public sealed class WB7 : DataMysteryGift, ILangNick, IAwakened, INature, ILangN
|
|||
}
|
||||
}
|
||||
|
||||
public override string OT_Name { get; set; } = string.Empty;
|
||||
public string Nickname => string.Empty;
|
||||
public override string OT_Name
|
||||
{
|
||||
get => GetOT(Language);
|
||||
set
|
||||
{
|
||||
for (int i = 1; i < (int)LanguageID.ChineseT; i++)
|
||||
SetOT(i, value);
|
||||
}
|
||||
}
|
||||
|
||||
public string Nickname => GetIsNicknamed(Language) ? GetNickname(Language) : string.Empty;
|
||||
public bool IsNicknamed => false;
|
||||
public int Language => 2;
|
||||
|
||||
|
@ -310,6 +319,8 @@ public sealed class WB7 : DataMysteryGift, ILangNick, IAwakened, INature, ILangN
|
|||
return redeemLanguage;
|
||||
}
|
||||
|
||||
public bool GetHasOT(int language) => ReadUInt16LittleEndian(Data.AsSpan(GetOTOffset(language))) != 0;
|
||||
|
||||
public string GetNickname(int language) => StringConverter8.GetString(Data.AsSpan(GetNicknameOffset(language), 0x1A));
|
||||
public void SetNickname(int language, string value) => StringConverter8.SetString(Data.AsSpan(GetNicknameOffset(language), 0x1A), value.AsSpan(), 12, StringConverterOption.ClearZero);
|
||||
|
||||
|
@ -341,8 +352,7 @@ public sealed class WB7 : DataMysteryGift, ILangNick, IAwakened, INature, ILangN
|
|||
|
||||
var redeemLanguage = tr.Language;
|
||||
var language = GetLanguage(redeemLanguage);
|
||||
var OT = GetOT(redeemLanguage);
|
||||
bool isRedeemHT = OT.Length != 0;
|
||||
bool hasOT = GetHasOT(redeemLanguage);
|
||||
|
||||
var pk = new PB7
|
||||
{
|
||||
|
@ -373,9 +383,8 @@ public sealed class WB7 : DataMysteryGift, ILangNick, IAwakened, INature, ILangN
|
|||
AV_SPA = AV_SPA,
|
||||
AV_SPD = AV_SPD,
|
||||
|
||||
OT_Name = isRedeemHT ? OT : tr.OT,
|
||||
OT_Name = hasOT ? GetOT(redeemLanguage) : tr.OT,
|
||||
OT_Gender = OTGender != 3 ? OTGender % 2 : tr.Gender,
|
||||
CurrentHandler = isRedeemHT ? 1 : 0,
|
||||
|
||||
EXP = Experience.GetEXP(currentLevel, pi.EXPGrowth),
|
||||
|
||||
|
@ -383,10 +392,11 @@ public sealed class WB7 : DataMysteryGift, ILangNick, IAwakened, INature, ILangN
|
|||
FatefulEncounter = true,
|
||||
};
|
||||
|
||||
if (isRedeemHT)
|
||||
if (hasOT)
|
||||
{
|
||||
pk.HT_Name = tr.OT;
|
||||
pk.HT_Gender = tr.Gender;
|
||||
pk.CurrentHandler = 1;
|
||||
}
|
||||
|
||||
pk.SetMaximumPPCurrent();
|
||||
|
|
|
@ -346,8 +346,17 @@ public sealed class WB8 : DataMysteryGift, ILangNick, INature, IRibbonIndex, ICo
|
|||
}
|
||||
}
|
||||
|
||||
public override string OT_Name { get; set; } = string.Empty;
|
||||
public string Nickname => string.Empty;
|
||||
public override string OT_Name
|
||||
{
|
||||
get => GetOT(Language);
|
||||
set
|
||||
{
|
||||
for (int i = 1; i < (int)LanguageID.ChineseT; i++)
|
||||
SetOT(i, value);
|
||||
}
|
||||
}
|
||||
|
||||
public string Nickname => GetIsNicknamed(Language) ? GetNickname(Language) : string.Empty;
|
||||
public bool IsNicknamed => false;
|
||||
public int Language => 2;
|
||||
|
||||
|
@ -388,7 +397,6 @@ public sealed class WB8 : DataMysteryGift, ILangNick, INature, IRibbonIndex, ICo
|
|||
int metLevel = MetLevel > 0 ? MetLevel : currentLevel;
|
||||
var pi = PersonalTable.BDSP.GetFormEntry(Species, Form);
|
||||
var language = tr.Language;
|
||||
var OT = GetOT(language);
|
||||
bool hasOT = GetHasOT(language);
|
||||
|
||||
var pk = new PB8
|
||||
|
@ -416,7 +424,7 @@ public sealed class WB8 : DataMysteryGift, ILangNick, INature, IRibbonIndex, ICo
|
|||
|
||||
Version = OriginGame != 0 ? OriginGame : tr.Game,
|
||||
|
||||
OT_Name = OT.Length > 0 ? OT : tr.OT,
|
||||
OT_Name = hasOT ? GetOT(language) : tr.OT,
|
||||
OT_Gender = OTGender < 2 ? OTGender : tr.Gender,
|
||||
HT_Name = hasOT ? tr.OT : string.Empty,
|
||||
HT_Gender = hasOT ? tr.Gender : 0,
|
||||
|
|
|
@ -344,8 +344,17 @@ public sealed class WC8 : DataMysteryGift, ILangNick, INature, IGigantamax, IDyn
|
|||
}
|
||||
}
|
||||
|
||||
public override string OT_Name { get; set; } = string.Empty;
|
||||
public string Nickname => string.Empty;
|
||||
public override string OT_Name
|
||||
{
|
||||
get => GetOT(Language);
|
||||
set
|
||||
{
|
||||
for (int i = 1; i < (int)LanguageID.ChineseT; i++)
|
||||
SetOT(i, value);
|
||||
}
|
||||
}
|
||||
|
||||
public string Nickname => GetIsNicknamed(Language) ? GetNickname(Language) : string.Empty;
|
||||
public bool IsNicknamed => false;
|
||||
public int Language => 2;
|
||||
|
||||
|
@ -386,7 +395,6 @@ public sealed class WC8 : DataMysteryGift, ILangNick, INature, IGigantamax, IDyn
|
|||
int metLevel = MetLevel > 0 ? MetLevel : currentLevel;
|
||||
var pi = PersonalTable.SWSH.GetFormEntry(Species, Form);
|
||||
var language = tr.Language;
|
||||
var OT = GetOT(language);
|
||||
bool hasOT = GetHasOT(language);
|
||||
var version = OriginGame != 0 ? OriginGame : (int)this.GetCompatibleVersion((GameVersion)tr.Game);
|
||||
|
||||
|
@ -415,7 +423,7 @@ public sealed class WC8 : DataMysteryGift, ILangNick, INature, IGigantamax, IDyn
|
|||
|
||||
Version = version,
|
||||
|
||||
OT_Name = OT.Length > 0 ? OT : tr.OT,
|
||||
OT_Name = hasOT ? GetOT(language) : tr.OT,
|
||||
OT_Gender = OTGender < 2 ? OTGender : tr.Gender,
|
||||
HT_Name = hasOT ? tr.OT : string.Empty,
|
||||
HT_Gender = hasOT ? tr.Gender : 0,
|
||||
|
|
Loading…
Add table
Reference in a new issue