diff --git a/Assets/Scripts/ItemGrabber.cs b/Assets/Scripts/ItemGrabber.cs index 1268b79..9e99531 100644 --- a/Assets/Scripts/ItemGrabber.cs +++ b/Assets/Scripts/ItemGrabber.cs @@ -67,10 +67,12 @@ public class ItemGrabber : MonoBehaviour { CanIgniteTorch |= Campfire != null && TorchableItem != null; } + bool JustPickedUpCasette = false; if (Casette != null && Input.GetButtonDown("Grab")) { Casette.Play(PreviousCasette); PreviousCasette = Casette; Casette = null; + JustPickedUpCasette = true; } else if (Campfire == null && LookedAtItem != null && Input.GetButtonDown("Grab")) { LookedAtItem.PickUp(HandTransform); GrabbedItems.Add(LookedAtItem); @@ -91,7 +93,7 @@ public class ItemGrabber : MonoBehaviour { } } - if (Input.GetButtonDown("Grab") && (LookedAtItem == null || Campfire != null) && ThrowableItem != null) { + if (Input.GetButtonDown("Grab") && (LookedAtItem == null || Campfire != null) && ThrowableItem != null && !JustPickedUpCasette) { Vector3 DropPosition; if (Campfire != null) { DropPosition = Campfire.transform.position + Vector3.up * 0.7f; @@ -133,9 +135,7 @@ public class ItemGrabber : MonoBehaviour { } } - PrimaryIndicator.alpha = Mathf.Lerp(PrimaryIndicator.alpha, - Casette != null || LookedAtItem != null || Campfire != null || ThrowableItem != null ? 1 : 0, - 10f * Time.deltaTime); + float PrimaryIndicatorTargetAlpha = 1; if (Casette != null) { PrimaryText.text = Casette.DisplayPrompt; } else if (Campfire != null && ThrowableItem != null) { @@ -144,12 +144,15 @@ public class ItemGrabber : MonoBehaviour { PrimaryText.text = $"Take {LookedAtItem.Quality.DisplayName}"; } else if (ThrowableItem != null) { PrimaryText.text = $"Throw {ThrowableItem.Quality.DisplayName}"; + } else { + PrimaryIndicatorTargetAlpha = 0; } + PrimaryIndicator.alpha = Mathf.Lerp(PrimaryIndicator.alpha, PrimaryIndicatorTargetAlpha, 10f * Time.deltaTime); - SecondaryIndicator.alpha = Mathf.Lerp(SecondaryIndicator.alpha, CanIgniteTorch ? 1 : 0, 10f * Time.deltaTime); if (CanIgniteTorch) { SecondaryText.text = $"Ignite {TorchableItem.Quality.DisplayName}"; } + SecondaryIndicator.alpha = Mathf.Lerp(SecondaryIndicator.alpha, CanIgniteTorch ? 1 : 0, 10f * Time.deltaTime); } private Item GetTorchableItem() { diff --git a/Assets/Scripts/StickSpawner.cs b/Assets/Scripts/StickSpawner.cs index a25164a..03c8376 100644 --- a/Assets/Scripts/StickSpawner.cs +++ b/Assets/Scripts/StickSpawner.cs @@ -52,11 +52,11 @@ public class StickSpawner : MonoBehaviour { LastSpawnedWasCasette = false; } CanSpawnNew = false; - var Stick = GameObject.Instantiate(SpawnedThing, transform.position + Vector3.up * 2, Random.rotation); + var Spawned = GameObject.Instantiate(SpawnedThing, transform.position + Vector3.up * 2, Random.rotation); if (LastSpawnedWasCasette) { - + SpawnedCasette = Spawned.GetComponent(); } else { - SpawnedStick = Stick.GetComponent(); + SpawnedStick = Spawned.GetComponent(); } }