(WIP) Ship Repurchase

Discussion and information relevant to creating special missions, new ships, skins etc.

Moderators: winston, another_commander

User avatar
phkb
Impressively Grand Sub-Admiral
Impressively Grand Sub-Admiral
Posts: 4830
Joined: Tue Jan 21, 2014 10:37 pm
Location: Writing more OXPs, because the world needs more OXPs.

(WIP) Ship Repurchase

Post by phkb »

So this one will definitely not be for everyone!

Escape pods - have you noticed how using an escape pod sorta kinda doesn't make sense? Instead of a replacement ship with all the equipment in place, you get your ship back, but any damaged equipment at the time you used your pod is still damaged. What's with that? Who ever heard of an insurance replacement arriving in a damaged state? It's an issue that has been noted before, on a couple of occasions.

Now, I understand this is (a) a symptom of the original source material being an 8-bit game with limited resources to do something more complex and (b) designed to avoid abuse (spending 1000cr to escape large repair bills and high bounties does sound attractive...)

Anyway, regardless of which side of the escape pod fence you're on, I've put together an OXP that implements one solution to this problem (and please note, this is one solution to the perceived problem).

Ship Repurchase OXP
This OXP aims to make the experience of using an escape pod a bit more interesting and realistic, by doing the following:

1. The player will now always auto-eject just before ship destruction, even if no escape pod is fitted. The in-game logic is that this is a life-support suit only which will keep the pilot in stasis until recovery. You can't manually eject if you don't have an escape pod - you only get that option if you buy one.

One down-side of the life-support suit is that there is no room for anything but the pilot, so any parcels, passengers, gold, platinum or gem-stones will be left behind in the ship and lost.

2. After the player is returned to the station, they will have to choose from one of three options:
  1. Full ship and equipment replacement @ 10% of ship and equipment cost.
  2. Ship replacement only (no equipment) @ 10% of original ship cost.
  3. Lower value ship replacement at no cost.
If the player doesn't have sufficient funds to select either (a) or (b), they will have to choose (c).
Equipment replaced through option (a) will be fully working, not damaged (except for the Cloaking Device, unless you're rescued at a TL15 station).

Option (c) will either be
  1. a Cobra Mark III (if the base cost of their current ship is greater than 150K and their current ship is not a Cobra Mark III),
  2. a Moray Starboat (if the base cost of their current ship is between 125k and 150k and their current ship is not a Moray Starboat)
  3. a Cobra Mark I (if the base cost of their current ship is between 100K and 125K and their current ship is not a Cobra Mark I) or
  4. an Adder.

3. If the player has purchased an escape pod, the 10% value above is reduced to 5%. There is also an extra escape pod option, called "Escape Pod Plus", which will reduce the percentage to 2.5%.

4. To discourage abuse of the full equipment replacement scenario, the percentages will increase the more frequently the player ship is destroyed. So, if the player ejects multiple times in a month, the replacement costs will be increased.

5. The player can also optionally choose to buy some "Ship Repurchase Insurance" (4500cr from a GalCop station in any system), which covers the holder for 30 days, and reduces the repurchase amounts to 1000cr for full ship plus equipment replacement, and 500cr for ship-only replacement.

6. Pilots with a rank of "Harmless" or "Mostly Harmless" will only be charged 200cr for a full ship and equipment replacement, and 100cr for a ship-only replacement.

7. Any replacement ship will not need to be immediately overhauled.

8. Ejecting in interstellar space will still be fatal unless there is some sort of dockable station nearby. If there is, there is a chance the player will be rescued. However, due to the nature of interstellar space and any dockable ships that might be there, the player will not get a replacement ship straight away. They will be given an old Cobra Mark I which they can use to fly back to normal space, and when they dock at a station there, they will be asked what repurchase option they would like to take.

Note: This should be compatible with Auto-Eject OXP and Interstellar Tweaks OXP, but please let me know if you spot any conflicts. Also, you will need the Ship Storage Helper OXP.

I don't claim that this is fully balanced yet - I'm not sure if I need to make it easier and fairer for new Jameson's who are likely to eject more often than experienced pilots. But it's certainly working successfully and available for discussion.

Download version 0.4 here: ShipRepurchase.oxz
Plus a [EliteWiki] wiki page
Last edited by phkb on Wed Jun 06, 2018 1:51 am, edited 1 time in total.
User avatar
Norby
---- E L I T E ----
---- E L I T E ----
Posts: 2577
Joined: Mon May 20, 2013 9:53 pm
Location: Budapest, Hungary (Mainly Agricultural Democracy, TL10)
Contact:

Re: (WIP) Ship Repurchase

Post by Norby »

Nice and well considered idea. Imho the timeout of multiple usage could be yearly.

I can imagine two different ship chains in option c.
1. Hunters: Fer-de-Lance -> Asp -> Cobra Mark III -> Moray -> Cobra Mark I -> Adder.
2. Traders: Anaconda -> Boa2 -> Boa -> Python -> Moray Medical Boat -> Cobra Mark I -> Adder.
User avatar
gsagostinho
---- E L I T E ----
---- E L I T E ----
Posts: 573
Joined: Sun Jul 19, 2015 1:09 pm

Re: (WIP) Ship Repurchase

Post by gsagostinho »

phkb wrote: Thu Nov 30, 2017 12:29 am
So this one will definitely not be for everyone!
But is definitely for me! I love the idea :)

