using DominionBase.Enums; using System.Collections.Generic; using System.Diagnostics.Contracts; namespace DominionBase.Cards.Menagerie { public class WayOfTheSquirrel : Way { private readonly List playerPlayedList = new List(); public WayOfTheSquirrel() : base(Source.Menagerie, Traits.PlusCard | Traits.Terminal) { } public override void FollowAlternateInstructions(IPlayer player, Card playedCard) { Contract.Requires(player != default(IPlayer), "player cannot be null"); base.FollowAlternateInstructions(player, playedCard); // At the end of the current player's turn, not necessary "our" turn player._Game.ActivePlayer.TurnEnded += Player_TurnEnded; playerPlayedList.Add(player); } private void Player_TurnEnded(object sender, Players.TurnEndedEventArgs e) { playerPlayedList[0].ReceiveBenefit(this, new CardBenefit { Cards = 2 }); playerPlayedList.RemoveAt(0); (sender as IPlayer).TurnEnded -= Player_TurnEnded; } } }