public bool IsPokemonUsable(SwitchedPokemon pokemon) { if (pokemon.Health > 0) { foreach (var move in pokemon.Moves) { MovesManager.MoveData moveData = MovesManager.Instance.GetMoveData(move.id); if (move.pp > 0 && IsMoveOffensive(moveData) && !move.disabled && moveData.ID != DreamEater && moveData.ID != Synchronoise && moveData.ID != DoubleEdge) { return(true); } } } return(false); }
private double ApplySpecialEffects(MovesManager.MoveData move, SwitchedPokemon poke, SwitchedPokemon active, double power) { if (move.ID == DragonRage) { return(poke.Health <= 40 ? 10000.0 : 1.0); } if (move.ID == SeismicToss || move.ID == NightShade) { return(poke.Health <= active.Level ? 10000.0 : 1.0); } if (move.ID == Psywave) { return(poke.Health <= (active.Level / 2) ? 10000.0 : 1.0); } if (move.ID == FalseSwipe) { return(0.1); } return(power); }