Esempio n. 1
0
        public PK4 convertToPK4()
        {
            DateTime moment = DateTime.Now;
            PK4      pk4    = new PK4 // Convert away!
            {
                PID           = PID,
                Species       = Species,
                TID           = TID,
                SID           = SID,
                EXP           = IsEgg ? PKX.getEXP(5, Species) : EXP,
                IsEgg         = false,
                OT_Friendship = 70,
                MarkCircle    = MarkCircle,
                MarkSquare    = MarkSquare,
                MarkTriangle  = MarkTriangle,
                MarkHeart     = MarkHeart,
                Language      = Language,
                EV_HP         = EV_HP,
                EV_ATK        = EV_ATK,
                EV_DEF        = EV_DEF,
                EV_SPA        = EV_SPA,
                EV_SPD        = EV_SPD,
                EV_SPE        = EV_SPE,
                CNT_Cool      = CNT_Cool,
                CNT_Beauty    = CNT_Beauty,
                CNT_Cute      = CNT_Cute,
                CNT_Smart     = CNT_Smart,
                CNT_Tough     = CNT_Tough,
                CNT_Sheen     = CNT_Sheen,
                Move1         = Move1,
                Move2         = Move2,
                Move3         = Move3,
                Move4         = Move4,
                Move1_PPUps   = Move1_PPUps,
                Move2_PPUps   = Move2_PPUps,
                Move3_PPUps   = Move3_PPUps,
                Move4_PPUps   = Move4_PPUps,
                IV_HP         = IV_HP,
                IV_ATK        = IV_ATK,
                IV_DEF        = IV_DEF,
                IV_SPA        = IV_SPA,
                IV_SPD        = IV_SPD,
                IV_SPE        = IV_SPE,
                Ability       = Ability,
                Version       = Version,
                Ball          = Ball,
                PKRS_Strain   = PKRS_Strain,
                PKRS_Days     = PKRS_Days,
                OT_Gender     = OT_Gender,
                MetDate       = moment,
                Met_Location  = 0x37, // Pal Park

                RibbonChampionG3Hoenn  = RibbonChampionG3Hoenn,
                RibbonWinning          = RibbonWinning,
                RibbonVictory          = RibbonVictory,
                RibbonArtist           = RibbonArtist,
                RibbonEffort           = RibbonEffort,
                RibbonChampionBattle   = RibbonChampionBattle,
                RibbonChampionRegional = RibbonChampionRegional,
                RibbonChampionNational = RibbonChampionNational,
                RibbonCountry          = RibbonCountry,
                RibbonNational         = RibbonNational,
                RibbonEarth            = RibbonEarth,
                RibbonWorld            = RibbonWorld,
            };

            // Fix PP
            pk4.Move1_PP = pk4.getMovePP(pk4.Move1, pk4.Move1_PPUps);
            pk4.Move2_PP = pk4.getMovePP(pk4.Move2, pk4.Move2_PPUps);
            pk4.Move3_PP = pk4.getMovePP(pk4.Move3, pk4.Move3_PPUps);
            pk4.Move4_PP = pk4.getMovePP(pk4.Move4, pk4.Move4_PPUps);

            if (Met_Location == 0xFF)                                            // Fateful
            {
                pk4.FatefulEncounter = Met_Location == 0xFF || FatefulEncounter; // obedience flag
            }
            // Remaining Ribbons
            pk4.RibbonG3Cool         |= RibbonCountG3Cool > 0;
            pk4.RibbonG3CoolSuper    |= RibbonCountG3Cool > 1;
            pk4.RibbonG3CoolHyper    |= RibbonCountG3Cool > 2;
            pk4.RibbonG3CoolMaster   |= RibbonCountG3Cool > 3;
            pk4.RibbonG3Beauty       |= RibbonCountG3Beauty > 0;
            pk4.RibbonG3BeautySuper  |= RibbonCountG3Beauty > 1;
            pk4.RibbonG3BeautyHyper  |= RibbonCountG3Beauty > 2;
            pk4.RibbonG3BeautyMaster |= RibbonCountG3Beauty > 3;
            pk4.RibbonG3Cute         |= RibbonCountG3Cute > 0;
            pk4.RibbonG3CuteSuper    |= RibbonCountG3Cute > 1;
            pk4.RibbonG3CuteHyper    |= RibbonCountG3Cute > 2;
            pk4.RibbonG3CuteMaster   |= RibbonCountG3Cute > 3;
            pk4.RibbonG3Smart        |= RibbonCountG3Smart > 0;
            pk4.RibbonG3SmartSuper   |= RibbonCountG3Smart > 1;
            pk4.RibbonG3SmartHyper   |= RibbonCountG3Smart > 2;
            pk4.RibbonG3SmartMaster  |= RibbonCountG3Smart > 3;
            pk4.RibbonG3Tough        |= RibbonCountG3Tough > 0;
            pk4.RibbonG3ToughSuper   |= RibbonCountG3Tough > 1;
            pk4.RibbonG3ToughHyper   |= RibbonCountG3Tough > 2;
            pk4.RibbonG3ToughMaster  |= RibbonCountG3Tough > 3;

            // Yay for reusing string buffers!
            PKX.G4TransferTrashBytes[pk4.Language].CopyTo(pk4.Data, 0x48 + 4);
            pk4.Nickname = IsEgg ? PKX.getSpeciesName(pk4.Species, pk4.Language) : Nickname;
            Array.Copy(pk4.Data, 0x48, pk4.Data, 0x68, 0x10);
            pk4.OT_Name = OT_Name;

            // Set Final Data
            pk4.Met_Level   = PKX.getLevel(pk4.Species, pk4.EXP);
            pk4.Gender      = PKX.getGender(pk4.Species, pk4.PID);
            pk4.IsNicknamed = IsNicknamed;

            // Unown Form
            pk4.AltForm = AltForm;

            int item = HeldItem;

            if (HeldItem > 0)
            {
                pk4.HeldItem = item;
            }

            // Remove HM moves
            int[] banned   = { 15, 19, 57, 70, 148, 249, 127, 291 };
            int[] newMoves = pk4.Moves;
            for (int i = 0; i < 4; i++)
            {
                if (banned.Contains(newMoves[i]))
                {
                    newMoves[i] = 0;
                }
            }
            pk4.Moves = newMoves;
            pk4.FixMoves();

            pk4.RefreshChecksum();
            return(pk4);
        }
