protected override void UpdateTask()
    {
        base.UpdateTask();
        float maxDistance = AirTraffic.trafficRadius * 1.01f;

        if ((AirTraffic.instance.mpMode || AirTraffic.settings.mpTestMode) && AirTraffic.instance.akutan == false)
        {
            maxDistance = AirTraffic.mapRadius * 1.4f;
        }
        if (AirTraffic.DistanceFromOrigin(VTMapManager.WorldToGlobalPoint(transform.position)) > maxDistance)
        {
            if (aircraft.aiPilot.commandState == AIPilot.CommandStates.Orbit)
            {
                Debug.Log(gameObject.name + " went outta bounds, respawning elsewhere");
                Vector3D pos = AirTraffic.PointOnCruisingRadius();
                Vector3  dir = -pos.toVector3;
                dir.y = 0;
                Spawn(pos, dir);
            }
            else
            {
                if (health.normalizedHealth != 0)
                {
                    Debug.Log(gameObject.name + " went outta bounds untintentionally, destroying them for our saftey");
                    health.Kill();
                }
            }
        }
    }
Esempio n. 2
0
    public override void StartTask(TrafficAI_Base ai)
    {
        Debug.Log("Starting fly off map task!");
        TrafficAI_Transport ai2 = (TrafficAI_Transport)ai;

        ai2.waypoint.GetTransform().position = VTMapManager.GlobalToWorldPoint(AirTraffic.PointOnMapRadius());
        ai2.aircraft.SetOrbitNow(ai2.waypoint, 10000, AirTraffic.cruisingAltitudes.Random());
        ai2.pilot.navSpeed = UnityEngine.Random.Range(ai2.normalSpeed, ai2.pilot.maxSpeed);
        base.StartTask(ai2);
    }
    public override void ModLoaded()
    {
        HarmonyInstance harmony = HarmonyInstance.Create("cheese.airtraffic");

        harmony.PatchAll(Assembly.GetExecutingAssembly());

        base.ModLoaded();
        VTOLAPI.SceneLoaded     += SceneLoaded;
        VTOLAPI.MissionReloaded += MissionReloaded;

        settings = new AirTrafficSettings();
        LoadFromFile();

        Settings modSettings = new Settings(this);

        modSettings.CreateCustomLabel("Air Traffic Settings");

        modSettings.CreateCustomLabel("");
        modSettings.CreateCustomLabel("Transport Aircraft");

        targetAircraftAmmount_changed += targetAircraftAmmount_Setting;
        modSettings.CreateCustomLabel("Ammount of transport aircraft:");
        modSettings.CreateIntSetting("(Default = 15)", targetAircraftAmmount_changed, settings.targetAircraftAmmount);

        useTransportAV42_changed += useTransportAV42_Setting;
        modSettings.CreateCustomLabel("Allow AV-42 to spawn as transport:");
        modSettings.CreateBoolSetting("(Default = true)", useTransportAV42_changed, settings.useTransportAV42);

        useTransportBig_changed += useTransportBig_Setting;
        modSettings.CreateCustomLabel("Allow big aircraft to spawn as transport:");
        modSettings.CreateCustomLabel("(Modified KC-49 and E-4)");
        modSettings.CreateBoolSetting("(Default = true)", useTransportBig_changed, settings.useTransportBig);

        useTransportDrone_changed += useTransportDrone_Setting;
        modSettings.CreateCustomLabel("Allow amazoon drone to spawn as transport:");
        modSettings.CreateCustomLabel("(Modified refuel plane)");
        modSettings.CreateBoolSetting("(Default = true)", useTransportDrone_changed, settings.useTransportDrone);

        useFighters_changed += useFighters_Setting;
        modSettings.CreateCustomLabel("Allow fighter jets to spawn as transport:");
        modSettings.CreateCustomLabel("(F/A-26 and F45s)");
        modSettings.CreateBoolSetting("(Default = true)", useFighters_changed, settings.useFighters);

        useBomber_changed += useBomber_Setting;
        modSettings.CreateCustomLabel("Allow bombers to spawn as supersonic transport:");
        modSettings.CreateBoolSetting("(Default = true)", useBomber_changed, settings.useBomber);

        useBomber_changed += useBomber_Setting;
        modSettings.CreateCustomLabel("Allow enemy aircraft to spawn as transport:");
        modSettings.CreateBoolSetting("(Default = true)", useEnemy_changed, settings.useEnemy);

        mpTestMode_changed += mpTestMode_Setting;
        modSettings.CreateCustomLabel("MP Test Mode:");
        modSettings.CreateBoolSetting("(Default = false)", mpTestMode_changed, settings.mpTestMode);
        modSettings.CreateCustomLabel("This spreads the aircraft across the entire map instead of just near the player.");
        modSettings.CreateCustomLabel("DO NOT USE, IT IS NOT NECESSARY FOR MP");

        modSettings.CreateCustomLabel("");
        modSettings.CreateCustomLabel("Please feel free to @ me on the discord if");
        modSettings.CreateCustomLabel("you think of any more features I could add!");

        VTOLAPI.CreateSettingsMenu(modSettings);

        instance = this;

        UpdateTransportAircraft();
    }
Esempio n. 4
0
 /// <summary>
 /// Initializes a new instance of the Analytics class.
 /// </summary>
 /// <param name="client">Client.</param>
 internal Analytics(Amadeus client)
 {
     this.airTraffic = new AirTraffic(client);
 }
Esempio n. 5
0
 /// <summary>
 /// Constructor.
 /// @hide
 /// </summary>
 public Analytics(Amadeus client)
 {
     this.AirTraffic = new AirTraffic(client);
 }