public override void OnStart() { var isBehaviorShouldRun = OnStart_QuestBehaviorCore(); if (isBehaviorShouldRun) { if (Timer == TimerCommand.Start) { _waitTimer = null; s_inInstanceTimer.Restart(); QBCLog.Info("Started."); BehaviorDone(); } else if (Timer == TimerCommand.Check) { s_inInstanceTimer.Stop(); QBCLog.Info("Your instance run took " + Utility.PrettyTime(s_inInstanceTimer.Elapsed)); if (s_inInstanceTimer.ElapsedMilliseconds >= WaitTime) { _waitTimer = null; BehaviorDone(); } else { var waitTimeSpan = TimeSpan.FromMilliseconds(WaitTime) - s_inInstanceTimer.Elapsed; _waitTimer = new Common.Helpers.WaitTimer(waitTimeSpan); _waitTimeAsString = Utility.PrettyTime(_waitTimer.WaitTime); _waitTimer.Reset(); QBCLog.Info("Waiting for " + _waitTimeAsString); } } } }
public override void OnStart() { // This reports problems, and stops BT processing if there was a problem with attributes... // We had to defer this action, as the 'profile line number' is not available during the element's // constructor call. OnStart_HandleAttributeProblem(); if (!IsDone) { if (Timer == "Start") { WaitTime = 0; Lua.DoString("StartInstanceTimerMin = date(\"%M\")"); Lua.DoString("StartInstanceTimerSec = date(\"%S\")"); QBCLog.Info("Started."); } if (Timer == "Check") { var startInstanceVar1 = Lua.GetReturnVal <int>("return StartInstanceTimerMin", 0); var startInstanceVar2 = Lua.GetReturnVal <int>("return StartInstanceTimerSec", 0); Lua.DoString("EndInstanceTimerMin = date(\"%M\")"); Lua.DoString("EndInstanceTimerSec = date(\"%S\")"); var endInstanceVar1 = Lua.GetReturnVal <int>("return EndInstanceTimerMin", 0); var endInstanceVar2 = Lua.GetReturnVal <int>("return EndInstanceTimerSec", 0); if (endInstanceVar1 < startInstanceVar1) { endInstanceVar1 = endInstanceVar1 + 60; } if (endInstanceVar2 < startInstanceVar2) { endInstanceVar2 = endInstanceVar2 + 60; endInstanceVar1 = endInstanceVar1 - 1; } var calcInstanceVar = ((((endInstanceVar1 - startInstanceVar1) * 60) + (endInstanceVar2 - startInstanceVar2)) * 1000); _timeInInstance = new Common.Helpers.WaitTimer(new TimeSpan(0, 0, 0, 0, calcInstanceVar)); var timeInInstanceAsString = UtilBuildTimeAsString(_timeInInstance.WaitTime); QBCLog.Info("Your instance run took " + timeInInstanceAsString); if (calcInstanceVar >= WaitTime) { WaitTime = 0; } if (calcInstanceVar < WaitTime) { WaitTime = WaitTime - calcInstanceVar; _timeInInstance = new Common.Helpers.WaitTimer(new TimeSpan(0, 0, 0, 0, WaitTime)); timeInInstanceAsString = UtilBuildTimeAsString(_timeInInstance.WaitTime); QBCLog.Info("Waiting for " + timeInInstanceAsString); } } _timer = new Common.Helpers.WaitTimer(new TimeSpan(0, 0, 0, 0, WaitTime)); _waitTimeAsString = UtilBuildTimeAsString(_timer.WaitTime); _timer.Reset(); } }
public override void OnStart() { // This reports problems, and stops BT processing if there was a problem with attributes... // We had to defer this action, as the 'profile line number' is not available during the element's // constructor call. OnStart_HandleAttributeProblem(); if (!IsDone) { if (Timer == "Start") { WaitTime = 0; Lua.DoString("StartInstanceTimerMin = date(\"%M\")"); Lua.DoString("StartInstanceTimerSec = date(\"%S\")"); QBCLog.Info("Started."); } if (Timer == "Check") { var startInstanceVar1 = Lua.GetReturnVal<int>("return StartInstanceTimerMin", 0); var startInstanceVar2 = Lua.GetReturnVal<int>("return StartInstanceTimerSec", 0); Lua.DoString("EndInstanceTimerMin = date(\"%M\")"); Lua.DoString("EndInstanceTimerSec = date(\"%S\")"); var endInstanceVar1 = Lua.GetReturnVal<int>("return EndInstanceTimerMin", 0); var endInstanceVar2 = Lua.GetReturnVal<int>("return EndInstanceTimerSec", 0); if (endInstanceVar1 < startInstanceVar1) { endInstanceVar1 = endInstanceVar1 + 60; } if (endInstanceVar2 < startInstanceVar2) { endInstanceVar2 = endInstanceVar2 + 60; endInstanceVar1 = endInstanceVar1 - 1; } var calcInstanceVar = ((((endInstanceVar1 - startInstanceVar1) * 60) + (endInstanceVar2 - startInstanceVar2)) * 1000); _timeInInstance = new Common.Helpers.WaitTimer(new TimeSpan(0, 0, 0, 0, calcInstanceVar)); var timeInInstanceAsString = UtilBuildTimeAsString(_timeInInstance.WaitTime); QBCLog.Info("Your instance run took " + timeInInstanceAsString); if (calcInstanceVar >= WaitTime) { WaitTime = 0; } if (calcInstanceVar < WaitTime) { WaitTime = WaitTime - calcInstanceVar; _timeInInstance = new Common.Helpers.WaitTimer(new TimeSpan(0, 0, 0, 0, WaitTime)); timeInInstanceAsString = UtilBuildTimeAsString(_timeInInstance.WaitTime); QBCLog.Info("Waiting for " + timeInInstanceAsString); } } _timer = new Common.Helpers.WaitTimer(new TimeSpan(0, 0, 0, 0, WaitTime)); _waitTimeAsString = UtilBuildTimeAsString(_timer.WaitTime); _timer.Reset(); } }