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); }
// 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); } }
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)); }