diff --git a/src/Actions/PartyAddAction.cs b/src/Actions/PartyAddAction.cs new file mode 100644 index 0000000..873d600 --- /dev/null +++ b/src/Actions/PartyAddAction.cs @@ -0,0 +1,29 @@ +using Cthangover.Core.Actions; + +namespace Cthangover.Mods.Characters +{ + /// + /// action party.add id=hero — puts a character template into the + /// player's party and battle set. Lets a game without C# give the player + /// their starting party from its first scenario (a new game resets the + /// party and replays that scenario). A character already in the roster keeps + /// their level and health and only returns to the battle set. + /// + public class PartyAddAction : IScenarioAction + { + /// DSL name. + public string Name => "party.add"; + + /// Reads id and adds the character. + public void Run(IActionContext ctx) + { + var id = ctx.GetParam("id"); + if (string.IsNullOrWhiteSpace(id)) + { + ctx.LogWarning("EVENT", "party.add: missing 'id'"); + return; + } + ctx.Character.AddToParty(id.Trim()); + } + } +}