internal override void End(Player player, Deck deck) { // Add back any set aside cards that are still on this if (_SetAsideCard != null) { deck.AddRange(player, new CardCollection() { _SetAsideCard }); } if (_SetAsideCardInPlay != null) { deck.AddRange(player, new CardCollection() { _SetAsideCardInPlay }); } _SetAsideCard = null; _SetAsideCardInPlay = null; if (_TurnStartedEventHandler != null && _TurnStartedPlayer != null) { _TurnStartedPlayer.TurnStarted -= _TurnStartedEventHandler; } _TurnStartedPlayer = null; _TurnStartedEventHandler = null; }
public override void Play(Player player) { base.Play(player); if (player.InPlay.Contains(this.PhysicalCard)) { Choice choice = Choice.CreateYesNoChoice("Do you want to set this card aside?", this, player); ChoiceResult result = player.MakeChoice(choice); if (result.Options[0] == "Yes") { player.AddCardInto(TypeClass.PrinceSetAside, player.RetrieveCardFrom(DeckLocation.InPlay, this.PhysicalCard)); if (_TurnStartedEventHandler != null) { player.TurnStarted -= _TurnStartedEventHandler; } _TurnStartedPlayer = player; _TurnStartedEventHandler = new Player.TurnStartedEventHandler(player_TurnStarted); _TurnStartedPlayer.TurnStarted += _TurnStartedEventHandler; Choice setAsideChoice = new Choice("Choose a card to set aside", this, player.Hand[c => (c.Category & Cards.Category.Action) == Cards.Category.Action && player._Game.ComputeCost(c) <= new Coin(4)], player, false, 1, 1); ChoiceResult setAsideResult = player.MakeChoice(setAsideChoice); if (setAsideResult.Cards.Count > 0) { _SetAsideCard = player.RetrieveCardFrom(DeckLocation.Hand, setAsideResult.Cards[0]); player.PlayerMats[TypeClass.PrinceSetAside].Refresh(player); player._Game.SendMessage(player, this, this._SetAsideCard); } } } }
public override void AddedTo(DeckLocation location, Player player) { base.AddedTo(location, player); switch (location) { case DeckLocation.Hand: if (_AttackHandler != null) { player.Attacked -= _AttackHandler; } _AttackHandler = new Player.AttackedEventHandler(player_Attacked); player.Attacked += _AttackHandler; break; case DeckLocation.SetAside: if (_TurnStartedEventHandler != null) { player.TurnStarted -= _TurnStartedEventHandler; } _TurnStartedEventPlayer = player; _TurnStartedEventHandler = new Player.TurnStartedEventHandler(player_TurnStarted); _TurnStartedEventPlayer.TurnStarted += _TurnStartedEventHandler; break; } }
void player_TurnStarted(object sender, TurnStartedEventArgs e) { this.PlayDuration(e.Player); if (_TurnStartedEventHandler != null) { e.Player.TurnStarted -= _TurnStartedEventHandler; } _TurnStartedEventHandler = null; }
internal override void TearDown() { base.TearDown(); if (_TurnStartedEventHandler != null && _TurnStartedEventPlayer != null) { _TurnStartedEventPlayer.TurnStarted -= _TurnStartedEventHandler; } _TurnStartedEventPlayer = null; _TurnStartedEventHandler = null; }
internal override void TearDown() { base.TearDown(); _SetAsideCard = null; _SetAsideCardInPlay = null; if (_TurnStartedEventHandler != null && _TurnStartedPlayer != null) { _TurnStartedPlayer.TurnStarted -= _TurnStartedEventHandler; } _TurnStartedPlayer = null; _TurnStartedEventHandler = null; }
internal override void End(Player player, Deck deck) { // Add back any set aside cards that are still on this if (_SetAsideCard != null) deck.AddRange(player, new CardCollection() { _SetAsideCard }); if (_SetAsideCardInPlay != null) deck.AddRange(player, new CardCollection() { _SetAsideCardInPlay }); _SetAsideCard = null; _SetAsideCardInPlay = null; if (_TurnStartedEventHandler != null && _TurnStartedPlayer != null) _TurnStartedPlayer.TurnStarted -= _TurnStartedEventHandler; _TurnStartedPlayer = null; _TurnStartedEventHandler = null; }
public override void Play(Player player) { base.Play(player); if (player.InPlay.Contains(this.PhysicalCard)) { Choice choice = Choice.CreateYesNoChoice("Do you want to set this card aside?", this, player); ChoiceResult result = player.MakeChoice(choice); if (result.Options[0] == "Yes") { player.AddCardInto(TypeClass.PrinceSetAside, player.RetrieveCardFrom(DeckLocation.InPlay, this.PhysicalCard)); if (_TurnStartedEventHandler != null) player.TurnStarted -= _TurnStartedEventHandler; _TurnStartedPlayer = player; _TurnStartedEventHandler = new Player.TurnStartedEventHandler(player_TurnStarted); _TurnStartedPlayer.TurnStarted += _TurnStartedEventHandler; Choice setAsideChoice = new Choice("Choose a card to set aside", this, player.Hand[c => (c.Category & Cards.Category.Action) == Cards.Category.Action && player._Game.ComputeCost(c) <= new Coin(4)], player, false, 1, 1); ChoiceResult setAsideResult = player.MakeChoice(setAsideChoice); if (setAsideResult.Cards.Count > 0) { _SetAsideCard = player.RetrieveCardFrom(DeckLocation.Hand, setAsideResult.Cards[0]); player.PlayerMats[TypeClass.PrinceSetAside].Refresh(player); player._Game.SendMessage(player, this, this._SetAsideCard); } } } }
internal override void TearDown() { base.TearDown(); _SetAsideCard = null; _SetAsideCardInPlay = null; if (_TurnStartedEventHandler != null && _TurnStartedPlayer != null) _TurnStartedPlayer.TurnStarted -= _TurnStartedEventHandler; _TurnStartedPlayer = null; _TurnStartedEventHandler = null; }
void player_TurnStarted(object sender, TurnStartedEventArgs e) { this.PlayDuration(e.Player); if (_TurnStartedEventHandler != null) e.Player.TurnStarted -= _TurnStartedEventHandler; _TurnStartedEventHandler = null; }
public override void AddedTo(DeckLocation location, Player player) { base.AddedTo(location, player); switch (location) { case DeckLocation.Hand: if (_AttackHandler != null) player.Attacked -= _AttackHandler; _AttackHandler = new Player.AttackedEventHandler(player_Attacked); player.Attacked += _AttackHandler; break; case DeckLocation.SetAside: if (_TurnStartedEventHandler != null) player.TurnStarted -= _TurnStartedEventHandler; _TurnStartedEventPlayer = player; _TurnStartedEventHandler = new Player.TurnStartedEventHandler(player_TurnStarted); _TurnStartedEventPlayer.TurnStarted += _TurnStartedEventHandler; break; } }
internal override void TearDown() { base.TearDown(); if (_TurnStartedEventHandler != null && _TurnStartedEventPlayer != null) _TurnStartedEventPlayer.TurnStarted -= _TurnStartedEventHandler; _TurnStartedEventPlayer = null; _TurnStartedEventHandler = null; }
void player_TurnStarted(object sender, TurnStartedEventArgs e) { Player player = sender as Player; if (_TurnStartedEventHandler != null && _TurnStartedPlayer != null) _TurnStartedPlayer.TurnStarted -= _TurnStartedEventHandler; _TurnStartedPlayer = null; _TurnStartedEventHandler = null; }
internal void player_Action(Player player, ref TurnStartedEventArgs e) { this.PlayDuration(e.Player); if (_TurnStartedEventHandler != null) e.Player.TurnStarted -= _TurnStartedEventHandler; _TurnStartedPlayer = null; _TurnStartedEventHandler = null; }
public override void AddedTo(DeckLocation location, Player player) { base.AddedTo(location, player); switch (location) { case DeckLocation.InPlay: this._CanCleanUp = false; break; case DeckLocation.SetAside: if (_TurnStartedEventHandler != null) player.TurnStarted -= _TurnStartedEventHandler; _TurnStartedPlayer = player; _TurnStartedEventHandler = new Player.TurnStartedEventHandler(player_TurnStarted); _TurnStartedPlayer.TurnStarted += _TurnStartedEventHandler; this._CanCleanUp = true; break; default: this._CanCleanUp = true; break; } }