Example #1
0
 private void OnDayStateChanged(ETimeChangeReason p_reason)
 {
     if (DayState == EDayState.DAWN || DayState == EDayState.NIGHT)
     {
         GameTimeEntryEventArgs p_args = new GameTimeEntryEventArgs(DayState);
         LegacyLogic.Instance.ActionLog.PushEntry(p_args);
     }
     LegacyLogic.Instance.EventManager.InvokeEvent(this, EEventType.GAMETIME_DAYSTATE_CHANGED, new GameTimeEventArgs(DayState, LastDayState, p_reason));
     LegacyLogic.Instance.WorldManager.HintManager.TriggerHint(EHintType.DAY_NIGHT);
 }
Example #2
0
        internal void UpdateTime(EMapType p_mapType, ETimeChangeReason p_reason)
        {
            switch (p_mapType)
            {
            case EMapType.OUTDOOR:
                UpdateTime(ConfigManager.Instance.Game.MinutesPerTurnOutdoor, p_reason);
                break;

            case EMapType.CITY:
                UpdateTime(ConfigManager.Instance.Game.MinutesPerTurnCity, p_reason);
                break;

            case EMapType.DUNGEON:
                UpdateTime(ConfigManager.Instance.Game.MinutesPerTurnDungeon, p_reason);
                break;

            default:
                throw new NotImplementedException("GameTime: unknow maptype " + p_mapType);
            }
        }
Example #3
0
        internal void UpdateTime(Int32 p_minutes, ETimeChangeReason p_reason)
        {
            m_lastTime = m_time;
            m_time    += new MMTime(p_minutes);
            if (DayState != LastDayState)
            {
                OnDayStateChanged(p_reason);
            }
            MMTime p_t = new MMTime(0, 8, m_time.Days);

            if (m_time >= p_t && m_lastTime < p_t)
            {
                Grid grid = LegacyLogic.Instance.MapLoader.Grid;
                foreach (GridSlot gridSlot in grid.SlotIterator())
                {
                    foreach (InteractiveObject interactiveObject in gridSlot.GetInteractiveObjectIterator())
                    {
                        RechargingObject rechargingObject = interactiveObject as RechargingObject;
                        if (rechargingObject != null)
                        {
                            rechargingObject.OnCheckRecharge();
                        }
                    }
                }
            }
            if (p_reason == ETimeChangeReason.Movement && m_time.Hours == 0)
            {
                if ((p_minutes == 1 && m_time.Minutes == 1) || (p_minutes > 1 && m_time.Minutes > 0 && m_time.Minutes <= p_minutes))
                {
                    m_calendar.NextDay();
                }
            }
            else if (p_reason == ETimeChangeReason.Resting)
            {
                m_calendar.SetDateByPassedTime(m_time.Days);
            }
            LegacyLogic.Instance.EventManager.InvokeEvent(this, EEventType.GAMETIME_TIME_CHANGED, new GameTimeEventArgs(DayState, LastDayState, p_reason));
        }
 public GameTimeEventArgs(EDayState currentDayState, EDayState lastDayState, ETimeChangeReason reason)
 {
     CurrentDayState = currentDayState;
     LastDayState    = lastDayState;
     Reason          = reason;
 }