Exemple #1
0
    void Timer()
    {
        // Проверяем наступил ли новый день,
        // после чего проверяем кулдауны триггеров и сбрасываем предложения мерчанта
        if (current_time >= 1440)
        {
            fix_time -= 1440;
            if (fix_time < 0)
            {
                fix_time = 0;
            }
            PlayerInfo.Instance.day++;
            CheckTriggerCD();
//			EventManager.Instance.ClearItemOffer();
            SaveLoadXML.RemoveKey("ITEM_OFFERS");
            SaveLoadXML.RemoveKey("ITEM_PURCHASED");
//			if(PlayerInfo.Instance.day == 1) QuestManager.Instance.OpenInfoPanel();
            //TakeoverManager.Instance.ClearUIData();
            //TakeoverManager.Instance.ResetGoonData();

            if (Advertisement.IsReady("video") && advertisement_cd <= 0)
            {
                advertisement_cd = 10;
                //Advertisement.Show("video");
                ScreenManager.Instance.CreateScreen("BlockerPanel");
                var options = new ShowOptions {
                    resultCallback = (showResult) => { Destroy(ScreenManager.Instance.current); }
                };
                Advertisement.Show("video", options);
            }
            advertisement_cd--;
            rewarded_advertisement_cd--;
        }

        // Если текущее время равно времени окончания периода, то запускаем следующий период
        if (current_time >= end_time)
        {
            fix_time     = 0;
            current_time = end_time;
            EventManager.Instance.current_event_id++;
            //print("--WorldTime");
            EventManager.Instance.LaunchGeneralEvent(false);
            action_on = false;

            PanelManager.Instance.ActionPanel.PeriodImage.sprite = Resources.Load <Sprite> (string.Format("Icons/Time/{0}", EventManager.Instance.current_event_id));

            if (PlayerInfo.Instance.day > 0)
            {
                PlayerInfo.Instance.SaveGame();
            }
            return;
        }

        // Если использовалось действие, которое прокручивает время, то выставлем конечное время ускорения
        if (boost > 0)
        {
            fix_time = current_time + boost;
            boost    = 0;
        }

        // Если использовалось действие, которое прокручивает время, то ускоряем прирост времени
        if (current_time < fix_time)
        {
            TimeSpeed = 200;
        }
        else
        {
            TimeSpeed = 1;
            pause     = true;
            fix_time  = 0;
            if (action_on)
            {
                EventManager.Instance.DrawActions(EventManager.Instance.current_event.GetComponent <ActionListController>().actions, true);
                action_on = false;
            }
        }



        // Прирост таймеров
        _timer       += Time.deltaTime * TimeSpeed;
        current_time += Mathf.FloorToInt(_timer);

        // Проверки таймеров
        if (_timer >= 1)
        {
            _timer = 0;
        }
    }