using GeometryTD.Definition; namespace GeometryTD.Procedure { public static class ProcedureMainRunFlowService { public static ProcedureMainRunAdvanceResult TryAdvanceRun( RunState runState, RunNodeCompletionStatus completionStatus, BackpackInventoryData snapshot) { if (!RunStateAdvanceService.TryCompleteCurrentNode(runState, completionStatus, snapshot)) { return ProcedureMainRunAdvanceResult.NoChange; } if (runState != null && runState.IsCompleted) { return ProcedureMainRunAdvanceResult.RunCompleted; } return completionStatus == RunNodeCompletionStatus.Exception ? ProcedureMainRunAdvanceResult.NodeException : ProcedureMainRunAdvanceResult.AdvancedToNextNode; } } }