private void HandleBattleRequest(PSXAPI.Response.Payload.BattleRequest request, bool isPlayerSide) { if (isPlayerSide) { var p1 = request; var active = p1.RequestInfo.active; var activePokemon = p1.RequestInfo.side.pokemon.ToList().Find(x => x.active); CurrentBattlingPokemonIndex = p1.RequestInfo.side.pokemon.ToList().FindIndex(x => x.active) + 1; UpdateBattleHealth(p1.RequestInfo.side.pokemon); ResponseID = request.RequestID; PlayerBattleSide = p1.RequestInfo.side; if (_team is null || _team.Count <= 0) SelectedPokemonIndex = p1.RequestInfo.side.pokemon.ToList().IndexOf(activePokemon); else SelectedPokemonIndex = _team.IndexOf(_team.Find(p => p.PokemonData.Pokemon.Payload.Personality == activePokemon.personality)); UpdateSelectedPokemonIndex(); var pokemons = p1.RequestInfo.side.pokemon; if (p1.RequestInfo is null) return; if (p1.RequestInfo.active is null is false && p1.RequestInfo.active.Length > 0) { PlayerAcivePokemon = new SwitchedPokemon[p1.RequestInfo.active.Length]; for (var i = 0; i < p1.RequestInfo.active.Length; i++) { var condition = pokemons[i].condition; var details = pokemons[i].details; var newPoke = GetSwitchedPokemon(details, condition); PlayerAcivePokemon[i] = newPoke; PlayerAcivePokemon[i].Moves = p1.RequestInfo.active[i].moves; PlayerAcivePokemon[i].Trainer = p1.RequestInfo.active[i].trainer; PlayerAcivePokemon[i].Personality = p1.RequestInfo.active[i].personality; } }
private void HandleBattleRequest(PSXAPI.Response.Payload.BattleRequest request, bool isPlayerSide) { if (isPlayerSide) { var p1 = request; var active = p1.RequestInfo.active; var activePokemon = p1.RequestInfo.side.pokemon.ToList().Find(x => x.active); CurrentBattlingPokemonIndex = p1.RequestInfo.side.pokemon.ToList().FindIndex(x => x.active) + 1; UpdateBattlePokemon(p1.RequestInfo.side.pokemon); ResponseID = request.RequestID; PlayerBattleSide = p1.RequestInfo.side; UpdateSelectedPokemonIndex(); var pokemons = p1.RequestInfo.side.pokemon; PlayerRequest = p1.RequestInfo; if (p1.RequestInfo != null && p1.RequestInfo.active != null) { PlayerAcivePokemon = new List <SwitchedPokemon>(); for (var i = 0; i < p1.RequestInfo.active.Length; i++) { if (p1.RequestInfo.active[i]?.trainer?.ToLowerInvariant() != _playerName?.ToLowerInvariant()) { continue; } var newPoke = GetSwitchedPokemon(pokemons.FirstOrDefault(x => x.personality == p1.RequestInfo.active[i].personality)); PlayerAcivePokemon.Add(newPoke); } } else { PlayerAcivePokemon = null; } } else { var p2 = request; PokemonCount = p2.RequestInfo.side.pokemon.Length; var opponent = p2.RequestInfo.side.pokemon.ToList().Find(x => x.active); var Poke = GetSwitchedPokemon(opponent.details, opponent.condition); OpponentGender = Poke.Gender; OpponentId = Poke.ID; OpponentStats = new PokemonStats(opponent.stats, Poke.MaxHealth); IsShiny = Poke.Shiny; OpponentLevel = Poke.Level; OpponentStatus = Poke.Status; OpponentHealth = Poke.MaxHealth; CurrentHealth = Poke.Health; OpponentForme = Poke.Forme; if (!IsWild && opponent.trainer != null) { TrainerName = opponent.trainer; } ResponseID = p2.RequestID; var pokemons = p2.RequestInfo.side.pokemon; OpponenetAllPokemon = new List <SwitchedPokemon>(); foreach (var pkm in pokemons) { OpponenetAllPokemon.Add(GetSwitchedPokemon(pkm)); } if (p2.RequestInfo != null && p2.RequestInfo.active != null) { OpponentActivePokemon = new List <SwitchedPokemon>(); for (var i = 0; i < p2.RequestInfo.active.Length; i++) { var newPoke = GetSwitchedPokemon(pokemons.FirstOrDefault(x => x.personality == p2.RequestInfo.active[i].personality)); OpponentActivePokemon.Add(newPoke); } } else { OpponentActivePokemon = null; } } IsTrapped = GetActivePokemon?.maybeTrapped == true || GetActivePokemon?.maybeDisabled == true; }