Page 1 of 3
Split: Escape pods and stations
Posted: Thu Nov 11, 2010 3:33 pm
by CheeseRedux
UK_Eliter wrote:My auto-eject module put me inside a thargoid carrier (after I'd been attacked not only by the thargoids but also by at least one Renegade). I tooled up in the carrier - that is wrongness #1. Then, on launching, there was a 'furball'. Wrongness #2!
This can hardly be blamed on the Furball.oxp.
Your escape capsule should never dock with a Thargoid in the first place, and if it did it should lead to an immediate 'press space'.
(It's not only bug carriers that gives you these moments that totally break immersion: I've had my capsule dock at a space bar where I got thrown out by an angry mob for being an offender. But they did politely wait with the throwing until I had processed my insurance and gotten a new ship...)
This sort of behaviour is something that should either be fixed in the core game, or by the oxp providing the dockable object. Expecting an oxp which only deals with what happens after you launch to also check whether you should even be able to dock there in the first place is a bit over the top.
Posted: Thu Nov 11, 2010 10:56 pm
by Commander McLane
However, there is no way for a dockable object to prevent the player from docking. If it's dockable, he can dock.
So the OXPs which provide the objects (like Thargoid Carrier.oxp) can't be blamed either.
Posted: Thu Nov 11, 2010 11:06 pm
by UK_Eliter
Perhaps I should say that I was not meaning to blame anyone!
But about 'dockable objects': (1) if something can launch a ship, does that make it a dockable object? I.e. if something can come out, then something must be able to go in? And indeed: (2) if something can go in, we cannot stop
the player going in? I take it that the answer to both questions is 'yes'. Still: as shown by the Seedy Bars (and the Renegade Stations), things can be made to happen to a player when he (/she) docks with certain objects. So some sort of Thargon-reception could be arranged in the present case. .
Posted: Thu Nov 11, 2010 11:28 pm
by CheeseRedux
Commander McLane wrote:However, there is no way for a dockable object to prevent the player from docking. If it's dockable, he can dock.
So the OXPs which provide the objects (like Thargoid Carrier.oxp) can't be blamed either.
So once again we're looking to our hard-working developers for the solution...
It's one thing for the player to be able to dock anywhere; if you're brave/stupid enough to try to dock with a Thargoid, whatever happens next is on your own head.
But for the Escape Capsule to do something that by all rights should end in instant death (or promotion to medical research subject) but instead just gives you your ship back is a total immersion breaker.
Would it be possible to alter the EC behaviour to always head for the main station instead of the nearest dockable object? Not a perfect solution by far, but surely better than what we have now, yes?
Posted: Thu Nov 11, 2010 11:29 pm
by Commander McLane
UK_Eliter wrote:Perhaps I should say that I was not meaning to blame anyone!
But about 'dockable objects': (1) if something can launch a ship, does that make it a dockable object? I.e. if something can come out, then something must be able to go in? And indeed: (2) if something can go in, we cannot stop
the player going in? I take it that the answer to both questions is 'yes'.
You're correct on both counts.
UK_Eliter wrote:Still: as shown by the Seedy Bars (and the Renegade Stations), things can be made to happen to a player when he (/she) docks with certain objects. So some sort of Thargon-reception could be arranged in the present case. .
That's exactly what will happen in the new version of Thargoidcarrier.oxp which is still in my pipeline. However, I didn't even think about the player arriving in an escape pod, and LittleBear apparently didn't, too. I think that there's probably nothing we can do about that, because what happens between ejecting from your ship and finding yourself on the next dockable entity is handled entirely by the game code, with no interference by scripts.
Posted: Fri Nov 12, 2010 12:59 am
by UK_Eliter
Right - understood. Thanks. I look forward to the new version of the carrier OXP. It is shame about the escape-pod code, though. For it is via an escape-pod that one is most likely, I would think, of ending up inside a bug-carrier. Perhaps there is some ingenious work-around?
Posted: Fri Nov 12, 2010 1:07 am
by Switeck
Why is an Escape Pod docking with a carrier in the first place? (...except maybe in interstellar space where there isn't any stations.)
While it won't "solve" docking with Random Hits Space Bars even when a fugitive or Pirate Coves when clean, it could at least eliminate "hitchhiking" on a Thargoid carrier if there's regular stations around.
Posted: Fri Nov 12, 2010 6:52 am
by Thargoid
Just as a thought, would a worldscript that sets a flag if the player launches their escape pod and then acts on that on the subsequent docking (both available to script) to perhaps display a message and then auto-launch (and maybe even re-dock to the main station) or something at least limit the damage to immersion?
It wouldn't be ideal, but it may be an improvement on the current situation. Would have to be in the carrier OXP though to do properly.
Posted: Fri Nov 12, 2010 9:07 am
by Kaks
Hmmm, I believe that would help.
However, there's always a docking sequence, so in case of 'wrong station' the best you can hope for is 2 distinct docking sequences, and different stations can have different shape tunnels...
Ok, I'll see what I can reasonably do with trunk. I should be able to get escape pods to the nearest friendly station, or - if no friendly station can be found - have the main station rescue the pilot anyway due to contractual obligations!
By the way, no escape pod can be launched in witchspace, either by the player or NPCs, at least for the time being.
Maybe this will change. I might be able to let ships launch escape pods in witchspace if friendly stations/carriers are nearby...
Cheers,
Kaks
Posted: Fri Nov 12, 2010 10:22 am
by Commander McLane
Switeck wrote:Why is an Escape Pod docking with a carrier in the first place?
Because currently the code makes it docking with the closest dockable entity, period. The game doesn't know whether this entity is in-game friendly or hostile or alien to the player.
As Thargoid says, a script can be added to automatically launch the player again. However, that still means that he would see the docking sequence, have to press a key, and see the launch sequence. And in case the player being in an escape pod I am not certain that he would still be in an escape pod after launch. The exchange against a new ship most likely takes place automatically when Oolite recognizes the escape pod being docked.
Posted: Fri Nov 12, 2010 11:12 am
by Zieman
Shouldn't the Escape Pod thing be so that it docks at system Main Station only? If no Main Station present, either "Press Space Commander" or the Pod refuses to launch.
Posted: Fri Nov 12, 2010 12:52 pm
by DaddyHoggy
If no Main station present, then randomly choose between:
Advance clock by many days/weeks/months and you are:
1) rescued
1a) by a friendly
1b) by a pirate - pay ransom or be killed
1c) very unfriendly - killed (with mission screen informing you of this)
2) die
2a) freeze to death as energy of pod runs out
2b) suffocate - pod runs out of oxygen
2c) starve - pod runs out of food
2d) eaten by trumble that hid in the pod with you
2e) cook - float in to sun's gravity or planetary re-entry
All could have their own mission screen and fitting epitaph...
Posted: Fri Nov 12, 2010 1:34 pm
by Eric Walch
Kaks wrote:Ok, I'll see what I can reasonably do with trunk. I should be able to get escape pods to the nearest friendly station, or - if no friendly station can be found - have the main station rescue the pilot anyway due to contractual obligations!
One option would be to only dock at the nearest station that also has the "hasNPCTraffic" flag set to true. Its a logic choice for such stations to accept escape pods.
I am sure that hasNPCTraffic is by default false for all carriers, and true for stations. (It could be false for rock stations, I'm not sure). But that value can be easy modified in shipData or by script, so station developers get control over it.
EDIT: I remembered wrong. Its always true by default. What happens is that default trader launch needs both this flag set to true and a rotating station. So above change would not break with current behaviour and when escape pods do end up in thargoid carriers, its the oxp fault because he allowed NPCTraffic. (PirateCove.oxp for example has explicit forbidden NPCTraffic)
Posted: Fri Nov 12, 2010 2:08 pm
by Kaks
Well, I went for the easy option after all!
Both NPCs & players will head for the nearest friendly station.
In normal systems, if all else fails the pod will find its way to the main station.
In interstellar space, a ship will be able to launch its escape pod only if there's at least a friendly carrier/temporary station at hand to rescue them.
This could prove interesting: in witchspace, if a clean carrier is around, all clean pilots will be able to eject, while outlaws won't!
The really weird thing was that I found 3 bugs from 1.74.2 (and possibly before) as I was testing the new behaviour: obviously I haven't been using my escape pod as often as I should have...
Edit:
DH, I didn't want to change the nature of the escape pod too drastically. However, if the pod can be launched at all, there's already the opportunity to create an escape pod pot luck oxp along the lines you mentioned, using the shipLaunchedEscapePod world script event...
Hmm, I suppose we could add a 'hidden setting' to toggle the behavior to 'always launch escape pod' - which would always lead to certain death in interstellar space when no oxp is loaded... What do you guys think?
Posted: Fri Nov 12, 2010 2:23 pm
by another_commander
I don't like the idea of escape pods being conditionally launched in witchspace. In game terms, there is no guarantee that a friendly carrier will stop to pick up a pod. I think the way it is now is fine: witchspace -> no party.
What if we set a station property like accepts_escape_pods with default to YES? This way it's up to the OXPers to decide what their stations would do and if we allow JS visibility of the property, the same station could be configured to accept/not accept pods dynamically.