Concerning the chains proposed by Norby, I am just afraid that hardcoding something like this would cause issues when using non-default ships. I think the solution of using Cobra Mark III/ Moray Starboat / Cobra Mark I / Adder for option C is really good.

By the way, have you seen how Elite Dangerous handle this sort of thing, phkb? There is a system of insurance: every time you die you must pay a certain amount of money for the insurance (calculated on the ship base value + equipments). If you can't afford the insurance value, you are giving a Sidewinder, which is their default ship. So this means that if you want to fly something fancy you MUST make sure that you have enough money in the bank. Also, consecutive deaths will start causing you troubles, as every death will cost you money to keep the same ship.
Astrobe
---- E L I T E ----
---- E L I T E ----
Posts: 609
Joined: Sun Jul 21, 2013 12:26 pm

Re: (WIP) Ship Repurchase

Post by Astrobe »

I'd like to see two more options:

d) replacement by same ship without equipment, but second-hand (which means a higher renovation_multiplier). In this case the increase of renovation_multiplier could be cumulative in order to simulate the frequent ejection penalty. TBH I'm looking for ways to make the progression smoother by introducing second-hand, higher renovation costs ships. So if your stone can kill my bird too...

e) retrieve damaged ship without gild/plat/gems/parcels (looted by pirates and scavengers).

Also, I see the auto-eject feature as unnecessary if one considers the different play styles:
  • "Press Space Commander" (aka Commander SaveScum ;-) ): if you die you start again from your last save. This OXP won't be interesting to these players, unless they consider this OXP makes things more fair to play "auto-eject" style.
  • "Auto-eject" players: they don't want to play IronMan mode, but they accept the cost when they screw things up. However, they may chose to restart from a save when the auto-eject doesn't work (e.g. crashing on something). For them, including an auto-eject feature only let them remove AutoEject OXP.
  • "IronMan" mode players: if you don't hit the eject button and the ship explodes when you're in it, then you're dead as in "move the savefile to the trash bin". They may use auto-eject OXP (usually set on the lowest trigger) as an "insurance", but that's it. Including an auto-eject-almost-never-die feature gets in their way.

One thing that's weird in Oolite is how its insurance system works: it's a one-time cost (the escape pod - which only increase the overhaul cost by 10Cr). That's obviously not how insurances usually work (I hope Alex won't read this... :-D ). So maybe one could do this: the various options correspond to various insurance contracts; the contracts are implemented as a piece of equipment with a very high value, so that 1% of this value adds to the overhaul cost. It would simulate pretty well insurance fees in my opinion, because overhaul frequency increases with the frequency of jumps (roughly like kilometers for cars) and how often you take damage. Of course the best and most expensive contract would let the player choose from all options, while an eco contract would only leave you with option (e) (basically the insurance covers just the towing of the wreck).
User avatar
Norby
---- E L I T E ----
---- E L I T E ----
Posts: 2577
Joined: Mon May 20, 2013 9:53 pm
Location: Budapest, Hungary (Mainly Agricultural Democracy, TL10)
Contact:

