public void CombatOver()
 {
     if (in_combat)
     {
         in_combat        = false;
         orders           = SQUADORDER.ATTACKFLAG;
         needs_new_orders = true;
     }
 }
    private void Update()
    {
        time_since_last_order += Time.deltaTime;

        if (targetFlag)
        {
            if (!targetFlag.taken && needs_new_orders && (time_since_last_order > time_between_orders))
            {
                time_since_last_order = 0;
                needs_new_orders      = false;

                switch (orders)
                {
                case SQUADORDER.ATTACKFLAG:
                {
                    for (int i = 0; i < SquadUnits.Count; i++)
                    {
                        SquadUnits[i].GetComponent <Unit>().Move(targetFlag.Grid_Pos);
                    }
                    break;
                }

                case SQUADORDER.DEFENDFLAG:
                {
                    FindNearestCover(targetFlag.Grid_Pos);
                    break;
                }

                default:
                    Debug.Log("Invalid Order type, how have you managed this?");
                    break;
                }
            }

            if (needs_new_orders == false && time_since_last_order > 40)
            {
                orders           = SQUADORDER.ATTACKFLAG;
                needs_new_orders = true;
            }
        }
    }