using System.Collections; using System.Collections.Generic; using Invector; using Invector.vCharacterController.AI; using Invector.vCharacterController.AI.FSMBehaviour; using UnityEngine; namespace Beyond { [RequireComponent(typeof(vMessageReceiver))] [DisallowMultipleComponent] public class EnemyCombatNotifier : MonoBehaviour { private vMessageReceiver m_messageReceiver; private vControlAICombat m_AICombat; private vFSMBehaviourController m_fsm; //bool wasTriggerd = false; private void OnCombat() { //if (wasTriggerd || GameStateManager.Instance == null) // return; GameStateManager.Instance.OnCombat(m_fsm); //wasTriggerd = true; } private void OnCombatEnd() { if (GameStateManager.Instance) { GameStateManager.Instance.OnCombatEnd(m_fsm); // wasTriggerd = false; } } private void OnDisable() { OnCombatEnd(); } // Start is called before the first frame update private void Start() { m_messageReceiver = GetComponent(); m_AICombat = GetComponent(); m_fsm = GetComponent(); m_messageReceiver.onReceiveMessage += (s, message) => { //Debug.Log("Received message: " + s + " " + message); if (s.Equals("Alert")) { OnCombat(); } else if (s.Equals("Flee") || s.Equals("Patrol")) { OnCombatEnd(); } }; if (m_AICombat) { m_AICombat.onDead.AddListener((arg0 => { OnCombatEnd(); })); } } } }