mirror of
https://github.com/kwsch/PKHeX.git
synced 2026-03-21 17:48:28 -05:00
Meowstic/Magearna dex edit/set
Also fixes tatsugiri form set when giving all
This commit is contained in:
parent
c148da9ab4
commit
aee2d1a556
|
|
@ -950,7 +950,7 @@ private static string[] GetFormsZygarde(IReadOnlyList<string> forms, string[] re
|
|||
return result;
|
||||
}
|
||||
|
||||
public static MegaFormNames GetMegaFormNames(ReadOnlySpan<string> forms) => new()
|
||||
public static MegaFormNames GetMegaFormNames(ReadOnlySpan<string> forms, IReadOnlyList<string> gender, IReadOnlyList<string> types) => new()
|
||||
{
|
||||
Regular = forms[Mega],
|
||||
X = forms[MegaX],
|
||||
|
|
@ -960,6 +960,12 @@ public static MegaFormNames GetMegaFormNames(ReadOnlySpan<string> forms) => new(
|
|||
Tatsu0 = $"{forms[Curly]}-{forms[Mega]}",
|
||||
Tatsu1 = $"{forms[Droopy]}-{forms[Mega]}",
|
||||
Tatsu2 = $"{forms[Stretchy]}-{forms[Mega]}",
|
||||
|
||||
MeowsticM = $"{gender[000]}-{forms[Mega]}",
|
||||
MeowsticF = $"{gender[001]}-{forms[Mega]}",
|
||||
|
||||
Magearna0 = $"{types[000]}-{forms[Mega]}",
|
||||
Magearna1 = $"{forms[1062]}-{forms[Mega]}",
|
||||
};
|
||||
|
||||
private const int Mega = 804;
|
||||
|
|
@ -1139,4 +1145,8 @@ public sealed record MegaFormNames
|
|||
public required string Tatsu0 { get; init; }
|
||||
public required string Tatsu1 { get; init; }
|
||||
public required string Tatsu2 { get; init; }
|
||||
public required string MeowsticM { get; init; }
|
||||
public required string MeowsticF { get; init; }
|
||||
public required string Magearna0 { get; init; }
|
||||
public required string Magearna1 { get; init; }
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,3 +1,5 @@
|
|||
using System;
|
||||
|
||||
namespace PKHeX.Core;
|
||||
|
||||
public sealed class Zukan9a(SAV9ZA sav, SCBlock block) : ZukanBase<SAV9ZA>(sav, block.Raw)
|
||||
|
|
@ -39,8 +41,13 @@ private void Register(PKM pk, ushort species, byte form)
|
|||
entry.SetIsFormCaught(form, true);
|
||||
if (FormInfo.IsMegaForm(species, form))
|
||||
entry.SetIsSeenMega(0, true);
|
||||
if (IsMegaFormXY(species, SAV.SaveRevision))
|
||||
|
||||
if (IsMegaFormXY(species, SAV.SaveRevision) || IsMegaFormZA(species, SAV.SaveRevision))
|
||||
entry.SetIsSeenMega(1, true);
|
||||
else if (species is (int)Species.Magearna or (int)Species.Meowstic)
|
||||
entry.SetIsSeenMega(1, true);
|
||||
else if (species == (int)Species.Tatsugiri)
|
||||
entry.SetIsSeenMega(form < 3 ? form : (byte)Math.Clamp(form - 3, 0, 3), true);
|
||||
entry.SetLanguageFlag(pk.Language, true);
|
||||
|
||||
var isShiny = pk.IsShiny;
|
||||
|
|
@ -218,10 +225,13 @@ private void SeenAll(ushort species, PersonalInfo9ZA pi, bool value = true, bool
|
|||
entry.SetIsSeenAlpha(value);
|
||||
if (FormInfo.IsMegaForm(species, form))
|
||||
entry.SetIsSeenMega(0, value);
|
||||
|
||||
if (IsMegaFormXY(species, SAV.SaveRevision) || IsMegaFormZA(species, SAV.SaveRevision))
|
||||
entry.SetIsSeenMega(1, value);
|
||||
else if (species is (int)Species.Tatsugiri or (int)Species.Magearna)
|
||||
entry.SetIsSeenMega(form, value);
|
||||
else if (species is (int)Species.Magearna or (int)Species.Meowstic)
|
||||
entry.SetIsSeenMega(1, value);
|
||||
else if (species == (int)Species.Tatsugiri)
|
||||
entry.SetIsSeenMega(form < 3 ? form : (byte)Math.Clamp(form - 3, 0, 3), true);
|
||||
|
||||
if (value)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -40,7 +40,8 @@ public SAV_Pokedex9a(SAV9ZA sav)
|
|||
|
||||
// Fill List
|
||||
var filtered = GameInfo.FilteredSources;
|
||||
MegaNames = FormConverter.GetMegaFormNames(filtered.Source.Strings.forms);
|
||||
var strings = filtered.Source.Strings;
|
||||
MegaNames = FormConverter.GetMegaFormNames(strings.forms, Main.GenderSymbols, strings.Types);
|
||||
int maxSpecies = sav.MaxSpeciesID; // no DLC species
|
||||
|
||||
CB_Species.InitializeBinding();
|
||||
|
|
@ -152,10 +153,11 @@ private void GetEntry(ushort species)
|
|||
CHK_SeenGenderless.Checked = entry.GetIsGenderSeen(2);
|
||||
CHK_SeenAlpha.Checked = entry.GetIsSeenAlpha();
|
||||
|
||||
CHK_SeenMega0.Checked = entry.GetIsSeenMega(0);
|
||||
CHK_SeenMega1.Checked = entry.GetIsSeenMega(1);
|
||||
CHK_SeenMega2.Checked = entry.GetIsSeenMega(2);
|
||||
if (Zukan9a.IsMegaFormXY(species, SAV.SaveRevision))
|
||||
{
|
||||
CHK_SeenMega0.Checked = entry.GetIsSeenMega(0);
|
||||
CHK_SeenMega1.Checked = entry.GetIsSeenMega(1);
|
||||
CHK_SeenMega2.Visible = false;
|
||||
|
||||
CHK_SeenMega0.Text = MegaNames.X;
|
||||
|
|
@ -165,8 +167,6 @@ private void GetEntry(ushort species)
|
|||
}
|
||||
else if (Zukan9a.IsMegaFormZA(species, SAV.SaveRevision))
|
||||
{
|
||||
CHK_SeenMega0.Checked = entry.GetIsSeenMega(0);
|
||||
CHK_SeenMega1.Checked = entry.GetIsSeenMega(1);
|
||||
CHK_SeenMega2.Visible = false;
|
||||
|
||||
CHK_SeenMega0.Text = MegaNames.Regular;
|
||||
|
|
@ -174,12 +174,24 @@ private void GetEntry(ushort species)
|
|||
CHK_SeenMega0.Visible = true;
|
||||
CHK_SeenMega1.Visible = true;
|
||||
}
|
||||
else if (species is (int)Species.Meowstic)
|
||||
{
|
||||
CHK_SeenMega0.Text = MegaNames.MeowsticM;
|
||||
CHK_SeenMega1.Text = MegaNames.MeowsticF;
|
||||
CHK_SeenMega0.Visible = true;
|
||||
CHK_SeenMega1.Visible = true;
|
||||
CHK_SeenMega2.Visible = false;
|
||||
}
|
||||
else if (species is (int)Species.Magearna)
|
||||
{
|
||||
CHK_SeenMega0.Text = MegaNames.Magearna0;
|
||||
CHK_SeenMega1.Text = MegaNames.Magearna1;
|
||||
CHK_SeenMega0.Visible = true;
|
||||
CHK_SeenMega1.Visible = true;
|
||||
CHK_SeenMega2.Visible = false;
|
||||
}
|
||||
else if (species is (int)Species.Tatsugiri)
|
||||
{
|
||||
CHK_SeenMega0.Checked = entry.GetIsSeenMega(0);
|
||||
CHK_SeenMega1.Checked = entry.GetIsSeenMega(1);
|
||||
CHK_SeenMega2.Checked = entry.GetIsSeenMega(2);
|
||||
|
||||
CHK_SeenMega0.Text = MegaNames.Tatsu0;
|
||||
CHK_SeenMega1.Text = MegaNames.Tatsu1;
|
||||
CHK_SeenMega2.Text = MegaNames.Tatsu2;
|
||||
|
|
@ -189,8 +201,6 @@ private void GetEntry(ushort species)
|
|||
}
|
||||
else
|
||||
{
|
||||
CHK_SeenMega0.Checked = entry.GetIsSeenMega(0);
|
||||
|
||||
CHK_SeenMega0.Text = MegaNames.Regular;
|
||||
CHK_SeenMega0.Visible = true;
|
||||
CHK_SeenMega1.Visible = false;
|
||||
|
|
@ -252,7 +262,7 @@ private void SetEntry(ushort species)
|
|||
entry.SetIsGenderSeen(2, CHK_SeenGenderless.Checked);
|
||||
entry.SetIsSeenAlpha(CHK_SeenAlpha.Checked);
|
||||
|
||||
if (Zukan9a.IsMegaFormXY(species, SAV.SaveRevision) || Zukan9a.IsMegaFormZA(species, SAV.SaveRevision))
|
||||
if (Zukan9a.IsMegaFormXY(species, SAV.SaveRevision) || Zukan9a.IsMegaFormZA(species, SAV.SaveRevision) || species is (int)Species.Magearna or (int)Species.Meowstic)
|
||||
{
|
||||
entry.SetIsSeenMega(0, CHK_SeenMega0.Checked);
|
||||
entry.SetIsSeenMega(1, CHK_SeenMega1.Checked);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user