From 1811f3621f7c4db414344087c9c48a4a12944cb3 Mon Sep 17 00:00:00 2001 From: Jason Durand 01 Date: Mon, 4 Apr 2022 01:49:17 -0400 Subject: [PATCH] Hide safe zone prompt when not appropriate --- Assets/Scripts/PlayerMovement.cs | 4 +++- Assets/Scripts/SafeZone.cs | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/Assets/Scripts/PlayerMovement.cs b/Assets/Scripts/PlayerMovement.cs index 951aed3..97868f0 100644 --- a/Assets/Scripts/PlayerMovement.cs +++ b/Assets/Scripts/PlayerMovement.cs @@ -175,7 +175,7 @@ public class PlayerMovement : MonoBehaviour { } } - class NormalMovementState : BaseStatePlayerMovement { + public class NormalMovementState : BaseStatePlayerMovement { public NormalMovementState(PlayerMovement playerMovement) : base(playerMovement) {} public override void EnterState() { @@ -256,6 +256,7 @@ public class PlayerMovement : MonoBehaviour { playerMovement.globalCamera.SetActive(true); playerMovement.rb.SetEnabled(false); + safeZone.canvas.gameObject.SetActive(false); } protected override BaseState Transition() => new ImmobileMovementState(playerMovement); @@ -274,6 +275,7 @@ public class PlayerMovement : MonoBehaviour { base.LeaveState(); playerMovement.rb.SetEnabled(true); + safeZone.canvas.gameObject.SetActive(true); } protected override float ModifyLerpTime(float t) => safeZone.Stats.JumpSpeedCurve.Evaluate(t); diff --git a/Assets/Scripts/SafeZone.cs b/Assets/Scripts/SafeZone.cs index f5201c9..44b3b0d 100644 --- a/Assets/Scripts/SafeZone.cs +++ b/Assets/Scripts/SafeZone.cs @@ -6,7 +6,7 @@ public class SafeZone : MonoBehaviour { public SafeZoneStats Stats { get; private set; } [SerializeField] Collider2D moatCollider; - [SerializeField] RectTransform canvas; + [SerializeField] public RectTransform canvas; public float OutsideDistance => moatCollider.bounds.extents.x + Stats.JumpOffset; @@ -19,7 +19,7 @@ public class SafeZone : MonoBehaviour { } private void OnTriggerStay2D(Collider2D other) { - if(!(other.GetComponent() is null)){ + if(other.GetComponent() is {} playerMovement && playerMovement.currentState is PlayerMovement.NormalMovementState){ Vector3 diff = (other.transform.position - transform.position); //Player is in the zone around the moat if(diff.magnitude >= moatCollider.bounds.extents.x){