public ColosseumDaycare(IPokePC pokePC, byte[] data) { this.pokePC = pokePC; this.raw = data; if (DaycareStatus > 0) { depositedPokemon = new ColosseumPokemon(ByteHelper.SubByteArray(0x8, data, 312)); depositedPokemon.PokeContainer = this; } }
public ColosseumPokeParty(IPokePC pokePC, byte[] data) { this.pokePC = pokePC; this.raw = data; this.party = new List<IPokemon>(); for (int i = 0; i < 6; i++) { ColosseumPokemon colopkm = new ColosseumPokemon(ByteHelper.SubByteArray(312 * i, data, 312)); if (colopkm.DexID != 0 && colopkm.Experience != 0) { if (colopkm.IsValid) party.Add(colopkm); else party.Add(ColosseumPokemon.CreateInvalidPokemon(colopkm)); party[party.Count - 1].PokeContainer = this; } else { break; } } }
public void Remove(IPokemon pokemon) { if (pokemon == depositedPokemon) { pokePC.GameSave.IsChanged = true; depositedPokemon = null; DaycareStatus = 0; InitialLevel = 0; InitialPurification = 0; } }
public void AddPokemon(IPokemon pokemon) { pokePC.GameSave.IsChanged = true; IPokemon pkm = (pokemon != null ? (pokemon is ColosseumPokemon ? pokemon : pokemon.CreateColosseumPokemon(((GCGameSave)GameSave).CurrentRegion)): null); pkm.GameType = GameType; pkm.PokeContainer = this; if (pokePC.GameSave != null) pokePC.GameSave.OwnPokemon(pkm); depositedPokemon = pkm as ColosseumPokemon; depositedPokemon = pkm as ColosseumPokemon; DaycareStatus = 1; InitialLevel = 0; InitialPurification = 0; }
public IPokemon this[int index] { get { if (index == 0) return depositedPokemon; else throw new ArgumentOutOfRangeException("Index outside of bounds for Daycare", new Exception()); } set { if (index == 0) { pokePC.GameSave.IsChanged = true; IPokemon pkm = (value != null ? (value is ColosseumPokemon ? value : value.CreateColosseumPokemon(((GCGameSave)GameSave).CurrentRegion)): null); if (pkm != null) { pkm.PokeContainer = this; if (pokePC.GameSave != null) pokePC.GameSave.OwnPokemon(pkm); } depositedPokemon = pkm as ColosseumPokemon; if (depositedPokemon == null) { DaycareStatus = 0; InitialLevel = 0; InitialPurification = 0; } else { DaycareStatus = 1; InitialLevel = pkm.Level; InitialPurification = pkm.Purification; } } else throw new ArgumentOutOfRangeException("Index outside of bounds for Daycare", new Exception()); } }
public ColosseumPokemon CreateColosseumPokemon(GCRegions currentRegion, bool passFinder = true) { ColosseumPokemon pkm = new ColosseumPokemon(); if (passFinder) pkm.PokemonFinder = PokemonFinder; pkm.GameType = GameTypes.Colosseum; pkm.DeoxysForm = DeoxysForm; pkm.Language = Language; pkm.CurrentRegion = currentRegion; pkm.CurrentRegion = currentRegion; pkm.OriginalRegion = OriginalRegion; // Pokemon Info pkm.Personality = Personality; pkm.SpeciesID = SpeciesID; pkm.IsSecondAbility2 = IsSecondAbility2; pkm.IsEgg = IsEgg; // Met Info pkm.TrainerName = TrainerName; pkm.TrainerGender = TrainerGender; pkm.TrainerID = TrainerID; pkm.SecretID = SecretID; pkm.BallCaughtID = BallCaughtID; pkm.LevelMet = LevelMet; pkm.MetLocationID = MetLocationID; pkm.EncounterType = EncounterType; pkm.IsObedient = IsObedient; pkm.GameOrigin = GameOrigin; // Personalization Info pkm.Nickname = Nickname; pkm.HeldItemID = HeldItemID; pkm.Markings = Markings; // Stats Info pkm.Experience = Experience; pkm.Friendship = Friendship; pkm.HPEV = HPEV; pkm.AttackEV = AttackEV; pkm.DefenseEV = DefenseEV; pkm.SpeedEV = SpeedEV; pkm.SpAttackEV = SpAttackEV; pkm.SpDefenseEV = SpDefenseEV; pkm.HPIV = HPIV; pkm.AttackIV = AttackIV; pkm.DefenseIV = DefenseIV; pkm.SpeedIV = SpeedIV; pkm.SpAttackIV = SpAttackIV; pkm.SpDefenseIV = SpDefenseIV; // Status Info pkm.StatusCondition = StatusConditionFlags.None; pkm.TurnsOfSleepRemaining = 0; pkm.TurnsOfBadPoison = 0; pkm.PokerusStrain = PokerusStrain; pkm.PokerusDaysRemaining = PokerusDaysRemaining; pkm.PokerusRemaining = PokerusRemaining; // Contest Info pkm.Coolness = Coolness; pkm.Beauty = Beauty; pkm.Cuteness = Cuteness; pkm.Smartness = Smartness; pkm.Toughness = Toughness; pkm.Feel = Feel; pkm.CoolRibbonCount = CoolRibbonCount; pkm.BeautyRibbonCount = BeautyRibbonCount; pkm.CuteRibbonCount = CuteRibbonCount; pkm.SmartRibbonCount = SmartRibbonCount; pkm.ToughRibbonCount = ToughRibbonCount; pkm.HasChampionRibbon = HasChampionRibbon; pkm.HasWinningRibbon = HasWinningRibbon; pkm.HasVictoryRibbon = HasVictoryRibbon; pkm.HasArtistRibbon = HasArtistRibbon; pkm.HasEffortRibbon = HasEffortRibbon; pkm.HasMarineRibbon = HasMarineRibbon; pkm.HasLandRibbon = HasLandRibbon; pkm.HasSkyRibbon = HasSkyRibbon; pkm.HasCountryRibbon = HasCountryRibbon; pkm.HasNationalRibbon = HasNationalRibbon; pkm.HasEarthRibbon = HasEarthRibbon; pkm.HasWorldRibbon = HasWorldRibbon; // Move Info pkm.SetMoveAt(0, GetMoveAt(0)); pkm.SetMoveAt(1, GetMoveAt(1)); pkm.SetMoveAt(2, GetMoveAt(2)); pkm.SetMoveAt(3, GetMoveAt(3)); // Recalculate Stats to make sure they're accurate pkm.RecalculateStats(); return pkm; }
public static ColosseumPokemon CreateInvalidPokemon(ColosseumPokemon invalidBackup, GameTypes gameType = GameTypes.Any) { ColosseumPokemon pkm = new ColosseumPokemon(); pkm.invalidBackup = invalidBackup; pkm.GameType = gameType; pkm.IsInvalid = true; // Pokemon Info pkm.Personality = 0; pkm.SpeciesID = 0; pkm.IsSecondAbility2 = false; // Met Info pkm.TrainerName = "INVALID"; pkm.TrainerGender = Genders.Male; pkm.TrainerID = 0; pkm.SecretID = 0; pkm.BallCaughtID = 1; pkm.LevelMet = 0; pkm.MetLocationID = 0; pkm.EncounterType = GCEncounterTypes.None; pkm.IsObedient = false; pkm.GameOrigin = GameOrigins.Unknown; pkm.Language = Languages.English; // Personalization Info pkm.Nickname = "INVALID"; pkm.HeldItemID = 0; // Stats Info pkm.Experience = 1; pkm.Friendship = 0; pkm.HPEV = 0; pkm.AttackEV = 0; pkm.DefenseEV = 0; pkm.SpeedEV = 0; pkm.SpAttackEV = 0; pkm.SpDefenseEV = 0; pkm.HPIV = 0; pkm.AttackIV = 0; pkm.DefenseIV = 0; pkm.SpeedIV = 0; pkm.SpAttackIV = 0; pkm.SpDefenseIV = 0; // Status Info pkm.StatusCondition = StatusConditionFlags.None; pkm.TurnsOfSleepRemaining = 0; pkm.TurnsOfBadPoison = 0; pkm.PokerusStrain = 0; pkm.PokerusDaysRemaining = 0; pkm.PokerusRemaining = 0; // Contest Info pkm.Coolness = 0; pkm.Beauty = 0; pkm.Cuteness = 0; pkm.Smartness = 0; pkm.Toughness = 0; pkm.Feel = 0; pkm.CoolRibbonCount = 0; pkm.BeautyRibbonCount = 0; pkm.CuteRibbonCount = 0; pkm.SmartRibbonCount = 0; pkm.ToughRibbonCount = 0; pkm.HasChampionRibbon = false; pkm.HasWinningRibbon = false; pkm.HasVictoryRibbon = false; pkm.HasArtistRibbon = false; pkm.HasEffortRibbon = false; pkm.HasMarineRibbon = false; pkm.HasLandRibbon = false; pkm.HasSkyRibbon = false; pkm.HasCountryRibbon = false; pkm.HasNationalRibbon = false; pkm.HasEarthRibbon = false; pkm.HasWorldRibbon = false; // Move Info pkm.SetMoveAt(0, new Move(165, 0, 0)); // Struggle pkm.SetMoveAt(1, new Move()); pkm.SetMoveAt(2, new Move()); pkm.SetMoveAt(3, new Move()); // Recalculate Stats to make sure they're accurate pkm.RecalculateStats(); return pkm; }