mirror of
https://github.com/kwsch/PKHeX
synced 2024-11-10 14:44:24 +00:00
Refactoring
Simplify EncounterStatic type check as it is gen4 specific -> gen4 specific child class Checks.cs: Move transfer legality check back to end as Gen4Result needs to be defined (not null) Rename EncounterType of Analysis class to avoid conflict with the EncounterType enum
This commit is contained in:
parent
c847ef1d71
commit
bcf1e63310
5 changed files with 264 additions and 228 deletions
|
@ -14,9 +14,9 @@ namespace PKHeX.Core
|
|||
private List<GBEncounterData> EncountersGBMatch;
|
||||
private object EncounterOriginalGB => EncountersGBMatch?.FirstOrDefault()?.Encounter;
|
||||
private object EncounterMatch;
|
||||
private Type EncounterType;
|
||||
private Type Type; // Encounter
|
||||
private bool MatchIsMysteryGift => EncounterMatch.GetType().IsSubclassOf(typeof(MysteryGift));
|
||||
private bool EncounterIsMysteryGift => EncounterType.IsSubclassOf(typeof (MysteryGift));
|
||||
private bool EncounterIsMysteryGift => Type.IsSubclassOf(typeof (MysteryGift));
|
||||
private string EncounterName => Legal.getEncounterTypeName(pkm, EncounterOriginalGB ?? EncounterMatch);
|
||||
private List<MysteryGift> EventGiftMatch;
|
||||
private List<EncounterStatic> EncounterStaticMatch;
|
||||
|
@ -110,7 +110,7 @@ namespace PKHeX.Core
|
|||
|
||||
updateEncounterChain();
|
||||
updateMoveLegality();
|
||||
updateEncounterInfo();
|
||||
updateTypeInfo();
|
||||
verifyNickname();
|
||||
verifyDVs();
|
||||
verifyG1OT();
|
||||
|
@ -123,7 +123,7 @@ namespace PKHeX.Core
|
|||
|
||||
updateEncounterChain();
|
||||
updateMoveLegality();
|
||||
updateEncounterInfo();
|
||||
updateTypeInfo();
|
||||
updateChecks();
|
||||
}
|
||||
private void parsePK4(PKM pk)
|
||||
|
@ -135,7 +135,7 @@ namespace PKHeX.Core
|
|||
verifyPreRelearn();
|
||||
updateEncounterChain();
|
||||
updateMoveLegality();
|
||||
updateEncounterInfo();
|
||||
updateTypeInfo();
|
||||
updateChecks();
|
||||
}
|
||||
private void parsePK5(PKM pk)
|
||||
|
@ -147,7 +147,7 @@ namespace PKHeX.Core
|
|||
verifyPreRelearn();
|
||||
updateEncounterChain();
|
||||
updateMoveLegality();
|
||||
updateEncounterInfo();
|
||||
updateTypeInfo();
|
||||
updateChecks();
|
||||
}
|
||||
private void parsePK6(PKM pk)
|
||||
|
@ -159,7 +159,7 @@ namespace PKHeX.Core
|
|||
updateRelearnLegality();
|
||||
updateEncounterChain();
|
||||
updateMoveLegality();
|
||||
updateEncounterInfo();
|
||||
updateTypeInfo();
|
||||
updateChecks();
|
||||
}
|
||||
private void parsePK7(PKM pk)
|
||||
|
@ -171,7 +171,7 @@ namespace PKHeX.Core
|
|||
updateRelearnLegality();
|
||||
updateEncounterChain();
|
||||
updateMoveLegality();
|
||||
updateEncounterInfo();
|
||||
updateTypeInfo();
|
||||
updateChecks();
|
||||
}
|
||||
|
||||
|
@ -197,14 +197,14 @@ namespace PKHeX.Core
|
|||
Parse.Add(Encounter);
|
||||
EvoChainsAllGens = Legal.getEvolutionChainsAllGens(pkm, EncounterOriginalGB ?? EncounterMatch);
|
||||
}
|
||||
private void updateEncounterInfo()
|
||||
private void updateTypeInfo()
|
||||
{
|
||||
if (pkm.VC && pkm.Format == 7)
|
||||
EncounterMatch = Legal.getRBYStaticTransfer(pkm.Species);
|
||||
|
||||
EncounterType = (EncounterOriginalGB ?? EncounterMatch ?? pkm.Species)?.GetType();
|
||||
if (EncounterType == typeof (MysteryGift))
|
||||
EncounterType = EncounterType?.BaseType;
|
||||
Type = (EncounterOriginalGB ?? EncounterMatch ?? pkm.Species)?.GetType();
|
||||
if (Type == typeof (MysteryGift))
|
||||
Type = Type?.BaseType;
|
||||
}
|
||||
private void updateChecks()
|
||||
{
|
||||
|
|
|
@ -134,13 +134,13 @@ namespace PKHeX.Core
|
|||
if (pkm.GenNumber >= 6 && pkm.PID == pkm.EncryptionConstant)
|
||||
AddLine(Severity.Invalid, V208, CheckIdentifier.PID); // better to flag than 1:2^32 odds since RNG is not feasible to yield match
|
||||
|
||||
if (EncounterType == typeof (EncounterStatic))
|
||||
if (Type == typeof (EncounterStatic))
|
||||
{
|
||||
var enc = (EncounterStatic)EncounterMatch;
|
||||
if (enc.Shiny != null && (bool) enc.Shiny ^ pkm.IsShiny)
|
||||
AddLine(Severity.Invalid, V209, CheckIdentifier.Shiny);
|
||||
}
|
||||
else if (EncounterType == typeof(EncounterSlot[]))
|
||||
else if (Type == typeof(EncounterSlot[]))
|
||||
{
|
||||
var slots = (EncounterSlot[])EncounterMatch;
|
||||
if (pkm.IsShiny && slots.All(slot => slot.Type == SlotType.HiddenGrotto))
|
||||
|
@ -166,7 +166,7 @@ namespace PKHeX.Core
|
|||
}
|
||||
|
||||
// Check if Wurmple was the origin (only Egg and Wild Encounter)
|
||||
bool wasWurmple = pkm.WasEgg || (EncounterType == typeof (EncounterSlot[]) && ((EncounterSlot[])EncounterMatch).Any(slot => slot.Species == 265));
|
||||
bool wasWurmple = pkm.WasEgg || (Type == typeof (EncounterSlot[]) && ((EncounterSlot[])EncounterMatch).Any(slot => slot.Species == 265));
|
||||
if (!wasWurmple)
|
||||
return;
|
||||
|
||||
|
@ -246,7 +246,7 @@ namespace PKHeX.Core
|
|||
return;
|
||||
}
|
||||
|
||||
if (EncounterType == typeof(EncounterTrade))
|
||||
if (Type == typeof(EncounterTrade))
|
||||
{
|
||||
verifyNicknameTrade();
|
||||
return;
|
||||
|
@ -466,7 +466,7 @@ namespace PKHeX.Core
|
|||
#region verifyOT
|
||||
private void verifyOT()
|
||||
{
|
||||
if (EncounterType == typeof(EncounterTrade))
|
||||
if (Type == typeof(EncounterTrade))
|
||||
return; // Already matches Encounter Trade information
|
||||
|
||||
if (pkm.TID == 0 && pkm.SID == 0)
|
||||
|
@ -749,7 +749,7 @@ namespace PKHeX.Core
|
|||
return new CheckResult(Severity.Invalid, V383, CheckIdentifier.Encounter);
|
||||
if (pkm.Species == 492 && s.Location == 063 && !pkm.Pt) // DP Shaymin
|
||||
return new CheckResult(Severity.Invalid, V354, CheckIdentifier.Encounter);
|
||||
if (s.Location == 193 && s.TypeEncounter == Core.EncounterType.Surfing_Fishing) // Roaming pokemon surfin in Jhoto Route 45
|
||||
if (s.Location == 193 && (s as EncounterStaticTyped)?.TypeEncounter == EncounterType.Surfing_Fishing) // Roaming pokemon surfin in Jhoto Route 45
|
||||
return new CheckResult(Severity.Invalid, V384, CheckIdentifier.Encounter);
|
||||
break;
|
||||
case 7:
|
||||
|
@ -813,25 +813,25 @@ namespace PKHeX.Core
|
|||
}
|
||||
private void verifyEncounterType()
|
||||
{
|
||||
EncounterType Type = Core.EncounterType.None;
|
||||
EncounterType type = EncounterType.None;
|
||||
// Encounter type data is only stored for gen 4 encounters
|
||||
// Gen 6 -> 7 transfer delete encounter type data
|
||||
// All eggs have encounter type none, even if they are from static encounters
|
||||
if (pkm.Format < 7 && pkm.Gen4 && !pkm.WasEgg)
|
||||
{
|
||||
if (EncounterMatch as EncounterSlot[] != null)
|
||||
if (EncounterMatch is EncounterSlot[])
|
||||
// If there is more than one slot, the get wild encounter have filter for the pkm type encounter like safari/sports ball
|
||||
Type = (EncounterMatch as EncounterSlot[]).First().TypeEncounter;
|
||||
if (EncounterMatch as EncounterStatic != null)
|
||||
Type = (EncounterMatch as EncounterStatic).TypeEncounter;
|
||||
type = ((EncounterSlot[])EncounterMatch).First().TypeEncounter;
|
||||
if (EncounterMatch is EncounterStaticTyped)
|
||||
type = ((EncounterStaticTyped)EncounterMatch).TypeEncounter;
|
||||
}
|
||||
if (Type == Core.EncounterType.Any)
|
||||
if (type == EncounterType.Any)
|
||||
{
|
||||
// Temp analysis until all generation 4 static encounters have defined their encounter type values
|
||||
AddLine(Severity.NotImplemented, V382, CheckIdentifier.Encounter);
|
||||
return;
|
||||
}
|
||||
if (Type != (EncounterType)pkm.EncounterType)
|
||||
if (type != (EncounterType)pkm.EncounterType)
|
||||
{
|
||||
AddLine(Severity.Invalid, V381, CheckIdentifier.Encounter);
|
||||
return;
|
||||
|
@ -976,6 +976,45 @@ namespace PKHeX.Core
|
|||
CheckResult Gen4WildResult = null;
|
||||
EncounterSlot[] WildEncounter = null;
|
||||
|
||||
bool wasEvent = pkm.WasEvent || pkm.WasEventEgg;
|
||||
if (wasEvent)
|
||||
{
|
||||
var result = verifyEncounterEvent();
|
||||
if (result != null)
|
||||
Gen4Result = result;
|
||||
}
|
||||
|
||||
if (Gen4Result == null && null != (EncounterMatch = Legal.getValidWildEncounters(pkm)))
|
||||
{
|
||||
Gen4WildResult = verifyEncounterWild();
|
||||
WildEncounter = (EncounterSlot[])EncounterMatch;
|
||||
}
|
||||
|
||||
if (Gen4Result == null && null != (EncounterStaticMatch = Legal.getValidStaticEncounter(pkm)))
|
||||
{
|
||||
EncounterMatch = EncounterStaticMatch.First();
|
||||
var result = verifyEncounterStatic();
|
||||
// A pokemon could match a static encounter and a wild encounter at the same time, by default static encounter have preferences
|
||||
// But if the pokemon does not match the static encounter ball and there is a valid wild encounter skip static encounter
|
||||
if (result != null && (pkm.WasEgg || Gen4WildResult == null || EncounterStaticMatch.Any(s => !s.Gift || pkm.Ball == s.Ball)))
|
||||
return result;
|
||||
|
||||
EncounterStaticMatch = null;
|
||||
EncounterMatch = null; // Reset Encounter Object, test for remaining encounters
|
||||
}
|
||||
|
||||
if (pkm.WasEgg) // Invalid transfer is already checked in encounter egg
|
||||
return verifyEncounterEgg();
|
||||
|
||||
if (Gen4Result == null && Gen4WildResult != null)
|
||||
{
|
||||
Gen4Result = Gen4WildResult;
|
||||
EncounterMatch = WildEncounter;
|
||||
}
|
||||
|
||||
if (Gen4Result == null && null != (EncounterMatch = Legal.getValidIngameTrade(pkm)))
|
||||
Gen4Result = verifyEncounterTrade();
|
||||
|
||||
// Transfer Legality
|
||||
int loc = pkm.Met_Location;
|
||||
if (loc != 30001) // PokéTransfer
|
||||
|
@ -1001,51 +1040,9 @@ namespace PKHeX.Core
|
|||
}
|
||||
}
|
||||
|
||||
bool wasEvent = pkm.WasEvent || pkm.WasEventEgg;
|
||||
if (wasEvent)
|
||||
{
|
||||
var result = verifyEncounterEvent();
|
||||
if (result != null)
|
||||
Gen4Result = result;
|
||||
}
|
||||
|
||||
if (Gen4Result == null && null != (EncounterMatch = Legal.getValidWildEncounters(pkm)))
|
||||
{
|
||||
Gen4WildResult = verifyEncounterWild();
|
||||
WildEncounter = (EncounterSlot[])EncounterMatch;
|
||||
}
|
||||
|
||||
if (Gen4Result == null && null != (EncounterStaticMatch = Legal.getValidStaticEncounter(pkm)))
|
||||
{
|
||||
EncounterMatch = EncounterStaticMatch.First();
|
||||
var result = verifyEncounterStatic();
|
||||
// A pokemon could match a static encounter and a wild encounter at the same time, by default static encounter have preferences
|
||||
// But if the pokemon does not match the static encounter ball and there is a valid wild encounter skip static encounter
|
||||
if (result != null && (pkm.WasEgg || Gen4WildResult == null || EncounterStaticMatch.Any(sttic => !sttic.Gift || pkm.Ball == sttic.Ball)))
|
||||
return result;
|
||||
|
||||
EncounterStaticMatch = null;
|
||||
EncounterMatch = null; // Reset Encounter Object, test for remaining encounters
|
||||
}
|
||||
|
||||
if (pkm.WasEgg) // Invalid transfer is already checked in encounter egg
|
||||
return verifyEncounterEgg();
|
||||
|
||||
if (Gen4Result == null && Gen4WildResult != null)
|
||||
{
|
||||
Gen4Result = Gen4WildResult;
|
||||
EncounterMatch = WildEncounter;
|
||||
}
|
||||
|
||||
if (Gen4Result == null && null != (EncounterMatch = Legal.getValidIngameTrade(pkm)))
|
||||
Gen4Result = verifyEncounterTrade();
|
||||
|
||||
if (Gen4Result == null)
|
||||
Gen4Result = wasEvent
|
||||
? new CheckResult(Severity.Invalid, V78, CheckIdentifier.Encounter)
|
||||
: new CheckResult(Severity.Invalid, V80, CheckIdentifier.Encounter);
|
||||
|
||||
return Gen4Result;
|
||||
return Gen4Result ?? (wasEvent
|
||||
? new CheckResult(Severity.Invalid, V78, CheckIdentifier.Encounter)
|
||||
: new CheckResult(Severity.Invalid, V80, CheckIdentifier.Encounter));
|
||||
}
|
||||
private CheckResult verifyVCEncounter(int baseSpecies)
|
||||
{
|
||||
|
@ -1394,7 +1391,7 @@ namespace PKHeX.Core
|
|||
}
|
||||
private void verifyAbility5(int[] abilities)
|
||||
{
|
||||
if (EncounterType == typeof (EncounterSlot[]))
|
||||
if (Type == typeof (EncounterSlot[]))
|
||||
{
|
||||
// Hidden Abilities for Wild Encounters are only available at a Hidden Grotto
|
||||
bool grotto = ((EncounterSlot[]) EncounterMatch).All(slot => slot.Type == SlotType.HiddenGrotto);
|
||||
|
@ -1406,7 +1403,7 @@ namespace PKHeX.Core
|
|||
}
|
||||
private void verifyAbility6(int[] abilities)
|
||||
{
|
||||
if (EncounterType == typeof (EncounterSlot[]) && pkm.AbilityNumber == 4)
|
||||
if (Type == typeof (EncounterSlot[]) && pkm.AbilityNumber == 4)
|
||||
{
|
||||
var slots = (EncounterSlot[]) EncounterMatch;
|
||||
bool valid = slots.Any(slot => slot.DexNav ||
|
||||
|
@ -1422,7 +1419,7 @@ namespace PKHeX.Core
|
|||
}
|
||||
private void verifyAbility7(int[] abilities)
|
||||
{
|
||||
if (EncounterType == typeof (EncounterSlot[]) && pkm.AbilityNumber == 4)
|
||||
if (Type == typeof (EncounterSlot[]) && pkm.AbilityNumber == 4)
|
||||
{
|
||||
var slots = (EncounterSlot[]) EncounterMatch;
|
||||
bool valid = slots.Any(slot => slot.Type == SlotType.SOS);
|
||||
|
@ -1475,12 +1472,12 @@ namespace PKHeX.Core
|
|||
verifyBallEquals(((MysteryGift)EncounterMatch).Ball);
|
||||
return;
|
||||
}
|
||||
if (EncounterType == typeof (EncounterLink))
|
||||
if (Type == typeof (EncounterLink))
|
||||
{
|
||||
verifyBallEquals(((EncounterLink)EncounterMatch).Ball);
|
||||
return;
|
||||
}
|
||||
if (EncounterType == typeof (EncounterTrade))
|
||||
if (Type == typeof (EncounterTrade))
|
||||
{
|
||||
verifyBallEquals(4); // Pokeball
|
||||
return;
|
||||
|
@ -1502,7 +1499,7 @@ namespace PKHeX.Core
|
|||
}
|
||||
}
|
||||
|
||||
if (EncounterType == typeof(EncounterStatic))
|
||||
if (Type == typeof(EncounterStatic))
|
||||
{
|
||||
EncounterStatic enc = EncounterMatch as EncounterStatic;
|
||||
if (enc?.Gift ?? false)
|
||||
|
@ -1513,7 +1510,7 @@ namespace PKHeX.Core
|
|||
verifyBallEquals(Legal.getWildBalls(pkm));
|
||||
return;
|
||||
}
|
||||
if (EncounterType == typeof (EncounterSlot[]))
|
||||
if (Type == typeof (EncounterSlot[]))
|
||||
{
|
||||
EncounterSlot[] enc = EncounterMatch as EncounterSlot[];
|
||||
|
||||
|
@ -1927,7 +1924,7 @@ namespace PKHeX.Core
|
|||
if (pkm.OT_Memory != 0)
|
||||
return new CheckResult(Severity.Invalid, V151, CheckIdentifier.History);
|
||||
}
|
||||
else if (EncounterType != typeof(WC6))
|
||||
else if (Type != typeof(WC6))
|
||||
{
|
||||
if (pkm.OT_Memory == 0 ^ !pkm.Gen6)
|
||||
return new CheckResult(Severity.Invalid, V152, CheckIdentifier.History);
|
||||
|
@ -2001,18 +1998,18 @@ namespace PKHeX.Core
|
|||
return;
|
||||
}
|
||||
|
||||
if (EncounterType == typeof(EncounterTrade))
|
||||
if (Type == typeof(EncounterTrade))
|
||||
{
|
||||
// Undocumented, uncommon, and insignificant -- don't bother.
|
||||
return;
|
||||
}
|
||||
if (EncounterType == typeof(WC6))
|
||||
if (Type == typeof(WC6))
|
||||
{
|
||||
WC6 g = EncounterMatch as WC6;
|
||||
verifyOTMemoryIs(new[] {g.OT_Memory, g.OT_Intensity, g.OT_TextVar, g.OT_Feeling});
|
||||
return;
|
||||
}
|
||||
if (EncounterType == typeof(WC7))
|
||||
if (Type == typeof(WC7))
|
||||
{
|
||||
WC7 g = EncounterMatch as WC7;
|
||||
verifyOTMemoryIs(new[] {g.OT_Memory, g.OT_Intensity, g.OT_TextVar, g.OT_Feeling});
|
||||
|
@ -2180,9 +2177,9 @@ namespace PKHeX.Core
|
|||
switch (pkm.Species)
|
||||
{
|
||||
case 25: // Pikachu
|
||||
if (pkm.Format == 6 && pkm.AltForm != 0 ^ EncounterType == typeof(EncounterStatic))
|
||||
if (pkm.Format == 6 && pkm.AltForm != 0 ^ Type == typeof(EncounterStatic))
|
||||
{
|
||||
string msg = EncounterType == typeof (EncounterStatic) ? V305 : V306;
|
||||
string msg = Type == typeof (EncounterStatic) ? V305 : V306;
|
||||
AddLine(Severity.Invalid, msg, CheckIdentifier.Form);
|
||||
return;
|
||||
}
|
||||
|
@ -2360,7 +2357,7 @@ namespace PKHeX.Core
|
|||
AddLine(Severity.Invalid, V322, CheckIdentifier.Fateful);
|
||||
return;
|
||||
}
|
||||
if (EncounterType == typeof (EncounterStatic))
|
||||
if (Type == typeof (EncounterStatic))
|
||||
{
|
||||
var enc = EncounterMatch as EncounterStatic;
|
||||
if (enc.Fateful)
|
||||
|
@ -3244,7 +3241,7 @@ namespace PKHeX.Core
|
|||
}
|
||||
|
||||
// No gift match, thus no relearn moves
|
||||
EncounterMatch = EncounterType = null;
|
||||
EncounterMatch = Type = null;
|
||||
return verifyRelearnNone();
|
||||
}
|
||||
private CheckResult[] verifyRelearnDexNav()
|
||||
|
|
|
@ -1316,17 +1316,20 @@ namespace PKHeX.Core
|
|||
int lvl = getMinLevelEncounter(pkm);
|
||||
if (lvl <= 0)
|
||||
return null;
|
||||
// Back Check against pkm
|
||||
var enc = getMatchingStaticEncounters(pkm, poss, lvl).ToList();
|
||||
|
||||
// If there is only one valid encounter defer encountertype check to verify encounter type
|
||||
if(enc.Count > 1 && pkm.Gen4 && pkm.Format < 7)
|
||||
// Back Check against pkm
|
||||
var enc = getMatchingStaticEncounters(pkm, poss, lvl);
|
||||
|
||||
// Filter for encounter types
|
||||
if (pkm.Gen4 && pkm.Format < 7) // type is cleared on 6->7
|
||||
{
|
||||
var s_EncounterTypes = enc.Where(stc => stc.TypeEncounter == EncounterType.Any || stc.TypeEncounter == (EncounterType)pkm.EncounterType);
|
||||
if (s_EncounterTypes.Any())
|
||||
return s_EncounterTypes.ToList();
|
||||
int type = pkm.EncounterType;
|
||||
enc = type == 0
|
||||
? enc.Where(z => !(z is EncounterStaticTyped)) // no typed encounters
|
||||
: enc.Where(z => z is EncounterStaticTyped && (int) ((EncounterStaticTyped)z).TypeEncounter == type);
|
||||
}
|
||||
return enc.Any() ? enc : null;
|
||||
var result = enc.ToList();
|
||||
return result.Count == 0 ? null : result;
|
||||
}
|
||||
private static IEnumerable<EncounterStatic> getMatchingStaticEncounters(PKM pkm, IEnumerable<EncounterStatic> poss, int lvl)
|
||||
{
|
||||
|
|
|
@ -6,11 +6,10 @@
|
|||
public int[] Moves { get; set; }
|
||||
public int Level;
|
||||
|
||||
public int LevelMin { get { return Level; } }
|
||||
public int LevelMax { get { return Level; } }
|
||||
public int LevelMin => Level;
|
||||
public int LevelMax => Level;
|
||||
public int Generation { get; set; } = -1;
|
||||
public int Location;
|
||||
public EncounterType TypeEncounter = EncounterType.Any;
|
||||
public int Ability;
|
||||
public int Form;
|
||||
public bool? Shiny; // false = never, true = always, null = possible
|
||||
|
@ -42,7 +41,7 @@
|
|||
return Encounters;
|
||||
}
|
||||
|
||||
public EncounterStatic Clone(int location)
|
||||
protected virtual EncounterStatic Clone(int location)
|
||||
{
|
||||
return new EncounterStatic
|
||||
{
|
||||
|
@ -70,7 +69,6 @@
|
|||
NSparkle = NSparkle,
|
||||
Roaming = Roaming,
|
||||
EggCycles = EggCycles,
|
||||
TypeEncounter = TypeEncounter
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -110,7 +108,6 @@
|
|||
NSparkle = NSparkle,
|
||||
Roaming = Roaming,
|
||||
EggCycles = EggCycles,
|
||||
TypeEncounter = TypeEncounter
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -125,4 +122,41 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class EncounterStaticTyped : EncounterStatic
|
||||
{
|
||||
public EncounterType TypeEncounter = EncounterType.None;
|
||||
|
||||
protected override EncounterStatic Clone(int location)
|
||||
{
|
||||
return new EncounterStaticTyped
|
||||
{
|
||||
Species = Species,
|
||||
Level = Level,
|
||||
Location = location,
|
||||
Ability = Ability,
|
||||
Form = Form,
|
||||
Shiny = Shiny,
|
||||
Relearn = Relearn,
|
||||
Moves = Moves,
|
||||
Gender = Gender,
|
||||
EggLocation = EggLocation,
|
||||
Nature = Nature,
|
||||
Gift = Gift,
|
||||
Ball = Ball,
|
||||
Version = Version,
|
||||
IVs = IVs,
|
||||
IV3 = IV3,
|
||||
Contest = Contest,
|
||||
HeldItem = HeldItem,
|
||||
Fateful = Fateful,
|
||||
RibbonWishing = RibbonWishing,
|
||||
SkipFormCheck = SkipFormCheck,
|
||||
NSparkle = NSparkle,
|
||||
Roaming = Roaming,
|
||||
EggCycles = EggCycles,
|
||||
TypeEncounter = TypeEncounter,
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -433,76 +433,78 @@ namespace PKHeX.Core
|
|||
47, // Valley Windworks
|
||||
49, // Fuego Ironworks
|
||||
};
|
||||
internal static readonly EncounterStatic[] Encounter_DPPt_Roam_Grass =
|
||||
internal static readonly EncounterStaticTyped[] Encounter_DPPt_Roam_Grass =
|
||||
{
|
||||
new EncounterStatic { Species = 481, Level = 50, Roaming = true, TypeEncounter = EncounterType.TallGrass }, //Mesprit
|
||||
new EncounterStatic { Species = 488, Level = 50, Roaming = true, TypeEncounter = EncounterType.TallGrass }, //Cresselia
|
||||
new EncounterStatic { Species = 144, Level = 60, Version = GameVersion.Pt, Roaming = true, TypeEncounter = EncounterType.TallGrass }, //Articuno
|
||||
new EncounterStatic { Species = 145, Level = 60, Version = GameVersion.Pt, Roaming = true, TypeEncounter = EncounterType.TallGrass }, //Zapdos
|
||||
new EncounterStatic { Species = 146, Level = 60, Version = GameVersion.Pt, Roaming = true, TypeEncounter = EncounterType.TallGrass }, //Moltres
|
||||
new EncounterStaticTyped { Species = 481, Level = 50, Roaming = true, TypeEncounter = EncounterType.TallGrass }, // Mesprit
|
||||
new EncounterStaticTyped { Species = 488, Level = 50, Roaming = true, TypeEncounter = EncounterType.TallGrass }, // Cresselia
|
||||
new EncounterStaticTyped { Species = 144, Level = 60, Roaming = true, TypeEncounter = EncounterType.TallGrass, Version = GameVersion.Pt }, // Articuno
|
||||
new EncounterStaticTyped { Species = 145, Level = 60, Roaming = true, TypeEncounter = EncounterType.TallGrass, Version = GameVersion.Pt }, // Zapdos
|
||||
new EncounterStaticTyped { Species = 146, Level = 60, Roaming = true, TypeEncounter = EncounterType.TallGrass, Version = GameVersion.Pt }, // Moltres
|
||||
};
|
||||
internal static readonly EncounterStatic[] Encounter_DPPt_Roam_Surf =
|
||||
internal static readonly EncounterStaticTyped[] Encounter_DPPt_Roam_Surf =
|
||||
{
|
||||
new EncounterStatic { Species = 481, Level = 50, Roaming = true, TypeEncounter = EncounterType.Surfing_Fishing }, //Mesprit
|
||||
new EncounterStatic { Species = 488, Level = 50, Roaming = true, TypeEncounter = EncounterType.Surfing_Fishing }, //Cresselia
|
||||
new EncounterStatic { Species = 144, Level = 60, Version = GameVersion.Pt, Roaming = true, TypeEncounter = EncounterType.Surfing_Fishing }, //Articuno
|
||||
new EncounterStatic { Species = 145, Level = 60, Version = GameVersion.Pt, Roaming = true, TypeEncounter = EncounterType.Surfing_Fishing }, //Zapdos
|
||||
new EncounterStatic { Species = 146, Level = 60, Version = GameVersion.Pt, Roaming = true, TypeEncounter = EncounterType.Surfing_Fishing }, //Moltres
|
||||
new EncounterStaticTyped { Species = 481, Level = 50, Roaming = true, TypeEncounter = EncounterType.Surfing_Fishing }, // Mesprit
|
||||
new EncounterStaticTyped { Species = 488, Level = 50, Roaming = true, TypeEncounter = EncounterType.Surfing_Fishing }, // Cresselia
|
||||
new EncounterStaticTyped { Species = 144, Level = 60, Roaming = true, TypeEncounter = EncounterType.Surfing_Fishing, Version = GameVersion.Pt }, // Articuno
|
||||
new EncounterStaticTyped { Species = 145, Level = 60, Roaming = true, TypeEncounter = EncounterType.Surfing_Fishing, Version = GameVersion.Pt }, // Zapdos
|
||||
new EncounterStaticTyped { Species = 146, Level = 60, Roaming = true, TypeEncounter = EncounterType.Surfing_Fishing, Version = GameVersion.Pt }, // Moltres
|
||||
};
|
||||
internal static readonly EncounterStatic[] Encounter_DPPt_Regular =
|
||||
internal static readonly EncounterStaticTyped[] Encounter_DPPt_Regular =
|
||||
{
|
||||
//Starters
|
||||
new EncounterStatic { Gift = true, Species = 387, Level = 5, Location = 076, TypeEncounter = EncounterType.Starter_Fossil_Gift_DP, Version = GameVersion.DP,}, // Turtwig @ Lake Verity
|
||||
new EncounterStatic { Gift = true, Species = 390, Level = 5, Location = 076, TypeEncounter = EncounterType.Starter_Fossil_Gift_DP, Version = GameVersion.DP,}, // Chimchar
|
||||
new EncounterStatic { Gift = true, Species = 393, Level = 5, Location = 076, TypeEncounter = EncounterType.Starter_Fossil_Gift_DP, Version = GameVersion.DP,}, // Piplup
|
||||
new EncounterStatic { Gift = true, Species = 387, Level = 5, Location = 016, TypeEncounter = EncounterType.Starter_Fossil_Gift_Pt_DPTrio, Version = GameVersion.Pt,}, // Turtwig @ Route 201
|
||||
new EncounterStatic { Gift = true, Species = 390, Level = 5, Location = 016, TypeEncounter = EncounterType.Starter_Fossil_Gift_Pt_DPTrio, Version = GameVersion.Pt,}, // Chimchar
|
||||
new EncounterStatic { Gift = true, Species = 393, Level = 5, Location = 016, TypeEncounter = EncounterType.Starter_Fossil_Gift_Pt_DPTrio, Version = GameVersion.Pt,}, // Piplup
|
||||
new EncounterStaticTyped { Gift = true, Species = 387, Level = 5, Location = 076, TypeEncounter = EncounterType.Starter_Fossil_Gift_DP, Version = GameVersion.DP }, // Turtwig @ Lake Verity
|
||||
new EncounterStaticTyped { Gift = true, Species = 390, Level = 5, Location = 076, TypeEncounter = EncounterType.Starter_Fossil_Gift_DP, Version = GameVersion.DP }, // Chimchar
|
||||
new EncounterStaticTyped { Gift = true, Species = 393, Level = 5, Location = 076, TypeEncounter = EncounterType.Starter_Fossil_Gift_DP, Version = GameVersion.DP }, // Piplup
|
||||
new EncounterStaticTyped { Gift = true, Species = 387, Level = 5, Location = 016, TypeEncounter = EncounterType.Starter_Fossil_Gift_Pt_DPTrio, Version = GameVersion.Pt }, // Turtwig @ Route 201
|
||||
new EncounterStaticTyped { Gift = true, Species = 390, Level = 5, Location = 016, TypeEncounter = EncounterType.Starter_Fossil_Gift_Pt_DPTrio, Version = GameVersion.Pt }, // Chimchar
|
||||
new EncounterStaticTyped { Gift = true, Species = 393, Level = 5, Location = 016, TypeEncounter = EncounterType.Starter_Fossil_Gift_Pt_DPTrio, Version = GameVersion.Pt }, // Piplup
|
||||
//Fossil @ Mining Museum
|
||||
new EncounterStatic { Gift = true, Species = 138, Level = 20, Location = 094, TypeEncounter = EncounterType.Starter_Fossil_Gift_DP, }, // Omanyte
|
||||
new EncounterStatic { Gift = true, Species = 140, Level = 20, Location = 094, TypeEncounter = EncounterType.Starter_Fossil_Gift_DP, }, // Kabuto
|
||||
new EncounterStatic { Gift = true, Species = 142, Level = 20, Location = 094, TypeEncounter = EncounterType.Starter_Fossil_Gift_DP, }, // Aerodactyl
|
||||
new EncounterStatic { Gift = true, Species = 345, Level = 20, Location = 094, TypeEncounter = EncounterType.Starter_Fossil_Gift_DP, }, // Lileep
|
||||
new EncounterStatic { Gift = true, Species = 347, Level = 20, Location = 094, TypeEncounter = EncounterType.Starter_Fossil_Gift_DP, }, // Anorith
|
||||
new EncounterStatic { Gift = true, Species = 408, Level = 20, Location = 094, TypeEncounter = EncounterType.Starter_Fossil_Gift_DP, }, // Cranidos
|
||||
new EncounterStatic { Gift = true, Species = 410, Level = 20, Location = 094, TypeEncounter = EncounterType.Starter_Fossil_Gift_DP, }, // Shieldon
|
||||
new EncounterStaticTyped { Gift = true, Species = 138, Level = 20, Location = 094, TypeEncounter = EncounterType.Starter_Fossil_Gift_DP }, // Omanyte
|
||||
new EncounterStaticTyped { Gift = true, Species = 140, Level = 20, Location = 094, TypeEncounter = EncounterType.Starter_Fossil_Gift_DP }, // Kabuto
|
||||
new EncounterStaticTyped { Gift = true, Species = 142, Level = 20, Location = 094, TypeEncounter = EncounterType.Starter_Fossil_Gift_DP }, // Aerodactyl
|
||||
new EncounterStaticTyped { Gift = true, Species = 345, Level = 20, Location = 094, TypeEncounter = EncounterType.Starter_Fossil_Gift_DP }, // Lileep
|
||||
new EncounterStaticTyped { Gift = true, Species = 347, Level = 20, Location = 094, TypeEncounter = EncounterType.Starter_Fossil_Gift_DP }, // Anorith
|
||||
new EncounterStaticTyped { Gift = true, Species = 408, Level = 20, Location = 094, TypeEncounter = EncounterType.Starter_Fossil_Gift_DP }, // Cranidos
|
||||
new EncounterStaticTyped { Gift = true, Species = 410, Level = 20, Location = 094, TypeEncounter = EncounterType.Starter_Fossil_Gift_DP }, // Shieldon
|
||||
//Gift
|
||||
new EncounterStatic { Gift = true, Species = 133, Level = 05, Location = 010, Version = GameVersion.DP, TypeEncounter = EncounterType.Starter_Fossil_Gift_DP, }, //Eevee @ Hearthome City
|
||||
new EncounterStatic { Gift = true, Species = 133, Level = 20, Location = 010, Version = GameVersion.Pt, TypeEncounter = EncounterType.Starter_Fossil_Gift_Pt_DPTrio, }, //Eevee @ Hearthome City
|
||||
new EncounterStatic { Gift = true, Species = 137, Level = 25, Location = 012, Version = GameVersion.Pt, TypeEncounter = EncounterType.Starter_Fossil_Gift_Pt_DPTrio, }, //Porygon @ Veilstone City
|
||||
new EncounterStatic { Gift = true, Species = 175, Level = 01, EggLocation = 2011, TypeEncounter = EncounterType.None, Version = GameVersion.Pt,}, //Togepi Egg from Cynthia
|
||||
new EncounterStatic { Gift = true, Species = 440, Level = 01, EggLocation = 2009, TypeEncounter = EncounterType.None, Version = GameVersion.DP,}, //Happiny Egg from Traveling Man
|
||||
new EncounterStatic { Gift = true, Species = 447, Level = 01, EggLocation = 2010, TypeEncounter = EncounterType.None, }, //Riolu Egg from Riley
|
||||
new EncounterStaticTyped { Gift = true, Species = 133, Level = 05, Location = 010, Version = GameVersion.DP, TypeEncounter = EncounterType.Starter_Fossil_Gift_DP, }, //Eevee @ Hearthome City
|
||||
new EncounterStaticTyped { Gift = true, Species = 133, Level = 20, Location = 010, Version = GameVersion.Pt, TypeEncounter = EncounterType.Starter_Fossil_Gift_Pt_DPTrio, }, //Eevee @ Hearthome City
|
||||
new EncounterStaticTyped { Gift = true, Species = 137, Level = 25, Location = 012, Version = GameVersion.Pt, TypeEncounter = EncounterType.Starter_Fossil_Gift_Pt_DPTrio, }, //Porygon @ Veilstone City
|
||||
new EncounterStaticTyped { Gift = true, Species = 175, Level = 01, EggLocation = 2011, TypeEncounter = EncounterType.None, Version = GameVersion.Pt,}, //Togepi Egg from Cynthia
|
||||
new EncounterStaticTyped { Gift = true, Species = 440, Level = 01, EggLocation = 2009, TypeEncounter = EncounterType.None, Version = GameVersion.DP,}, //Happiny Egg from Traveling Man
|
||||
new EncounterStaticTyped { Gift = true, Species = 447, Level = 01, EggLocation = 2010, TypeEncounter = EncounterType.None, }, //Riolu Egg from Riley
|
||||
//Stationary
|
||||
new EncounterStatic { Species = 425, Level = 22, Location = 47, Version = GameVersion.DP, TypeEncounter = EncounterType.TallGrass, },// Drifloon @ Valley Windworks
|
||||
new EncounterStatic { Species = 425, Level = 15, Location = 47, Version = GameVersion.Pt, TypeEncounter = EncounterType.TallGrass, },// Drifloon @ Valley Windworks
|
||||
new EncounterStatic { Species = 479, Level = 15, Location = 70, Version = GameVersion.DP, TypeEncounter = EncounterType.Building_EnigmaStone, },// Rotom @ Old Chateau
|
||||
new EncounterStatic { Species = 479, Level = 20, Location = 70, Version = GameVersion.Pt, TypeEncounter = EncounterType.Building_EnigmaStone, },// Rotom @ Old Chateau
|
||||
new EncounterStatic { Species = 442, Level = 25, Location = 24, TypeEncounter = EncounterType.Building_EnigmaStone, }, // Spiritomb @ Route 209
|
||||
new EncounterStaticTyped { Species = 425, Level = 22, Location = 47, Version = GameVersion.DP, TypeEncounter = EncounterType.TallGrass, },// Drifloon @ Valley Windworks
|
||||
new EncounterStaticTyped { Species = 425, Level = 15, Location = 47, Version = GameVersion.Pt, TypeEncounter = EncounterType.TallGrass, },// Drifloon @ Valley Windworks
|
||||
new EncounterStaticTyped { Species = 479, Level = 15, Location = 70, Version = GameVersion.DP, TypeEncounter = EncounterType.Building_EnigmaStone, },// Rotom @ Old Chateau
|
||||
new EncounterStaticTyped { Species = 479, Level = 20, Location = 70, Version = GameVersion.Pt, TypeEncounter = EncounterType.Building_EnigmaStone, },// Rotom @ Old Chateau
|
||||
new EncounterStaticTyped { Species = 442, Level = 25, Location = 24, TypeEncounter = EncounterType.Building_EnigmaStone, }, // Spiritomb @ Route 209
|
||||
//Stationary Lengerdary
|
||||
new EncounterStatic { Species = 377, Level = 30, Location = 125, Version = GameVersion.Pt, TypeEncounter = EncounterType.Cave_HallOfOrigin, }, //Regirock @ Rock Peak Ruins
|
||||
new EncounterStatic { Species = 378, Level = 30, Location = 124, Version = GameVersion.Pt, TypeEncounter = EncounterType.Cave_HallOfOrigin, }, //Regice @ Iceberg Ruins
|
||||
new EncounterStatic { Species = 379, Level = 30, Location = 123, Version = GameVersion.Pt, TypeEncounter = EncounterType.Cave_HallOfOrigin, }, //Registeel @ Iron Ruins
|
||||
new EncounterStatic { Species = 480, Level = 50, Location = 089, TypeEncounter = EncounterType.Cave_HallOfOrigin, }, //Uxie @ Acuity Cavern
|
||||
new EncounterStatic { Species = 482, Level = 50, Location = 088, TypeEncounter = EncounterType.Cave_HallOfOrigin, }, //Azelf @ Valor Cavern
|
||||
new EncounterStatic { Species = 483, Level = 47, Location = 051, Version = GameVersion.D, TypeEncounter = EncounterType.DialgaPalkia, }, //Dialga @ Spear Pillar
|
||||
new EncounterStatic { Species = 483, Level = 70, Location = 051, Version = GameVersion.Pt,}, //Dialga @ Spear Pillar
|
||||
new EncounterStatic { Species = 484, Level = 47, Location = 051, Version = GameVersion.P, TypeEncounter = EncounterType.DialgaPalkia, }, //Palkia @ Spear Pillar
|
||||
new EncounterStatic { Species = 484, Level = 70, Location = 051, Version = GameVersion.Pt,}, //Palkia @ Spear Pillar
|
||||
new EncounterStatic { Species = 485, Level = 70, Location = 084, Version = GameVersion.DP, TypeEncounter = EncounterType.Cave_HallOfOrigin, }, //Heatran @ Stark Mountain
|
||||
new EncounterStatic { Species = 485, Level = 50, Location = 084, Version = GameVersion.Pt, TypeEncounter = EncounterType.Cave_HallOfOrigin, }, //Heatran @ Stark Mountain
|
||||
new EncounterStatic { Species = 486, Level = 70, Location = 064, Version = GameVersion.DP,}, //Regigigas @ Snowpoint Temple
|
||||
new EncounterStatic { Species = 486, Level = 01, Location = 064, Version = GameVersion.Pt,}, //Regigigas @ Snowpoint Temple
|
||||
new EncounterStatic { Species = 487, Level = 70, Location = 062, Version = GameVersion.DP, Form = 0, TypeEncounter = EncounterType.Cave_HallOfOrigin, }, //Giratina @ Turnback Cave
|
||||
new EncounterStatic { Species = 487, Level = 47, Location = 117, Version = GameVersion.Pt, Form = 1, TypeEncounter = EncounterType.Cave_HallOfOrigin, }, //Giratina @ Distortion World
|
||||
new EncounterStatic { Species = 487, Level = 47, Location = 062, Version = GameVersion.Pt, Form = 0, TypeEncounter = EncounterType.Cave_HallOfOrigin, }, //Giratina @ Turnback Cave
|
||||
new EncounterStaticTyped { Species = 377, Level = 30, Location = 125, Version = GameVersion.Pt, TypeEncounter = EncounterType.Cave_HallOfOrigin, }, //Regirock @ Rock Peak Ruins
|
||||
new EncounterStaticTyped { Species = 378, Level = 30, Location = 124, Version = GameVersion.Pt, TypeEncounter = EncounterType.Cave_HallOfOrigin, }, //Regice @ Iceberg Ruins
|
||||
new EncounterStaticTyped { Species = 379, Level = 30, Location = 123, Version = GameVersion.Pt, TypeEncounter = EncounterType.Cave_HallOfOrigin, }, //Registeel @ Iron Ruins
|
||||
new EncounterStaticTyped { Species = 480, Level = 50, Location = 089, TypeEncounter = EncounterType.Cave_HallOfOrigin, }, //Uxie @ Acuity Cavern
|
||||
new EncounterStaticTyped { Species = 482, Level = 50, Location = 088, TypeEncounter = EncounterType.Cave_HallOfOrigin, }, //Azelf @ Valor Cavern
|
||||
new EncounterStaticTyped { Species = 483, Level = 47, Location = 051, Version = GameVersion.D, TypeEncounter = EncounterType.DialgaPalkia, }, //Dialga @ Spear Pillar
|
||||
new EncounterStaticTyped { Species = 483, Level = 70, Location = 051, Version = GameVersion.Pt,}, //Dialga @ Spear Pillar
|
||||
new EncounterStaticTyped { Species = 484, Level = 47, Location = 051, Version = GameVersion.P, TypeEncounter = EncounterType.DialgaPalkia, }, //Palkia @ Spear Pillar
|
||||
new EncounterStaticTyped { Species = 484, Level = 70, Location = 051, Version = GameVersion.Pt,}, //Palkia @ Spear Pillar
|
||||
new EncounterStaticTyped { Species = 485, Level = 70, Location = 084, Version = GameVersion.DP, TypeEncounter = EncounterType.Cave_HallOfOrigin, }, //Heatran @ Stark Mountain
|
||||
new EncounterStaticTyped { Species = 485, Level = 50, Location = 084, Version = GameVersion.Pt, TypeEncounter = EncounterType.Cave_HallOfOrigin, }, //Heatran @ Stark Mountain
|
||||
new EncounterStaticTyped { Species = 486, Level = 70, Location = 064, Version = GameVersion.DP,}, //Regigigas @ Snowpoint Temple
|
||||
new EncounterStaticTyped { Species = 486, Level = 01, Location = 064, Version = GameVersion.Pt,}, //Regigigas @ Snowpoint Temple
|
||||
new EncounterStaticTyped { Species = 487, Level = 70, Location = 062, Version = GameVersion.DP, Form = 0, TypeEncounter = EncounterType.Cave_HallOfOrigin, }, //Giratina @ Turnback Cave
|
||||
new EncounterStaticTyped { Species = 487, Level = 47, Location = 117, Version = GameVersion.Pt, Form = 1, TypeEncounter = EncounterType.Cave_HallOfOrigin, }, //Giratina @ Distortion World
|
||||
new EncounterStaticTyped { Species = 487, Level = 47, Location = 062, Version = GameVersion.Pt, Form = 0, TypeEncounter = EncounterType.Cave_HallOfOrigin, }, //Giratina @ Turnback Cave
|
||||
//Event
|
||||
new EncounterStatic { Species = 491, Level = 40, Location = 079, Version = GameVersion.DP,}, //Darkrai @ Newmoon Island
|
||||
new EncounterStatic { Species = 491, Level = 50, Location = 079, Version = GameVersion.Pt,}, //Darkrai @ Newmoon Island
|
||||
new EncounterStatic { Species = 492, Form = 0, Level = 30, Location = 063, Fateful = true,}, //Shaymin @ Flower Paradise (Unreleased in Diamond and Pearl)
|
||||
new EncounterStatic { Species = 493, Form = 0, Level = 80, Location = 086,}, //Arceus @ Hall of Origin (Unreleased)
|
||||
new EncounterStaticTyped { Species = 491, Level = 40, Location = 079, Version = GameVersion.DP,}, //Darkrai @ Newmoon Island
|
||||
new EncounterStaticTyped { Species = 491, Level = 50, Location = 079, Version = GameVersion.Pt,}, //Darkrai @ Newmoon Island
|
||||
new EncounterStaticTyped { Species = 492, Form = 0, Level = 30, Location = 063, Fateful = true,}, //Shaymin @ Flower Paradise (Unreleased in Diamond and Pearl)
|
||||
new EncounterStaticTyped { Species = 493, Form = 0, Level = 80, Location = 086,}, //Arceus @ Hall of Origin (Unreleased)
|
||||
};
|
||||
internal static readonly EncounterStatic[] Encounter_DPPt = Encounter_DPPt_Roam_Grass.SelectMany(e => e.Clone(Roaming_MetLocation_DPPt_Grass)).Concat(Encounter_DPPt_Roam_Surf.SelectMany(e => e.Clone(Roaming_MetLocation_DPPt_Surf))).Concat(Encounter_DPPt_Regular).ToArray();
|
||||
internal static readonly EncounterStatic[] Encounter_DPPt = Encounter_DPPt_Roam_Grass.SelectMany(e => e.Clone(Roaming_MetLocation_DPPt_Grass)).Concat(
|
||||
Encounter_DPPt_Roam_Surf.SelectMany(e => e.Clone(Roaming_MetLocation_DPPt_Surf))).Concat(
|
||||
Encounter_DPPt_Regular).ToArray();
|
||||
|
||||
// Grass 29-39, 42-46, 47, 48
|
||||
// Surf 30-32 34-35, 40-45, 47
|
||||
|
@ -520,15 +522,15 @@ namespace PKHeX.Core
|
|||
// Won't go to routes 40,41,47,48
|
||||
178,179,180,182,183,190,191,192,193
|
||||
};
|
||||
internal static readonly EncounterStatic[] Encounter_HGSS_JohtoRoam_Grass =
|
||||
internal static readonly EncounterStaticTyped[] Encounter_HGSS_JohtoRoam_Grass =
|
||||
{
|
||||
new EncounterStatic { Species = 243, Level = 40, Roaming = true, TypeEncounter = EncounterType.TallGrass, }, // Raikou
|
||||
new EncounterStatic { Species = 244, Level = 40, Roaming = true, TypeEncounter = EncounterType.TallGrass, }, // Entei
|
||||
new EncounterStaticTyped { Species = 243, Level = 40, Roaming = true, TypeEncounter = EncounterType.TallGrass, }, // Raikou
|
||||
new EncounterStaticTyped { Species = 244, Level = 40, Roaming = true, TypeEncounter = EncounterType.TallGrass, }, // Entei
|
||||
};
|
||||
internal static readonly EncounterStatic[] Encounter_HGSS_JohtoRoam_Surf =
|
||||
internal static readonly EncounterStaticTyped[] Encounter_HGSS_JohtoRoam_Surf =
|
||||
{
|
||||
new EncounterStatic { Species = 243, Level = 40, Roaming = true, TypeEncounter = EncounterType.Surfing_Fishing, }, // Raikou
|
||||
new EncounterStatic { Species = 244, Level = 40, Roaming = true, TypeEncounter = EncounterType.Surfing_Fishing, }, // Entei
|
||||
new EncounterStaticTyped { Species = 243, Level = 40, Roaming = true, TypeEncounter = EncounterType.Surfing_Fishing, }, // Raikou
|
||||
new EncounterStaticTyped { Species = 244, Level = 40, Roaming = true, TypeEncounter = EncounterType.Surfing_Fishing, }, // Entei
|
||||
};
|
||||
internal static readonly int[] Roaming_MetLocation_HGSS_Kanto_Grass =
|
||||
{
|
||||
|
@ -545,85 +547,85 @@ namespace PKHeX.Core
|
|||
152,154,157,158,160,161,167,168,169,170,
|
||||
172,174,176,
|
||||
};
|
||||
internal static readonly EncounterStatic[] Encounter_HGSS_KantoRoam_Grass =
|
||||
internal static readonly EncounterStaticTyped[] Encounter_HGSS_KantoRoam_Grass =
|
||||
{
|
||||
new EncounterStatic { Species = 380, Level = 35, Version = GameVersion.HG, Roaming = true, TypeEncounter = EncounterType.TallGrass, }, //Latias
|
||||
new EncounterStatic { Species = 381, Level = 35, Version = GameVersion.SS, Roaming = true, TypeEncounter = EncounterType.TallGrass, }, //Latios
|
||||
new EncounterStaticTyped { Species = 380, Level = 35, Version = GameVersion.HG, Roaming = true, TypeEncounter = EncounterType.TallGrass, }, //Latias
|
||||
new EncounterStaticTyped { Species = 381, Level = 35, Version = GameVersion.SS, Roaming = true, TypeEncounter = EncounterType.TallGrass, }, //Latios
|
||||
};
|
||||
internal static readonly EncounterStatic[] Encounter_HGSS_KantoRoam_Surf =
|
||||
internal static readonly EncounterStaticTyped[] Encounter_HGSS_KantoRoam_Surf =
|
||||
{
|
||||
new EncounterStatic { Species = 380, Level = 35, Version = GameVersion.HG, Roaming = true, TypeEncounter = EncounterType.Surfing_Fishing, }, //Latias
|
||||
new EncounterStatic { Species = 381, Level = 35, Version = GameVersion.SS, Roaming = true, TypeEncounter = EncounterType.Surfing_Fishing, }, //Latios
|
||||
new EncounterStaticTyped { Species = 380, Level = 35, Version = GameVersion.HG, Roaming = true, TypeEncounter = EncounterType.Surfing_Fishing, }, //Latias
|
||||
new EncounterStaticTyped { Species = 381, Level = 35, Version = GameVersion.SS, Roaming = true, TypeEncounter = EncounterType.Surfing_Fishing, }, //Latios
|
||||
};
|
||||
internal static readonly EncounterStatic[] Encounter_HGSS_Regular =
|
||||
internal static readonly EncounterStaticTyped[] Encounter_HGSS_Regular =
|
||||
{
|
||||
//Starters
|
||||
new EncounterStatic { Gift = true, Species = 001, Level = 05, Location = 138, TypeEncounter = EncounterType.Starter_Fossil_Gift_DP, }, // Bulbasaur @ Pallet Town
|
||||
new EncounterStatic { Gift = true, Species = 004, Level = 05, Location = 138, TypeEncounter = EncounterType.Starter_Fossil_Gift_DP, }, // Charmander
|
||||
new EncounterStatic { Gift = true, Species = 007, Level = 05, Location = 138, TypeEncounter = EncounterType.Starter_Fossil_Gift_DP, }, // Squirtle
|
||||
new EncounterStatic { Gift = true, Species = 152, Level = 05, Location = 126, TypeEncounter = EncounterType.Starter_Fossil_Gift_DP, }, // Chikorita @ New Bark Town
|
||||
new EncounterStatic { Gift = true, Species = 155, Level = 05, Location = 126, TypeEncounter = EncounterType.Starter_Fossil_Gift_DP, }, // Cyndaquil
|
||||
new EncounterStatic { Gift = true, Species = 158, Level = 05, Location = 126, TypeEncounter = EncounterType.Starter_Fossil_Gift_DP, }, // Totodile
|
||||
new EncounterStatic { Gift = true, Species = 252, Level = 05, Location = 148, TypeEncounter = EncounterType.Starter_Fossil_Gift_DP, }, // Treecko @ Saffron City
|
||||
new EncounterStatic { Gift = true, Species = 255, Level = 05, Location = 148, TypeEncounter = EncounterType.Starter_Fossil_Gift_DP, }, // Torchic
|
||||
new EncounterStatic { Gift = true, Species = 258, Level = 05, Location = 148, TypeEncounter = EncounterType.Starter_Fossil_Gift_DP, }, // Mudkip
|
||||
new EncounterStaticTyped { Gift = true, Species = 001, Level = 05, Location = 138, TypeEncounter = EncounterType.Starter_Fossil_Gift_DP, }, // Bulbasaur @ Pallet Town
|
||||
new EncounterStaticTyped { Gift = true, Species = 004, Level = 05, Location = 138, TypeEncounter = EncounterType.Starter_Fossil_Gift_DP, }, // Charmander
|
||||
new EncounterStaticTyped { Gift = true, Species = 007, Level = 05, Location = 138, TypeEncounter = EncounterType.Starter_Fossil_Gift_DP, }, // Squirtle
|
||||
new EncounterStaticTyped { Gift = true, Species = 152, Level = 05, Location = 126, TypeEncounter = EncounterType.Starter_Fossil_Gift_DP, }, // Chikorita @ New Bark Town
|
||||
new EncounterStaticTyped { Gift = true, Species = 155, Level = 05, Location = 126, TypeEncounter = EncounterType.Starter_Fossil_Gift_DP, }, // Cyndaquil
|
||||
new EncounterStaticTyped { Gift = true, Species = 158, Level = 05, Location = 126, TypeEncounter = EncounterType.Starter_Fossil_Gift_DP, }, // Totodile
|
||||
new EncounterStaticTyped { Gift = true, Species = 252, Level = 05, Location = 148, TypeEncounter = EncounterType.Starter_Fossil_Gift_DP, }, // Treecko @ Saffron City
|
||||
new EncounterStaticTyped { Gift = true, Species = 255, Level = 05, Location = 148, TypeEncounter = EncounterType.Starter_Fossil_Gift_DP, }, // Torchic
|
||||
new EncounterStaticTyped { Gift = true, Species = 258, Level = 05, Location = 148, TypeEncounter = EncounterType.Starter_Fossil_Gift_DP, }, // Mudkip
|
||||
//Fossil @ Pewter City
|
||||
new EncounterStatic { Gift = true, Species = 138, Level = 20, Location = 140, TypeEncounter = EncounterType.Starter_Fossil_Gift_DP, }, // Omanyte
|
||||
new EncounterStatic { Gift = true, Species = 140, Level = 20, Location = 140, TypeEncounter = EncounterType.Starter_Fossil_Gift_DP, }, // Kabuto
|
||||
new EncounterStatic { Gift = true, Species = 142, Level = 20, Location = 140, TypeEncounter = EncounterType.Starter_Fossil_Gift_DP, }, // Aerodactyl
|
||||
new EncounterStatic { Gift = true, Species = 345, Level = 20, Location = 140, TypeEncounter = EncounterType.Starter_Fossil_Gift_DP, }, // Lileep
|
||||
new EncounterStatic { Gift = true, Species = 347, Level = 20, Location = 140, TypeEncounter = EncounterType.Starter_Fossil_Gift_DP, }, // Anorith
|
||||
new EncounterStatic { Gift = true, Species = 408, Level = 20, Location = 140, TypeEncounter = EncounterType.Starter_Fossil_Gift_DP, }, // Cranidos
|
||||
new EncounterStatic { Gift = true, Species = 410, Level = 20, Location = 140, TypeEncounter = EncounterType.Starter_Fossil_Gift_DP, }, // Shieldon
|
||||
new EncounterStaticTyped { Gift = true, Species = 138, Level = 20, Location = 140, TypeEncounter = EncounterType.Starter_Fossil_Gift_DP, }, // Omanyte
|
||||
new EncounterStaticTyped { Gift = true, Species = 140, Level = 20, Location = 140, TypeEncounter = EncounterType.Starter_Fossil_Gift_DP, }, // Kabuto
|
||||
new EncounterStaticTyped { Gift = true, Species = 142, Level = 20, Location = 140, TypeEncounter = EncounterType.Starter_Fossil_Gift_DP, }, // Aerodactyl
|
||||
new EncounterStaticTyped { Gift = true, Species = 345, Level = 20, Location = 140, TypeEncounter = EncounterType.Starter_Fossil_Gift_DP, }, // Lileep
|
||||
new EncounterStaticTyped { Gift = true, Species = 347, Level = 20, Location = 140, TypeEncounter = EncounterType.Starter_Fossil_Gift_DP, }, // Anorith
|
||||
new EncounterStaticTyped { Gift = true, Species = 408, Level = 20, Location = 140, TypeEncounter = EncounterType.Starter_Fossil_Gift_DP, }, // Cranidos
|
||||
new EncounterStaticTyped { Gift = true, Species = 410, Level = 20, Location = 140, TypeEncounter = EncounterType.Starter_Fossil_Gift_DP, }, // Shieldon
|
||||
//Gift
|
||||
new EncounterStatic { Gift = true, Species = 133, Level = 05, Location = 131, TypeEncounter = EncounterType.Starter_Fossil_Gift_Pt_DPTrio, }, // Eevee @ Goldenrod City
|
||||
new EncounterStatic { Gift = true, Species = 147, Level = 15, Location = 222, Moves = new[] {245}, }, // Dratini @ Dragon's Den (ExtremeSpeed)
|
||||
new EncounterStatic { Gift = true, Species = 236, Level = 10, Location = 216, TypeEncounter = EncounterType.Starter_Fossil_Gift_DP, }, // Tyrogue @ Mt. Mortar
|
||||
new EncounterStatic { Gift = true, Species = 175, Level = 01, EggLocation = 2013, TypeEncounter = EncounterType.None, Moves = new[] {326},}, // Togepi Egg from Mr. Pokemon (Extrasensory as Egg move)
|
||||
new EncounterStatic { Gift = true, Species = 179, Level = 01, EggLocation = 2014, TypeEncounter = EncounterType.None, }, // Mareep Egg from Primo
|
||||
new EncounterStatic { Gift = true, Species = 194, Level = 01, EggLocation = 2014, TypeEncounter = EncounterType.None, }, // Wooper Egg from Primo
|
||||
new EncounterStatic { Gift = true, Species = 218, Level = 01, EggLocation = 2014, TypeEncounter = EncounterType.None, }, // Slugma Egg from Primo
|
||||
new EncounterStaticTyped { Gift = true, Species = 133, Level = 05, Location = 131, TypeEncounter = EncounterType.Starter_Fossil_Gift_Pt_DPTrio }, // Eevee @ Goldenrod City
|
||||
new EncounterStaticTyped { Gift = true, Species = 147, Level = 15, Location = 222, Moves = new[] {245}, }, // Dratini @ Dragon's Den (ExtremeSpeed)
|
||||
new EncounterStaticTyped { Gift = true, Species = 236, Level = 10, Location = 216, TypeEncounter = EncounterType.Starter_Fossil_Gift_DP, }, // Tyrogue @ Mt. Mortar
|
||||
new EncounterStaticTyped { Gift = true, Species = 175, Level = 01, EggLocation = 2013, TypeEncounter = EncounterType.None, Moves = new[] {326} }, // Togepi Egg from Mr. Pokemon (Extrasensory as Egg move)
|
||||
new EncounterStaticTyped { Gift = true, Species = 179, Level = 01, EggLocation = 2014, TypeEncounter = EncounterType.None, }, // Mareep Egg from Primo
|
||||
new EncounterStaticTyped { Gift = true, Species = 194, Level = 01, EggLocation = 2014, TypeEncounter = EncounterType.None, }, // Wooper Egg from Primo
|
||||
new EncounterStaticTyped { Gift = true, Species = 218, Level = 01, EggLocation = 2014, TypeEncounter = EncounterType.None, }, // Slugma Egg from Primo
|
||||
// Celadon City Game Corner
|
||||
new EncounterStatic { Gift = true, Species = 122, Level = 15, Location = 144, TypeEncounter = EncounterType.Starter_Fossil_Gift_Pt_DPTrio, }, // Mr. Mime
|
||||
new EncounterStatic { Gift = true, Species = 133, Level = 15, Location = 144, TypeEncounter = EncounterType.Starter_Fossil_Gift_Pt_DPTrio }, // Eevee
|
||||
new EncounterStatic { Gift = true, Species = 137, Level = 15, Location = 144, TypeEncounter = EncounterType.Starter_Fossil_Gift_Pt_DPTrio }, // Porygon
|
||||
new EncounterStaticTyped { Gift = true, Species = 122, Level = 15, Location = 144, TypeEncounter = EncounterType.Starter_Fossil_Gift_Pt_DPTrio, }, // Mr. Mime
|
||||
new EncounterStaticTyped { Gift = true, Species = 133, Level = 15, Location = 144, TypeEncounter = EncounterType.Starter_Fossil_Gift_Pt_DPTrio }, // Eevee
|
||||
new EncounterStaticTyped { Gift = true, Species = 137, Level = 15, Location = 144, TypeEncounter = EncounterType.Starter_Fossil_Gift_Pt_DPTrio }, // Porygon
|
||||
// Goldenrod City Game Corner
|
||||
new EncounterStatic { Gift = true, Species = 063, Level = 15, Location = 131, TypeEncounter = EncounterType.Starter_Fossil_Gift_Pt_DPTrio }, // Abra
|
||||
new EncounterStatic { Gift = true, Species = 023, Level = 15, Location = 131, Version = GameVersion.HG, TypeEncounter = EncounterType.Starter_Fossil_Gift_Pt_DPTrio }, // Ekans
|
||||
new EncounterStatic { Gift = true, Species = 027, Level = 15, Location = 131, Version = GameVersion.SS, TypeEncounter = EncounterType.Starter_Fossil_Gift_Pt_DPTrio }, // Sandshrew
|
||||
new EncounterStatic { Gift = true, Species = 147, Level = 15, Location = 131, TypeEncounter = EncounterType.Starter_Fossil_Gift_Pt_DPTrio }, // Dratini
|
||||
new EncounterStaticTyped { Gift = true, Species = 063, Level = 15, Location = 131, TypeEncounter = EncounterType.Starter_Fossil_Gift_Pt_DPTrio }, // Abra
|
||||
new EncounterStaticTyped { Gift = true, Species = 023, Level = 15, Location = 131, Version = GameVersion.HG, TypeEncounter = EncounterType.Starter_Fossil_Gift_Pt_DPTrio }, // Ekans
|
||||
new EncounterStaticTyped { Gift = true, Species = 027, Level = 15, Location = 131, Version = GameVersion.SS, TypeEncounter = EncounterType.Starter_Fossil_Gift_Pt_DPTrio }, // Sandshrew
|
||||
new EncounterStaticTyped { Gift = true, Species = 147, Level = 15, Location = 131, TypeEncounter = EncounterType.Starter_Fossil_Gift_Pt_DPTrio }, // Dratini
|
||||
// Team Rocket HQ Trap Floor
|
||||
new EncounterStatic { Species = 100, Level = 23, Location = 213, TypeEncounter = EncounterType.Building_EnigmaStone, }, // Voltorb
|
||||
new EncounterStatic { Species = 074, Level = 21, Location = 213, TypeEncounter = EncounterType.Building_EnigmaStone, }, // Geodude
|
||||
new EncounterStatic { Species = 109, Level = 21, Location = 213, TypeEncounter = EncounterType.Building_EnigmaStone, }, // Koffing
|
||||
new EncounterStaticTyped { Species = 100, Level = 23, Location = 213, TypeEncounter = EncounterType.Building_EnigmaStone, }, // Voltorb
|
||||
new EncounterStaticTyped { Species = 074, Level = 21, Location = 213, TypeEncounter = EncounterType.Building_EnigmaStone, }, // Geodude
|
||||
new EncounterStaticTyped { Species = 109, Level = 21, Location = 213, TypeEncounter = EncounterType.Building_EnigmaStone, }, // Koffing
|
||||
|
||||
//Stationary
|
||||
new EncounterStatic { Species = 130, Level = 30, Location = 135, TypeEncounter = EncounterType.Surfing_Fishing, Shiny = true }, //Gyarados @ Lake of Rage
|
||||
new EncounterStatic { Species = 131, Level = 20, Location = 210, TypeEncounter = EncounterType.Cave_HallOfOrigin, }, //Lapras @ Union Cave Friday Only
|
||||
new EncounterStatic { Species = 101, Level = 23, Location = 213, TypeEncounter = EncounterType.Building_EnigmaStone, }, //Electrode @ Team Rocket HQ
|
||||
new EncounterStatic { Species = 143, Level = 50, Location = 159, }, //Snorlax @ Route 11
|
||||
new EncounterStatic { Species = 143, Level = 50, Location = 160, }, //Snorlax @ Route 12
|
||||
new EncounterStatic { Species = 185, Level = 20, Location = 184, TypeEncounter = EncounterType.None, }, //Sudowoodo @ Route 36
|
||||
new EncounterStatic { Species = 172, Level = 30, Location = 214, Gender = 1, Form = 1, Moves = new[]{344,270,207,220} }, //Spiky-eared Pichu @ Ilex forest
|
||||
new EncounterStaticTyped { Species = 130, Level = 30, Location = 135, TypeEncounter = EncounterType.Surfing_Fishing, Shiny = true }, //Gyarados @ Lake of Rage
|
||||
new EncounterStaticTyped { Species = 131, Level = 20, Location = 210, TypeEncounter = EncounterType.Cave_HallOfOrigin, }, //Lapras @ Union Cave Friday Only
|
||||
new EncounterStaticTyped { Species = 101, Level = 23, Location = 213, TypeEncounter = EncounterType.Building_EnigmaStone, }, //Electrode @ Team Rocket HQ
|
||||
new EncounterStaticTyped { Species = 143, Level = 50, Location = 159, }, //Snorlax @ Route 11
|
||||
new EncounterStaticTyped { Species = 143, Level = 50, Location = 160, }, //Snorlax @ Route 12
|
||||
new EncounterStaticTyped { Species = 185, Level = 20, Location = 184, TypeEncounter = EncounterType.None, }, //Sudowoodo @ Route 36
|
||||
new EncounterStaticTyped { Species = 172, Level = 30, Location = 214, Gender = 1, Form = 1, Moves = new[]{344,270,207,220} }, //Spiky-eared Pichu @ Ilex forest
|
||||
//Stationary Lengerdary
|
||||
new EncounterStatic { Species = 144, Level = 50, Location = 203, }, //Articuno @ Seafoam Islands
|
||||
new EncounterStatic { Species = 145, Level = 50, Location = 158, }, //Zapdos @ Route 10
|
||||
new EncounterStatic { Species = 146, Level = 50, Location = 219, }, //Moltres @ Mt. Silver Cave
|
||||
new EncounterStatic { Species = 150, Level = 70, Location = 199, }, //Mewtwo @ Cerulean Cave
|
||||
new EncounterStatic { Species = 245, Level = 40, Location = 173, }, //Suicune @ Route 25
|
||||
new EncounterStatic { Species = 245, Level = 40, Location = 206, }, //Suicune @ Burned Tower
|
||||
new EncounterStatic { Species = 249, Level = 45, Location = 218, Version = GameVersion.SS, }, //Lugia @ Whirl Islands
|
||||
new EncounterStatic { Species = 249, Level = 70, Location = 218, Version = GameVersion.HG, }, //Lugia @ Whirl Islands
|
||||
new EncounterStatic { Species = 250, Level = 45, Location = 205, Version = GameVersion.HG, TypeEncounter = EncounterType.Building_EnigmaStone, }, //Ho-Oh @ Bell Tower
|
||||
new EncounterStatic { Species = 250, Level = 70, Location = 205, Version = GameVersion.SS, TypeEncounter = EncounterType.Building_EnigmaStone, }, //Ho-Oh @ Bell Tower
|
||||
new EncounterStatic { Species = 380, Level = 40, Location = 140, Version = GameVersion.SS, }, //Latias @ Pewter City
|
||||
new EncounterStatic { Species = 381, Level = 40, Location = 140, Version = GameVersion.HG, }, //Latios @ Pewter City
|
||||
new EncounterStatic { Species = 382, Level = 50, Location = 232, Version = GameVersion.HG, }, //Kyogre @ Embedded Tower
|
||||
new EncounterStatic { Species = 383, Level = 50, Location = 232, Version = GameVersion.SS, }, //Groudon @ Embedded Tower
|
||||
new EncounterStatic { Species = 384, Level = 50, Location = 232, }, //Rayquaza @ Embedded Tower
|
||||
new EncounterStatic { Species = 483, Level = 01, Location = 231, Gift = true }, //Dialga @ Sinjoh Ruins
|
||||
new EncounterStatic { Species = 484, Level = 01, Location = 231, Gift = true }, //Palkia @ Sinjoh Ruins
|
||||
new EncounterStatic { Species = 487, Level = 01, Location = 231, Gift = true, Form = 1}, //Giratina @ Sinjoh Ruins
|
||||
new EncounterStaticTyped { Species = 144, Level = 50, Location = 203, }, //Articuno @ Seafoam Islands
|
||||
new EncounterStaticTyped { Species = 145, Level = 50, Location = 158, }, //Zapdos @ Route 10
|
||||
new EncounterStaticTyped { Species = 146, Level = 50, Location = 219, }, //Moltres @ Mt. Silver Cave
|
||||
new EncounterStaticTyped { Species = 150, Level = 70, Location = 199, }, //Mewtwo @ Cerulean Cave
|
||||
new EncounterStaticTyped { Species = 245, Level = 40, Location = 173, }, //Suicune @ Route 25
|
||||
new EncounterStaticTyped { Species = 245, Level = 40, Location = 206, }, //Suicune @ Burned Tower
|
||||
new EncounterStaticTyped { Species = 249, Level = 45, Location = 218, Version = GameVersion.SS, }, //Lugia @ Whirl Islands
|
||||
new EncounterStaticTyped { Species = 249, Level = 70, Location = 218, Version = GameVersion.HG, }, //Lugia @ Whirl Islands
|
||||
new EncounterStaticTyped { Species = 250, Level = 45, Location = 205, Version = GameVersion.HG, TypeEncounter = EncounterType.Building_EnigmaStone, }, //Ho-Oh @ Bell Tower
|
||||
new EncounterStaticTyped { Species = 250, Level = 70, Location = 205, Version = GameVersion.SS, TypeEncounter = EncounterType.Building_EnigmaStone, }, //Ho-Oh @ Bell Tower
|
||||
new EncounterStaticTyped { Species = 380, Level = 40, Location = 140, Version = GameVersion.SS, }, //Latias @ Pewter City
|
||||
new EncounterStaticTyped { Species = 381, Level = 40, Location = 140, Version = GameVersion.HG, }, //Latios @ Pewter City
|
||||
new EncounterStaticTyped { Species = 382, Level = 50, Location = 232, Version = GameVersion.HG, }, //Kyogre @ Embedded Tower
|
||||
new EncounterStaticTyped { Species = 383, Level = 50, Location = 232, Version = GameVersion.SS, }, //Groudon @ Embedded Tower
|
||||
new EncounterStaticTyped { Species = 384, Level = 50, Location = 232, }, //Rayquaza @ Embedded Tower
|
||||
new EncounterStaticTyped { Species = 483, Level = 01, Location = 231, Gift = true }, //Dialga @ Sinjoh Ruins
|
||||
new EncounterStaticTyped { Species = 484, Level = 01, Location = 231, Gift = true }, //Palkia @ Sinjoh Ruins
|
||||
new EncounterStaticTyped { Species = 487, Level = 01, Location = 231, Gift = true, Form = 1}, //Giratina @ Sinjoh Ruins
|
||||
};
|
||||
internal static readonly EncounterStatic[] Encounter_HGSS = Encounter_HGSS_KantoRoam_Grass.SelectMany(e => e.Clone(Roaming_MetLocation_HGSS_Kanto_Grass)).Concat(
|
||||
Encounter_HGSS_KantoRoam_Surf.SelectMany(e => e.Clone(Roaming_MetLocation_HGSS_Kanto_Surf))).Concat(
|
||||
|
|
Loading…
Reference in a new issue