Following on from the "buyout button" poll, and if Takkaria is willing, I am keen to fix the store-scumming problem now, rather than see a buyout button implemented and have the problem continue.
I think, from reading the thread, that everybody agrees that if a store is ever going to stock something, it should be available. The buyout campaigners want to do this by buyouts, and the anti-buyout crowd would prefer to see some other mechanism for setting the price of the desired item.
So there are two issues here: which items should be available (ever), and how should we determine their prices.
I'm happy to hear views on the former, but to be honest I have no real problems with the items which are currently stocked. The BM is obviously excluded from this entire discussion - it's up to Takkaria if he wants to remove it, but I'm not planning on touching it.
So we're left with discussing the prices. Each item has a base price, which (for consumables) is fixed in object.txt - I'm not planning to change these. The discussion needs to focus on how prices for consumables escalate when they're restocked.
My plan is to create a "market prices" array, so that the "current" store price of every consumable can be tracked separately from the base price. This means messing with savefiles, if Takkaria will allow that. (Another way to do it is to add a market price element to the object kind structure, but it amounts to the same thing.)
My assumption is that the price increase of each item will be roughly proportional to its base price. But some things are much more commonly required than others (I'm thinking ?phase and !CSW, not to mention ?WoR and ammo) - perhaps these should not escalate at all, like at the moment? Other things (like ?enchant) should definitely escalate - perhaps as much as 50% of the base value each time the stock runs out.
I don't want to track how many of each item have been purchased (means yet more savefile bloat), but we might need to tone down the randomness of amounts - currently you can find 1 !CSW or you can find 79. We might need to agree small variances around fixed figures, so that prices escalate after roughly constant purchase numbers. For things like ?phase this would be quite a large number (30? 50?) and for things like ?+dam it would be a lot smaller (5? 10?).
Sorry if that's a bit rambling, but keen to know if people would be interested in this, or if we'd rather carry on arguing about a buyout button.
EDIT: sorry, finished that in a bit of a hurry. I meant to say that the price increase should be random *up to* something like half base price, and also that there should be a possible random reduction to represent other sellers, new products etc. So the actual market price adjustment on restock should be something like:
market price = old price + randint1(base price * 2 / 3) - randint0(base price * 1 / 3)
.... that would give an average increment of 1/6 base, with the possibility of up to two thirds, or up to 1/3 reduction. That should prevent prices of desirable items spiralling out of control, but would need testing to ensure that it's not too generous for ?+dam etc.
Then of course one could add a small (one_in_(whatever)) chance that the price drops dramatically - maybe all the way back to base - some sort of 'price reset' mechanism. This may appease those who cling to the fact that buying out stores doesn't currently increase the actual item prices ...
I think, from reading the thread, that everybody agrees that if a store is ever going to stock something, it should be available. The buyout campaigners want to do this by buyouts, and the anti-buyout crowd would prefer to see some other mechanism for setting the price of the desired item.
So there are two issues here: which items should be available (ever), and how should we determine their prices.
I'm happy to hear views on the former, but to be honest I have no real problems with the items which are currently stocked. The BM is obviously excluded from this entire discussion - it's up to Takkaria if he wants to remove it, but I'm not planning on touching it.
So we're left with discussing the prices. Each item has a base price, which (for consumables) is fixed in object.txt - I'm not planning to change these. The discussion needs to focus on how prices for consumables escalate when they're restocked.
My plan is to create a "market prices" array, so that the "current" store price of every consumable can be tracked separately from the base price. This means messing with savefiles, if Takkaria will allow that. (Another way to do it is to add a market price element to the object kind structure, but it amounts to the same thing.)
My assumption is that the price increase of each item will be roughly proportional to its base price. But some things are much more commonly required than others (I'm thinking ?phase and !CSW, not to mention ?WoR and ammo) - perhaps these should not escalate at all, like at the moment? Other things (like ?enchant) should definitely escalate - perhaps as much as 50% of the base value each time the stock runs out.
I don't want to track how many of each item have been purchased (means yet more savefile bloat), but we might need to tone down the randomness of amounts - currently you can find 1 !CSW or you can find 79. We might need to agree small variances around fixed figures, so that prices escalate after roughly constant purchase numbers. For things like ?phase this would be quite a large number (30? 50?) and for things like ?+dam it would be a lot smaller (5? 10?).
Sorry if that's a bit rambling, but keen to know if people would be interested in this, or if we'd rather carry on arguing about a buyout button.
EDIT: sorry, finished that in a bit of a hurry. I meant to say that the price increase should be random *up to* something like half base price, and also that there should be a possible random reduction to represent other sellers, new products etc. So the actual market price adjustment on restock should be something like:
market price = old price + randint1(base price * 2 / 3) - randint0(base price * 1 / 3)
.... that would give an average increment of 1/6 base, with the possibility of up to two thirds, or up to 1/3 reduction. That should prevent prices of desirable items spiralling out of control, but would need testing to ensure that it's not too generous for ?+dam etc.
Then of course one could add a small (one_in_(whatever)) chance that the price drops dramatically - maybe all the way back to base - some sort of 'price reset' mechanism. This may appease those who cling to the fact that buying out stores doesn't currently increase the actual item prices ...
Comment