diff --git a/Assets/Scripts/Camera/CameraView.cs b/Assets/Scripts/Camera/CameraView.cs index 1e140553..f3ba0409 100644 --- a/Assets/Scripts/Camera/CameraView.cs +++ b/Assets/Scripts/Camera/CameraView.cs @@ -14,13 +14,17 @@ public class CameraView : MonoBehaviour private void OnEnable() { EventService.Instance.OnLightsOffByGhostEvent.AddListener(Shake); - EventService.Instance.PlayerDeathEvent.AddListener(Shake); + EventService.Instance.OnPlayerDeathEvent.AddListener(Shake); + EventService.Instance.OnRatRush.AddListener(Shake); + EventService.Instance.OnSkullDrop.AddListener(Shake); } private void OnDisable() { EventService.Instance.OnLightsOffByGhostEvent.RemoveListener(Shake); - EventService.Instance.PlayerDeathEvent.RemoveListener(Shake); + EventService.Instance.OnPlayerDeathEvent.RemoveListener(Shake); + EventService.Instance.OnRatRush.RemoveListener(Shake); + EventService.Instance.OnSkullDrop.RemoveListener(Shake); } private void Start() diff --git a/Assets/Scripts/Events/PlayerEscapedEvent.cs b/Assets/Scripts/Events/PlayerEscapedEvent.cs index de7df07b..aa6384bf 100644 --- a/Assets/Scripts/Events/PlayerEscapedEvent.cs +++ b/Assets/Scripts/Events/PlayerEscapedEvent.cs @@ -9,7 +9,7 @@ private void OnTriggerEnter(Collider other) if (other.GetComponent() != null) { GameService.Instance.GetSoundView().PlaySoundEffects(soundToPlay); - EventService.Instance.PlayerEscapedEvent.InvokeEvent(); + EventService.Instance.OnPlayerEscapedEvent.InvokeEvent(); } } } diff --git a/Assets/Scripts/Events/RatRushEvent.cs b/Assets/Scripts/Events/RatRushEvent.cs index bb27fdc5..4836ecfc 100644 --- a/Assets/Scripts/Events/RatRushEvent.cs +++ b/Assets/Scripts/Events/RatRushEvent.cs @@ -14,6 +14,7 @@ private void OnTriggerEnter(Collider other) if (other.GetComponent() != null) { onRatRush(); + EventService.Instance.OnRatRush.InvokeEvent(); GameService.Instance.GetSoundView().PlaySoundEffects(soundToPlay); GetComponent().enabled = false; } diff --git a/Assets/Scripts/Events/SkullDropEvent.cs b/Assets/Scripts/Events/SkullDropEvent.cs index 4cd5ec39..16c4cff5 100644 --- a/Assets/Scripts/Events/SkullDropEvent.cs +++ b/Assets/Scripts/Events/SkullDropEvent.cs @@ -10,13 +10,14 @@ private void OnTriggerEnter(Collider other) { if (other.GetComponent() != null && GameService.Instance.GetPlayerController().KeysEquipped >= keysRequiredToTrigger) { - OnSkullDrop(); + onSkullDrop(); GameService.Instance.GetSoundView().PlaySoundEffects(soundToPlay); + EventService.Instance.OnSkullDrop.AddListener(onSkullDrop); GetComponent().enabled = false; } } - private void OnSkullDrop() + private void onSkullDrop() { skulls.gameObject.SetActive(true); } diff --git a/Assets/Scripts/Interactables/PotionView.cs b/Assets/Scripts/Interactables/PotionView.cs index 639d68a2..9ec4fd51 100644 --- a/Assets/Scripts/Interactables/PotionView.cs +++ b/Assets/Scripts/Interactables/PotionView.cs @@ -9,6 +9,7 @@ public void Interact() { GameService.Instance.GetInstructionView().HideInstruction(); GameService.Instance.GetSoundView().PlaySoundEffects(soundType); + EventService.Instance.OnPotionDrink.InvokeEvent(potionEffect); gameObject.SetActive(false); } } diff --git a/Assets/Scripts/Player/PlayerController.cs b/Assets/Scripts/Player/PlayerController.cs index 709d4f7d..bc2e8478 100644 --- a/Assets/Scripts/Player/PlayerController.cs +++ b/Assets/Scripts/Player/PlayerController.cs @@ -24,14 +24,14 @@ public PlayerController(PlayerView playerView, PlayerScriptableObject playerScri EventService.Instance.OnLightsOffByGhostEvent.AddListener(onLightsOffByGhost); EventService.Instance.OnLightSwitchToggled.AddListener(onLightsToggled); EventService.Instance.OnKeyPickedUp.AddListener(OnKeyPickedUp); - EventService.Instance.PlayerEscapedEvent.AddListener(DisableControls); + EventService.Instance.OnPlayerEscapedEvent.AddListener(DisableControls); } ~PlayerController() { EventService.Instance.OnLightsOffByGhostEvent.RemoveListener(onLightsOffByGhost); EventService.Instance.OnLightSwitchToggled.RemoveListener(onLightsToggled); EventService.Instance.OnKeyPickedUp.RemoveListener(OnKeyPickedUp); - EventService.Instance.PlayerEscapedEvent.RemoveListener(DisableControls); + EventService.Instance.OnPlayerEscapedEvent.RemoveListener(DisableControls); } public void Interact() => IsInteracted = Input.GetKeyDown(KeyCode.E) ? true : (Input.GetKeyUp(KeyCode.E) ? false : IsInteracted); @@ -60,7 +60,7 @@ public void Move(Rigidbody playerRigidbody, Transform transform) public void KillPlayer() { PlayerState = PlayerState.Dead; - EventService.Instance.PlayerDeathEvent.InvokeEvent(); + EventService.Instance.OnPlayerDeathEvent.InvokeEvent(); } private void onLightsOffByGhost() => PlayerState = PlayerState.InDark; diff --git a/Assets/Scripts/Player/PlayerSanity.cs b/Assets/Scripts/Player/PlayerSanity.cs index 6eb89bef..e0e50bab 100644 --- a/Assets/Scripts/Player/PlayerSanity.cs +++ b/Assets/Scripts/Player/PlayerSanity.cs @@ -8,6 +8,20 @@ public class PlayerSanity : MonoBehaviour private float maxSanity; private PlayerController playerController; + private void OnEnable() + { + EventService.Instance.OnRatRush.AddListener(OnSupernaturalEvent); + EventService.Instance.OnSkullDrop.AddListener(OnSupernaturalEvent); + EventService.Instance.OnPotionDrink.AddListener(OnDrankPotion); + } + + private void OnDisable() + { + EventService.Instance.OnRatRush.RemoveListener(OnSupernaturalEvent); + EventService.Instance.OnSkullDrop.RemoveListener(OnSupernaturalEvent); + EventService.Instance.OnPotionDrink.RemoveListener(OnDrankPotion); + } + private void Start() { maxSanity = sanityLevel; diff --git a/Assets/Scripts/Service/EventService.cs b/Assets/Scripts/Service/EventService.cs index fdb347e8..e2f521f6 100644 --- a/Assets/Scripts/Service/EventService.cs +++ b/Assets/Scripts/Service/EventService.cs @@ -17,16 +17,22 @@ public static EventService Instance public EventController OnKeyPickedUp { get; private set; } public EventController OnLightsOffByGhostEvent { get; private set; } - public EventController PlayerEscapedEvent { get; private set; } - public EventController PlayerDeathEvent { get; private set; } + public EventController OnPlayerEscapedEvent { get; private set; } + public EventController OnPlayerDeathEvent { get; private set; } + public EventController OnRatRush { get; private set; } + public EventController OnSkullDrop { get; private set; } + public EventController OnPotionDrink { get; private set; } public EventService() { OnLightSwitchToggled = new EventController(); OnKeyPickedUp = new EventController(); OnLightsOffByGhostEvent = new EventController(); + OnRatRush = new EventController(); + OnSkullDrop = new EventController(); + OnPotionDrink = new EventController(); - PlayerEscapedEvent = new EventController(); - PlayerDeathEvent = new EventController(); + OnPlayerEscapedEvent = new EventController(); + OnPlayerDeathEvent = new EventController(); } } diff --git a/Assets/Scripts/UI/GameUIView.cs b/Assets/Scripts/UI/GameUIView.cs index 01c49482..6fc8f7f5 100644 --- a/Assets/Scripts/UI/GameUIView.cs +++ b/Assets/Scripts/UI/GameUIView.cs @@ -23,9 +23,11 @@ private void OnEnable() { EventService.Instance.OnKeyPickedUp.AddListener(OnKeyEquipped); EventService.Instance.OnLightsOffByGhostEvent.AddListener(SetRedVignette); - EventService.Instance.PlayerEscapedEvent.AddListener(OnPlayerEscaped); - EventService.Instance.PlayerDeathEvent.AddListener(SetRedVignette); - EventService.Instance.PlayerDeathEvent.AddListener(OnPlayerDeath); + EventService.Instance.OnPlayerEscapedEvent.AddListener(OnPlayerEscaped); + EventService.Instance.OnPlayerDeathEvent.AddListener(SetRedVignette); + EventService.Instance.OnPlayerDeathEvent.AddListener(OnPlayerDeath); + EventService.Instance.OnRatRush.AddListener(SetRedVignette); + EventService.Instance.OnSkullDrop.AddListener(SetRedVignette); tryAgainButton.onClick.AddListener(OnTryAgainButtonClicked); quitButton.onClick.AddListener(OnQuitButtonClicked); @@ -35,9 +37,11 @@ private void OnDisable() { EventService.Instance.OnKeyPickedUp.RemoveListener(OnKeyEquipped); EventService.Instance.OnLightsOffByGhostEvent.RemoveListener(SetRedVignette); - EventService.Instance.PlayerEscapedEvent.RemoveListener(OnPlayerEscaped); - EventService.Instance.PlayerDeathEvent.RemoveListener(SetRedVignette); - EventService.Instance.PlayerDeathEvent.RemoveListener(OnPlayerDeath); + EventService.Instance.OnPlayerEscapedEvent.RemoveListener(OnPlayerEscaped); + EventService.Instance.OnPlayerDeathEvent.RemoveListener(SetRedVignette); + EventService.Instance.OnPlayerDeathEvent.RemoveListener(OnPlayerDeath); + EventService.Instance.OnRatRush.RemoveListener(SetRedVignette); + EventService.Instance.OnSkullDrop.RemoveListener(SetRedVignette); } public void UpdateInsanity(float playerSanity) => insanityImage.rectTransform.localScale = new Vector3(1, playerSanity, 1);