summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWuzzy <almikes@aol.com>2016-08-17 11:51:52 +0200
committerWuzzy <almikes@aol.com>2016-08-17 11:51:52 +0200
commitc6383a6e66efe75ccb700b022cd6e8a6c1645d8e (patch)
tree4324ec8bb9bbc2f3a7e05de4834d46934f590c3f
parent4277106aed88400cb049a86718f5863859ecc228 (diff)
Fix drop probabilities for long subtables
-rw-r--r--init.lua38
1 files changed, 20 insertions, 18 deletions
diff --git a/init.lua b/init.lua
index fc45d7a..f1a5984 100644
--- a/init.lua
+++ b/init.lua
@@ -518,7 +518,16 @@ doc.new_category("nodes", {
local icount = 0
local remaining_rarity = 1
for i=1,#data.def.drop.items do
+ local rarity = data.def.drop.items[i].rarity
+ if rarity == nil then
+ if max ~= nil then
+ rarity = remaining_rarity
+ else
+ rarity = 1
+ end
+ end
for j=1,#data.def.drop.items[i].items do
+ local subrarity = rarity * (#data.def.drop.items[i].items)
if icount > 0 then
formstring = formstring .. ", "
end
@@ -530,25 +539,18 @@ doc.new_category("nodes", {
end
formstring = formstring .. desc
icount = icount + 1
- end
- local rarity = data.def.drop.items[i].rarity
- if rarity == nil then
- if max ~= nil then
- rarity = remaining_rarity
- else
- rarity = 1
- end
- end
- local chance = (1/rarity)*100
- if rarity > 200 then -- <0.5%
- -- For very low percentages
- formstring = formstring .. " (<0.5%)"
- else
- -- Add circa indicator for percentages with decimal point
+
+ local chance = (1/subrarity)*100
local ca = ""
- -- FIXME: Does this actually reliable?
- if math.fmod(chance, 1) > 0 then
- ca = "ca. "
+ if subrarity > 200 then -- <0.5%
+ -- For very low percentages
+ formstring = formstring .. " (<0.5%)"
+ else
+ -- Add circa indicator for percentages with decimal point
+ -- FIXME: Is this check actually reliable?
+ if math.fmod(chance, 1) > 0 then
+ ca = "ca. "
+ end
end
formstring = formstring .. string.format(" (%s%.0f%%)", ca, chance)
end