Back to Index | Page generated: May 8, 2024, 6:16:03 AM |
from Expansion Manager's OXP list | from Expansion Manifest | |
---|---|---|
Description | Adds a range of ships and stations to each dictatorship and offers new trading opportunities to players. | Adds a range of ships and stations to each dictatorship and offers new trading opportunities to players. |
Identifier | oolite.oxp.Ramirez.Dictators | oolite.oxp.Ramirez.Dictators |
Title | Dictators | Dictators |
Category | Systems | Systems |
Author | Ramirez, phkb, gsagostinho | Ramirez, phkb, gsagostinho |
Version | 2.6 | 2.6 |
Tags | ||
Required Oolite Version | ||
Maximum Oolite Version | ||
Required Expansions |
|
|
Optional Expansions |
|
|
Conflict Expansions | ||
Information URL | http://wiki.alioth.net/index.php/Dictators_OXP | n/a |
Download URL | https://wiki.alioth.net/img_auth.php/a/a5/Dictators.oxz | n/a |
License | CC BY-NC-SA 3 | CC BY-NC-SA 3 |
File Size | n/a | |
Upload date | 1693696776 |
Also read http://wiki.alioth.net/index.php/Dictators
Oolite OXP Dictators v2.6 Ramirez, Initial Release July 2011 This OXP is a flavour expansion for the Dictatorship systems, adding various government-specific ships and stations. V2.6 - Added shiplibrary.plist, so Dictators ships will show up in the Ship Library. With thanks to Cholmondely. V2.5 - Added some shipdata entries to provide compatibility with Resistance Commander OXP. V2.4 - Added normal map to frieghter. - Small corrections to shipdata.plist. - Allowed for game to be saved at Astro Factories. V2.3 - Corrected errors in shipdata.plist. - Small correction to the spawning conditions to prevent prisonships in industrial systems. V2.2, 31 July 2017 (by phkb and gsagostinho) - Updates to shipdata and scripts to better control spawning. V2.1, 21 July 2017 (by phkb and gsagostinho) - added new textures, normal and emission maps to all ships. - Moved AstroFactory spawn point to be slightly to the side of the main wp-planet lane. V2.0, 16 December 2016 (by phkb) - Updated scripts and config for current version of Oolite (1.82 and onwards) - Updated ship models to use Griff variants. - Added code to utilise Station Validator. - Made Spara's updated Astrofactory model a requirement for the OXP. The original model is kept for compatibility reasons. v1.5, 21 July 2011 - Minor correction to fix inconsistency between script and shipdata regarding spawn conditions for AstroFactories v1.4, 19 June 2010 - Updated ship population script for compatibility with Oolite v1.74 v1.3, 31 May 2008 - Fixed freighter and tanker AI to avoid conflict with station behaviour - Minor fixes to ship models v1.2, 9 February 2007 - Added Imperial Freighter v1.1, 30 January 2007 - Added Imperial Tanker - Modified script to prevent appearance of multiple AstroFactories on launch, and tweaked positioning of ships and stations v1.0, 22 January 2007 Initial version including: - Revolutionary Guards and Junta Enforcers for the agricultural dictatorships - Imperial Quaestors, Censors and Lictors for the industrial dictatorships - Imperial AstroFarms, located within asteroid fields in the wealthier industrial dictatorships and marked as 'F' on the Advanced Space Compass - Detailed System Profiles courtesy of GalCop Intelligence As well as providing some hints on trading opportunities, the System Profiles also give an idea of things to come in future versions. Credits: Many thanks to Dr. Nil for the Commies OXP which inspired this expansion, and for additional advice and suggestions. Station model and textures by Ramirez, with some use of existing Oolite meshes and base textures. Ship models and textures by Griff: - Quaestor and Guard are variants of the Viper model from Oolite core. - Censor and Enforcer are variants of the Viper Interceptor model from Oolite core. - Lictor is a variant of the Viper Pursuit from Oolite core. - Prison Ship is a variant of the Anaconda from Oolite core. - Freighter and Tanker are "Griff Freighters" from Griff's stalled "Busy Ports" OXP (downloaded from here: https://app.box.com/s/j6zrjibym9). Config and script updates for 1.82ff compatibility by phkb. Sun image from http://simpleicon.com/sunny_3.html
Path | |
---|---|
Scripts/astrofactory_market.js | "use strict"; this.name = "astrofactory_market"; this.author = "spara"; this.copyright = "2014 spara"; this.license = "CC BY-NC-SA 4.0"; this.$originalDefs = { "food" : [0, 0, 19, -2, 0, 1, 1, 1, 0], "textiles" : [0, 0, 12, -1, -1, 5, 3, 3, 0], "radioactives" : [0, 0, 65, -3, -3, 2, 7, 7, 0], "slaves" : [0, 0, 100, -1, -1, 10, 3, 3, 0], "liquor_wines" : [0, 0, 93, -5, -5, 251, 15, 15, 0], "luxuries" : [0, 0, 196, 8, 8, 2, 3, 3, 0], "narcotics" : [0, 0, 235, 29, 29, 8, 90, 90, 0], "computers" : [0, 0, 134, 14, 14, 90, 2, 1, 0], "machinery" : [0, 0, 98, 6, 6, 100, 2, 1, 0], "alloys" : [0, 0, 90, 1, 1, 2, 31, 31, 0], "firearms" : [0, 0, 100, 13, 13, 0, 0, 0, 0], "furs" : [0, 0, 20, -9, -9, 0, -1, -1, 0], "minerals" : [0, 0, 42, -1, -1, 12, 3, 3, 0], "gold" : [0, 0, 107, -1, -1, 5, 20, 20, 1], "platinum" : [0, 0, 191, -2, -2, 5, 21, 21, 1], "gem_stones" : [0, 0, 55, -1, -1, 250, 15, 15, 2], "alien_items" : [0, 0, 10, 0, 0, 0, 0, 0, 0] }; this.updateLocalCommodityDefinition = function(goodDefinition) { var commodity = goodDefinition.key; var oldDefs = this.$originalDefs[commodity]; //old style definition found for the good. calculate it the old way if (oldDefs) { var market_base_price = oldDefs[2]; var market_eco_adjust_price = oldDefs[3]; var market_eco_adjust_quantity = oldDefs[4]; var market_base_quantity = oldDefs[5]; var market_mask_price = oldDefs[6]; var market_mask_quantity = oldDefs[7]; var market_rnd = Math.floor(Math.random() * 256); var economy = system.economy; var price = (market_base_price + (market_rnd & market_mask_price) + (economy * market_eco_adjust_price)) & 255; price *= 0.4; var quantity = (market_base_quantity + (market_rnd & market_mask_quantity) - (economy * market_eco_adjust_quantity)) & 255; if (quantity > 127) quantity = 0; quantity &= 63; goodDefinition.price = price * 10; goodDefinition.quantity = quantity; } //no definition found. nullify the goods. else { goodDefinition.price = 0; goodDefinition.quantity = 0; } return goodDefinition; }; |
Scripts/dictators.js | "use strict"; this.name = "dictators.js"; this.author = "Ramirez"; this.copyright = "June 2010"; this.description = "World script for populating dictatorship systems"; this.version = "1.2"; this._shipSpawnOverride = false; this.systemWillPopulate = function() { if (system.government === 3) { if (system.economy < 3) { if (system.countShipsWithRole("astrofactory") == 0 && (!worldScripts.station_validator || worldScripts.station_validator.$deaths("astrofactory").length === 0)) { var posAF = Vector3D((system.scrambledPseudoRandomNumber(1245) * 0.30 - 0.15), (system.scrambledPseudoRandomNumber(3827) * 0.30 - 0.15), 0.3).fromCoordinateSystem("wpu"); system.setPopulator("dictators_astrofactory", { location: "COORDINATES", coordinates: posAF, deterministic:true, callback: function(pos) { var rck = system.addShips("asteroid", 30, pos, 40E3); var af = system.addShips("astrofactory", 1, pos, 0); if (!af || af.length === 0) log("dictators.populator", "OOPS! No astrofactory spawned"); }} ); //system.legacy_addShipsAt("astrofactory", 1, "wpu", [0, 0, 0.3]) //system.legacy_addShipsAt("asteroid", 30, "wpu", [0, 0, 0.3]) var posIT1 = Vector3D(0, 0, 0.8).fromCoordinateSystem("wpu"); system.setPopulator("dictators_imptanker1", { location: "COORDINATES", coordinates: posIT1, callback: function(pos) { var tnk = system.addShips("imptanker", 1, pos, 0); if (!tnk || tnk.length === 0) log("dictators.populator", "OOPS! No imptanker spawned (1)"); }} ); var posIT2 = Vector3D(0, 0, 0.4).fromCoordinateSystem("wpu"); system.setPopulator("dictators_imptanker2", { location: "COORDINATES", coordinates: posIT2, callback: function(pos) { var tnk = system.addShips("imptanker", 1, pos, 0); if (!tnk || tnk.length === 0) log("dictators.populator", "OOPS! No imptanker spawned (2)"); }} ); //system.legacy_addShipsAt("imptanker", 1, "wpu", [0, 0, 0.8]) //system.legacy_addShipsAt("imptanker", 1, "wpu", [0, 0, 0.4]) var posIF1 = Vector3D(0, 0, 0.3).fromCoordinateSystem("wpu"); system.setPopulator("dictators_impfreighter1", { location: "COORDINATES", coordinates: posIF1, callback: function(pos) { var frt = system.addShips("impfreighter", 1, pos, 0); if (!frt || frt.length === 0) log("dictators.populator", "OOPS! No impfreighter spawned (1)"); }} ); var posIF2 = Vector3D(0, 0, 0.7).fromCoordinateSystem("wpu"); system.setPopulator("dictators_impfreighter2", { location: "COORDINATES", coordinates: posIF2, callback: function(pos) { var frt = system.addShips("impfreighter", 1, pos, 0); if (!frt || frt.length === 0) log("dictators.populator", "OOPS! No impfreighter spawned (2)"); }} ); //system.legacy_addShipsAt("impfreighter", 1, "wpu", [0, 0, 0.3]) //system.legacy_addShipsAt("impfreighter", 1, "wpu", [0, 0, 0.7]) } } if(system.economy >= 6) { if(system.countShipsWithRole("prisonship") == 0) { var posPS = Vector3D(0, 0, 0.8).fromCoordinateSystem("wpu"); system.setPopulator("dictators_prisonship", { location: "COORDINATES", coordinates: posPS, callback: function(pos) { var ps = system.addShips("prisonship", 1, pos, 0); if (!ps || ps.length === 0) log("dictators.populator", "OOPS! No prisonship spawned"); }} ); //system.legacy_addShipsAt("prisonship", 1, "wpu", [0, 0, 0.8]) } } } } |
Scripts/dictators_conditions.js | "use strict"; this.name = "Dictators_Conditions"; this.author = "phkb"; this.copyright = "2016 phkb"; this.description = "Condition script for ships and equipment."; this.licence = "CC BY-NC-SA 3.0"; this.allowSpawnShip = function(shipKey) { if (worldScripts["dictators.js"]._shipSpawnOverride === true) return true; if (system.info.government !== 3) return false; switch (shipKey) { case "enforcer": case "rev_guard": case "prison_ship": if (system.info.economy >= 4) return true; break; case "quaestor": case "censor": if (system.info.economy < 4) return true; break; case "lictor": case "astrofactory": case "tanker_1": case "tanker_2": case "tanker_3": case "tanker_4": case "tanker_5": case "tanker_6": case "freighter_1": case "freighter_2": case "freighter_3": case "freighter_4": case "freighter_5": case "freighter_6": return true; break; } return false; } |