Re: Nuit Space station
Posted: Wed Mar 16, 2022 1:41 pm
Strangely 'blocky' background - which nebulae are you using?
For information and discussion about Oolite.
https://bb.oolite.space/
Great! Thanks for this!
For a little more work...perhaps make using one of those special docking ports have a docking fee, like 10-100 credits -- just enough to be annoying.Cholmondely wrote: ↑Wed Mar 16, 2022 2:16 pmGreat! Thanks for this!
Now we just need somebody with the programming skills who could actually create a genuine docking/undocking process for these massive ships and any players who want to fly one!
Most stations are built in relatively small pieces that fit inside the biggest freighters (Anacondas typically) or shuttles from planet surfaces, even fluffed as such for a couple OXP stations (Sothis and Globe if I recall...)Cholmondely wrote: ↑Mon Mar 14, 2022 4:41 pmWhich brings up the matter of how on earth do the stations end up where they are. Yes, we know that Superhubs come with engines attached... But are the stations built locally? Are they built at Vetitice and brought through witch tunnels to their present locations? And what about the increasing prevalence of pirates/Thargoids... how does this affect things?
It might be possible to code a special mini-mission that offers only a maintenance overhaul, but probably more trouble than it's worth to do to avoid offering a lot of other equipment for sale.montana05 wrote: ↑Mon Mar 14, 2022 11:32 amThe techlevel is there for a reason, maintenance should last longer and 20 % up plus a minimum of 20K credits on your account before you even could enter the station should prevent a run for it. Some OXP's actually use 16 or even 17, but I do agree that it's not really relevant.Switeck wrote: ↑Mon Mar 14, 2022 8:25 amCombine these stations with other station OXPs/OXZs, and a tech level 13-15 system will seem "busy" with all the stations there.
There are no station exclusion rules to limit the number of stations in 1 system.
Hathor, Nuit, and Nephthys stations can all be in a single system.
...Biosphere, Sothis, Superhub, Transhab, and Tori stations might be present as well!
You are correct that a lot of stations could show up in some systems, but on the other hand, rich systems with only a GalCop station seems kind of unrealistic too, even for Oolite.
Cholmondely wrote: ↑Wed Mar 16, 2022 2:16 pmGreat! Thanks for this!
Now we just need somebody with the programming skills who could actually create a genuine docking/undocking process for these massive ships and any players who want to fly one!
I will happy step back and let somebody better than me do this job. I have a pretty vague idea how I can let big NPC's dock and launch there, but, from my experience, a lot features I have in mind will not work as intended.
I'd love to be able to do this. Alas, not yet!
Code: Select all
this.name = "Hathor-Nephthys-populator.js";
this.author = "Thargoid";
this.copyright = "For Killer Wolf to use as he pleases.";
this.version = "1.0";
this.description = "Script to add Hathor and Nephthys stations to systems."
this.scrambledPseudoRandom = function(salt) // Ahruman's random number generator.
{
// Convert from float in [0..1) with 24 bits of precision to integer.
var n = Math.floor(system.pseudoRandomNumber * 16777216.0);
// Add salt to enable generation of different sequences.
n += salt;
// Scramble with basic LCG psuedo-random number generator.
n = (214013 * n + 2531011) & 0xFFFFFFFF;
n = (214013 * n + 2531011) & 0xFFFFFFFF;
n = (214013 * n + 2531011) & 0xFFFFFFFF;
// Convert from (effectively) 32-bit signed integer to float in [0..1).
return n / 4294967296.0 + 0.5;
};
this.shipWillLaunchFromStation = function()
{ // to make sure stations are present on the first launch after save-game load.
this.shipWillExitWitchspace();
delete this.shipWillLaunchFromStation;
}
this.shipWillExitWitchspace = function()
{
if(system.isInterstellarSpace || system.sun.isGoingNova || system.sun.hasGoneNova)
{ return; } // block them from appearing in interstellar space or nova systems.
if (this.scrambledPseudoRandom(14) < 0.5 && system.countShipsWithRole("KW_nephthys") === 0 && system.techLevel > 5 && system.government > 1 && system.mainStation && system.mainPlanet)
{
this.nephthysOffset = system.mainPlanet.position.subtract(system.mainStation.position);
this.nephthysPosition = system.mainStation.position.add(this.nephthysOffset.multiply(2)); // put the Nephthys directly on the other side of the planet from the main station.
this.nephthys = system.addShips("KW_nephthys", 1, this.nephthysPosition); // this.nephthys is an array of added ships - in this case a single cell array
this.turnStation(this.nephthys[0], system.mainPlanet);
log(this.name, "Nephthys added.");
}
if (this.scrambledPseudoRandom(18) < 0.5 && system.countShipsWithRole("KW_hathor") === 0 && system.techLevel > 7 && system.government > 2)
{
this.hathor = system.addShipsToRoute("KW_hathor", 1, 0.7, "ws"); // this.hathor is an array of added ships - in this case a single cell array
this.turnStation(this.hathor[0], system.sun);
log(this.name, "Hathor added.");
}
}
this.turnStation = function(stationEntity, targetEntity)
{
if(!stationEntity.isValid || !targetEntity.isValid) { return; }
let stationVector = stationEntity.position.subtract(targetEntity.position).direction(); // unit vector pointing away from the sun
let angle = stationEntity.heading.angleTo(stationVector); // angle between current heading and target heading
let cross = stationEntity.heading.cross(stationVector).direction(); // set the plane where we should rotate in
stationEntity.orientation = stationEntity.orientation.rotate(cross, -angle); // re-orient the station away from the sun
}
I didn't touch or even have a deeper look at Hathor yet. Current status for the stations:Cholmondely wrote: ↑Thu Mar 31, 2022 11:08 pmHathor for AppleMac
The script.js in the config folder is illegible for an AppleMac
The Hathor is quite beautiful, Killer Wolf has done us a major favour by publishing this. And not only is the station elegant - just try the docking experience!
Try this instead:
Reference: Hathor Trade StationCode: Select all
this.name = "Hathor-Nephthys-populator.js"; this.author = "Thargoid"; this.copyright = "For Killer Wolf to use as he pleases."; this.version = "1.0"; this.description = "Script to add Hathor and Nephthys stations to systems." this.scrambledPseudoRandom = function(salt) // Ahruman's random number generator. { // Convert from float in [0..1) with 24 bits of precision to integer. var n = Math.floor(system.pseudoRandomNumber * 16777216.0); // Add salt to enable generation of different sequences. n += salt; // Scramble with basic LCG psuedo-random number generator. n = (214013 * n + 2531011) & 0xFFFFFFFF; n = (214013 * n + 2531011) & 0xFFFFFFFF; n = (214013 * n + 2531011) & 0xFFFFFFFF; // Convert from (effectively) 32-bit signed integer to float in [0..1). return n / 4294967296.0 + 0.5; }; this.shipWillLaunchFromStation = function() { // to make sure stations are present on the first launch after save-game load. this.shipWillExitWitchspace(); delete this.shipWillLaunchFromStation; } this.shipWillExitWitchspace = function() { if(system.isInterstellarSpace || system.sun.isGoingNova || system.sun.hasGoneNova) { return; } // block them from appearing in interstellar space or nova systems. if (this.scrambledPseudoRandom(14) < 0.5 && system.countShipsWithRole("KW_nephthys") === 0 && system.techLevel > 5 && system.government > 1 && system.mainStation && system.mainPlanet) { this.nephthysOffset = system.mainPlanet.position.subtract(system.mainStation.position); this.nephthysPosition = system.mainStation.position.add(this.nephthysOffset.multiply(2)); // put the Nephthys directly on the other side of the planet from the main station. this.nephthys = system.addShips("KW_nephthys", 1, this.nephthysPosition); // this.nephthys is an array of added ships - in this case a single cell array this.turnStation(this.nephthys[0], system.mainPlanet); log(this.name, "Nephthys added."); } if (this.scrambledPseudoRandom(18) < 0.5 && system.countShipsWithRole("KW_hathor") === 0 && system.techLevel > 7 && system.government > 2) { this.hathor = system.addShipsToRoute("KW_hathor", 1, 0.7, "ws"); // this.hathor is an array of added ships - in this case a single cell array this.turnStation(this.hathor[0], system.sun); log(this.name, "Hathor added."); } } this.turnStation = function(stationEntity, targetEntity) { if(!stationEntity.isValid || !targetEntity.isValid) { return; } let stationVector = stationEntity.position.subtract(targetEntity.position).direction(); // unit vector pointing away from the sun let angle = stationEntity.heading.angleTo(stationVector); // angle between current heading and target heading let cross = stationEntity.heading.cross(stationVector).direction(); // set the plane where we should rotate in stationEntity.orientation = stationEntity.orientation.rotate(cross, -angle); // re-orient the station away from the sun }
Here is Spara's SothisTC tweaked so it also works on the AppleMac: SothisTC OXZ. As said before, it overrides Sothis.oxp. Sothis is now only found in Corporates, has a slightly different market, is dockable at, is on the far side of the planet, and has goodies for NewCargoes users (NC clashes with Smugglers due to use of import licenses and banned trade goods).montana05 wrote: ↑Thu Mar 31, 2022 11:54 pmI didn't touch or even have a deeper look at Hathor yet. Current status for the stations:
Nuit:
adding escape crafts and some effects
Nephthys:
docking fee and, inspired by your Taranis Corporation HQ questions, individual shipyard for luxurious ships
Sothis:
started an overhaul of the OXP
An individual market is kind of simple if you just hard code everything but requires some test-routines when it should be more generic and flexible.
So is the docking experience. I don't know whether the BGS docking tunnel is yours or Montana's, but it is superb!Killer Wolf wrote: ↑Wed Apr 06, 2022 8:27 amthat looks fricking amazing, just like how i imagined it.