Back to Index | Page generated: Nov 12, 2024, 11:02:04 PM |
from Expansion Manager's OXP list | from Expansion Manifest | |
---|---|---|
Description | Adds encounters with the mythical Generation Ships from time to time in interstellar space. GalCop regulations stipulate these enormous pre-witchspace drive ships should be left completely alone when found. There are serious consequences for attempting to interfere with them in any way. | Adds encounters with the mythical Generation Ships from time to time in interstellar space. GalCop regulations stipulate these enormous pre-witchspace drive ships should be left completely alone when found. There are serious consequences for attempting to interfere with them in any way. |
Identifier | oolite.oxp.Draco_Caeles.GenerationShips | oolite.oxp.Draco_Caeles.GenerationShips |
Title | Generation Ships | Generation Ships |
Category | Ships | Ships |
Author | Draco Caeles, Commander McLane, phkb | Draco Caeles, Commander McLane, phkb |
Version | 1.6 | 1.6 |
Tags | ||
Required Oolite Version | ||
Maximum Oolite Version | ||
Required Expansions | ||
Optional Expansions | ||
Conflict Expansions | ||
Information URL | https://wiki.alioth.net/index.php/Generation_Ships_OXP | n/a |
Download URL | https://wiki.alioth.net/img_auth.php/d/d7/Generation_Ships_1.6.oxz | n/a |
License | CC-BY-NC-SA 3.0 | CC-BY-NC-SA 3.0 |
File Size | n/a | |
Upload date | 1700705989 |
Generation Ships v1.5.1 by "Draco_Caeles" revised by "Commander McLane" and Nick Rogers an Expansion Pack for Oolite by Giles Williams based on "Elite" by Ian Bell and David Braben Shadows from the Past ===================== Space holds many mysteries: all spacers learn this, some sooner, some later. Ships take off from a station and are lost without a trace; some are wormholed across the galaxy, or even between galaxies, leaving the pilot stranded; some pass through witchspace in seconds and have aged a thousand years, the ship's crew aged to dust on the consoles. And then there are the legends... From the Elite Manual --------------------- "Before the development of the WS Thru-Space drive, in all its various forms, interstellar travel occurred in large, self-sustaining environment ships - Generation Ships - most of which have now been logged and their progress monitored. There are more than seventy thousand of these immense vessels ploughing their way through the galaxy, some of them into their 30th generation. The penalty for interference with such a vessel is marooning." Overview ======== This OXP adds the mysterious, majestic and magnificently massive Generation ships to your Oolite universe. These immense vessels are encountered only rarely in the vast tracts of Thargoid-haunted interstellar space between inhabited systems, so seeing one may be a once in a lifetime occurrence for many commanders. Few who have reported seeing these vessels have ever been unchanged by the experience, to be dwarfed by the sheer magnitude and awed by the stately grace these ships exhibit is something that remains with the viewer forever. Minimum Requirements ==================== Generation Ships.oxp v 1.4 requires at least Oolite 1.80. Version 1.3, available from the Elite Wiki, is suitable for Oolite versions 1.74 to 1.77.1. Download Location ================= This OXP is available for download via the Elite Wiki, or via the in-game download manager. Installation ============ Move or copy the file Generation Ships.oxp from this folder your AddOns folder. Delete any older version of the OXP. Restart Oolite. Acknowledgements ================ Draco_Caeles is the original author of this OXP. The model, texture, shipdata, original script, and AI of the Generation Ship are all by him. He was the first one to bring the legend to life. When his OXP seemed to be lost in the debris of Oosat 2, some members of the Oolite Bulletin Boards dug it out and made it available again. Captain Hesperus threw together the original of this readMe and hosted the file. Commander McLane revised the script, rewrote it in JavaScript, made a few adjustments in the shipdata, and slightly changed the AI and behaviour of the ship. He also re-published the OXP as version 1.3. phkb re-worked the shipdata.plist file, converted it to the ASCII format and made the sub-entity definitions current with the latest version. He also reworked the populator function to use the systemWillPopulate routine. He added some JavaScript to interface with his Email System, and repackaged the OXP in OXZ format, as version 1.4, and made it available via the download manager. License ======= This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License version 3.0. For more information see the ReadMe of Oolite or the Creative Commons' website. Practically this means that you may rip it apart and use whatever seems useful to you, as long as you credit the original authors. It would be nice - although by no means necessary - to give me a note, if you intend to use parts of it. History ======= 1.6 - Added specular maps, adjusted diffuse maps for a more "old" appearance. - Added shiplibrary.plist file. 1.5 - Made the ship dockable, but added penalties for when you do dock. - Updated textures and added normal maps. - Switched to using interstellarSpaceWillPopulate population routine. - Changed spawning logic to ensure only one Generation Ship will ever be spawned at a time. - Code refactoring. - Bug fixes. 1.4.1 - removed some unused shipdata.plist entries. 1.4 (July 15, 2015) - revised version by phkb. - updated populator function to use new methods. - switched "pirate-victims.plist" to "role-categories.plist". - converted "shipdata.plist" to ASCII format, updated subentities to newer format. - added Email System interface for Galactic Court message. - spelling corrections. - converted rtf readme to txt format. - repackaged as an OXZ, added to download manager. - requires Oolite 1.80. 1.3 (April 10th, 2011) - moved all self-defined function into their own namespace - excluded Generation Ships from getting shields if NPC-shields.oxp is installed 1.2 (February 22nd, 2011) - the probability of meeting a Generation Ship is again reduced - new mission screen code and new ship creating code used - requires Oolite 1.74 1.1 (October 10th, 2009) - revised version by Commander McLane - the model is now centered, causing the blip and the target box of the ship to be symmetrical - the ship is now practically indestructible, it survives multiple Q-bomb blasts - AI changes: the ship no longer disappears after being attacked - the two messages on attack are now correctly separated by a pause of six seconds - an accidental hit does no longer count as an attack - script changes: script is now in JS - the probability of meeting a Generation Ship is a little reduced - Generation Ships no longer appear out of wormholes, giving the correct impression that they travelled through the vastness of interstellar space - the ships now may appear in a huge radius around the player, greatly decreasing the likeliness to end up inside one of them - the ships now move into random directions - interfering with one of the vessels now has actually a penalty attached to it - requires Oolite 1.73 1.0 - fully functional version by Draco_Caeles - requires Oolite 1.65
Path | |
---|---|
Scripts/Generation Ships.js | /* Generation Ships.js Script for randomly spawning Generation Ships. Oolite Copyright © 2003-2011 Giles C Williams and contributors This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. Generation Ships.oxp Copyright © 2006-2011 "Draco_Caeles" & "Commander McLane" This work is licensed under the Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/ or send a letter to Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA. */ "use strict"; this.name = "Generation Ships"; this.description = "Script for randomly spawning Generation Ships"; this.author = "Commander McLane"; this.copyright = "© 2011 Commander McLane"; this.license = "CC-BY-NC-SA 3.0"; this.version = "1.5.0"; //------------------------------------------------------------------------------------------------------------- this.startUpComplete = function () { if (worldScripts.BountySystem_Core) { var bsc = worldScripts.BountySystem_Core; bsc._offenceTypes["generation ship"] = { description: "Interference with and/or damage to a Generation Ship in open Interstellar Space", severity: 3 }; } } //------------------------------------------------------------------------------------------------------------- this.interstellarSpaceWillPopulate = function () { var position = Vector3D(0, 0, 0); system.setPopulator("gen ship", { callback: function (pos) { var chance = 0.01; for (var i = 1; i <= 30; i++) { if (Math.random() < chance) { system.addShips("generationship-" + i.toString(), 1, pos, 250000); break; } } }.bind(this), location: "COORDINATES", coordinates: position }); } //------------------------------------------------------------------------------------------------------------- this.missionScreenOpportunity = function () { if (player.ship.docked && player.ship.dockedStation.hasRole("generationship") && (missionVariables.genship == "PLAYER_ATTACKED" || missionVariables.genship == "PLAYER_DOCKED")) { // build message var msg = ""; if (missionVariables.genship == "PLAYER_ATTACKED") msg = expandMissionText("genship_penalty"); if (missionVariables.genship == "PLAYER_DOCKED") msg = expandMissionText("genship_dock_penalty"); mission.runScreen({ title: "Galactic Court", message: "---INCOMING MESSAGE\n\n" + msg + "\n\n---MESSAGE ENDS", model: "generationship" }); player.ship.setBounty(player.ship.bounty + 51, "generation ship"); player.credits -= 25000; if (player.credits < 0) player.credits = 0; delete missionVariables.genship; // send as email message, if system is installed. var w = worldScripts.EmailSystem; if (w) { w.$createEmail({ sender: "Galactic Court", subject: "Generation Ship Penalty", date: global.clock.seconds, message: msg }); } } } //------------------------------------------------------------------------------------------------------------- // if the player docks, hide the F3 screen from them. this.guiScreenChanged = function (to, from) { if (player.ship.docked) { if (player.ship.dockedStation.hasRole("generationship")) { if (guiScreen === "GUI_SCREEN_EQUIP_SHIP") { mission.runScreen({ title: "Generation Ship", message: "There is no equipment available for your vessel on a Generation Ship." }); } if (guiScreen === "GUI_SCREEN_MARKET") { mission.runScreen({ title: "Generation Ship", message: "There is no market available on a Generation Ship." }); } } } } |
Scripts/genship-script.js | /* genship-script.js Ship script for Generation Ships. Oolite Copyright © 2003-2011 Giles C Williams and contributors This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. Generation Ships.oxp Copyright © 2006-2011 "Draco_Caeles" & "Commander McLane" This work is licensed under the Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/ or send a letter to Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA. */ "use strict"; this.name = "genship-script"; this.description = "Script for Generation Ships"; this.author = "Commander McLane"; this.copyright = "© 2011 Commander McLane"; this.license = "CC-BY-NC-SA 3.0"; this.version = "1.5.0"; this._warning = false; //------------------------------------------------------------------------------------------------------------- this.shipSpawned = function() { this.ship.primaryRole = "generationship"; this.ship.orientation = [(Math.random() * 2) - 1, (Math.random() * 2) - 1, (Math.random() * 2) - 1, (Math.random() * 2) - 1]; this._warningCheck = new Timer(this, this.$checkPlayer, 15, 15); } //------------------------------------------------------------------------------------------------------------- this.otherShipDocked = function(whom) { if (whom.isPlayer) { // only update the missionvariable if it hasn't already been set if (!missionVariables.genship || missionVariables.genship != "PLAYER_ATTACKED") { missionVariables.genship = "PLAYER_DOCKED"; } } } //------------------------------------------------------------------------------------------------------------- this.$fineAttacker = function() { if (this.ship.target.isPlayer) { missionVariables.genship = "PLAYER_ATTACKED"; } } //------------------------------------------------------------------------------------------------------------- this.$checkPlayer = function $checkPlayer() { var p = player.ship; var calc = p.position.distanceTo(this.ship); if (calc < 15000 && this._warning == false) { player.consoleMessage("Warning: It is an offence to interfere with Generation Ships."); this._warning = true; this._warningCheck.stop(); } } |