Esempio n. 1
0
        static Encounters6()
        {
            MarkEncounterTradeStrings(TradeGift_XY, TradeXY);
            MarkEncounterTradeStrings(TradeGift_AO, TradeAO);

            Encounter_XY.SetVersion(GameVersion.XY);
            Encounter_AO.SetVersion(GameVersion.ORAS);
            TradeGift_XY.SetVersion(GameVersion.XY);
            TradeGift_AO.SetVersion(GameVersion.ORAS);
        }
Esempio n. 2
0
        static Encounters6()
        {
            StaticX = GetStaticEncounters(Encounter_XY, GameVersion.X);
            StaticY = GetStaticEncounters(Encounter_XY, GameVersion.Y);
            StaticA = GetStaticEncounters(Encounter_AO, GameVersion.AS);
            StaticO = GetStaticEncounters(Encounter_AO, GameVersion.OR);

            var XSlots = GetEncounterTables(GameVersion.X);
            var YSlots = GetEncounterTables(GameVersion.Y);

            MarkG6XYSlots(ref XSlots);
            MarkG6XYSlots(ref YSlots);
            MarkEncounterAreaArray(SlotsXYAlt);
            SlotsX = AddExtraTableSlots(XSlots, SlotsXYAlt);
            SlotsY = AddExtraTableSlots(YSlots, SlotsXYAlt);

            SlotsA = GetEncounterTables(GameVersion.AS);
            SlotsO = GetEncounterTables(GameVersion.OR);
            MarkG6AOSlots(ref SlotsA);
            MarkG6AOSlots(ref SlotsO);

            MarkEncountersGeneration(6, SlotsX, SlotsY, SlotsA, SlotsO);
            MarkEncountersGeneration(6, StaticX, StaticY, StaticA, StaticO, TradeGift_XY, TradeGift_AO);

            FriendSafari = GetFriendSafariArea();
            MarkEncounterTradeStrings(TradeGift_XY, TradeXY);
            MarkEncounterTradeStrings(TradeGift_AO, TradeAO);

            SlotsXYAlt.SetVersion(GameVersion.XY);
            FriendSafari.SelectMany(z => z).SetVersion(GameVersion.XY);
            SlotsX.SetVersion(GameVersion.X);
            SlotsY.SetVersion(GameVersion.Y);
            SlotsA.SetVersion(GameVersion.AS);
            SlotsO.SetVersion(GameVersion.OR);
            Encounter_XY.SetVersion(GameVersion.XY);
            Encounter_AO.SetVersion(GameVersion.ORAS);
            TradeGift_XY.SetVersion(GameVersion.XY);
            TradeGift_AO.SetVersion(GameVersion.ORAS);
        }
Esempio n. 3
0
        internal static EncounterTrade getValidIngameTrade(PK6 pk6)
        {
            if (!pk6.WasIngameTrade)
            {
                return(null);
            }
            int lang = pk6.Language;

            if (lang == 0)
            {
                return(null);
            }

            // Get valid pre-evolutions
            IEnumerable <DexLevel> p = getValidPreEvolutions(pk6);
            EncounterTrade         z = null;

            if (pk6.XY)
            {
                z = lang == 6 ? null : TradeGift_XY.FirstOrDefault(f => p.Any(r => r.Species == f.Species));
            }
            if (pk6.AO)
            {
                z = lang == 6 ? null : TradeGift_AO.FirstOrDefault(f => p.Any(r => r.Species == f.Species));
            }

            if (z == null)
            {
                return(null);
            }

            for (int i = 0; i < 6; i++)
            {
                if (z.IVs[i] != -1 && z.IVs[i] != pk6.IVs[i])
                {
                    return(null);
                }
            }

            if (z.Shiny ^ pk6.IsShiny) // Are PIDs static?
            {
                return(null);
            }
            if (z.TID != pk6.TID)
            {
                return(null);
            }
            if (z.SID != pk6.SID)
            {
                return(null);
            }
            if (z.Location != pk6.Met_Location)
            {
                return(null);
            }
            if (z.Level != pk6.Met_Level)
            {
                return(null);
            }
            if (z.Nature != Nature.Random && (int)z.Nature != pk6.Nature)
            {
                return(null);
            }
            if (z.Gender != pk6.Gender)
            {
                return(null);
            }
            // if (z.Ability == 4 ^ pk6.AbilityNumber == 4) // defer to Ability
            //    return null;

            return(z);
        }