示例#1
0
    // 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;
    }
示例#2
0
    //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);
    }