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

From Super Fantasy Kingdom Official Wiki
Revision as of 13:36, 11 November 2023 by wgg>Cadaei (args fix, curse index fix)

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}}
</table
C010
C19
C28
C36
C45
C54
-- 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 class="right">'..dayForCurse..'</td></tr>')
	end
	
	return '<table class=plaintable">'..table.concat(dayRows, '')..'</table'
end

return p