Untitled

 avatar
unknown
csharp
13 days ago
2.4 kB
4
Indexable
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;

public class ListOfEntities : MonoBehaviour
{
    public GameObject enemies;
    public List<GeneralBehaviourManager> possibleEnemyTargets = new List<GeneralBehaviourManager> ();
    public GameObject playersGroups;
    public List<GeneralBehaviourManager> possiblePlayerGroupsTargets = new List<GeneralBehaviourManager> ();
    public GameObject waypoints;
    public List<Transform> possibleWaypointTargets = new List<Transform> ();

    void Start ()
    {

        enemies = GameObject.Find ("Enemies");
        playersGroups = GameObject.Find ("PlayerGroups");
        waypoints = GameObject.Find ("Waypoints");

        UpdateTargetLists ();

    }

    public void UpdateTargetLists ()
    {

        GetEnemies ();
        GetPlayerGroups ();
        GetWaypoints ();

    }

    public void GetEnemies ()
    {

        possibleEnemyTargets.Clear ();

        possibleEnemyTargets = enemies.GetComponentsInChildren<GeneralBehaviourManager> ().ToList ();

    }

    public void GetPlayerGroups ()
    {

        possiblePlayerGroupsTargets.Clear ();

        possiblePlayerGroupsTargets = playersGroups.GetComponentsInChildren<GeneralBehaviourManager> ().ToList ();

    }

    public void GetWaypoints ()
    {

        possibleWaypointTargets.Clear ();
        
        if (waypoints != null) 
        {
            foreach (Transform t in waypoints.transform)
            {
                possibleWaypointTargets.Add (t);
            }
        }

    }

    //Checks if ATLEAST ONE player is alive
    public bool AreAllPlayersDead ()
    {

        foreach (GeneralBehaviourManager gbm in possiblePlayerGroupsTargets)
        {

            if (!gbm.isDead)
            {
                return false;
            }

        }

        return true;

    }

    public void RemoveEntityFromList (GeneralBehaviourManager manager)
    {

        if (possibleEnemyTargets.Contains (manager)) { possibleEnemyTargets.Remove (manager); }
        if (possiblePlayerGroupsTargets.Contains (manager)) { possiblePlayerGroupsTargets.Remove (manager); }

    }

    public void RemoveEntityFromList (Transform waypoint)
    {
        if (possibleWaypointTargets.Contains (waypoint)) { possibleWaypointTargets.Remove (waypoint); }
    }
}
Editor is loading...
Leave a Comment