|
|
| (One intermediate revision by the same user not shown) |
| Line 1: |
Line 1: |
| local p = {}
| |
|
| |
|
| function p.getItemData(frame)
| |
| local itemName = frame.args[1] or mw.title.getCurrentTitle().text
| |
| local result = mw.ext.getDbData({
| |
| db = "WikiDB",
| |
| from = "Items",
| |
| where = "ItemName = ?",
| |
| values = {itemName},
| |
| data = {
| |
| dbItemRarityName = "ItemRarityName",
| |
| dbItemTypeName = "ItemTypeName",
| |
| dbDescr = "Descr",
| |
| dbSpriteURL = "SpriteURL",
| |
| dbIngredientTypeName = "IngredientTypeName",
| |
| dbMinPointsSell = "MinPointsSell",
| |
| dbHP = "HP",
| |
| dbHunger = "Hunger"
| |
| }
| |
| })
| |
|
| |
| if not result or #result == 0 then
| |
| return "No data found for " .. itemName
| |
| end
| |
|
| |
| local item = result[1]
| |
|
| |
| -- Set values to global frame storage so templates can access them
| |
| frame:extensionTag("var", {name = "dbItemRarityName", value = item.dbItemRarityName or ""})
| |
| frame:extensionTag("var", {name = "dbItemTypeName", value = item.dbItemTypeName or ""})
| |
| frame:extensionTag("var", {name = "dbDescr", value = item.dbDescr or ""})
| |
| frame:extensionTag("var", {name = "dbSpriteURL", value = item.dbSpriteURL or ""})
| |
| frame:extensionTag("var", {name = "dbIngredientTypeName", value = item.dbIngredientTypeName or ""})
| |
| frame:extensionTag("var", {name = "dbMinPointsSell", value = item.dbMinPointsSell or ""})
| |
| frame:extensionTag("var", {name = "dbHP", value = p.formatStat(item.dbHP)})
| |
| frame:extensionTag("var", {name = "dbHunger", value = p.formatStat(item.dbHunger, true)})
| |
|
| |
| return ""
| |
| end
| |
|
| |
| function p.formatStat(value, isPercentage)
| |
| if not value or tonumber(value) == 0 then
| |
| return isPercentage and "0%" or "0"
| |
| end
| |
| local num = tonumber(value)
| |
| if num > 0 then
| |
| return isPercentage and ("+" .. num .. "%") or ("+" .. num)
| |
| else
| |
| return isPercentage and (num .. "%") or tostring(num)
| |
| end
| |
| end
| |
|
| |
| return p
| |
Documentation for this module may be created at Module:Testing/doc