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); }
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); } }
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; }