From 1b9d137bb04a9472129e49f795ab4be7c2173320 Mon Sep 17 00:00:00 2001 From: Deukhoofd Date: Sat, 14 Jun 2025 13:37:58 +0200 Subject: [PATCH] Surprisingly, more abilities --- PkmnLib.Dynamic/BattleFlow/TurnRunner.cs | 6 ++-- PkmnLib.Dynamic/ScriptHandling/Script.cs | 3 +- .../PkmnLib.Plugin.Gen7/Data/Abilities.jsonc | 36 ++++++++++++++----- .../Scripts/Abilities/BadDreams.cs | 2 +- .../Scripts/Abilities/DrySkin.cs | 2 +- .../Scripts/Abilities/Harvest.cs | 2 +- .../Scripts/Abilities/Healer.cs | 2 +- .../Scripts/Abilities/Hydration.cs | 2 +- .../Scripts/Abilities/IceBody.cs | 2 +- .../Scripts/Abilities/Moody.cs | 2 +- .../Scripts/Abilities/PowerConstruct.cs | 2 +- .../Scripts/Abilities/RainDish.cs | 2 +- .../Scripts/Abilities/Schooling.cs | 2 +- .../Scripts/Abilities/ShedSkin.cs | 2 +- .../Scripts/Abilities/ShieldsDown.cs | 2 +- .../Scripts/Abilities/SlushRush.cs | 19 ++++++++++ .../Scripts/Abilities/Sniper.cs | 16 +++++++++ .../Scripts/Abilities/SnowCloak.cs | 27 ++++++++++++++ .../Scripts/Abilities/SnowWarning.cs | 25 +++++++++++++ .../Scripts/Abilities/SolarPower.cs | 34 ++++++++++++++++++ .../Scripts/Abilities/SolidRock.cs | 17 +++++++++ .../Scripts/Abilities/SoulHeart.cs | 22 ++++++++++++ .../Scripts/Abilities/Soundproof.cs | 17 +++++++++ .../Scripts/Abilities/SpeedBoost.cs | 24 +++++++++++++ .../Scripts/Battle/FairyLockEffect.cs | 2 +- .../Scripts/Battle/FutureSightEffect.cs | 2 +- .../Scripts/Battle/Gravity.cs | 2 +- .../Scripts/Battle/MagicRoomEffect.cs | 2 +- .../Scripts/Battle/MudSportEffect.cs | 2 +- .../Scripts/Battle/SnatchEffect.cs | 2 +- .../Scripts/Battle/TrickRoomEffect.cs | 2 +- .../Scripts/Battle/UproarEffect.cs | 2 +- .../Scripts/Battle/WonderRoomEffect.cs | 2 +- .../Scripts/Moves/MetalBurst.cs | 2 +- .../Scripts/Moves/MirrorCoat.cs | 2 +- .../Scripts/Pokemon/BindEffect.cs | 2 +- .../Scripts/Pokemon/ChargeEffect.cs | 2 +- .../Scripts/Pokemon/DisableEffect.cs | 2 +- .../Scripts/Pokemon/EmbargoEffect.cs | 2 +- .../Scripts/Pokemon/EncoreEffect.cs | 2 +- .../Scripts/Pokemon/EndureEffect.cs | 2 +- .../Scripts/Pokemon/FireSpinEffect.cs | 2 +- .../Scripts/Pokemon/GhostCurseEffect.cs | 2 +- .../Scripts/Pokemon/HealBlockEffect.cs | 2 +- .../Pokemon/HealEachEndOfTurnEffect.cs | 3 +- .../Scripts/Pokemon/HelpingHandEffect.cs | 2 +- .../Scripts/Pokemon/IceBallEffect.cs | 2 +- .../Scripts/Pokemon/InfestationEffect.cs | 2 +- .../Scripts/Pokemon/IngrainEffect.cs | 2 +- .../Scripts/Pokemon/LeechSeedEffect.cs | 2 +- .../Scripts/Pokemon/LockOnEffect.cs | 2 +- .../Scripts/Pokemon/LuckyChantEffect.cs | 2 +- .../Scripts/Pokemon/MagmaStormEffect.cs | 2 +- .../Scripts/Pokemon/MagnetRiseEffect.cs | 2 +- .../Scripts/Pokemon/NightmareEffect.cs | 2 +- .../Scripts/Pokemon/PerishSongEffect.cs | 2 +- .../Pokemon/ProtectionFailureScript.cs | 2 +- .../Scripts/Pokemon/RageEffect.cs | 2 +- .../Scripts/Pokemon/RoostEffect.cs | 2 +- .../Scripts/Pokemon/SlowStartEffect.cs | 2 +- .../Scripts/Pokemon/TauntEffect.cs | 2 +- .../Scripts/Pokemon/ThroatChopEffect.cs | 2 +- .../Scripts/Pokemon/WhirlpoolEffect.cs | 2 +- .../Scripts/Pokemon/WishEffect.cs | 2 +- .../Scripts/Pokemon/YawnEffect.cs | 2 +- .../Scripts/Side/AuroraVeilEffect.cs | 3 +- .../Scripts/Side/DoomDesireEffect.cs | 2 +- .../DoublePowerIfTargetDamagedInTurnData.cs | 3 +- .../Scripts/Side/EchoedVoiceData.cs | 2 +- .../Scripts/Side/LightScreenEffect.cs | 2 +- .../Scripts/Side/MatBlockEffect.cs | 2 +- .../Scripts/Side/QuickGuardEffect.cs | 2 +- .../Scripts/Side/RagePowderEffect.cs | 2 +- .../Scripts/Side/ReflectEffect.cs | 2 +- .../Scripts/Side/SpotlightEffect.cs | 2 +- .../Scripts/Side/TailwindEffect.cs | 2 +- .../Scripts/Side/WideGuardEffect.cs | 2 +- .../Scripts/Status/BadlyPoisoned.cs | 4 +-- .../Scripts/Status/Burned.cs | 2 +- .../Scripts/Status/Frozen.cs | 2 +- .../Scripts/Status/Poisoned.cs | 2 +- .../Scripts/Weather/DesolateLands.cs | 2 +- .../Scripts/Weather/Hail.cs | 2 +- .../Scripts/Weather/HarshSunlight.cs | 2 +- .../Scripts/Weather/PrimordialSea.cs | 2 +- .../Scripts/Weather/Rain.cs | 2 +- 86 files changed, 311 insertions(+), 88 deletions(-) create mode 100644 Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/SlushRush.cs create mode 100644 Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/Sniper.cs create mode 100644 Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/SnowCloak.cs create mode 100644 Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/SnowWarning.cs create mode 100644 Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/SolarPower.cs create mode 100644 Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/SolidRock.cs create mode 100644 Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/SoulHeart.cs create mode 100644 Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/Soundproof.cs create mode 100644 Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/SpeedBoost.cs diff --git a/PkmnLib.Dynamic/BattleFlow/TurnRunner.cs b/PkmnLib.Dynamic/BattleFlow/TurnRunner.cs index e6afc1c..d9cdf3f 100644 --- a/PkmnLib.Dynamic/BattleFlow/TurnRunner.cs +++ b/PkmnLib.Dynamic/BattleFlow/TurnRunner.cs @@ -60,15 +60,15 @@ public static class TurnRunner { scripts.Clear(); pokemon.GetOwnScripts(scripts); - scripts.RunScriptHook(x => x.OnEndTurn(battle)); + scripts.RunScriptHook(x => x.OnEndTurn(pokemon, battle)); } scripts.Clear(); side.GetOwnScripts(scripts); - scripts.RunScriptHook(x => x.OnEndTurn(battle)); + scripts.RunScriptHook(x => x.OnEndTurn(side, battle)); } scripts.Clear(); battle.GetOwnScripts(scripts); - scripts.RunScriptHook(x => x.OnEndTurn(battle)); + scripts.RunScriptHook(x => x.OnEndTurn(battle, battle)); } } diff --git a/PkmnLib.Dynamic/ScriptHandling/Script.cs b/PkmnLib.Dynamic/ScriptHandling/Script.cs index cbc0cf5..5a2b044 100644 --- a/PkmnLib.Dynamic/ScriptHandling/Script.cs +++ b/PkmnLib.Dynamic/ScriptHandling/Script.cs @@ -552,8 +552,9 @@ public abstract class Script : IDeepCloneable /// running. Note that choices are not active anymore here, so their scripts do not call this /// function. /// + /// /// - public virtual void OnEndTurn(IBattle battle) + public virtual void OnEndTurn(IScriptSource owner, IBattle battle) { } diff --git a/Plugins/PkmnLib.Plugin.Gen7/Data/Abilities.jsonc b/Plugins/PkmnLib.Plugin.Gen7/Data/Abilities.jsonc index 2a1f2d8..0a06621 100755 --- a/Plugins/PkmnLib.Plugin.Gen7/Data/Abilities.jsonc +++ b/Plugins/PkmnLib.Plugin.Gen7/Data/Abilities.jsonc @@ -567,15 +567,33 @@ "slow_start": { "effect": "slow_start" }, - "slush_rush": {}, - "sniper": {}, - "snow_cloak": {}, - "snow_warning": {}, - "solar_power": {}, - "solid_rock": {}, - "soul_heart": {}, - "soundproof": {}, - "speed_boost": {}, + "slush_rush": { + "effect": "slush_rush" + }, + "sniper": { + "effect": "sniper" + }, + "snow_cloak": { + "effect": "snow_cloak" + }, + "snow_warning": { + "effect": "snow_warning" + }, + "solar_power": { + "effect": "solar_power" + }, + "solid_rock": { + "effect": "solid_rock" + }, + "soul_heart": { + "effect": "soul_heart" + }, + "soundproof": { + "effect": "soundproof" + }, + "speed_boost": { + "effect": "speed_boost" + }, "stakeout": {}, "stall": {}, "stamina": {}, diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/BadDreams.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/BadDreams.cs index 086f057..11fe8dc 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/BadDreams.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/BadDreams.cs @@ -20,7 +20,7 @@ public class BadDreams : Script } /// - public override void OnEndTurn(IBattle battle) + public override void OnEndTurn(IScriptSource owner, IBattle battle) { if (_owner is null) return; diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/DrySkin.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/DrySkin.cs index 2221462..cbb0712 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/DrySkin.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/DrySkin.cs @@ -39,7 +39,7 @@ public class DrySkin : Script } /// - public override void OnEndTurn(IBattle battle) + public override void OnEndTurn(IScriptSource owner, IBattle battle) { if (_owningPokemon == null) return; diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/Harvest.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/Harvest.cs index a20961e..5615003 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/Harvest.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/Harvest.cs @@ -19,7 +19,7 @@ public class Harvest : Script } /// - public override void OnEndTurn(IBattle battle) + public override void OnEndTurn(IScriptSource owner, IBattle battle) { if (_pokemon?.BattleData is null) return; diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/Healer.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/Healer.cs index 8a86920..0132c21 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/Healer.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/Healer.cs @@ -19,7 +19,7 @@ public class Healer : Script } /// - public override void OnEndTurn(IBattle battle) + public override void OnEndTurn(IScriptSource owner, IBattle battle) { if (_pokemon?.BattleData is null) return; diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/Hydration.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/Hydration.cs index 490f1f5..84b26ba 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/Hydration.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/Hydration.cs @@ -19,7 +19,7 @@ public class Hydration : Script } /// - public override void OnEndTurn(IBattle battle) + public override void OnEndTurn(IScriptSource owner, IBattle battle) { if (_pokemon is null) return; diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/IceBody.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/IceBody.cs index 235e67f..8f8b27c 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/IceBody.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/IceBody.cs @@ -19,7 +19,7 @@ public class IceBody : Script } /// - public override void OnEndTurn(IBattle battle) + public override void OnEndTurn(IScriptSource owner, IBattle battle) { if (_pokemon is null) return; diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/Moody.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/Moody.cs index c22a874..8113e10 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/Moody.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/Moody.cs @@ -19,7 +19,7 @@ public class Moody : Script } /// - public override void OnEndTurn(IBattle battle) + public override void OnEndTurn(IScriptSource owner, IBattle battle) { if (_pokemon == null) return; diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/PowerConstruct.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/PowerConstruct.cs index e3fc87e..ac48631 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/PowerConstruct.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/PowerConstruct.cs @@ -19,7 +19,7 @@ public class PowerConstruct : Script } /// - public override void OnEndTurn(IBattle battle) + public override void OnEndTurn(IScriptSource owner, IBattle battle) { if (_pokemon?.BattleData?.Battle == null) return; diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/RainDish.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/RainDish.cs index d493c54..f0cb90b 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/RainDish.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/RainDish.cs @@ -19,7 +19,7 @@ public class RainDish : Script } /// - public override void OnEndTurn(IBattle battle) + public override void OnEndTurn(IScriptSource owner, IBattle battle) { if (_owner is null) return; diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/Schooling.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/Schooling.cs index d92de29..0d5c425 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/Schooling.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/Schooling.cs @@ -22,7 +22,7 @@ public class Schooling : Script public override void OnSwitchIn(IPokemon pokemon, byte position) => ChangeFormIfNeeded(pokemon); /// - public override void OnEndTurn(IBattle battle) => ChangeFormIfNeeded(_owningPokemon); + public override void OnEndTurn(IScriptSource owner, IBattle battle) => ChangeFormIfNeeded(_owningPokemon); private static void ChangeFormIfNeeded(IPokemon? pokemon) { diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/ShedSkin.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/ShedSkin.cs index 76db660..b1383fc 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/ShedSkin.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/ShedSkin.cs @@ -19,7 +19,7 @@ public class ShedSkin : Script } /// - public override void OnEndTurn(IBattle battle) + public override void OnEndTurn(IScriptSource owner, IBattle battle) { if (_owningPokemon is null || _owningPokemon.StatusScript.IsEmpty) return; diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/ShieldsDown.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/ShieldsDown.cs index 81dba86..82a3b29 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/ShieldsDown.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/ShieldsDown.cs @@ -22,7 +22,7 @@ public class ShieldsDown : Script public override void OnSwitchIn(IPokemon pokemon, byte position) => ChangeFormIfNeeded(pokemon); /// - public override void OnEndTurn(IBattle battle) => ChangeFormIfNeeded(_owningPokemon); + public override void OnEndTurn(IScriptSource owner, IBattle battle) => ChangeFormIfNeeded(_owningPokemon); private static void ChangeFormIfNeeded(IPokemon? pokemon) { diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/SlushRush.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/SlushRush.cs new file mode 100644 index 0000000..953d60a --- /dev/null +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/SlushRush.cs @@ -0,0 +1,19 @@ +namespace PkmnLib.Plugin.Gen7.Scripts.Abilities; + +/// +/// Slush Rush is an ability that doubles the Pokémon's Speed during hail. +/// +/// Bulbapedia - Slush Rush +/// +[Script(ScriptCategory.Ability, "slush_rush")] +public class SlushRush : Script +{ + /// + public override void ChangeSpeed(ITurnChoice choice, ref uint speed) + { + if (choice.User.BattleData?.Battle.WeatherName == ScriptUtils.ResolveName()) + { + speed *= 2; + } + } +} \ No newline at end of file diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/Sniper.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/Sniper.cs new file mode 100644 index 0000000..1149b90 --- /dev/null +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/Sniper.cs @@ -0,0 +1,16 @@ +namespace PkmnLib.Plugin.Gen7.Scripts.Abilities; + +/// +/// Sniper is an ability that increases the power of critical hits. +/// +/// Bulbapedia - Sniper +/// +[Script(ScriptCategory.Ability, "sniper")] +public class Sniper : Script +{ + /// + public override void ChangeCriticalModifier(IExecutingMove move, IPokemon target, byte hit, ref float modifier) + { + modifier *= 1.5f; + } +} \ No newline at end of file diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/SnowCloak.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/SnowCloak.cs new file mode 100644 index 0000000..f78f61f --- /dev/null +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/SnowCloak.cs @@ -0,0 +1,27 @@ +namespace PkmnLib.Plugin.Gen7.Scripts.Abilities; + +/// +/// Snow Cloak is an ability that raises the Pokémon's evasion during hail. +/// +/// Bulbapedia - Snow Cloak +/// +[Script(ScriptCategory.Ability, "snow_cloak")] +public class SnowCloak : Script +{ + /// + public override void ChangeIncomingAccuracy(IExecutingMove executingMove, IPokemon target, byte hitIndex, + ref int modifiedAccuracy) + { + // If the weather is hail, increase evasion by 20% + if (executingMove.Battle.WeatherName == ScriptUtils.ResolveName()) + { + modifiedAccuracy = (int)(modifiedAccuracy * 0.8f); + } + } + + public override void CustomTrigger(StringKey eventName, ICustomTriggerArgs args) + { + if (eventName == CustomTriggers.IgnoreHail && args is CustomTriggers.IgnoreHailArgs hailArgs) + hailArgs.Ignore = true; + } +} \ No newline at end of file diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/SnowWarning.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/SnowWarning.cs new file mode 100644 index 0000000..1de8be9 --- /dev/null +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/SnowWarning.cs @@ -0,0 +1,25 @@ +namespace PkmnLib.Plugin.Gen7.Scripts.Abilities; + +/// +/// Snow Warning is an ability that creates hail when the Pokémon enters battle. +/// +/// Bulbapedia - Snow Warning +/// +[Script(ScriptCategory.Ability, "snow_warning")] +public class SnowWarning : Script +{ + /// + public override void OnSwitchIn(IPokemon pokemon, byte position) + { + var battleData = pokemon.BattleData; + if (battleData == null) + return; + + if (battleData.Battle.WeatherName == ScriptUtils.ResolveName()) + return; + + EventBatchId batchId = new(); + battleData.Battle.EventHook.Invoke(new AbilityTriggerEvent(pokemon)); + battleData.Battle.SetWeather(ScriptUtils.ResolveName(), 5, batchId); + } +} \ No newline at end of file diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/SolarPower.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/SolarPower.cs new file mode 100644 index 0000000..14c23aa --- /dev/null +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/SolarPower.cs @@ -0,0 +1,34 @@ +namespace PkmnLib.Plugin.Gen7.Scripts.Abilities; + +/// +/// Solar Power is an ability that boosts Special Attack in harsh sunlight but causes the Pokémon to lose HP each turn. +/// +/// Bulbapedia - Solar Power +/// +[Script(ScriptCategory.Ability, "solar_power")] +public class SolarPower : Script +{ + /// + public override void ChangeOffensiveStatValue(IExecutingMove move, IPokemon target, byte hit, uint defensiveStat, + ImmutableStatisticSet targetStats, Statistic stat, ref uint value) + { + if ((stat == Statistic.SpecialAttack && + move.Battle.WeatherName == ScriptUtils.ResolveName()) || + move.Battle.WeatherName == ScriptUtils.ResolveName()) + { + value = value.MultiplyOrMax(1.5f); + } + } + + /// + public override void OnEndTurn(IScriptSource owner, IBattle battle) + { + if (owner is not IPokemon pokemon) + return; + + if (!pokemon.IsUsable) + return; + + pokemon.Damage(pokemon.MaxHealth / 8, DamageSource.Weather); + } +} \ No newline at end of file diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/SolidRock.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/SolidRock.cs new file mode 100644 index 0000000..f4639cf --- /dev/null +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/SolidRock.cs @@ -0,0 +1,17 @@ +namespace PkmnLib.Plugin.Gen7.Scripts.Abilities; + +/// +/// Solid Rock is an ability that reduces damage from super-effective moves. +/// +/// Bulbapedia - Solid Rock +/// +[Script(ScriptCategory.Ability, "solid_rock")] +public class SolidRock : Script +{ + /// + public override void ChangeIncomingMoveDamage(IExecutingMove move, IPokemon target, byte hit, ref uint damage) + { + if (move.GetHitData(target, hit).Effectiveness >= 2f) + damage = (uint)(damage * 0.75f); + } +} \ No newline at end of file diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/SoulHeart.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/SoulHeart.cs new file mode 100644 index 0000000..88e6510 --- /dev/null +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/SoulHeart.cs @@ -0,0 +1,22 @@ +namespace PkmnLib.Plugin.Gen7.Scripts.Abilities; + +/// +/// Soul-Heart is an ability that raises Special Attack when another Pokémon faints. +/// +/// Bulbapedia - Soul-Heart +/// +[Script(ScriptCategory.Ability, "soul_heart")] +public class SoulHeart : Script +{ + /// + public override void OnAllyFaint(IPokemon ally, IPokemon faintedPokemon) + { + ally.ChangeStatBoost(Statistic.SpecialAttack, 1, true, false); + } + + /// + public override void OnOpponentFaints(IExecutingMove move, IPokemon target, byte hit) + { + move.User.ChangeStatBoost(Statistic.SpecialAttack, 1, true, false); + } +} \ No newline at end of file diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/Soundproof.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/Soundproof.cs new file mode 100644 index 0000000..ae4eca4 --- /dev/null +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/Soundproof.cs @@ -0,0 +1,17 @@ +namespace PkmnLib.Plugin.Gen7.Scripts.Abilities; + +/// +/// Soundproof is an ability that grants immunity to sound-based moves. +/// +/// Bulbapedia - Soundproof +/// +[Script(ScriptCategory.Ability, "soundproof")] +public class Soundproof : Script +{ + /// + public override void IsInvulnerableToMove(IExecutingMove move, IPokemon target, ref bool invulnerable) + { + if (move.UseMove.HasFlag("sound")) + invulnerable = true; + } +} \ No newline at end of file diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/SpeedBoost.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/SpeedBoost.cs new file mode 100644 index 0000000..48814cc --- /dev/null +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/SpeedBoost.cs @@ -0,0 +1,24 @@ +namespace PkmnLib.Plugin.Gen7.Scripts.Abilities; + +/// +/// Speed Boost is an ability that raises the Pokémon's Speed at the end of each turn. +/// +/// Bulbapedia - Speed Boost +/// +[Script(ScriptCategory.Ability, "speed_boost")] +public class SpeedBoost : Script +{ + /// + public override void OnEndTurn(IScriptSource owner, IBattle battle) + { + if (owner is not IPokemon pokemon) + return; + + EventBatchId batchId = new(); + battle.EventHook.Invoke(new AbilityTriggerEvent(pokemon) + { + BatchId = batchId, + }); + pokemon.ChangeStatBoost(Statistic.Speed, 1, true, false, batchId); + } +} \ No newline at end of file diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Battle/FairyLockEffect.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Battle/FairyLockEffect.cs index ffa6701..1ccdc36 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Battle/FairyLockEffect.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Battle/FairyLockEffect.cs @@ -18,7 +18,7 @@ public class FairyLockEffect : Script } /// - public override void OnEndTurn(IBattle battle) + public override void OnEndTurn(IScriptSource owner, IBattle battle) { if (_turns <= 0) RemoveSelf(); diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Battle/FutureSightEffect.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Battle/FutureSightEffect.cs index 3ea758a..c294700 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Battle/FutureSightEffect.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Battle/FutureSightEffect.cs @@ -12,7 +12,7 @@ public class FutureSightEffect : Script } /// - public override void OnEndTurn(IBattle battle) + public override void OnEndTurn(IScriptSource owner, IBattle battle) { _turnsLeft -= 1; if (_turnsLeft <= 0) diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Battle/Gravity.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Battle/Gravity.cs index acbcbce..c079888 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Battle/Gravity.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Battle/Gravity.cs @@ -34,7 +34,7 @@ public class Gravity : Script } /// - public override void OnEndTurn(IBattle battle) + public override void OnEndTurn(IScriptSource owner, IBattle battle) { _turns--; if (_turns > 0) diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Battle/MagicRoomEffect.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Battle/MagicRoomEffect.cs index 085b3ca..64f4426 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Battle/MagicRoomEffect.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Battle/MagicRoomEffect.cs @@ -19,7 +19,7 @@ public class MagicRoomEffect : Script } /// - public override void OnEndTurn(IBattle battle) + public override void OnEndTurn(IScriptSource owner, IBattle battle) { if (_turnsLeft > 0) _turnsLeft--; diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Battle/MudSportEffect.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Battle/MudSportEffect.cs index 4e4105d..4dd52d9 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Battle/MudSportEffect.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Battle/MudSportEffect.cs @@ -17,7 +17,7 @@ public class MudSportEffect : Script } /// - public override void OnEndTurn(IBattle battle) + public override void OnEndTurn(IScriptSource owner, IBattle battle) { _turnsLeft--; if (_turnsLeft <= 0) diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Battle/SnatchEffect.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Battle/SnatchEffect.cs index 0fcfc7c..a6244d6 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Battle/SnatchEffect.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Battle/SnatchEffect.cs @@ -53,7 +53,7 @@ public class SnatchEffect : Script } /// - public override void OnEndTurn(IBattle battle) + public override void OnEndTurn(IScriptSource owner, IBattle battle) { RemoveSelf(); } diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Battle/TrickRoomEffect.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Battle/TrickRoomEffect.cs index 77a94cc..b226302 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Battle/TrickRoomEffect.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Battle/TrickRoomEffect.cs @@ -12,7 +12,7 @@ public class TrickRoomEffect : Script } /// - public override void OnEndTurn(IBattle battle) + public override void OnEndTurn(IScriptSource owner, IBattle battle) { _turnsLeft--; if (_turnsLeft <= 0) diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Battle/UproarEffect.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Battle/UproarEffect.cs index e6616e9..fdc4d83 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Battle/UproarEffect.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Battle/UproarEffect.cs @@ -39,7 +39,7 @@ public class UproarEffect : Script } /// - public override void OnEndTurn(IBattle battle) + public override void OnEndTurn(IScriptSource owner, IBattle battle) { if (!_hasUsedUproar) { diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Battle/WonderRoomEffect.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Battle/WonderRoomEffect.cs index 5ec6f04..da91e00 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Battle/WonderRoomEffect.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Battle/WonderRoomEffect.cs @@ -19,7 +19,7 @@ public class WonderRoomEffect : Script } /// - public override void OnEndTurn(IBattle battle) + public override void OnEndTurn(IScriptSource owner, IBattle battle) { TurnsLeft--; if (TurnsLeft <= 0) diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Moves/MetalBurst.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Moves/MetalBurst.cs index 2e7b4e7..3704c8d 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Moves/MetalBurst.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Moves/MetalBurst.cs @@ -43,7 +43,7 @@ public class MetalBurst : Script } /// - public override void OnEndTurn(IBattle battle) + public override void OnEndTurn(IScriptSource owner, IBattle battle) { RemoveSelf(); } diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Moves/MirrorCoat.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Moves/MirrorCoat.cs index e610047..ea196fa 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Moves/MirrorCoat.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Moves/MirrorCoat.cs @@ -43,7 +43,7 @@ public class MirrorCoat : Script } /// - public override void OnEndTurn(IBattle battle) + public override void OnEndTurn(IScriptSource owner, IBattle battle) { RemoveSelf(); } diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/BindEffect.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/BindEffect.cs index 9fbc767..37024e7 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/BindEffect.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/BindEffect.cs @@ -15,7 +15,7 @@ public class BindEffect : Script } /// - public override void OnEndTurn(IBattle battle) + public override void OnEndTurn(IScriptSource owner, IBattle battle) { if (_owner == null) return; diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/ChargeEffect.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/ChargeEffect.cs index ef0c135..da15ea1 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/ChargeEffect.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/ChargeEffect.cs @@ -18,7 +18,7 @@ public class ChargeEffect : Script } /// - public override void OnEndTurn(IBattle battle) + public override void OnEndTurn(IScriptSource owner, IBattle battle) { if (_turnOfUse) { diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/DisableEffect.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/DisableEffect.cs index f414615..c110f7b 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/DisableEffect.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/DisableEffect.cs @@ -21,7 +21,7 @@ public class DisableEffect : Script } /// - public override void OnEndTurn(IBattle battle) + public override void OnEndTurn(IScriptSource owner, IBattle battle) { _turnsLeft--; if (_turnsLeft <= 0) diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/EmbargoEffect.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/EmbargoEffect.cs index dd3d3fd..9dc7fb9 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/EmbargoEffect.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/EmbargoEffect.cs @@ -18,7 +18,7 @@ public class EmbargoEffect : Script } /// - public override void OnEndTurn(IBattle battle) + public override void OnEndTurn(IScriptSource owner, IBattle battle) { _turns--; if (_turns == 0) diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/EncoreEffect.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/EncoreEffect.cs index ca7bc05..0094d86 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/EncoreEffect.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/EncoreEffect.cs @@ -30,7 +30,7 @@ public class EncoreEffect : Script } /// - public override void OnEndTurn(IBattle battle) + public override void OnEndTurn(IScriptSource owner, IBattle battle) { _turns--; if (_turns <= 0) diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/EndureEffect.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/EndureEffect.cs index 44a61e4..2a9bff0 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/EndureEffect.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/EndureEffect.cs @@ -11,5 +11,5 @@ public class EndureEffect : Script } /// - public override void OnEndTurn(IBattle battle) => RemoveSelf(); + public override void OnEndTurn(IScriptSource owner, IBattle battle) => RemoveSelf(); } \ No newline at end of file diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/FireSpinEffect.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/FireSpinEffect.cs index 99e9555..cb0053f 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/FireSpinEffect.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/FireSpinEffect.cs @@ -11,7 +11,7 @@ public class FireSpinEffect : Script } /// - public override void OnEndTurn(IBattle battle) + public override void OnEndTurn(IScriptSource owner, IBattle battle) { _owner.Damage(_owner.BoostedStats.Hp / 8, DamageSource.Misc); } diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/GhostCurseEffect.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/GhostCurseEffect.cs index 5f2546a..30c727c 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/GhostCurseEffect.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/GhostCurseEffect.cs @@ -11,7 +11,7 @@ public class GhostCurseEffect : Script } /// - public override void OnEndTurn(IBattle battle) + public override void OnEndTurn(IScriptSource owner, IBattle battle) { _pokemon.Damage(_pokemon.CurrentHealth / 4, DamageSource.Misc); } diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/HealBlockEffect.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/HealBlockEffect.cs index 09ecc53..8be22f3 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/HealBlockEffect.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/HealBlockEffect.cs @@ -11,7 +11,7 @@ public class HealBlockEffect : Script } /// - public override void OnEndTurn(IBattle battle) + public override void OnEndTurn(IScriptSource owner, IBattle battle) { _duration--; if (_duration <= 0) diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/HealEachEndOfTurnEffect.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/HealEachEndOfTurnEffect.cs index 6abcecb..17052a0 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/HealEachEndOfTurnEffect.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/HealEachEndOfTurnEffect.cs @@ -16,9 +16,10 @@ public class HealEachEndOfTurnEffect : Script _pokemon = pokemon; } + /// /// /// - public override void OnEndTurn(IBattle battle) + public override void OnEndTurn(IScriptSource owner, IBattle battle) { if (_pokemon is null) return; diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/HelpingHandEffect.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/HelpingHandEffect.cs index 1bc7912..a0b7cf9 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/HelpingHandEffect.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/HelpingHandEffect.cs @@ -9,5 +9,5 @@ public class HelpingHandEffect : Script basePower = basePower.MultiplyOrMax(1.5f); /// - public override void OnEndTurn(IBattle battle) => RemoveSelf(); + public override void OnEndTurn(IScriptSource owner, IBattle battle) => RemoveSelf(); } \ No newline at end of file diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/IceBallEffect.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/IceBallEffect.cs index 65ce0d3..5655341 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/IceBallEffect.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/IceBallEffect.cs @@ -31,7 +31,7 @@ public class IceBallEffect : Script } /// - public override void OnEndTurn(IBattle battle) + public override void OnEndTurn(IScriptSource owner, IBattle battle) { if (TurnCount < 5) TurnCount++; diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/InfestationEffect.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/InfestationEffect.cs index 150fad4..2c1a032 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/InfestationEffect.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/InfestationEffect.cs @@ -19,7 +19,7 @@ public class InfestationEffect : Script public override void PreventSelfRunAway(IFleeChoice choice, ref bool prevent) => prevent = true; /// - public override void OnEndTurn(IBattle battle) + public override void OnEndTurn(IScriptSource owner, IBattle battle) { var damage = _owner.BoostedStats.Hp / 8; _owner.Damage(damage, DamageSource.Misc); diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/IngrainEffect.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/IngrainEffect.cs index d6c6d4e..2b3c450 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/IngrainEffect.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/IngrainEffect.cs @@ -19,7 +19,7 @@ public class IngrainEffect : Script public override void PreventSelfRunAway(IFleeChoice choice, ref bool prevent) => prevent = true; /// - public override void OnEndTurn(IBattle battle) + public override void OnEndTurn(IScriptSource owner, IBattle battle) { var heal = _owner.BoostedStats.Hp / 16; _owner.Heal(heal); diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/LeechSeedEffect.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/LeechSeedEffect.cs index ce59aaa..c5ac6ff 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/LeechSeedEffect.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/LeechSeedEffect.cs @@ -13,7 +13,7 @@ public class LeechSeedEffect : Script } /// - public override void OnEndTurn(IBattle battle) + public override void OnEndTurn(IScriptSource owner, IBattle battle) { var damage = _owner.BoostedStats.Hp / 8; if (_owner.CurrentHealth <= damage) diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/LockOnEffect.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/LockOnEffect.cs index 021ea47..15117b8 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/LockOnEffect.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/LockOnEffect.cs @@ -20,7 +20,7 @@ public class LockOnEffect : Script } /// - public override void OnEndTurn(IBattle battle) + public override void OnEndTurn(IScriptSource owner, IBattle battle) { RemoveSelf(); } diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/LuckyChantEffect.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/LuckyChantEffect.cs index 9243d69..40f7656 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/LuckyChantEffect.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/LuckyChantEffect.cs @@ -11,7 +11,7 @@ public class LuckyChantEffect : Script } /// - public override void OnEndTurn(IBattle battle) + public override void OnEndTurn(IScriptSource owner, IBattle battle) { _turnsLeft--; if (_turnsLeft > 0) diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/MagmaStormEffect.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/MagmaStormEffect.cs index ec2496f..360ff40 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/MagmaStormEffect.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/MagmaStormEffect.cs @@ -11,7 +11,7 @@ public class MagmaStormEffect : Script } /// - public override void OnEndTurn(IBattle battle) + public override void OnEndTurn(IScriptSource owner, IBattle battle) { _owner.Damage(_owner.BoostedStats.Hp / 16, DamageSource.Misc); } diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/MagnetRiseEffect.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/MagnetRiseEffect.cs index cbc8438..bb09407 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/MagnetRiseEffect.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/MagnetRiseEffect.cs @@ -15,7 +15,7 @@ public class MagnetRiseEffect : Script } /// - public override void OnEndTurn(IBattle battle) + public override void OnEndTurn(IScriptSource owner, IBattle battle) { if (_turnsRemaining > 0) _turnsRemaining--; diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/NightmareEffect.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/NightmareEffect.cs index 8885e20..ede542a 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/NightmareEffect.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/NightmareEffect.cs @@ -13,7 +13,7 @@ public class NightmareEffect : Script } /// - public override void OnEndTurn(IBattle battle) + public override void OnEndTurn(IScriptSource owner, IBattle battle) { if (!_owner.HasStatus(ScriptUtils.ResolveName())) { diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/PerishSongEffect.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/PerishSongEffect.cs index ddfb7b4..6a5b639 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/PerishSongEffect.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/PerishSongEffect.cs @@ -13,7 +13,7 @@ public class PerishSongEffect : Script } /// - public override void OnEndTurn(IBattle battle) + public override void OnEndTurn(IScriptSource owner, IBattle battle) { _turns--; if (_turns <= 0) diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/ProtectionFailureScript.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/ProtectionFailureScript.cs index ac2777b..10e20ee 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/ProtectionFailureScript.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/ProtectionFailureScript.cs @@ -17,7 +17,7 @@ public class ProtectionFailureScript : Script } /// - public override void OnEndTurn(IBattle battle) + public override void OnEndTurn(IScriptSource owner, IBattle battle) { if (!UsedProtect) { diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/RageEffect.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/RageEffect.cs index b3bc3fc..fe28a19 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/RageEffect.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/RageEffect.cs @@ -10,7 +10,7 @@ public class RageEffect : Script } /// - public override void OnEndTurn(IBattle battle) + public override void OnEndTurn(IScriptSource owner, IBattle battle) { RemoveSelf(); } diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/RoostEffect.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/RoostEffect.cs index ccdea48..9ac0bd6 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/RoostEffect.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/RoostEffect.cs @@ -13,5 +13,5 @@ public class RoostEffect : Script } /// - public override void OnEndTurn(IBattle battle) => RemoveSelf(); + public override void OnEndTurn(IScriptSource owner, IBattle battle) => RemoveSelf(); } \ No newline at end of file diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/SlowStartEffect.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/SlowStartEffect.cs index 8d264f2..64c80ab 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/SlowStartEffect.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/SlowStartEffect.cs @@ -20,7 +20,7 @@ public class SlowStartEffect : Script } /// - public override void OnEndTurn(IBattle battle) + public override void OnEndTurn(IScriptSource owner, IBattle battle) { if (_turnsRemaining <= 0) return; diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/TauntEffect.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/TauntEffect.cs index 76c6d75..bff04b6 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/TauntEffect.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/TauntEffect.cs @@ -25,7 +25,7 @@ public class TauntEffect(int turns) : Script } } - public override void OnEndTurn(IBattle battle) + public override void OnEndTurn(IScriptSource owner, IBattle battle) { _turns--; if (_turns <= 0) diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/ThroatChopEffect.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/ThroatChopEffect.cs index 756e344..a152ad4 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/ThroatChopEffect.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/ThroatChopEffect.cs @@ -20,7 +20,7 @@ public class ThroatChopEffect : Script } /// - public override void OnEndTurn(IBattle battle) + public override void OnEndTurn(IScriptSource owner, IBattle battle) { _turns--; if (_turns <= 0) diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/WhirlpoolEffect.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/WhirlpoolEffect.cs index 346d06c..353bb41 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/WhirlpoolEffect.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/WhirlpoolEffect.cs @@ -56,7 +56,7 @@ public class WhirlpoolEffect : Script } /// - public override void OnEndTurn(IBattle battle) + public override void OnEndTurn(IScriptSource owner, IBattle battle) { if (_user == null) return; diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/WishEffect.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/WishEffect.cs index d7b7a9f..b212ddc 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/WishEffect.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/WishEffect.cs @@ -17,7 +17,7 @@ public class WishEffect : Script } /// - public override void OnEndTurn(IBattle battle) + public override void OnEndTurn(IScriptSource owner, IBattle battle) { if (_pokemon == null) return; diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/YawnEffect.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/YawnEffect.cs index 9c2a5f7..878a0b0 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/YawnEffect.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/YawnEffect.cs @@ -20,7 +20,7 @@ public class YawnEffect : Script } /// - public override void OnEndTurn(IBattle battle) + public override void OnEndTurn(IScriptSource owner, IBattle battle) { if (_pokemon == null) { diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Side/AuroraVeilEffect.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Side/AuroraVeilEffect.cs index 3bcb18f..d8ae0dd 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Side/AuroraVeilEffect.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Side/AuroraVeilEffect.cs @@ -34,9 +34,10 @@ public class AuroraVeilEffect : Script NumberOfTurns = numberOfTurns; } + /// /// /// - public override void OnEndTurn(IBattle battle) + public override void OnEndTurn(IScriptSource owner, IBattle battle) { if (NumberOfTurns > 0) NumberOfTurns--; diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Side/DoomDesireEffect.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Side/DoomDesireEffect.cs index 40387d3..85a3a93 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Side/DoomDesireEffect.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Side/DoomDesireEffect.cs @@ -36,7 +36,7 @@ public class DoomDesireEffect : Script } /// - public override void OnEndTurn(IBattle battle) + public override void OnEndTurn(IScriptSource owner, IBattle battle) { if (_side == null) return; diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Side/DoublePowerIfTargetDamagedInTurnData.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Side/DoublePowerIfTargetDamagedInTurnData.cs index 064c342..fe9f1d6 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Side/DoublePowerIfTargetDamagedInTurnData.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Side/DoublePowerIfTargetDamagedInTurnData.cs @@ -5,9 +5,10 @@ public class DoublePowerIfTargetDamagedInTurnData : Script { public readonly HashSet HitPokemon = []; + /// /// /// - public override void OnEndTurn(IBattle battle) + public override void OnEndTurn(IScriptSource owner, IBattle battle) { RemoveSelf(); } diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Side/EchoedVoiceData.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Side/EchoedVoiceData.cs index a922ff7..c1b6dfe 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Side/EchoedVoiceData.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Side/EchoedVoiceData.cs @@ -7,7 +7,7 @@ namespace PkmnLib.Plugin.Gen7.Scripts.Side; public class EchoedVoiceData : Script { /// - public override void OnEndTurn(IBattle battle) + public override void OnEndTurn(IScriptSource owner, IBattle battle) { RemoveSelf(); } diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Side/LightScreenEffect.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Side/LightScreenEffect.cs index d1b238b..aa41388 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Side/LightScreenEffect.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Side/LightScreenEffect.cs @@ -23,7 +23,7 @@ public class LightScreenEffect(int turns) : Script } /// - public override void OnEndTurn(IBattle battle) + public override void OnEndTurn(IScriptSource owner, IBattle battle) { _turns -= 1; if (_turns <= 0) diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Side/MatBlockEffect.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Side/MatBlockEffect.cs index a8a1860..ddf8524 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Side/MatBlockEffect.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Side/MatBlockEffect.cs @@ -12,7 +12,7 @@ public class MatBlockEffect : Script } /// - public override void OnEndTurn(IBattle battle) + public override void OnEndTurn(IScriptSource owner, IBattle battle) { RemoveSelf(); } diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Side/QuickGuardEffect.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Side/QuickGuardEffect.cs index 42e2892..9710e85 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Side/QuickGuardEffect.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Side/QuickGuardEffect.cs @@ -11,7 +11,7 @@ public class QuickGuardEffect : Script } /// - public override void OnEndTurn(IBattle battle) + public override void OnEndTurn(IScriptSource owner, IBattle battle) { RemoveSelf(); } diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Side/RagePowderEffect.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Side/RagePowderEffect.cs index b38ca67..9eafe2d 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Side/RagePowderEffect.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Side/RagePowderEffect.cs @@ -21,7 +21,7 @@ public class RagePowderEffect : Script } /// - public override void OnEndTurn(IBattle battle) + public override void OnEndTurn(IScriptSource owner, IBattle battle) { RemoveSelf(); } diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Side/ReflectEffect.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Side/ReflectEffect.cs index 92c0f8f..c1eb923 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Side/ReflectEffect.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Side/ReflectEffect.cs @@ -27,7 +27,7 @@ public class ReflectEffect(int turns) : Script } /// - public override void OnEndTurn(IBattle battle) + public override void OnEndTurn(IScriptSource owner, IBattle battle) { if (_turns > 0) { diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Side/SpotlightEffect.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Side/SpotlightEffect.cs index 16cb5eb..1b5cf5a 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Side/SpotlightEffect.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Side/SpotlightEffect.cs @@ -25,7 +25,7 @@ public class SpotlightEffect : Script } /// - public override void OnEndTurn(IBattle battle) + public override void OnEndTurn(IScriptSource owner, IBattle battle) { RemoveSelf(); } diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Side/TailwindEffect.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Side/TailwindEffect.cs index f8c20e9..23d9422 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Side/TailwindEffect.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Side/TailwindEffect.cs @@ -12,7 +12,7 @@ public class TailwindEffect : Script } /// - public override void OnEndTurn(IBattle battle) + public override void OnEndTurn(IScriptSource owner, IBattle battle) { _duration--; if (_duration <= 0) diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Side/WideGuardEffect.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Side/WideGuardEffect.cs index 41b2249..a3ed080 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Side/WideGuardEffect.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Side/WideGuardEffect.cs @@ -31,7 +31,7 @@ public class WideGuardEffect : Script } /// - public override void OnEndTurn(IBattle battle) + public override void OnEndTurn(IScriptSource owner, IBattle battle) { RemoveSelf(); } diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Status/BadlyPoisoned.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Status/BadlyPoisoned.cs index 1b0c25d..ea308c7 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Status/BadlyPoisoned.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Status/BadlyPoisoned.cs @@ -9,9 +9,9 @@ public class BadlyPoisoned : Poisoned public override float GetPoisonMultiplier() => 1f / (16f * _turns); /// - public override void OnEndTurn(IBattle battle) + public override void OnEndTurn(IScriptSource owner, IBattle battle) { - base.OnEndTurn(battle); + base.OnEndTurn(owner, battle); _turns = Math.Min(_turns + 1, 15); } } \ No newline at end of file diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Status/Burned.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Status/Burned.cs index aeb6917..bf2622b 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Status/Burned.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Status/Burned.cs @@ -25,7 +25,7 @@ public class Burned : Script } /// - public override void OnEndTurn(IBattle battle) + public override void OnEndTurn(IScriptSource owner, IBattle battle) { if (_target == null) return; diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Status/Frozen.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Status/Frozen.cs index dd68181..659f4b7 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Status/Frozen.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Status/Frozen.cs @@ -28,7 +28,7 @@ public class Frozen : Script } /// - public override void OnEndTurn(IBattle battle) + public override void OnEndTurn(IScriptSource owner, IBattle battle) { if (_pokemon == null) return; diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Status/Poisoned.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Status/Poisoned.cs index 8b6786c..7ccd0ee 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Status/Poisoned.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Status/Poisoned.cs @@ -16,7 +16,7 @@ public class Poisoned : Script public virtual float GetPoisonMultiplier() => 1f / 8f; /// - public override void OnEndTurn(IBattle battle) + public override void OnEndTurn(IScriptSource owner, IBattle battle) { if (_pokemon == null) return; diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Weather/DesolateLands.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Weather/DesolateLands.cs index 6afc004..17bd53a 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Weather/DesolateLands.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Weather/DesolateLands.cs @@ -35,7 +35,7 @@ public class DesolateLands : HarshSunlight } /// - public override void OnEndTurn(IBattle battle) + public override void OnEndTurn(IScriptSource owner, IBattle battle) { // We don't want to call base.OnEndTurn here, as we want to prevent the weather from ending } diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Weather/Hail.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Weather/Hail.cs index 2aa53a4..7b22ee0 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Weather/Hail.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Weather/Hail.cs @@ -15,7 +15,7 @@ public class Hail : Script, ILimitedTurnsScript } /// - public override void OnEndTurn(IBattle battle) + public override void OnEndTurn(IScriptSource owner, IBattle battle) { if (!battle.Library.StaticLibrary.Types.TryGetTypeIdentifier("ice", out var iceType)) { diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Weather/HarshSunlight.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Weather/HarshSunlight.cs index e32b7d2..06a1f8c 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Weather/HarshSunlight.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Weather/HarshSunlight.cs @@ -20,7 +20,7 @@ public class HarshSunlight : Script, ILimitedTurnsScript } /// - public override void OnEndTurn(IBattle battle) + public override void OnEndTurn(IScriptSource owner, IBattle battle) { _duration--; if (_duration <= 0) diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Weather/PrimordialSea.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Weather/PrimordialSea.cs index a47224f..31bbca4 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Weather/PrimordialSea.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Weather/PrimordialSea.cs @@ -34,7 +34,7 @@ public class PrimordialSea : Rain } /// - public override void OnEndTurn(IBattle battle) + public override void OnEndTurn(IScriptSource owner, IBattle battle) { // We don't want to call base.OnEndTurn here, as we want to prevent the weather from ending } diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Weather/Rain.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Weather/Rain.cs index c228075..3d1d479 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Weather/Rain.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Weather/Rain.cs @@ -15,7 +15,7 @@ public class Rain : Script, ILimitedTurnsScript } /// - public override void OnEndTurn(IBattle battle) + public override void OnEndTurn(IScriptSource owner, IBattle battle) { _duration--; if (_duration <= 0)