private void fireAllTorpedo(TurretControls turretControls) //All 4 torpedos, probably not that useful? { for (int i = 0; i < 4; ++i) { turretControls.TriggerTube(i, -1); } }
// Called when the node enters the scene tree for the first time. public override void _Ready() { parentShip = GetNode <ColonyShip>("../"); TurretControls = new TurretControls(this); cooldowns = new float[tubeCount]; TurretControls.OnTubeTriggered += HandleTubeTriggered; }
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 override void DefenceUpdate(ShipStatusInfo shipStatusInfo, TurretControls turretControls, float deltaTime) { cannotShootCheck(turretControls); if (ls_asteroids.Count != 0) //check if the list is empty { locationAsteroid(turretControls, shipStatusInfo); fireTorpedo(turretControls); } }
private void fireTorpedo(TurretControls turretControls) //Fire one single torpedo { for (int i = 0; i < 4; ++i) { if (turretControls.GetTubeCooldown(i) == 0) //Finds the first tube which isn't on cooldown { turretControls.TriggerTube(i, -1); return; } } }
void Start() { SimplePool.Preload(missilePrefab, 4); TurretControlInputs = new TurretControls(this); TurretControlInputs.OnTube0Fired += HandleTube0Fired; TurretControlInputs.OnTube1Fired += HandleTube1Fired; TurretControlInputs.OnTube2Fired += HandleTube2Fired; TurretControlInputs.OnTube3Fired += HandleTube3Fired; }
private void locationAsteroid(TurretControls turretControls, ShipStatusInfo shipStatusInfo) { // double amplitude = (double)ls_asteroids[0].Amplitude; // double angle = (double)ls_asteroids[0].Angle; // double x = Math.Cos(angle)*amplitude; // double y = Math.Sin(angle)*amplitude; int index = shortestDistance(shipStatusInfo); double x = (double)ls_asteroids[index].x; double y = (double)ls_asteroids[index].y; turretControls.aimTo = new Vector2((float)x, (float)y); ls_asteroids.RemoveAt(index); }
public void cannotShootCheck(TurretControls turretControls) { //if for (int i = 0; i < 4; i++) { if (turretControls.GetTubeCooldown(i) == 0) { PropulsionController.areTorpedosAvailable = true; return; } } PropulsionController.areTorpedosAvailable = false; }
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(); }
public override void DefenceUpdate(ShipStatusInfo shipStatusInfo, TurretControls turretControls, float deltaTime) { //Student code goes here }
public void DefenceUpdate(SubsystemReferences subsystemReferences, TurretControls turretControls) { }
/* * bool sensorsControllerEnabled = true; * public event Action<bool> OnSensorsControllerEnabledChanged; * public bool IsSensorsControllerEnabled {get{return sensorsControllerEnabled;} set{sensorsControllerEnabled = value; OnSensorsControllerEnabledChanged?.Invoke(sensorsControllerEnabled);}} * * * bool navigationControllerEnabled = true; * public event Action<bool> OnNavigationControllerEnabledChanged; * public bool IsNavigationControllerEnabled {get{return navigationControllerEnabled;} set{navigationControllerEnabled = value; OnNavigationControllerEnabledChanged?.Invoke(navigationControllerEnabled);}} * * bool propulsionControllerEnabled = true; * public event Action<bool> OnPropulsionControllerEnabledChanged; * public bool IsPropulsionControllerEnabled {get{return propulsionControllerEnabled;} set{propulsionControllerEnabled = value; OnPropulsionControllerEnabledChanged?.Invoke(propulsionControllerEnabled);}} * * bool defenceControllerEnabled = true; * public event Action<bool> OnDefenceControllerEnabledChanged; * public bool IsDefenceControllerEnabled {get{return defenceControllerEnabled;} set{defenceControllerEnabled = value; OnDefenceControllerEnabledChanged?.Invoke(defenceControllerEnabled);}} */ /* * //Subsystems * public AbstractSensorsController Sensors { get; private set; } * public AbstractNavigationController Navigation { get; private set; } * public AbstractDefenceController Defence { get; private set; } * public AbstractPropulsionController Propulsion { get; private set; } * * public SubsystemReferences(AbstractSensorsController sensors, AbstractNavigationController navigation, AbstractDefenceController defence, AbstractPropulsionController propulsion) * { * * Sensors = sensors; * Defence = defence; * Navigation = navigation; * Propulsion = propulsion; * } */ public abstract void ProcessPhysics(ShipStatusInfo shipStatusInfo, float deltaTime, ActiveSensors ActiveSensors, PassiveSensors passiveSensors, GalaxyMapData galaxyMapData, ThrusterControls thrusterControls, TurretControls turretControls);
public abstract void DefenceUpdate(ShipStatusInfo shipStatusInfo, TurretControls turretControls, float deltaTime);
// Use this for initialization private void Start() { _turret = GetComponent <TurretControls>(); }