Untitled
unknown
csharp
8 months ago
2.0 kB
6
Indexable
using System.Collections;
using System.Collections.Generic;
using Unity.VisualScripting;
using UnityEngine;
using UnityEngine.AI;
public class GeneralBehaviourManager : MonoBehaviour
{
//Determines what the entity is supposed to be doing, while also setting some tags for it, without calling for any particular ability
private GameManager gameManager;
public string charactersName;
public EntityStats entityStats;
public HealthBarManager health;
public bool isDead;
public GameObject deadVFXIndicator;
public ResourceManager resource;
public GeneralistAbilityManager generalistAbilityManager;
public NavMeshTargetSetter navMeshTargetSetter;
public enum EntityAllegianceTag { ENEMY, PLAYER };
public enum EntityGroupTag { MELEE, RANGED };
public enum EntityPlayerTypeTag { TANK, HEALER, DPS };
private void Awake ()
{
gameManager = FindAnyObjectByType<GameManager> ();
}
private void Update ()
{
if (!gameManager.isCombatTimeRunning || isDead)
{
return;
}
SetAgentStoppingDistance (generalistAbilityManager.preferredFocusDistance);
}
private void LateUpdate()
{
if (!gameManager.isCombatTimeRunning)
{
return;
}
if (deadVFXIndicator != null)
{
deadVFXIndicator.SetActive (isDead);
}
navMeshTargetSetter.agent.enabled = !isDead;
}
public void SetAgentStoppingDistance (float distance)
{
navMeshTargetSetter.SetStoppingDistance (distance);
}
//Most scripts check for the isDead state to set the player to be so
public void KillEntity ()
{
isDead = true;
//Check if this is a player or an enemy
if (generalistAbilityManager.playerAggro == null)
{
Destroy(this.gameObject);
}
}
}Editor is loading...
Leave a Comment