private void SendAlertsBySound(Sound sound) { float radiusOfAlertAtMaxVolume = 23; float radiusOfAlert = sound.volume * radiusOfAlertAtMaxVolume; Alertable.AlertAllInRadius(transform.position, radiusOfAlert); }
private void Awake() { if (alertsManager == null) { alertsManager = this; } }
public static void AlertAllInRadius(Vector2 position, float radius) { if (radius <= 0) { return; } if (alertsManager == null) //Should never happen. alertsManager acts as a Singleton { return; } alertsManager.StartCoroutine(alertsManager.DebugAlertRadius(position, radius)); foreach (Collider2D objInRange in Physics2D.OverlapCircleAll(position, radius)) { Alertable alertable = objInRange.GetComponent <Alertable>(); if (alertable != null) { if ((!(alertable.character.brain is ChasingBrain)) && (!(GameManager.Instance.playerManager.state is ReviveState))) { alertable.Alert(position); } } } }
protected override void SetState(bool state, CharacterManager characterActivating, bool alertAtActivate) { foreach (GameObject go in activableObjectsOnSetActive) { go.SetActive(state); } if (state && alertAtActivate) { Alertable.AlertAllInRadius(new Vector2(transform.position.x, transform.position.y) + alertPoint, alertRadius); } }
public void ActivateAlarm() { //lightEmmitter.SetActive(true); if (alertsOnActivation) { Alertable.AlertAllInRadius(new Vector2(transform.position.x, transform.position.y), alertRadius); } if (lightCoroutine != null) { audioController.StopAllSoundsInstantaneously(); lightEmmitter.SetActive(false); StopCoroutine(lightCoroutine); StopCoroutine(alarmCoroutine); } lightCoroutine = PlayLightAnimation(); alarmCoroutine = StopAll(); StartCoroutine(lightCoroutine); StartCoroutine(alarmCoroutine); }