// Start is called before the first frame update void Awake() { usedItemLastPhase = false; myGameController = GameObject.FindWithTag("GameController").GetComponent <GameController>(); myItemController = GameObject.FindWithTag("GameController").transform.parent.Find("ItemController").GetComponent <ItemController>(); myUIController = GameObject.FindWithTag("GameController").transform.parent.Find("UIController").GetComponent <UIController>(); myAudioController = GameObject.FindWithTag("GameController").transform.parent.Find("AudioController").GetComponent <AudioController>(); comingWeather = weatherList.Normal; weatherMassage.text = ""; //Initiate weatherpairs weatherPairs = new Dictionary <ItemController.items, weatherList>(); weatherPairs.Add(ItemController.items.Cover, weatherList.AcidRain); weatherPairs.Add(ItemController.items.Artificialsun, weatherList.Cold); weatherPairs.Add(ItemController.items.Sprinkler, weatherList.HighTemp); weatherPairs.Add(ItemController.items.Lamp, weatherList.SandStorm); firstTime = true; // IN CASE TO ADD MORE FEATURES inAccident = false; lastTime = 15f; lastTimer = 0f; normalTime = 40f; normalTimer = 0f; }
//GENERATE NEXT WEATHER AND INVOKE FUNCTIONS public void changeWeather() { if (!firstTime) { myAudioController.PlayWeatherChangeSound(); } weatherList lastweather = curWeather; if (firstTime) { curWeather = weatherList.Normal; } else { if (usedItemLastPhase) { if (weatherPairs[myItemController.lastUsedItem] == curWeather) { do { curWeather = (weatherList)Random.Range(0, System.Enum.GetValues(typeof(weatherList)).Length); } while (curWeather == lastweather); } else { curWeather = weatherPairs[myItemController.lastUsedItem]; } } else { curWeather = (weatherList)Random.Range(0, System.Enum.GetValues(typeof(weatherList)).Length); } } firstTime = false; usedItemLastPhase = false; myItemController.itemInUse.sprite = null; myItemController.itemInUse.enabled = false; //curWeather = (weatherList)Random.Range(0, System.Enum.GetValues(typeof(weatherList)).Length); float rateOfLevel = (float)Random.Range(0f, 1f); //GET A RANDOM LEVEL if (0f <= rateOfLevel && rateOfLevel < 0.33f) { curLevel = 1; } if (0.33f <= rateOfLevel && rateOfLevel < 0.66f) { curLevel = 2; } if (0.66f <= rateOfLevel && rateOfLevel < 1f) { curLevel = 3; } weatherMassage.text = curWeather.ToString(); comingWeatherMessage.text = comingWeather.ToString(); plant.applyWeatherCondition(); myUIController.updateWeather(curWeather); }