using RobotAndDonkey.Game.Cards; using RobotAndDonkey.Game.Execution.Results; using RobotAndDonkey.Game.GameState; namespace RobotAndDonkey.Game.Intents; public class AcceptGlitch(Card card) : CardIntent(card) { public override void Run(Guid requestId, CoreLoop coreLoop, List newIntents, List results) { Card.CreateIntents(null, coreLoop, requestId, newIntents, results); results.Add(new RunCardResult(requestId, Card)); base.Run(requestId, coreLoop, newIntents, results); } public override bool IsValid(CoreLoop coreLoop) { if (Card != coreLoop.GlitchDeck[coreLoop.NextGlitch]) return false; return base.IsValid(coreLoop); } public override bool Immune => true; public override string ToString() => $"Accept {Card.Name}, " + base.ToString(); }