Alt slots for gen 3, feebas and unown forms

This commit is contained in:
javierhimura 2017-03-19 13:42:59 +01:00
parent 394ef9063e
commit 99d0a56cba
2 changed files with 115 additions and 5 deletions

View file

@ -166,7 +166,27 @@ namespace PKHeX.Core
} }
return GameSlots; return GameSlots;
} }
private static void MarkG3Slots_FRLG(ref EncounterArea[] Areas)
{
// Remove slots for unown, those slots does not contains alt form info, it will be added manually in SlotsRFLGAlt
// Group areas by location id, the raw data have areas with different slots but the same location id
Areas = Areas.Where(a => (a.Location < 188 || a.Location > 194)).
GroupBy(a => a.Location).
Select(a =>
new EncounterArea()
{ Location = a.First().Location, Slots = a.SelectMany(m => m.Slots).ToArray() }).
ToArray();
}
private static void MarkG3Slots_RSE(ref EncounterArea[] Areas)
{
// Group areas by location id, the raw data have areas with different slots but the same location id
Areas = Areas.GroupBy(a => a.Location).
Select(a =>
new EncounterArea()
{ Location = a.First().Location, Slots = a.SelectMany(m => m.Slots).ToArray() }).
ToArray();
}
private static void MarkG5Slots(ref EncounterArea[] Areas) private static void MarkG5Slots(ref EncounterArea[] Areas)
{ {
foreach (var area in Areas) foreach (var area in Areas)
@ -282,11 +302,23 @@ namespace PKHeX.Core
StaticFR = getStaticEncounters(GameVersion.FR); StaticFR = getStaticEncounters(GameVersion.FR);
StaticLG = getStaticEncounters(GameVersion.LG); StaticLG = getStaticEncounters(GameVersion.LG);
SlotsR = getEncounterTables(GameVersion.R); var R_Slots = getEncounterTables(GameVersion.R);
SlotsS = getEncounterTables(GameVersion.S); var S_Slots = getEncounterTables(GameVersion.S);
SlotsE = getEncounterTables(GameVersion.E); var E_Slots = getEncounterTables(GameVersion.E);
SlotsFR = getEncounterTables(GameVersion.FR); var FR_Slots = getEncounterTables(GameVersion.FR);
SlotsLG = getEncounterTables(GameVersion.LG); var LG_Slots = getEncounterTables(GameVersion.LG);
MarkG3Slots_RSE(ref R_Slots);
MarkG3Slots_RSE(ref S_Slots);
MarkG3Slots_RSE(ref E_Slots);
MarkG3Slots_FRLG(ref FR_Slots);
MarkG3Slots_FRLG(ref LG_Slots);
SlotsR = addExtraTableSlots(R_Slots, SlotsRSEAlt);
SlotsS = addExtraTableSlots(S_Slots, SlotsRSEAlt);
SlotsE = addExtraTableSlots(E_Slots, SlotsRSEAlt);
SlotsFR = addExtraTableSlots(FR_Slots, SlotsFRLGAlt);
SlotsLG = addExtraTableSlots(LG_Slots, SlotsFRLGAlt);
Evolves3 = new EvolutionTree(new[] { Resources.evos_g3 }, GameVersion.RS, PersonalTable.RS, MaxSpeciesID_3); Evolves3 = new EvolutionTree(new[] { Resources.evos_g3 }, GameVersion.RS, PersonalTable.RS, MaxSpeciesID_3);

View file

@ -144,5 +144,83 @@ namespace PKHeX.Core
//todo //todo
}; };
#region AltSlots
private static readonly EncounterArea[] SlotsRSEAlt =
{
new EncounterArea {
Location = 34, // Route 119
Slots = new[]
{
new EncounterSlot { Species = 349, LevelMin = 20, LevelMax = 25, Type = SlotType.Super_Rod, Form = 25 }, // Feebas
},}
};
private static readonly EncounterArea[] SlotsFRLGAlt =
{
new EncounterArea {
Location = 188, // Monean Chamber
Slots = new[]
{
new EncounterSlot { Species = 201, LevelMin = 25, LevelMax = 25, Type = SlotType.Grass, Form = 0 }, // Unown A
new EncounterSlot { Species = 201, LevelMin = 25, LevelMax = 25, Type = SlotType.Grass, Form = 26 }, // Unown ?
},},
new EncounterArea {
Location = 189, // Liptoo Chamber
Slots = new[]
{
new EncounterSlot { Species = 201, LevelMin = 25, LevelMax = 25, Type = SlotType.Grass, Form = 2 }, // Unown C
new EncounterSlot { Species = 201, LevelMin = 25, LevelMax = 25, Type = SlotType.Grass, Form = 3 }, // Unown D
new EncounterSlot { Species = 201, LevelMin = 25, LevelMax = 25, Type = SlotType.Grass, Form = 7 }, // Unown H
new EncounterSlot { Species = 201, LevelMin = 25, LevelMax = 25, Type = SlotType.Grass, Form = 14 }, // Unown O
new EncounterSlot { Species = 201, LevelMin = 25, LevelMax = 25, Type = SlotType.Grass, Form = 20 }, // Unown U
},},
new EncounterArea {
Location = 190, // Weepth Chamber
Slots = new[]
{
new EncounterSlot { Species = 201, LevelMin = 25, LevelMax = 25, Type = SlotType.Grass, Form = 4 }, // Unown E
new EncounterSlot { Species = 201, LevelMin = 25, LevelMax = 25, Type = SlotType.Grass, Form = 8 }, // Unown I
new EncounterSlot { Species = 201, LevelMin = 25, LevelMax = 25, Type = SlotType.Grass, Form = 13 }, // Unown N
new EncounterSlot { Species = 201, LevelMin = 25, LevelMax = 25, Type = SlotType.Grass, Form = 18 }, // Unown S
},},
new EncounterArea {
Location = 191, // Dilford Chamber
Slots = new[]
{
new EncounterSlot { Species = 201, LevelMin = 25, LevelMax = 25, Type = SlotType.Grass, Form = 9 }, // Unown J
new EncounterSlot { Species = 201, LevelMin = 25, LevelMax = 25, Type = SlotType.Grass, Form = 11 }, // Unown L
new EncounterSlot { Species = 201, LevelMin = 25, LevelMax = 25, Type = SlotType.Grass, Form = 15 }, // Unown P
new EncounterSlot { Species = 201, LevelMin = 25, LevelMax = 25, Type = SlotType.Grass, Form = 16 }, // Unown Q
new EncounterSlot { Species = 201, LevelMin = 25, LevelMax = 25, Type = SlotType.Grass, Form = 17 }, // Unown R
},},
new EncounterArea {
Location = 192, // Scufib Chamber
Slots = new[]
{
new EncounterSlot { Species = 201, LevelMin = 25, LevelMax = 25, Type = SlotType.Grass, Form = 5 }, // Unown F
new EncounterSlot { Species = 201, LevelMin = 25, LevelMax = 25, Type = SlotType.Grass, Form = 6 }, // Unown G
new EncounterSlot { Species = 201, LevelMin = 25, LevelMax = 25, Type = SlotType.Grass, Form = 10 }, // Unown K
new EncounterSlot { Species = 201, LevelMin = 25, LevelMax = 25, Type = SlotType.Grass, Form = 19 }, // Unown T
new EncounterSlot { Species = 201, LevelMin = 25, LevelMax = 25, Type = SlotType.Grass, Form = 24 }, // Unown Y
},},
new EncounterArea {
Location = 193, // Rixy Chamber
Slots = new[]
{
new EncounterSlot { Species = 201, LevelMin = 25, LevelMax = 25, Type = SlotType.Grass, Form = 1 }, // Unown B
new EncounterSlot { Species = 201, LevelMin = 25, LevelMax = 25, Type = SlotType.Grass, Form = 12 }, // Unown M
new EncounterSlot { Species = 201, LevelMin = 25, LevelMax = 25, Type = SlotType.Grass, Form = 21 }, // Unown V
new EncounterSlot { Species = 201, LevelMin = 25, LevelMax = 25, Type = SlotType.Grass, Form = 22 }, // Unown W
new EncounterSlot { Species = 201, LevelMin = 25, LevelMax = 25, Type = SlotType.Grass, Form = 23 }, // Unown X
},},
new EncounterArea {
Location = 193, // Viapois Chamber
Slots = new[]
{
new EncounterSlot { Species = 201, LevelMin = 25, LevelMax = 25, Type = SlotType.Grass, Form = 25 }, // Unown Z
new EncounterSlot { Species = 201, LevelMin = 25, LevelMax = 25, Type = SlotType.Grass, Form = 27 }, // Unown !
},}
};
#endregion
} }
} }