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