Skip to content

QuestorStates Outline

ISeeDEDPpl edited this page Mar 16, 2012 · 4 revisions

QuestorStates a rough Outline

Settings: AfterMissionSalvaging = false
	If everything goes 'right' the most efficient way through the states is (1st Run): 
	Idle --> Cleanup --> GotoBase --> UnloadLoot --> CheckEVEStatus --> Start --> 
	Arm --> LocalWatch --> WarpOutStation --> GotoMission --> ExecuteMission --> GotoBase --> 
	CompleteMission --> UnloadLoot --> Idle
	
Settings: AfterMissionSalvaging = false
	If everything goes 'right' the most efficient way through the states is (2nd through nth Runs): 
	Idle --> Cleanup --> 							CheckEVEStatus --> Start --> 
	Arm --> LocalWatch --> WarpOutStation --> GotoMission --> ExecuteMission --> GotoBase --> 
	CompleteMission --> UnloadLoot --> Idle
	
Settings: AfterMissionSalvaging = true
	If everything goes 'right' the most efficient way through the states is (1st Run): 
	Idle --> Cleanup --> GotoBase --> UnloadLoot --> CheckEVEStatus --> Start --> 
	Arm --> LocalWatch --> WarpOutStation --> GotoMission --> ExecuteMission --> GotoBase --> 
	CompleteMission --> UnloadLoot --> BeginAfterMissionSalvaging --> GotoSalvageBookmark --> 
            Salvage --> GotoBase --> UnloadLoot --> Idle
	
Settings: AfterMissionSalvaging = true
	If everything goes 'right' the most efficient way through the states is (2nd through nth Runs): 
	Idle --> Cleanup --> 							 CheckEVEStatus --> Start --> 
	Arm --> LocalWatch --> WarpOutStation --> GotoMission --> ExecuteMission --> GotoBase --> 
	CompleteMission --> UnloadLoot --> BeginAfterMissionSalvaging --> GotoSalvageBookmark --> 
            Salvage --> GotoBase --> UnloadLoot --> Idle
	
Idle--> CloseQuestor 		        : MaxRTunTime
    --> CloseQuestor 		: StopTimeSpecified
    --> CloseQuestor 		: ExitWhenIdle
    --> DelayedGotoBase		: Cache.Instance.InSpace = true
    --> DelayedStart		: if (Settings.Instance.RandomDelay > 0 || Settings.Instance.MinimumDelay > 0)
    --> Cleanup        		: Start the next State headed toward starting a mission
DelayedGotoBase,
    --> GotoBase       		: Wait n seconds then GotoBase State
    DelayedStart,
    --> Cleanup        		: Start the next State headed toward starting a mission
    Cleanup,
    --> GotoBase		: If Loot hasn't been unloaded yet (just started questor?)
    --> CheckEVEStatus  	: Checks EVE process health status
CheckEVEStatus,
    --> CloseQuestor		: If necessary eve will be closed and restarted (memory usage?)
        --> Start			: Start 
	CloseQuestor,		: Close EVE and restart: Once you have reached this state their is nothing to do but close eve and restart
Start,
        --> Switch			: If you are in the wrong station and is not the first agent
    --> Storyline		: If storylines are enabled, and you have one (this should run a storyline as soon as you get it)
        --> Switch			: if (_agentInteraction.State == AgentInteractionState.ChangeAgent)
    --> Arm			: if (_agentInteraction.State == AgentInteractionState.Done)
    Switch,
    --> GotoBase		: When done switching ???
    Arm,
    --> CourierMission  	: if (Cache.Instance.CourierMission)
    --> LocalWatch		: Check Local for bad guys before undocking
    LocalWatch,
    --> WarpOutStation  	: Use undock bookmark if it exists
    WaitingforBadGuytoGoAway,
    --> LocalWatch		: Check Local Again
    WarpOutStation,
    --> GotoMission     	: If you have no undock bookmark or if you've landed at your bookmark
    GotoMission,
    --> ExecuteMission  	: Once we are at the mission, execute the mission
    ExecuteMission,
    --> GotoBase		: if (_missionController.State == MissionControllerState.Done) or MissionControllerState.Error
GotoBase,
    --> Error			: If MissionControllerState.Error
    --> CompleteMission 	: If we aren't out of ammo and we have a mission and missionstate is Accepted
    --> UnloadLoot      	: If we are out of ammo, we don't have a mission or missionstate is not Accepted
    CompleteMission,
    --> UnloadLoot		: if (_agentInteraction.State == AgentInteractionState.Done)
    --> Idle			: if (Cache.Instance.CourierMission)
    UnloadLoot,
    --> BeginAfterMissionSalvaging : if (DateTime.Now.Subtract(Statistics.Instance.FinishedSalvaging).Minutes > ((int)Time.WrecksDisappearAfter_minutes - (int)Time.AverageTimeToCompleteAMission_minutes - (int)Time.AverageTimetoSalvageMultipleMissions_minutes))
        --> Idle			: else (if not after mission salvaging then go to next mission)
    --> Start			: if we were out of ammo
        --> Idle 			: If we aren't after mission salvaging and we aren't out of ammo we must be done. 
CourierMission,        
    BeginAfterMissionSalvaging,
    --> GotoSalvageBookmark     : The Salvaging equivalent to GotoMission
    GotoSalvageBookmark,
        --> Salvage			: Once we are at a salvagebookmark, salvage
SalvageUseGate,
    --> SalvageNextPocket	: go to next pocket
    SalvageNextPocket,
    --> Salvage			: Once we have reached the next pocket, salvage
    Salvage,
    --> GotoSalvageBookmark     : If we don't have any gates here assume you can warp to the next bookmark
    --> UseGatesInSalvage 	: If we do have gates assume you need to use the gate for the next bookmark
        --> GotoBase        	: If we have gates and useGatesInSalvage is false Return to Base (does this delete the existing bookmarks if any?)
    Error,
    Paused,
    Panic,
Traveler,
    Scanning,
    Storyline,
    StorylinePanic,
    CombatHelper,
    CombatHelper_anomaly,
    SalvageOnly,
    SalvageOnlyBookmarks,
    GotoSalvageOnlyBookmark,
    Debug_Windows,
    Debug_CloseQuestor,
Clone this wiki locally