private async Task <bool> Interaction() { GarrisonManager.RefreshMissions(); //GarrisonManager.CompletedMissionIds = LuaCommands.GetCompletedMissionIds(); if (GarrisonManager.CompletedMissions.Count == 0) { LuaUI.MissionFrame.Close.Click(); await CommonCoroutines.SleepForRandomUiInteractionTime(); return(false); } if (!_commandtableCompletemissionsWaittimer.IsFinished) { await Coroutine.Sleep(_Waitmilliseconds); } //Check if the first dialog is visible.. if (GarrisonMissionFrame.Instance.CompleteDialogIsVisible()) { LuaUI.MissionFrame.MissionCompleteViewButton.Click(); //LuaCommands.ClickButton(LuaCommands.ButtonNames.GarrisonMissionFrameMissions_CompleteDialog_BorderFrame_ViewButton); _commandtableCompletemissionsWaittimer.Reset(); return(true); } //Check if mission complete dialogs are even visible.. //if (!LuaUI.MissionFrame.IsMissionCompleteBackgroundVisible) //{ // LuaUI.MissionFrame.Close.Click(); // //LuaCommands.ClickButton(LuaCommands.ButtonNames.GarrisonMissionFrame_CloseButton); // await CommonCoroutines.SleepForRandomUiInteractionTime(); // return true; //} var curMission = GarrisonManager.CompletedMissions[0]; if (curMission.refGarrisonMission.State == MissionState.InProgress) { LuaCommands.MissionCompleteMarkComplete(curMission.Id); await Coroutine.Sleep(1000); } if (curMission.refGarrisonMission.State == MissionState.Complete) { LuaCommands.MissionCompleteRollChest(curMission.Id); await Coroutine.Sleep(1000); } GarrisonManager.CompletedMissions.RemoveAt(0); await Coroutine.Sleep(1000); return(true); //Find the current completed mission! // if (_currentMission == null) // { // //Click next.. // //if (LuaCommands.IsButtonEnabled(LuaCommands.ButtonNames.GarrisonMissionFrame_MissionComplete_NextMissionButton)) // if(LuaUI.MissionFrame.MissionNextButton.IsEnabled()) // { // LuaUI.MissionFrame.MissionNextButton.Click(); // //LuaCommands.ClickButton(LuaCommands.ButtonNames.GarrisonMissionFrame_MissionComplete_NextMissionButton); // _commandtableCompletemissionsWaittimer.Reset(); // return true; // } // foreach (var id in GarrisonManager.CompletedMissions) // { // //Mission newmission = LuaCommands.GetMission(id); // if (id.Valid && id.refGarrisonMission.State== MissionState.Complete) //State of zero means its the current one. // { // _currentMission = id; // break; // } // } // if (_currentMission != null) // { // if (!_currentMission.CanOpenMissionChest()) // _currentMission.BonusRolled = true; // //Add sleep here since a mission can vary before we can click the treasure. // if (_currentMission.Followers == 2) // await Coroutine.Sleep(10000); // else if (_currentMission.Followers == 3) // await Coroutine.Sleep(15000); // else // await Coroutine.Sleep(5000); // _commandtableCompletemissionsWaittimer.Reset(); // Logging.Write("{0}", _currentMission.ToString()); // return true; // } // } // _commandtableCompletemissionsWaittimer = WaitTimer.OneSecond; // _Waitmilliseconds = 1000; // if (_currentMission == null || !_currentMission.Valid) // { // //Click next.. // //if (LuaCommands.IsButtonEnabled(LuaCommands.ButtonNames.GarrisonMissionFrame_MissionComplete_NextMissionButton)) // if (LuaUI.MissionFrame.MissionNextButton.IsEnabled()) // { // LuaUI.MissionFrame.MissionNextButton.Click(); // //LuaCommands.ClickButton(LuaCommands.ButtonNames.GarrisonMissionFrame_MissionComplete_NextMissionButton); // } // return true; // } // if (!_currentMission.MarkedAsCompleted) // { // await CommonCoroutines.SleepForRandomUiInteractionTime(); // GarrisonBase.Debug("Current Mission Marking as completed"); // _currentMission.MarkAsCompleted(); // } // if (!_currentMission.BonusRolled) // { // await CommonCoroutines.SleepForRandomUiInteractionTime(); // GarrisonBase.Debug("Current Mission Bonus Rolled"); // _currentMission.BonusRoll(); // } // await Coroutine.Yield(); //// if (LuaCommands.IsButtonEnabled(LuaCommands.ButtonNames.GarrisonMissionFrame_MissionComplete_NextMissionButton)) // if (LuaUI.MissionFrame.MissionNextButton.IsEnabled()) // { // LuaUI.MissionFrame.MissionNextButton.Click(); // //LuaCommands.ClickButton(LuaCommands.ButtonNames.GarrisonMissionFrame_MissionComplete_NextMissionButton); // await CommonCoroutines.SleepForRandomUiInteractionTime(); // _commandtableCompletemissionsWaittimer.Reset(); // GarrisonManager.CompletedMissionIds.Remove(_currentMission.Id); // GarrisonManager.CompletedMissions.Remove(_currentMission); // _currentMission = null; // return true; // } //return true; }
public void MarkAsCompleted() { LuaCommands.MissionCompleteMarkComplete(Id); MarkedAsCompleted = true; }