public void addTrader(TraderBehaviour traderBehaviour) { traders.Add(traderBehaviour); }
public void removeTrader(TraderBehaviour traderBehaviour) { traders.Remove(traderBehaviour); }
public void PerformAction(Tile tile, Player currentPlayer) { switch (currentAction) { case ActionType.House: SubstractBuildingCostFromPlayer(currentPlayer, currentAction); tile.PlaceHouse(currentPlayer); break; case ActionType.Road: SubstractBuildingCostFromPlayer(currentPlayer, currentAction); tile.PlaceRoad(currentPlayer); break; case ActionType.Trader: SubstractBuildingCostFromPlayer(currentPlayer, currentAction); GameObject trader = Instantiate(Resources.Load(Constants.prefabFolder + "Trader") as GameObject, tile.transform.position, Quaternion.identity); TraderBehaviour newTraderBehaviour = trader.AddComponent <TraderBehaviour>(); newTraderBehaviour.Initialize(trader, tile, currentPlayer); currentPlayer.addTrader(newTraderBehaviour); break; case ActionType.Dragon: // Get random tile from each border string option1 = "Tile" + 0 + "-" + Random.Range(0, GameManager.Instance.BoardSizeY); string option2 = "Tile" + (GameManager.Instance.BoardSizeX - 1) + "-" + Random.Range(0, GameManager.Instance.BoardSizeY); string option3 = "Tile" + Random.Range(0, GameManager.Instance.BoardSizeX) + "-" + 0; string option4 = "Tile" + Random.Range(0, GameManager.Instance.BoardSizeX) + "-" + (GameManager.Instance.BoardSizeY - 1); // Select one random tile string[] options = new string[4] { option1, option2, option3, option4 }; int index = Random.Range(0, options.Length); // Get position of boarder tile and set heigt for dragon to spawn Vector3 dragonSpawnPosition = GameObject.Find(options[index]).transform.position; dragonSpawnPosition.y = 5; // Spawn dragon over this border tile GameObject dragon = Instantiate(Resources.Load(Constants.prefabFolder + "Dragon") as GameObject, dragonSpawnPosition, Quaternion.identity); DragonBehaviour dragonBehaviour = dragon.AddComponent <DragonBehaviour>(); dragonBehaviour.Initialize(dragon, tile); // In case of DragonMadness gamemode, the game can launch attacks as well if (!(currentPlayer == null)) { currentPlayer.DecrementRemainingDragonAttacks(); } break; case ActionType.Destroy: tile.DestroyFeature(); break; default: Debug.Log("BuildingMode " + currentAction + " not implemented"); break; } }