Ejemplo n.º 1
0
    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;
    }