public GameObject GetTargetWithinRange(Vector3 a_origin, IFFGROUP a_originTeam, /*TARGETINGAI a_aiMethod,*/ float a_maxRange = 1000.0f)
    {
        GameObject target;

        //may use if to switch between turrets and ships
        var possibleTargetList = new List<BaseShip>();

        for (int i = 0; i < m_shipList.Count; i++)
        {
            var baseShip = m_shipList[i].GetBaseShip();
            //Debug.Log(baseShip.GetIFF());
            //Debug.Log(a_originTeam);
            //Debug.Log((a_origin - baseShip.transform.position).magnitude);
            //Debug.Log((a_maxRange + baseShip.m_signatureRadius));
            if(baseShip.GetIFF() != a_originTeam && (a_origin - baseShip.transform.position).magnitude < (a_maxRange + baseShip.m_signatureRadius)) //maybe this would be better optimised if I nested ifs
            {
                possibleTargetList.Add(baseShip);
            }
        }

        if(possibleTargetList.Count > 0)
        {
            target = possibleTargetList[0].gameObject;

            return target;
        }
        else
        {
            return null;
        }
    }
    void CreateShip(ShipBuild a_build, IFFGROUP a_team, Vector3 a_position)
    {
        GameObject ship = Instantiate(DataManager.Instance.GetPrefab(a_build.m_hull));
        ship.transform.SetParent(this.transform);
        BaseShip shipScript = ship.GetComponent<BaseShip>();
        shipScript.Initialise(a_build.m_hardpoints);
        ship.transform.position = a_position;
        ship.GetComponent<ShipController>().SetIFF(a_team);

        //add ship to lists
        ObjectManager.Instance.AddShip(shipScript);
    }
 public void SetIFF(IFFGROUP a_team)
 {
     m_team = a_team;
     m_baseShip.SetIFF(a_team);
 }
 public void SetTeam(int a_team)
 {
     m_team = (IFFGROUP)a_team;
 }
 public FleetController GetFleetController(IFFGROUP a_team)
 {
     return m_fleetControllerList[(int)a_team];
 }
 //heat modifier?
 public DamageInformation(float a_physicalDamageMagnitude, float a_energyDamageMagnitude, float a_physicalPierceModifier, float a_energyPierceModifier, IFFGROUP a_team)
 {
     m_physicalDamageMagnitude = a_physicalDamageMagnitude;
     m_energyDamageMagnitude = a_energyDamageMagnitude;
     m_physicalPierceModifier = a_physicalPierceModifier;
     m_energyPierceModifier = a_energyPierceModifier;
     m_team = a_team;
 }
 public void SetIFF(IFFGROUP a_team)
 {
     m_team = a_team;
 }