Back to Index | Page generated: Dec 20, 2024, 7:22:10 AM |
from Expansion Manager's OXP list | from Expansion Manifest | |
---|---|---|
Description | This OXP adds enhanced Viper Patrols, Viper Pursuits, and Viper Interceptors, to richer stable systems; GalCop Deputies to stable poor/average systems; and Bounty Hunters to unstable/dangerous systems. They are not über ships - far from it - but with the advent of heavy pirates and heavy assassins into the core game, some toughening of GalCop Vipers seemed appropriate. | This OXP adds enhanced Viper Patrols, Viper Pursuits, and Viper Interceptors, to richer stable systems; GalCop Deputies to stable poor/average systems; and Bounty Hunters to unstable/dangerous systems. They are not über ships - far from it - but with the advent of heavy pirates and heavy assassins into the core game, some toughening of GalCop Vipers seemed appropriate. |
Identifier | oolite.oxp.zzz.Montana05.FdL_enhanced_vipers | oolite.oxp.zzz.Montana05.FdL_enhanced_vipers |
Title | Enhanced Vipers | Enhanced Vipers |
Category | Ships | Ships |
Author | Montana05, Cody | Montana05, Cody |
Version | 0.52 | 0.52 |
Tags | police ships | police ships |
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/1/10/Oolite.oxp.zzz.Montana05.FdL_enhanced_vipers.OXZ | n/a |
License | CC BY-NC-SA 4.0 | CC BY-NC-SA 4.0 |
File Size | n/a | |
Upload date | 1638498259 |
Also read http://wiki.alioth.net/index.php/Enhanced%20Vipers
Overview ======== This OXP adds enhanced Viper Patrols, Viper Pursuits, and Viper Interceptors, to richer, stable systems; GalCop Deputies to stable poor/average systems; and Bounty Hunters to unstable/dangerous systems. They are not über ships - far from it - but with the advent of heavy pirates and heavy assassins into the core game, some toughening of GalCop Vipers seemed appropriate. Hopefully, the sight of a squad of Vipers being trounced by a gang of bandits, or getting slaughtered by a bunch of assassins, will become less common. Some of the enhanced Vipers have highly skilled pilots, so any players acting as bandits should beware. History ======= In a dangerous Ooniverse, the richer stable systems had traditionally been safe havens for traders. However, in the poorer, less well-policed systems, piracy was increasing. When tougher ships became available, pirate clans grew bolder, and those safe havens became the target of increasingly frequent raids. GalCop Vipers bore the brunt of these raids, and their losses began to mount. When trade started to suffer, the wealthy merchant guilds got together, and decided something had to be done. After much haggling, they struck a deal with GalCop, Faulcon de Lacy, and Griff Industries, to finance the building of enhanced replacements for the ageing Vipers. With a view to spreading the potential benefits to poorer systems, the Bounty Hunters Guild was brought onboard. As is often the case though, budgetary constraints - brought about by spiraling costs and pocket-lining by unscrupulous bureaucrats - limited the scope of the enhancements. Nevertheless, GalCop's enhanced Vipers are now starting to make their presence felt, and this it is hoped will eventually turn the tide, and perhaps restore some semblance of normality. The improved performance and durability of the enhanced Vipers has also attracted the more skillful pilots, and recruitment - which had been declining - is on the up. Credits ======= Cody (concept and lore) Griff (models and basic textures) another_commander (basic specular map escape capsule) Remarks ======= Additional to the enhanced Vipers the GalCop police emblem and individual escape capsules are added to all core-vipers. Viper Pursuit, in the core-game just shown as Viper, is now correctly named. The package is adjusted to Illicit Unlock OXP, Sniper Gun OXP, Carriers.OXP and Carriers_with_turrets.OXP. Requirements ============ Oolite V 1.88 or higher. Details ======= For additional details, please check the wiki-page: http://wiki.alioth.net/index.php/Enhanced_Vipers License ======= This work is licensed under Creative Commons Attribution Non-Commercial Share Alike 4.0 International (CC BY-NC-SA 4.0). To view a copy of this license, visit https://creativecommons.org/licenses/by-nc-sa/4.0 Version History =============== V 0.50 initial release V 0.51 removed a test routine in the script V 0.52 small tweaks to adjust better with other OXP's
Path | |
---|---|
Scripts/FdL_viper_E_conditions.js | this.name = "FdL_viper_E_conditions"; this.author = "Montana05"; this.description = "condition script for Viper-E ships"; this.version = "0.52"; this.copyright = "2021 Montana05"; this.licence = "CC BY-NC-SA 4.0"; "use strict"; this.allowSpawnShip = function(shipKey) { var systemEco = system.economy; var systemGov = system.government; if(system.isInterstellarSpace || system.sun.isGoingNova || system.sun.hasGoneNova) { return false; }; switch(shipKey) { case "FdL_viper_E_patrol": case "FdL_viper_E_pursuit": case "FdL_viper_E_interceptor": // GalCop space police in rich, stable governments if(systemGov > 4 && systemEco <= 3) { return true; }; break; // GalCop deputies in average or poor stable governments case "FdL_viper_E_pursuit_bhg_deputy": if(systemGov > 4 && systemEco > 3) { return true; }; break; // bounty hunters in unstable and dangerous systems case "FdL_viper_E_pursuit_bhg": case "FdL_viper_E_pursuit_bhg_team_01": if(systemGov <= 2) { return true; }; break; default: break; }; return false; }; |
Scripts/FdL_viper_E_events.js | this.name = "FdL_viper_E_events"; this.author = "Montana05"; this.description = "event handler for Viper-E ships"; this.version = "0.52"; this.copyright = "2021 Montana05"; this.licence = "CC BY-NC-SA 4.0"; "use strict"; this.shipSpawned = function(ship) { this.FdL_viper_shipType = this.ship.dataKey; if(this.ship.hasRole("escape-capsule")) { // neutral inits first var crewName = expandDescription("[nom]"); var crewDescription = "a crew member of an evacuated ship"; var crewRole = "police"; // most of the time var crewRank = "Space Lieutenant"; // most common rank var crewRace = expandDescription("[FdL_viper_E_GalCop_races_scientific]"); // add a race to the crew members var crewBounty = 0; var crewInsurance = 0; // now it's time to be more specific, based on an crew of 1 to 2 person // insurance or bounty are defined so there shouldn't be slaves // ranks for Bounty Hunter Guild taken from Random Hits OXP, all credits to LittleBear this.$FdL_viper_bhg_ranks_array = ["Outsider", "Recruit", "Vigilante", "Bailiff", "Deputy", "Tracker", "Hunter", "Sheriff", "Provost", "Marshal", "Enforcer", "Executioner", "Judge"]; crewRank = $FdL_viper_bhg_ranks_array[Math.floor(Math.random() * $FdL_viper_bhg_ranks_array.length)]; switch(this.FdL_viper_shipType) { case "FdL_viper_E_escape_capsule_police": this.$FdL_viper_ranks_array = ["Ensign", "Space Junior Lieutenant", "Space Lieutenant", "Lt. Commander"]; crewRank = $FdL_viper_ranks_array[Math.floor(Math.random() * $FdL_viper_ranks_array.length)]; crewName = ("the " + crewRace + " " + crewRank + " " + crewName); crewDescription = "an officer of GalCop Space Police"; crewInsurance = (this.$getRndInteger(90, 450) + (15 * system.government)); // stable governments pay extra bonus crewRole = "police"; break; case "FdL_viper_E_escape_capsule_bhg": crewName = ("the " + crewRace + " " + crewRank + " " + crewName); crewDescription = "a member of the Bounty Hunter Guild"; crewInsurance = (this.$getRndInteger(90, 450) * 1.10); // BHG got better insurance conditions crewRole = "hunter"; break; case "FdL_viper_E_escape_capsule_bhg_pirate": crewName = ("the " + crewRace + " " + crewRank + " " + crewName); crewDescription = "a rouge member of the Bounty Hunter Guild"; crewBounty = (this.$getRndInteger(90, 450) * 1.10) + (15 * system.government); // stable governments pay extra bonus crewRole = "pirate"; break; default: break; }; this.ship.setCrew ( { name: crewName, short_description: crewDescription, role: crewRole, species: crewRace, insurance: crewInsurance, bounty: crewBounty } ); // remove individual roles this.ship.primaryRole = "escape-capsule"; } else { var shipRole = this.ship.primaryRole; // if the ship got no cargo there is a 50% chance that some is added if(this.ship.cargoSpaceCapacity > 0 && this.ship.cargoSpaceUsed === 0 && this.$getRndInteger(1, 2) > 1) { this.ship.adjustCargo("firearms", 1); }; // individual role of the ship, will only be called from other OXP's switch(shipRole) { case "viper": case "viper-pursuit": case "viper-interceptor": case "FdL_viper_E_patrol": case "FdL_viper_E_pursuit": case "FdL_viper_E_pursuit_bhg_deputy": case "FdL_viper_E_interceptor": this.ship.primaryRole = "police"; break; case "FdL_viper_E_pursuit_bhg": case "FdL_viper_E_pursuit_bhg_team_01": this.ship.primaryRole = "hunter"; break; default: break; }; }; }; this.shipDied = function(whom, why) { if(this.ship.hasRole("escape-capsule")) { return; } else { // neutral inits first var podType = "escape-capsule"; var cargoSpace = this.ship.cargoSpaceCapacity; var cargoLoad = this.ship.cargoSpaceUsed; // remove existing pods first if(this.ship.equipmentStatus("EQ_ESCAPE_POD") != "EQUIPMENT_UNAVAILABLE") { this.ship.removeEquipment("EQ_ESCAPE_POD"); }; // prepare relevant pod type switch(this.FdL_viper_shipType) { case "viper": case "viper-pursuit": case "viper-interceptor": case "FdL_viper_E_patrol": case "FdL_viper_E_pursuit": case "FdL_viper_E_interceptor": podType = "FdL_viper_E_escape_capsule_police"; break; case "FdL_viper_E_pursuit_bhg_deputy": case "FdL_viper_E_pursuit_bhg": case "FdL_viper_E_pursuit_bhg_team_01": if(this.ship.bounty > 7) { podType = "FdL_viper_E_escape_capsule_bhg_pirate"; } else { podType = "FdL_viper_E_escape_capsule_bhg"; }; break; default: break; }; // 75% chance that the pilot could eject if(this.$getRndInteger(1, 100) > 25) { system.addShips(podType, 1, this.ship.position); }; // small chance that the ship had prisoners on board (Montanas Ressource Pack 01) if(worldScripts["MRP01_ressource_spawn"] && cargoSpace > 0 && cargoLoad == 0 && this.$getRndInteger(1, 10) > 8) { system.addShips("MRP01_container_prisoners", 1, this.ship.position); }; }; }; this.$getRndInteger = function(min, max) { return Math.floor(Math.random() * (max - min + 1) ) + min; }; |
Scripts/FdL_viper_carrier_conditions.js | this.name = "FdL_viper_carrier_conditions"; this.author = "Montana05"; this.description = "condition script for Viper Carriers"; this.version = "0.52"; this.copyright = "2021 Montana05"; this.licence = "CC BY-NC-SA 4.0"; "use strict"; this.allowSpawnShip = function(shipKey) { if(shipKey == "viper-carrier-player-neutral" && worldScripts["carriers"] && !worldScripts["carriers_with_turrets"]) { return true; }; if(shipKey == "viper-carrier-player-neutral-turret" && worldScripts["carriers"] && worldScripts["carriers_with_turrets"]) { return true; }; return false; }; |