Re: (WIP) Ship Repurchase

Post by Norby »

gsagostinho wrote: Fri Dec 01, 2017 11:31 am
hardcoding something like this would cause issues when using non-default ships.
I mean the cost levels of the mentioned ships which result this chain in the core game and similarly usable in the case of oxp shis. The first step is to determine if the lost player ship is a trader or hunter, I think the easy way is using the cargo capacity. For example over 70t use the trader line and give the next cheaper ship.
User avatar
gsagostinho
---- E L I T E ----
---- E L I T E ----
Posts: 573
Joined: Sun Jul 19, 2015 1:09 pm

Re: (WIP) Ship Repurchase

Post by gsagostinho »

Norby wrote:
I mean the cost levels of the mentioned ships which result this chain in the core game and similarly usable in the case of oxp shis. The first step is to determine if the lost player ship is a trader or hunter, I think the easy way is using the cargo capacity. For example over 70t use the trader line and give the next cheaper ship.
That's a great idea, I think.
User avatar
phkb
Impressively Grand Sub-Admiral
Impressively Grand Sub-Admiral
Posts: 4830
Joined: Tue Jan 21, 2014 10:37 pm
Location: Writing more OXPs, because the world needs more OXPs.

Re: (WIP) Ship Repurchase

Post by phkb »

