Open main menu
Home
Random
Nearby
Log in
Settings
About Kancolle Wiki
Disclaimers
Kancolle Wiki
Search
Changes
← Older edit
Newer edit →
Module:Iterator
(view source)
Revision as of 23:10, 13 July 2019
958 bytes added
,
5 years ago
no edit summary
Line 34:
Line 34:
function numberKey(name, context, n, default)
function numberKey(name, context, n, default)
return context and tonumber(context[name .. (n and tostring(n) or '')]) or default
return context and tonumber(context[name .. (n and tostring(n) or '')]) or default
+
end
+
+
local function prefixEach(n)
+
return function(i)
+
return (i - 1) % n == 0 and string.format('!%d-%d', i, i + n)
+
end
+
end
+
+
-- * Ship iterators.
+
+
function Iterator.shipsByNo(context, n)
+
local collection = require('Module:Collection/ShipsByNo' .. (n == 2 and 2 or 1))
+
local i = 0
+
local current
+
local prefixFlag = true
+
return {
+
next = function()
+
i = i + 1
+
local e = collection[i]
+
if e then
+
local prefixValue = prefixEach(10)(i)
+
if prefixFlag and prefixValue then
+
i = i - 1
+
current = prefixValue
+
prefixFlag = false
+
else
+
current = e._name
+
prefixFlag = true
+
end
+
return true
+
end
+
return false
+
end,
+
current = function()
+
return current
+
end,
+
}
end
end
がか
cssedit, gkautomate
7,064
edits