Пример #1
0
        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;
                    }
                }
Пример #2
0
        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;
        }