mirror of
https://github.com/kwsch/PKHeX
synced 2024-11-30 07:50:32 +00:00
Comments: forme->form
This commit is contained in:
parent
9c8bee19ca
commit
c9640f8561
11 changed files with 29 additions and 29 deletions
|
@ -144,7 +144,7 @@ namespace PKHeX.Core
|
||||||
{
|
{
|
||||||
case Any:
|
case Any:
|
||||||
var first = LearnBW.GetIsLevelUp(species, form, move, maxLevel);
|
var first = LearnBW.GetIsLevelUp(species, form, move, maxLevel);
|
||||||
if (first.IsLevelUp && species != 646) // Kyurem moves are same for both versions, but forme movepool not present.
|
if (first.IsLevelUp && species != 646) // Kyurem moves are same for both versions, but form movepool not present.
|
||||||
return first;
|
return first;
|
||||||
return LearnB2W2.GetIsLevelUp(species, form, move, maxLevel);
|
return LearnB2W2.GetIsLevelUp(species, form, move, maxLevel);
|
||||||
case B or W or BW:
|
case B or W or BW:
|
||||||
|
@ -406,7 +406,7 @@ namespace PKHeX.Core
|
||||||
switch (ver)
|
switch (ver)
|
||||||
{
|
{
|
||||||
case Any:
|
case Any:
|
||||||
if (species != 646) // Kyurem moves are same for both versions, but forme movepool not present.
|
if (species != 646) // Kyurem moves are same for both versions, but form movepool not present.
|
||||||
LearnBW.AddMoves(moves, species, form, maxLevel);
|
LearnBW.AddMoves(moves, species, form, maxLevel);
|
||||||
return LearnB2W2.AddMoves(moves, species, form, maxLevel);
|
return LearnB2W2.AddMoves(moves, species, form, maxLevel);
|
||||||
|
|
||||||
|
|
|
@ -149,10 +149,10 @@ namespace PKHeX.Core
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Compares the Vivillon pattern against its country and region to determine if the pattern is able to be obtained legally.
|
/// Compares the Vivillon pattern against its country and region to determine if the pattern is able to be obtained legally.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="form">Alternate Forme Pattern</param>
|
/// <param name="form">Alternate Form Pattern</param>
|
||||||
/// <param name="country">Country ID</param>
|
/// <param name="country">Country ID</param>
|
||||||
/// <param name="region">Console Region ID</param>
|
/// <param name="region">Console Region ID</param>
|
||||||
/// <returns></returns>
|
/// <returns>True if valid</returns>
|
||||||
public static bool IsPatternValid(int form, byte country, byte region)
|
public static bool IsPatternValid(int form, byte country, byte region)
|
||||||
{
|
{
|
||||||
if (!VivillonCountryTable[form].Contains(country))
|
if (!VivillonCountryTable[form].Contains(country))
|
||||||
|
|
|
@ -263,7 +263,7 @@ namespace PKHeX.Core
|
||||||
/// <param name="pi">Game specific personal info</param>
|
/// <param name="pi">Game specific personal info</param>
|
||||||
/// <param name="species"><see cref="Species"/> ID</param>
|
/// <param name="species"><see cref="Species"/> ID</param>
|
||||||
/// <param name="format"><see cref="PKM.Form"/> ID</param>
|
/// <param name="format"><see cref="PKM.Form"/> ID</param>
|
||||||
/// <returns>True if has formes that can be provided by <see cref="FormConverter.GetFormList"/>, otherwise false for none.</returns>
|
/// <returns>True if has forms that can be provided by <see cref="FormConverter.GetFormList"/>, otherwise false for none.</returns>
|
||||||
public static bool HasFormSelection(PersonalInfo pi, int species, int format)
|
public static bool HasFormSelection(PersonalInfo pi, int species, int format)
|
||||||
{
|
{
|
||||||
if (format <= 3 && species != (int)Unown)
|
if (format <= 3 && species != (int)Unown)
|
||||||
|
@ -282,7 +282,7 @@ namespace PKHeX.Core
|
||||||
private static readonly HashSet<int> HasFormValuesNotIndicatedByPersonal = new()
|
private static readonly HashSet<int> HasFormValuesNotIndicatedByPersonal = new()
|
||||||
{
|
{
|
||||||
(int)Unown,
|
(int)Unown,
|
||||||
(int)Mothim, // (Burmy forme carried over, not cleared)
|
(int)Mothim, // (Burmy form is not cleared on evolution)
|
||||||
(int)Scatterbug, (int)Spewpa, // Vivillon pre-evos
|
(int)Scatterbug, (int)Spewpa, // Vivillon pre-evos
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,14 +10,14 @@ namespace PKHeX.Core
|
||||||
public static class FormConverter
|
public static class FormConverter
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets a list of formes that the species can have.
|
/// Gets a list of forms that the species can have.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="species"><see cref="Species"/> of the Pokémon.</param>
|
/// <param name="species"><see cref="Species"/> of the Pokémon.</param>
|
||||||
/// <param name="types">List of type names</param>
|
/// <param name="types">List of type names</param>
|
||||||
/// <param name="forms">List of form names</param>
|
/// <param name="forms">List of form names</param>
|
||||||
/// <param name="genders">List of genders names</param>
|
/// <param name="genders">List of genders names</param>
|
||||||
/// <param name="generation">Generation number for exclusive formes</param>
|
/// <param name="generation">Generation number for exclusive forms</param>
|
||||||
/// <returns>A list of strings corresponding to the formes that a Pokémon can have.</returns>
|
/// <returns>A list of strings corresponding to the forms that a Pokémon can have.</returns>
|
||||||
public static string[] GetFormList(int species, IReadOnlyList<string> types, IReadOnlyList<string> forms, IReadOnlyList<string> genders, int generation)
|
public static string[] GetFormList(int species, IReadOnlyList<string> types, IReadOnlyList<string> forms, IReadOnlyList<string> genders, int generation)
|
||||||
{
|
{
|
||||||
// Mega List
|
// Mega List
|
||||||
|
|
|
@ -261,11 +261,11 @@ namespace PKHeX.Core
|
||||||
/// <param name="form"><see cref="PKM.Form"/> to retrieve for</param>
|
/// <param name="form"><see cref="PKM.Form"/> to retrieve for</param>
|
||||||
public bool HasForm(int form)
|
public bool HasForm(int form)
|
||||||
{
|
{
|
||||||
if (form <= 0) // no forme requested
|
if (form <= 0) // no form requested
|
||||||
return false;
|
return false;
|
||||||
if (FormStatsIndex <= 0) // no formes present
|
if (FormStatsIndex <= 0) // no forms present
|
||||||
return false;
|
return false;
|
||||||
if (form >= FormCount) // beyond range of species' formes
|
if (form >= FormCount) // beyond range of species' forms
|
||||||
return false;
|
return false;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -323,7 +323,7 @@ namespace PKHeX.Core
|
||||||
public bool OnlyMale => Gender == RatioMagicMale;
|
public bool OnlyMale => Gender == RatioMagicMale;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Indicates if the entry has Formes or not.
|
/// Indicates if the entry has forms or not.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public bool HasForms => FormCount > 1;
|
public bool HasForms => FormCount > 1;
|
||||||
|
|
||||||
|
|
|
@ -127,7 +127,7 @@ namespace PKHeX.Core
|
||||||
public int CrownDexIndex { get => BitConverter.ToUInt16(Data, 0xAE); set => BitConverter.GetBytes((ushort)value).CopyTo(Data, 0xAE); }
|
public int CrownDexIndex { get => BitConverter.ToUInt16(Data, 0xAE); set => BitConverter.GetBytes((ushort)value).CopyTo(Data, 0xAE); }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets the Forme that any offspring will hatch with, assuming it is holding an Everstone.
|
/// Gets the Form that any offspring will hatch with, assuming it is holding an Everstone.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public int HatchFormIndexEverstone => IsRegionalForm ? RegionalFormIndex : LocalFormIndex;
|
public int HatchFormIndexEverstone => IsRegionalForm ? RegionalFormIndex : LocalFormIndex;
|
||||||
|
|
||||||
|
|
|
@ -50,9 +50,9 @@ namespace PKHeX.Core
|
||||||
new(0x1DA00, 0x01e0, 0x1DBE2, 0x25F4C), // 38 Trainer Card Records
|
new(0x1DA00, 0x01e0, 0x1DBE2, 0x25F4C), // 38 Trainer Card Records
|
||||||
new(0x1DC00, 0x00a8, 0x1DCAA, 0x25F4E), // 39 ???
|
new(0x1DC00, 0x00a8, 0x1DCAA, 0x25F4E), // 39 ???
|
||||||
new(0x1DD00, 0x0460, 0x1E162, 0x25F50), // 40 Mail
|
new(0x1DD00, 0x0460, 0x1E162, 0x25F50), // 40 Mail
|
||||||
new(0x1E200, 0x1400, 0x1F602, 0x25F52), // 41 ???
|
new(0x1E200, 0x1400, 0x1F602, 0x25F52), // 41 Overworld State
|
||||||
new(0x1F700, 0x02a4, 0x1F9A6, 0x25F54), // 42 Musical
|
new(0x1F700, 0x02a4, 0x1F9A6, 0x25F54), // 42 Musical
|
||||||
new(0x1FA00, 0x00e0, 0x1FAE2, 0x25F56), // 43 Fused Reshiram/Zekrom Storage
|
new(0x1FA00, 0x00e0, 0x1FAE2, 0x25F56), // 43 White Forest + Black City Data, Fused Reshiram/Zekrom Storage
|
||||||
new(0x1FB00, 0x034c, 0x1FE4E, 0x25F58), // 44 IR
|
new(0x1FB00, 0x034c, 0x1FE4E, 0x25F58), // 44 IR
|
||||||
new(0x1FF00, 0x04e0, 0x203E2, 0x25F5A), // 45 EventWork
|
new(0x1FF00, 0x04e0, 0x203E2, 0x25F5A), // 45 EventWork
|
||||||
new(0x20400, 0x00f8, 0x204FA, 0x25F5C), // 46 GTS
|
new(0x20400, 0x00f8, 0x204FA, 0x25F5C), // 46 GTS
|
||||||
|
@ -95,7 +95,7 @@ namespace PKHeX.Core
|
||||||
Daycare = new Daycare5(sav, 0x20D00);
|
Daycare = new Daycare5(sav, 0x20D00);
|
||||||
Misc = new Misc5B2W2(sav, 0x21100);
|
Misc = new Misc5B2W2(sav, 0x21100);
|
||||||
Entralink = new Entralink5B2W2(sav, 0x21200);
|
Entralink = new Entralink5B2W2(sav, 0x21200);
|
||||||
Zukan = new Zukan5(sav, 0x21400, 0x328); // forme flags size is + 8 from bw with new formes (therians)
|
Zukan = new Zukan5(sav, 0x21400, 0x328); // form flags size is + 8 from bw with new forms (therians)
|
||||||
BattleSubway = new BattleSubway5(sav, 0x21B00);
|
BattleSubway = new BattleSubway5(sav, 0x21B00);
|
||||||
PWT = new PWTBlock5(sav, 0x23700);
|
PWT = new PWTBlock5(sav, 0x23700);
|
||||||
Festa = new FestaBlock5(sav, 0x25900);
|
Festa = new FestaBlock5(sav, 0x25900);
|
||||||
|
|
|
@ -50,9 +50,9 @@ namespace PKHeX.Core
|
||||||
new(0x1DA00, 0x01E0, 0x1DBE2, 0x23F4C), // 38 Trainer Card Records
|
new(0x1DA00, 0x01E0, 0x1DBE2, 0x23F4C), // 38 Trainer Card Records
|
||||||
new(0x1DC00, 0x00A8, 0x1DCAA, 0x23F4E), // 39 ???
|
new(0x1DC00, 0x00A8, 0x1DCAA, 0x23F4E), // 39 ???
|
||||||
new(0x1DD00, 0x0460, 0x1E162, 0x23F50), // 40 Mail
|
new(0x1DD00, 0x0460, 0x1E162, 0x23F50), // 40 Mail
|
||||||
new(0x1E200, 0x1400, 0x1F602, 0x23F52), // 41 ???
|
new(0x1E200, 0x1400, 0x1F602, 0x23F52), // 41 Overworld State
|
||||||
new(0x1F700, 0x02A4, 0x1F9A6, 0x23F54), // 42 Musical
|
new(0x1F700, 0x02A4, 0x1F9A6, 0x23F54), // 42 Musical
|
||||||
new(0x1FA00, 0x02DC, 0x1FCDE, 0x23F56), // 43 ???
|
new(0x1FA00, 0x02DC, 0x1FCDE, 0x23F56), // 43 White Forest + Black City Data
|
||||||
new(0x1FD00, 0x034C, 0x2004E, 0x23F58), // 44 IR
|
new(0x1FD00, 0x034C, 0x2004E, 0x23F58), // 44 IR
|
||||||
new(0x20100, 0x03EC, 0x204EE, 0x23F5A), // 45 EventWork
|
new(0x20100, 0x03EC, 0x204EE, 0x23F5A), // 45 EventWork
|
||||||
new(0x20500, 0x00F8, 0x205FA, 0x23F5C), // 46 GTS
|
new(0x20500, 0x00F8, 0x205FA, 0x23F5C), // 46 GTS
|
||||||
|
|
|
@ -202,7 +202,7 @@ namespace PKHeX.Core
|
||||||
for (int i = 1; i <= max; i++)
|
for (int i = 1; i <= max; i++)
|
||||||
names.Add($"{i:000} - {speciesNames[i]}");
|
names.Add($"{i:000} - {speciesNames[i]}");
|
||||||
|
|
||||||
// Add Formes
|
// Add forms
|
||||||
int ctr = max + 1;
|
int ctr = max + 1;
|
||||||
for (int species = 1; species <= max; species++)
|
for (int species = 1; species <= max; species++)
|
||||||
{
|
{
|
||||||
|
@ -218,7 +218,7 @@ namespace PKHeX.Core
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets a list of Species IDs that a given dex-forme index corresponds to.
|
/// Gets a list of Species IDs that a given dex-form index corresponds to.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
private List<int> GetFormIndexBaseSpeciesList()
|
private List<int> GetFormIndexBaseSpeciesList()
|
||||||
|
|
|
@ -144,7 +144,7 @@ namespace PKHeX.WinForms
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// sanity check formes -- SM does not have totem form dex bits
|
// sanity check forms -- SM does not have totem form dex bits
|
||||||
int count = SAV.Personal[bspecies].FormCount;
|
int count = SAV.Personal[bspecies].FormCount;
|
||||||
if (count < ds.Count)
|
if (count < ds.Count)
|
||||||
ds.RemoveAt(count); // remove last
|
ds.RemoveAt(count); // remove last
|
||||||
|
@ -421,7 +421,7 @@ namespace PKHeX.WinForms
|
||||||
if (species is (int)Species.Pikachu or (int)Species.Eevee)
|
if (species is (int)Species.Pikachu or (int)Species.Eevee)
|
||||||
continue; // ignore starter (setdex doesn't set buddy bit; totem raticate is not emitted below).
|
continue; // ignore starter (setdex doesn't set buddy bit; totem raticate is not emitted below).
|
||||||
|
|
||||||
// Set forme flags
|
// Set form flags
|
||||||
var entries = Dex.GetAllFormEntries(species).Where(z => z >= SAV.MaxSpeciesID).Distinct();
|
var entries = Dex.GetAllFormEntries(species).Where(z => z >= SAV.MaxSpeciesID).Distinct();
|
||||||
foreach (var f in entries)
|
foreach (var f in entries)
|
||||||
{
|
{
|
||||||
|
@ -488,7 +488,7 @@ namespace PKHeX.WinForms
|
||||||
(gt != PersonalInfo.RatioMagicFemale ? CHK_P2 : CHK_P3).Checked = true;
|
(gt != PersonalInfo.RatioMagicFemale ? CHK_P2 : CHK_P3).Checked = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ensure at least one Displayed except for formes
|
// ensure at least one Displayed except for forms
|
||||||
if (isForm)
|
if (isForm)
|
||||||
return;
|
return;
|
||||||
if (!(CHK_P6.Checked || CHK_P7.Checked || CHK_P8.Checked || CHK_P9.Checked))
|
if (!(CHK_P6.Checked || CHK_P7.Checked || CHK_P8.Checked || CHK_P9.Checked))
|
||||||
|
@ -502,7 +502,7 @@ namespace PKHeX.WinForms
|
||||||
|
|
||||||
if (mnuSeenNone != sender)
|
if (mnuSeenNone != sender)
|
||||||
{
|
{
|
||||||
// ensure at least one Displayed except for formes
|
// ensure at least one Displayed except for forms
|
||||||
if (isForm)
|
if (isForm)
|
||||||
return;
|
return;
|
||||||
if (!(CHK_P6.Checked || CHK_P7.Checked || CHK_P8.Checked || CHK_P9.Checked))
|
if (!(CHK_P6.Checked || CHK_P7.Checked || CHK_P8.Checked || CHK_P9.Checked))
|
||||||
|
|
|
@ -132,7 +132,7 @@ namespace PKHeX.WinForms
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// sanity check formes -- SM does not have totem form dex bits
|
// sanity check forms -- SM does not have totem form dex bits
|
||||||
int count = SAV.Personal[bspecies].FormCount;
|
int count = SAV.Personal[bspecies].FormCount;
|
||||||
if (count < ds.Count)
|
if (count < ds.Count)
|
||||||
ds.RemoveAt(count); // remove last
|
ds.RemoveAt(count); // remove last
|
||||||
|
@ -352,7 +352,7 @@ namespace PKHeX.WinForms
|
||||||
if (sender != mnuSeenAll)
|
if (sender != mnuSeenAll)
|
||||||
SetCaught(sender, gt, lang, false);
|
SetCaught(sender, gt, lang, false);
|
||||||
|
|
||||||
// Set forme flags
|
// Set form flags
|
||||||
var entries = Dex.GetAllFormEntries(species).Where(z => z >= SAV.MaxSpeciesID).Distinct();
|
var entries = Dex.GetAllFormEntries(species).Where(z => z >= SAV.MaxSpeciesID).Distinct();
|
||||||
foreach (var f in entries)
|
foreach (var f in entries)
|
||||||
{
|
{
|
||||||
|
@ -396,7 +396,7 @@ namespace PKHeX.WinForms
|
||||||
(gt != PersonalInfo.RatioMagicFemale ? CHK_P2 : CHK_P3).Checked = true;
|
(gt != PersonalInfo.RatioMagicFemale ? CHK_P2 : CHK_P3).Checked = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ensure at least one Displayed except for formes
|
// ensure at least one Displayed except for forms
|
||||||
if (isForm)
|
if (isForm)
|
||||||
return;
|
return;
|
||||||
if (!(CHK_P6.Checked || CHK_P7.Checked || CHK_P8.Checked || CHK_P9.Checked))
|
if (!(CHK_P6.Checked || CHK_P7.Checked || CHK_P8.Checked || CHK_P9.Checked))
|
||||||
|
@ -410,7 +410,7 @@ namespace PKHeX.WinForms
|
||||||
|
|
||||||
if (mnuSeenNone != sender)
|
if (mnuSeenNone != sender)
|
||||||
{
|
{
|
||||||
// ensure at least one Displayed except for formes
|
// ensure at least one Displayed except for forms
|
||||||
if (isForm)
|
if (isForm)
|
||||||
return;
|
return;
|
||||||
if (!(CHK_P6.Checked || CHK_P7.Checked || CHK_P8.Checked || CHK_P9.Checked))
|
if (!(CHK_P6.Checked || CHK_P7.Checked || CHK_P8.Checked || CHK_P9.Checked))
|
||||||
|
|
Loading…
Reference in a new issue