Esempio n. 1
0
 public void DefenceUpdate(SubsystemReferences subsystemReferences, TurretControls turretControls)
 {
     //turretControls.aimTo = new Vector3 (0,1,1);
     turretControls.aimTo = Asteroid(subsystemReferences);
     Debug.Log(subsystemReferences.Sensors.EMSData.Count);
     turretControls.FireTube0();
     //turretControls.FireTube2();
     //turretControls.FireTube3();
 }
    public void DefenceUpdate(SubsystemReferences subsystemReferences, TurretControls turretControls)
    {
        Vector2 ship = subsystemReferences.currentShipPositionWithinGalaxyMapNode;

        List <DetectedCloseObject> objs = subsystemReferences.Sensors.detectedCloseObjects;

        objs.Sort((a, b) => (int)((a.position - ship).sqrMagnitude - (b.position - ship).sqrMagnitude) * 1000);
        objs = objs.Where(a => shouldShot(a)).ToList();

        if (objs.Count < 1)
        {
            return;
        }
        turretControls.aimTo = getAimTo(objs[0], ship);
        turretControls.FireTube0();

        if (objs.Count < 2)
        {
            return;
        }
        turretControls.aimTo = getAimTo(objs[1], ship);
        turretControls.FireTube1();

        if (objs.Count < 3)
        {
            return;
        }
        turretControls.aimTo = getAimTo(objs[2], ship);
        turretControls.FireTube2();

        if (objs.Count < 4)
        {
            return;
        }
        turretControls.aimTo = getAimTo(objs[3], ship);
        turretControls.FireTube3();
    }