gsagostinho wrote:
But is definitely for me! I love the idea
Excellent! Thank you!
Astrobe wrote:
which means a higher renovation_multiplier
renovation_mutliplier is read-only for the moment, so would need large shipdata/shipyard files to handle all the variations (not that I've ever backed away from creating large files, mind you!).
Astrobe wrote:
Also, I see the auto-eject feature as unnecessary if one considers the different play styles:
As I said, not for everyone!
Astrobe wrote:
they may chose to restart from a save when the auto-eject doesn't work (e.g. crashing on something).
The auto-eject in this OXP will work even when crashing into something. It's how I've been testing it, actually - launch from station, loop back and slam into side of station.
Astrobe wrote:
One thing that's weird in Oolite is how its insurance system works:
Well, it's not really insurance. The other threads I linked to also talk about having a regular payment.
Norby wrote:
The first step is to determine if the lost player ship is a trader or hunter, I think the easy way is using the cargo capacity. For example over 70t use the trader line and give the next cheaper ship.
Oolite has a lot of ships vying for the ultimate multi-role spot, many of which are above 70t (eg Imperial Courier, Python ET Special, even the Python Class Cruiser could fit in this slot), so the 70t sweet-spot might not be perfect, but it's probably the easiest to understand/implement. I had a look at using the player's roleWeights, but using my main save as an example didn't help much. I do a little opportunistic trading on the side, but operate mainly as a courier/bounty hunter. Yet I had just as many "trader" roles in my roleWeights list as courier/hunter.

What about offering two options, based on the player's current ship cost. Like this:

Code: Select all

    Current ship
    Base Value      Offer 1             Offer 2
    -------------   ------------------  ---------------
    650001+         Anaconda            Fer-de-Lance
    495001-650000   Boa Class Cruiser   Fer-de-Lance
    485001-495000   Boa                 Fer-de-Lance
    450001-485000   Boa                 Asp Mark II
    375001-450000   Python              Asp Mark II
    200001-375000   Python              Cobra Mark III
    150001-200000   Cobra Mark III
    145001-150000   Moray Medical Boat  Moray Star Boat
    125001-145000   Moray Star Boat
    100001-125000   Cobra Mark I
    0-100000        Adder
That way, it's left up to the player to decide what they are, trader or hunter. So, if their current ship is worth 500000cr when new, they would be offered a Boa CC or an FdL as the free replacement.

Thanks for the feedback and discussion, everyone. It's very helpful!
User avatar
Norby
---- E L I T E ----
---- E L I T E ----
Posts: 2577
Joined: Mon May 20, 2013 9:53 pm
Location: Budapest, Hungary (Mainly Agricultural Democracy, TL10)
Contact:

Re: (WIP) Ship Repurchase

Post by Norby »

phkb wrote: Sat Dec 02, 2017 2:36 am
What about offering two options, based on the player's current ship cost.
Sounds good!
User avatar
gsagostinho
---- E L I T E ----
---- E L I T E ----
Posts: 573
Joined: Sun Jul 19, 2015 1:09 pm

Re: (WIP) Ship Repurchase

Post by gsagostinho »

I just tried this OXP and it is really amazing, I really love it! The only tweak I would make on my own copy of this OXP (and this will certainly not be everyone's cup of tea) would be to force save the game immediately after the ship repurchase menu. This way one has to live with the consequences of every crash (that is if one is not save scumming, of course). Would that be possible and if so would it require too many modifications to the script, phkb?
User avatar
phkb
Impressively Grand Sub-Admiral
Impressively Grand Sub-Admiral
Posts: 4830
Joined: Tue Jan 21, 2014 10:37 pm
Location: Writing more OXPs, because the world needs more OXPs.

Re: (WIP) Ship Repurchase

Post by phkb »

gsahostinho wrote:
I just tried this OXP and it is really amazing, I really love it!
That's great! I'm so glad!
gsagostinho wrote:
to force save the game immediately after the ship repurchase menu
Unfortunately I'm not sure this is possible, because the save game function is not exposed JS (at least as far as I can tell).
User avatar
phkb
Impressively Grand Sub-Admiral
Impressively Grand Sub-Admiral
Posts: 4830
Joined: Tue Jan 21, 2014 10:37 pm
Location: Writing more OXPs, because the world needs more OXPs.

Re: (WIP) Ship Repurchase

Post by phkb »

Version 0.2 is now available. In this version:
  • Now considering player score when determining how far back to include ejecting events in the frequent ejecting penalty calculation.
  • Free ship offer can be one of 2 types: a trader ship, or a hunter/assassin ship.
  • Fixed issue where equipment items that can be multiple were not all being repaired after an eject event.
  • Enforced consistency with Cobra Mark III and Mark I base prices.
  • Fixed issue where interstellar space mode was being activated incorrectly.
User avatar
gsagostinho
---- E L I T E ----
---- E L I T E ----
Posts: 573
Joined: Sun Jul 19, 2015 1:09 pm

Re: (WIP) Ship Repurchase

Post by gsagostinho »

phkb wrote: Tue Dec 05, 2017 2:49 am
gsagostinho wrote:
to force save the game immediately after the ship repurchase menu
Unfortunately I'm not sure this is possible, because the save game function is not exposed JS (at least as far as I can tell).
That's really a pity. :(
User avatar
phkb
Impressively Grand Sub-Admiral
Impressively Grand Sub-Admiral
Posts: 4830
Joined: Tue Jan 21, 2014 10:37 pm
Location: Writing more OXPs, because the world needs more OXPs.

Re: (WIP) Ship Repurchase

Post by phkb »

Version 0.4 is now available. In this version:
  • Better integration with Ship Configuration OXP armour settings.
  • Better integration with Battle Damage OXP.
  • Code refactoring.
User avatar
phkb
Impressively Grand Sub-Admiral
Impressively Grand Sub-Admiral
Posts: 4830
Joined: Tue Jan 21, 2014 10:37 pm
Location: Writing more OXPs, because the world needs more OXPs.

Re: (WIP) Ship Repurchase

Post by phkb »

I've discovered a scenario where the auto-eject feature may not work. In short, if the player ship is about to die, and is then hit by multiple attacks, all of which would potentially kill the ship, the auto eject routine fires, but the escape pod appears to take the hit as well and the game over screen is shown.

I don't know if there is a fix for this, but I'm actually wondering if I even should. Should I leave the auto-eject facility as it is, with possibility of failure? Or should I pursue a solution to the problem? Let me know what you think?
User avatar
gsagostinho
---- E L I T E ----
---- E L I T E ----
Posts: 573
Joined: Sun Jul 19, 2015 1:09 pm

Re: (WIP) Ship Repurchase

Post by gsagostinho »

@phkb how likely is it for this scenario to happen? If it's very unlikely then I do like the idea of a possible failure.
Post Reply