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); }
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; }
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; }
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); }