Example #1
0
        public bool IsStateActiveOnStage(TutorialStateName stateName, int stage)
        {
            var state = GetState(stateName);

            if (state != null)
            {
                return(state.IsActive && (state.Stage == stage));
            }
            return(false);
        }
Example #2
0
        private void SkipState(TutorialStateName state)
        {
            var stateObj = GetState(state);

            if (stateObj != null)
            {
                if (!stateObj.IsCompleted && !stateObj.IsActive)
                {
                    ForceComplete(state);
                }
            }
        }
Example #3
0
 private void ForceComplete(TutorialStateName state)
 => States.FirstOrDefault(s => s.Name == state)?.ForceSetCompleted();
Example #4
0
 public TutorialState GetState(TutorialStateName name)
 => States.FirstOrDefault(state => state.Name == name);
Example #5
0
 public void SetStage(TutorialStateName state, int stage)
 => GetState(state)?.SetStage(stage);
Example #6
0
 public bool IsStateActive(TutorialStateName name)
 {
     return((GetState(name)?.IsActive ?? false) == true);
 }
Example #7
0
 public bool IsStateCompleted(TutorialStateName name)
 {
     return((GetState(name)?.IsCompleted ?? false) == true);
 }
Example #8
0
        private IEnumerator CompleteStateImpl(TutorialStateName stateName)
        {
            yield return(new WaitUntil(() => IsLoaded));

            GetState(stateName)?.SetCompleted(Services, true);
        }
Example #9
0
 public void CompleteState(TutorialStateName stateName)
 {
     StartCoroutine(CompleteStateImpl(stateName));
 }
Example #10
0
 public static StringBuilder AppendTutorialStateCompletedCondition(this StringBuilder sb, TutorialStateName stateName)
 {
     sb.AppendLine($"Is {stateName} completed: {GameServices.Instance.TutorialService.IsStateCompleted(stateName)}");
     return(sb);
 }