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; }