Back to Index Page generated: May 8, 2024, 6:16:03 AM

Expansion Bullet Drive

Content

Manifest

from Expansion Manager's OXP list from Expansion Manifest
Description Bullet Drive makes game-play harder, not easier, but only very slightly. When at torus drive speeds manoeuvring is disabled and you travel in a straight line - like a bullet. Manoeuvring is not affected at fuel injection speed. Bullet Drive makes game-play harder, not easier, but only very slightly. When at torus drive speeds manoeuvring is disabled and you travel in a straight line - like a bullet. Manoeuvring is not affected at fuel injection speed.
Identifier oolite.oxp.Wildeblood.BulletDrive oolite.oxp.Wildeblood.BulletDrive
Title Bullet Drive Bullet Drive
Category Mechanics Mechanics
Author Wildeblood Wildeblood
Version 1.0.4 1.0.4
Tags
Required Oolite Version
Maximum Oolite Version
Required Expansions
Optional Expansions
Conflict Expansions
Information URL http://aegidian.org/bb/viewtopic.php?f=4&t=13184 n/a
Download URL https://wiki.alioth.net/img_auth.php/f/f5/Bullet_Drive_1.0.3.oxz http://wiki.alioth.net/img_auth.php/f/f5/Bullet_Drive_1.0.3.oxz
License CC-BY-NC-SA 3.0 CC-BY-NC-SA 3.0
File Size n/a
Upload date 1708303218

Documentation

Also read http://wiki.alioth.net/index.php/Bullet%20Drive

Bullet Drive READ ME.txt

----------------------------
Bullet Drive OXP  ver. 1.0.3
----------------------------
  Date: May 16th, 2013
Author: Wildeblood


---------------------
Installation and use:
---------------------

Bullet Drive is one of the small number of OXPs that make Oolite game-play harder, not easier. But only very, very slightly. The difference it introduces is that when at "torus drive" speeds manoeuvring is disabled and you travel in a straight line - like a bullet. Manoeuvring is not affected at "fuel injection" speed.

Simply place the Bullet Drive OXP into your "AddOns" folder. No configuration or messing about required.

Equipment

This expansion declares no equipment.

Ships

This expansion declares no ships.

Models

This expansion declares no models.

Scripts

Path
Config/script.js
"use strict";

this.name    = "Bullet Drive";
this.version = "1.0.4"; // February 19th, 2024

/* ====================================================================================
			MAINTAIN LOCKED HEADING AT HIGH SPEED
======================================================================================= */

    this.$maintainHeading = function () {
        "use strict";
        var self = player.ship;
        if (self.status !== "STATUS_IN_FLIGHT" &&
            self.status !== "STATUS_WITCHSPACE_COUNTDOWN") {
            removeFrameCallback(this.$monitor);
            delete this.$monitor;
            return;
        }
        if (self.speed <= 7 * self.maxSpeed) {
            if (this.$heading) {
                delete this.$heading;
            }
            if (player.alertCondition != 1) {
                removeFrameCallback(this.$monitor);
                delete this.$monitor;
            }
            return;
        }
        if (self.speed > 7 * self.maxSpeed) { // Exceeding injector speed, must be torus button speed.
            if (this.$heading) {
                var angle = self.heading.angleTo(this.$heading);
                var cross = self.heading.cross(this.$heading).direction();
                self.orientation = self.orientation.rotate(cross, - angle);
            } else {
                this.$heading = self.heading;
            }
        }
    }

/* ====================================================================================
			STARTING $maintainHeading
======================================================================================= */

    this.alertConditionChanged = function (newCondition, oldCondition) {
        "use strict";
        if (newCondition == 1 && !this.$monitor) {
            this.$monitor = addFrameCallback(this.$maintainHeading.bind(this));
        }
    }

    this.shipExitedWitchspace = function () {
        "use strict";
        if (player.alertCondition == 1 && !this.$monitor) {
            this.$monitor = addFrameCallback(this.$maintainHeading.bind(this));
        }
    }

/* ====================================================================================
			CHANGE LOG

1.0.4 (February 19th, 2024) Formatted to look less like PHP. No actual changes.
1.0.3 (May 16th, 2013) Added this.shipExitedWitchspace check.
1.0.2 (December 19th, 2012) Changed < to <= in speed check.
1.0.1 (December 18th, 2012) Comment removed.
1.0   (December 18th, 2012) Created.
======================================================================================= */