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