mirror of
https://github.com/kwsch/PKHeX.git
synced 2026-05-12 06:37:20 -05: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
|
|
@ -14,9 +14,9 @@ public partial class LegalityAnalysis
|
|||
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 @@ private void parsePK1(PKM pk)
|
|||
|
||||
updateEncounterChain();
|
||||
updateMoveLegality();
|
||||
updateEncounterInfo();
|
||||
updateTypeInfo();
|
||||
verifyNickname();
|
||||
verifyDVs();
|
||||
verifyG1OT();
|
||||
|
|
@ -123,7 +123,7 @@ private void parsePK3(PKM pk)
|
|||
|
||||
updateEncounterChain();
|
||||
updateMoveLegality();
|
||||
updateEncounterInfo();
|
||||
updateTypeInfo();
|
||||
updateChecks();
|
||||
}
|
||||
private void parsePK4(PKM pk)
|
||||
|
|
@ -135,7 +135,7 @@ private void parsePK4(PKM pk)
|
|||
verifyPreRelearn();
|
||||
updateEncounterChain();
|
||||
updateMoveLegality();
|
||||
updateEncounterInfo();
|
||||
updateTypeInfo();
|
||||
updateChecks();
|
||||
}
|
||||
private void parsePK5(PKM pk)
|
||||
|
|
@ -147,7 +147,7 @@ private void parsePK5(PKM pk)
|
|||
verifyPreRelearn();
|
||||
updateEncounterChain();
|
||||
updateMoveLegality();
|
||||
updateEncounterInfo();
|
||||
updateTypeInfo();
|
||||
updateChecks();
|
||||
}
|
||||
private void parsePK6(PKM pk)
|
||||
|
|
@ -159,7 +159,7 @@ private void parsePK6(PKM pk)
|
|||
updateRelearnLegality();
|
||||
updateEncounterChain();
|
||||
updateMoveLegality();
|
||||
updateEncounterInfo();
|
||||
updateTypeInfo();
|
||||
updateChecks();
|
||||
}
|
||||
private void parsePK7(PKM pk)
|
||||
|
|
@ -171,7 +171,7 @@ private void parsePK7(PKM pk)
|
|||
updateRelearnLegality();
|
||||
updateEncounterChain();
|
||||
updateMoveLegality();
|
||||
updateEncounterInfo();
|
||||
updateTypeInfo();
|
||||
updateChecks();
|
||||
}
|
||||
|
||||
|
|
@ -197,14 +197,14 @@ private void updateEncounterChain()
|
|||
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 @@ private void verifyECPID()
|
|||
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 @@ private void verifyECPIDWurmple()
|
|||
}
|
||||
|
||||
// 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 @@ private void verifyNickname()
|
|||
return;
|
||||
}
|
||||
|
||||
if (EncounterType == typeof(EncounterTrade))
|
||||
if (Type == typeof(EncounterTrade))
|
||||
{
|
||||
verifyNicknameTrade();
|
||||
return;
|
||||
|
|
@ -466,7 +466,7 @@ private void verifyDVs()
|
|||
#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 @@ private CheckResult verifyEncounterStatic()
|
|||
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 @@ private CheckResult verifyEncounterVC()
|
|||
}
|
||||
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 @@ private CheckResult verifyEncounterG4Transfer()
|
|||
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 @@ private CheckResult verifyEncounterG4Transfer()
|
|||
}
|
||||
}
|
||||
|
||||
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 @@ private void verifyAbility()
|
|||
}
|
||||
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 @@ private void verifyAbility5(int[] abilities)
|
|||
}
|
||||
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 @@ private void verifyAbility6(int[] abilities)
|
|||
}
|
||||
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 @@ private void verifyBall()
|
|||
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 @@ private void verifyBall()
|
|||
}
|
||||
}
|
||||
|
||||
if (EncounterType == typeof(EncounterStatic))
|
||||
if (Type == typeof(EncounterStatic))
|
||||
{
|
||||
EncounterStatic enc = EncounterMatch as EncounterStatic;
|
||||
if (enc?.Gift ?? false)
|
||||
|
|
@ -1513,7 +1510,7 @@ private void verifyBall()
|
|||
verifyBallEquals(Legal.getWildBalls(pkm));
|
||||
return;
|
||||
}
|
||||
if (EncounterType == typeof (EncounterSlot[]))
|
||||
if (Type == typeof (EncounterSlot[]))
|
||||
{
|
||||
EncounterSlot[] enc = EncounterMatch as EncounterSlot[];
|
||||
|
||||
|
|
@ -1927,7 +1924,7 @@ private CheckResult verifyHistory()
|
|||
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 @@ private void verifyOTMemory()
|
|||
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 @@ private void verifyForm()
|
|||
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 @@ private void verifyMisc()
|
|||
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 @@ private CheckResult[] verifyRelearnMysteryGift()
|
|||
}
|
||||
|
||||
// No gift match, thus no relearn moves
|
||||
EncounterMatch = EncounterType = null;
|
||||
EncounterMatch = Type = null;
|
||||
return verifyRelearnNone();
|
||||
}
|
||||
private CheckResult[] verifyRelearnDexNav()
|
||||
|
|
|
|||
|
|
@ -1316,17 +1316,20 @@ internal static List<EncounterStatic> getValidStaticEncounter(PKM pkm, GameVersi
|
|||
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 class EncounterStatic : IEncounterable, IMoveset, IGeneration
|
|||
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 @@ public EncounterStatic[] Clone(int[] locations)
|
|||
return Encounters;
|
||||
}
|
||||
|
||||
public EncounterStatic Clone(int location)
|
||||
protected virtual EncounterStatic Clone(int location)
|
||||
{
|
||||
return new EncounterStatic
|
||||
{
|
||||
|
|
@ -70,7 +69,6 @@ public EncounterStatic Clone(int location)
|
|||
NSparkle = NSparkle,
|
||||
Roaming = Roaming,
|
||||
EggCycles = EggCycles,
|
||||
TypeEncounter = TypeEncounter
|
||||
};
|
||||
}
|
||||
|
||||
|
|
@ -110,7 +108,6 @@ public EncounterStatic DreamRadarClone(int level)
|
|||
NSparkle = NSparkle,
|
||||
Roaming = Roaming,
|
||||
EggCycles = EggCycles,
|
||||
TypeEncounter = TypeEncounter
|
||||
};
|
||||
}
|
||||
|
||||
|
|
@ -125,4 +122,41 @@ public string Name
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
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 @@ public static partial class Legal
|
|||
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 @@ public static partial class Legal
|
|||
// 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 @@ public static partial class Legal
|
|||
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 New Issue
Block a user