1
0
mirror of https://github.com/MinetestForFun/minercantile.git synced 2024-12-23 00:00:21 +01:00

Replacing the way to calculate the prices.

The new formula is simpler, so easier to calculate, and gives better results at extremely high or low stocks values.
I keep as commentary the old formula just in case, it was a pain to write it ;)
1000000 is now a good money value at the very beggining of the shop.
This commit is contained in:
Cyberpangolin 2016-06-14 10:23:12 +02:00 committed by GitHub
parent 9ead7cc839
commit 53f48691b3

View File

@ -211,7 +211,7 @@ function minercantile.shop.get_buy_price(itname)
if minercantile.stock.items[itname].price ~= nil then -- if defined price
price = math.ceil(minercantile.stock.items[itname].price)
else
price = math.ceil((money/1000)/(math.log(nb+2000-99)*10)*1000000/(math.pow((nb+2000-99),(2.01))))
price = math.ceil((money/1000)/((0.001*(2340+nb)-0.1)^3.9)/10) -- was price = math.ceil((money/1000)/(math.log(nb+2000-99)*10)*1000000/(math.pow((nb+2000-99),(2.01))))
end
if price and price < 1 then price = 1 end
return price
@ -231,7 +231,7 @@ function minercantile.shop.get_sell_price(itname, wear)
if minercantile.stock.items[itname].price ~= nil then -- if defined price
price = math.floor(minercantile.stock.items[itname].price)
else
price = math.floor(((money/1000)/(math.log(nb+2000+99)*10)*1000000/(math.pow((nb+2000+99),(2.01))))+0.5)
price = math.floor((money/1000)/((0.001*(2340+nb)+0.1)^3.9)/10) --was price = math.floor(((money/1000)/(math.log(nb+2000+99)*10)*1000000/(math.pow((nb+2000+99),(2.01))))+0.5)
end
if wear and wear > 0 then --calcul price with % wear, (0-65535)