Esempio n. 1
0
        /// <summary>
        /// リスタートのときスペルのカウントをリセットする
        /// </summary>
        private void ResetCountAtRestart()
        {
            // FFXIV以外での使用ならば何もしない
            if (Settings.Default.UseOtherThanFFXIV)
            {
                return;
            }

            // 無効?
            if (!Settings.Default.ResetOnWipeOut)
            {
                return;
            }

            // Combatantsを頻繁に取得したくないので5秒に1回だけ判定する
            if ((DateTime.Now - this.LastCheckWipeOutDateTime).TotalSeconds <= 5d)
            {
                this.LastCheckWipeOutDateTime = DateTime.Now;
                return;
            }

            this.LastCheckWipeOutDateTime = DateTime.Now;

            var combatants = FF14PluginHelper.GetCombatantListParty();

            if (combatants == null ||
                combatants.Count < 1)
            {
                return;
            }

            // 関係者が全員死んでる?
            if (combatants.Count ==
                combatants.Count(x => x.CurrentHP <= 0))
            {
                // リセットするのは15秒に1回にする
                // 暗転中もずっとリセットし続けてしまうので
                if ((DateTime.Now - this.LastWipeOutDateTime).TotalSeconds >= 15.0)
                {
                    Logger.Write("Party was wiped out. Reset spells and tickers.");

                    // スペルのカウントをリセットする
                    SpellTimerTable.ResetCount();

                    // テロップのカウントをリセットする
                    OnePointTelopTable.Default.ResetCount();

                    this.LastWipeOutDateTime = DateTime.Now;
                }
            }
        }
Esempio n. 2
0
        /// <summary>
        /// リスタートのときスペルのカウントをリセットする
        /// </summary>
        private void ResetCountAtRestart()
        {
            // FFXIV以外での使用ならば何もしない
            if (Settings.Default.UseOtherThanFFXIV)
            {
                return;
            }

            // 無効?
            if (!Settings.Default.ResetOnWipeOut)
            {
                return;
            }

            var combatants = FFXIV.Instance.GetPartyList();

            if (combatants == null ||
                combatants.Count < 1)
            {
                return;
            }

            // 関係者が全員死んでる?
            if (combatants.Count ==
                combatants.Count(x => x.CurrentHP <= 0))
            {
                // リセットするのは15秒に1回にする
                // 暗転中もずっとリセットし続けてしまうので
                if ((DateTime.Now - this.LastWipeOutDateTime).TotalSeconds >= 15.0)
                {
                    Logger.Write("Party was wiped out. Reset spells and tickers.");

                    SpellTimerTable.ResetCount();
                    OnePointTelopTable.Default.ResetCount();

                    // ACT本体に戦闘終了を通知する
                    if (Settings.Default.WipeoutNotifyToACT)
                    {
                        ActInvoker.Invoke(() =>
                        {
                            ActGlobals.oFormActMain.ActCommands("end");
                        });
                    }

                    this.LastWipeOutDateTime = DateTime.Now;
                }
            }
        }