public Pokemon(GameMode gameMode, PokemonModel dataModel, PokemonSaveModel saveModel) { _gameMode = gameMode; _dataModel = dataModel; _saveModel = saveModel; }
private Pokemon CreatePokemon(PokemonModel dataModel, int level) { var saveModel = new PokemonSaveModel(); PopulateSaveModel(dataModel, saveModel, level); var pokemon = new Pokemon(_gameMode, dataModel, saveModel); pokemon.LearnStartupMoves(); if (level > 1) pokemon.LevelUp(true, level); return pokemon; }
private Pokemon CreatePokemon(PokemonModel dataModel, int level) { var saveModel = new PokemonSaveModel(); PopulateSaveModel(dataModel, saveModel, level); var pokemon = new Pokemon(_gameMode, dataModel, saveModel); pokemon.LearnStartupMoves(); if (level > 1) { pokemon.LevelUp(true, level); } return(pokemon); }
public Pokemon GetPokemon(PokemonSaveModel saveModel) { PokemonModel dataModel; if (!_pokemonModelCache.TryGetValue(saveModel.Id, out dataModel)) { var d = _gameMode.FileLoader.GetFile(_gameMode.GetPokemonFilePath(saveModel.Id), false); if (!_pokemonModelCache.ContainsKey(saveModel.Id)) { dataModel = DataModel<PokemonModel>.FromByteArray(d.Data); _pokemonModelCache.Add(saveModel.Id, dataModel); } else { dataModel = _pokemonModelCache[saveModel.Id]; } return new Pokemon(_gameMode, dataModel, saveModel); } else { return new Pokemon(_gameMode, dataModel, saveModel); } }
public Pokemon GetPokemon(PokemonSaveModel saveModel) { PokemonModel dataModel; if (!_pokemonModelCache.TryGetValue(saveModel.Id, out dataModel)) { var d = _gameMode.FileLoader.GetFile(_gameMode.GetPokemonFilePath(saveModel.Id), false); if (!_pokemonModelCache.ContainsKey(saveModel.Id)) { dataModel = DataModel <PokemonModel> .FromByteArray(d.Data); _pokemonModelCache.Add(saveModel.Id, dataModel); } else { dataModel = _pokemonModelCache[saveModel.Id]; } return(new Pokemon(_gameMode, dataModel, saveModel)); } else { return(new Pokemon(_gameMode, dataModel, saveModel)); } }
private void PopulateSaveModel(PokemonModel dataModel, PokemonSaveModel saveModel, int level) { // when generating a new Pokémon, the save model is empty, as it is a blank slate. // some values are generated by default or just set to their base values, so we do that here. saveModel.Id = dataModel.Id; // setting personality value: saveModel.PersonalityValue = GeneratePersonalityValue(); // setting gender: if (dataModel.IsGenderless) { saveModel.Gender = PokemonGender.Genderless; } else { var r = GlobalRandomProvider.Instance.Rnd.NextDouble(); if (r <= (dataModel.IsMale / 100)) { saveModel.Gender = PokemonGender.Male; } else { saveModel.Gender = PokemonGender.Female; } } // presetting catch info with empty information: saveModel.CatchInfo = new PokemonCatchInfo() { BallItemId = "", Location = "", Method = "", TrainerName = "", OT = "" }; // no egg, 0 experience: saveModel.EggSteps = 0; saveModel.Experience = 0; // set all effort values to 0: saveModel.EVs = new PokemonStatSetModel() { Atk = 0, Def = 0, SpAtk = 0, SpDef = 0, HP = 0, Speed = 0 }; // randomize IVs: saveModel.IVs = new PokemonStatSetModel() { Atk = GlobalRandomProvider.Instance.Rnd.Next(0, 32), Def = GlobalRandomProvider.Instance.Rnd.Next(0, 32), SpAtk = GlobalRandomProvider.Instance.Rnd.Next(0, 32), SpDef = GlobalRandomProvider.Instance.Rnd.Next(0, 32), HP = GlobalRandomProvider.Instance.Rnd.Next(0, 32), Speed = GlobalRandomProvider.Instance.Rnd.Next(0, 32) }; // set to random nature: var natureModels = _gameMode.GetNatures(); saveModel.NatureId = natureModels[_random.Next(natureModels.Length)].Id; // set to base friendship: saveModel.Friendship = dataModel.BaseFriendship; // chance of 1/4096 to be shiny: saveModel.IsShiny = (GlobalRandomProvider.Instance.Rnd.Next(0, 4096) == 0); saveModel.Nickname = ""; saveModel.Status = PokemonStatus.None; saveModel.AdditionalData = ""; saveModel.Moves = new PokemonMoveModel[0]; }
public Pokemon(GameMode gameMode, PokemonModel dataModel, PokemonSaveModel saveModel) { _gameMode = gameMode; _dataModel = dataModel; _saveModel = saveModel; }
private void PopulateSaveModel(PokemonModel dataModel, PokemonSaveModel saveModel, int level) { // when generating a new Pokémon, the save model is empty, as it is a blank slate. // some values are generated by default or just set to their base values, so we do that here. saveModel.Id = dataModel.Id; // setting personality value: saveModel.PersonalityValue = GeneratePersonalityValue(); // setting gender: if (dataModel.IsGenderless) { saveModel.Gender = PokemonGender.Genderless; } else { var r = GlobalRandomProvider.Instance.Rnd.NextDouble(); if (r <= (dataModel.IsMale / 100)) { saveModel.Gender = PokemonGender.Male; } else { saveModel.Gender = PokemonGender.Female; } } // presetting catch info with empty information: saveModel.CatchInfo = new PokemonCatchInfo() { BallItemId = "", Location = "", Method = "", TrainerName = "", OT = "" }; // no egg, 0 experience: saveModel.EggSteps = 0; saveModel.Experience = 0; // set all effort values to 0: saveModel.EVs = new PokemonStatSetModel() { Atk = 0, Def = 0, SpAtk = 0, SpDef = 0, HP = 0, Speed = 0 }; // randomize IVs: saveModel.IVs = new PokemonStatSetModel() { Atk = GlobalRandomProvider.Instance.Rnd.Next(0, 32), Def = GlobalRandomProvider.Instance.Rnd.Next(0, 32), SpAtk = GlobalRandomProvider.Instance.Rnd.Next(0, 32), SpDef = GlobalRandomProvider.Instance.Rnd.Next(0, 32), HP = GlobalRandomProvider.Instance.Rnd.Next(0, 32), Speed = GlobalRandomProvider.Instance.Rnd.Next(0, 32) }; // set to random nature: var natureModels = _gameMode.GetNatures(); saveModel.NatureId = natureModels[_random.Next(natureModels.Length)].Id; // set to base friendship: saveModel.Friendship = dataModel.BaseFriendship; // chance of 1/4096 to be shiny: saveModel.IsShiny = (GlobalRandomProvider.Instance.Rnd.Next(0, 4096) == 0); saveModel.Nickname = ""; saveModel.Status = PokemonStatus.None; saveModel.AdditionalData = ""; saveModel.Moves = new PokemonMoveModel[0]; }