// Update is called once per frame
 void Update()
 {
     lightingStrikeTimer -= Time.deltaTime;
     if (lightingStrikeTimer <= 0)
     {
         SetRandomLightingStrikeTimer();
         SetOffRandomLighting();
     }
     this.transform.position += direction * speed * Time.deltaTime;
     if (Vector3.Distance(this.transform.position, endPosition) < 1 && !killed)
     {
         speed = 0;
         Destroy(this.gameObject);
         popController.KillPercentOfPopulation(30);
         if (UnityEngine.Random.Range(0f, 1f) > 0.3f)
         {
             Array          type         = eBuildingTypes.GetValues(typeof(eBuildingTypes));
             eBuildingTypes buildingType = (eBuildingTypes)type.GetValue(UnityEngine.Random.Range(0, type.Length));
             GameObject     building     = buildingController.GetRandomBuilding(buildingType);
             if (building != null)
             {
                 Instantiate <GameObject>(explosionPrefab, building.transform.position, Quaternion.identity);
                 buildingController.RemoveBuilding(buildingType, building);
             }
             else
             {
                 Debug.Log("There were no buildings to destroy");
             }
         }
         killed = true;
     }
 }
Example #2
0
    public void ShowToolTip(eBuildingTypes type)
    {
        switch (type)
        {
        case eBuildingTypes.House:
            UpdateTextFields("House", "WOOD : 10\nGOLD : 5\nFOOD : 10", "Spanws people");
            break;

        case eBuildingTypes.Farm:
            UpdateTextFields("Farm", "WOOD : 15\nGOLD : 10\nFOOD : 3", "1 FOOD /s");
            break;

        case eBuildingTypes.Mine:
            UpdateTextFields("Mines", "WOOD : 20\nGOLD : 3\nFOOD : 10", "1 GOLD /s");
            break;

        case eBuildingTypes.WoodCutter:
            UpdateTextFields("WOOD Cutter", "WOOD : 3\nGOLD : 10\nFOOD : 10", "1 WOOD /s");
            break;

        case eBuildingTypes.Temple:
            UpdateTextFields("Temple", "WOOD : 20\nGOLD : 20\nFOOD : 20", "2 FAVOR /s");
            break;

        default:
            break;
        }
    }
    public void RemoveBuilding(eBuildingTypes type, GameObject building)
    {
        switch (type)
        {
        case eBuildingTypes.House:
            if (houses.Count > 0)
            {
                houses.Remove(building);
            }
            break;

        case eBuildingTypes.Farm:
            if (farms.Count > 0)
            {
                farms.Remove(building);
            }
            break;

        case eBuildingTypes.Mine:
            if (mines.Count > 0)
            {
                mines.Remove(building);
            }
            break;

        case eBuildingTypes.WoodCutter:
            if (woodCutters.Count > 0)
            {
                woodCutters.Remove(building);
            }
            break;
        }
        Destroy(building);
    }
    public GameObject GetRandomBuilding(eBuildingTypes buildingType)
    {
        switch (buildingType)
        {
        case eBuildingTypes.House:
            if (houses.Count > 0)
            {
                return(houses[UnityEngine.Random.Range(0, houses.Count)]);
            }
            break;

        case eBuildingTypes.Farm:
            if (farms.Count > 0)
            {
                return(farms[UnityEngine.Random.Range(0, farms.Count)]);
            }
            break;

        case eBuildingTypes.Mine:
            if (mines.Count > 0)
            {
                return(mines[UnityEngine.Random.Range(0, mines.Count)]);
            }
            break;

        case eBuildingTypes.WoodCutter:
            if (woodCutters.Count > 0)
            {
                return(woodCutters[UnityEngine.Random.Range(0, woodCutters.Count)]);
            }
            break;
        }

        return(null);
    }
    public void AddBuilding(GameObject building, eBuildingTypes buildingType)
    {
        switch (buildingType)
        {
        case eBuildingTypes.House:
            houses.Add(building);
            break;

        case eBuildingTypes.Farm:
            farms.Add(building);
            break;

        case eBuildingTypes.Mine:
            mines.Add(building);
            break;

        case eBuildingTypes.WoodCutter:
            woodCutters.Add(building);
            break;

        default:
            break;
        }
    }