Fight Arena and enemys new Demon

This commit is contained in:
szczuras4
2025-04-29 05:28:16 +02:00
parent df9528157e
commit f2f4e8b070
102 changed files with 19523 additions and 18077 deletions

View File

@@ -0,0 +1,17 @@
using UnityEditor;
using UnityEngine;
[CustomEditor(typeof(NavMeshClearer))]
public class NavMeshClearerEditor : Editor
{
public override void OnInspectorGUI()
{
DrawDefaultInspector();
NavMeshClearer clearer = (NavMeshClearer)target;
if (GUILayout.Button("WyczyϾ NavMesh"))
{
clearer.ClearNavMesh();
}
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: d35e2a739f7ba8b4ab630aef89c67bce

View File

@@ -11,56 +11,86 @@ namespace Beyond
[DisallowMultipleComponent]
public class EnemyCombatNotifier : MonoBehaviour
{
private static EnemyCombatNotifier currentTarget;
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;
}
[SerializeField] private GameObject targetIcon; // << Dodajemy tylko to
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<vMessageReceiver>();
m_AICombat = GetComponent<vControlAICombat>();
m_fsm = GetComponent<vFSMBehaviourController>();
if (targetIcon)
targetIcon.SetActive(false); // << Na start ukrywamy ikonkê
m_messageReceiver.onReceiveMessage += (s, message) =>
{
//Debug.Log("Received message: " + s + " " + message);
if (s.Equals("Alert"))
{
OnCombat();
OnCombat(); // Tylko kiedy Alert
}
else if (s.Equals("Flee") || s.Equals("Patrol"))
{
OnCombatEnd();
OnCombatEnd(); // Kiedy Patrol albo Flee
}
};
if (m_AICombat)
{
m_AICombat.onDead.AddListener((arg0 => { OnCombatEnd(); }));
m_AICombat.onDead.AddListener(arg0 => { OnCombatEnd(); });
}
}
private void OnCombat()
{
if (currentTarget != null && currentTarget != this)
{
currentTarget.DisableTargetIcon(); // Zgas stary target
}
currentTarget = this;
EnableTargetIcon(); // Zapal siebie
if (GameStateManager.Instance)
{
GameStateManager.Instance.OnCombat(m_fsm);
}
}
private void OnCombatEnd()
{
if (currentTarget == this)
{
DisableTargetIcon(); // Zgas siebie
currentTarget = null;
}
if (GameStateManager.Instance)
{
GameStateManager.Instance.OnCombatEnd(m_fsm);
}
}
private void EnableTargetIcon()
{
if (targetIcon)
targetIcon.SetActive(true);
}
private void DisableTargetIcon()
{
if (targetIcon)
targetIcon.SetActive(false);
}
private void OnDisable()
{
OnCombatEnd(); // Kiedy przeciwnik znika
}
}
}
}

View File

@@ -0,0 +1,11 @@
using UnityEngine;
using UnityEngine.AI;
public class NavMeshClearer : MonoBehaviour
{
public void ClearNavMesh()
{
NavMesh.RemoveAllNavMeshData();
Debug.Log("NavMesh zosta³ wyczyszczony!");
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: c699340440c77a7498daa58fdc99bfd3