< Summary

Class:DCL.Tutorial.TutorialStep_OpenControlsPanel
Assembly:Onboarding
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Tutorial/Scripts/Steps/Initial/TutorialStep_OpenControlsPanel.cs
Covered lines:0
Uncovered lines:26
Coverable lines:26
Total lines:72
Line coverage:0% (0 of 26)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
OnStepStart()0%30500%
OnStepExecute()0%12300%
OnStepFinished()0%30500%
ControlsHud_OnControlsOpened()0%42600%
ControlsHud_OnControlsClosed()0%12300%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Tutorial/Scripts/Steps/Initial/TutorialStep_OpenControlsPanel.cs

#LineLine coverage
 1using System.Collections;
 2using UnityEngine;
 3
 4namespace DCL.Tutorial
 5{
 6    /// <summary>
 7    /// Class that represents the onboarding tutorial step related to how to open the controls panel.
 8    /// </summary>
 9    public class TutorialStep_OpenControlsPanel : TutorialStep
 10    {
 11        [SerializeField] AudioEvent audioEventSuccess;
 12        [SerializeField] private InputAction_Trigger toggleControlsHud;
 13
 14        private bool controlsHasBeenOpened = false;
 15        private bool controlsHasBeenClosed = false;
 16        private BooleanVariable originalControlsTriggerIsBlocked;
 17
 18        public override void OnStepStart()
 19        {
 020            base.OnStepStart();
 21
 022            originalControlsTriggerIsBlocked = toggleControlsHud.isTriggerBlocked;
 023            if (toggleControlsHud != null)
 024                toggleControlsHud.isTriggerBlocked = null;
 25
 026            if (tutorialController != null &&
 27                tutorialController.hudController != null &&
 28                tutorialController.hudController.controlsHud != null)
 29            {
 030                tutorialController.hudController.controlsHud.OnControlsOpened += ControlsHud_OnControlsOpened;
 031                tutorialController.hudController.controlsHud.OnControlsClosed += ControlsHud_OnControlsClosed;
 32            }
 033        }
 34
 35        public override IEnumerator OnStepExecute()
 36        {
 037            yield return new WaitUntil(() => controlsHasBeenOpened && controlsHasBeenClosed);
 038            audioEventSuccess.Play(true);
 039        }
 40
 41        public override void OnStepFinished()
 42        {
 043            base.OnStepFinished();
 44
 045            if (tutorialController != null &&
 46                tutorialController.hudController != null &&
 47                tutorialController.hudController.controlsHud != null)
 48            {
 049                tutorialController.hudController.controlsHud.OnControlsOpened -= ControlsHud_OnControlsOpened;
 050                tutorialController.hudController.controlsHud.OnControlsClosed -= ControlsHud_OnControlsClosed;
 51            }
 52
 053            if (toggleControlsHud != null)
 054                toggleControlsHud.isTriggerBlocked = originalControlsTriggerIsBlocked;
 055        }
 56
 57        internal void ControlsHud_OnControlsOpened()
 58        {
 059            if (!controlsHasBeenOpened && mainSection.activeSelf)
 060                controlsHasBeenOpened = true;
 61
 062            tutorialController?.hudController?.taskbarHud?.SetVisibility(true);
 063            CommonScriptableObjects.featureKeyTriggersBlocked.Set(false);
 064        }
 65
 66        internal void ControlsHud_OnControlsClosed()
 67        {
 068            if (controlsHasBeenOpened && mainSection.activeSelf)
 069                controlsHasBeenClosed = true;
 070        }
 71    }
 72}