Esempio n. 2
0
        public PK4 convertToPK4()
        {
            DateTime moment = DateTime.Now;
            PK4 pk4 = new PK4 // Convert away!
            {
                PID = PID,
                Species = Species,
                TID = TID,
                SID = SID,
                EXP = IsEgg ? PKX.getEXP(5, Species) : EXP,
                IsEgg = false,
                Friendship = 40,
                Circle = Circle,
                Square = Square,
                Triangle = Triangle,
                Heart = Heart,
                Language = Language,
                EV_HP = EV_HP,
                EV_ATK = EV_ATK,
                EV_DEF = EV_DEF,
                EV_SPA = EV_SPA,
                EV_SPD = EV_SPD,
                EV_SPE = EV_SPE,
                CNT_Cool = CNT_Cool,
                CNT_Beauty = CNT_Beauty,
                CNT_Cute = CNT_Cute,
                CNT_Smart = CNT_Smart,
                CNT_Tough = CNT_Tough,
                CNT_Sheen = CNT_Sheen,
                FatefulEncounter = Obedience,
                Move1 = Move1,
                Move2 = Move2,
                Move3 = Move3,
                Move4 = Move4,
                Move1_PPUps = Move1_PPUps,
                Move2_PPUps = Move2_PPUps,
                Move3_PPUps = Move3_PPUps,
                Move4_PPUps = Move4_PPUps,
                Move1_PP = PKX.getMovePP(Move1, Move1_PPUps),
                Move2_PP = PKX.getMovePP(Move2, Move2_PPUps),
                Move3_PP = PKX.getMovePP(Move3, Move3_PPUps),
                Move4_PP = PKX.getMovePP(Move4, Move4_PPUps),
                IV_HP = IV_HP,
                IV_ATK = IV_ATK,
                IV_DEF = IV_DEF,
                IV_SPA = IV_SPA,
                IV_SPD = IV_SPD,
                IV_SPE = IV_SPE,
                Ability = PKM.Gen3Abilities[Species][Ability],
                Version = Version,
                Ball = Pokéball,
                PKRS_Strain = PKRS_Strain,
                PKRS_Days = PKRS_Days,
                OT_Gender = OT_Gender,
                Met_Year = moment.Year - 2000,
                Met_Month = moment.Month,
                Met_Day = moment.Day,
                Met_Location = 0x37, // Pal Park
                RIB6_4 = Champion,
                RIB6_5 = Winning,
                RIB6_6 = Victory,
                RIB6_7 = Artist,
                RIB7_0 = Effort,
                RIB7_1 = Special1, // Battle Champion Ribbon
                RIB7_2 = Special2, // Regional Champion Ribbon
                RIB7_3 = Special3, // National Champion Ribbon
                RIB7_4 = Special4, // Country Ribbon
                RIB7_5 = Special5, // National Ribbon
                RIB7_6 = Special6, // Earth Ribbon
                RIB7_7 = Special7, // World Ribbon
            };

            // Remaining Ribbons
            pk4.RIB4_0 |= Cool_Ribbons > 0;
            pk4.RIB4_1 |= Cool_Ribbons > 1;
            pk4.RIB4_2 |= Cool_Ribbons > 2;
            pk4.RIB4_3 |= Cool_Ribbons > 3;
            pk4.RIB4_4 |= Beauty_Ribbons > 0;
            pk4.RIB4_5 |= Beauty_Ribbons > 1;
            pk4.RIB4_6 |= Beauty_Ribbons > 2;
            pk4.RIB4_7 |= Beauty_Ribbons > 3;
            pk4.RIB5_0 |= Cute_Ribbons > 0;
            pk4.RIB5_1 |= Cute_Ribbons > 1;
            pk4.RIB5_2 |= Cute_Ribbons > 2;
            pk4.RIB5_3 |= Cute_Ribbons > 3;
            pk4.RIB5_4 |= Smart_Ribbons > 0;
            pk4.RIB5_5 |= Smart_Ribbons > 1;
            pk4.RIB5_6 |= Smart_Ribbons > 2;
            pk4.RIB5_7 |= Smart_Ribbons > 3;
            pk4.RIB6_0 |= Tough_Ribbons > 0;
            pk4.RIB6_1 |= Tough_Ribbons > 1;
            pk4.RIB6_2 |= Tough_Ribbons > 2;
            pk4.RIB6_3 |= Tough_Ribbons > 3;

            // Yay for reusing string buffers!
            PKM.G4TransferTrashBytes[pk4.Language].CopyTo(pk4.Data, 0x48 + 4);
            pk4.Nickname = IsEgg ? PKM.getSpeciesName(pk4.Species, pk4.Language) : Nickname;
            Array.Copy(pk4.Data, 0x48, pk4.Data, 0x68, 0x10);
            pk4.OT_Name = OT_Name;

            // Ribbons
            
            // Set Final Data
            pk4.Met_Level = PKX.getLevel(pk4.Species, pk4.EXP);
            pk4.Gender = PKM.getGender(pk4.Species, pk4.PID);
            pk4.IsNicknamed |= pk4.Nickname != PKM.getSpeciesName(pk4.Species, pk4.Language);

            // Remove HM moves
            int[] banned = { 15, 19, 57, 70, 148, 249, 127, 291 };
            int[] newMoves = pk4.Moves;
            for (int i = 0; i < 4; i++)
                if (banned.Contains(newMoves[i]))
                    newMoves[i] = 0;
            pk4.Moves = newMoves;
            pk4.FixMoves();

            pk4.RefreshChecksum();
            return pk4;
        }
