internal void player_Action(Player player, ref CleaningUpEventArgs e) { //e.CardsMovements[this].Destination = DeckLocation.Deck; e.CardsMovements.Remove(e.CardsMovements.Find(cm => cm.Card == this.PhysicalCard)); //e.CardsMovements.MoveToEnd(this); e.CurrentPlayer.AddCardToDeck(e.CurrentPlayer.RetrieveCardFrom(DeckLocation.InPlay, this.PhysicalCard), DeckPosition.Top); }
void player_CleaningUp(object sender, CleaningUpEventArgs e) { if (!e.CurrentPlayer.InPlay.Contains(this.PhysicalCard) || e.Actions.ContainsKey(TypeClass.WalledVillage)) { return; } if (_CanPutOnDeck) { e.Actions[TypeClass.WalledVillage] = new CleaningUpAction(this, String.Format("Put {0} on top your deck", this.PhysicalCard), player_Action); } }
protected override ChoiceResult Decide_CleaningUp(Choice choice, CleaningUpEventArgs cuea, IEnumerable<Type> cardTriggerTypes) { // Always choose a card with Scheme if I can (I should always be able to, yes?) if (cardTriggerTypes.Contains(Cards.Hinterlands.TypeClass.Scheme)) return new ChoiceResult(new List<String>() { cuea.Actions[Cards.Hinterlands.TypeClass.Scheme].Text }); // Always put Walled Village on my deck if I can if (cardTriggerTypes.Contains(Cards.Promotional.TypeClass.WalledVillage)) return new ChoiceResult(new List<String>() { cuea.Actions[Cards.Promotional.TypeClass.WalledVillage].Text }); return new ChoiceResult(new List<String>()); }
protected override ChoiceResult Decide_CleaningUp(Choice choice, CleaningUpEventArgs cuea, IEnumerable<Type> cardTriggerTypes) { // Always put Walled Village on my deck if I can if (cardTriggerTypes.Contains(Cards.Promotional.TypeClass.WalledVillage)) return new ChoiceResult(new List<String>() { cuea.Actions[Cards.Promotional.TypeClass.WalledVillage].Text }); return new ChoiceResult(new List<String>()); }