Terraria Wiki
无编辑摘要
(清空页面)
标签清空
(未显示同一用户的36个中间版本)
第1行: 第1行:
<includeonly><!--
 
 
//localization info in [[template:item_infobox/l10n]].(autoload)
 
 
//ext l10n info: how to get english item name from {{BASEPAGENAME}}?
 
-->{{#vardefine:itemnamefrompagename|{{pagename2en|{{#titleparts:{{ROOTPAGENAME}}}}}}}}<!--
 
 
=== l10n end ==========================================================================================================
 
 
//view related options
 
-->{{#vardefine:viewname|{{lc:{{{mode|{{{output|{{{view|{{#var:_item_infobox_flag_view|infobox}}}}}}}}}}}}}}}<!--
 
-->{{#switch:{{#var:viewname}}<!--
 
-->|infobox=<!--
 
-->{{#lstmap:<!--
 
-->float/css/style/boxwidth/imagebreak/showids/idshow/idbuffshow/idtileshow/projectileblock/projectilename/projectileimage/showenglishname/{{{extargs|{{item infobox/options|get|extargs}}}}}<!--
 
-->|/|@@@@|<esc>{{#vardefine:ii:ext:@@@@|{{{@@@@|}}}}}</esc>|}}<!-- ext parameters for view
 
-->|table=<!--
 
-->{{#lstmap:<!--
 
-->cols/{{{extargs|{{item infobox/options|get|extargs}}}}}<!--
 
-->|/|@@@@|<esc>{{#vardefine:ii:ext:@@@@|{{{@@@@|}}}}}</esc>|}}<!-- ext parameters for view
 
//pass all custom col values.
 
-->{{#lstmap:<!--
 
-->{{#var:ii:ext:cols|{{#var:_item_infobox_flag_cols}}}}<!--
 
-->|{{#or:{{item infobox/options|get|colsep}}|/}}|@@@@|<esc>{{#if:{{#rmatch:@@@@|^col:|{{#vardefine:ii:@@@@|{{{@@@@|}}}}}}}}}</esc>|}}<!--
 
-->|custom=<!--
 
-->{{#lstmap:<!--
 
-->template/{{{extargs|{{item infobox/options|get|extargs}}}}}<!--
 
-->|/|@@@@|<esc>{{#vardefine:ii:ext:@@@@|{{{@@@@|}}}}}</esc>|}}<!-- ext parameters for view
 
-->|item=<!--
 
-->{{#lstmap:<!--
 
-->mode/nolink/link/wrap/note/note2/showid/class/css/t/{{{extargs|{{item infobox/options|get|extargs}}}}}<!--
 
-->|/|@@@@|<esc>{{#vardefine:ii:ext:@@@@|{{{@@@@|}}}}}</esc>|}}<!-- ext parameters for view
 
-->|#default=<!--
 
-->{{#lstmap:<!--
 
-->{{{extargs|{{item infobox/options|get|extargs}}}}}<!--
 
-->|/|@@@@|<esc>{{#vardefine:ii:ext:@@@@|{{{@@@@|}}}}}</esc>|}}<!-- ext parameters for view
 
-->}}<!--
 
-->{{#vardefine:imagemode|{{{imagemode|{{#ifeq:{{#var:viewname}}|infobox|full|{{item infobox/options|get|imagemode}}}}}}}}}<!-- image mode
 
 
======== DATA MODEL ========
 
note: #lst** will ignore empty list items.
 
 
//types: "/" seperated.
 
-->{{#vardefine:ii:types|{{{type|}}}/{{{type2}}}}}<!--
 
//listcats:"/" seperated.
 
-->{{#vardefine:ii:listcats|{{{listcat|}}}/{{{listcat2}}}/{{{listcat3}}}/{{{listcat4}}}/{{{listcat5}}}}}<!--
 
//tags:"/" seperated.
 
-->{{#vardefine:ii:tags|{{{tags|{{{tag|}}}}}}}}<!--
 
 
//check for special tags:
 
* xxx -> xxx items
 
-->{{#lstjoin:{{#var:ii:listcats}}|/|{{#lstmap:{{#lstfltr:drop/loot/plunder/fished/unobtainable/developer/furniture/storage/informational/light source/novelty/mechanism/bag loot|/|{{#var:ii:tags}}|/|/}}|/|@@@|@@@ items|/}}|/|/}}<!--
 
* xxx -> xxx
 
-->{{#lstjoin:{{#var:ii:listcats}}|/|{{#lstfltr:potion ingredients/quest rewards|/|{{#var:ii:tags}}|/|/}}|/|/}}<!--
 
* special mapping
 
-->{{#if:{{#lstind:bagloot|{{#var:ii:tags}}|/}}|{{#lstapp:{{#var:ii:listcats}}|/|bag loot items}}}}<!--
 
-->{{#if:{{#lstind:treasure bag loot|{{#var:ii:tags}}|/}}|{{#lstapp:{{#var:ii:listcats}}|/|Treasure Bag loot items}}}}<!--
 
 
//check for special listcats:
 
Broadswords/Shortswords: add swords
 
-->{{#if:{{#lstfltr:broadswords/shortswords|/|{{#var:ii:listcats}}|/}}|{{#lstapp:{{#var:ii:listcats}}|/|swords}}}}<!--
 
Explosives: add weapon to types.
 
-->{{#if:{{#lstind:explosives|{{#var:ii:listcats}}|/}}|{{#lstapp:{{#var:ii:types}}|/|weapon}}}}<!--
 
 
summon weapons:
 
-->{{#if:{{#lstind:set|{{#var:ii:types}}|/}}||<!-- exclude armor sets
 
-->{{#lstjoin:{{#var:ii:listcats}}|/|{{#lstmap:{{#lstfltr:minion/sentry|/|{{#var:ii:tags}}|/|/}}|/|@@@|@@@ summon items|/}}|/|/}}<!--
 
-->{{#lstapp:{{#var:ii:types}}|/|weapon}}<!--
 
-->}}<!--
 
 
////////// auto info as base ////////////////
 
-->{{#invoke:Iteminfo|getInfo|prefix=ii:info:|id={{#if:{{{auto|}}}|<!--
 
-->{{#iferror:{{#expr:1+{{{auto|}}}}}|<!-- if not is_number($auto)
 
-->{{#or:{{{id|{{ItemIdFromName|{{{name|{{#var:itemnamefrompagename}}}}}}}}}}|0}}<!-- $id -> idFromName -> 0
 
-->|<!--
 
-->{{{auto|}}}<!-- //$auto is number.
 
-->}}<!--
 
-->|<!--
 
-->0<!-- not auto: 0;
 
-->}}}}<!-- fetch data or reset those data filed vars.
 
 
////////// post process, manually override, and save into "standard" vars
 
-->{{#vardefine:ii:id|{{{id|{{#ifexpr:{{#dplvar:ii:info:type}}|{{#dplvar:ii:info:type}}}}}}}}}<!--
 
-->{{#vardefine:ii:name|{{{name|{{#or:{{#dplvar:ii:info:name}}|{{#var:itemnamefrompagename}}}}}}}}}<!--
 
-->{{#vardefine:ii:namesub|{{{namesub|}}}}}<!--
 
-->{{#vardefine:ii:lname|{{{lname|{{tr|{{#var:ii:name|}}}}}}}}}<!--
 
-->{{#vardefine:ii:internalName|{{#dplvar:ii:info:internalName}}}}<!--
 
-->{{#vardefine:ii:autoswing|{{{autoswing|{{#dplvar:ii:info:autoReuse}}}}}}}<!--
 
-->{{#vardefine:ii:stack|<!--
 
-->{{#if:{{{stack|}}}<!--
 
-->|{{#rreplace:{{{stack|}}}|@@@@|{{#dplvar:ii:info:maxStack}}}}<!--
 
-->|{{#dplvar:ii:info:maxStack}}<!--
 
-->}}<!--
 
-->}}<!--
 
-->{{#vardefine:ii:hammer|<!--
 
-->{{#if:{{{hammer|}}}<!--
 
-->|{{#rreplace:{{{hammer|}}}|@@@@|{{#dplvar:ii:info:hammer}}%}}<!--
 
-->|{{#ifexpr:{{#dplvar:ii:info:hammer}}|{{#dplvar:ii:info:hammer}}%}}<!--
 
-->}}<!--
 
-->}}<!--
 
-->{{#vardefine:ii:pick|<!--
 
-->{{#if:{{{pick|}}}<!--
 
-->|{{#rreplace:{{{pick|}}}|@@@@|{{#dplvar:ii:info:pick}}%}}<!--
 
-->|{{#ifexpr:{{#dplvar:ii:info:pick}}|{{#dplvar:ii:info:pick}}%}}<!--
 
-->}}<!--
 
-->}}<!--
 
-->{{#vardefine:ii:axe|<!--
 
-->{{#if:{{{axe|}}}<!--
 
-->|{{#rreplace:{{{axe|}}}|@@@@|{{#expr:{{#dplvar:ii:info:axe}}*5}}%}}<!--
 
-->|{{#ifexpr:{{#dplvar:ii:info:axe}}|{{#expr:{{#dplvar:ii:info:axe}}*5}}%}}<!--
 
-->}}<!--
 
-->}}<!--
 
add "tool" to types, and try to detect chainsaws/drills/hamaxes...
 
-->{{#ifexpr:{{#dplvar:ii:info:axe}}{{#dplvar:ii:info:hammer}}{{#dplvar:ii:info:pick}}|<!-- 000 -> false
 
-->{{#lstapp:{{#var:ii:types}}|tool}}<!--
 
//hammer & hamaxe
 
-->{{#ifexpr:{{#dplvar:ii:info:hammer}}|<!--
 
-->{{#ifexpr:{{#dplvar:ii:info:axe}}<!--
 
-->|{{#lstapp:{{#var:ii:listcats}}|hamaxes}}<!--
 
-->|{{#lstapp:{{#var:ii:listcats}}|hammers}}<!--
 
-->}}<!--
 
-->}}<!--
 
//axe and chainsaws
 
-->{{#ifexpr:{{#dplvar:ii:info:axe}}|<!--
 
-->{{#ifexpr:{{#dplvar:ii:info:hammer}}||<!-- exclude hamaxe
 
-->{{#ifexpr:{{#dplvar:ii:info:shoot}}<!--
 
-->|{{#lstapp:{{#var:ii:listcats}}|chainsaws}}<!--
 
-->|{{#lstapp:{{#var:ii:listcats}}|axes}}<!--
 
-->}}<!--
 
-->}}<!--
 
-->}}<!--
 
//pickaxe and drills
 
-->{{#ifexpr:{{#dplvar:ii:info:pick}}|<!--
 
-->{{#ifexpr:{{#dplvar:ii:info:shoot}}<!--
 
-->|{{#lstapp:{{#var:ii:listcats}}|drills}}<!--
 
-->|{{#lstapp:{{#var:ii:listcats}}|pickaxes}}<!--
 
-->}}<!--
 
-->}}<!--
 
-->}}<!--
 
-->{{#vardefine:ii:ammo|{{#dplvar:ii:info:ammo}}}}<!--
 
-->{{#ifexpr:{{#var:ii:ammo}}|<!-- Ammo type/cate
 
//add "Ammunition" to type.
 
-->{{#lstapp:{{#var:ii:types}}|/|ammunition}}<!--
 
//add ammo type to listcat: (by AmmoID )
 
-->{{#lstapp:{{#var:ii:listcats}}|/|{{#switch:{{#var:ii:ammo}}<!--
 
-->|40=arrows<!--
 
-->|71=coins<!--
 
-->|97=bullets<!--
 
-->|169=sands<!--
 
-->|283=darts<!--
 
-->|771=rockets<!--
 
-->|780=solutions<!--
 
-->|931=flares<!--
 
-->}}}}<!--
 
-->}}<!--
 
// use ammo type
 
-->{{#vardefine:ii:useammo|{{#switch:{{#dplvar:ii:info:useAmmo}}<!--
 
-->|23=gel<!--
 
-->|40=arrows<!--
 
-->|71=coins<!--
 
-->|75=fallenStar<!--
 
-->|97=bullets<!--
 
-->|169=sands<!--
 
-->|283=darts<!--
 
-->|353=ale<!--
 
-->|771=rockets<!--
 
-->|780=solutions<!--
 
-->|931=flares<!--
 
-->|949=snowball<!--
 
-->|1261=styngerBolt<!--
 
-->|1783=candyCorn<!--
 
-->|1785=jackOLantern<!--
 
-->|1836=stake<!--
 
-->|3108=nailFriendly<!--
 
-->}}}}<!--
 
-->{{#vardefine:ii:fishing|{{{fishing|{{#dplvar:ii:info:fishingPole}}}}}}}<!--
 
-->{{#vardefine:ii:bait|{{{bait|{{#dplvar:ii:info:bait}}}}}}}<!--
 
-->{{#ifexpr:{{#or:{{#dplvar:ii:info:bait}}|0}}|<!-- bait?
 
-->{{#lstapp:{{#var:ii:types}}|/|bait}}<!--
 
-->}}<!--
 
-->{{#vardefine:ii:damage|<!--
 
-->{{#if:{{{damage|}}}<!--
 
-->|{{#rreplace:{{{damage|}}}|@@@@|{{#dplvar:ii:info:damage}}}}<!--
 
-->|{{#ifexpr:({{#dplvar:ii:info:damage}}>0) or {{#lstind:weapon|{{#var:ii:types}}|/}}|{{#dplvar:ii:info:damage}}}}<!--
 
-->}}<!--
 
-->}}<!--
 
//if damage>0 then use, and always use damage for all weapons
 
-->{{#vardefine:ii:damagetype|{{#if:{{#var:ii:damage}}|{{#switch:1<!--
 
-->|{{#dplvar:ii:info:melee}}=Melee<!--
 
-->|{{#dplvar:ii:info:ranged}}=Ranged<!--
 
-->|{{#dplvar:ii:info:magic}}=Magic<!--
 
-->|{{#dplvar:ii:info:summon}}=Summon<!--
 
-->|{{#dplvar:ii:info:thrown}}=Throwing<!--
 
-->}}}}}}<!--
 
//other items with damage
 
-->{{#ifexpr:{{#dplvar:ii:info:damage}}>0|<!--
 
-->{{#if:{{#lstind:tool|{{#var:ii:types}}|/}}|<!--
 
-->{{#lstapp:{{#var:ii:listcats}}|/|weapon items}}<!-- tool with damage need "weapon items" in listcat
 
-->|<!-- else
 
-->{{#if:{{#lstind:ammunition|{{#var:ii:types}}|/}}||<!-- is not ammo
 
-->{{#if:{{#dplvar:ii:info:accessory}}||<!-- and is not accessory
 
-->{{#lstapp:{{#var:ii:types}}|/|weapon}}<!-- added "weapon" to types
 
-->}}<!--
 
-->}}<!--
 
-->}}<!--
 
-->}}<!--
 
// add "<auto damagetype> weapons" to listcat.
 
-->{{#if:{{#var:ii:damagetype}}|<!--
 
-->{{#if:{{#lstind:weapon|{{#var:ii:types}}|<!--
 
-->{{#lstapp:{{#var:ii:types}}|/|{{#var:ii:damagetype}}}}<!--
 
-->}}<!--
 
-->}}<!--
 
// NOTE: for all non-auto damage type(input by |damagetype=) including pre-1.4 throwing weapons, you should manually add 'throwing weapons' to their listcats.
 
// manually override:
 
-->{{#vardefine:ii:damagetype|<!--
 
-->{{#if:{{{damagetype|}}}<!--
 
-->|{{#rreplace:{{{damagetype|}}}|@@@@|{{#var:ii:damagetype}}}}<!--
 
-->|{{#var:ii:damagetype}}<!--
 
-->}}<!--
 
-->}}<!--
 
// research required
 
-->{{#vardefine:ii:sacrifices|{{#ifexpr:{{#dplvar:ii:info:sacrifices}}>0|{{#dplvar:ii:info:sacrifices}}}}}}<!--
 
 
 
 
============== @doing ====================
 
 
 
//reset all fields. So they won't go wrong with multiple item infoboxes.
 
 
-->{{#vardefine:ii:DD2Summon|}}<!--
 
-->{{#vardefine:ii:knockback|}}<!--
 
-->{{#vardefine:ii:defense|}}<!--
 
-->{{#vardefine:ii:tileboost|}}<!--
 
-->{{#vardefine:ii:mana|}}<!--
 
-->{{#vardefine:ii:mheal|}}<!--
 
-->{{#vardefine:ii:hheal|}}<!--
 
-->{{#vardefine:ii:critical|}}<!--
 
-->{{#vardefine:ii:use|}}<!--
 
-->{{#vardefine:ii:velocity|}}<!--
 
-->{{#vardefine:ii:rawVelocity|}}<!--
 
-->{{#vardefine:ii:velocityMultiplier|}}<!--
 
-->{{#vardefine:ii:toolspeed|}}<!--
 
-->{{#vardefine:ii:idbuff|}}<!--
 
-->{{#vardefine:ii:buff|}}<!--
 
-->{{#vardefine:ii:bufftype|}}<!--
 
-->{{#vardefine:ii:mobilebuff|}}<!-- if buff is mobile only
 
-->{{#vardefine:ii:buffduration|}}<!-- in seconds.
 
-->{{#vardefine:ii:bufflink|}}<!--
 
-->{{#vardefine:ii:bufftip|}}<!--
 
-->{{#vardefine:ii:buffchance|}}<!--
 
-->{{#vardefine:ii:debuffchance|}}<!--
 
-->{{#vardefine:ii:rare|}}<!--
 
-->{{#vardefine:ii:value|}}<!--in cc.
 
-->{{#vardefine:ii:sell|}}<!--divide by 5, round down, in cc.
 
-->{{#vardefine:ii:buy|}}<!--
 
-->{{#vardefine:ii:shopCustomPrice|}}<!--
 
-->{{#vardefine:ii:idtile|}}<!--
 
-->{{#vardefine:ii:idtilesub|}}<!--
 
-->{{#vardefine:ii:idwall|}}<!--
 
-->{{#vardefine:ii:idarmor|}}<!--
 
-->{{#vardefine:ii:idmount|}}<!--
 
-->{{#vardefine:ii:idprojectile|}}<!--
 
-->{{#vardefine:ii:consumable|}}<!--
 
-->{{#vardefine:ii:tooltip|}}<!--
 
 
-->{{#vardefine:ii:pickreq|}}<!--
 
-->{{#vardefine:ii:hammerreq|}}<!--
 
-->{{#vardefine:ii:placeable|}}<!--
 
-->{{#vardefine:ii:width|}}<!--
 
-->{{#vardefine:ii:height|}}<!--
 
-->{{#vardefine:ii:bodyslot|}}<!--
 
-->{{#vardefine:ii:bonus|}}<!--
 
-->{{#vardefine:ii:setbonus|}}<!--
 
-->{{#vardefine:ii:hardmodeonly|}}<!--
 
-->{{#vardefine:ii:allversions|}}<!--
 
-->{{#vardefine:ii:material|}}<!--
 
-->{{#vardefine:ii:craftable|}}<!--
 
 
-->{{#arraydefine:ii:sounds|}}<!--
 
//images:
 
-->{{#vardefine:ii:imagealt|}}<!-- //full image code for image area
 
-->{{#vardefine:ii:imagefile|}}<!-- //main image file
 
-->{{#vardefine:ii:image|}}<!-- //main image name.
 
-->{{#vardefine:ii:imageold|}}<!-- //oldimage.
 
-->{{#vardefine:ii:imagefemale|}}<!--
 
-->{{#vardefine:ii:imageplaced|}}<!--
 
-->{{#vardefine:ii:imageequipped|}}<!--
 
-->{{#vardefine:ii:imageext|}}<!-- //custom extra images. full image code.
 
 
 
//==auto vars==
 
-->{{#if:{{{auto|}}}|<!--
 
// post process and save into "standard" vars:
 
 
 
-->{{#if:{{#dplvar:ii:info:accessory}}|<!-- accessory?
 
-->{{#arraydefine:z|accessory}}{{#arrayunion:ii:types|z|ii:types}}<!--
 
-->}}<!--
 
-->{{#if:{{#dplvar:ii:info:cartTrack}}|<!-- cart track
 
-->{{#arraydefine:z|Minecart track items}}{{#arrayunion:ii:listcats|z|ii:listcats}}<!--
 
-->}}<!--
 
-->{{#ifexpr:{{#dplvar:ii:info:dye}}|<!-- is dye?
 
-->{{#arraydefine:z|dye}}{{#arrayunion:ii:types|z|ii:types}}<!--
 
-->}}<!--
 
-->{{#ifexpr:{{#dplvar:ii:info:hairDye}}>-1|<!-- is hair dye?
 
-->{{#arraydefine:z|hair dye}}{{#arrayunion:ii:types|z|ii:types}}<!--
 
-->}}<!--
 
-->{{#if:{{#dplvar:ii:info:string}}|<!-- string?
 
-->{{#arraydefine:z|string}}{{#arrayunion:ii:tags|z|ii:tags}}<!--
 
-->}}<!--
 
-->{{#if:{{#dplvar:ii:info:vanity}}|<!-- vanity?
 
-->{{#arraydefine:z|vanity}}{{#arrayunion:ii:types|z|ii:types}}<!--
 
-->}}<!--
 
-->{{#if:{{#dplvar:ii:info:mech}}|<!-- mech?
 
-->{{#arraydefine:z|mechanism}}{{#arrayunion:ii:types|ii:types|z}}<!--
 
-->}}<!--
 
-->{{#ifeq:{{#invoke:Iteminfo/idSets|value|IsFood|{{#var:ii:id}}}}|true|<!-- food?
 
-->{{#arraydefine:z|food}}{{#arrayunion:ii:types|ii:types|z}}<!--
 
-->}}<!--
 
 
 
// if autokb>0 then use it, always use kb for all axe/hammer/pick(/drill) tools, always use kb for all weapons
 
-->{{#vardefine:ii:knockback|<!--
 
-->{{#ifexpr:({{#dplvar:ii:info:knockBack}}>0) or {{#dplvar:ii:info:axe}} or {{#dplvar:ii:info:hammer}} or {{#dplvar:ii:info:pick}} or {{#arraysearch:ii:types|weapon|0|1|0}}|{{#dplvar:ii:info:knockBack}}}}<!--
 
-->}}<!--
 
-->{{#vardefine:ii:defense|{{#ifexpr:{{#dplvar:ii:info:defense}}>0|{{#dplvar:ii:info:defense}}}}}}<!--
 
-->{{#vardefine:ii:tileboost|{{#ifexpr:{{#dplvar:ii:info:tileBoost}}<>0|{{#dplvar:ii:info:tileBoost}}}}}}<!--
 
-->{{#vardefine:ii:mana|{{#ifexpr:{{#dplvar:ii:info:mana}}>0|{{#dplvar:ii:info:mana}}}}}}<!--
 
-->{{#vardefine:ii:mheal|{{#ifexpr:{{#dplvar:ii:info:healMana}}>0|{{#dplvar:ii:info:healMana}}}}}}<!--
 
-->{{#vardefine:ii:hheal|{{#ifexpr:{{#dplvar:ii:info:healLife}}>0|{{#dplvar:ii:info:healLife}}}}}}<!--
 
-->{{#vardefine:ii:critical|<!--
 
-->{{#ifexpr:{{#var:ii:damage|0}}>0|<!-- if autodamage exist
 
-->{{#ifexpr:{{#dplvar:ii:info:crit}}>0|<!--
 
-->{{#expr:{{#dplvar:ii:info:crit}}+4}}<!-- use autocrit+4
 
-->|<!--
 
-->{{#if:{{#arraysearch:ii:types|weapon|0|y}}{{#arraysearch:ii:types|tool|0|y}}|<!--
 
-->{{#if:{{#var:ii:damagetype}}|{{#ifeq:{{#var:ii:damagetype}}|Summon||4}}}}<!-- if $damagetype and $damagetype != summon then 4%
 
-->}}<!--
 
-->}}<!--
 
-->}}<!--
 
-->}}<!--
 
-->{{#vardefine:ii:use|{{#ifexpr:{{#dplvar:ii:info:useAnimation}}<100|{{#dplvar:ii:info:useAnimation}}}}}}<!--
 
-->{{#vardefine:ii:velocity|{{#ifexpr:{{#dplvar:ii:info:shootSpeed}}>0|{{#dplvar:ii:info:shootSpeed}}}}}}<!--
 
-->{{#vardefine:ii:toolspeed|<!--
 
-->{{#ifexpr:({{#dplvar:ii:info:useAnimation}}<100) and ({{#dplvar:ii:info:useTime}}<100) and {{#arraysearch:ii:types|tool|0|1|0}}|{{#dplvar:ii:info:useTime}}}}<!--
 
-->}}<!--
 
-->{{#vardefine:ii:idbuff|<!--
 
-->{{#ifexpr:{{#dplvar:ii:info:buffType}}>0|<!--
 
-->{{#dplvar:ii:info:buffType}}<!--
 
-->|<!--
 
-->{{#ifexpr:{{#dplvar:ii:info:mountType}}>-1|{{BuffIdFromName|{{getMountInfo|{{#dplvar:ii:info:mountType}}|name}}}}}}<!--
 
-->}}<!--
 
-->}}<!--
 
-->{{#vardefine:ii:buffduration|{{#ifexpr:{{#dplvar:ii:info:buffTime}}>0|{{#expr:{{#dplvar:ii:info:buffTime}}/60}}}}}}<!-- in seconds.
 
-->{{#vardefine:ii:rare|{{#dplvar:ii:info:rare}}}}<!--
 
-->{{#ifeq:{{#dplvar:ii:info:rare}}|-11|{{#vardefine:ii:rare|quest}}}}<!--quest
 
-->{{#if:{{#dplvar:ii:info:questItem}}|{{#vardefine:ii:rare|quest}}}}<!--quest
 
 
-->{{#arraysearch:ii:tags|dd2|0|{{#vardefine:ii:DD2Summon|1}}|{{#vardefine:ii:DD2Summon|{{#dplvar:ii:info:DD2Summon}}}}}}<!--
 
-->{{#vardefine:ii:value|{{#ifexpr:{{#dplvar:ii:info:value}}>0|{{#dplvar:ii:info:value}}}}}}<!--in cc.
 
-->{{#vardefine:ii:shopCustomPrice|{{#dplvar:ii:info:shopCustomPrice}}}}<!--dm
 
-->{{#ifexpr:{{#dplvar:ii:info:value}}>0|<!--
 
-->{{#vardefine:ii:sell|{{#expr:floor({{#expr:{{#dplvar:ii:info:value}}/5}})}}}}<!-- divide by 5, round down, in cc.
 
-->{{#ifexpr:{{#var:ii:sell}}<1|{{#vardefine:ii:sell|1}}}}<!-- at least 1cc
 
-->}}<!--
 
-->{{#vardefine:ii:idtile|{{#ifexpr:{{#dplvar:ii:info:createTile}}>-1|{{#dplvar:ii:info:createTile}}}}}}<!--
 
-->{{#vardefine:ii:idtilesub|<!--
 
-->{{#ifexpr:({{#dplvar:ii:info:createTile}}>-1) and ({{#dplvar:ii:info:placeStyle}}>0)|{{#expr:{{#dplvar:ii:info:placeStyle}}+1}}}}<!--
 
-->}}<!--
 
-->{{#vardefine:ii:idwall|{{#ifexpr:{{#dplvar:ii:info:createWall}}>-1|{{#dplvar:ii:info:createWall}}}}}}<!--
 
-->{{#if:{{#var:ii:idwall}}|<!-- wall?
 
-->{{#arraydefine:z|wall}}{{#arrayunion:ii:types|z|ii:types}}<!--
 
-->}}<!--
 
-->{{#ifexpr:{{#dplvar:ii:info:headSlot}}>-1|<!-- head armor?
 
-->{{#vardefine:ii:idarmor|{{#dplvar:ii:info:headSlot}}}}<!--
 
-->{{#arraysearch:ii:types|vanity|0|<!-- set body slot
 
-->{{#vardefine:ii:bodyslot|social helmet}}<!--
 
-->|<!--
 
-->{{#vardefine:ii:bodyslot|helmet}}<!--
 
-->{{#arraydefine:z|armor}}{{#arrayunion:ii:types|z|ii:types}}<!-- add "armor" to types
 
-->}}<!--
 
-->}}<!--
 
-->{{#ifexpr:{{#dplvar:ii:info:bodySlot}}>-1|<!-- body armor?
 
-->{{#vardefine:ii:idarmor|{{#dplvar:ii:info:bodySlot}}}}<!--
 
-->{{#arraysearch:ii:types|vanity|0|<!--
 
-->{{#vardefine:ii:bodyslot|social shirt}}<!--
 
-->|<!--
 
-->{{#vardefine:ii:bodyslot|shirt}}<!--
 
-->{{#arraydefine:z|armor}}{{#arrayunion:ii:types|z|ii:types}}<!--
 
-->}}<!--
 
-->}}<!--
 
-->{{#ifexpr:{{#dplvar:ii:info:legSlot}}>-1|<!-- legs armor?
 
-->{{#vardefine:ii:idarmor|{{#dplvar:ii:info:legSlot}}}}<!--
 
-->{{#arraysearch:ii:types|vanity|0|<!--
 
-->{{#vardefine:ii:bodyslot|social pants}}<!--
 
-->|<!--
 
-->{{#vardefine:ii:bodyslot|pants}}<!--
 
-->{{#arraydefine:z|armor}}{{#arrayunion:ii:types|z|ii:types}}<!--
 
-->}}<!--
 
-->}}<!--
 
-->{{#vardefine:ii:idmount|{{#ifexpr:{{#dplvar:ii:info:mountType}}>-1|{{#dplvar:ii:info:mountType}}}}}}<!--
 
-->{{#if:{{#var:ii:idmount}}|<!-- mount
 
//add "mount Summon" to type.
 
-->{{#arraydefine:z|mount summon}}{{#arrayunion:ii:types|z|ii:types}}<!--
 
-->}}<!--
 
-->{{#if:{{#var:ii:useammo}}||{{#vardefine:ii:idprojectile|{{#ifexpr:{{#dplvar:ii:info:shoot}}>0|{{#dplvar:ii:info:shoot}}}}}}}}<!--don't show default projectile id for items which use ammo.
 
-->{{#if:{{#dplvar:ii:info:UseSound}}|<!--
 
-->{{#arraydefine:_usesounds|{{#dplvar:ii:info:UseSound}}}}<!--
 
-->{{#arraydefine:ii:sounds|{{l10n|item_infobox|th:use}}@@{{#arrayprint:_usesounds|,|##|##.wav}}|@@@}}<!-- put all usesounds in the first element of the ii:sounds array
 
-->}}<!--
 
-->{{#vardefine:ii:placeable|{{#if:{{#var:ii:idtile}}{{#var:ii:idwall}}|y}}}}<!--
 
-->{{#vardefine:ii:consumable|{{#dplvar:ii:info:consumable}}}}<!--
 
-->{{#vardefine:ii:tooltip|{{itemTooltip|{{#var:ii:id}}|right={{l10n|item_infobox|rightclick}}}}}}<!--
 
 
-->{{#vardefine:ii:material|{{#dplvar:ii:info:material}}}}<!--
 
-->{{#vardefine:ii:craftable|{{#dplvar:ii:info:craftable}}}}<!--
 
 
-->}}<!--
 
 
//== manual vars override and complete all fields. ==
 
//as they are defined after the automatic variables, using these manual parameters always overwrites the respective automatic variable. if auto mode was not used, this ensures correct functioning of the template
 
 
 
-->{{#vardefine:ii:knockback|{{regex|{{{knockback|}}}|/@@@@/|{{knockback|{{#var:ii:knockback}}|full=y}}|{{{knockback|{{#var:ii:knockback}}}}}}}}}<!--
 
-->{{#vardefine:ii:defense|{{#var:ii:defense|{{#arraysearch:ii:types|set|0|{{#arraysearch:ii:types|vanity|0||{{#ifexpr:{{#explode:{{getSetInfo|{{#var:ii:name}}|defense|raw=y}}|§|1}}>0|{{getSetInfo|{{#var:ii:name}}|defense}}}}}}}}}}}}<!-- auto defense for armor sets
 
-->{{#vardefine:ii:defense|{{regex|{{{defense|}}}|/@@@@/|{{#var:ii:defense|0}}|{{{defense|{{#var:ii:defense}}}}}}}}}<!--
 
-->{{#vardefine:ii:tileboost|{{{tileboost|{{#var:ii:tileboost}}}}}}}<!--
 
-->{{#vardefine:ii:mana|{{regex|{{{mana|}}}|/@@@@/|{{#var:ii:mana}}|{{{mana|{{#var:ii:mana}}}}}}}}}<!--
 
-->{{#vardefine:ii:mheal|{{regex|{{{mheal|}}}|/@@@@/|{{#var:ii:mheal}}|{{{mheal|{{#var:ii:mheal}}}}}}}}}<!--
 
-->{{#vardefine:ii:hheal|{{regex|{{{hheal|}}}|/@@@@/|{{#var:ii:hheal}}|{{{hheal|{{#var:ii:hheal}}}}}}}}}<!--
 
-->{{#vardefine:ii:critical|{{regex|{{{critical|}}}|/@@@@/|{{#var:ii:critical}}%|{{{critical|{{#var:ii:critical|{{#if:{{#var:ii:damage}}|<!--
 
if $damage and ($type=weapon or =tool) and ("summon" not in $damagetype) then 4 end
 
-->{{#if:{{#arraysearch:ii:types|weapon|0|y}}{{#arraysearch:ii:types|tool|0|y}}|<!--
 
-->{{#if:{{#var:ii:damagetype}}|{{#if:{{#rmatch:{{#var:ii:damagetype}}|/summon/i|y}}||4}}}}<!-- if $damagetype and ("summon" not in $damagetype) then 4%
 
-->}}<!--
 
-->}}}}}}}}}}}<!--
 
-->{{#vardefine:ii:use|{{regex|{{{use|}}}|/@@@@/|{{use time|{{#var:ii:use}}|full=y}}|{{{use|{{#var:ii:use}}}}}}}}}<!--
 
-->{{#vardefine:ii:velocity|{{{velocity|{{{sspeed|{{#var:ii:velocity}}}}}}}}}}<!--
 
-->{{#vardefine:ii:toolspeed|{{regex|{{{toolspeed|}}}|/@@@@/|{{#var:ii:toolspeed}}|{{{toolspeed|{{#var:ii:toolspeed}}}}}}}}}<!--
 
-->{{#vardefine:ii:idbuff|{{{idbuff|{{#var:ii:idbuff}}}}}}}<!--
 
-->{{#vardefine:ii:buffduration|{{regex|{{{duration|}}}|/@@@@/|{{duration|{{#var:ii:buffduration}}}}|{{{duration|{{#var:ii:buffduration}}}}}}}}}<!--in seconds.
 
-->{{#vardefine:ii:rare|{{#var:ii:rare|{{#arraysearch:ii:types|set|0|{{getSetInfo|{{#var:ii:name}}|rare|raw=y}}}}}}}}<!-- auto rarity for armor/vanity sets
 
-->{{#vardefine:ii:rare|{{regex|{{{rare|}}}|/@@@@/|{{rare|{{#var:ii:rare}}}}|{{{rare|{{#var:ii:rare}}}}}}}}}<!--
 
-->{{#vardefine:ii:idtile|{{{idtile|{{#var:ii:idtile}}}}}}}<!--
 
-->{{#vardefine:ii:idtilesub|{{#if:{{{idtile|}}}||{{{idtilesub|{{#var:ii:idtilesub}}}}}}}}}<!--
 
-->{{#vardefine:ii:idwall|{{{idwall|{{#var:ii:idwall}}}}}}}<!--
 
-->{{#vardefine:ii:idarmor|{{{idarmor|{{#var:ii:idarmor}}}}}}}<!--
 
-->{{#vardefine:ii:idmount|{{{idmount|{{#var:ii:idmount}}}}}}}<!--
 
-->{{#vardefine:ii:idprojectile|{{{idprojectile|{{{shoot|{{#var:ii:idprojectile}}}}}}}}}}<!--
 
-->{{#vardefine:ii:consumable|{{{consumable|{{#var:ii:consumable}}}}}}}<!--
 
-->{{#vardefine:ii:placeable|{{{placeable|{{#var:ii:placeable}}}}}}}<!--
 
-->{{#vardefine:ii:value|{{{value|{{#var:ii:value}}}}}}}<!--
 
// sell/buy
 
-->{{#arraysearch:ii:types|set|0|<!-- armor/vanity sets
 
-->{{#vardefine:ii:sell|{{regex|{{{sell|}}}|/@@@@/<!--
 
-->|{{#ifexpr:{{#explode:{{getSetInfo|{{#var:ii:name}}|sell|raw=y}}|§|1}}>0|{{getSetInfo|{{#var:ii:name}}|sell}}}}<!--
 
-->|{{{sell|{{#ifexpr:{{#explode:{{getSetInfo|{{#var:ii:name}}|sell|raw=y}}|§|1}}>0|{{getSetInfo|{{#var:ii:name}}|sell}}}}}}}<!--
 
-->}}}}<!--
 
-->|<!-- regular, single items
 
-->{{#vardefine:ii:sell|{{regex|{{{sell|}}}|/@@@@/<!--
 
-->|{{coin|{{#var:ii:sell|{{#ifexpr:{{#var:ii:value|0}}>0|{{#expr:floor({{#expr:{{#var:ii:value}}/5}})}}}}}}cc}}<!--
 
-->|{{{sell|{{#var:ii:sell|{{#ifexpr:{{#var:ii:value|0}}>0|{{#expr:floor({{#expr:{{#var:ii:value}}/5}})}}}}}}}}}<!--
 
-->}}}}<!--
 
-->}}<!--
 
-->{{#vardefine:ii:buy|<!--
 
-->{{#switch:{{lc:{{{buy|}}}}}<!--
 
-->|y|yes|true|show={{#ifexpr:{{#var:ii:value|0}}>0|{{#var:ii:value}}|{{#arraysearch:ii:types|set|0|{{getSetInfo|{{#var:ii:name}}|buy}}}}}}<!--
 
-->|#default={{#if:{{{buy|}}}|<!--
 
-->{{regex|{{{buy|}}}|/@@@@/|{{#ifexpr:{{#var:ii:value|0}}>0|{{coin|{{#var:ii:value}}cc}}}}|{{{buy|{{#arraysearch:ii:types|set|0|{{#ifexpr:{{#explode:{{getSetInfo|{{#var:ii:name}}|buy|raw=y}}|§|1}}>0|{{getSetInfo|{{#var:ii:name}}|buy}}}}}}}}}}}<!--
 
-->|<!--
 
-->{{#if:{{#arraysearch:ii:tags|buy|0|y}}{{#arraysearch:ii:tags|buyable|0|y}}{{#arraysearch:ii:tags|vendor|0|y}}|<!--
 
-->{{#ifexpr:{{#var:ii:value|0}}>0|{{#var:ii:value}}|{{#arraysearch:ii:types|set|0|{{#ifexpr:{{#explode:{{getSetInfo|{{#var:ii:name}}|buy|raw=y}}|§|1}}>0|{{getSetInfo|{{#var:ii:name}}|buy}}}}}}}}<!--
 
-->}}<!--
 
-->}}<!--
 
-->}}<!--
 
-->}}<!--
 
-->{{#if:{{#var:ii:shopCustomPrice}}|<!--
 
-->{{#vardefine:ii:buy|{{dm|{{#var:ii:shopCustomPrice}}}}}}<!--
 
-->|<!--
 
-->{{#if:{{#var:ii:buy}}|<!--
 
-->{{#iferror:{{#expr:1+{{#var:ii:buy}}}}||{{#vardefine:ii:buy|{{coin|{{#var:ii:buy}}cc}}}}}}<!--
 
-->}}<!--
 
-->}}<!--
 
-->{{#if:{{#var:ii:sell}}|<!--
 
-->{{#iferror:{{#expr:1+{{#var:ii:sell}}}}||{{#vardefine:ii:sell|{{coin|{{#var:ii:sell}}cc}}}}}}<!--
 
-->}}<!--
 
//ext buffinfo
 
-->{{#if:{{#var:ii:idbuff}}|<!--
 
-->{{#vardefine:ii:buff|{{{buff|{{getBuffInfo|{{#var:ii:idbuff}}|name}}}}}}}<!--
 
-->{{#vardefine:ii:bufftype|{{{bufftype|{{getBuffInfo|{{#var:ii:idbuff}}|type}}}}}}}<!--
 
-->{{#vardefine:ii:bufflink|{{{bufflink|{{getBuffInfo|{{#var:ii:idbuff}}|page}}}}}}}<!--
 
-->{{#vardefine:ii:bufftip|{{{bufftip|{{getBuffInfo|{{#var:ii:idbuff}}|tooltip}}}}}}}<!--
 
-->|<!-- no idbuff, see if there is $buff or $debuff
 
-->{{#if:{{{debuff|}}}|<!--
 
-->{{#arraydefine:debuffinfo|{{{debuff|}}}|/}}<!--
 
-->{{#vardefine:ii:bufftype|Debuff}}<!--
 
-->{{#vardefine:ii:idbuff|{{buffIdFromName|{{#arrayindex:debuffinfo|0}}}}}}<!--
 
-->{{#if:{{#var:ii:idbuff}}|<!--
 
-->{{#ifeq:{{#sub:{{#var:ii:idbuff}}|0|1}}|m|<!-- is mobile exclusive?
 
-->{{#vardefine:ii:idbuff|{{#sub:{{#var:ii:idbuff}}|1}}}}<!--
 
-->{{#vardefine:ii:mobilebuff|m}}<!--
 
-->}}<!--
 
-->}}<!--
 
-->{{#vardefine:ii:buff|{{#if:{{#var:ii:idbuff}}|{{getBuffInfo|{{#var:ii:mobilebuff}}{{#var:ii:idbuff}}|name}}|{{#arrayindex:debuffinfo|0}}}}}}<!--
 
-->{{#vardefine:ii:buffduration|{{{debuffduration|{{#arrayindex:debuffinfo|1}}}}}}}<!-- in seconds.
 
-->{{#vardefine:ii:debuffchance|{{#arrayindex:debuffinfo|2}}}}<!--
 
-->|{{#if:{{{buff|}}}|<!--
 
-->{{#arraydefine:buffinfo|{{{buff|}}}|/}}<!--
 
-->{{#vardefine:ii:bufftype|Buff}}<!--
 
-->{{#vardefine:ii:idbuff|{{buffIdFromName|{{#arrayindex:buffinfo|0}}}}}}<!--
 
-->{{#if:{{#var:ii:idbuff}}|<!--
 
-->{{#ifeq:{{#sub:{{#var:ii:idbuff}}|0|1}}|m|<!-- is mobile exclusive?
 
-->{{#vardefine:ii:idbuff|{{#sub:{{#var:ii:idbuff}}|1}}}}<!--
 
-->{{#vardefine:ii:mobilebuff|m}}<!--
 
-->}}<!--
 
-->}}<!--
 
-->{{#vardefine:ii:buff|{{#if:{{#var:ii:idbuff}}|{{getBuffInfo|{{#var:ii:mobilebuff}}{{#var:ii:idbuff}}|name}}|{{#arrayindex:buffinfo|0}}}}}}<!--
 
-->{{#vardefine:ii:buffduration|{{{buffduration|{{#arrayindex:buffinfo|1}}}}}}}<!-- in seconds.
 
-->{{#vardefine:ii:buffchance|{{#arrayindex:buffinfo|2}}}}<!--
 
-->}}}}<!--
 
-->{{#vardefine:ii:bufflink|{{{debufflink|{{getBuffInfo|{{#var:ii:mobilebuff}}{{#var:ii:idbuff}}|page}}}}}}}<!--
 
-->{{#vardefine:ii:bufftip|{{{debufftip|{{getBuffInfo|{{#var:ii:mobilebuff}}{{#var:ii:idbuff}}|tooltip}}}}}}}<!--
 
-->}}<!--
 
-->{{#ifeq:{{lc:{{#var:ii:bufftype}}}}|debuff|<!--
 
-->{{#vardefine:ii:debuffchance|{{{debuffchance|{{#var:ii:debuffchance}}}}}}}<!--
 
-->}}<!--
 
-->{{#ifeq:{{#var:ii:bufflink}}|{{BASEPAGENAME}}|<!-- if is self link
 
//add "buffs" to cate.
 
-->{{#arraydefine:z|buffs}}{{#arrayunion:ii:listcats|ii:listcats|z}}<!--
 
-->}}<!--
 
-->{{#vardefine:ii:tooltip|{{regex|{{{tooltip|}}}|/@@@@/|{{#var:ii:tooltip}}|{{{tooltip|{{#var:ii:tooltip|{{itemTooltip|{{#var:ii:id}}}}}}}}}}}}}<!--
 
-->{{#vardefine:ii:pickreq|{{{pickreq|{{#var:ii:pickreq}}}}}}}<!--
 
-->{{#vardefine:ii:hammerreq|{{{hammerreq|{{#var:ii:hammerreq}}}}}}}<!--
 
-->{{#arraysearch:ii:types|block|0|{{#vardefine:ii:width|1}}{{#vardefine:ii:height|1}}}}<!--
 
-->{{#arraysearch:ii:types|brick|0|{{#vardefine:ii:width|1}}{{#vardefine:ii:height|1}}}}<!--
 
-->{{#vardefine:ii:width|{{{width|{{#var:ii:width}}}}}}}<!--
 
-->{{#vardefine:ii:height|{{{height|{{#var:ii:height}}}}}}}<!--
 
-->{{#vardefine:ii:bodyslot|{{{body slot|{{#var:ii:bodyslot}}}}}}}<!--
 
-->{{#vardefine:ii:bonus|{{{bonus|{{#var:ii:bonus}}}}}}}<!--
 
-->{{#vardefine:ii:setbonus|{{#arraysearch:ii:types|set|0|{{#arraysearch:ii:types|vanity|0||{{getSetInfo|{{#var:ii:name}}|setbonuslist|sep=<br/>}}}}}}}}<!-- auto setbonus for armor sets
 
-->{{#vardefine:ii:setbonus|{{regex|{{{setbonus|}}}|/@@@@/|{{#var:ii:setbonus}}|{{#var:ii:setbonus}}}}}}<!--
 
-->{{#vardefine:ii:hardmodeonly|{{{hardmode|{{#if:{{#arraysearch:ii:tags|hardmodeonly|0|y}}{{#arraysearch:ii:tags|hardmode|0|y}}|y|{{#var:ii:hardmodeonly}}}}}}}}}<!--
 
-->{{#vardefine:ii:allversions|{{#switch:{{lc:{{{allversions|}}}}}<!-- allversions?
 
-->|y|yes|true=y<!--
 
-->|n|no|false=<!--
 
-->|#default={{#arraysearch:ii:tags|allversions|0|y|{{#if:{{#var:ii:id}}|{{#if:{{eversions|{{#var:ii:name}}|raw=y}}|<!--not all versions-->|y}}}}}}<!-- auto detected: tag -> id+eversions.
 
-->}}}}<!--
 
crafting cate/type
 
-->{{#if:{{#var:ii:name}}|<!--
 
//Is crafting material ??
 
-->{{#if:{{#var:ii:material}}|<!--
 
//add "Crafting material" to type.
 
-->{{#arraydefine:z|crafting material}}<!--
 
-->{{#arrayunion:ii:types|ii:types|z}}<!--
 
-->}}<!--
 
//Is craftable?
 
-->{{#if:{{#var:ii:craftable}}|<!--
 
//add "Craftable items" to listcate.
 
-->{{#arraydefine:z|craftable items}}<!--
 
-->{{#arrayunion:ii:listcats|ii:listcats|z}}<!--
 
-->}}<!--
 
-->}}<!--
 
 
//velocity/extraUpdate fix
 
-->{{#vardefine:ii:rawVelocity|{{#var:ii:velocity}}}}<!--
 
-->{{#if:{{#var:ii:idprojectile}}|{{#if:{{#var:ii:rawVelocity}}|<!--
 
-->{{#vardefine:_extraUpdates|0{{getProjectileInfo|{{#explode:{{#var:ii:idprojectile}}|,|0}}|extraUpdates}}}}<!--
 
-->{{#ifexpr:{{#var:_extraUpdates}}>0|<!--
 
-->{{#arraysearch:ii:types|ammunition|0|<!-- is ammo
 
-->{{#vardefine:ii:velocityMultiplier|{{#expr:{{#var:_extraUpdates}}+1}}}}<!--
 
-->|<!-- others
 
-->{{#vardefine:ii:velocity|{{#expr:{{#var:ii:velocity}}*({{#var:_extraUpdates}}+1)}}}}<!--
 
-->}}<!--
 
-->}}<!--
 
-->}}}}<!--
 
 
 
//sounds:
 
-->{{#if:{{{sounduse|}}}|{{#arraydefine:ii:sounds|{{l10n|item_infobox|th:use}}@@{{{sounduse|}}}|@@@@}}}}<!-- use delimiter "@@@@" to prevent multiple comma-separated sounds to be stored as different array elements. ii:sounds should only have a single element at this point.
 
-->{{#arraydefine:z|<!-- // custom sounds (e.g. $sound1)
 
-->{{#forargs:sound|k|v|<!--
 
-->{{#if:{{{soundcaption{{#var:k}}|}}}|<!--
 
-->@@@@{{{soundcaption{{#var:k}}|}}}@@{{#var:v}}<!-- "@@" is the delimiter between caption and sound; "@@@@" the delimiter between array elements
 
-->}}<!--
 
-->}}<!--
 
-->|@@@@<!--
 
-->}}<!--
 
-->{{#arrayunique:z}}<!-- removing empty and duplicate elements
 
-->{{#arrayunion:ii:sounds|ii:sounds|z}}<!--
 
//images: There are some expensive calls in image auto detection, so run detection based on view mode.
 
-->{{#vardefine:ii:imagealt|{{{imagealt|}}}}}<!-- custom full image code.
 
-->{{#if:{{#var:ii:imagealt}}||<!--
 
-->{{#ifeq:{{#var:imagemode}}|full|<!--full mode
 
//female image check first (used in equipped image)
 
-->{{#vardefine:ii:imagefemale|<!--
 
-->{{#if:{{{imagefemale|}}}|<!--
 
-->[[File:{{{imagefemale|}}}|{{l10n|item_infobox|imagealt:female|$name$={{#var:ii:lname}}}}|link=]]<!--
 
-->|<!--
 
-->{{image|{{#var:ii:name}} female.{{{ext|png}}}|{{l10n|item_infobox|imagealt:female|$name$={{#var:ii:lname}}}}|link=}}<!-- check ext as main image
 
-->}}<!--
 
-->}}<!--
 
-->{{#vardefine:ii:imagefemale|{{#var:ii:imagefemale|<!-- second try to fetch female image (armor/vanity sets are named "<name> female.png"; regular items are named "<name> (equipped) female.png")
 
-->{{image|{{#var:ii:name}} (equipped) female.{{{ext|png}}}|{{l10n|item_infobox|imagealt:female|$name$={{#var:ii:lname}}}}|link=}}<!-- check ext as main image
 
-->}}}}<!--
 
-->{{#vardefine:_male_image_suffix|{{#if:{{#var:ii:imagefemale}}|y|}}}}<!--
 
//main image
 
-->{{#vardefine:ii:image|<!--
 
-->{{#vardefine:alttext|<!--
 
-->{{#arraysearch:ii:types|set|0|<!--
 
-->{{#if:{{#var:ii:imagefemale}}|<!-- //if there is a female image, the main(male) image need a suffix
 
-->{{l10n|item_infobox|imagealt:equipped_suffixed|$name$={{#var:ii:lname}}}}<!--
 
-->|<!--
 
-->{{l10n|item_infobox|imagealt:equipped|$name$={{#var:ii:lname}}}}<!--
 
-->}}<!--
 
-->|<!--
 
-->{{l10n|item_infobox|imagealt:default|$name$={{#var:ii:lname}}}}<!--
 
-->}}<!--
 
-->}}<!--
 
-->{{#if:{{{image|}}}|<!--
 
-->{{#vardefine:ii:imagefile|{{{image|}}}}}<!--
 
-->[[File:{{{image|}}}|{{#var:alttext}}|link=]]<!--
 
-->|<!--
 
-->{{#vardefine:ii:imagefile|{{regex|{{#var:ii:name}}|/:\s*/|_|{{#var:ii:name}}}}.{{{ext|png}}}}}<!--replace ":" and ": " in filename with "_",
 
-->{{#ifeq:{{{imageinfo|}}}|no|<!--
 
-->[[file:{{#var:ii:imagefile}}|{{#var:alttext}}|link=]]<!--
 
-->|<!--
 
-->{{image|{{#var:ii:imagefile}}|{{#var:alttext}}|link=}}<!--
 
-->}}<!--
 
-->}}<!--
 
-->}}<!--
 
// fallback if {{image}} failed (red link)
 
-->{{#if:{{#var:ii:image}}||<!--
 
-->{{#vardefine:ii:image|[[File:{{#var:ii:name}}.png|{{l10n|item_infobox|imagealt:missing}}|link=]]}}<!--
 
-->}}<!--
 
//old image
 
-->{{#vardefine:ii:imageold|{{{imageoldalt|<!--
 
-->{{#if:{{{imageold|}}}|<!--
 
-->[[File:{{{imageold|}}}|{{l10n|item_infobox|imagealt:old|$name$={{#var:ii:lname}}}}|link=]]<!--
 
-->|<!--
 
-->{{image|{{#var:ii:name}} (old)|{{l10n|item_infobox|imagealt:old|$name$={{#var:ii:lname}}}}|link=}}<!-- check .gif, then .png
 
-->}}<!--
 
-->}}}}}<!--
 
//placed image
 
-->{{#vardefine:ii:imageplaced|{{{imageplacedalt|<!--
 
-->{{#if:{{{imageplaced|}}}|<!--
 
-->[[File:{{{imageplaced|}}}|{{l10n|item_infobox|imagealt:placed|$name$={{#var:ii:lname}}}}|link=]]<!--
 
-->|<!--
 
-->{{image|{{#var:ii:name}} (placed)|{{l10n|item_infobox|imagealt:placed|$name$={{#var:ii:lname}}}}|link=}}<!-- check .gif, then .png
 
-->}}<!--
 
-->}}}}}<!--
 
//equipped image
 
-->{{#vardefine:ii:imageequipped|{{{imageequippedalt|<!--
 
-->{{#if:{{{imageequipped|}}}|<!--
 
-->[[File:{{{imageequipped|}}}|{{l10n|item_infobox|imagealt:equipped|$name$={{#var:ii:lname}}}}|link=]]<!--
 
-->|<!--
 
-->{{image|{{#var:ii:name}} (equipped)|{{l10n|item_infobox|imagealt:equipped|$name$={{#var:ii:lname}}}}|link=}}<!-- check .gif, then .png
 
-->}}<!--
 
-->}}}}}<!--
 
-->|<!-- else simple mode
 
//main image
 
-->{{#vardefine:ii:image|<!--
 
-->{{#if:{{{image|}}}|<!--
 
-->{{#vardefine:ii:imagefile|{{{image|}}}}}<!--
 
-->[[File:{{{image|}}}|{{l10n|item_infobox|imagealt:default|$name$={{#var:ii:lname}}}}|link=]]<!--
 
-->|<!--
 
-->{{#vardefine:ii:imagefile|{{regex|{{#var:ii:name}}|/:\s*/|_|{{#var:ii:name}}}}.{{{ext|png}}}}}<!--replace ":" and ": " in filename with "_",
 
-->{{#ifeq:{{{imageinfo|}}}|no|<!--
 
-->[[File:{{#var:ii:imagefile}}|{{l10n|item_infobox|imagealt:default|$name$={{#var:ii:lname}}}}|link=]]<!--
 
-->|<!--
 
-->{{image|{{#var:ii:imagefile}}|{{l10n|item_infobox|imagealt:default|$name$={{#var:ii:lname}}}}|link=}}<!--
 
-->}}<!--
 
-->}}<!--
 
-->}}<!--
 
// fallback if {{image}} failed (red link)
 
-->{{#if:{{#var:ii:image}}||<!--
 
-->{{#vardefine:ii:image|[[File:{{#var:ii:name}}.png|file is missing|link=]]}}<!--
 
-->}}<!--
 
//placed image
 
-->{{#if:{{#pos:{{#var:imagemode}}|placed}}|<!--
 
-->{{#vardefine:ii:imageplaced|{{{imageplacedalt|<!--
 
-->{{#if:{{{imageplaced|}}}|<!--
 
-->[[File:{{{imageplaced|}}}|{{l10n|item_infobox|imagealt:placed|$name$={{#var:ii:lname}}}}|link=]]<!--
 
-->|<!--
 
-->{{image|{{#var:ii:name}} (placed)|{{l10n|item_infobox|imagealt:placed|$name$={{#var:ii:lname}}}}|link=}}<!-- check .gif, then .png
 
-->}}<!--
 
-->}}}}}<!--
 
-->}}<!--
 
-->}}<!--
 
-->}}<!--
 
 
===== cate and cargo ======
 
-->{{#vardefine:cate|}}<!--
 
-->{{#switch:{{{cate|}}}<!--
 
-->|yes|force={{#vardefine:cate|y}}<!--
 
-->|no={{#vardefine:cate|}}<!--
 
-->|#default={{#ifeq:{{NAMESPACE}}|{{ns:0}}|<!-- only in main ns
 
-->{{#switch:{{#var:viewname}}<!--
 
-->|infobox|table={{#vardefine:cate|y}}<!-- only cate for infobox/table view, no cate for void/item view
 
-->}}<!--
 
-->}}<!--
 
-->}}<!--
 
-->{{#if:{{#var:cate}}|<!--
 
== cates ==
 
-->{{#ifeq:{{{cate|}}}|no|<!-- nothing -->|{{#ifeq:{{{listexclude|no}}}|yes|<!-- nothing -->|<!-- only if $cate != no
 
//cate
 
-->{{#arrayprint:ii:types||@@@@|[[Category:{{#if:{{l10n|item_infobox|typecate:@@@@}}|{{l10n|item_infobox|typecate:@@@@}}|{{tr|{{ucfirst:@@@@}} items|link=y}}}}]]}}<!--
 
-->{{#arrayprint:ii:listcats||@@@@|[[Category:{{#if:{{l10n|item_infobox|listcat:@@@@}}|{{l10n|item_infobox|listcat:@@@@}}|{{tr|{{ucfirst:@@@@}}|link=y}}}}]]}}<!--
 
-->{{#arraysearch:ii:types|set|0|<!--
 
-->{{#arraysearch:ii:types|vanity|0|[[Category:{{l10n|item_infobox|cate:vanitysets}}]]}}<!--
 
-->{{#arraysearch:ii:types|armor|0|<!--
 
-->[[Category:{{l10n|item_infobox|cate:armorsets}}]]<!--
 
-->{{#if:{{#var:ii:setbonus}}||[[Category:{{l10n|item_infobox|cate:nosetbonus}}]]}}<!--
 
-->}}<!--
 
-->}}<!--
 
-->{{#if:{{#var:ii:consumable}}|[[Category:{{l10n|item_infobox|cate:consumableitem}}]]}}<!--
 
-->{{#if:{{#var:ii:buy}}|[[Category:{{l10n|item_infobox|cate:vendoritem}}]]}}<!--
 
-->{{#if:{{#var:ii:hardmodeonly}}|[[Category:{{l10n|item_infobox|cate:hardmodeonlyitem}}]]}}<!--
 
-->{{#if:{{#var:ii:autoswing}}|<!--
 
-->{{#arraysearch:ii:types|furniture|0|<!-- nothing, don't categorize placeable weapons -->|<!--
 
-->{{#arraysearch:ii:types|weapon|0|<!--
 
-->[[Category:{{l10n|item_infobox|cate:autoswingitem}}]]<!--
 
-->|{{#arraysearch:ii:types|tool|0|<!--
 
-->[[Category:{{l10n|item_infobox|cate:autoswingitem}}]]}}<!--
 
-->}}<!--
 
-->}}<!--
 
-->}}<!--
 
-->{{#if:{{#var:ii:allversions}}|{{all versions}}}}<!--
 
@todo: buff part--><!-- {{void|#ifeq:{{{bufflink|}}}|no|[[Category:Buffs]]}} --><!--
 
-->}}}}<!--
 
-->}}<!--
 
 
-->{{#vardefine:cargo|}}<!--
 
-->{{#ifeq:{{NAMESPACE}}|{{ns:0}}|{{#ifeq:{{PAGENAME}}|{{ROOTPAGENAME}}|{{#vardefine:cargo|y}}}}}}<!--
 
-->{{#if:{{{cargo|}}}|{{#ifeq:{{{cargo|}}}|force|{{#vardefine:cargo|y}}|{{#vardefine:cargo|}}}}}}<!--
 
-->{{#if:{{#var:cargo}}|<!--
 
== cargo store ==
 
//new table:
 
-->{{#cargo_store:_table=Items_new<!--
 
-->|itemid={{#var:ii:id}}<!--
 
-->|name={{#var:ii:name}}<!--
 
-->|internalname={{#var:ii:internalName}}<!--
 
-->|image={{#var:ii:imagealt|{{#var:ii:image|{{#var:ii:imageplaced|{{#var::ii::imageequipped}}}}}}}}<!--
 
-->|imagefile={{#var:ii:imagefile|{{{image|{{#var:ii:name}}.{{{ext|png}}}}}}}}<!--
 
-->|autoswing={{#var:ii:autoswing}}<!--
 
-->|stack={{#var:ii:stack}}<!--
 
-->|type={{#arrayprint:ii:types|^}}<!--
 
-->|listcat={{#arrayprint:ii:listcats|^}}<!--
 
-->|tag={{#arrayprint:ii:tags|^}}<!--
 
-->|buy={{#var:ii:buy}}<!--
 
-->|consumable={{#var:ii:consumable}}<!--
 
-->|hardmode={{#var:ii:hardmodeonly}}<!--
 
-->|damage={{#var:ii:damage}}<!--
 
-->|damagetype={{#var:ii:damagetype}}<!--
 
-->|defense={{#var:ii:defense}}<!--
 
-->|velocity={{#var:ii:velocity}}<!--
 
-->|knockback={{#var:ii:knockback}}<!--
 
-->|rare={{#var:ii:rare}}<!--
 
-->|sell={{#var:ii:sell}}<!--
 
-->|axe={{#var:ii:axe}}<!--
 
-->|pick={{#var:ii:pick}}<!--
 
-->|hammer={{#var:ii:hammer}}<!--
 
-->|bait={{#ifexpr:{{#var:ii:bait}}|{{#var:ii:bait}}}}<!--
 
-->|fishing={{#ifexpr:{{#var:ii:fishing}}|{{#var:ii:fishing}}}}<!--
 
-->|bonus={{#var:ii:tileboost}}<!--
 
-->|toolspeed={{#var:ii:toolspeed}}<!--
 
-->|usetime={{#var:ii:use}}<!--
 
-->|unobtainable={{#arraysearch:ii:listcats|unobtainable items|0|y|}}<!--
 
-->|autoswing={{#var:ii:autoswing}}<!--
 
-->|critical={{#var:ii:critical}}<!--
 
-->|tooltip={{#var:ii:tooltip}}<!--
 
-->|placeable={{#var:ii:placeable}}<!--
 
-->|placedwidth={{#var:ii:width}}<!--
 
-->|placedheight={{#var:ii:height}}<!--
 
-->|mana={{#var:ii:mana}}<!--
 
-->|bodyslot={{#var:ii:bodyslot}}<!--
 
-->|toolspeed={{#var:ii:toolspeed}}<!--
 
-->|buff={{#var:ii:buff}}<!--
 
-->|bufftype={{#var:ii:bufftype}}<!--
 
-->}}<!--
 
//CARGO END
 
-->}}<!--
 
end===== cate and cargo ======
 
 
===== OUTPUT VIEW ======
 
select view base on viewname. e.g. mode=table means {{item infobox/tableView}}, default is {{item infobox/infoboxView}}
 
-->{{item infobox/{{#var:viewname}}View}}<!--
 
 
--></includeonly><!--
 
 
--><noinclude><!--
 
 
-->{{#cargo_declare:_table=Items_new
 
|itemid=Integer
 
|name = String
 
|internalname=String
 
|image = Wikitext
 
|imagefile = String
 
|autoswing=Boolean
 
|stack=Integer
 
|consumable=Boolean
 
|hardmode=Boolean
 
|type = List (^) of String
 
|listcat = List (^) of String
 
|tag = List (^) of String
 
|damage = Wikitext
 
|damagetype=String
 
|defense=Wikitext (size=1000)
 
|velocity = Wikitext
 
|knockback = Wikitext
 
|rare = Wikitext
 
|buy = Wikitext
 
|sell = Wikitext
 
|axe = Wikitext (size=1000)
 
|pick = Wikitext (size=1000)
 
|hammer = Wikitext (size=1000)
 
|fishing = Integer
 
|bait = Integer
 
|bonus = Wikitext
 
|toolspeed = Wikitext
 
|usetime = Wikitext
 
|unobtainable = Boolean
 
|autoswing = Boolean
 
|critical=Wikitext (size=1000)
 
|tooltip=Wikitext
 
|placeable=Boolean
 
|placedwidth=Integer
 
|placedheight=Integer
 
|mana=Integer
 
|bodyslot=String
 
|usetime=Integer
 
|toolspeed=Integer
 
|buff=Wikitext (size=1000)
 
|bufftype=Wikitext (size=1000)
 
}}<!--
 
 
-->{{i18n-ready}}{{lua|Iteminfo}}{{doc}}</noinclude>
 

2020年9月6日 (日) 11:05的版本