Please note that some information on this wiki is still based on the demo version.
If you notice any errors, feel free to correct them.

Module:MonsterOnDay: Difference between revisions

From Super Fantasy Kingdom Official Wiki
wgg>Cadaei
Created page with "-- calculates on which days a monster appears first -- when the monster appearing rank is given (the day on the first appearance on curse 0 ignoring offsets by bosses) -- depending on -- on the curse level and -- the fixed boss days -- e.g. when a monster on curse 0 appears first on day 1 the rank is 1 -- e.g. when a monster on curse 0 appears first on day 8 the rank is 7 because the boss on day 7 is fixed without rank local p = {} function p.calculate(f) local rank =..."
 
wgg>Cadaei
args handling
Line 10: Line 10:


function p.calculate(f)
function p.calculate(f)
local rank = tonumber(f:getParent().args['1'])
local args = f:getParent().args
local rank = tonumber(args['1'])
if rank == nil then
if rank == nil then
return (f:getParent().args['1'] or 'nil') .. 'is not a valid number for a appearance rank'
return (args['1'] or 'nil') .. ' is not a valid number for a appearance rank'
end
end

Revision as of 13:30, 11 November 2023

Calculates on which days a monster appears first when the monster appearing rank is given (the day on the first appearance on curse 0 ignoring offsets by bosses) depending on on the curse level and the fixed boss days.

  • When a monster on curse 0 appears first on day 1 the rank is 1
  • When a monster on curse 0 appears first on day 8 the rank is 7 because the boss on day 7 is fixed without rank
{{MonsterOnDay|9}}

Lua error at line 32: attempt to call global 'table' (a table value).


-- calculates on which days a monster appears first
-- when the monster appearing rank is given (the day on the first appearance on curse 0 ignoring offsets by bosses)
-- depending on
-- on the curse level and
-- the fixed boss days
-- e.g. when a monster on curse 0 appears first on day 1 the rank is 1
-- e.g. when a monster on curse 0 appears first on day 8 the rank is 7 because the boss on day 7 is fixed without rank

local p = {}

function p.calculate(f)
	local args = f:getParent().args
	local rank = tonumber(args['1'])
	if rank == nil then
		return (args['1'] or 'nil') .. ' is not a valid number for a appearance rank'
	end
	
	local displayDaysForCurse = {0, 1, 2, 3, 4, 5}
	
	local dayRows = {}
	
	for curse,_ in ipairs(displayDaysForCurse) do
		local dayForCurse = rank - curse
		-- bosses appear on day 7 and 14, the monster day then is one day later
		if dayForCurse >= 7 then dayForCurse = dayForCurse + 1 end
		if dayForCurse >= 14 then dayForCurse = dayForCurse + 1 end
		if dayForCurse < 1 then dayForCurse = '-' end
		
		table.insert(dayRows, '<tr><td>[[File:Curse.png|16x16px|link=Curse]] [[Curse|C'..curse..']]</td><td>'..dayForCurse..'</td></tr>')
	end
	
	return '<table class=plaintable">'..table(concat, '')..'</table'
end

return p