protected override void OnRespondCard(Card card) { if(selected.Count == 2) throw new BadUsageException(); if(card.Owner != RequestedPlayer) throw new BadCardException(); card.AssertInHand(); if(selected.Contains(card)) throw new BadCardException(); selected.Add(card); if(selected.Count == 2) { Game.GameCycle.PushTempHandler(new TargetPlayerResponseHandler(this)); End(); } }
protected override void OnRespondCard(Card card) { if(card.Owner != RequestedPlayer) throw new BadCardException(); card.AssertInHand(); if(selected.Contains(card)) throw new BadCardException(); selected.Add(card); if(selected.Count == 2) { parent.OnUsedAbility(); foreach(Card c in selected) Game.GameTable.PlayerDiscardCard(c); RequestedPlayer.ModifyLifePoints(1); End(); } }
protected override void OnRespondCard(Card extraCard) { if(extraCard.Owner != RequestedPlayer) throw new BadCardException(); if(extraCard == parent) throw new BadCardException(); extraCard.AssertInHand(); if(card != parent) parent.OnPlayVirtually(card, extraCard); else parent.OnPlay(extraCard); End(); }
protected override void OnRespondCard(Card card) { if(card.Owner != RequestedPlayer) throw new BadCardException(); card.AssertInHand(); if(card.Color != CardColor.Blue) throw new BadCardException(); parent.abilityUses++; parent.OnUsedAbility(); Game.GameTable.PlayerDiscardCard(card); Game.GameTable.PlayerDrawFromDeck(RequestedPlayer, 2); End(); }