Improved Trade Price negotiation helps buying only. It hurts selling prices

Started by Klaatu, February 03, 2017, 09:55:44 AM

Previous topic - Next topic

Klaatu



As seen in the imgur album here http://imgur.com/a/EKK44, improved trade price negotiation reduces prices for items across the board, but that devalues your selling price as well.

So you want to make two trades. You want to sell items at high prices with your worst negotiator, and then buy cheap with your best ones in two trades.

TL:DR Sell high with crappy trade price negotiators, buy low good trade price negotiators

Bozobub

Thanks, belgord!

PotatoeTater

I think it might be one of the mods you have running. I tested this in vanilla and it increased in price not decreased.
Life is Strange

Zhentar

if (pricePlayerSell >= pricePlayerBuy)
{
Log.ErrorOnce("Trying to put player-sells price above player-buys price for " + AnyThing, 65387);
pricePlayerSell = pricePlayerBuy;
}


The absurd bonus you've given yourself makes goods practically free to buy. The game won't let you sell for more than you can buy (for obvious reasons), so it also drops your sale price to practically free.

GiantSpaceHamster

While not technically a bug, it does seem like a poor solution. The business logic based on vanilla stats should not allow selling for more than you can buy if that is the intent in vanilla, without an arbitrary check and cap. That way mods could allow selling for profit if they want without having to detour.

zeidrich

Quote from: GiantSpaceHamster on February 03, 2017, 01:11:46 PM
While not technically a bug, it does seem like a poor solution. The business logic based on vanilla stats should not allow selling for more than you can buy if that is the intent in vanilla, without an arbitrary check and cap. That way mods could allow selling for profit if they want without having to detour.

It's not so much "business logic" just a sanity check.  When you are able to sell a good to a trader, you may buy goods from the trader too.  So if you sell them a component for 40, close the window and buy it for 1, nothing stops you from selling it again for 40, buying it for 1 again, and so on.  It means that you can essentially buy out every item from every trader as long as you're willing to make the clicks by trading, accepting, trading again. 

It's quite a reasonable thing to want to prevent, and I think it actually helps with mods that affect stats because it doesn't cause a surprise edge case to completely break trading.  What is the point of trade related stats anyways if you immediately have infinite money?

Is there a better way to correct it? I don't know.  You could set pricePlayerBuy = pricePlayerSell instead, but then prices get higher as your skill gets better.  Maybe even better is pricePlayerBuy = pricePlayerSell = (originalBuyPrice + originalSellPrice)/2 which if buy and sell price diverge at the same rate will mean that you'll just stop getting any benefit once buy and sell price meet.

GiantSpaceHamster

Quote from: zeidrich on February 03, 2017, 03:39:39 PM
Quote from: GiantSpaceHamster on February 03, 2017, 01:11:46 PM
While not technically a bug, it does seem like a poor solution. The business logic based on vanilla stats should not allow selling for more than you can buy if that is the intent in vanilla, without an arbitrary check and cap. That way mods could allow selling for profit if they want without having to detour.

It's not so much "business logic" just a sanity check.  When you are able to sell a good to a trader, you may buy goods from the trader too.  So if you sell them a component for 40, close the window and buy it for 1, nothing stops you from selling it again for 40, buying it for 1 again, and so on.  It means that you can essentially buy out every item from every trader as long as you're willing to make the clicks by trading, accepting, trading again. 

It's quite a reasonable thing to want to prevent, and I think it actually helps with mods that affect stats because it doesn't cause a surprise edge case to completely break trading.  What is the point of trade related stats anyways if you immediately have infinite money?

Is there a better way to correct it? I don't know.  You could set pricePlayerBuy = pricePlayerSell instead, but then prices get higher as your skill gets better.  Maybe even better is pricePlayerBuy = pricePlayerSell = (originalBuyPrice + originalSellPrice)/2 which if buy and sell price diverge at the same rate will mean that you'll just stop getting any benefit once buy and sell price meet.

You're just pointing out further weaknesses with the current system as an argument for keeping it. What's to stop that situation? Well, the vanilla stats primarily. If a modder wants to be able to make a profit off sales why should an arbitrary "sanity check" prevent that? In such a case it becomes effectively an "insanity check", since it causes hard to identify problems just like the one that started this thread.

It would make more sense to disallow rebuying for starters. Whether or not a trader is willing to buy something, and for what price, could also be impacted by their current inventory. Just a couple ways the system might be improved without the need for an arbitrary "sanity check".

Bozobub

As mentioned above, simply not allowing repurchase of sold items by any trader immediately solves the problem.
Thanks, belgord!