Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Proposal]: Option for reduced sale price for outfits/ships #2531

Open
1 task done
clintonmead opened this issue Jan 22, 2024 · 1 comment
Open
1 task done

[Proposal]: Option for reduced sale price for outfits/ships #2531

clintonmead opened this issue Jan 22, 2024 · 1 comment
Labels
Type-Enhancement Issue refers to a vector of improvement for Naev.

Comments

@clintonmead
Copy link
Contributor

clintonmead commented Jan 22, 2024

Suggestion

For new players, being able to sell outfits for the full buy price is nice as it allows them to experiment with ships/outfits they haven't tried before, but I would prefer to somewhat be forced to consider purchases more carefully.

Hence, the proposal is to have a difficulty setting where one can set the sale price between 0-100% for "used" outfits/ships.

There's three possible definitions of "used" here:

  1. Once an outfit is purchased it's immediately considered "used".
  2. Outfits/ships are "new" when purchased, but considered "used" once the player takes off. Also players can buy back "used" items at the "used" price, if they do so before taking off.
  3. Outfits/ships are "new" when purchased, but considered "used" once the player takes off with them equipped to the current ship. And similarly to above, players can buy back "used" items before they take off.

I tend to prefer option 3. Note in all cases items looted from other ships are "used" of course.

However, I suggest first implementing option 1 as a separate PR, because it's simpler, but still involve all of the GUI/settings etc work.

Approaches 2 and 3 are a bit trickier, but I think better, because then the player isn't punished for mucking around and trying some builds at a station. Without approaches 2 and 3 one is forcing players to save their game before mucking around with outfits, and then reloading, which is just annoying.

I'll describe an implementation to approach 3, but approach 2 is similar:

One needs to add an extra count (i.e. integer) to every inventory item, called "amount used". Every time the player takes off, for each outfit that is equipped, first work out the total amount of that outfit equipped (e.g. there could be three small cargo pods equipped). One then looks at the "amount used" value for "small cargo pods". If the amount used is currently less than three, we increase the amount used to three.

Now, for the rest of this discussion, define the "current inventory amount" as the total amount of a particular outfit a player owns, whether equipped or unequipped (i.e. if a player has two small cargo pods equipped and one spare in their inventory, we say their "current inventory amount" is three).

Then, whenever selling an outfit, if the current inventory amount is greater than the "amount used", the full price is returned for the item. But if the current inventory amount is equal to or less than the "amount used", then only the "sale" price is given for the outfit. But conversely, if a player buys an item when the "amount used" is GREATER than the current inventory stock, then the player can buy the item for the used price (effectively buying back the used item they just sold).

Finally, when taking off, check all the outfits in the players inventory, and if the "amount used" value is greater than their current total inventory, reduced the "amount used" to equal to the "total inventory".

Naturally, a similar thing needs to be done with ships. One could treat multiple ships of the same type like multiple outfits of the same type, but the other option is just to treat individual ships as completely unique entities, which is actually not unreasonable due to the presence of intrinsic outfits, which can make two of the same ship type actually different. Treating ships as unique entities also makes the logic for ships easier, just add a "is used" flag to them, and set it whenever a ship is launched.

The other thing to consider is how this option is implemented. It makes sense as a difficulty option, and I would suggest setting the sale price to 50% on the "Masochist" difficulty, but I think the sale price should remain at 100% (or perhaps something high, like 80%) on the normal difficulty. However I personally would like to play on normal difficulty but with the 50% sale price, so I wouldn't like this being the implementation.

So then the other option have this as a slider like "game speed", which used to be a difficulty option but now can be changed whenever the player chooses, even though it arguably affects difficulty. This will allow the sale price so be adjusted independently of other difficulty options, and during a run.

Although I think the ideal option would be be to have a "custom" difficulty option, which would allow the sale price to be set separately, as discussed in this feature request: #2532.

Note down the line there's also the potential to allow for reputation to affect sale price also, but that would need to be thought about.

Code of Conduct

  • I agree to follow this project's Code of Conduct
@bobbens
Copy link
Member

bobbens commented Feb 26, 2024

It could be interesting. Would be ideal to have it so that without the setting enabled (as in reduced sale price is disabled), nothing extra is shown to the player, and the game plays as is. When the player enables it, you would add some "sell price" fields to both outfits and ship menus (or just a message when selling explaining the price difference, which would probably be simpler). If you do want to track the used status, it can get a bit trickier if you want to show that to the player, but again, if it is just managed in a selling dialogue when trying to sell the outfit/ship, it would be easier. Said dialogue would not appear if the ship/outfit is not considered "used" such as when the feature is disabled.

I would understand buying it immediately and making it used would be the simplest, but for parity with how the outfit selling works (as in you can buy it back if you sell it wrongly on a planet that doesn't sell it), I would be partial to have a used when taking off system.

Another point is that it would be probably necessary to track this with the buy back system so that if you accidently sell an outfit at a reduced price, you can buy it back at the reduced price until you leave the spob.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Type-Enhancement Issue refers to a vector of improvement for Naev.
Projects
None yet
Development

No branches or pull requests

2 participants