diff --git a/PkmnLib.Dynamic/Models/LearnedMove.cs b/PkmnLib.Dynamic/Models/LearnedMove.cs
index 0bc7269..74637cb 100644
--- a/PkmnLib.Dynamic/Models/LearnedMove.cs
+++ b/PkmnLib.Dynamic/Models/LearnedMove.cs
@@ -80,6 +80,12 @@ public interface ILearnedMove : IDeepCloneable
/// Restore the remaining PP by a certain amount. Will prevent it from going above max PP.
///
void RestoreUses(byte amount);
+
+ ///
+ /// Forcibly set the remaining PP to a certain amount.
+ ///
+ ///
+ void SetCurrentPP(byte uses);
}
///
@@ -136,4 +142,10 @@ public class LearnedMoveImpl : ILearnedMove
/// Restore the PP by a certain amount. This will prevent the PP from going above the maximum PP.
///
public void RestoreUses(byte amount) => CurrentPp = (byte)Math.Min(CurrentPp + amount, MaxPp);
+
+ ///
+ public void SetCurrentPP(byte uses)
+ {
+ CurrentPp = Math.Min(uses, MaxPp);
+ }
}
\ No newline at end of file
diff --git a/PkmnLib.Dynamic/Models/Pokemon.cs b/PkmnLib.Dynamic/Models/Pokemon.cs
index 575643d..320082e 100644
--- a/PkmnLib.Dynamic/Models/Pokemon.cs
+++ b/PkmnLib.Dynamic/Models/Pokemon.cs
@@ -1091,6 +1091,7 @@ public class PokemonImpl : ScriptSource, IPokemon
Types = Form.Types;
OverrideAbility = null;
AbilitySuppressed = false;
+ RecalculateFlatStats();
}
}
}
diff --git a/PkmnLib.Dynamic/ScriptHandling/ScriptSet.cs b/PkmnLib.Dynamic/ScriptHandling/ScriptSet.cs
index 8b6952d..bf1207b 100644
--- a/PkmnLib.Dynamic/ScriptHandling/ScriptSet.cs
+++ b/PkmnLib.Dynamic/ScriptHandling/ScriptSet.cs
@@ -21,7 +21,7 @@ public interface IScriptSet : IEnumerable
/// Adds a script with a name to the set. If the script with that name already exists in this
/// set, this makes that script stack instead. The return value here is that script.
///
- ScriptContainer? StackOrAdd(StringKey scriptKey, Func