//button listeners
    private void EndturnListener()
    {
        if (turn < gamelength)
        {
            if (LoseCounter == 0)
            {
                LoseText.SetActive(true);
                turn = 50;
            }
            else if (data.WaterDistributionRate < data.WaterConsumptionRate)
            {
                LoseCounter--;
                LoseCounterText.text = "Lives: " + LoseCounter.ToString();
            }
            data.ExtractWaterSources();
            Debug.Log("Lake Reserve: " + data.WaterSources[0].GetReserve() + " Max Reserve: " + 100000);
            City.SetLakeCurrent(data.WaterSources[0].GetReserve());

            if (RainTurnCount == 0)
            {
                data.SetEvent(0, Random.Range(10, 20));
                RainTurnCount = RainInterval;
                City.SetRainEnabled(true);
            }
            else
            {
                City.SetRainEnabled(false);
                RainTurnCount--;
            }
            if (CurrentTempEventTurnCount != 0 && CurrentTempEvent < 2)
            {
                if (CurrentTempEvent == 0)
                {
                    data.SetEvent(1, Random.Range(5, 7));
                    CurrentTempEventTurnCount--;
                    WarmFront.SetActive(true);
                    ColdFront.SetActive(false);
                }
                else if (CurrentTempEvent == 1)
                {
                    data.SetEvent(2, Random.Range(5, 7));
                    CurrentTempEventTurnCount--;
                    WarmFront.SetActive(false);
                    ColdFront.SetActive(true);
                }
            }
            else
            {
                if (CurrentTempEventTurnCount > 0)
                {
                    CurrentTempEventTurnCount--;
                }
                if (data.Temperature < AverageTemperature)
                {
                    data.SetEvent(1, Random.Range(3, 5));
                }
                else
                {
                    data.SetEvent(2, Random.Range(3, 5));
                }
                WarmFront.SetActive(false);
                ColdFront.SetActive(false);
            }

            if (CurrentPopEventTurnCount != 0 && CurrentPopEvent < 2)
            {
                if (CurrentPopEvent == 0)
                {
                    data.SetEvent(3, Random.Range(1000, 5000));
                    CurrentPopEventTurnCount--;
                    MigrationIn.SetActive(true);
                    MigrationOut.SetActive(false);
                }
                else if (CurrentPopEvent == 1)
                {
                    data.SetEvent(4, Random.Range(1000, 5000));
                    CurrentPopEventTurnCount--;
                    MigrationIn.SetActive(false);
                    MigrationOut.SetActive(true);
                }
            }
            else
            {
                if (CurrentPopEventTurnCount > 0)
                {
                    CurrentPopEventTurnCount--;
                }
                MigrationIn.SetActive(false);
                MigrationOut.SetActive(false);
            }

            if (CurrentRainEventTurnCount != 0 && CurrentRainEvent < 2)
            {
                if (CurrentRainEvent == 0)
                {
                    Drought.SetActive(true);
                    Monsoon.SetActive(false);
                    CurrentRainEventTurnCount--;
                }
                else if (CurrentRainEvent == 1)
                {
                    Drought.SetActive(false);
                    Monsoon.SetActive(true);
                    CurrentRainEventTurnCount--;
                }
            }
            else
            {
                if (CurrentRainEventTurnCount > 0)
                {
                    CurrentRainEventTurnCount--;
                }
                Drought.SetActive(false);
                Monsoon.SetActive(false);
            }

            data.IncrementPopulation(10);
            data.CalculateWaterDistributionRate();
            data.IncrementFund();
            turn++;
            GenerateEvents();
            Debug.Log("Current Rain Event: " + CurrentRainEvent + ". Turn Count: " + CurrentRainEventTurnCount +
                      "| Current Pop Event: " + CurrentPopEvent + ". Turn Count: " + CurrentPopEventTurnCount +
                      "| Current Temp Event: " + CurrentTempEvent + ". Turn Count: " + CurrentTempEventTurnCount);
        }
        else if (turn == gamelength)
        {
            WinText.SetActive(true);
        }
    }
    //button listeners
    private void EndturnListener()
    {
        if (turn < gamelength)
        {
            if (LoseCounter == 0)
            {
                LoseText.enabled = true;
                turn             = 50;
            }
            else if (data.WaterDistributionRate < data.WaterConsumptionRate)
            {
                LoseCounter--;
                LoseCounterText.text = "Lose Counter: " + LoseCounter.ToString();
            }
            data.ExtractWaterSources();

            if (RainTurnCount == 0)
            {
                data.SetEvent(0, Random.Range(5000, 10000));
                RainTurnCount = RainInterval;
                Rain.enabled  = true;
            }
            else
            {
                Rain.enabled = false;
                RainTurnCount--;
            }
            if (CurrentTempEvent == 0)
            {
                data.SetEvent(1, Random.Range(5, 7));
                CurrentTempEventTurnCount--;
                WarmFront.enabled = true;
                ColdFront.enabled = false;
            }
            else if (CurrentTempEvent == 1)
            {
                data.SetEvent(2, Random.Range(5, 7));
                CurrentTempEventTurnCount--;
                WarmFront.enabled = false;
                ColdFront.enabled = true;
            }
            else
            {
                WarmFront.enabled = false;
                ColdFront.enabled = false;
            }

            if (CurrentPopEvent == 0)
            {
                data.SetEvent(3, Random.Range(5000, 10000));
                CurrentPopEventTurnCount--;
                MigrationIn.enabled  = true;
                MigrationOut.enabled = false;
            }
            else if (CurrentPopEvent == 1)
            {
                data.SetEvent(4, Random.Range(5000, 10000));
                CurrentPopEventTurnCount--;
                MigrationIn.enabled  = false;
                MigrationOut.enabled = true;
            }
            else
            {
                MigrationIn.enabled  = false;
                MigrationOut.enabled = false;
            }

            if (CurrentRainEvent == 0)
            {
                Drought.enabled = true;
                Monsoon.enabled = false;
                CurrentRainEventTurnCount--;
            }
            else if (CurrentRainEvent == 1)
            {
                Drought.enabled = false;
                Monsoon.enabled = true;
                CurrentRainEventTurnCount--;
            }
            else
            {
                Drought.enabled = false;
                Monsoon.enabled = false;
            }

            data.IncrementPopulation(10);
            data.CalculateWaterDistributionRate();
            data.IncrementFund();
            turn++;
            GenerateEvents();
        }
        else if (turn == gamelength)
        {
            WinText.text = "You Win";
        }
    }