private void RemoveDeadCreepFromList(Creep _creep) //If the creep that died is in the current list...
 {
     if (DefenderCreepList.Contains(_creep))
     {
         DefenderCreepList.Remove(_creep); //Remove it
     }
 }
    public void GetTargetReferenceFromRallyPoint(GameObject other)
    {
        Creep newCreep = other.GetComponent <Creep>();
        scrCreepEngagementHandler _newCreepEngagementHandler = newCreep.GetComponent <scrCreepEngagementHandler>();

        if (newCreep._CreepHealth.CurrentHealth > 0f) //Extra check needed in case a creep that just died "slides" into the collider
        {
            DefenderCreepList.Add(newCreep);
            foreach (DefenderEngagementHandler _defender in Defenders) //Send all defenders to engage as none
            {
                if (_defender.defenderIsAlive && !_defender.thisDefenderIsEngagedAsMainTarget && !_defender.thisDefenderIsEngagedAsNoneTarget)
                {
                    //print("Sent a defender as none target");
                    _defender.DefenderEngageNewTargetAsNone(newCreep);
                }
            }
            for (int i = 0; i < Defenders.Count; i++) //Send a defender to engage as main
            {
                if (!Defenders[i].thisDefenderIsEngagedAsMainTarget && Defenders[i].defenderIsAlive && _newCreepEngagementHandler.CurrentTarget == null)
                {
                    //print("Sent a defender to engage new target: " + newCreep);
                    Defenders[i].DefenderEngageNewTargetAsMain(Defenders[i], newCreep);
                    return; //Only send one
                }
            }
        }
    }
    public void LooseTargetReferenceFromRallyPoint(GameObject other)
    {
        Creep theCreep = other.GetComponent <Creep>();

        if (DefenderCreepList.Contains(theCreep))
        {
            LooseDefenderTarget?.Invoke(theCreep, Defenders);
            DefenderCreepList.Remove(theCreep);
        }
        //print("Lost a creep reference: " + other);
    }