| Back to Index | Page generated: Oct 27, 2025, 5:37:22 AM | 
 Expansion Hyperdrives
 Expansion Hyperdrives| 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;}		
} |