Exemplo n.º 1
0
    private void SetupStatusManager()
    {
        _statusManager.Init();

        _statusManager.OnGameTimeChange += (value, diff) => {
            var realPauseTime = diff.TotalHourInGame * Config.HoursInRealSecond;
            Invoke(nameof(ResetBusyStatus), realPauseTime);
        };

        foreach (var trigger in DictIntStatusTriggerData.Values)
        {
            if (trigger.IsInnate)
            {
                switch (trigger.Field)
                {
                case StatusFields.Money:
                case StatusFields.Energy:
                case StatusFields.PersonalHappiness:
                case StatusFields.FamilyHappiness:
                case StatusFields.Career:
                case StatusFields.ProjectProgress:
                    _statusManager.AddIntStatusTrigger(trigger);
                    break;
                }
            }
        }

        foreach (var trigger in DictGameTimeStatusTriggerData.Values)
        {
            if (trigger.IsInnate && trigger.Field == StatusFields.GameTime)
            {
                _statusManager.AddGameTimeStatusTrigger(trigger);
            }
        }

        foreach (var trigger in DictLocationStatusTriggerData.Values)
        {
            if (trigger.IsInnate && trigger.Field == StatusFields.Location)
            {
                _statusManager.AddLocationStatusTrigger(trigger);
            }
        }

        _statusManager.Tick();
    }