Module:Param Parse: Difference between revisions

2,793 bytes added ,  Tuesday at 19:49
m
Fix pcall
(parse.name_export_rarity_class)
m (Fix pcall)
(15 intermediate revisions by 6 users not shown)
Line 3:
--]=]
-- <nowiki>
require('strict')
local Infobox = require('Module:Infobox')
local currency = require('Module:Currency').parse
Line 34 ⟶ 35:
return nil
end
local num = parse.number(out)
if num == nil then
return nil
Line 110 ⟶ 111:
-- Premade Params --
--------------------
 
-- Standardized actions function
parse.actions = {
name = 'actions',
func = parse.has_content,
}
 
-- Standardized name function
Line 127 ⟶ 134:
return nil
end
parse.name_export_rarity_classrarity_from_name = {
name = 'name_rarityrarity_from_name',
func = {name = parse.get_rarity_func, params = {Infobox.raw_param('name')}}
}
 
-- Standardized examine function
-- Standardized description function
parse.examine = {
function parse.description_func(description, examine)
name = 'examine',
if not description and examine then
func = parse.has_content,
description = examine
smw_property = 'Examine',
end
category_incomplete = 'Needs examine',
return parse.has_content(description)
end
parse.description = {
name = 'description',
func = {name = parse.description_func, params = {Infobox.raw_param('description'), Infobox.raw_param('examine')}},
smw_property = 'Description',
category_incomplete = 'Needs description',
}
 
Line 265 ⟶ 279:
 
-- Release
local function unix_time(date)
-- Convert a time to unix time
if date == nil then
Line 305 ⟶ 319:
-- Value
function parse.value_func(val)
local status, val = pcall(currency, val)
return currency(val)
if status then
return val
end
end
parse.value = {
Line 463 ⟶ 480:
smw_func = parse.difficulty_smw,
category_incomplete = 'Needs difficulty'
}
 
local valid_quest_types = {
['main'] = 'Main',
['side'] = 'Side'
}
function parse.quest_type_func(type)
local valid_type = valid_quest_types[string.lower(type or '')]
if valid_type then
return valid_type
else
return 'None'
end
return nil
end
function parse.quest_type_smw(type)
local valid_type = valid_quest_types[string.lower(type or '')]
if valid_type then
return valid_type
end
return nil
end
 
-- Quest type
parse.quest_type = {
name = 'quest_type',
func = parse.quest_type_func,
smw_property = 'quest_type',
smw_func = parse.quest_type_smw,
category_incomplete = 'Needs quest_type'
}
 
Line 485 ⟶ 532:
local level_valid = parse.number(level)
local profession_valid = parse.has_content(profession)
local profession_valid_link = profession_valid
if not profession_valid and not level_valid then
Line 501 ⟶ 549:
end
return '[[File:'..profession_valid..'_icon.png|link='..profession_validprofession_valid_link..'|width=18x18]] '..level_valid
end
 
Line 516 ⟶ 564:
end
return profession_valid..','..level_valid
end
 
Line 522 ⟶ 570:
name = 'unlock_level',
func = {name = parse.unlock_level_func, params = {Infobox.raw_param('profession_a'), Infobox.raw_param('unlock_level')}},
smw_property = 'UnlockedUnlock atlevel',
smw_func = {name = parse.unlock_level_smw, params = {Infobox.raw_param('profession_a'), Infobox.raw_param('unlock_level')}},
category_incomplete = 'Needs unlock level',
}
 
Line 530 ⟶ 579:
name = 'knowledge',
func = parse.number,
smw_property = 'Knowledge',
category_incomplete = 'Needs knowledge',
}
 
parse.health = {
name = 'health',
func = parse.number,
smw_property = 'Health',
category_incomplete = 'Needs health',
}
 
parse.experience = {
name = 'experience',
func = parse.number,
smw_property = 'Experience',
category_incomplete = 'Needs experience',
}
 
local valid_attack_styles = {
['none'] = 'None',
['impact'] = 'Impact',
['cryonae'] = 'Cryonae',
['arborae'] = 'Arborae',
['tempestae'] = 'Tempestae',
['infernae'] = 'Infernae',
['necromae'] = 'Necromae',
}
 
local function attack_style_func(style)
local attack_style = valid_attack_styles[string.lower(style or '')]
if attack_style then
if attack_style == 'None' then
return 'None'
else
return string.format('[[File:%s damage icon.png|18px|link=%s]] [[%s]]', attack_style, attack_style, attack_style)
end
end
return nil
end
 
local function attack_style_smw(style)
local attack_style = valid_attack_styles[string.lower(style or '')]
if attack_style then
return attack_style
else
return nil
end
end
 
parse.attack_style = {
name = 'attack_style',
func = attack_style_func,
smw_property = 'Attack style',
smw_func = attack_style_smw,
category_incomplete = 'Needs attack style',
}
 
parse.immune_to = {
name = 'immune_to',
func = attack_style_func,
smw_property = 'Immune to',
smw_func = attack_style_smw,
category_incomplete = 'Needs immune to',
}
 
parse.vulnerable_to = {
name = 'vulnerable_to',
func = attack_style_func,
smw_property = 'Vulnerable to',
smw_func = attack_style_smw,
category_incomplete = 'Needs vulnerable to',
}
 
227

edits