コード例 #1
0
 private void fireAllTorpedo(TurretControls turretControls)  //All 4 torpedos, probably not that useful?
 {
     for (int i = 0; i < 4; ++i)
     {
         turretControls.TriggerTube(i, -1);
     }
 }
コード例 #2
0
ファイル: Turret.cs プロジェクト: Aryaman73/SpaceshipActivity
    // 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;
    }
コード例 #3
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();
 }
コード例 #4
0
    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);
        }
    }
コード例 #5
0
 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;
         }
     }
 }
コード例 #6
0
    void Start()
    {
        SimplePool.Preload(missilePrefab, 4);

        TurretControlInputs = new TurretControls(this);

        TurretControlInputs.OnTube0Fired += HandleTube0Fired;
        TurretControlInputs.OnTube1Fired += HandleTube1Fired;
        TurretControlInputs.OnTube2Fired += HandleTube2Fired;
        TurretControlInputs.OnTube3Fired += HandleTube3Fired;
    }
コード例 #7
0
    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);
    }
コード例 #8
0
 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;
 }
コード例 #9
0
    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();
    }
コード例 #10
0
 public override void DefenceUpdate(ShipStatusInfo shipStatusInfo, TurretControls turretControls, float deltaTime)
 {
     //Student code goes here
 }
コード例 #11
0
 public void DefenceUpdate(SubsystemReferences subsystemReferences, TurretControls turretControls)
 {
 }
コード例 #12
0
    /*
     * 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);
コード例 #13
0
 public abstract void DefenceUpdate(ShipStatusInfo shipStatusInfo, TurretControls turretControls, float deltaTime);
コード例 #14
0
 // Use this for initialization
 private void Start()
 {
     _turret = GetComponent <TurretControls>();
 }