public void AirStrikeControls() { if (m_controller.Action3.WasPressed && !m_airStrikeState && airstrikes.Count > 0) { EnableAirStrikeMarker(); } else if (m_controller.Action3.WasPressed && m_airStrikeState) { EnableNavigationMarker(); } CaptureZoneActorNetworked nearestCaptureZone = null; float closestDistanceSqr = Mathf.Infinity; foreach (AirStrikeNetwork a in airstrikes) { if (a.captureZone != null) { Vector3 directionToTarget = a.captureZone.transform.position - m_currentMarker.transform.position; float sqrToTarget = directionToTarget.sqrMagnitude; if (sqrToTarget < closestDistanceSqr) { closestDistanceSqr = sqrToTarget; nearestCaptureZone = a.captureZone; } } } if (m_airStrikeState && m_controller.Action1.WasPressed) { Instantiate(m_airStrike, m_currentMarker.transform.position, m_currentMarker.transform.rotation); EnableNavigationMarker(); airstrikes.Remove(nearestCaptureZone.airStrike); Destroy(nearestCaptureZone.gameObject); } }
public CaptureZoneActorNetworked captureZone; /*The capture zone where this airstrike was earned*/ public AirStrikeNetwork(CaptureZoneActorNetworked captureZoneActor) { captureZone = captureZoneActor; }