Esempio n. 3
0
        public PK4 convertToPK4()
        {
            DateTime moment = DateTime.Now;
            PK4 pk4 = new PK4 // Convert away!
            {
                PID = PID,
                Species = Species,
                TID = TID,
                SID = SID,
                EXP = IsEgg ? PKX.getEXP(5, Species) : EXP,
                IsEgg = false,
                OT_Friendship = 70,
                MarkCircle = MarkCircle,
                MarkSquare = MarkSquare,
                MarkTriangle = MarkTriangle,
                MarkHeart = MarkHeart,
                Language = Language,
                EV_HP = EV_HP,
                EV_ATK = EV_ATK,
                EV_DEF = EV_DEF,
                EV_SPA = EV_SPA,
                EV_SPD = EV_SPD,
                EV_SPE = EV_SPE,
                CNT_Cool = CNT_Cool,
                CNT_Beauty = CNT_Beauty,
                CNT_Cute = CNT_Cute,
                CNT_Smart = CNT_Smart,
                CNT_Tough = CNT_Tough,
                CNT_Sheen = CNT_Sheen,
                Move1 = Move1,
                Move2 = Move2,
                Move3 = Move3,
                Move4 = Move4,
                Move1_PPUps = Move1_PPUps,
                Move2_PPUps = Move2_PPUps,
                Move3_PPUps = Move3_PPUps,
                Move4_PPUps = Move4_PPUps,
                IV_HP = IV_HP,
                IV_ATK = IV_ATK,
                IV_DEF = IV_DEF,
                IV_SPA = IV_SPA,
                IV_SPD = IV_SPD,
                IV_SPE = IV_SPE,
                Ability = Ability,
                Version = Version,
                Ball = Ball,
                PKRS_Strain = PKRS_Strain,
                PKRS_Days = PKRS_Days,
                OT_Gender = OT_Gender,
                MetDate = moment,
                Met_Location = 0x37, // Pal Park

                RibbonChampionG3Hoenn = RibbonChampionG3Hoenn,
                RibbonWinning     = RibbonWinning,
                RibbonVictory     = RibbonVictory,
                RibbonArtist        = RibbonArtist,
                RibbonEffort = RibbonEffort,
                RibbonChampionBattle = RibbonChampionBattle,
                RibbonChampionRegional = RibbonChampionRegional,
                RibbonChampionNational = RibbonChampionNational,
                RibbonCountry = RibbonCountry,
                RibbonNational = RibbonNational,
                RibbonEarth = RibbonEarth,
                RibbonWorld = RibbonWorld,
            };

            // Fix PP
            pk4.Move1_PP = pk4.getMovePP(pk4.Move1, pk4.Move1_PPUps);
            pk4.Move2_PP = pk4.getMovePP(pk4.Move2, pk4.Move2_PPUps);
            pk4.Move3_PP = pk4.getMovePP(pk4.Move3, pk4.Move3_PPUps);
            pk4.Move4_PP = pk4.getMovePP(pk4.Move4, pk4.Move4_PPUps);

            pk4.FatefulEncounter = Met_Location == 0xFF || FatefulEncounter; // obedience flag

            // Remaining Ribbons
            pk4.RibbonG3Cool          |= RibbonCountG3Cool > 0;
            pk4.RibbonG3CoolSuper     |= RibbonCountG3Cool > 1;
            pk4.RibbonG3CoolHyper     |= RibbonCountG3Cool > 2;
            pk4.RibbonG3CoolMaster    |= RibbonCountG3Cool > 3;
            pk4.RibbonG3Beauty        |= RibbonCountG3Beauty > 0;
            pk4.RibbonG3BeautySuper   |= RibbonCountG3Beauty > 1;
            pk4.RibbonG3BeautyHyper   |= RibbonCountG3Beauty > 2;
            pk4.RibbonG3BeautyMaster  |= RibbonCountG3Beauty > 3;
            pk4.RibbonG3Cute          |= RibbonCountG3Cute > 0;
            pk4.RibbonG3CuteSuper     |= RibbonCountG3Cute > 1;
            pk4.RibbonG3CuteHyper     |= RibbonCountG3Cute > 2;
            pk4.RibbonG3CuteMaster    |= RibbonCountG3Cute > 3;
            pk4.RibbonG3Smart         |= RibbonCountG3Smart > 0;
            pk4.RibbonG3SmartSuper    |= RibbonCountG3Smart > 1;
            pk4.RibbonG3SmartHyper    |= RibbonCountG3Smart > 2;
            pk4.RibbonG3SmartMaster   |= RibbonCountG3Smart > 3;
            pk4.RibbonG3Tough         |= RibbonCountG3Tough > 0;
            pk4.RibbonG3ToughSuper    |= RibbonCountG3Tough > 1;
            pk4.RibbonG3ToughHyper    |= RibbonCountG3Tough > 2;
            pk4.RibbonG3ToughMaster   |= RibbonCountG3Tough > 3;

            // Yay for reusing string buffers!
            PKX.G4TransferTrashBytes[pk4.Language].CopyTo(pk4.Data, 0x48 + 4);
            pk4.Nickname = IsEgg ? PKX.getSpeciesName(pk4.Species, pk4.Language) : Nickname;
            Array.Copy(pk4.Data, 0x48, pk4.Data, 0x68, 0x10);
            pk4.OT_Name = OT_Name;

            // Set Final Data
            pk4.Met_Level = PKX.getLevel(pk4.Species, pk4.EXP);
            pk4.Gender = PKX.getGender(pk4.Species, pk4.PID);
            pk4.IsNicknamed = IsNicknamed;

            // Unown Form
            pk4.AltForm = AltForm;

            int item = HeldItem;
            if (HeldItem > 0)
                pk4.HeldItem = item;

            // Remove HM moves
            int[] banned = { 15, 19, 57, 70, 148, 249, 127, 291 };
            int[] newMoves = pk4.Moves;
            for (int i = 0; i < 4; i++)
                if (banned.Contains(newMoves[i]))
                    newMoves[i] = 0;
            pk4.Moves = newMoves;
            pk4.FixMoves();

            pk4.RefreshChecksum();
            return pk4;
        }
