Fake OT/Nickname fetch for batch command compare

This commit is contained in:
Kurt 2022-09-17 02:00:26 -07:00
parent 3a085c6607
commit b04df6383a
4 changed files with 53 additions and 19 deletions

View file

@ -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,

View file

@ -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();

View file

@ -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,

View file

@ -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,