< 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:27
Coverable lines:27
Total lines:69
Line coverage:0% (0 of 27)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
OnStepStart()0%20400%
OnStepExecute()0%12300%
OnStepFinished()0%20400%
ControlsHud_OnControlsOpened()0%90900%
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 && tutorialController.hudController != null)
 27            {
 028                tutorialController.hudController.controlsHud.OnControlsOpened += ControlsHud_OnControlsOpened;
 029                tutorialController.hudController.controlsHud.OnControlsClosed += ControlsHud_OnControlsClosed;
 30            }
 031        }
 32
 33        public override IEnumerator OnStepExecute()
 34        {
 035            yield return new WaitUntil(() => controlsHasBeenOpened && controlsHasBeenClosed);
 036            audioEventSuccess.Play(true);
 037        }
 38
 39        public override void OnStepFinished()
 40        {
 041            base.OnStepFinished();
 42
 043            if (tutorialController != null && tutorialController.hudController != null)
 44            {
 045                tutorialController.hudController.controlsHud.OnControlsOpened -= ControlsHud_OnControlsOpened;
 046                tutorialController.hudController.controlsHud.OnControlsClosed -= ControlsHud_OnControlsClosed;
 47            }
 48
 049            if (toggleControlsHud != null)
 050                toggleControlsHud.isTriggerBlocked = originalControlsTriggerIsBlocked;
 051        }
 52
 53        private void ControlsHud_OnControlsOpened()
 54        {
 055            if (!controlsHasBeenOpened && mainSection.activeSelf)
 056                controlsHasBeenOpened = true;
 57
 058            tutorialController?.hudController?.taskbarHud?.SetVisibility(true);
 059            tutorialController?.hudController?.profileHud?.SetBackpackButtonVisibility(true);
 060            CommonScriptableObjects.featureKeyTriggersBlocked.Set(false);
 061        }
 62
 63        private void ControlsHud_OnControlsClosed()
 64        {
 065            if (controlsHasBeenOpened && mainSection.activeSelf)
 066                controlsHasBeenClosed = true;
 067        }
 68    }
 69}