Example #1
0
 public void addTrader(TraderBehaviour traderBehaviour)
 {
     traders.Add(traderBehaviour);
 }
Example #2
0
 public void removeTrader(TraderBehaviour traderBehaviour)
 {
     traders.Remove(traderBehaviour);
 }
Example #3
0
    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;
        }
    }