コード例 #1
0
        /// <inheritdoc cref="GameComponent.GameComponentUpdate"/>
        public override void GameComponentUpdate()
        {
            VoteHandler.CheckForQueuedVotes();

            bool isNull = Viewers.jsonallviewers.NullOrEmpty();

            switch (isNull)
            {
            case true:
                Viewers.RefreshViewers();

                break;

            case false when ToolkitSettings.EarningCoins:
                ProcessCoinReward();

                break;
            }

            if (TkSettings.AsapPurchases)
            {
                ProcessNextEvent();
            }
        }
コード例 #2
0
        public override void Tick()
        {
            try
            {
                if (_game == null || _mod == null)
                {
                    return;
                }

                _mod.Tick();
                var    minutes = (int)(_game.Info.RealPlayTimeInteracting / 60f);
                double getTime = (double)Time.time / 60f;
                int    time    = Convert.ToInt32(Math.Truncate(getTime));

                if (IncidentHelpers.Count > 0)
                {
                    for (int i = 0; i < IncidentHelpers.Count; i++)
                    {
                        var incidentHelper = IncidentHelpers.Dequeue();
                        if (!(incidentHelper is VotingHelper))
                        {
                            Purchase_Handler.QueuePlayerMessage(incidentHelper.Viewer, incidentHelper.message);
                        }
                        incidentHelper.TryExecute();
                    }

                    Helper.playerMessages = new List <string>();
                }

                if (IncidentHelperVariables.Count > 0)
                {
                    for (int i = 0; i < IncidentHelperVariables.Count; i++)
                    {
                        var incidentHelper = IncidentHelperVariables.Dequeue();
                        Purchase_Handler.QueuePlayerMessage(incidentHelper.Viewer, incidentHelper.message, incidentHelper.storeIncident.variables);
                        incidentHelper.TryExecute();
                        if (Purchase_Handler.viewerNamesDoingVariableCommands.Contains(incidentHelper.Viewer.username))
                        {
                            Purchase_Handler.viewerNamesDoingVariableCommands.Remove(incidentHelper.Viewer.username);
                        }
                    }

                    Helper.playerMessages = new List <string>();
                }

                if (Incidents.Count > 0)
                {
                    var           incident      = Incidents.Dequeue();
                    IncidentParms incidentParms = new IncidentParms();
                    incidentParms.target = Helper.AnyPlayerMap;
                    incident.TryExecute(incidentParms);
                }

                if (FiringIncidents.Count > 0)
                {
                    Helper.Log("Firing " + FiringIncidents.First().def.defName);
                    var incident = FiringIncidents.Dequeue();
                    incident.def.Worker.TryExecute(incident.parms);
                }

                VoteHandler.CheckForQueuedVotes();

                if (_lastCoinReward < 0)
                {
                    _lastCoinReward = time;
                }
                else if (ToolkitSettings.EarningCoins && ((time - _lastCoinReward) >= ToolkitSettings.CoinInterval) && Viewers.jsonallviewers != null)
                {
                    _lastCoinReward = time;
                    Viewers.AwardViewersCoins();
                }
                if (_lastMinute < 0)
                {
                    _lastMinute = time;
                }
                else if (_lastMinute < time)
                {
                    _lastMinute = time;
                    Toolkit.JobManager.CheckAllJobs();
                    Viewers.RefreshViewers();
                }
            }
            catch (Exception ex)
            {
                Helper.Log("Exception: " + ex.Message + ex.StackTrace);
            }
        }