예제 #1
0
        public Writable_MonsterCard Clone(Writable_MonsterCard outputType)
        {
            Writable_MonsterCard clone = new Writable_MonsterCard(this.Name, this.Cost, this.Damage, this.Health);

            clone.CopyFrom(this);
            return(clone);
        }
예제 #2
0
        public override void Process(Game game)
        {
            Writable_GamePlayer monsterController = this.monsterController_provider.GetValue(this, game, (Writable_GamePlayer)null);
            int numberToSpawn = this.countProvider.GetValue(this, game, default(int));
            //monsterController.get
            List <ID <Readable_MonsterCard> > territory = monsterController.MonsterIDsInPlay.GetWritable();

            for (int i = 0; i < numberToSpawn; i++)
            {
                Writable_MonsterCard monster = this.monsterToSpawn.Clone((Writable_MonsterCard)null);
                monster.ID           = IDFactory.NewID();
                monster.ControllerID = monsterController.GetID((Readable_GamePlayer)null);
                territory.Add(monster.GetID((Readable_MonsterCard)null));
                game.AddCard(monster);
            }
        }
예제 #3
0
        public void NewTurn(ID <Readable_GamePlayer> playerID, Game game)
        {
            Writable_GamePlayer player = game.GetWritable(playerID);

            // gain 1 crystal
            if (player.ResourcesPerTurn.ToNumber() < 10)
            {
                player.ResourcesPerTurn = player.ResourcesPerTurn.Plus(new Resource(1));
            }
            // replenish existing crystals
            player.CurrentResources = player.ResourcesPerTurn;
            // give one attack to each monster
            foreach (ID <Readable_MonsterCard> monsterId in player.MonsterIDsInPlay.GetReadable())
            {
                Writable_MonsterCard card = game.GetWritable(monsterId);
                card.NumAttacksRemaining = card.NumAttacksPerTurn;
            }
            // draw a card if there's room
            this.AddCardToHand(player.Deck.Dequeue(), player, game);
        }