예제 #1
0
        public IEnumerator PassiveCardWithAdyacentBonus()
        {
            // Wait for scene to load
            yield return(null);

            StateManager stateManager = GameObject.FindObjectOfType <StateManager>();
            Tile         tile         = stateManager.InitialTile;

            // Check our tile has no card
            Assert.IsTrue(tile.passiveCard == null);

            // New card, it affects adyacent tiles
            PassiveCard testCard = new PassiveCard(1, 2, "OilSpill", 0);

            Assert.IsTrue(testCard.affectsAdyacent);
            Assert.IsTrue(testCard.CardName() == "OilSpill");
            Assert.IsTrue(testCard.PlayableInTile(tile));
            Assert.IsFalse(testCard.PlayableInPlayer(stateManager.CurrentPlayer()));

            Assert.IsTrue(tile.GetResources() == tile.resources);
            Assert.IsTrue(tile.nextTile.passiveCard == null);
            Assert.IsTrue(tile.previousTile.passiveCard == null);

            // Check the card affects resource collection in the tile and the adyacent tiles
            testCard.PlayCard(stateManager.CurrentPlayer(), tile);

            Assert.IsTrue(stateManager.CurrentPlayer().PGS == 1);
            Assert.IsTrue(tile.GetResources() == tile.resources * testCard.resourceMultiplier);
            Assert.IsTrue(tile.nextTile.GetResources() == 0);
            Assert.IsTrue(tile.nextTile.passiveCard != null && tile.nextTile.passiveCard.isCloneFromAdyacent);
            Assert.IsTrue(tile.previousTile.GetResources() == 0);
            Assert.IsTrue(tile.previousTile.passiveCard != null && tile.nextTile.passiveCard.isCloneFromAdyacent);
        }
예제 #2
0
    // Methods ////////////////////////////////////////////////////////////////////////////////////
    public override void PlayCard(Player player, Tile tile)
    {
        base.PlayCard(player, tile);

        if (tile.passiveCard != null)
        {
            RemoveCard(tile);
        }

        tile.passiveCard = this;
        tileAttachedTo   = tile;
        DrawCard();

        if (this.affectsAdyacent)
        {
            // We cant create a single card, otherwise there are errors when trying to remove them
            PassiveCard nextTileCard = new PassiveCard(0, adyacentMultiplier, cardName);
            nextTileCard.isCloneFromAdyacent = true;
            nextTileCard.PlayCard(player, tile.nextTile);

            PassiveCard previousTileCard = new PassiveCard(0, adyacentMultiplier, cardName);
            previousTileCard.isCloneFromAdyacent = true;
            previousTileCard.PlayCard(player, tile.previousTile);
        }
    }
예제 #3
0
        public IEnumerator EliminarVertido()
        {
            // Wait for scene to load
            yield return(null);

            StateManager    stateManager = GameObject.FindObjectOfType <StateManager>();
            Tile            tile         = stateManager.InitialTile;
            EliminarVertido cartaPrueba  = new EliminarVertido(2, "EliminarVertido");

            Assert.IsTrue(tile.passiveCard == null);
            Assert.IsFalse(cartaPrueba.PlayableInTile(tile));
            PassiveCard vertido = new PassiveCard(1, 2, "OilSpill");

            vertido.PlayCard(stateManager.CurrentPlayer(), tile);
            Assert.IsTrue(tile.passiveCard == vertido);

            Assert.IsTrue(cartaPrueba.PlayableInTile(tile));
            Assert.IsFalse(cartaPrueba.PlayableInPlayer(stateManager.CurrentPlayer()));
            cartaPrueba.PlayCard(stateManager.CurrentPlayer(), tile);
            Assert.IsTrue(tile.passiveCard == null);
            Assert.IsFalse(cartaPrueba.PlayableInTile(tile));
        }