mirror of
https://github.com/kwsch/PKHeX
synced 2024-11-23 20:43:07 +00:00
Add gen6->gen7 transfer skeleton
Ingame font changed the order of the faces as noted in #734, this is just temp until someone tests. Check old ability & force to new if valid I bet the transfer method doesn't touch the chars (screwing up faces), so it can be removed if proven.
This commit is contained in:
parent
2cff51be61
commit
7797af4baa
2 changed files with 54 additions and 2 deletions
|
@ -601,5 +601,57 @@ namespace PKHeX.Core
|
||||||
public override bool WasEventEgg => ((Egg_Location > 40000 && Egg_Location < 50000) || (FatefulEncounter && Egg_Location == 30002)) && Met_Level == 1;
|
public override bool WasEventEgg => ((Egg_Location > 40000 && Egg_Location < 50000) || (FatefulEncounter && Egg_Location == 30002)) && Met_Level == 1;
|
||||||
public override bool WasTradedEgg => Egg_Location == 30002;
|
public override bool WasTradedEgg => Egg_Location == 30002;
|
||||||
public override bool WasIngameTrade => Met_Location == 30001;
|
public override bool WasIngameTrade => Met_Location == 30001;
|
||||||
|
|
||||||
|
public PK7 convertToPK7()
|
||||||
|
{
|
||||||
|
PK7 pk7 = new PK7(Data)
|
||||||
|
{
|
||||||
|
Markings = Markings, // Clears old Super Training Bag & Hits Remaining
|
||||||
|
Data = { [0x2A] = 0 }, // Clears old Marking Value
|
||||||
|
};
|
||||||
|
|
||||||
|
switch (AbilityNumber)
|
||||||
|
{
|
||||||
|
case 1: case 2: case 4: // Valid Ability Numbers
|
||||||
|
int index = AbilityNumber >> 1;
|
||||||
|
if (PersonalInfo.Abilities[index] == Ability) // correct pair
|
||||||
|
pk7.Ability = pk7.PersonalInfo.Abilities[index];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Fix Name Strings
|
||||||
|
pk7.Nickname = convertString(pk7.Nickname);
|
||||||
|
pk7.OT_Name = convertString(pk7.OT_Name);
|
||||||
|
pk7.HT_Name = convertString(pk7.HT_Name);
|
||||||
|
|
||||||
|
// Fix Checksum
|
||||||
|
pk7.RefreshChecksum();
|
||||||
|
|
||||||
|
return pk7; // Done!
|
||||||
|
}
|
||||||
|
|
||||||
|
private static string convertString(string input)
|
||||||
|
{
|
||||||
|
string s = "";
|
||||||
|
foreach (char c in input)
|
||||||
|
{
|
||||||
|
// Faces get shuffled.
|
||||||
|
switch (c)
|
||||||
|
{
|
||||||
|
case '\uE081':
|
||||||
|
s += c + 3;
|
||||||
|
break;
|
||||||
|
case '\uE082':
|
||||||
|
case '\uE083':
|
||||||
|
case '\uE084':
|
||||||
|
s += c - 1;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
s += c;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return s;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -108,7 +108,7 @@ namespace PKHeX.Core
|
||||||
return new PK5(data, ident);
|
return new PK5(data, ident);
|
||||||
case 6:
|
case 6:
|
||||||
PKM pkx = new PK6(data, ident);
|
PKM pkx = new PK6(data, ident);
|
||||||
if (pkx.SM)
|
if (pkx.SM || pkx.VC || pkx.Horohoro)
|
||||||
pkx = new PK7(data, ident);
|
pkx = new PK7(data, ident);
|
||||||
return pkx;
|
return pkx;
|
||||||
default:
|
default:
|
||||||
|
@ -221,7 +221,7 @@ namespace PKHeX.Core
|
||||||
break;
|
break;
|
||||||
goto case nameof(PK6);
|
goto case nameof(PK6);
|
||||||
case nameof(PK6):
|
case nameof(PK6):
|
||||||
pkm = new PK7(pkm.Data, pkm.Identifier);
|
pkm = ((PK6)pkm).convertToPK7();
|
||||||
if (toFormat == 7)
|
if (toFormat == 7)
|
||||||
break;
|
break;
|
||||||
goto case nameof(PK7);
|
goto case nameof(PK7);
|
||||||
|
|
Loading…
Reference in a new issue