Back to Index Page generated: Nov 12, 2024, 11:02:04 PM

Expansion Hyperdrives

Content

Warnings

  1. Information URL mismatch between OXP Manifest and Expansion Manager string length at character position 0
  2. Unknown key 'upload_date' at https://wiki.alioth.net/img_auth.php/2/20/Oolite.oxp.redspear.hyperdrives.oxz!manifest.plist

Manifest

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

Documentation

Also read http://wiki.alioth.net/index.php/Hyperdrives

ReadMe.rtf

{\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 }

Equipment

This expansion declares no equipment. This may be related to warnings.

Ships

This expansion declares no ships. This may be related to warnings.

Models

This expansion declares no models. This may be related to warnings.

Scripts

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