private float CalculateSpDefense(PBEBattlePokemon user, PBEBattlePokemon target, float initialSpDefense) { float spDefense = initialSpDefense; if (target.Item == PBEItem.DeepSeaScale && target.OriginalSpecies == PBESpecies.Clamperl) { spDefense *= 2.0f; } if (target.Item == PBEItem.SoulDew && (target.OriginalSpecies == PBESpecies.Latias || target.OriginalSpecies == PBESpecies.Latios)) { spDefense *= 1.5f; } if (target.Item == PBEItem.Eviolite && PBEDataProvider.Instance.HasEvolutions(target.OriginalSpecies, target.RevertForm)) { spDefense *= 1.5f; } if (ShouldDoWeatherEffects()) { if (Weather == PBEWeather.Sandstorm && target.HasType(PBEType.Rock)) { spDefense *= 1.5f; } if (!user.HasCancellingAbility() && Weather == PBEWeather.HarshSunlight && target.Team.ActiveBattlers.FindIndex(p => p.Ability == PBEAbility.FlowerGift) != -1) { spDefense *= 1.5f; } } return(spDefense); }
private double CalculateSpDefense(PBEBattlePokemon user, PBEBattlePokemon target, double initialSpDefense) { double spDefense = initialSpDefense; if (target.Item == PBEItem.DeepSeaScale && target.OriginalSpecies == PBESpecies.Clamperl) { spDefense *= 2.0; } if (target.Item == PBEItem.SoulDew && (target.OriginalSpecies == PBESpecies.Latias || target.OriginalSpecies == PBESpecies.Latios)) { spDefense *= 1.5; } if (target.Item == PBEItem.Eviolite && PBEPokemonData.GetData(target.OriginalSpecies, target.RevertForm).Evolutions.Count > 0) { spDefense *= 1.5; } if (ShouldDoWeatherEffects()) { if (Weather == PBEWeather.Sandstorm && target.HasType(PBEType.Rock)) { spDefense *= 1.5; } if (!user.HasCancellingAbility() && Weather == PBEWeather.HarshSunlight && target.Team.ActiveBattlers.Any(p => p.Ability == PBEAbility.FlowerGift)) { spDefense *= 1.5; } } return(spDefense); }