Пример #1
0
        private Unit Unit;         // but only id sent; rest handled via card

        public AddToLaneDelta(Lane lane, UnitCard card, int sideIndex, int pos, GameManager gm)
            : base(lane)
        {
            this.SendableCard = new SendableTarget <Card>("card", card);
            this.SideIndex    = sideIndex;
            this.Position     = pos;
            this.Unit         = new Unit(card, gm);
        }
Пример #2
0
        private void Constructor(UnitCard card, GameManager gm)
        {
            this.Card         = card;
            this.HealthPoints = card.HealthPoints;

            this.FirstDeploy = true;

            this.Abilities = new List <Ability>();

            foreach (Ability a in card.Abilities)
            {
                a.ApplyTo(this, gm);
            }
        }
Пример #3
0
        void MulchInner(List <Delta> deltas, GMWithLocation gmLoc, Damage.Type?phase)
        {
            RemoveFromDeckDelta top = new RemoveFromDeckDelta(gmLoc.SubjectPlayer.Deck, gmLoc.SubjectPlayer.Deck[0], 0);

            deltas.Add(top);

            UnitCard topUnitCard = top.Card as UnitCard;

            // BackUnit works out perfectly because it returns null if its empty or if it contains SubjectUnit
            if (topUnitCard != null && gmLoc.SubjectPlayer.ManaPool.CanAfford(topUnitCard.DeployCost - 1) && gmLoc.BackUnit == null)
            {
                deltas.AddRange(gmLoc.SubjectPlayer.ManaPool.GetSubtractDeltas(topUnitCard.DeployCost - 1));
                deltas.AddRange(gmLoc.SubjectLane.GetDeployDeltas(topUnitCard, gmLoc.Side, 1, gmLoc.GameManager));
            }
            else
            {
                deltas.AddRange(gmLoc.SubjectPlayer.Discard.GetDiscardDeltas(new Card[] { top.Card }));
            }
        }
Пример #4
0
 public Unit(UnitCard card, int id, GameManager gm)
 {
     this.id = "" + id;
     IdIssuer.RegisterId(this.id, this);
     Constructor(card, gm);
 }
Пример #5
0
 public Unit(UnitCard card, GameManager gm)
 {
     this.id = IdIssuer.IssueId(this);
     Constructor(card, gm);
 }