using System; using System.Linq; using RobotAndDonkey.Game.Data; using RobotAndDonkey.Game.Execution.Requests; using RobotAndDonkey.Game.GameState; using RobotAndDonkey.Game.Intents; namespace RobotAndDonkey.Game.Execution.Commands; public sealed record DiscardCommand(Guid RequestId, Guid[] CardIds) : Command(RequestId, typeof(ExecuteProgramRequest)) { protected override void CreateIntents(CoreLoop coreLoop, List intents) { var cost = CardIds.Length * Balancing.Instance.DiscardEnergyCost; intents.Add(new Discard(CardIds, cost)); } public override string ToString() { return $"Discard cards command {string.Join(", ", CardIds.Select(id => id.ToString()))}"; } }