Hide safe zone prompt when not appropriate

This commit is contained in:
Jason Durand 01 2022-04-04 01:49:17 -04:00
parent d3ecdce23f
commit 1811f3621f
2 changed files with 5 additions and 3 deletions

View File

@ -175,7 +175,7 @@ public class PlayerMovement : MonoBehaviour {
} }
} }
class NormalMovementState : BaseStatePlayerMovement { public class NormalMovementState : BaseStatePlayerMovement {
public NormalMovementState(PlayerMovement playerMovement) : base(playerMovement) {} public NormalMovementState(PlayerMovement playerMovement) : base(playerMovement) {}
public override void EnterState() { public override void EnterState() {
@ -256,6 +256,7 @@ public class PlayerMovement : MonoBehaviour {
playerMovement.globalCamera.SetActive(true); playerMovement.globalCamera.SetActive(true);
playerMovement.rb.SetEnabled(false); playerMovement.rb.SetEnabled(false);
safeZone.canvas.gameObject.SetActive(false);
} }
protected override BaseState Transition() => new ImmobileMovementState(playerMovement); protected override BaseState Transition() => new ImmobileMovementState(playerMovement);
@ -274,6 +275,7 @@ public class PlayerMovement : MonoBehaviour {
base.LeaveState(); base.LeaveState();
playerMovement.rb.SetEnabled(true); playerMovement.rb.SetEnabled(true);
safeZone.canvas.gameObject.SetActive(true);
} }
protected override float ModifyLerpTime(float t) => safeZone.Stats.JumpSpeedCurve.Evaluate(t); protected override float ModifyLerpTime(float t) => safeZone.Stats.JumpSpeedCurve.Evaluate(t);

View File

@ -6,7 +6,7 @@ public class SafeZone : MonoBehaviour {
public SafeZoneStats Stats { get; private set; } public SafeZoneStats Stats { get; private set; }
[SerializeField] Collider2D moatCollider; [SerializeField] Collider2D moatCollider;
[SerializeField] RectTransform canvas; [SerializeField] public RectTransform canvas;
public float OutsideDistance => moatCollider.bounds.extents.x + Stats.JumpOffset; public float OutsideDistance => moatCollider.bounds.extents.x + Stats.JumpOffset;
@ -19,7 +19,7 @@ public class SafeZone : MonoBehaviour {
} }
private void OnTriggerStay2D(Collider2D other) { private void OnTriggerStay2D(Collider2D other) {
if(!(other.GetComponent<VampireEntity>() is null)){ if(other.GetComponent<PlayerMovement>() is {} playerMovement && playerMovement.currentState is PlayerMovement.NormalMovementState){
Vector3 diff = (other.transform.position - transform.position); Vector3 diff = (other.transform.position - transform.position);
//Player is in the zone around the moat //Player is in the zone around the moat
if(diff.magnitude >= moatCollider.bounds.extents.x){ if(diff.magnitude >= moatCollider.bounds.extents.x){