diff --git a/PkmnLib.Dynamic/ScriptHandling/ProxyScript.cs b/PkmnLib.Dynamic/ScriptHandling/ProxyScript.cs index 77494e2..36c744e 100644 --- a/PkmnLib.Dynamic/ScriptHandling/ProxyScript.cs +++ b/PkmnLib.Dynamic/ScriptHandling/ProxyScript.cs @@ -23,7 +23,7 @@ public class ProxyScript : Script /// public override void ChangeOffensiveStatValue(IExecutingMove move, IPokemon target, byte hit, uint defensiveStat, - ImmutableStatisticSet targetStats, ref uint value) + ImmutableStatisticSet targetStats, Statistic stat, ref uint value) { foreach (var (script, handler) in _changeOffensiveStatValueEvents) { diff --git a/PkmnLib.Dynamic/ScriptHandling/Script.cs b/PkmnLib.Dynamic/ScriptHandling/Script.cs index b2db0f0..6db2c4e 100644 --- a/PkmnLib.Dynamic/ScriptHandling/Script.cs +++ b/PkmnLib.Dynamic/ScriptHandling/Script.cs @@ -344,7 +344,7 @@ public abstract class Script : IDeepCloneable /// This function allows a script to change the actual offensive stat values used when calculating damage /// public virtual void ChangeOffensiveStatValue(IExecutingMove move, IPokemon target, byte hit, uint defensiveStat, - ImmutableStatisticSet targetStats, ref uint value) + ImmutableStatisticSet targetStats, Statistic stat, ref uint value) { } @@ -352,7 +352,7 @@ public abstract class Script : IDeepCloneable /// This function allows a script to change the actual defensive stat values used when calculating damage. /// public virtual void ChangeDefensiveStatValue(IExecutingMove move, IPokemon target, byte hit, uint offensiveStat, - ImmutableStatisticSet targetStats, ref uint value) + ImmutableStatisticSet targetStats, Statistic stat, ref uint value) { } diff --git a/Plugins/PkmnLib.Plugin.Gen7/Data/Abilities.jsonc b/Plugins/PkmnLib.Plugin.Gen7/Data/Abilities.jsonc index 0098278..03d7e4e 100755 --- a/Plugins/PkmnLib.Plugin.Gen7/Data/Abilities.jsonc +++ b/Plugins/PkmnLib.Plugin.Gen7/Data/Abilities.jsonc @@ -210,16 +210,36 @@ "fur_coat": { "effect": "fur_coat" }, - "gale_wings": {}, - "galvanize": {}, - "gluttony": {}, - "gooey": {}, - "grass_pelt": {}, - "grassy_surge": {}, - "guts": {}, - "harvest": {}, - "healer": {}, - "heatproof": {}, + "gale_wings": { + "effect": "gale_wings" + }, + "galvanize": { + "effect": "galvanize" + }, + "gluttony": { + "effect": "gluttony" + }, + "gooey": { + "effect": "gooey" + }, + "grass_pelt": { + "effect": "grass_pelt" + }, + "grassy_surge": { + "effect": "grassy_surge" + }, + "guts": { + "effect": "guts" + }, + "harvest": { + "effect": "harvest" + }, + "healer": { + "effect": "healer" + }, + "heatproof": { + "effect": "heatproof" + }, "heavy_metal": {}, "honey_gather": {}, "huge_power": {}, diff --git a/Plugins/PkmnLib.Plugin.Gen7/Libraries/Battling/Gen7DamageCalculator.cs b/Plugins/PkmnLib.Plugin.Gen7/Libraries/Battling/Gen7DamageCalculator.cs index 13bbd8a..57508e0 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Libraries/Battling/Gen7DamageCalculator.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Libraries/Battling/Gen7DamageCalculator.cs @@ -132,11 +132,10 @@ public class Gen7DamageCalculator(Gen7PluginConfiguration configuration) : IDama var defensiveStat = targetStats.GetStatistic(defensive); var origOffensiveStat = offensiveStat; - executingMove.RunScriptHook(script => - script.ChangeOffensiveStatValue(executingMove, target, hitNumber, defensiveStat, targetStats, - ref offensiveStat)); + executingMove.RunScriptHook(script => script.ChangeOffensiveStatValue(executingMove, target, hitNumber, + defensiveStat, targetStats, offensive, ref offensiveStat)); executingMove.RunScriptHook(script => script.ChangeDefensiveStatValue(executingMove, target, hitNumber, - origOffensiveStat, targetStats, ref defensiveStat)); + origOffensiveStat, targetStats, defensive, ref defensiveStat)); var modifier = (float)offensiveStat / defensiveStat; executingMove.RunScriptHook(script => diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/Anticipation.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/Anticipation.cs index 6442d68..6a44259 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/Anticipation.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/Anticipation.cs @@ -1,5 +1,3 @@ -using PkmnLib.Static.Utils; - namespace PkmnLib.Plugin.Gen7.Scripts.Abilities; /// diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/AuraBreak.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/AuraBreak.cs index a26c4bb..f19b45c 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/AuraBreak.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/AuraBreak.cs @@ -1,5 +1,3 @@ -using PkmnLib.Static.Utils; - namespace PkmnLib.Plugin.Gen7.Scripts.Abilities; /// diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/BadDreams.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/BadDreams.cs index 13507ac..086f057 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/BadDreams.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/BadDreams.cs @@ -1,5 +1,3 @@ -using PkmnLib.Static.Utils; - namespace PkmnLib.Plugin.Gen7.Scripts.Abilities; /// diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/ChangeMoveTypeAbility.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/ChangeMoveTypeAbility.cs index 5112fda..cd8f487 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/ChangeMoveTypeAbility.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/ChangeMoveTypeAbility.cs @@ -1,5 +1,3 @@ -using PkmnLib.Static.Utils; - namespace PkmnLib.Plugin.Gen7.Scripts.Abilities; /// diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/Comatose.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/Comatose.cs index 9f7cce1..ad41dac 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/Comatose.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/Comatose.cs @@ -1,5 +1,3 @@ -using PkmnLib.Static.Utils; - namespace PkmnLib.Plugin.Gen7.Scripts.Abilities; /// diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/DarkAura.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/DarkAura.cs index cba063c..2cd6d9f 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/DarkAura.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/DarkAura.cs @@ -1,5 +1,3 @@ -using PkmnLib.Static.Utils; - namespace PkmnLib.Plugin.Gen7.Scripts.Abilities; /// diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/ElectricSurge.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/ElectricSurge.cs index 9d88485..4aaf37d 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/ElectricSurge.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/ElectricSurge.cs @@ -1,5 +1,3 @@ -using PkmnLib.Static.Utils; - namespace PkmnLib.Plugin.Gen7.Scripts.Abilities; /// diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/GaleWings.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/GaleWings.cs new file mode 100644 index 0000000..bafe6b8 --- /dev/null +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/GaleWings.cs @@ -0,0 +1,23 @@ +namespace PkmnLib.Plugin.Gen7.Scripts.Abilities; + +/// +/// Gale Wings is an ability that gives priority to Flying-type moves when the Pokémon's HP is full. +/// This ability is commonly associated with Fletchling, Fletchinder, and Talonflame. +/// +/// Bulbapedia - Gale Wings +/// +[Script(ScriptCategory.Ability, "gale_wings")] +public class GaleWings : Script +{ + /// + public override void ChangePriority(IMoveChoice choice, ref sbyte priority) + { + if (choice.User.CurrentHealth != choice.User.MaxHealth) + return; + // Defensive programming, should never happen + if (priority == sbyte.MaxValue) + return; + + priority++; + } +} \ No newline at end of file diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/Galvanize.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/Galvanize.cs new file mode 100644 index 0000000..c612c1b --- /dev/null +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/Galvanize.cs @@ -0,0 +1,29 @@ +namespace PkmnLib.Plugin.Gen7.Scripts.Abilities; + +/// +/// Galvanize is an ability that turns Normal-type moves into Electric-type moves and boosts their power. +/// This ability is exclusive to Alolan Golem. +/// +/// Bulbapedia - Galvanize +/// +[Script(ScriptCategory.Ability, "galvanize")] +public class Galvanize : Script +{ + /// + public override void ChangeMoveType(IExecutingMove move, IPokemon target, byte hit, + ref TypeIdentifier? typeIdentifier) + { + if (typeIdentifier?.Name == "normal" && + move.Battle.Library.StaticLibrary.Types.TryGetTypeIdentifier("electric", out var electricType)) + { + typeIdentifier = electricType; + } + } + + /// + public override void ChangeDamageModifier(IExecutingMove move, IPokemon target, byte hit, ref float modifier) + { + if (move.GetHitData(target, hit).Type?.Name == "electric") + modifier *= 1.2f; + } +} \ No newline at end of file diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/Gluttony.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/Gluttony.cs new file mode 100644 index 0000000..e0d83cb --- /dev/null +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/Gluttony.cs @@ -0,0 +1,26 @@ +namespace PkmnLib.Plugin.Gen7.Scripts.Abilities; + +/// +/// Gluttony is an ability that causes a Pokémon to eat a held Berry when its HP drops to half or less, rather than a third or less. +/// +/// Bulbapedia - Gluttony +/// +[Script(ScriptCategory.Ability, "gluttony")] +public class Gluttony : Script +{ + /// + public override void OnDamage(IPokemon pokemon, DamageSource source, uint oldHealth, uint newHealth) + { + if (pokemon.BattleData is null) + return; + var oldHealthFraction = (float)oldHealth / pokemon.MaxHealth; + var newHealthFraction = (float)newHealth / pokemon.MaxHealth; + if (!(oldHealthFraction >= 0.5f) || !(newHealthFraction < 0.5f)) + return; + + if (pokemon.HeldItem?.Category != ItemCategory.Berry) + return; + + // FIXME: Implement after Berry triggers are implemented + } +} \ No newline at end of file diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/Gooey.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/Gooey.cs new file mode 100644 index 0000000..788dfc9 --- /dev/null +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/Gooey.cs @@ -0,0 +1,18 @@ +namespace PkmnLib.Plugin.Gen7.Scripts.Abilities; + +/// +/// Gooey is an ability that lowers the Speed of attackers making contact with the Pokémon. +/// +/// Bulbapedia - Gooey +/// +[Script(ScriptCategory.Ability, "gooey")] +public class Gooey : Script +{ + /// + public override void OnIncomingHit(IExecutingMove move, IPokemon target, byte hit) + { + if (!move.UseMove.HasFlag("contact")) + return; + move.User.ChangeStatBoost(Statistic.Speed, -1, false, false); + } +} \ No newline at end of file diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/GrassPelt.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/GrassPelt.cs new file mode 100644 index 0000000..1e3ecd0 --- /dev/null +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/GrassPelt.cs @@ -0,0 +1,19 @@ +namespace PkmnLib.Plugin.Gen7.Scripts.Abilities; + +/// +/// Grass Pelt is an ability that boosts Defense in Grassy Terrain. +/// This ability is exclusive to Gogoat. +/// +/// Bulbapedia - Grass Pelt +/// +[Script(ScriptCategory.Ability, "grass_pelt")] +public class GrassPelt : Script +{ + /// + public override void ChangeDefensiveStatValue(IExecutingMove move, IPokemon target, byte hit, uint offensiveStat, + ImmutableStatisticSet targetStats, Statistic stat, ref uint value) + { + if (move.Battle.TerrainName == ScriptUtils.ResolveName() && stat == Statistic.Defense) + value = value.MultiplyOrMax(1.5f); + } +} \ No newline at end of file diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/GrassySurge.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/GrassySurge.cs new file mode 100644 index 0000000..eb620bc --- /dev/null +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/GrassySurge.cs @@ -0,0 +1,25 @@ +namespace PkmnLib.Plugin.Gen7.Scripts.Abilities; + +/// +/// Grassy Surge is an ability that creates Grassy Terrain when the Pokémon enters battle. +/// +/// Bulbapedia - Grassy Surge +/// +[Script(ScriptCategory.Ability, "grassy_surge")] +public class GrassySurge : Script +{ + /// + public override void OnSwitchIn(IPokemon pokemon, byte position) + { + var battleData = pokemon.BattleData; + if (battleData == null) + return; + + EventBatchId batchId = new(); + battleData.Battle.EventHook.Invoke(new AbilityTriggerEvent(pokemon) + { + BatchId = batchId, + }); + battleData.Battle.SetTerrain(ScriptUtils.ResolveName(), batchId); + } +} \ No newline at end of file diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/Guts.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/Guts.cs new file mode 100644 index 0000000..020dfed --- /dev/null +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/Guts.cs @@ -0,0 +1,23 @@ +namespace PkmnLib.Plugin.Gen7.Scripts.Abilities; + +/// +/// Guts is an ability that boosts the Attack stat if the Pokémon has a status condition. +/// +/// Bulbapedia - Guts +/// +[Script(ScriptCategory.Ability, "guts")] +public class Guts : Script +{ + /// + public override void ChangeOffensiveStatValue(IExecutingMove move, IPokemon target, byte hit, uint defensiveStat, + ImmutableStatisticSet targetStats, Statistic stat, ref uint value) + { + if (target.StatusScript.IsEmpty) + return; + + if (stat != Statistic.Attack) + return; + + value = value.MultiplyOrMax(1.5f); + } +} \ No newline at end of file diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/Harvest.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/Harvest.cs new file mode 100644 index 0000000..a20961e --- /dev/null +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/Harvest.cs @@ -0,0 +1,39 @@ +namespace PkmnLib.Plugin.Gen7.Scripts.Abilities; + +/// +/// Harvest is an ability that may restore a consumed Berry at the end of each turn. +/// +/// Bulbapedia - Harvest +/// +[Script(ScriptCategory.Ability, "harvest")] +public class Harvest : Script +{ + private IPokemon? _pokemon; + + /// + public override void OnAddedToParent(IScriptSource source) + { + if (source is not IPokemon pokemon) + throw new InvalidOperationException("Harvest can only be added to a Pokemon script source."); + _pokemon = pokemon; + } + + /// + public override void OnEndTurn(IBattle battle) + { + if (_pokemon?.BattleData is null) + return; + if (_pokemon.HeldItem is not null) + return; + + var consumedBerry = _pokemon.BattleData.ConsumedItems.FirstOrDefault(x => x.Category == ItemCategory.Berry); + if (consumedBerry != null) + { + var rng = battle.Random; + if (battle.WeatherName != ScriptUtils.ResolveName() && rng.GetInt(1) != 0) + return; + battle.EventHook.Invoke(new AbilityTriggerEvent(_pokemon)); + _ = _pokemon.SetHeldItem(consumedBerry); + } + } +} \ No newline at end of file diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/Healer.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/Healer.cs new file mode 100644 index 0000000..8a86920 --- /dev/null +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/Healer.cs @@ -0,0 +1,51 @@ +namespace PkmnLib.Plugin.Gen7.Scripts.Abilities; + +/// +/// Healer is an ability that may heal an ally's status condition at the end of each turn in a double battle. +/// +/// Bulbapedia - Healer +/// +[Script(ScriptCategory.Ability, "healer")] +public class Healer : Script +{ + private IPokemon? _pokemon; + + /// + public override void OnAddedToParent(IScriptSource source) + { + if (source is not IPokemon pokemon) + throw new InvalidOperationException("Harvest can only be added to a Pokemon script source."); + _pokemon = pokemon; + } + + /// + public override void OnEndTurn(IBattle battle) + { + if (_pokemon?.BattleData is null) + return; + + if (_pokemon.BattleData.Position > 0) + { + var leftAlly = _pokemon.BattleData.BattleSide.Pokemon[_pokemon.BattleData.Position - 1]; + TryClearStatus(battle, leftAlly); + } + if (_pokemon.BattleData.Position < _pokemon.BattleData.BattleSide.Pokemon.Count - 1) + { + var rightAlly = _pokemon.BattleData.BattleSide.Pokemon[_pokemon.BattleData.Position + 1]; + TryClearStatus(battle, rightAlly); + } + } + + private static void TryClearStatus(IBattle battle, IPokemon? leftAlly) + { + if (leftAlly is null) + return; + if (leftAlly.StatusScript.IsEmpty) + return; + var rng = battle.Random; + if (rng.GetInt(3) != 0) // 1 in 3 chance to heal + return; + battle.EventHook.Invoke(new AbilityTriggerEvent(leftAlly)); + leftAlly.ClearStatus(); + } +} \ No newline at end of file diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/Heatproof.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/Heatproof.cs new file mode 100644 index 0000000..6d755a0 --- /dev/null +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/Heatproof.cs @@ -0,0 +1,19 @@ +namespace PkmnLib.Plugin.Gen7.Scripts.Abilities; + +/// +/// Heatproof is an ability that halves the damage taken from Fire-type moves and burn. +/// +/// Bulbapedia - Heatproof +/// +[Script(ScriptCategory.Ability, "heatproof")] +public class Heatproof : Script +{ + /// + public override void ChangeBasePower(IExecutingMove move, IPokemon target, byte hit, ref ushort basePower) + { + if (move.GetHitData(target, hit).Type?.Name == "fire") + { + basePower = (ushort)(basePower / 2); + } + } +} \ No newline at end of file diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/IncreasedStabAbility.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/IncreasedStabAbility.cs index 071713d..184b9f1 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/IncreasedStabAbility.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/IncreasedStabAbility.cs @@ -1,5 +1,3 @@ -using PkmnLib.Static.Utils; - namespace PkmnLib.Plugin.Gen7.Scripts.Abilities; /// @@ -15,10 +13,9 @@ public class IncreasedStab : Script public override void ChangeStabModifier(IExecutingMove executingMove, IPokemon target, byte hitNumber, ref float modifier) { - if (modifier.IsApproximatelyEqualTo(1.5f)) - { - executingMove.Battle.EventHook.Invoke(new AbilityTriggerEvent(executingMove.User)); - modifier = 2.0f; - } + if (!modifier.IsApproximatelyEqualTo(1.5f)) + return; + executingMove.Battle.EventHook.Invoke(new AbilityTriggerEvent(executingMove.User)); + modifier = 2.0f; } } \ No newline at end of file diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/PowerUpTypeAtLowHealth.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/PowerUpTypeAtLowHealth.cs index 1a5789e..b3a7d14 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/PowerUpTypeAtLowHealth.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/PowerUpTypeAtLowHealth.cs @@ -1,5 +1,3 @@ -using PkmnLib.Static.Utils; - namespace PkmnLib.Plugin.Gen7.Scripts.Abilities; /// diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/PreventStatLowering.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/PreventStatLowering.cs index 0a40116..545aea2 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/PreventStatLowering.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/PreventStatLowering.cs @@ -1,5 +1,3 @@ -using PkmnLib.Static.Utils; - namespace PkmnLib.Plugin.Gen7.Scripts.Abilities; /// diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/SpeedModifierInWeather.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/SpeedModifierInWeather.cs index cfb56ea..cab8eab 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/SpeedModifierInWeather.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Abilities/SpeedModifierInWeather.cs @@ -1,5 +1,3 @@ -using PkmnLib.Static.Utils; - namespace PkmnLib.Plugin.Gen7.Scripts.Abilities; /// diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Battle/WonderRoomEffect.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Battle/WonderRoomEffect.cs index 33a631c..5ec6f04 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Battle/WonderRoomEffect.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Battle/WonderRoomEffect.cs @@ -8,7 +8,7 @@ public class WonderRoomEffect : Script /// public override void ChangeDefensiveStatValue(IExecutingMove move, IPokemon target, byte hit, uint offensiveStat, - ImmutableStatisticSet targetStats, ref uint value) + ImmutableStatisticSet targetStats, Statistic stat, ref uint value) { value = move.UseMove.Category switch { diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Moves/FoulPlay.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Moves/FoulPlay.cs index d4b0ffa..cffb924 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Moves/FoulPlay.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Moves/FoulPlay.cs @@ -7,7 +7,7 @@ public class FoulPlay : Script { /// public override void ChangeOffensiveStatValue(IExecutingMove move, IPokemon target, byte hit, uint _, - ImmutableStatisticSet targetStats, ref uint value) + ImmutableStatisticSet targetStats, Statistic stat, ref uint value) { value = move.UseMove.Category == MoveCategory.Physical ? target.BoostedStats.Attack diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Moves/Psyshock.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Moves/Psyshock.cs index f4719e9..7990b85 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Moves/Psyshock.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Moves/Psyshock.cs @@ -5,7 +5,7 @@ public class Psyshock : Script { /// public override void ChangeDefensiveStatValue(IExecutingMove move, IPokemon target, byte hit, uint offensiveStat, - ImmutableStatisticSet targetStats, ref uint value) + ImmutableStatisticSet targetStats, Statistic stat, ref uint value) { value = targetStats.Defense; } diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/FlashFireEffect.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/FlashFireEffect.cs index c67363f..0db5ee3 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/FlashFireEffect.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/FlashFireEffect.cs @@ -5,7 +5,7 @@ public class FlashFireEffect : Script { /// public override void ChangeOffensiveStatValue(IExecutingMove move, IPokemon target, byte hit, uint defensiveStat, - ImmutableStatisticSet targetStats, ref uint value) + ImmutableStatisticSet targetStats, Statistic stat, ref uint value) { if (move.GetHitData(target, hit).Type?.Name == "fire") { diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/PowerTrickEffect.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/PowerTrickEffect.cs index 7d006ea..a369ba6 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/PowerTrickEffect.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Pokemon/PowerTrickEffect.cs @@ -5,14 +5,14 @@ public class PowerTrickEffect : Script { /// public override void ChangeOffensiveStatValue(IExecutingMove move, IPokemon target, byte hit, uint defensiveStat, - ImmutableStatisticSet targetStats, ref uint value) + ImmutableStatisticSet targetStats, Statistic stat, ref uint value) { value = defensiveStat; } /// public override void ChangeDefensiveStatValue(IExecutingMove move, IPokemon target, byte hit, uint offensiveStat, - ImmutableStatisticSet targetStats, ref uint value) + ImmutableStatisticSet targetStats, Statistic stat, ref uint value) { value = offensiveStat; } diff --git a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Side/FlowerGiftEffect.cs b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Side/FlowerGiftEffect.cs index d782992..3d38986 100644 --- a/Plugins/PkmnLib.Plugin.Gen7/Scripts/Side/FlowerGiftEffect.cs +++ b/Plugins/PkmnLib.Plugin.Gen7/Scripts/Side/FlowerGiftEffect.cs @@ -21,7 +21,7 @@ public class FlowerGiftEffect : Script /// public override void ChangeOffensiveStatValue(IExecutingMove move, IPokemon target, byte hit, uint defensiveStat, - ImmutableStatisticSet targetStats, ref uint value) + ImmutableStatisticSet targetStats, Statistic stat, ref uint value) { if (move.Battle.WeatherName != ScriptUtils.ResolveName()) return;