mirror of
https://github.com/kwsch/PKHeX.git
synced 2026-10-02 15:06:49 -05:00
Misc fixes
static-wild encounter g4 collision (abra gift), closes #1390 off by one pokepuff strings unshuffle bk4 ribbons pgt bad sanity events now auto-sanitized
This commit is contained in:
@@ -120,6 +120,8 @@ public GameStrings(string l)
|
||||
trainingbags = Get("trainingbag");
|
||||
trainingstage = Get("supertraining");
|
||||
puffs = Get("puff");
|
||||
Array.Resize(ref puffs, puffs.Length + 1);
|
||||
Array.Copy(puffs, 0, puffs, 1, puffs.Length - 1);
|
||||
|
||||
eggname = specieslist[0];
|
||||
mail4 = Get("mail4");
|
||||
@@ -236,7 +238,7 @@ private void Sanitize()
|
||||
// Set the first entry of a met location to "" (nothing)
|
||||
// Fix (None) tags
|
||||
var none = $"({itemlist[0]})";
|
||||
abilitylist[0] = itemlist[0] = movelist[0] = metXY_00000[0] = metBW2_00000[0] = metHGSS_00000[0] = metCXD_00000[0] = none;
|
||||
abilitylist[0] = itemlist[0] = movelist[0] = metXY_00000[0] = metBW2_00000[0] = metHGSS_00000[0] = metCXD_00000[0] = puffs[0] = none;
|
||||
}
|
||||
private string[] Get(string ident)
|
||||
{
|
||||
|
||||
@@ -243,10 +243,18 @@ private static IEnumerable<IEncounterable> GenerateRawEncounters4(PKM pkm)
|
||||
{ yield return z; ++ctr; }
|
||||
}
|
||||
|
||||
var deferred = new List<IEncounterable>();
|
||||
bool safariSport = pkm.Ball == 0x05 || pkm.Ball == 0x18; // never static encounters
|
||||
if (!safariSport)
|
||||
foreach (var z in GetValidStaticEncounter(pkm))
|
||||
{ yield return z; ++ctr; }
|
||||
{
|
||||
if (z.Gift && pkm.Ball != 4)
|
||||
deferred.Add(z);
|
||||
else
|
||||
{
|
||||
yield return z; ++ctr;
|
||||
}
|
||||
}
|
||||
// if (ctr != 0) yield break;
|
||||
foreach (var z in GetValidWildEncounters(pkm))
|
||||
{ yield return z; ++ctr; }
|
||||
@@ -259,6 +267,8 @@ private static IEnumerable<IEncounterable> GenerateRawEncounters4(PKM pkm)
|
||||
if (safariSport)
|
||||
foreach (var z in GetValidStaticEncounter(pkm))
|
||||
yield return z;
|
||||
foreach (var z in deferred)
|
||||
yield return z;
|
||||
}
|
||||
private static IEnumerable<IEncounterable> GenerateRawEncounters3(PKM pkm)
|
||||
{
|
||||
|
||||
@@ -190,7 +190,7 @@ public override PKM ConvertToPKM(SaveFile SAV)
|
||||
if (!IsPokémon)
|
||||
return null;
|
||||
|
||||
PK4 pk4 = new PK4(PK.Data);
|
||||
PK4 pk4 = new PK4(PK.Data) {Sanity = 0};
|
||||
var pi = PersonalTable.HGSS.GetFormeEntry(Species, PK.AltForm);
|
||||
if (!IsHatched && Detail == 0)
|
||||
{
|
||||
|
||||
@@ -78,10 +78,10 @@ public override uint EXP
|
||||
public override int CNT_Tough { get => Data[0x22]; set => Data[0x22] = (byte)value; }
|
||||
public override int CNT_Sheen { get => Data[0x23]; set => Data[0x23] = (byte)value; }
|
||||
|
||||
private byte RIB0 { get => Data[0x24]; set => Data[0x24] = value; } // Sinnoh 1
|
||||
private byte RIB1 { get => Data[0x25]; set => Data[0x25] = value; } // Sinnoh 2
|
||||
private byte RIB2 { get => Data[0x26]; set => Data[0x26] = value; } // Unova 1
|
||||
private byte RIB3 { get => Data[0x27]; set => Data[0x27] = value; } // Unova 2
|
||||
private byte RIB3 { get => Data[0x24]; set => Data[0x24] = value; } // Unova 2
|
||||
private byte RIB2 { get => Data[0x25]; set => Data[0x25] = value; } // Unova 1
|
||||
private byte RIB1 { get => Data[0x26]; set => Data[0x26] = value; } // Sinnoh 2
|
||||
private byte RIB0 { get => Data[0x27]; set => Data[0x27] = value; } // Sinnoh 1
|
||||
public bool RibbonChampionSinnoh { get => (RIB0 & (1 << 0)) == 1 << 0; set => RIB0 = (byte)(RIB0 & ~(1 << 0) | (value ? 1 << 0 : 0)); }
|
||||
public bool RibbonAbility { get => (RIB0 & (1 << 1)) == 1 << 1; set => RIB0 = (byte)(RIB0 & ~(1 << 1) | (value ? 1 << 1 : 0)); }
|
||||
public bool RibbonAbilityGreat { get => (RIB0 & (1 << 2)) == 1 << 2; set => RIB0 = (byte)(RIB0 & ~(1 << 2) | (value ? 1 << 2 : 0)); }
|
||||
@@ -139,10 +139,10 @@ public override uint EXP
|
||||
public override bool IsNicknamed { get => ((IV32 >> 0) & 1) == 1; set => IV32 = (uint)((IV32 & ~0x00000001) | (uint)(value ? 0x00000001 : 0)); }
|
||||
public override bool IsEgg { get => ((IV32 >> 1) & 1) == 1; set => IV32 = (uint)((IV32 & ~0x00000002) | (uint)(value ? 0x00000002 : 0)); }
|
||||
|
||||
private byte RIB4 { get => Data[0x3C]; set => Data[0x3C] = value; } // Hoenn 1a
|
||||
private byte RIB5 { get => Data[0x3D]; set => Data[0x3D] = value; } // Hoenn 1b
|
||||
private byte RIB6 { get => Data[0x3E]; set => Data[0x3E] = value; } // Hoenn 2a
|
||||
private byte RIB7 { get => Data[0x3F]; set => Data[0x3F] = value; } // Hoenn 2b
|
||||
private byte RIB7 { get => Data[0x3C]; set => Data[0x3C] = value; } // Hoenn 2b
|
||||
private byte RIB6 { get => Data[0x3D]; set => Data[0x3D] = value; } // Hoenn 2a
|
||||
private byte RIB5 { get => Data[0x3E]; set => Data[0x3E] = value; } // Hoenn 1b
|
||||
private byte RIB4 { get => Data[0x3F]; set => Data[0x3F] = value; } // Hoenn 1a
|
||||
public bool RibbonG3Cool { get => (RIB4 & (1 << 0)) == 1 << 0; set => RIB4 = (byte)(RIB4 & ~(1 << 0) | (value ? 1 << 0 : 0)); }
|
||||
public bool RibbonG3CoolSuper { get => (RIB4 & (1 << 1)) == 1 << 1; set => RIB4 = (byte)(RIB4 & ~(1 << 1) | (value ? 1 << 1 : 0)); }
|
||||
public bool RibbonG3CoolHyper { get => (RIB4 & (1 << 2)) == 1 << 2; set => RIB4 = (byte)(RIB4 & ~(1 << 2) | (value ? 1 << 2 : 0)); }
|
||||
|
||||
@@ -15,15 +15,13 @@ public SAV_Pokepuff(SaveFile sav)
|
||||
InitializeComponent();
|
||||
WinFormsUtil.TranslateInterface(this, Main.CurrentLanguage);
|
||||
|
||||
pfa = GameInfo.Strings.puffs;
|
||||
pfa[0] = "---";
|
||||
Setup();
|
||||
|
||||
new ToolTip().SetToolTip(B_Sort, "Hold CTRL to reverse sort.");
|
||||
new ToolTip().SetToolTip(B_All, "Hold CTRL to best instead of varied.");
|
||||
}
|
||||
|
||||
private readonly string[] pfa;
|
||||
private readonly string[] pfa = GameInfo.Strings.puffs;
|
||||
private int PuffCount { get; set; }
|
||||
private void Setup()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user