| Back to Index | Page generated: Nov 24, 2025, 1:21:31 AM |
| from Expansion Manager's OXP list | from Expansion Manifest | |
|---|---|---|
| Description | Limits fuel capacity (and therefore hyperspace range) according to equipped core-game items. | Limits fuel capacity (and therefore hyperspace range) according to equipped core-game items. |
| Identifier | oolite.oxp.redspear.hyperdrives | oolite.oxp.redspear.hyperdrives |
| Title | Hyperdrives | Hyperdrives |
| Category | Mechanics | Mechanics |
| Author | Redspear | Redspear |
| Version | 0.7 | 0.7 |
| Tags | ||
| Required Oolite Version | ||
| Maximum Oolite Version | ||
| Required Expansions | ||
| Optional Expansions | ||
| Conflict Expansions | ||
| Information URL | n/a | |
| Download URL | https://wiki.alioth.net/img_auth.php/2/20/Oolite.oxp.redspear.hyperdrives.oxz | n/a |
| License | CC-BY-NC-SA 4.0 | CC-BY-NC-SA 4.0 |
| File Size | n/a | |
| Upload date | 1668980840 |
Also read http://wiki.alioth.net/index.php/Hyperdrives
{\rtf1\ansi\deff3\adeflang1025
{\fonttbl{\f0\froman\fprq2\fcharset0 Times New Roman;}{\f1\froman\fprq2\fcharset2 Symbol;}{\f2\fswiss\fprq2\fcharset0 Arial;}{\f3\froman\fprq0\fcharset0 Times New Roman;}{\f4\fswiss\fprq0\fcharset128 Arial;}{\f5\fnil\fprq2\fcharset0 Microsoft YaHei;}}
{\colortbl;\red0\green0\blue0;\red128\green128\blue128;}
{\stylesheet{\s0\snext0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\nowidctlpar\cf0\hich\af3\langfe2057\dbch\af3\afs24\lang1081\loch\f3\fs24\lang2057 Default;}
{\s15\sbasedon0\snext16{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sb240\sa120\keepn\cf0\hich\af2\langfe2052\dbch\af5\loch\f2\fs28\lang2057 Heading;}
{\s16\sbasedon0\snext16{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sb0\sa120\cf0\hich\af3\langfe2052\dbch\af3\loch\f3\fs24\lang2057 Text body;}
{\s17\sbasedon16\snext17{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sb0\sa120\cf0\hich\af4\langfe2052\dbch\af3\loch\f3\fs24\lang2057 List;}
{\s18\sbasedon0\snext18{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sb120\sa120\cf0\i\hich\af4\langfe2052\dbch\af3\ai\loch\f3\fs24\lang2057 Caption;}
{\s19\sbasedon0\snext19{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\hich\af4\langfe2052\dbch\af3\loch\f3\fs24\lang2057 Index;}
}{\info{\creatim\yr0\mo0\dy0\hr0\min0}{\revtim\yr0\mo0\dy0\hr0\min0}{\printim\yr0\mo0\dy0\hr0\min0}{\comment OpenOffice}{\vern4170}}\deftab720\deftab720\deftab720\deftab720\deftab720\deftab720\deftab720\deftab720\deftab720\deftab720\deftab720\deftab720\deftab720\deftab720\deftab720\deftab720\deftab720\deftab720\deftab720\deftab720
{\*\pgdsctbl
{\pgdsc0\pgdscuse195\pgwsxn12240\pghsxn15840\marglsxn1800\margrsxn1800\margtsxn1440\margbsxn1440\pgdscnxt0 Default;}}
\formshade{\*\pgdscno0}\paperh15840\paperw12240\margl1800\margr1800\margt1440\margb1440\sectd\sbknone\sectunlocked1\pgndec\pgwsxn12240\pghsxn15840\marglsxn1800\margrsxn1800\margtsxn1440\margbsxn1440\ftnbj\ftnstart1\ftnrstcont\ftnnar\aenddoc\aftnrstcont\aftnstart1\aftnnrlc
\pgndec\pard\plain \s0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\nowidctlpar\cf0\hich\af3\langfe2057\dbch\af3\afs24\lang1081\loch\f3\fs24\lang2057\sb100\sa100{\b\ab\rtlch \ltrch\loch
Hyperdrives}
\par \pard\plain \s0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\nowidctlpar\cf0\hich\af3\langfe2057\dbch\af3\afs24\lang1081\loch\f3\fs24\lang2057\sb100\sa100{\rtlch \ltrch\loch
Author: Redspear}
\par \pard\plain \s0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\nowidctlpar\cf0\hich\af3\langfe2057\dbch\af3\afs24\lang1081\loch\f3\fs24\lang2057\sb100\sa100{\rtlch \ltrch\loch
Credits: based on an original script by cim}
\par \pard\plain \s0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\nowidctlpar\cf0\hich\af3\langfe2057\dbch\af3\afs24\lang1081\loch\f3\fs24\lang2057\sb100\sa100{\rtlch \ltrch\loch
Licence: Creative Commons Attribution-Noncommercial-Share Alike 4.0}
\par \pard\plain \s0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\nowidctlpar\cf0\hich\af3\langfe2057\dbch\af3\afs24\lang1081\loch\f3\fs24\lang2057\sb100\sa100{\rtlch \ltrch\loch
Version 0.5}
\par \pard\plain \s0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\nowidctlpar\cf0\hich\af3\langfe2057\dbch\af3\afs24\lang1081\loch\f3\fs24\lang2057\sb100\sa100{\rtlch \ltrch\loch
}
\par \pard\plain \s0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\nowidctlpar\cf0\hich\af3\langfe2057\dbch\af3\afs24\lang1081\loch\f3\fs24\lang2057\sb100\sa100{\b\ab\rtlch \ltrch\loch
Description:}
\par \pard\plain \s0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\nowidctlpar\cf0\hich\af3\langfe2057\dbch\af3\afs24\lang1081\loch\f3\fs24\lang2057\sb100\sa100{\rtlch \ltrch\loch
}
\par \pard\plain \s0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\nowidctlpar\cf0\hich\af3\langfe2057\dbch\af3\afs24\lang1081\loch\f3\fs24\lang2057\sb100\sa100{\rtlch \ltrch\loch
v0.7 changes}
\par \pard\plain \s0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\nowidctlpar\cf0\hich\af3\langfe2057\dbch\af3\afs24\lang1081\loch\f3\fs24\lang2057\sb100\sa100{\rtlch \ltrch\loch
\tab Illicit Unlock compatible and 'Easy-Tweak' design}
\par \pard\plain \s0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\nowidctlpar\cf0\hich\af3\langfe2057\dbch\af3\afs24\lang1081\loch\f3\fs24\lang2057\sb100\sa100{\rtlch \ltrch\loch
v0.6 changes}
\par \pard\plain \s0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\nowidctlpar\cf0\hich\af3\langfe2057\dbch\af3\afs24\lang1081\loch\f3\fs24\lang2057\sb100\sa100{\rtlch \ltrch\loch
\tab Changed minimum jump range to a less draconian 5.6LY: enough to reach almost everywhere in galaxy 1.}
\par \pard\plain \s0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\nowidctlpar\cf0\hich\af3\langfe2057\dbch\af3\afs24\lang1081\loch\f3\fs24\lang2057\sb100\sa100{\rtlch \ltrch\loch
\tab Made equipment bonuses slightly more generous.}
\par \pard\plain \s0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\nowidctlpar\cf0\hich\af3\langfe2057\dbch\af3\afs24\lang1081\loch\f3\fs24\lang2057\sb100\sa100{\rtlch \ltrch\loch
}
\par \pard\plain \s0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\nowidctlpar\cf0\hich\af3\langfe2057\dbch\af3\afs24\lang1081\loch\f3\fs24\lang2057\sb100\sa100{\rtlch \ltrch\loch
v0.5 changes}
\par \pard\plain \s0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\nowidctlpar\cf0\hich\af3\langfe2057\dbch\af3\afs24\lang1081\loch\f3\fs24\lang2057\sb100\sa100{\rtlch \ltrch\loch
\tab Separated jump limit from fuel limit; thereby tidying HUD display, fuel scooping, injector use and fuel purchase.}
\par \pard\plain \s0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\nowidctlpar\cf0\hich\af3\langfe2057\dbch\af3\afs24\lang1081\loch\f3\fs24\lang2057\sb100\sa100{\rtlch \ltrch\loch
}
\par \pard\plain \s0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\nowidctlpar\cf0\hich\af3\langfe2057\dbch\af3\afs24\lang1081\loch\f3\fs24\lang2057\sb100\sa100{\rtlch \ltrch\loch
v0.4 changes}
\par \pard\plain \s0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\nowidctlpar\cf0\hich\af3\langfe2057\dbch\af3\afs24\lang1081\loch\f3\fs24\lang2057\sb100\sa100{\rtlch \ltrch\loch
\tab Standardised range for all ships. Base range of 5LY, max of 7LY}
\par \pard\plain \s0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\nowidctlpar\cf0\hich\af3\langfe2057\dbch\af3\afs24\lang1081\loch\f3\fs24\lang2057\sb100\sa100{\rtlch \ltrch\loch
}
\par \pard\plain \s0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\nowidctlpar\cf0\hich\af3\langfe2057\dbch\af3\afs24\lang1081\loch\f3\fs24\lang2057\sb100\sa100{\rtlch \ltrch\loch
v0.3 changes}
\par \pard\plain \s0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\nowidctlpar\cf0\hich\af3\langfe2057\dbch\af3\afs24\lang1081\loch\f3\fs24\lang2057\sb100\sa100{\rtlch \ltrch\loch
\tab Base range now based on 'tech' of ship - estimated via recharge rate of oxp ships and 'inservice date' of elite ships}
\par \pard\plain \s0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\nowidctlpar\cf0\hich\af3\langfe2057\dbch\af3\afs24\lang1081\loch\f3\fs24\lang2057\sb100\sa100{\rtlch \ltrch\loch
\tab Varied hyperspace countdown time according to ship size - estimated via cargo capacity in the case of oxp ships}
\par \pard\plain \s0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\nowidctlpar\cf0\hich\af3\langfe2057\dbch\af3\afs24\lang1081\loch\f3\fs24\lang2057\sb100\sa100{\rtlch \ltrch\loch
}
\par \pard\plain \s0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\nowidctlpar\cf0\hich\af3\langfe2057\dbch\af3\afs24\lang1081\loch\f3\fs24\lang2057\sb100\sa100{\rtlch \ltrch\loch
v0.2 changes}
\par \pard\plain \s0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\nowidctlpar\cf0\hich\af3\langfe2057\dbch\af3\afs24\lang1081\loch\f3\fs24\lang2057\sb100\sa100{\rtlch \ltrch\loch
\tab Fixed bug with fuel availability}
\par \pard\plain \s0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\nowidctlpar\cf0\hich\af3\langfe2057\dbch\af3\afs24\lang1081\loch\f3\fs24\lang2057\sb100\sa100{\rtlch \ltrch\loch
\tab Made all equipment bonuses equal +1 light year range but with a maximum total bonus of +2 from equipment.\line }
\par \pard\plain \s0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\nowidctlpar\cf0\hich\af3\langfe2057\dbch\af3\afs24\lang1081\loch\f3\fs24\lang2057\sb100\sa100{\rtlch \ltrch\loch
v0.1}
\par \pard\plain \s0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\nowidctlpar\cf0\hich\af3\langfe2057\dbch\af3\afs24\lang1081\loch\f3\fs24\lang2057\sb100\sa100{\rtlch \ltrch\loch
This oxp limits the fuel capacity (and therefore the hyperdrive range) of the player ship according to an assigned base value plus modifiers according to equipment purchased.}
\par \pard\plain \s0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\nowidctlpar\cf0\hich\af3\langfe2057\dbch\af3\afs24\lang1081\loch\f3\fs24\lang2057\sb100\sa100{\rtlch \ltrch\loch
Base value of 5.5LY:}
\par \pard\plain \s0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\nowidctlpar\cf0\hich\af3\langfe2057\dbch\af3\afs24\lang1081\loch\f3\fs24\lang2057\sb100\sa100{\rtlch \ltrch\loch
\tab Boa Cruiser}
\par \pard\plain \s0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\nowidctlpar\cf0\hich\af3\langfe2057\dbch\af3\afs24\lang1081\loch\f3\fs24\lang2057\sb100\sa100{\rtlch \ltrch\loch
Base value of 5LY:}
\par \pard\plain \s0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\nowidctlpar\cf0\hich\af3\langfe2057\dbch\af3\afs24\lang1081\loch\f3\fs24\lang2057\sb100\sa100{\rtlch \ltrch\loch
\tab Cobra Mk III; Anaconda; Boa}
\par \pard\plain \s0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\nowidctlpar\cf0\hich\af3\langfe2057\dbch\af3\afs24\lang1081\loch\f3\fs24\lang2057\sb100\sa100{\rtlch \ltrch\loch
Base value of 4.5LY:}
\par \pard\plain \s0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\nowidctlpar\cf0\hich\af3\langfe2057\dbch\af3\afs24\lang1081\loch\f3\fs24\lang2057\sb100\sa100{\rtlch \ltrch\loch
\tab Adder; Moray; Fer-de-Lance; Python}
\par \pard\plain \s0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\nowidctlpar\cf0\hich\af3\langfe2057\dbch\af3\afs24\lang1081\loch\f3\fs24\lang2057\sb100\sa100{\rtlch \ltrch\loch
Base value of 4LY:}
\par \pard\plain \s0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\nowidctlpar\cf0\hich\af3\langfe2057\dbch\af3\afs24\lang1081\loch\f3\fs24\lang2057\sb100\sa100{\rtlch \ltrch\loch
\tab Cobra Mk I; Viper Interceptor; Constrictor}
\par \pard\plain \s0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\nowidctlpar\cf0\hich\af3\langfe2057\dbch\af3\afs24\lang1081\loch\f3\fs24\lang2057\sb100\sa100{\rtlch \ltrch\loch
Base Value of 3.5LY:}
\par \pard\plain \s0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\nowidctlpar\cf0\hich\af3\langfe2057\dbch\af3\afs24\lang1081\loch\f3\fs24\lang2057\sb100\sa100{\rtlch \ltrch\loch
\tab Asp Mk II}
\par \pard\plain \s0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\nowidctlpar\cf0\hich\af3\langfe2057\dbch\af3\afs24\lang1081\loch\f3\fs24\lang2057\sb100\sa100{\rtlch \ltrch\loch
For oxp ships the formula used is:}
\par \pard\plain \s0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\nowidctlpar\cf0\hich\af3\langfe2057\dbch\af3\afs24\lang1081\loch\f3\fs24\lang2057\sb100\sa100{\rtlch \ltrch\loch
\tab recharge rate + (cargo capacity /50)}
\par \pard\plain \s0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\nowidctlpar\cf0\hich\af3\langfe2057\dbch\af3\afs24\lang1081\loch\f3\fs24\lang2057\sb100\sa100{\rtlch \ltrch\loch
}
\par \pard\plain \s0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\nowidctlpar\cf0\hich\af3\langfe2057\dbch\af3\afs24\lang1081\loch\f3\fs24\lang2057\sb100\sa100{\rtlch \ltrch\loch
Equipment bonus of +0.5LY:}
\par \pard\plain \s0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\nowidctlpar\cf0\hich\af3\langfe2057\dbch\af3\afs24\lang1081\loch\f3\fs24\lang2057\sb100\sa100{\rtlch \ltrch\loch
\tab Energy Unit; Galactic Hyperdrive}
\par \pard\plain \s0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\nowidctlpar\cf0\hich\af3\langfe2057\dbch\af3\afs24\lang1081\loch\f3\fs24\lang2057\sb100\sa100{\rtlch \ltrch\loch
Equipment bonus of +1LY:}
\par \pard\plain \s0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\nowidctlpar\cf0\hich\af3\langfe2057\dbch\af3\afs24\lang1081\loch\f3\fs24\lang2057\sb100\sa100{\rtlch \ltrch\loch
\tab Wormhole Scanner}
\par \pard\plain \s0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\nowidctlpar\cf0\hich\af3\langfe2057\dbch\af3\afs24\lang1081\loch\f3\fs24\lang2057\sb100\sa100{\rtlch \ltrch\loch
}
\par \pard\plain \s0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\nowidctlpar\cf0\hich\af3\langfe2057\dbch\af3\afs24\lang1081\loch\f3\fs24\lang2057\sb100\sa100{\rtlch \ltrch\loch
}
\par }
| Path | |
|---|---|
| Scripts/hyperdrives.js | this.name = "Hyperdrives";
this.author = "Redspear";
this.copyright = "2016 Redspear";
this.licence = "CC BY-NC-SA 4.0";
this.description = "Variable hyperdrives and jump ranges for player ships";
this.version = "0.7";
"use strict";
// determine player ship hyperdrive range
this.startUp = this.playerBoughtNewShip = this.equipmentAdded = this.equipmentRemoved = this.equipmentDamaged = this.equipmentRepaired = function()
{
// EASY-TWEAK section - note the advice (or not, none of my business really...)
// below 7, ONLY ADJUST IN INCREMENTS OF 0.4 from 0 or you might get undesired results (so that's: 0; 0.4; 0.8 etc.)
var maxRange = 7; // 7 is the max value and also represents the typical elite/oolite experience
var longRange = 6.4; // almost always the greatest distance for a jump is 6.8 LY, so this should probably be a lower value than that
var shortRange = 6; // (effectively 6.0) the minimum to make every system accessible from somewhere in galaxy 1
var minRange = 5.6; // (effectively 5.6) will make it possible to get to lots of places but it might require taking the long way round
// ILLICIT UNLOCK tweakery (comments assume that the above values are unchanged, again use increments of 0.4)
var noPen = 0; // minimum capability to make it to Zaonce and beyond from start
var minPen = -0.4;
var tokenPen = -0.8;
var lightPen = -1.2; // minimum capability to make it to Reorte and beyond from start
var lowPen = -1.6; // minimum capability to make it to Zaonce and beyond (with upgrades)
var medPen = -2; // minimum capability to reach and exploit the Leesti-Diso milk run at start
var highPen = -2.4;
var heavyPen = -2.8; // minimum capability to make it to Reorte and beyond (with upgrades)
var harshPen = -3.2; // minimum capability to reach and exploit the Leesti-Diso milk run (with upgades)
var maxPen = -5.6; // effectively no hyperdrive (in most situations)
var rangePen = noPen; // this value must be set somewhere, independant of illicit unlock
if (player.ship.name == "Constrictor")
{rangePen = noPen;
}
if (player.ship.name == "Gecko")
{rangePen = highPen;
}
if (player.ship.name == "Krait")
{rangePen = lowPen;
}
if (player.ship.name == "Mamba")
{rangePen = lightPen;
}
if (player.ship.name == "Mamba Escort")
{rangePen = lowPen;
}
if (player.ship.name == "Sidewinder")
{rangePen = medPen;
}
if (player.ship.name == "Sidewinder Escort")
{rangePen = highPen;
}
if (player.ship.name == "Viper")
{rangePen = heavyPen;
}
if (player.ship.name == "Viper Interceptor")
{rangePen = noPen;
}
if (player.ship.name == "Viper Pursuit")
{rangePen = tokenPen;
}
if (player.ship.name == "Orbital Shuttle")
{rangePen = maxPen;
}
if (player.ship.name == "Transporter")
{rangePen = minPen;
}
if (player.ship.name == "Transporter Miner")
{rangePen = tokenPen;
}
if (player.ship.name == "Worm")
{rangePen = harshPen;
}
if (player.ship.name == "Worm Miner")
{rangePen = maxPen;
}
// equipment modifiers (EEU, ANA, WHScanner & GalDrive dictate jump range capability)
if (player.ship.equipmentStatus("EQ_ENERGY_UNIT") === "EQUIPMENT_OK" && player.ship.equipmentStatus("EQ_GAL_DRIVE") === "EQUIPMENT_OK" && player.ship.equipmentStatus("EQ_WORMHOLE_SCANNER") === "EQUIPMENT_OK" && player.ship.equipmentStatus("EQ_ADVANCED_NAVIGATIONAL_ARRAY") === "EQUIPMENT_OK")
{var rangeBoost = maxRange;
}
if (player.ship.equipmentStatus("EQ_ENERGY_UNIT") === "EQUIPMENT_OK" && player.ship.equipmentStatus("EQ_GAL_DRIVE") === "EQUIPMENT_OK" && player.ship.equipmentStatus("EQ_WORMHOLE_SCANNER") === "EQUIPMENT_OK" && player.ship.equipmentStatus("EQ_ADVANCED_NAVIGATIONAL_ARRAY") != "EQUIPMENT_OK")
{var rangeBoost = maxRange;
}
if (player.ship.equipmentStatus("EQ_ENERGY_UNIT") != "EQUIPMENT_OK" && player.ship.equipmentStatus("EQ_GAL_DRIVE") === "EQUIPMENT_OK" && player.ship.equipmentStatus("EQ_WORMHOLE_SCANNER") === "EQUIPMENT_OK" && player.ship.equipmentStatus("EQ_ADVANCED_NAVIGATIONAL_ARRAY") === "EQUIPMENT_OK")
{var rangeBoost = maxRange;
}
if (player.ship.equipmentStatus("EQ_ENERGY_UNIT") != "EQUIPMENT_OK" && player.ship.equipmentStatus("EQ_GAL_DRIVE") === "EQUIPMENT_OK" && player.ship.equipmentStatus("EQ_WORMHOLE_SCANNER") === "EQUIPMENT_OK" && player.ship.equipmentStatus("EQ_ADVANCED_NAVIGATIONAL_ARRAY") != "EQUIPMENT_OK")
{var rangeBoost = longRange;
}
if (player.ship.equipmentStatus("EQ_ENERGY_UNIT") === "EQUIPMENT_OK" && player.ship.equipmentStatus("EQ_GAL_DRIVE") != "EQUIPMENT_OK" && player.ship.equipmentStatus("EQ_WORMHOLE_SCANNER") === "EQUIPMENT_OK" && player.ship.equipmentStatus("EQ_ADVANCED_NAVIGATIONAL_ARRAY") === "EQUIPMENT_OK")
{var rangeBoost = maxRange;
}
if (player.ship.equipmentStatus("EQ_ENERGY_UNIT") === "EQUIPMENT_OK" && player.ship.equipmentStatus("EQ_GAL_DRIVE") != "EQUIPMENT_OK" && player.ship.equipmentStatus("EQ_WORMHOLE_SCANNER") === "EQUIPMENT_OK" && player.ship.equipmentStatus("EQ_ADVANCED_NAVIGATIONAL_ARRAY") != "EQUIPMENT_OK")
{var rangeBoost = longRange;
}
if (player.ship.equipmentStatus("EQ_ENERGY_UNIT") === "EQUIPMENT_OK" && player.ship.equipmentStatus("EQ_GAL_DRIVE") === "EQUIPMENT_OK" && player.ship.equipmentStatus("EQ_WORMHOLE_SCANNER") != "EQUIPMENT_OK" && player.ship.equipmentStatus("EQ_ADVANCED_NAVIGATIONAL_ARRAY") === "EQUIPMENT_OK")
{var rangeBoost = maxRange;
}
if (player.ship.equipmentStatus("EQ_ENERGY_UNIT") === "EQUIPMENT_OK" && player.ship.equipmentStatus("EQ_GAL_DRIVE") === "EQUIPMENT_OK" && player.ship.equipmentStatus("EQ_WORMHOLE_SCANNER") != "EQUIPMENT_OK" && player.ship.equipmentStatus("EQ_ADVANCED_NAVIGATIONAL_ARRAY") != "EQUIPMENT_OK")
{var rangeBoost = longRange;
}
if (player.ship.equipmentStatus("EQ_ENERGY_UNIT") === "EQUIPMENT_OK" && player.ship.equipmentStatus("EQ_GAL_DRIVE") != "EQUIPMENT_OK" && player.ship.equipmentStatus("EQ_WORMHOLE_SCANNER") != "EQUIPMENT_OK" && player.ship.equipmentStatus("EQ_ADVANCED_NAVIGATIONAL_ARRAY") === "EQUIPMENT_OK")
{var rangeBoost = longRange;
}
if (player.ship.equipmentStatus("EQ_ENERGY_UNIT") === "EQUIPMENT_OK" && player.ship.equipmentStatus("EQ_GAL_DRIVE") != "EQUIPMENT_OK" && player.ship.equipmentStatus("EQ_WORMHOLE_SCANNER") != "EQUIPMENT_OK" && player.ship.equipmentStatus("EQ_ADVANCED_NAVIGATIONAL_ARRAY") != "EQUIPMENT_OK")
{var rangeBoost = shortRange;
}
if (player.ship.equipmentStatus("EQ_ENERGY_UNIT") != "EQUIPMENT_OK" && player.ship.equipmentStatus("EQ_GAL_DRIVE") === "EQUIPMENT_OK" && player.ship.equipmentStatus("EQ_WORMHOLE_SCANNER") != "EQUIPMENT_OK" && player.ship.equipmentStatus("EQ_ADVANCED_NAVIGATIONAL_ARRAY") === "EQUIPMENT_OK")
{var rangeBoost = longRange;
}
if (player.ship.equipmentStatus("EQ_ENERGY_UNIT") != "EQUIPMENT_OK" && player.ship.equipmentStatus("EQ_GAL_DRIVE") === "EQUIPMENT_OK" && player.ship.equipmentStatus("EQ_WORMHOLE_SCANNER") != "EQUIPMENT_OK" && player.ship.equipmentStatus("EQ_ADVANCED_NAVIGATIONAL_ARRAY") != "EQUIPMENT_OK")
{var rangeBoost = shortRange;
}
if (player.ship.equipmentStatus("EQ_ENERGY_UNIT") != "EQUIPMENT_OK" && player.ship.equipmentStatus("EQ_GAL_DRIVE") != "EQUIPMENT_OK" && player.ship.equipmentStatus("EQ_WORMHOLE_SCANNER") === "EQUIPMENT_OK" && player.ship.equipmentStatus("EQ_ADVANCED_NAVIGATIONAL_ARRAY") === "EQUIPMENT_OK")
{var rangeBoost = longRange;
}
if (player.ship.equipmentStatus("EQ_ENERGY_UNIT") != "EQUIPMENT_OK" && player.ship.equipmentStatus("EQ_GAL_DRIVE") != "EQUIPMENT_OK" && player.ship.equipmentStatus("EQ_WORMHOLE_SCANNER") === "EQUIPMENT_OK" && player.ship.equipmentStatus("EQ_ADVANCED_NAVIGATIONAL_ARRAY") != "EQUIPMENT_OK")
{var rangeBoost = shortRange;
}
if (player.ship.equipmentStatus("EQ_ENERGY_UNIT") != "EQUIPMENT_OK" && player.ship.equipmentStatus("EQ_GAL_DRIVE") != "EQUIPMENT_OK" && player.ship.equipmentStatus("EQ_WORMHOLE_SCANNER") != "EQUIPMENT_OK" && player.ship.equipmentStatus("EQ_ADVANCED_NAVIGATIONAL_ARRAY") === "EQUIPMENT_OK")
{var rangeBoost = shortRange;
}
if (player.ship.equipmentStatus("EQ_ENERGY_UNIT") != "EQUIPMENT_OK" && player.ship.equipmentStatus("EQ_GAL_DRIVE") != "EQUIPMENT_OK" && player.ship.equipmentStatus("EQ_WORMHOLE_SCANNER") != "EQUIPMENT_OK" && player.ship.equipmentStatus("EQ_ADVANCED_NAVIGATIONAL_ARRAY") != "EQUIPMENT_OK")
{var rangeBoost = minRange;
}
this._rangeLimit = rangeBoost + rangePen;
log(this.name, "rangeBoost " + rangeBoost);
log(this.name, "rangePen " + rangePen);
log(this.name, "rangeLimit " + _rangeLimit);
log(this.name, "fuel " + player.ship.fuel);
log(this.name, "ship " + player.ship.name);
}
this.startUpComplete = function ()
{
this._fuelMalus = 0; // needed for navigation charts
}
// represent range limits on navigation charts
this.guiScreenChanged = function(toGUI)
{
if (toGUI == "GUI_SCREEN_SHORT_RANGE_CHART")
{if (_fuelMalus == 0 && player.ship.fuel > _rangeLimit)
{log(this.name, "rangeLimit " + _rangeLimit);
this._fuelMalus = player.ship.fuel - _rangeLimit - 0.3; // range circle may not exceed jump limit
player.ship.fuel = _rangeLimit + 0.3; // temporary fuel 'loss'
log(this.name, "fuel " + player.ship.fuel);
log(this.name, "rangeLimit " + _rangeLimit);
}
else
{player.ship.fuel = player.ship.fuel;
this._fuelMalus = _fuelMalus;} // as you were...
}
if (toGUI != "GUI_SCREEN_SHORT_RANGE_CHART" && toGUI != "GUI_SCREEN_LONG_RANGE_CHART")
{player.ship.fuel = player.ship.fuel + _fuelMalus; // any 'lost' fuel restored
this._fuelMalus = 0;} // reset fuel 'debt'
}
// abort jump if range limit exceeded
this.playerStartedJumpCountdown = function(standard)
{
if (System.infoForSystem(galaxyNumber, system.ID).distanceToSystem(System.infoForSystem(galaxyNumber, player.ship.nextSystem)) > _rangeLimit + 0.1)
{player.ship.cancelHyperspaceCountdown();
player.consoleMessage ("Present Hyperdrive Capability Insufficient");} // let player know what went wrong (or at least give them a clue)
} |
| Scripts/hyperdrives_speed.js | this.name = "Hyperdrives_Speed";
this.author = "Redspear";
this.copyright = "2016 Redspear";
this.licence = "CC BY-NC-SA 4.0";
this.description = "Variable hyperdrives and jump ranges for player ships";
this.version = "0.5";
"use strict";
// determine duration of player ship hyperspace countdown
this.startUp = this.playerBoughtNewShip = function()
{
//'very large' ships defined as follows
if (player.ship.dataKey == "anaconda-player")
{player.ship.hyperspaceSpinTime = 30;}
else
//'large' ships defined as follows
if (player.ship.dataKey == "python-player" || player.ship.dataKey == "boa-player" || player.ship.dataKey == "boa-mk2-player")
{player.ship.hyperspaceSpinTime = 20;}
else
//'medium' ships defined as follows
if (player.ship.dataKey == "cobra3-player" || player.ship.dataKey == "constrictor-player")
{player.ship.hyperspaceSpinTime = 15;}
else
//'small' ships defined as follows
if (player.ship.dataKey == "ferdelance-player" || player.ship.dataKey == "asp-player" || player.ship.dataKey == "cobramk1-player" || player.ship.dataKey == "moray-player" || player.ship.dataKey == "morayMED-player")
{player.ship.hyperspaceSpinTime = 10;}
else
//'very small' ships defined as follows
if (player.ship.dataKey == "adder-player" || player.ship.dataKey == "viper-interceptor-player")
{player.ship.hyperspaceSpinTime = 5;}
else
//OXP ship size estimated as follows
if (player.ship.cargoSpaceCapacity>150)
{player.ship.hyperspaceSpinTime = 30;}
else
if (player.ship.cargoSpaceCapacity>49)
{player.ship.hyperspaceSpinTime = 20;}
else
if (player.ship.cargoSpaceCapacity>14)
{player.ship.hyperspaceSpinTime = 15;}
else
if (player.ship.cargoSpaceCapacity>0)
{player.ship.hyperspaceSpinTime = 10;}
else
{player.ship.hyperspaceSpinTime = 5;}
} |