private void Validate(ICardModel selectedCard) { if (selectedCard != null && !Candidates.Contains(selectedCard)) { throw new InteractionValidationFailException("Selection is not candidate."); } }
internal void Reset(ICardModel newModel) { Behaviors.RemoveAll(); if (newModel != null) { Model = newModel; } InstantiateBehaviors(); m_counters.Clear(); }
// TODO: save/load score library private int GetScore(ICardModel cardModel) { int score; if (m_scoreLibrary.TryGetValue(cardModel.Id, out score)) { return score; } var initialScore = GetInitialScore(cardModel); m_scoreLibrary.Add(cardModel.Id, initialScore); return initialScore; }
private int GetInitialScore(ICardModel cardModel) { var manaCost = cardModel.Behaviors.FirstOrDefault(bm => bm is Behaviors.ManaCost.ModelType); if (manaCost == null) { return 0; } else { return (manaCost as Behaviors.ManaCost.ModelType).Cost * 10; } }
private CardInstance(ICardModel model, Player owner, bool hasGuid) : this() { if (model == null) { throw new ArgumentNullException("model"); } else if (owner == null) { throw new ArgumentNullException("owner"); } Model = model; Owner = owner; Guid = hasGuid ? owner.Game.GenerateNextCardGuid() : 0; InstantiateBehaviors(); }
public Transform(CardInstance cardToTransform, ICardModel newModel) { if (cardToTransform == null) { throw new ArgumentNullException("cardToTransform"); } else if (newModel == null) { throw new ArgumentNullException("newModel"); } else if (newModel == cardToTransform.Model) { throw new ArgumentException("Card will not be transformed."); } CardToTransform = cardToTransform; NewCardModel = newModel; }
public SummonMove(ICardModel model, Player owner, int toZone, ICause cause) : base(cause) { if (model == null) { throw new ArgumentNullException("model"); } else if (owner == null) { throw new ArgumentNullException("owner"); } m_toZone = owner.m_zones.GetZone(toZone); Subject = null; Model = model; Owner = owner; }
public ReviveMove(Player player, ICardModel cardToRevive, int fromZone, int toZone, ICause cause) : base(cause) { if (player == null) { throw new ArgumentNullException("player"); } else if (cardToRevive == null) { throw new ArgumentNullException("cardToRevive"); } m_fromZone = player.m_zones.GetZone(fromZone); m_toZone = player.m_zones.GetZone(toZone); Subject = null; Player = player; CardToRevive = cardToRevive; }
public SacrificeChoice(int cardIndex, ICardModel cardModel) : base(1) { CardIndex = cardIndex; CardModel = cardModel; }
public ReviveMove(Player player, ICardModel cardToRevive, int fromZone, int toZone) : this(player, cardToRevive, fromZone, toZone, null) { }
public void Respond(ICardModel selectedCard) { Validate(selectedCard); RespondBack(selectedCard); }
public void Add(ICardModel cardModel) { if (cardModel == null) { throw new ArgumentNullException("cardModel"); } Cards.Add(cardModel); }
internal CardInstance(ICardModel model, Player owner) : this(model, owner, true) { }
/// <summary> /// Add one card to the top of the pile. /// </summary> /// <param name="card">The card to be added.</param> public void AddToTop(ICardModel cardModel) { m_orderedCardModels.Add(cardModel); }
/// <summary> /// Add one card to the bottom of the pile. /// </summary> /// <param name="card">The card to be added.</param> public void AddToBottom(ICardModel cardModel) { m_orderedCardModels.Insert(0, cardModel); }
public bool Contains(ICardModel cardModel) { return m_orderedCardModels.Contains(cardModel); }
public int IndexOf(ICardModel element) { return Cards.IndexOf(element); }
public SummonMove(ICardModel model, Player owner, int toZone) : this(model, owner, toZone, null) { }