public bool IsStateActiveOnStage(TutorialStateName stateName, int stage) { var state = GetState(stateName); if (state != null) { return(state.IsActive && (state.Stage == stage)); } return(false); }
private void SkipState(TutorialStateName state) { var stateObj = GetState(state); if (stateObj != null) { if (!stateObj.IsCompleted && !stateObj.IsActive) { ForceComplete(state); } } }
private void ForceComplete(TutorialStateName state) => States.FirstOrDefault(s => s.Name == state)?.ForceSetCompleted();
public TutorialState GetState(TutorialStateName name) => States.FirstOrDefault(state => state.Name == name);
public void SetStage(TutorialStateName state, int stage) => GetState(state)?.SetStage(stage);
public bool IsStateActive(TutorialStateName name) { return((GetState(name)?.IsActive ?? false) == true); }
public bool IsStateCompleted(TutorialStateName name) { return((GetState(name)?.IsCompleted ?? false) == true); }
private IEnumerator CompleteStateImpl(TutorialStateName stateName) { yield return(new WaitUntil(() => IsLoaded)); GetState(stateName)?.SetCompleted(Services, true); }
public void CompleteState(TutorialStateName stateName) { StartCoroutine(CompleteStateImpl(stateName)); }
public static StringBuilder AppendTutorialStateCompletedCondition(this StringBuilder sb, TutorialStateName stateName) { sb.AppendLine($"Is {stateName} completed: {GameServices.Instance.TutorialService.IsStateCompleted(stateName)}"); return(sb); }