Following on from some of my thoughts in this thread http://aegidian.org/bb/viewtopic.php?f=6&t=9489
, I've made my first OXP, now at version 1.7.3
Illegal Goods Tweak version 1.7.3 (30/05/12)
By Capt Murphy 2012
Licence: CC BY-NC-SA 3.0
Requires Oolite version 1.76
This OXP introduces interaction with Galcop customs for players who dock at main stations (and some OXP stations if New Cargoes OXP is installed) with Narcotics, Firearms or Slaves in the hold. Players can ignore warnings, in which case a legal penalty is applied, but they can go on to sell the contraband on the open market. Alternatively they can voluntarily hand over contraband in which case a nominal reward is given; or attempt to bribe the customs officer to turn a blind eye (this could be risky - attempted bribery of a Galcop official can bring it's own legal penalties).
Slaves that are handed over to Galcop customs are rehabilitated by Amnesty Intergalactic before being released. There is a small chance that after handing over slaves the player may be contacted by an ex-slave who may offer an additional reward for their rescue. This will generally involve a trip to the ex-slave's home system to receive a financial reward, although there are a few surprises in the code. If you don't like surprises or are simply curious please see spoilers.txt included in this download for more info.
This OXP does not interfere with the treatment of scooped escape pods, although they do appear in the manifest as slaves. Oolite automatically removes slaves from scooped escape pods from the manifest, and pays appropriate bounty/insurance payments before this OXP runs.
This release introduces compatibility with New Cargoes OXP (1.1.0 or above) and it's permit system. Contraband which is a New Cargoes Special Cargo is ignored by Illegal Goods Tweak if a valid New Cargoes permit is held. Otherwise it is treated in the same way as standard contraband. Also Illegal Goods Tweak will run on docking at certain OXP stations defined by New Cargoes OXP if installed (this option can be turned off).
Compatibility with HyperCargo OXP (1.07 or above) and Vortex OXP (1.23 or above) has also been updated to take into account New Cargoes and it's permit system.
This release introduces optional OXPconfig compatibility(version 2.0.9 or above) as a method to set some options.
Options that can be set via OXPConfig are (line numbers given for those who just wish to edit the script "illegal_goods_tweak.js"):
alwaysDetect (default true) (line 9); If set to false a variable contraband detection rate is used, dependent on tech level and government type of the system. Low Tech Anarchies will have the lowest detection rate, High Tech Corporate States the highest. High Tech Anarchies and Low Tech Corporate States will fall somewhere in between. If not detected players carrying contraband still have an opportunity to voluntarily handover contraband for a small reward.
loggingEnabled (default false) (line 10) : if set to true enables some debug log messages.
ncOXPStations (default true) (line 11) : ignored unless New Cargoes OXP installed. If true customs are also active at certain OXP stations (defined via New Cargoes).
Vanilla Oolite follows Elite in that by default penalties are only applied when launching from a main station with contraband in the hold. There is no penalty for docking with a main station with illegal commodities in the hold.
In the original game this had the effect of making trade in such commodities illegal as the only place they could be bought was main stations. Oolite on the other hand can have many OXP added dockable objects that are not main stations some of which sell illegal items cheaply, in bulk, and with no penalty attached to launching with them from that dockable object (e.g. Random Hit's Seedy Space Bars).
This allows for some very lucrative trading opportunities in illegal commodities from OXP dockables to main stations with no impact on the players legal status. This OXP goes someway to redressing the balance and increasing the risks of this strategy.
Initially (with version 1 of this OXP) Galcop simply introduced penalties for docking with illegal substances. Following intense lobbying from Amnesty Intergalactic and various Bounty Hunter interest groups Galcop agreed to give pilots the opportunity to hand over the goods to avoid penalties and for a small reward.
Version 1.0 - 24/3/11 : Requires Oolite 1.75.1 - Simply applies penalties if player docks at main station with contraband. No player interaction.
Version 1.1 - 26/3/11: Requires Oolite 1.75.1 - Introduced interaction with customs and option to voluntarily handover contraband to avoid penalties and get a reward.
Version 1.2 - 03/4/11: Requires Oolite 1.75.1 - Made compatible with
Thargoid's HyperCargo 1.04 and Vortex 1.11 OXP's. Added option to attempt to bribe customs if detected. Added option to make detection rate variable.
Version 1.2.1 - 5/4/11: Requires Oolite 1.75.1 - Fixed a bug with event handling on docking that could interfere with another OXP's mission screens. Thanks to Gimi for reporting and Eric Walch for advice on the fix.
Version 1.3 - 11/4/11: Requires Oolite 1.75.1 - Added some simple missions which may be offered some time after slaves have been released.
Version 1.4 16/06/11 : Requires Oolite 1.75.1 or above - General code tidy up with lessons learnt from making Escort Contracts OXP. Reduced max delay between releasing slaves and being offered mission. Fixed a small bug on withupdating mission variables on intergalactic jump. Updated Hypercargo compatibility code and Vortex compatibility code in light of a bug that showed up in Vortex version 1.11. This release compatible with Vortex 1.12.
Version 1.5 07/08/11 : Requires Oolite 1.75.1 or above. Added code to check that target system for any missions offered after release of slaves is not post Nova. Fixed minor bug that could rarely result in a cosmetic issue with the mission offer screens. Fixed minor bug that could rarely result in mission target not being cleared correctly.
Version 1.6 05/02/12: Requires Oolite 1.76. Made JS strict mode compatible. Made Save Anywhere OXP compatible. Fixed bug in parsing of equipment.plist on mac systems. Reduced unnecessary missionVariable storage. Found and fixed several other minor bugs. One of special missions now uses Griff model for station if installed.
Version 1.7 19/4/12: Requires Oolite 1.76. Added compatibility for New Cargoes 1.0.5 or above. Updated Compatibility for HyperCargo 1.06 or above and Vortex 1.23 and above in light of changes to those OXPs for New Cargoes compatibility. Vortex update includes bugfix that affected Maelstrom pilots only. Added optional compatibility for OXPConfig (v2.09 or above). Added detected contraband info to mission screens.
Version 1.7.1 - 28/4/12 : Requires Oolite 1.76. Raised compatibility limits for New Cargoes to 1.0.6 and HyperCargo to 1.07. Fixed some bugs in the special slaves mission set-up. Thanks to richard.a.p.smith for reporting.
Version 1.7.2 - 25/5/12: Requires Oolite 1.76. Update to maintain compatibility with HyperCargo version 1.08 and above. Continues to work with HyperCargo v1.07. Minor tweaks in preparation for Oolite 1.77. Raised compatibility limit for new Cargoes to 1.1.0. Fixed non-critical typo in missions script (thanks Switeck).
Version 1.7.3 - 30/5/12: Requires Oolite 1.76. Fixed minor bug introduced in last release. Thanks to Tricky for reporting.
Thanks to Thargoid for advice on the method to interact with another script/OXP's variables.
Thanks to Eric Walch for advice on avoiding conflicts with other OXP's, and Gimi for reporting the bug in version 1.2
Thanks to cim for making New Cargoes easy to interact with.
An additional acknowledgement can be found in spoilers.txt.
Thanks to all contributors to the thread on the Oolite BB for suggesting improvements to the original very basic idea.
Current version 1.7.3 can be found at http://www.box.com/s/tc5aduvectp1gisnfpoq