Esempio n. 4
0
        public PK4 convertToPK4()
        {
            DateTime moment = DateTime.Now;
            PK4      pk4    = new PK4 // Convert away!
            {
                PID              = PID,
                Species          = Species,
                TID              = TID,
                SID              = SID,
                EXP              = IsEgg ? PKX.getEXP(5, Species) : EXP,
                IsEgg            = false,
                Friendship       = 40,
                Circle           = Circle,
                Square           = Square,
                Triangle         = Triangle,
                Heart            = Heart,
                Language         = Language,
                EV_HP            = EV_HP,
                EV_ATK           = EV_ATK,
                EV_DEF           = EV_DEF,
                EV_SPA           = EV_SPA,
                EV_SPD           = EV_SPD,
                EV_SPE           = EV_SPE,
                CNT_Cool         = CNT_Cool,
                CNT_Beauty       = CNT_Beauty,
                CNT_Cute         = CNT_Cute,
                CNT_Smart        = CNT_Smart,
                CNT_Tough        = CNT_Tough,
                CNT_Sheen        = CNT_Sheen,
                FatefulEncounter = Obedience,
                Move1            = Move1,
                Move2            = Move2,
                Move3            = Move3,
                Move4            = Move4,
                Move1_PPUps      = Move1_PPUps,
                Move2_PPUps      = Move2_PPUps,
                Move3_PPUps      = Move3_PPUps,
                Move4_PPUps      = Move4_PPUps,
                Move1_PP         = PKX.getMovePP(Move1, Move1_PPUps),
                Move2_PP         = PKX.getMovePP(Move2, Move2_PPUps),
                Move3_PP         = PKX.getMovePP(Move3, Move3_PPUps),
                Move4_PP         = PKX.getMovePP(Move4, Move4_PPUps),
                IV_HP            = IV_HP,
                IV_ATK           = IV_ATK,
                IV_DEF           = IV_DEF,
                IV_SPA           = IV_SPA,
                IV_SPD           = IV_SPD,
                IV_SPE           = IV_SPE,
                Ability          = PKM.Gen3Abilities[Species][Ability],
                Version          = Version,
                Ball             = Pokéball,
                PKRS_Strain      = PKRS_Strain,
                PKRS_Days        = PKRS_Days,
                OT_Gender        = OT_Gender,
                Met_Year         = moment.Year - 2000,
                Met_Month        = moment.Month,
                Met_Day          = moment.Day,
                Met_Location     = 0x37, // Pal Park
                RIB6_4           = Champion,
                RIB6_5           = Winning,
                RIB6_6           = Victory,
                RIB6_7           = Artist,
                RIB7_0           = Effort,
                RIB7_1           = Special1, // Battle Champion Ribbon
                RIB7_2           = Special2, // Regional Champion Ribbon
                RIB7_3           = Special3, // National Champion Ribbon
                RIB7_4           = Special4, // Country Ribbon
                RIB7_5           = Special5, // National Ribbon
                RIB7_6           = Special6, // Earth Ribbon
                RIB7_7           = Special7, // World Ribbon
            };

            // Remaining Ribbons
            pk4.RIB4_0 |= Cool_Ribbons > 0;
            pk4.RIB4_1 |= Cool_Ribbons > 1;
            pk4.RIB4_2 |= Cool_Ribbons > 2;
            pk4.RIB4_3 |= Cool_Ribbons > 3;
            pk4.RIB4_4 |= Beauty_Ribbons > 0;
            pk4.RIB4_5 |= Beauty_Ribbons > 1;
            pk4.RIB4_6 |= Beauty_Ribbons > 2;
            pk4.RIB4_7 |= Beauty_Ribbons > 3;
            pk4.RIB5_0 |= Cute_Ribbons > 0;
            pk4.RIB5_1 |= Cute_Ribbons > 1;
            pk4.RIB5_2 |= Cute_Ribbons > 2;
            pk4.RIB5_3 |= Cute_Ribbons > 3;
            pk4.RIB5_4 |= Smart_Ribbons > 0;
            pk4.RIB5_5 |= Smart_Ribbons > 1;
            pk4.RIB5_6 |= Smart_Ribbons > 2;
            pk4.RIB5_7 |= Smart_Ribbons > 3;
            pk4.RIB6_0 |= Tough_Ribbons > 0;
            pk4.RIB6_1 |= Tough_Ribbons > 1;
            pk4.RIB6_2 |= Tough_Ribbons > 2;
            pk4.RIB6_3 |= Tough_Ribbons > 3;

            // Yay for reusing string buffers!
            PKM.G4TransferTrashBytes[pk4.Language].CopyTo(pk4.Data, 0x48 + 4);
            pk4.Nickname = IsEgg ? PKM.getSpeciesName(pk4.Species, pk4.Language) : Nickname;
            Array.Copy(pk4.Data, 0x48, pk4.Data, 0x68, 0x10);
            pk4.OT_Name = OT_Name;

            // Set Final Data
            pk4.Met_Level    = PKX.getLevel(pk4.Species, pk4.EXP);
            pk4.Gender       = PKM.getGender(pk4.Species, pk4.PID);
            pk4.IsNicknamed |= pk4.Nickname != PKM.getSpeciesName(pk4.Species, pk4.Language);

            // Unown Form
            if (Species == 201)
            {
                pk4.AltForm = PKM.getUnownForm(PID);
            }

            // Remove HM moves
            int[] banned   = { 15, 19, 57, 70, 148, 249, 127, 291 };
            int[] newMoves = pk4.Moves;
            for (int i = 0; i < 4; i++)
            {
                if (banned.Contains(newMoves[i]))
                {
                    newMoves[i] = 0;
                }
            }
            pk4.Moves = newMoves;
            pk4.FixMoves();

            pk4.RefreshChecksum();
            return(pk4);
        }