When a move is changed through the ChangeMove hook, update the script

This commit is contained in:
Deukhoofd 2024-12-22 11:27:03 +01:00
parent 45439a20a4
commit 06ce7fd38d
Signed by: Deukhoofd
GPG Key ID: F63E044490819F6F
2 changed files with 11 additions and 5 deletions

View File

@ -22,7 +22,16 @@ internal static class MoveTurnExecutor
throw new InvalidOperationException(
$"The move was changed to '{moveDataName}' by a script, but this move does not exist.");
}
// FIXME: Change the script on the move when it is changed.
var secondaryEffect = moveData.SecondaryEffect;
if (secondaryEffect != null)
{
if (moveChoice.User.Library.ScriptResolver.TryResolve(ScriptCategory.Move, secondaryEffect.Name, out var script))
{
moveChoice.Script.Set(script);
script.OnInitialize(moveChoice.User.Library, secondaryEffect.Parameters);
}
}
}
var targetType = moveData.Target;

View File

@ -49,10 +49,7 @@ public class ScriptContainer : IEnumerable<ScriptContainer>
/// <param name="script"></param>
public void Set(Script script)
{
if (Script is not null)
{
Script.OnRemove();
}
Script?.OnRemove();
Script = script;
}