66 lines
1.9 KiB
C#
66 lines
1.9 KiB
C#
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 OnDestroy()
|
|
{
|
|
OnCombatEnd();
|
|
}
|
|
|
|
// Start is called before the first frame update
|
|
private void Start()
|
|
{
|
|
m_messageReceiver = GetComponent<vMessageReceiver>();
|
|
m_AICombat = GetComponent<vControlAICombat>();
|
|
m_fsm = GetComponent<vFSMBehaviourController>();
|
|
|
|
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(); }));
|
|
}
|
|
}
|
|
}
|
|
} |