(Отмена правки 89050, сделанной Alex Great (обсуждение)) Метка: отмена |
(обновление данных) |
||
(не показано 40 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
<includeonly><!-- |
<includeonly><!-- |
||
+ | ========================================================================================================================== |
||
− | //localization info in [[template:item_infobox/l10n]].(autoload) |
||
+ | =========================================== INITIALIZATION =========================================== |
||
+ | ========================================================================================================================== |
||
+ | |||
− | //ext l10n info: how to get english item name from {{BASEPAGENAME}}? |
||
+ | +++++++++++++ 1. Localization +++++++++++++ |
||
+ | |||
+ | // localization info is autoloaded from Template:Item infobox/l10n |
||
+ | |||
+ | // additional l10n: how to get english item name from {{BASEPAGENAME}}? |
||
-->{{#vardefine:itemnamefrompagename|{{pagename2en|{{#titleparts:{{ROOTPAGENAME}}}}}}}}<!-- |
-->{{#vardefine:itemnamefrompagename|{{pagename2en|{{#titleparts:{{ROOTPAGENAME}}}}}}}}<!-- |
||
− | === l10n end ========================================================================================================== |
||
+ | +++++++++++++ 2. View-related options +++++++++++++ |
||
− | //view name: |
||
+ | |||
− | -->{{#vardefine:viewname|{{lc:{{{mode|{{{output|{{{view|{{#var:_item_infobox_flag_view|infobox}}}}}}}}}}}}}}}<!-- |
||
+ | -->{{#vardefine:viewname|{{lc:{{{mode|{{{output|{{{view|{{options/get|item infobox|view}}}}}}}}}}}}}}}<!-- |
||
-->{{#switch:{{#var:viewname}}<!-- |
-->{{#switch:{{#var:viewname}}<!-- |
||
-->|infobox=<!-- |
-->|infobox=<!-- |
||
− | -->{{#arraydefine:extargs|float/css/style/boxwidth/imagebreak/showids/idshow |
+ | -->{{#arraydefine:extargs|float/css/style/boxwidth/imagebreak/showids/idshow/idtileshow/projectileblock/projectilename/projectileimage/showenglishname/{{{extargs|{{options/get|item infobox|extargs}}}}}|/}}<!-- |
− | -->{{#arrayprint:extargs||@@@@|{{#if:@@@@|{{#vardefine:ii:ext:@@@@|{{{@@@@|}}}}}}}}}<!-- e#xt parameters for view |
||
− | -->{{#vardefine:imagemode|{{{imagemode|full}}}}}<!-- |
||
-->|table=<!-- |
-->|table=<!-- |
||
− | -->{{#arraydefine:extargs|cols/{{{extargs|{{item infobox |
+ | -->{{#arraydefine:extargs|cols/{{{extargs|{{options/get|item infobox|extargs}}}}}|/}}<!-- |
+ | -->{{#arraydefine:ii:table:cols|{{{cols|{{options/get|item infobox|cols}}}}}|{{{colsep|{{#or:{{options/get|item infobox|colsep}}|/}}}}}}}<!-- default cols value from options |
||
− | -->{{#arrayprint:extargs||@@@@|{{#if:@@@@|{{#vardefine:ii:ext:@@@@|{{{@@@@|}}}}}}}}}<!-- ext parameters for view |
||
− | -->{{#vardefine:colsep|{{item infobox/options|get|colsep}}}}<!-- |
||
− | -->{{#arraydefine:ii:table:cols|{{#var:ii:ext:cols|{{#var:_item_infobox_flag_cols}}}}|{{{colsep|{{#var:colsep|/}}}}}}}<!-- default cols value from options |
||
// and pass all custom col values. |
// and pass all custom col values. |
||
− | -->{{#arrayprint:ii:table:cols||@@@@|{{#if:{{ |
+ | -->{{#arrayprint:ii:table:cols||@@@@|{{#if:{{#rmatch:@@@@|/^col:/|y}}|{{#vardefine:ii:@@@@|{{{@@@@|}}} }}}}}}<!-- |
− | -->{{#vardefine:imagemode|{{{imagemode|{{item infobox/options|get|imagemode}}}}}}}<!-- |
||
-->|custom=<!-- |
-->|custom=<!-- |
||
− | -->{{#arraydefine:extargs|template/{{{extargs|{{item infobox |
+ | -->{{#arraydefine:extargs|template/{{{extargs|{{options/get|item infobox|extargs}}}}}|/}}<!-- |
− | -->{{#arrayprint:extargs||@@@@|{{#if:@@@@|{{#vardefine:ii:ext:@@@@|{{{@@@@|}}}}}}}}}<!-- ext parameters for view |
||
− | -->{{#vardefine:imagemode|{{{imagemode|{{item infobox/options|get|imagemode}}}}}}}<!-- |
||
-->|item=<!-- |
-->|item=<!-- |
||
− | -->{{#arraydefine:extargs|mode/nolink/link/wrap/note/note2/showid/class/css/t/{{{extargs|{{item infobox |
+ | -->{{#arraydefine:extargs|mode/nolink/link/wrap/icons/note/note2/showid/class/css/t/{{{extargs|{{options/get|item infobox|extargs}}}}}|/}}<!-- |
− | -->{{#arrayprint:extargs||@@@@|{{#if:@@@@|{{#vardefine:ii:ext:@@@@|{{{@@@@|}}}}}}}}}<!-- ext parameters for view |
||
− | -->{{#vardefine:imagemode|{{{imagemode|{{item infobox/options|get|imagemode}}}}}}}<!-- |
||
-->|#default=<!-- |
-->|#default=<!-- |
||
− | -->{{#arraydefine:extargs|{{{extargs|{{item infobox |
+ | -->{{#arraydefine:extargs|{{{extargs|{{options/get|item infobox|extargs}}}}}|/}}<!-- |
− | -->{{#arrayprint:extargs||@@@@|{{#if:@@@@|{{#vardefine:ii:ext:@@@@|{{{@@@@|}}}}}}}}}<!-- |
||
− | -->{{#vardefine:imagemode|{{{imagemode|{{item infobox/options|get|imagemode}}}}}}}<!-- |
||
-->}}<!-- |
-->}}<!-- |
||
+ | -->{{#arrayprint:extargs||@@@@|{{#if:@@@@|{{#vardefine:ii:ext:@@@@|{{{@@@@|}}}}}}}}}<!-- ext parameters for view |
||
+ | -->{{#vardefine:imagemode|{{{imagemode|{{#ifeq:{{#var:viewname}}|infobox|full|{{options/get|item infobox|imagemode}}}}}}}}}<!-- image mode |
||
− | ======== DATA MODEL ======== |
||
− | //reset all fields. So they won't go wrong with multiple item infoboxes. |
||
− | -->{{#vardefine:ii:id|}}<!-- |
||
− | -->{{#vardefine:ii:autoswing|}}<!-- |
||
− | -->{{#vardefine:ii:DD2Summon|}}<!-- |
||
− | -->{{#vardefine:ii:stack|}}<!-- |
||
− | -->{{#vardefine:ii:hammer|}}<!-- |
||
− | -->{{#vardefine:ii:pick|}}<!-- |
||
− | -->{{#vardefine:ii:axe|}}<!-- |
||
− | -->{{#vardefine:ii:fishing|}}<!-- |
||
− | -->{{#vardefine:ii:bait|}}<!-- |
||
− | -->{{#vardefine:ii:damage|}}<!-- |
||
− | -->{{#vardefine:ii:damagetype|}}<!-- |
||
− | -->{{#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: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:name|}}<!-- |
||
− | -->{{#vardefine:ii:lname|}}<!-- |
||
− | -->{{#vardefine:ii:internalName|}}<!-- |
||
− | -->{{#vardefine:ii:tooltip|}}<!-- |
||
− | -->{{#vardefine:ii:namesub|}}<!-- |
||
− | -->{{#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:ammo|}}<!-- |
||
− | -->{{#vardefine:ii:useammo|}}<!-- |
||
− | -->{{#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. |
||
− | //init types array: |
||
− | -->{{#arraydefine:ii:types|{{lc:{{{type|}}}{{#if:{{{type2|}}}|/{{{type2}}}}}}}|/}}<!-- "/" seperated. |
||
− | //init listcat array: |
||
− | -->{{#arraydefine:ii:listcats|{{lc:{{{listcat|}}}{{#if:{{{listcat2|}}}|/{{{listcat2}}}}}{{#if:{{{listcat3|}}}|/{{{listcat3}}}}}{{#if:{{{listcat4|}}}|/{{{listcat4}}}}}{{#if:{{{listcat5|}}}|/{{{listcat5}}}}} }}|/}}<!-- "/" seperated. |
||
− | ext tags: buy / allversions / hardmodeonly / drop / loot |
||
− | -->{{#arraydefine:ii:tags|{{lc:{{{tags|{{{tag|}}}}}}}}|/}}<!-- "/" seperated. |
||
− | other tags: drop / loot / fished / unobtainable / developer |
||
− | -->{{#arraysearch:ii:tags|drop|0|{{#arraydefine:z|drop items}}{{#arrayunion:ii:listcats|ii:listcats|z}}}}<!-- |
||
− | -->{{#arraysearch:ii:tags|loot|0|{{#arraydefine:z|loot items}}{{#arrayunion:ii:listcats|ii:listcats|z}}}}<!-- |
||
− | -->{{#arraysearch:ii:tags|plunder|0|{{#arraydefine:z|plunder items}}{{#arrayunion:ii:listcats|ii:listcats|z}}}}<!-- |
||
− | -->{{#arraysearch:ii:tags|fished|0|{{#arraydefine:z|fished items}}{{#arrayunion:ii:listcats|ii:listcats|z}}}}<!-- |
||
− | -->{{#arraysearch:ii:tags|unobtainable|0|{{#arraydefine:z|unobtainable items}}{{#arrayunion:ii:listcats|ii:listcats|z}}}}<!-- |
||
− | -->{{#arraysearch:ii:tags|developer|0|{{#arraydefine:z|developer items}}{{#arrayunion:ii:listcats|ii:listcats|z}}}}<!-- |
||
− | -->{{#arraysearch:ii:tags|furniture|0|{{#arraydefine:z|furniture items}}{{#arrayunion:ii:listcats|ii:listcats|z}}}}<!-- |
||
− | -->{{#arraysearch:ii:tags|storage|0|{{#arraydefine:z|storage items}}{{#arrayunion:ii:listcats|ii:listcats|z}}}}<!-- |
||
− | -->{{#arraysearch:ii:tags|informational|0|{{#arraydefine:z|informational items}}{{#arrayunion:ii:listcats|ii:listcats|z}}}}<!-- |
||
− | -->{{#arraysearch:ii:tags|quest rewards|0|{{#arraydefine:z|quest rewards}}{{#arrayunion:ii:listcats|ii:listcats|z}}}}<!-- |
||
− | -->{{#arraysearch:ii:tags|light source|0|{{#arraydefine:z|light source items}}{{#arrayunion:ii:listcats|ii:listcats|z}}}}<!-- |
||
− | -->{{#arraysearch:ii:tags|novelty|0|{{#arraydefine:z|novelty items}}{{#arrayunion:ii:listcats|ii:listcats|z}}}}<!-- |
||
− | -->{{#arraysearch:ii:tags|mechanism|0|{{#arraydefine:z|mechanism items}}{{#arrayunion:ii:listcats|ii:listcats|z}}}}<!-- |
||
− | -->{{#arraysearch:ii:tags|potion ingredients|0|{{#arraydefine:z|Potion ingredients}}{{#arrayunion:ii:listcats|ii:listcats|z}}}}<!-- |
||
+ | ========================================================================================================================== |
||
− | bagloot or bag loot |
||
+ | ============================================= DATA MODEL ============================================= |
||
− | -->{{#arraydefine:z|bag loot items}}<!-- |
||
+ | ========================================================================================================================== |
||
− | -->{{#arraysearch:ii:tags|bag loot|0|{{#arrayunion:ii:listcats|ii:listcats|z}}}}<!-- |
||
+ | |||
− | -->{{#arraysearch:ii:tags|bagloot|0|{{#arrayunion:ii:listcats|ii:listcats|z}}}}<!-- |
||
+ | Note: All "#lst*" parser functions ([[gphelp:Extension:ParserPower/List handling functions]]) will trim whitespace and discard empty elements. |
||
− | -->{{#arraysearch:ii:tags|treasure bag loot|0|{{#arraydefine:z|Treasure Bag loot items}}{{#arrayunion:ii:listcats|ii:listcats|z}}}}<!-- |
||
+ | |||
− | Broadswords/Shortswords -> add swords |
||
+ | |||
− | -->{{#arraydefine:z|swords}}<!-- |
||
+ | +++++++++++++ 1. Set types, listcats, and tags from parameter input +++++++++++++ |
||
− | -->{{#arraysearch:ii:listcats|broadswords|0|{{#arrayunion:ii:listcats|z|ii:listcats}}}}<!-- |
||
+ | |||
− | -->{{#arraysearch:ii:listcats|shortswords|0|{{#arrayunion:ii:listcats|z|ii:listcats}}}}<!-- |
||
+ | // types: separated with "/". |
||
− | Explosives -> weapon |
||
− | -->{{# |
+ | -->{{#vardefine:ii:types|{{lcfirst:{{{type|}}}}}/{{lcfirst:{{{type2|}}}}}}}<!-- |
+ | // listcats: separated with "/". |
||
− | summon weapons: |
||
+ | -->{{#vardefine:ii:listcats|{{{listcat|}}}/{{{listcat2|}}}/{{{listcat3|}}}/{{{listcat4|}}}/{{{listcat5|}}}}}<!-- |
||
− | -->{{#arraysearch:ii:tags|minion|0|<!-- |
||
+ | // tags: separated with "/". |
||
− | -->{{#arraysearch:ii:types|set|0|<!-- nothing; exclude armor sets -->|<!-- |
||
− | + | -->{{#vardefine:ii:tags|{{{tags|{{{tag|}}}}}}}}<!-- |
|
+ | |||
− | -->{{#arraydefine:z|minion summon items}}{{#arrayunion:ii:listcats|z|ii:listcats}}<!-- |
||
+ | // check for certain tags to add to listcats: |
||
− | -->}}<!-- |
||
+ | * tag "xxx" -> add listcat "xxx items" |
||
+ | -->{{#vardefine:ii:listcats|{{#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|/}}|/|/}}}}<!-- |
||
+ | * tag "xxx" -> add listcat "xxx" |
||
+ | -->{{#vardefine:ii:listcats|{{#lstjoin:{{#var:ii:listcats}}|/|{{#lstfltr:potion ingredients/quest rewards|/|{{#var:ii:tags}}|/|/}}|/|/}}}}<!-- |
||
+ | * custom mapping |
||
+ | -->{{#if:{{#lstind:bagloot|{{#var:ii:tags}}|/}}|{{#vardefine:ii:listcats|{{#lstapp:{{#var:ii:listcats}}|/|bag loot items}}}}}}<!-- |
||
+ | -->{{#if:{{#lstind:treasure bag loot|{{#var:ii:tags}}|/}}|{{#vardefine:ii:listcats|{{#lstapp:{{#var:ii:listcats}}|/|Treasure Bag loot items}}}}}}<!-- |
||
+ | |||
+ | // check for certain listcats: |
||
+ | * listcat "Broadswords"/"Shortswords" -> add listcat "Swords" |
||
+ | -->{{#if:{{#lstfltr:broadswords/shortswords|/|{{#var:ii:listcats}}|}}|{{#vardefine:ii:listcats|{{#lstapp:{{#var:ii:listcats}}|/|swords}}}}}}<!-- |
||
+ | * listcat "Explosives" -> add type "weapon" |
||
+ | -->{{#if:{{#lstind:explosives|{{#var:ii:listcats}}|/}}|{{#vardefine:ii:types|{{#lstapp:{{#var:ii:types}}|/|weapon}}}}}}<!-- |
||
+ | |||
+ | // is armor/vanity set? |
||
+ | -->{{#vardefine:ii:isArmorSet|{{#lstind:set|{{#var:ii:types}}|/}}}}<!-- |
||
+ | |||
+ | // summon weapons: |
||
+ | -->{{#if:{{#var:ii:isArmorSet}}||<!-- exclude armor sets (e.g. Stardust armor) |
||
+ | -->{{#if:{{#lstfltr:minion/sentry|/|{{#var:ii:tags}}|/|/}}|<!-- |
||
+ | * tag "minion"/"sentry" -> add listcat "minion/sentry summon items" |
||
+ | -->{{#vardefine:ii:listcats|{{#lstjoin:{{#var:ii:listcats}}|/|{{#lstmap:{{#lstfltr:minion/sentry|/|{{#var:ii:tags}}|/|/}}|/|@@@|@@@ summon items|/}}|/|/}}}}<!-- |
||
+ | * add type "weapon" |
||
+ | -->{{#vardefine:ii:types|{{#lstapp:{{#var:ii:types}}|/|weapon}}}}<!-- |
||
+ | -->}}<!-- |
||
-->}}<!-- |
-->}}<!-- |
||
+ | |||
− | -->{{#arraysearch:ii:tags|sentry|0|<!-- |
||
+ | |||
− | -->{{#arraysearch:ii:types|set|0|<!-- nothing; exclude armor sets -->|<!-- |
||
+ | +++++++++++++ 2. Fetch automatic data +++++++++++++ |
||
− | -->{{#arraydefine:z|weapon}}{{#arrayunion:ii:types|z|ii:types}}<!-- |
||
+ | |||
− | -->{{#arraydefine:z|sentry summon items}}{{#arrayunion:ii:listcats|z|ii:listcats}}<!-- |
||
+ | -->{{#vardefine:ii:auto_id|{{#if:{{{auto|}}}|<!-- |
||
+ | -->{{#if:{{isNumber|{{{auto|}}}}}|<!-- |
||
+ | -->{{{auto|}}}<!-- $auto is number, use it as-is |
||
+ | -->|<!-- |
||
+ | -->{{{id|{{ItemIdFromName|{{{name|{{#var:itemnamefrompagename}}}}}}}}}}<!-- $id -> idFromName |
||
-->}}<!-- |
-->}}<!-- |
||
− | -->}}<!-- |
+ | -->}}}}<!-- |
+ | -->{{#vardefine:ii:auto_id|{{#var:ii:auto_id|0}}}}<!-- default to 0 if $auto is empty/unset or $id is empty/unset or idFromName failed |
||
+ | -->{{#invoke:Iteminfo|getInfo|prefix=ii:info:|id={{#var:ii:auto_id}}}}<!-- fetch data or reset the data-filled vars |
||
+ | |||
− | //==auto vars== |
||
+ | +++++++++++++ 3. Process auto data, overriding with manual input if necessary +++++++++++++ |
||
− | -->{{#if:{{{auto|}}}|<!-- |
||
+ | |||
− | -->{{#vardefine:__auto_id|0}}<!-- 0 = reset/default |
||
+ | ---- id and name ---- |
||
− | -->{{#vardefine:__auto_id|<!-- |
||
+ | -->{{#vardefine:ii:id|{{{id|{{#ifexpr:{{#dplvar:ii:info:type}}|{{#dplvar:ii:info:type}}}}}}}}}<!-- |
||
− | -->{{#iferror:{{#expr:1+{{{auto|}}}}}|<!-- if not is_number($auto) |
||
− | + | -->{{#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}}}}<!-- |
||
+ | -------- |
||
+ | |||
+ | ---- autoswing and stack ---- |
||
+ | -->{{#vardefine:ii:autoswing|{{{autoswing|{{#dplvar:ii:info:autoReuse}}}}}}}<!-- |
||
+ | -->{{#vardefine:ii:stack|<!-- |
||
+ | -->{{#if:{{{stack|}}}|<!-- |
||
+ | -->{{#rreplace:{{{stack|}}}|@@@@|{{#dplvar:ii:info:maxStack}}}}<!-- |
||
+ | -->|<!-- |
||
+ | -->{{#dplvar:ii:info:maxStack}}<!-- |
||
+ | -->}}<!-- |
||
+ | -->}}<!-- |
||
+ | -------- |
||
+ | |||
+ | ---- hammer, pick, axe power ---- |
||
+ | -->{{#vardefine:ii:hammer|{{#ifexpr:{{#dplvar:ii:info:hammer}}|{{#dplvar:ii:info:hammer}}%}}}}<!-- |
||
+ | -->{{#if:{{{hammer|}}}|<!-- |
||
+ | -->{{#vardefine:ii:hammer|{{#rreplace:{{{hammer|}}}|@@@@|{{#var:ii:hammer}}}}}}<!-- |
||
+ | -->}}<!-- |
||
+ | -->{{#vardefine:ii:pick|{{#ifexpr:{{#dplvar:ii:info:pick}}|{{#dplvar:ii:info:pick}}%}}}}<!-- |
||
+ | -->{{#if:{{{pick|}}}|<!-- |
||
+ | -->{{#vardefine:ii:pick|{{#rreplace:{{{pick|}}}|@@@@|{{#var:ii:pick}}}}}}<!-- |
||
+ | -->}}<!-- |
||
+ | -->{{#vardefine:ii:axe|{{#ifexpr:{{#dplvar:ii:info:axe}}|{{#expr:{{#dplvar:ii:info:axe}}*5}}%}}}}<!-- |
||
+ | -->{{#if:{{{axe|}}}|<!-- |
||
+ | -->{{#vardefine:ii:axe|{{#rreplace:{{{axe|}}}|@@@@|{{#var:ii:axe}}}}}}<!-- |
||
+ | -->}}<!-- |
||
+ | // add "tool" to types, and try to detect chainsaws/drills/hamaxes... |
||
+ | -->{{#ifexpr:{{#dplvar:ii:info:axe}}{{#dplvar:ii:info:hammer}}{{#dplvar:ii:info:pick}}|<!-- if at least one of the three is non-zero |
||
+ | -->{{#vardefine:ii:types|{{#lstapp:{{#var:ii:types}}|/|tool}}}}<!-- |
||
+ | // hammers and hamaxes |
||
+ | -->{{#ifexpr:{{#dplvar:ii:info:hammer}}|<!-- |
||
+ | -->{{#ifexpr:{{#dplvar:ii:info:axe}}|<!-- |
||
+ | -->{{#vardefine:ii:listcats|{{#lstapp:{{#var:ii:listcats}}|/|hamaxes}}}}<!-- |
||
+ | -->|<!-- |
||
+ | -->{{#vardefine:ii:listcats|{{#lstapp:{{#var:ii:listcats}}|/|hammers}}}}<!-- |
||
+ | -->}}<!-- |
||
+ | -->}}<!-- |
||
+ | // axes and chainsaws |
||
+ | -->{{#ifexpr:{{#dplvar:ii:info:axe}}|<!-- |
||
+ | -->{{#ifexpr:{{#dplvar:ii:info:hammer}}||<!-- exclude hamaxes |
||
+ | -->{{#ifexpr:{{#dplvar:ii:info:shoot}}|<!-- |
||
+ | -->{{#vardefine:ii:listcats|{{#lstapp:{{#var:ii:listcats}}|/|chainsaws}}}}<!-- |
||
+ | -->|<!-- |
||
+ | -->{{#vardefine:ii:listcats|{{#lstapp:{{#var:ii:listcats}}|/|axes}}}}<!-- |
||
+ | -->}}<!-- |
||
+ | -->}}<!-- |
||
+ | -->}}<!-- |
||
+ | // pickaxes and drills |
||
+ | -->{{#ifexpr:{{#dplvar:ii:info:pick}}|<!-- |
||
+ | -->{{#ifexpr:{{#dplvar:ii:info:shoot}}|<!-- |
||
+ | -->{{#vardefine:ii:listcats|{{#lstapp:{{#var:ii:listcats}}|/|drills}}}}<!-- |
||
-->|<!-- |
-->|<!-- |
||
+ | -->{{#vardefine:ii:listcats|{{#lstapp:{{#var:ii:listcats}}|/|pickaxes}}}}<!-- |
||
− | -->{{{auto|}}}<!-- //$auto is number. |
||
− | -->}}<!-- |
+ | -->}}<!-- |
-->}}<!-- |
-->}}<!-- |
||
+ | -->}}<!-- |
||
− | -->{{#invoke:Iteminfo|getInfo|id={{#var:__auto_id}}|prefix=ii:info:}}<!-- fetch data or reset those data filed vars. |
||
+ | -------- |
||
− | // post process and save into "standard" vars: |
||
+ | |||
− | -->{{#vardefine:ii:ammo|{{#dplvar:ii:info:ammo}}}}<!-- |
||
+ | ---- pick-/hammerreq ---- |
||
− | -->{{#ifexpr:{{#var:ii:ammo}}|<!-- Ammo: |
||
+ | -->{{#vardefine:ii:pickreq|{{{pickreq|}}}}}<!-- |
||
− | //add "Ammunition" to type. |
||
− | + | -->{{#vardefine:ii:hammerreq|{{{hammerreq|}}}}}<!-- |
|
+ | -------- |
||
− | //add ammo type to listcat: (by AmmoID ) |
||
+ | |||
− | -->{{#arraydefine:z|{{#switch:{{#var:ii:ammo}}<!-- |
||
+ | ---- ammo type ---- |
||
− | -->|40=arrows<!-- |
||
+ | -->{{#vardefine:ii:ammo|{{#dplvar:ii:info:ammo}}}}<!-- |
||
− | -->|71=coins<!-- |
||
+ | -->{{#ifexpr:{{#var:ii:ammo}}|<!-- Ammo type/cate |
||
− | -->|97=bullets<!-- |
||
+ | // add "Ammunition" to type. |
||
− | -->|169=sands<!-- |
||
+ | -->{{#vardefine:ii:types|{{#lstapp:{{#var:ii:types}}|/|ammunition}}}}<!-- |
||
− | -->|283=darts<!-- |
||
+ | // add ammo type to listcat: (by AmmoID) |
||
− | -->|771=rockets<!-- |
||
+ | -->{{#vardefine:ii:listcats|{{#lstapp:{{#var:ii:listcats}}|/|{{#switch:{{#var:ii:ammo}}<!-- |
||
− | -->|780=solutions<!-- |
||
− | -->|931=flares<!-- |
||
− | -->}}}}<!-- |
||
− | -->{{#arrayunion:ii:listcats|z|ii:listcats}}<!-- |
||
− | -->}}<!-- |
||
− | // use ammo type |
||
− | -->{{#vardefine:ii:useammo|{{#switch:{{#dplvar:ii:info:useAmmo}}<!-- |
||
− | -->|23=gel<!-- |
||
-->|40=arrows<!-- |
-->|40=arrows<!-- |
||
-->|71=coins<!-- |
-->|71=coins<!-- |
||
− | -->|75=fallenStar<!-- |
||
-->|97=bullets<!-- |
-->|97=bullets<!-- |
||
-->|169=sands<!-- |
-->|169=sands<!-- |
||
-->|283=darts<!-- |
-->|283=darts<!-- |
||
− | -->|353=ale<!-- |
||
-->|771=rockets<!-- |
-->|771=rockets<!-- |
||
-->|780=solutions<!-- |
-->|780=solutions<!-- |
||
-->|931=flares<!-- |
-->|931=flares<!-- |
||
− | + | -->}}}}}}<!-- |
|
− | + | -->}}<!-- |
|
+ | // use ammo type |
||
− | -->|1783=candyCorn<!-- |
||
+ | -->{{#vardefine:ii:useammo|{{#switch:{{#dplvar:ii:info:useAmmo}}<!-- |
||
− | -->|1785=jackOLantern<!-- |
||
− | + | -->|23=gel<!-- |
|
− | + | -->|40=arrows<!-- |
|
− | + | -->|71=coins<!-- |
|
− | --> |
+ | -->|75=fallenStar<!-- |
+ | -->|97=bullets<!-- |
||
− | -->{{#vardefine:ii:id|{{#ifexpr:{{#dplvar:ii:info:type}}|{{#dplvar:ii:info:type}}}}}}<!-- |
||
+ | -->|169=sands<!-- |
||
− | -->{{#vardefine:ii:name|{{#dplvar:ii:info:name}}}}<!-- |
||
+ | -->|283=darts<!-- |
||
− | -->{{#vardefine:ii:internalName|{{#dplvar:ii:info:internalName}}}}<!-- |
||
+ | -->|353=ale<!-- |
||
− | -->{{#vardefine:ii:autoswing|{{#dplvar:ii:info:autoReuse}}}}<!-- |
||
+ | -->|771=rockets<!-- |
||
− | -->{{#vardefine:ii:stack|{{#dplvar:ii:info:maxStack}}}}<!-- |
||
+ | -->|780=solutions<!-- |
||
− | -->{{#vardefine:ii:hammer|{{#dplvar:ii:info:hammer}}}}<!-- |
||
+ | -->|931=flares<!-- |
||
− | -->{{#vardefine:ii:pick|{{#dplvar:ii:info:pick}}}}<!-- |
||
+ | -->|949=snowball<!-- |
||
− | -->{{#vardefine:ii:axe|{{#expr:{{#dplvar:ii:info:axe}}*5}}}}<!-- |
||
+ | -->|1261=styngerBolt<!-- |
||
− | -->{{#vardefine:ii:fishing|{{#dplvar:ii:info:fishingPole}}}}<!-- |
||
+ | -->|1783=candyCorn<!-- |
||
− | -->{{#vardefine:ii:bait|{{#dplvar:ii:info:bait}}}}<!-- |
||
+ | -->|1785=jackOLantern<!-- |
||
− | -->{{#ifexpr:{{#var:ii:bait|0}}|<!-- bait? |
||
+ | -->|1836=stake<!-- |
||
− | -->{{#arraydefine:z|bait}}{{#arrayunion:ii:types|ii:types|z}}<!-- |
||
+ | -->|3108=nailFriendly<!-- |
||
+ | -->}}}}<!-- |
||
+ | -------- |
||
+ | |||
+ | ---- various types, listcats, and tags ---- |
||
+ | -->{{#if:{{#dplvar:ii:info:accessory}}|<!-- accessory? |
||
+ | -->{{#vardefine:ii:types|{{#lstapp:{{#var:ii:types}}|/|accessory}}}}<!-- |
||
+ | -->}}<!-- |
||
+ | -->{{#if:{{#dplvar:ii:info:cartTrack}}|<!-- cart track? |
||
+ | -->{{#vardefine:ii:listcats|{{#lstapp:{{#var:ii:listcats}}|/|minecart track items}}}}<!-- |
||
+ | -->}}<!-- |
||
+ | -->{{#ifexpr:{{#dplvar:ii:info:dye}}|<!-- is dye? |
||
+ | -->{{#vardefine:ii:types|{{#lstapp:{{#var:ii:types}}|/|dye}}}}<!-- |
||
+ | -->}}<!-- |
||
+ | -->{{#ifexpr:{{#or:{{#dplvar:ii:info:hairDye}}|-1}}>-1|<!-- is hair dye? |
||
+ | -->{{#vardefine:ii:types|{{#lstapp:{{#var:ii:types}}|/|hair dye}}}}<!-- |
||
+ | -->}}<!-- |
||
+ | -->{{#if:{{#dplvar:ii:info:string}}|<!-- string? |
||
+ | -->{{#vardefine:ii:tags|{{#lstapp:{{#var:ii:tags}}|/|string}}}}<!-- |
||
+ | -->}}<!-- |
||
+ | -->{{#if:{{#dplvar:ii:info:vanity}}|<!-- vanity? |
||
+ | -->{{#vardefine:ii:types|{{#lstapp:{{#var:ii:types}}|/|vanity}}}}<!-- |
||
+ | -->}}<!-- |
||
+ | -->{{#if:{{#dplvar:ii:info:mech}}|<!-- mech? |
||
+ | -->{{#vardefine:ii:types|{{#lstapp:{{#var:ii:types}}|/|mechanism}}}}<!-- |
||
+ | -->}}<!-- |
||
+ | -->{{#ifeq:{{#invoke:Iteminfo/idSets|value|IsFood|{{#var:ii:auto_id}}}}|true|<!-- food? |
||
+ | -->{{#vardefine:ii:types|{{#lstapp:{{#var:ii:types}}|/|food}}}}<!-- |
||
+ | -->}}<!-- |
||
+ | |||
+ | ---- fishing power and bait ---- |
||
+ | -->{{#vardefine:ii:fishing|{{#dplvar:ii:info:fishingPole}}}}<!-- |
||
+ | -->{{#ifeq:{{{fishing|-unset}}}|{{{fishing|unset-}}}|<!-- allow "|fishing=" to suppress fishing power display |
||
+ | -->{{#vardefine:ii:fishing|{{#rreplace:{{{fishing|}}}|@@@@|{{percent|{{#var:ii:fishing}}%}}}}}}<!-- |
||
+ | -->}}<!-- |
||
+ | -->{{#vardefine:ii:bait|{{{bait|{{#dplvar:ii:info:bait}}}}}}}<!-- |
||
+ | -->{{#ifexpr:{{#or:{{#dplvar:ii:info:bait}}|0}}|<!-- bait? |
||
+ | -->{{#vardefine:ii:types|{{#lstapp:{{#var:ii:types}}|/|bait}}}}<!-- |
||
+ | -->}}<!-- |
||
+ | |||
+ | ---- damage and damagetype ---- |
||
+ | // use damage if damage>0 or "weapon" in types |
||
+ | -->{{#vardefine:ii:damage|{{#ifexpr:(0{{#dplvar:ii:info:damage}}>0) or {{#or:{{#lstind:weapon|{{#var:ii:types}}|/}}|0}}|{{#dplvar:ii:info:damage}}}}}}<!-- |
||
+ | -->{{#ifeq:{{{damage|-unset}}}|{{{damage|unset-}}}|<!-- allow "|damage=" to suppress damage display |
||
+ | -->{{#vardefine:ii:damage|{{#rreplace:{{{damage|}}}|@@@@|{{#var:ii:damage}}}}}}<!-- |
||
+ | -->}}<!-- |
||
+ | -->{{#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, non-weapon items with autodamage |
||
+ | -->{{#ifexpr:0{{#dplvar:ii:info:damage}}>0|<!-- |
||
+ | -->{{#if:{{#lstind:tool|{{#var:ii:types}}|/}}|<!-- |
||
+ | -->{{#vardefine:ii:listcats|{{#lstapp:{{#var:ii:listcats}}|/|weapon items}}}}<!-- tools 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 |
||
+ | -->{{#vardefine:ii:types|{{#lstapp:{{#var:ii:types}}|/|weapon}}}}<!-- add "weapon" to types |
||
+ | -->}}<!-- |
||
+ | -->}}<!-- |
||
+ | -->}}<!-- |
||
+ | -->}}<!-- |
||
+ | // add "<auto damagetype> weapons" to listcats |
||
+ | -->{{#if:{{#var:ii:damagetype}}|<!-- |
||
+ | -->{{#if:{{#lstind:weapon|{{#var:ii:types}}|/}}|<!-- |
||
+ | -->{{#vardefine:ii:listcats|{{#lstapp:{{#var:ii:listcats}}|/|{{#var:ii:damagetype}} weapons}}}}<!-- |
||
-->}}<!-- |
-->}}<!-- |
||
+ | -->}}<!-- |
||
− | -->{{#if:{{#dplvar:ii:info:accessory}}|<!-- accessory? |
||
+ | // NOTE: for all non-auto damage type (input by |damagetype=) including pre-1.4 throwing weapons, you should manually add "<damagetype> weapons" (e.g. "throwing weapons") to their listcats, because we've already added the auto damagetype to types (in consequence, listcats) |
||
− | -->{{#arraydefine:z|accessory}}{{#arrayunion:ii:types|z|ii:types}}<!-- |
||
+ | // manually override: |
||
− | -->}}<!-- |
||
− | + | -->{{#vardefine:ii:damagetype|<!-- |
|
+ | -->{{#if:{{{damagetype|}}}|<!-- |
||
− | -->{{#arraydefine:z|Minecart track items}}{{#arrayunion:ii:listcats|z|ii:listcats}}<!-- |
||
+ | -->{{#rreplace:{{{damagetype|}}}|@@@@|{{l10n|item_infobox|damagetype:{{lc:{{#var:ii:damagetype}}}}}}}}<!-- |
||
− | -->}}<!-- |
||
+ | -->|<!-- |
||
− | -->{{#ifexpr:{{#dplvar:ii:info:dye}}|<!-- is dye? |
||
− | -->{{# |
+ | -->{{#var:ii:damagetype}}<!-- |
− | -->}}<!-- |
||
− | -->{{#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}}<!-- |
||
− | -->}}<!-- |
||
− | -->{{#ifeq:{{#invoke:Iteminfo/idSets|value|IsAKite|{{#var:ii:id}}}}|true|<!-- IsAKite ? |
||
− | -->{{#arraydefine:z|kite}}{{#arrayunion:ii:types|ii:types|z}}<!-- |
||
-->}}<!-- |
-->}}<!-- |
||
+ | -->}}<!-- |
||
+ | -------- |
||
+ | ---- research ---- |
||
− | add "tool" to types, and try to detect chainsaws/drills/hamaxes... |
||
− | + | -->{{#vardefine:ii:sacrifices|{{{research|{{#ifexpr:0{{#dplvar:ii:info:sacrifices}}>0|{{#dplvar:ii:info:sacrifices}}}}}}}}}<!-- |
|
+ | -------- |
||
− | -->{{#arraydefine:z|tool}}{{#arrayunion:ii:types|z|ii:types}}<!-- |
||
+ | |||
− | //hammer & hamaxe |
||
+ | ---- knockback ---- |
||
− | -->{{#ifexpr:{{#dplvar:ii:info:hammer}}|<!-- |
||
+ | // use kb if autokb>0, always use kb for all axe/hammer/pick tools, always use kb for all weapons |
||
− | -->{{#ifexpr:{{#dplvar:ii:info:axe}}<!-- |
||
+ | -->{{#vardefine:ii:knockback|<!-- |
||
− | -->|{{#arraydefine:z|hamaxes}}{{#arrayunion:ii:listcats|z|ii:listcats}}<!-- |
||
+ | -->{{#ifexpr:(0{{#dplvar:ii:info:knockBack}}>0) or 0{{#dplvar:ii:info:axe}} or 0{{#dplvar:ii:info:hammer}} or 0{{#dplvar:ii:info:pick}} or 0{{#lstind:weapon|{{#var:ii:types}}|/}}|{{#dplvar:ii:info:knockBack}}}}<!-- |
||
− | -->|{{#arraydefine:z|hammers}}{{#arrayunion:ii:listcats|z|ii:listcats}}<!-- |
||
+ | -->}}<!-- |
||
+ | -->{{#ifeq:{{{knockback|-unset}}}|{{{knockback|unset-}}}|<!-- allow "|knockback=" to suppress knockback display |
||
+ | -->{{#vardefine:ii:knockback|{{#rreplace:{{{knockback|}}}|@@@@|{{knockback|{{#var:ii:knockback}}|full=y}}}}}}<!-- |
||
+ | -->}}<!-- |
||
+ | -------- |
||
+ | |||
+ | ---- defense ---- |
||
+ | -->{{#vardefine:ii:defense|{{#ifexpr:0{{#dplvar:ii:info:defense}}>0|<!-- |
||
+ | -->{{#dplvar:ii:info:defense}}<!-- |
||
+ | -->|<!-- |
||
+ | -->{{#if:{{#var:ii:isArmorSet}}|{{#if:{{#lstind:vanity|{{#var:ii:types}}|/}}||<!-- auto defense for non-vanity armor sets |
||
+ | -->{{#ifexpr:{{#explode:{{#explode:{{getSetInfo|{{#var:ii:name}}|defense|raw=y}}|₪}}|¤|1}}|{{getSetInfo|{{#var:ii:name}}|defense}}}}<!-- |
||
+ | -->}}}}<!-- |
||
+ | -->}}}}<!-- |
||
+ | -->{{#if:{{{defense|}}}|<!-- |
||
+ | -->{{#vardefine:ii:defense|{{#rreplace:{{{defense|}}}|@@@@|{{#var:ii:defense|0}}}}}}<!-- |
||
+ | -->}}<!-- |
||
+ | -------- |
||
+ | |||
+ | ---- tile (range) boost ---- |
||
+ | -->{{#vardefine:ii:tileboost|{{{tileboost|{{#ifexpr:{{#dplvar:ii:info:tileBoost}}|{{#dplvar:ii:info:tileBoost}}}}}}}}}<!-- |
||
+ | -------- |
||
+ | |||
+ | ---- mana cost and mana and health heal ---- |
||
+ | -->{{#vardefine:ii:mana|{{#ifexpr:0{{#dplvar:ii:info:mana}}>0|{{#dplvar:ii:info:mana}}}}}}<!-- |
||
+ | -->{{#if:{{{mana|}}}|<!-- |
||
+ | -->{{#vardefine:ii:mana|{{#rreplace:{{{mana|}}}|@@@@|{{#var:ii:mana}}}}}}<!-- |
||
+ | -->}}<!-- |
||
+ | -->{{#vardefine:ii:mheal|{{#ifexpr:0{{#dplvar:ii:info:healMana}}>0|{{#dplvar:ii:info:healMana}}}}}}<!-- |
||
+ | -->{{#if:{{{mheal|}}}|<!-- |
||
+ | -->{{#vardefine:ii:mheal|{{#rreplace:{{{mheal|}}}|@@@@|{{#var:ii:healMana}}}}}}<!-- |
||
+ | -->}}<!-- |
||
+ | -->{{#vardefine:ii:hheal|{{#ifexpr:0{{#dplvar:ii:info:healLife}}>0|{{#dplvar:ii:info:healLife}}}}}}<!-- |
||
+ | -->{{#if:{{{hheal|}}}|<!-- |
||
+ | -->{{#vardefine:ii:hheal|{{#rreplace:{{{hheal|}}}|@@@@|{{#var:ii:healLife}}}}}}<!-- |
||
+ | -->}}<!-- |
||
+ | -------- |
||
+ | |||
+ | ---- critical strike chance ---- |
||
+ | -->{{#vardefine:ii:critical|<!-- |
||
+ | -->{{#if:{{#var:ii:damage}}|<!-- if $damage |
||
+ | -->{{#ifexpr:0{{#dplvar:ii:info:crit}}>0|<!-- if auto critical |
||
+ | -->{{#expr:{{#dplvar:ii:info:crit}}+4}}<!-- use autocrit+4 |
||
+ | -->|<!-- |
||
+ | -->{{#if:{{#lstfltr:weapon/tool|/|{{#var:ii:types}}|/}}|<!-- $type=(weapon or tool) |
||
+ | if $damagetype and ("summon" not in $damagetype) then 4 |
||
+ | -->{{#if:{{#var:ii:damagetype}}|{{#if:{{#rmatch:{{#var:ii:damagetype}}|/summon/i|y}}||4}}}}<!-- |
||
-->}}<!-- |
-->}}<!-- |
||
− | -->}}<!-- |
||
− | //axe and chainsaws |
||
− | -->{{#ifexpr:{{#dplvar:ii:info:axe}}|<!-- |
||
− | -->{{#ifexpr:{{#dplvar:ii:info:hammer}}||<!-- exclude hamaxe |
||
− | -->{{#ifexpr:{{#dplvar:ii:info:shoot}}<!-- |
||
− | -->|{{#arraydefine:z|chainsaws}}{{#arrayunion:ii:listcats|z|ii:listcats}}<!-- |
||
− | -->|{{#arraydefine:z|axes}}{{#arrayunion:ii:listcats|z|ii:listcats}}<!-- |
||
− | -->}}<!-- |
||
− | -->}}<!-- |
||
− | -->}}<!-- |
||
− | //pickaxe and drills |
||
− | -->{{#ifexpr:{{#dplvar:ii:info:pick}}|<!-- |
||
− | -->{{#ifexpr:{{#dplvar:ii:info:shoot}}<!-- |
||
− | -->|{{#arraydefine:z|drills}}{{#arrayunion:ii:listcats|z|ii:listcats}}<!-- |
||
− | -->|{{#arraydefine:z|pickaxes}}{{#arrayunion:ii:listcats|z|ii:listcats}}<!-- |
||
− | -->}}<!-- |
||
− | -->}}<!-- |
||
− | -->}}<!-- |
||
− | //if autodamage>0 then use, and always use damage for all weapons |
||
− | -->{{#vardefine:ii:damage|{{#ifexpr:({{#dplvar:ii:info:damage}}>0) or {{#arraysearch:ii:types|weapon|0|1|0}}|{{#dplvar:ii:info:damage}}}}}}<!-- |
||
− | -->{{#vardefine:ii:damagetype|{{#if:{{#var:ii:damage}}|<!-- |
||
− | -->{{#if:{{#dplvar:ii:info:melee}}|Melee|<!-- |
||
− | -->{{#if:{{#dplvar:ii:info:ranged}}|Ranged|<!-- |
||
− | -->{{#if:{{#dplvar:ii:info:magic}}|Magic|<!-- |
||
− | -->{{#if:{{#dplvar:ii:info:summon}}|Summon|<!-- |
||
− | -->{{#if:{{#dplvar:ii:info:thrown}}|Throwing|<!-- |
||
− | -->}}}}}}}}}}<!-- |
||
− | -->}}}}<!-- |
||
− | //items with damage |
||
− | -->{{#ifexpr:{{#dplvar:ii:info:damage}}>0|<!-- |
||
− | -->{{#arraysearch:ii:types|tool|0|<!-- |
||
− | -->{{#arraydefine:z|weapon items}}{{#arrayunion:ii:listcats|z|ii:listcats}}<!-- // tool with damage need "weapon items" in listcat |
||
− | -->|<!-- else |
||
− | -->{{#arraysearch:ii:types|ammunition|0||<!-- is not ammo |
||
− | -->{{#if:{{#dplvar:ii:info:accessory}}||<!-- and is not accessory |
||
− | -->{{#arraydefine:z|weapon}}{{#arrayunion:ii:types|z|ii:types}}<!-- added "weapon" to types |
||
− | -->}}<!-- |
||
− | -->}}<!-- |
||
-->}}<!-- |
-->}}<!-- |
||
-->}}<!-- |
-->}}<!-- |
||
+ | -->}}<!-- |
||
− | // if autokb>0 then use it, always use kb for all axe/hammer/pick(/drill) tools, always use kb for all weapons |
||
− | + | -->{{#if:{{{critical|}}}|<!-- |
|
+ | -->{{#vardefine:ii:critical|{{#rreplace:{{{critical|}}}|@@@@|{{#var:ii:critical}}%}}}}<!-- |
||
− | -->{{#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}}}}<!-- |
||
+ | -->}}<!-- |
||
+ | -------- |
||
+ | |||
+ | ---- use time and tool speed ---- |
||
+ | -->{{#vardefine:ii:use|{{#ifexpr:0{{#dplvar:ii:info:useAnimation}}<100|{{#dplvar:ii:info:useAnimation}}}}}}<!-- |
||
+ | -->{{#ifeq:{{{use|-unset}}}|{{{use|unset-}}}|<!-- allow "|use=" to suppress use time display |
||
+ | -->{{#vardefine:ii:use|{{#rreplace:{{{use|}}}|@@@@|{{use time|{{#var:ii:use}}|full=y}}}}}}<!-- |
||
+ | -->}}<!-- |
||
+ | -->{{#vardefine:ii:toolspeed|<!-- |
||
+ | -->{{#ifexpr:(0{{#dplvar:ii:info:useAnimation}}<100) and (0{{#dplvar:ii:info:useTime}}<100) and 0{{#dplvar:ii:info:axe}}{{#dplvar:ii:info:hammer}}{{#dplvar:ii:info:pick}}|<!-- |
||
+ | -->{{#dplvar:ii:info:useTime}}<!-- |
||
-->}}<!-- |
-->}}<!-- |
||
+ | -->}}<!-- |
||
− | -->{{#vardefine:ii:defense|{{#ifexpr:{{#dplvar:ii:info:defense}}>0|{{#dplvar:ii:info:defense}}}}}}<!-- |
||
+ | -->{{#if:{{{toolspeed|}}}|<!-- |
||
− | -->{{#vardefine:ii:tileboost|{{#ifexpr:{{#dplvar:ii:info:tileBoost}}<>0|{{#dplvar:ii:info:tileBoost}}}}}}<!-- |
||
− | -->{{#vardefine:ii: |
+ | -->{{#vardefine:ii:toolspeed|{{#rreplace:{{{toolspeed|}}}|@@@@|{{#var:ii:toolspeed}}}}}}<!-- |
+ | -->}}<!-- |
||
− | -->{{#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|<!-- |
||
+ | ---- buffs and debuffs ---- |
||
− | -->{{#ifexpr:{{#var:ii:damage|0}}>0|<!-- if autodamage exist |
||
− | + | -->{{#vardefine:ii:buffs|}}<!-- |
|
− | + | -->{{#vardefine:ii:debuffs|}}<!-- |
|
− | + | -->{{#vardefine:ii:buff-1:id|}}<!-- |
|
− | + | -->{{#vardefine:ii:buff-1:duration|}}<!-- |
|
+ | -->{{#vardefine:ii:debuff-1:id|}}<!-- |
||
− | -->{{#if:{{#var:ii:damagetype}}|{{#ifeq:{{#var:ii:damagetype}}|Summon||4}}}}<!-- if $damagetype and $damagetype != summon then 4% |
||
+ | -->{{#vardefine:ii:debuff-1:duration|}}<!-- |
||
− | -->}}<!-- |
||
+ | // auto buff info: |
||
+ | -->{{#vardefine:ii:autobuff:id|{{#ifexpr:0{{#dplvar:ii:info:buffType}}>0|<!-- |
||
+ | -->{{#dplvar:ii:info:buffType}}<!-- |
||
+ | -->|<!-- |
||
+ | -->{{#ifexpr:{{#or:{{#dplvar:ii:info:mountType}}|-1}}>-1|{{buffIdFromName|{{getMountInfo|{{#dplvar:ii:info:mountType}}|name}}}}}}<!-- |
||
+ | -->}}}}<!-- |
||
+ | -->{{#if:{{#var:ii:autobuff:id}}|<!-- |
||
+ | -->{{#vardefine:ii:autobuff:type|{{lc:{{getBuffInfo|{{#var:ii:autobuff:id}}|type}}}}}}<!-- |
||
+ | -->{{#vardefine:ii:autobuff:duration|{{#ifexpr:0{{#dplvar:ii:info:buffTime}}>0|{{duration|{{#expr:{{#dplvar:ii:info:buffTime}}/60}}}}}}}}<!-- in seconds (autoduration is in millis) |
||
+ | -->{{#vardefine:ii:{{#var:ii:autobuff:type}}-1:id|{{#var:ii:autobuff:id}}}}<!-- |
||
+ | -->{{#vardefine:ii:{{#var:ii:autobuff:type}}-1:duration|{{#var:ii:autobuff:duration}}}}<!-- |
||
+ | -->{{#vardefine:ii:{{#var:ii:autobuff:type}}s|-1}}<!-- |
||
+ | -->}}<!-- |
||
+ | |||
+ | // loop: {{#var:bufftype}} is "buff" during first iteration and "debuff" during second iteration |
||
+ | // (buff and debuff handling is identical, only the names are different) |
||
+ | -->{{#loop:_i|0|2|{{#vardefine:bufftype|{{#ifexpr:{{#var:_i}}|de}}buff}}<!-- |
||
+ | // we have an ii:buffs and an ii:debuffs array ("ii:{{#var:bufftype}}s"), which hold the indices of all $de-/buff parameters |
||
+ | // the unindexed "|buff=" / "|debuff=" parameters are represented by "-1", which is always the first element of these arrays, if those parameters are set |
||
+ | // the "-1" is therefore also set if there is buff information in the autodata, since that auto information can be overwritten using the unindexed parameter |
||
+ | -->{{#if:{{{ {{#var:bufftype}}|}}}|{{#vardefine:ii:{{#var:bufftype}}s|-1}}}}<!-- set first array element to -1 |
||
+ | -->{{#forargs:{{#var:bufftype}}|k|_|{{#if:{{#rmatch:{{#var:k}}|/^\d+$/|y}}|<!-- for all parameters: if parameter name is "{de-/buff}<integer>" |
||
+ | -->{{#vardefine:ii:{{#var:bufftype}}s|{{#lstapp:{{#var:ii:{{#var:bufftype}}s}}|₪|{{#var:k}}}}}}<!-- then add buff index to de-/buffs array |
||
+ | -->}}}}<!-- |
||
+ | -->{{#vardefine:ii:{{#var:bufftype}}s|{{#lstsrt:{{#var:ii:{{#var:bufftype}}s}}|₪|₪|numeric}}}}<!-- sort parameter indices |
||
+ | -->{{#loop:i|1|{{#lstcnt:{{#var:ii:{{#var:bufftype}}s}}|₪}}|<!-- iterate over parameter indices |
||
+ | -->{{#vardefine:j|{{#lstelem:{{#var:ii:{{#var:bufftype}}s}}|₪|{{#var:i}}}}}}<!-- j is the parameter index |
||
+ | -->{{#vardefine:k|{{#ifeq:{{#var:j}}|-1||{{#var:j}}}}}}<!-- k=j, unless j==-1, in which case k=(empty), since we use "${de-/buff}" instead of "${de-/buff}-1" |
||
+ | -->{{#arraydefine:buffinfo|{{{ {{#var:bufftype}}{{#var:k}}|}}}|/}}<!-- |
||
+ | // we store the information that the view needs in variables with a "ii:<bufftype><parameter index>:<stat>" format |
||
+ | -->{{#vardefine:ii:{{#var:bufftype}}{{#var:j}}:mobile|}}<!-- |
||
+ | // buff id |
||
+ | -->{{#vardefine:ii:{{#var:bufftype}}{{#var:j}}:id|{{{id{{#var:bufftype}}{{#var:k}}|{{#or:<!-- |
||
+ | -->{{buffIdFromName|{{#arrayindex:buffinfo|0}}}}<!-- buffinfo[0] will always contain the de-/buff name, regardless of whether compact mode was used or not |
||
+ | -->|<!-- |
||
+ | -->{{#var:ii:{{#var:bufftype}}{{#var:j}}:id}}<!-- falback for autobuff (this var is only already set to something if j==-1) |
||
+ | -->}}}}}}}<!-- |
||
+ | -->{{#if:{{#var:ii:{{#var:bufftype}}{{#var:j}}:id}}|{{#ifeq:{{#sub:{{#var:ii:{{#var:bufftype}}{{#var:j}}:id}}|0|1}}|m|<!-- if is mobile id |
||
+ | -->{{#vardefine:ii:{{#var:bufftype}}{{#var:j}}:id|{{#sub:{{#var:ii:{{#var:bufftype}}{{#var:j}}:id}}|1}}}}<!-- |
||
+ | -->{{#vardefine:ii:{{#var:bufftype}}{{#var:j}}:mobile|m}}<!-- |
||
+ | -->}}}}<!-- |
||
+ | // de-/buff name |
||
+ | -->{{#vardefine:ii:{{#var:bufftype}}{{#var:j}}:name|<!-- |
||
+ | -->{{#if:{{#var:ii:{{#var:bufftype}}{{#var:j}}:id}}|<!-- |
||
+ | -->{{getBuffInfo|{{#var:ii:{{#var:bufftype}}{{#var:j}}:mobile}}{{#var:ii:{{#var:bufftype}}{{#var:j}}:id}}|ename}}<!-- |
||
+ | -->|<!-- |
||
+ | -->{{#arrayindex:buffinfo|0}}<!-- |
||
-->}}<!-- |
-->}}<!-- |
||
-->}}<!-- |
-->}}<!-- |
||
+ | // de-/buff duration, chance, tooltip, and link |
||
+ | -->{{#vardefine:ii:{{#var:bufftype}}{{#var:j}}:duration|{{#if:{{#var:k}}|<!-- in seconds |
||
+ | // for ${de/buff}<integer> |
||
+ | -->{{{ {{#var:bufftype}}duration{{#var:k}}|{{#arrayindex:buffinfo|1}}}}}<!-- |
||
+ | -->|<!-- |
||
+ | // for ${de-/buff} (potentially overriding auto data) |
||
+ | // $duration -> ${de-/buff}duration -> ${de-/buff} compact mode -> auto data |
||
+ | -->{{#rreplace:<!-- |
||
+ | -->{{#ifeq:{{{duration|-unset}}}|{{{duration|unset-}}}|<!-- allow "|duration=" to suppress duration display |
||
+ | -->{{{duration|}}}<!-- |
||
+ | -->|{{#ifeq:{{{ {{#var:bufftype}}duration|-unset}}}|{{{ {{#var:bufftype}}duration|unset-}}}|<!-- allow "|{de-/buff}duration=" to suppress duration display |
||
+ | -->{{{ {{#var:bufftype}}duration|}}}<!-- |
||
+ | -->|<!-- |
||
+ | -->{{#or:{{#arrayindex:buffinfo|1}}|@@@@}}<!-- |
||
+ | -->}}}}<!-- |
||
+ | -->|/@@@@/|{{#var:ii:{{#var:bufftype}}-1:duration}}}}<!-- |
||
+ | -->}}}}<!-- |
||
+ | -->{{#vardefine:ii:{{#var:bufftype}}{{#var:j}}:chance|{{{ {{#var:bufftype}}chance{{#var:k}}|{{#arrayindex:buffinfo|2}}}}}}}<!-- |
||
+ | -->{{#vardefine:ii:{{#var:bufftype}}{{#var:j}}:tooltip|{{{ {{#var:bufftype}}tip{{#var:k}}|{{getBuffInfo|{{#var:ii:{{#var:bufftype}}{{#var:j}}:mobile}}{{#var:ii:{{#var:bufftype}}{{#var:j}}:id}}|tooltip}}}}}}}<!-- |
||
+ | -->{{#vardefine:ii:{{#var:bufftype}}{{#var:j}}:link|{{{ {{#var:bufftype}}link{{#var:k}}|{{getBuffInfo|{{#var:ii:{{#var:bufftype}}{{#var:j}}:mobile}}{{#var:ii:{{#var:bufftype}}{{#var:j}}:id}}|page}}}}}}}<!-- |
||
+ | -->{{#ifeq:{{#var:ii:{{#var:bufftype}}{{#var:j}}:link}}|{{PAGENAME}}|<!-- if is self link (using PAGENAME instead of BASEPAGENAME/ROOTPAGENAME, to incorporate all languages) |
||
+ | // add "de-/buffs" to listcat |
||
+ | -->{{#vardefine:ii:listcats|{{#lstapp:{{#var:ii:listcats}}|/|{{#var:bufftype}}s}}}}<!-- |
||
+ | -->}}<!-- |
||
+ | // de-/buff vanity id |
||
+ | -->{{#vardefine:ii:{{#var:bufftype}}{{#var:j}}:idshow|{{{id{{#var:bufftype}}show{{#var:k}}|}}}}}<!-- |
||
-->}}<!-- |
-->}}<!-- |
||
+ | -->}}<!-- |
||
− | -->{{#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|<!-- |
||
+ | ---- rarity ---- |
||
− | -->{{#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:rawrare|{{#dplvar:ii:info:rare}}}}<!-- |
||
+ | -->{{#if:{{#dplvar:ii:info:questItem}}|<!-- quest |
||
+ | -->{{#vardefine:ii:rawrare|quest}}<!-- |
||
+ | -->|<!-- |
||
+ | -->{{#ifeq:{{#dplvar:ii:info:rare}}|-11|{{#vardefine:ii:rawrare|quest}}}}<!-- |
||
+ | -->}}<!-- |
||
+ | // auto rarity for armor/vanity sets |
||
+ | -->{{#if:{{#var:ii:isArmorSet}}|<!-- |
||
+ | -->{{#vardefine:ii:rawrare|{{getSetInfo|{{#var:ii:name}}|rare|raw=y}}}}<!-- |
||
+ | -->}}<!-- |
||
+ | -->{{#vardefine:ii:rare|<!-- |
||
+ | -->{{#ifeq:{{{rare|-unset}}}|{{{rare|unset-}}}|<!-- allow "|rare=" to suppress rarity display |
||
+ | -->{{#vardefineecho:ii:rawrare|{{#rreplace:{{{rare|}}}|@@@@|{{#if:{{#var:ii:rawrare}}|{{rare|{{#var:ii:rawrare}}}}}}}}}}<!-- |
||
+ | -->|<!-- |
||
+ | -->{{#if:{{#var:ii:rawrare}}|{{rare|{{#var:ii:rawrare}}}}}}<!-- |
||
-->}}<!-- |
-->}}<!-- |
||
− | + | -->}}<!-- |
|
+ | -------- |
||
− | -->{{#ifexpr:{{#dplvar:ii:info:buffType}}>0|<!-- |
||
+ | |||
− | -->{{#dplvar:ii:info:buffType}}<!-- |
||
+ | ---- buy price and sell value ---- |
||
+ | -->{{#vardefine:ii:shopCustomPrice|{{#dplvar:ii:info:shopCustomPrice}}}}<!-- defender medals (dm) |
||
+ | -->{{#vardefine:ii:value|{{{value|{{#ifexpr:0{{#dplvar:ii:info:value}}>0|{{#dplvar:ii:info:value}}}}}}}}}<!-- |
||
+ | // sell/buy VALUES |
||
+ | -->{{#vardefine:ii:sell|}}<!-- |
||
+ | -->{{#if:{{#var:ii:isArmorSet}}|<!-- auto sell for armor/vanity set |
||
+ | -->{{#vardefine:ii:sell|{{#ifexpr:{{#explode:{{#explode:{{getSetInfo|{{#var:ii:name}}|sell|raw=y}}|₪}}|¤|1}}|{{getSetInfo|{{#var:ii:name}}|sell}}}}}}<!-- |
||
+ | -->|<!-- regular, single item |
||
+ | -->{{#if:{{#var:ii:value}}|<!-- |
||
+ | -->{{#vardefine:ii:sell|{{#expr:floor({{#expr:{{#var:ii:value}}/5}})}}}}<!-- divide by 5, round down, in cc |
||
+ | -->{{#ifexpr:0{{#var:ii:sell}}<1|{{#vardefine:ii:sell|1}}}}<!-- never less than 1cc |
||
+ | -->{{#vardefine:ii:sell|{{coin|{{#var:ii:sell}}}}}}<!-- convert to coins |
||
+ | -->}}<!-- |
||
+ | -->}}<!-- |
||
+ | -->{{#ifeq:{{{sell|-unset}}}|{{{sell|unset-}}}|<!-- allow "|sell=" to suppress sell value display |
||
+ | -->{{#vardefine:ii:sell|{{#rreplace:{{{sell|}}}|@@@@|{{#var:ii:sell}}}}}}<!-- |
||
+ | -->}}<!-- |
||
+ | -->{{#vardefine:ii:buy|<!-- |
||
+ | -->{{#if:{{#var:ii:shopCustomPrice}}|<!-- |
||
+ | -->{{dm|{{#var:ii:shopCustomPrice}}}}<!-- |
||
+ | -->|<!-- |
||
+ | //use buy if $buy or "buy"/"buyable"/"vendor" in tags |
||
+ | -->{{#vardefine:ii:buy|{{#if:{{{buy|}}}{{#lstfltr:buy/buyable/vendor|/|{{#var:ii:tags}}|/|}}|<!-- |
||
+ | -->{{#ifexpr:{{#var:ii:value|0}}>0|<!-- |
||
+ | -->{{coin|{{#var:ii:value}}}}<!-- |
||
+ | -->|<!-- auto buy for armor/vanity set |
||
+ | -->{{#if:{{#var:ii:isArmorSet}}|<!-- |
||
+ | -->{{#ifexpr:{{#replace:{{#explode:{{#explode:{{getSetInfo|{{#var:ii:name}}|buy|raw=y}}|₪}}|¤|1}}|_dm_|}}|<!-- |
||
+ | -->{{getSetInfo|{{#var:ii:name}}|buy}}<!-- |
||
+ | -->}}<!-- |
||
+ | -->}}<!-- |
||
+ | -->}}<!-- |
||
+ | -->}}}}<!-- |
||
+ | -->{{#if:{{#if:{{{buy|}}}|{{#switch:{{lc:{{{buy|}}}}}|y|yes|true|show=|#default=y}}}}|<!-- if $buy != ("y" or "yes" or "true" or "show") |
||
+ | -->{{#rreplace:{{{buy|}}}|@@@@|{{#var:ii:buy}}}}<!-- |
||
-->|<!-- |
-->|<!-- |
||
+ | -->{{#var:ii:buy}}<!-- |
||
− | -->{{#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 |
||
+ | ---- ids ---- |
||
− | -->{{#arraysearch:ii:tags|dd2|0|{{#vardefine:ii:DD2Summon|1}}|{{#vardefine:ii:DD2Summon|{{#dplvar:ii:info:DD2Summon}}}}}}<!-- |
||
− | + | -->{{#vardefine:ii:idtile|{{{idtile|<!-- |
|
− | -->{{# |
+ | -->{{#ifexpr:{{#or:{{#dplvar:ii:info:createTile}}|-1}}>-1|{{#dplvar:ii:info:createTile}}}}<!-- |
+ | -->}}}}}<!-- |
||
− | -->{{#ifexpr:{{#dplvar:ii:info:value}}>0|<!-- |
||
− | + | -->{{#vardefine:ii:idtilesub|{{#if:{{{idtile|}}}||{{{idtilesub|<!-- |
|
− | + | -->{{#ifexpr:({{#or:{{#dplvar:ii:info:createTile}}|-1}}>-1) and (0{{#dplvar:ii:info:placeStyle}}>0)|{{#expr:{{#dplvar:ii:info:placeStyle}}+1}}}}<!-- |
|
+ | -->}}}}}}}<!-- |
||
+ | -->{{#vardefine:ii:idwall|{{{idwall|<!-- |
||
+ | -->{{#ifexpr:{{#or:{{#dplvar:ii:info:createWall}}|-1}}>-1|<!-- item is a wall as defined by auto info |
||
+ | -->{{#dplvar:ii:info:createWall}}<!-- |
||
+ | -->{{#vardefine:ii:types|{{#lstapp:{{#var:ii:types}}|/|wall}}}}<!-- add "wall" to types |
||
-->}}<!-- |
-->}}<!-- |
||
+ | -->}}}}}<!-- |
||
− | -->{{#vardefine:ii:idtile|{{#ifexpr:{{#dplvar:ii:info:createTile}}>-1|{{#dplvar:ii:info:createTile}}}}}}<!-- |
||
− | + | -->{{#vardefine:ii:idarmor|}}<!-- |
|
+ | -->{{#vardefine:ii:bodyslot|}}<!-- |
||
− | -->{{#ifexpr:({{#dplvar:ii:info:createTile}}>-1) and ({{#dplvar:ii:info:placeStyle}}>0)|{{#expr:{{#dplvar:ii:info:placeStyle}}+1}}}}<!-- |
||
+ | -->{{#ifexpr:{{#or:{{#dplvar:ii:info:headSlot}}|-1}}>-1|<!-- head armor? |
||
− | -->}}<!-- |
||
− | -->{{#vardefine:ii: |
+ | -->{{#vardefine:ii:idarmor|{{#dplvar:ii:info:headSlot}}}}<!-- |
− | -->{{#if:{{#var:ii: |
+ | -->{{#if:{{#lstind:vanity|{{#var:ii:types}}|/}}|<!-- |
− | -->{{# |
+ | -->{{#vardefine:ii:bodyslot|social helmet}}<!-- vanity body slot |
+ | -->|<!-- |
||
+ | -->{{#vardefine:ii:bodyslot|helmet}}<!-- armor body slot |
||
+ | -->{{#vardefine:ii:types|{{#lstapp:{{#var:ii:types}}|/|armor}}}}<!-- add "armor" to types |
||
-->}}<!-- |
-->}}<!-- |
||
+ | -->}}<!-- |
||
− | -->{{#ifexpr:{{#dplvar:ii:info:headSlot}}>-1|<!-- head armor? |
||
− | + | -->{{#ifexpr:{{#or:{{#dplvar:ii:info:bodySlot}}|-1}}>-1|<!-- body armor? |
|
+ | -->{{#vardefine:ii:idarmor|{{#dplvar:ii:info:bodySlot}}}}<!-- |
||
− | -->{{#arraysearch:ii:types|vanity|0|<!-- set body slot |
||
− | + | -->{{#if:{{#lstind:vanity|{{#var:ii:types}}|/}}|<!-- |
|
− | -->|<!-- |
+ | -->{{#vardefine:ii:bodyslot|social shirt}}<!-- |
− | + | -->|<!-- |
|
− | + | -->{{#vardefine:ii:bodyslot|shirt}}<!-- |
|
+ | -->{{#vardefine:ii:types|{{#lstapp:{{#var:ii:types}}|/|armor}}}}<!-- |
||
− | -->}}<!-- |
||
-->}}<!-- |
-->}}<!-- |
||
+ | -->}}<!-- |
||
− | -->{{#ifexpr:{{#dplvar:ii:info:bodySlot}}>-1|<!-- body armor? |
||
− | + | -->{{#ifexpr:{{#or:{{#dplvar:ii:info:legSlot}}|-1}}>-1|<!-- legs armor? |
|
− | + | -->{{#vardefine:ii:idarmor|{{#dplvar:ii:info:legSlot}}}}<!-- |
|
− | + | -->{{#if:{{#lstind:vanity|{{#var:ii:types}}|/}}|<!-- |
|
− | -->|<!-- |
+ | -->{{#vardefine:ii:bodyslot|social pants}}<!-- |
− | + | -->|<!-- |
|
− | + | -->{{#vardefine:ii:bodyslot|pants}}<!-- |
|
+ | -->{{#vardefine:ii:types|{{#lstapp:{{#var:ii:types}}|/|armor}}}}<!-- |
||
− | -->}}<!-- |
||
-->}}<!-- |
-->}}<!-- |
||
+ | -->}}<!-- |
||
− | -->{{#ifexpr:{{#dplvar:ii:info:legSlot}}>-1|<!-- legs armor? |
||
− | + | -->{{#vardefine:ii:idarmor|{{{idarmor|{{#var:ii:idarmor}}}}}}}<!-- |
|
− | + | -->{{#vardefine:ii:bodyslot|{{{body slot|{{#var:ii:bodyslot}}}}}}}<!-- |
|
− | + | -->{{#vardefine:ii:idmount|{{{idmount|<!-- |
|
+ | -->{{#ifexpr:{{#or:{{#dplvar:ii:info:mountType}}|-1}}>-1|<!-- item is a mount summon as defined by auto info |
||
− | -->|<!-- |
||
− | + | -->{{#dplvar:ii:info:mountType}}<!-- |
|
− | + | -->{{#vardefine:ii:types|{{#lstapp:{{#var:ii:types}}|/|mount summon}}}}<!-- add "mount summon" to type |
|
+ | -->}}<!-- |
||
+ | -->}}}}}<!-- |
||
+ | -->{{#vardefine:ii:idbuff|<!-- |
||
+ | -->{{#lstmap:{{#var:ii:buffs}}|₪|@@@@|<esc><!-- |
||
+ | -->{{#var:ii:buff@@@@:mobile}}₰{{#var:ii:buff@@@@:id}}₰{{#var:ii:buff@@@@:idshow}}<!-- |
||
+ | --></esc>|₪}}<!-- |
||
+ | -->{{#listmap:intro=₪|list={{#var:ii:debuffs}}|insep=₪|token=@@@@|pattern=<esc><!-- |
||
+ | -->{{#var:ii:debuff@@@@:mobile}}₰{{#var:ii:debuff@@@@:id}}₰{{#var:ii:debuff@@@@:idshow}}<!-- |
||
+ | --></esc>|outsep=₪}}<!-- |
||
+ | -->}}<!-- |
||
+ | -->{{#vardefine:ii:idprojectile|{{{idprojectile|{{{shoot|{{#if:{{#var:ii:useammo}}||<!-- don't show default projectile id for items which use ammo. |
||
+ | -->{{#ifexpr:0{{#dplvar:ii:info:shoot}}>0|{{#dplvar:ii:info:shoot}}}}<!-- |
||
+ | -->}}}}}}}}}}<!-- |
||
+ | -------- |
||
+ | |||
+ | ---- velocity ---- |
||
+ | // velocity & extraUpdate fix |
||
+ | -->{{#vardefine:ii:velocity|<!-- |
||
+ | -->{{#ifexpr:0{{#dplvar:ii:info:shootSpeed}}>0|{{#dplvar:ii:info:shootSpeed}}}}<!-- |
||
+ | -->}}<!-- |
||
+ | -->{{#vardefine:ii:rawVelocity|{{#var:ii:velocity}}}}<!-- |
||
+ | -->{{#vardefine:ii:velocityMultiplier|}}<!-- |
||
+ | -->{{#if:{{#var:ii:idprojectile}}|{{#if:{{#var:ii:rawVelocity}}|<!-- |
||
+ | -->{{#vardefine:ii:extraUpdates|0{{getProjectileInfo|{{#explode:{{#var:ii:idprojectile}}|,|0}}|extraUpdates}}}}<!-- extra updates of first projectile in list |
||
+ | -->{{#ifexpr:0{{#var:ii:extraUpdates}}>0|<!-- |
||
+ | -->{{#if:{{#lstind:ammunition|{{#var:ii:types}}|/}}|<!-- ammo items |
||
+ | -->{{#vardefine:ii:velocityMultiplier|{{#expr:{{#var:ii:extraUpdates}}+1}}}}<!-- |
||
+ | -->|<!-- other items |
||
+ | -->{{#vardefine:ii:velocity|{{#expr:{{#var:ii:velocity}}*({{#var:ii:extraUpdates}}+1)}}}}<!-- |
||
-->}}<!-- |
-->}}<!-- |
||
-->}}<!-- |
-->}}<!-- |
||
+ | -->}}}}<!-- |
||
− | -->{{#vardefine:ii:idmount|{{#ifexpr:{{#dplvar:ii:info:mountType}}>-1|{{#dplvar:ii:info:mountType}}}}}}<!-- |
||
+ | -->{{#ifeq:{{{velocity|{{{sspeed|-unset}}}}}}|{{{velocity|{{{sspeed|unset-}}}}}}|<!-- allow "|velocity=" to suppress velocity display |
||
− | -->{{#if:{{#var:ii:idmount}}|<!-- mount |
||
+ | -->{{#vardefine:ii:velocity|{{#rreplace:{{{velocity|{{{sspeed|}}}}}}|@@@@|{{#var:ii:velocity}}}}}}<!-- |
||
− | //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}}}}}}<!-- |
||
+ | ---- tooltip ---- |
||
− | -->{{#vardefine:ii:material|{{#dplvar:ii:info:material}}}}<!-- |
||
− | + | -->{{#vardefine:ii:tooltip|{{itemTooltip|{{#var:ii:auto_id}}|right={{l10n|item_infobox|rightclick}}}}}}<!-- |
|
+ | -->{{#ifeq:{{{tooltip|-unset}}}|{{{tooltip|unset-}}}|<!-- allow "|tooltip=" to suppress tooltip display |
||
+ | -->{{#vardefine:ii:tooltip|{{#rreplace:{{{tooltip|}}}|@@@@|{{#var:ii:tooltip}}}}}}<!-- |
||
+ | -->}}<!-- |
||
+ | -------- |
||
+ | ---- consumable and placeable ---- |
||
+ | -->{{#vardefine:ii:consumable|{{{consumable|{{#dplvar:ii:info:consumable}}}}}}}<!-- |
||
+ | -->{{#vardefine:ii:placeable|{{{placeable|{{#if:{{#var:ii:idtile}}{{#var:ii:idwall}}|y}}}}}}}<!-- |
||
+ | -->{{#if:{{#lstfltr:block/brick|/|{{#var:ii:types}}|/}}|<!-- |
||
+ | -->{{#vardefine:ii:width|{{{width|1}}}}}{{#vardefine:ii:height|{{{height|1}}}}}<!-- default to 1×1 for blocks |
||
+ | -->|<!-- |
||
+ | -->{{#vardefine:ii:width|{{{width|}}}}}{{#vardefine:ii:height|{{{height|}}}}}<!-- don't default to anything for other items |
||
-->}}<!-- |
-->}}<!-- |
||
+ | -------- |
||
+ | ---- sounds ---- |
||
− | //== manual vars override and complete all fields. == |
||
+ | // sounds array (ii:sounds): "name1:sound1_1.wav,sound1_2.wav;name2:sound2_1.wav,sound2_2.wav; ..." |
||
− | //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:sounds|<!-- |
||
+ | -->{{#vardefine:_tile_sound_mode|}}<!-- |
||
+ | -->{{#ifexpr:{{#or:{{#dplvar:ii:info:createWall}}|-1}}>-1|<!-- |
||
+ | -->{{#vardefine:_tile_sound_mode|wall}}<!-- |
||
+ | -->}}<!-- |
||
+ | // put all usesounds in the first element of the ii:sounds array |
||
− | -->{{#vardefine:ii:id|{{{id|{{#var:ii:id}}}}}}}<!-- |
||
− | -->{{# |
+ | -->{{#if:{{{sounduse|{{#dplvar:ii:info:UseSound}}}}}|<!-- |
− | -->{{ |
+ | -->{{l10n|item_infobox|th:use}}:{{{sounduse|{{#lstmap:{{#dplvar:ii:info:UseSound}}|,|@@|@@.wav|,}}}}};<!-- |
+ | -->}}<!-- |
||
− | -->{{#vardefine:ii:namesub|{{{namesub|{{#var:ii:namesub}}}}}}}<!-- |
||
− | -->{{# |
+ | -->{{#if:{{{soundplaced|{{#var:_tile_sound_mode}}}}}|<!-- |
− | -->{{ |
+ | -->{{l10n|item_infobox|th:placed}}:{{{soundplaced|{{getWallInfo|{{#dplvar:ii:info:createWall}}|soundplaced}}}}};<!-- |
+ | -->}}<!-- |
||
− | -->{{#vardefine:ii:hammer|{{regex|{{{hammer|}}}|/@@@@/|{{#var:ii:hammer|0}}%|{{{hammer|{{#var:ii:hammer|0}}}}}}}}}<!-- |
||
− | -->{{# |
+ | -->{{#if:{{{soundbreak|{{#var:_tile_sound_mode}}}}}|<!-- |
− | -->{{ |
+ | -->{{l10n|item_infobox|th:broken}}:{{{soundbreak|{{getWallInfo|{{#dplvar:ii:info:createWall}}|soundbreak}}}}};<!-- |
− | -->{{#vardefine:ii:bait|{{{bait|{{#var:ii:bait}}}}}}}<!-- |
||
− | -->{{#vardefine:ii:fishing|{{{fishing|{{#var:ii:fishing}}}}}}}<!-- |
||
− | -->{{#vardefine:ii:damage|{{regex|{{{damage|}}}|/@@@@/|{{#var:ii:damage}}|{{{damage|{{#var:ii:damage}}}}}}}}}<!-- |
||
− | -->{{#vardefine:ii:damagetype|{{#if:{{#var:ii:damage}}|<!-- |
||
− | -->{{#switch:{{lc:{{{damagetype|}}}}}<!-- // manual |
||
− | -->|melee=Melee<!-- |
||
− | -->|ranged=Ranged<!-- |
||
− | -->|magic=Magic<!-- |
||
− | -->|summon=Summon<!-- |
||
− | -->|throwing|thrown=Throwing<!-- |
||
− | -->|#default={{#arraysearch:ii:types|tool|0|Melee|{{{damagetype|{{#var:ii:damagetype}}}}}}}<!-- "Melee" for tools. |
||
-->}}<!-- |
-->}}<!-- |
||
− | -->}}}}<!-- |
||
− | // add "[damagetype] weapons" to listcat |
||
− | -->{{#if:{{#var:ii:damagetype}}|{{#arraysearch:ii:types|weapon|0|{{#arraydefine:z|{{#var:ii:damagetype}} weapons}}{{#arrayunion:ii:listcats|ii:listcats|z}}}}}}<!-- |
||
− | -->{{#vardefine:ii:knockback|{{regex|{{{knockback|}}}|/@@@@/|{{kb|{{#var:ii:knockback}}}}|{{{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 $damagetype!=summon then 4 end |
||
− | -->{{#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|{{regex|{{{use|}}}|/@@@@/|{{#var:ii:use}} <small>{{use time|{{#var:ii:use}}}}</small>|{{{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|{{{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}})}}}}}}}}}<!-- |
||
− | -->}}}}<!-- |
||
-->}}<!-- |
-->}}<!-- |
||
− | -->{{# |
+ | -->{{#forargs:sound|k|v|<!-- |
− | -->{{# |
+ | -->{{#if:{{{soundcaption{{#var:k}}|}}}|<!-- |
− | --> |
+ | -->{{#vardefine:ii:sounds|{{#lstapp:{{#var:ii:sounds}}|;|<!-- |
+ | array element: "<caption n>:soundn_1.wav,soundn_2.wav, ..." |
||
− | -->|#default={{#if:{{{buy|}}}|<!-- |
||
+ | -->{{{soundcaption{{#var:k}}|}}}:{{#var:v}}<!-- |
||
− | -->{{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}}}}}}<!-- |
||
+ | ---- crafting type and listcat ---- |
||
− | -->|<!-- |
||
− | + | -->{{#vardefine:ii:material|{{#dplvar:ii:info:material}}}}<!-- |
|
− | + | -->{{#vardefine:ii:craftable|{{#dplvar:ii:info:craftable}}}}<!-- |
|
+ | // crafting cate/type |
||
− | -->}}<!-- |
||
− | -->}}<!-- |
||
− | -->{{#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|{{{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: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}}|<!-- |
-->{{#if:{{#var:ii:name}}|<!-- |
||
− | // |
+ | // is crafting material? |
-->{{#if:{{#var:ii:material}}|<!-- |
-->{{#if:{{#var:ii:material}}|<!-- |
||
+ | -->{{#vardefine:ii:types|{{#lstapp:{{#var:ii:types}}|/|crafting material}}}}<!-- add "crafting material" to types |
||
− | //add "Crafting material" to type. |
||
− | -->{{#arraydefine:z|crafting material}}<!-- |
||
− | -->{{#arrayunion:ii:types|ii:types|z}}<!-- |
||
-->}}<!-- |
-->}}<!-- |
||
− | // |
+ | // is craftable? |
-->{{#if:{{#var:ii:craftable}}|<!-- |
-->{{#if:{{#var:ii:craftable}}|<!-- |
||
+ | -->{{#vardefine:ii:listcats|{{#lstapp:{{#var:ii:listcats}}|/|craftable items}}}}<!-- add "craftable items" to listcat |
||
− | //add "Craftable items" to listcate. |
||
− | -->{{#arraydefine:z|craftable items}}<!-- |
||
− | -->{{#arrayunion:ii:listcats|ii:listcats|z}}<!-- |
||
-->}}<!-- |
-->}}<!-- |
||
-->}}<!-- |
-->}}<!-- |
||
+ | -------- |
||
− | //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. |
||
+ | ---- dd2 sentry weapon ---- |
||
− | -->{{#arraydefine:z|<!-- // custom sounds (e.g. $sound1) |
||
− | + | -->{{#vardefine:ii:DD2Summon|<!-- |
|
− | + | -->{{#if:{{#lstind:dd2|{{#var:ii:tags}}|/}}|1|{{#dplvar:ii:info:DD2Summon}}}}<!-- |
|
− | -->@@@@{{{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. |
||
+ | +++++++++++++ 4. Process additional parameter input, unrelated to auto data +++++++++++++ |
||
+ | |||
+ | ---- bonus and set bonus ---- |
||
+ | -->{{#vardefine:ii:bonus|{{{bonus|}}}}}<!-- |
||
+ | -->{{#vardefine:ii:setbonus|{{#if:{{#var:ii:isArmorSet}}|{{#if:{{#lstind:vanity|{{#var:ii:types}}|/}}||<!-- for armor sets: |
||
+ | -->{{getSetInfo|{{#var:ii:name}}|setbonuslist|sep=<br/>}}<!-- auto setbonus |
||
+ | -->}}}}}}<!-- |
||
+ | -->{{#ifeq:{{{setbonus|-unset}}}|{{{setbonus|unset-}}}|<!-- allow "|setbonus=" to suppress set bonu display |
||
+ | -->{{#vardefine:ii:setbonus|{{#rreplace:{{{setbonus|}}}|@@@@|{{#var:ii:setbonus}}}}}}<!-- |
||
+ | -->}}<!-- |
||
+ | -------- |
||
+ | |||
+ | ---- hardmode and allversions ---- |
||
+ | -->{{#vardefine:ii:hardmodeonly|{{{hardmode|{{#if:{{#lstfltr:hardmodeonly/hardmode|/|{{#var:ii:tags}}|/}}|y}}}}}}}<!-- |
||
+ | -->{{#vardefine:ii:allversions|{{#switch:{{lc:{{{allversions|}}}}}<!-- allversions? |
||
+ | -->|y|yes|true=y<!-- |
||
+ | -->|n|no|false=<!-- |
||
+ | -->|#default=<!-- auto detect |
||
+ | -->{{#if:{{#lstind:allversions|{{#var:ii:tags}}|/}}|y<!-- "allversions" in tags, or: |
||
+ | -->|{{#if:{{#var:ii:id}}|{{#if:{{eversions|{{#var:ii:name}}|raw=y}}|<!--not all versions-->|y}}}}}}<!-- id and eversions |
||
+ | -->}}}}<!-- |
||
+ | -------- |
||
+ | |||
+ | ---- 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|}}<!-- old image |
||
+ | -->{{#vardefine:ii:imagefemale|}}<!-- |
||
+ | -->{{#vardefine:ii:imageplaced|}}<!-- |
||
+ | -->{{#vardefine:ii:imageequipped|}}<!-- |
||
+ | -->{{#vardefine:ii:imageext|}}<!-- custom extra images. full image code. |
||
+ | // 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. |
-->{{#vardefine:ii:imagealt|{{{imagealt|}}}}}<!-- custom full image code. |
||
-->{{#if:{{#var:ii:imagealt}}||<!-- |
-->{{#if:{{#var:ii:imagealt}}||<!-- |
||
− | -->{{#ifeq:{{#var:imagemode}}|full|<!--full mode |
+ | -->{{#ifeq:{{#var:imagemode}}|full|<!-- full mode |
− | //female image check first (used in equipped image) |
+ | // female image check first (used in equipped image) |
-->{{#vardefine:ii:imagefemale|<!-- |
-->{{#vardefine:ii:imagefemale|<!-- |
||
-->{{#if:{{{imagefemale|}}}|<!-- |
-->{{#if:{{{imagefemale|}}}|<!-- |
||
Строка 589: | Строка 712: | ||
-->}}}}<!-- |
-->}}}}<!-- |
||
-->{{#vardefine:_male_image_suffix|{{#if:{{#var:ii:imagefemale}}|y|}}}}<!-- |
-->{{#vardefine:_male_image_suffix|{{#if:{{#var:ii:imagefemale}}|y|}}}}<!-- |
||
− | //main image |
+ | // main image |
-->{{#vardefine:ii:image|<!-- |
-->{{#vardefine:ii:image|<!-- |
||
-->{{#vardefine:alttext|<!-- |
-->{{#vardefine:alttext|<!-- |
||
− | -->{{# |
+ | -->{{#if:{{#var:ii:isArmorSet}}|<!-- |
− | -->{{#if:{{#var:ii:imagefemale}}|<!-- |
+ | -->{{#if:{{#var:ii:imagefemale}}|<!-- if there is a female image, the main (male) image needs a suffix |
-->{{l10n|item_infobox|imagealt:equipped_suffixed|$name$={{#var:ii:lname}}}}<!-- |
-->{{l10n|item_infobox|imagealt:equipped_suffixed|$name$={{#var:ii:lname}}}}<!-- |
||
-->|<!-- |
-->|<!-- |
||
Строка 606: | Строка 729: | ||
-->[[File:{{{image|}}}|{{#var:alttext}}|link=]]<!-- |
-->[[File:{{{image|}}}|{{#var:alttext}}|link=]]<!-- |
||
-->|<!-- |
-->|<!-- |
||
− | -->{{#vardefine:ii:imagefile|{{ |
+ | -->{{#vardefine:ii:imagefile|{{#rreplace:{{#var:ii:name}}|/:\s*/|_}}.{{{ext|png}}}}}<!-- replace ":" and ": " in filename with "_" |
-->{{#ifeq:{{{imageinfo|}}}|no|<!-- |
-->{{#ifeq:{{{imageinfo|}}}|no|<!-- |
||
− | -->[[ |
+ | -->[[File:{{#var:ii:imagefile}}|{{#var:alttext}}|link=]]<!-- |
-->|<!-- |
-->|<!-- |
||
-->{{image|{{#var:ii:imagefile}}|{{#var:alttext}}|link=}}<!-- |
-->{{image|{{#var:ii:imagefile}}|{{#var:alttext}}|link=}}<!-- |
||
Строка 614: | Строка 737: | ||
-->}}<!-- |
-->}}<!-- |
||
-->}}<!-- |
-->}}<!-- |
||
+ | -->|<!-- else simple mode |
||
− | // fallback if {{image}} failed (red link) |
||
+ | // main image |
||
− | -->{{#if:{{#var:ii: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|{{#rreplace:{{#var:ii:name}}|/:\s*/|_}}.{{{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=}}<!-- |
||
+ | -->}}<!-- |
||
+ | -->}}<!-- |
||
-->}}<!-- |
-->}}<!-- |
||
+ | -->}}<!-- |
||
− | //old image |
||
+ | // 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, placed, and equipped images: always fetch if using full mode, else only if respective mode is set |
||
+ | // old image |
||
+ | -->{{#if:{{#ifeq:{{#var:imagemode}}|full|y}}{{#pos:{{#var:imagemode}}|old}}|<!-- |
||
-->{{#vardefine:ii:imageold|{{{imageoldalt|<!-- |
-->{{#vardefine:ii:imageold|{{{imageoldalt|<!-- |
||
-->{{#if:{{{imageold|}}}|<!-- |
-->{{#if:{{{imageold|}}}|<!-- |
||
-->[[File:{{{imageold|}}}|{{l10n|item_infobox|imagealt:old|$name$={{#var:ii:lname}}}}|link=]]<!-- |
-->[[File:{{{imageold|}}}|{{l10n|item_infobox|imagealt:old|$name$={{#var:ii:lname}}}}|link=]]<!-- |
||
-->|<!-- |
-->|<!-- |
||
− | -->{{ |
+ | -->{{#if:{{bool|{{{autoimageold|{{options/get|item infobox|autoimageold}}}}}|y}}|<!-- |
+ | -->{{image|{{#var:ii:name}} (old)|{{l10n|item_infobox|imagealt:old|$name$={{#var:ii:lname}}}}|link=}}<!-- check .gif, then .png |
||
+ | -->|{{#if:{{#vardefineecho:ii:temp:extold|{{{extold|{{options/get|item infobox|extold}}}}}}}|<!-- |
||
+ | -->[[file:{{#var:ii:name}} (old).{{#var:ii:temp:extold}} |{{l10n|item_infobox|imagealt:old|$name$={{#var:ii:lname}}}}|link=]]<!-- |
||
+ | -->}}}}<!-- |
||
-->}}<!-- |
-->}}<!-- |
||
-->}}}}}<!-- |
-->}}}}}<!-- |
||
+ | -->}}<!-- |
||
− | //placed image |
||
+ | // placed image (full mode or (voidView and placeable)) |
||
+ | -->{{#if:{{#ifeq:{{#var:imagemode}}|full|y}}{{#ifeq:{{#var:viewname}}|void|{{#if:{{#var:ii:placeable}}|y}}}}{{#pos:{{#var:imagemode}}|placed}}|<!-- |
||
-->{{#vardefine:ii:imageplaced|{{{imageplacedalt|<!-- |
-->{{#vardefine:ii:imageplaced|{{{imageplacedalt|<!-- |
||
-->{{#if:{{{imageplaced|}}}|<!-- |
-->{{#if:{{{imageplaced|}}}|<!-- |
||
-->[[File:{{{imageplaced|}}}|{{l10n|item_infobox|imagealt:placed|$name$={{#var:ii:lname}}}}|link=]]<!-- |
-->[[File:{{{imageplaced|}}}|{{l10n|item_infobox|imagealt:placed|$name$={{#var:ii:lname}}}}|link=]]<!-- |
||
− | -->|<!-- |
+ | -->|<!-- |
+ | -->{{#if:{{bool|{{{autoimageplaced|{{options/get|item infobox|autoimageplaced}}}}}|y}}|<!-- |
||
− | -->{{image|{{#var:ii:name}} (placed)|{{l10n|item_infobox|imagealt:placed|$name$={{#var:ii:lname}}}}|link=}}<!-- check .gif, then .png |
||
+ | -->{{image|{{#var:ii:name}} (placed)|{{l10n|item_infobox|imagealt:placed|$name$={{#var:ii:lname}}}}|link=}}<!-- check .gif, then .png |
||
+ | -->|{{#if:{{#vardefineecho:ii:temp:extplaced|{{{extplaced|{{options/get|item infobox|extplaced}}}}}}}|<!-- |
||
+ | -->[[file:{{#var:ii:name}} (placed).{{#var:ii:temp:extplaced}} |{{l10n|item_infobox|imagealt:placed|$name$={{#var:ii:lname}}}}|link=]]<!-- |
||
+ | -->}}}}<!-- |
||
-->}}<!-- |
-->}}<!-- |
||
-->}}}}}<!-- |
-->}}}}}<!-- |
||
+ | -->}}<!-- |
||
− | //equipped image |
||
+ | // equipped image |
||
+ | -->{{#if:{{#ifeq:{{#var:imagemode}}|full|y}}{{#pos:{{#var:imagemode}}|equipped}}|<!-- |
||
-->{{#vardefine:ii:imageequipped|{{{imageequippedalt|<!-- |
-->{{#vardefine:ii:imageequipped|{{{imageequippedalt|<!-- |
||
− | + | -->{{#if:{{{imageequipped|}}}|<!-- |
|
-->[[File:{{{imageequipped|}}}|{{l10n|item_infobox|imagealt:equipped|$name$={{#var:ii:lname}}}}|link=]]<!-- |
-->[[File:{{{imageequipped|}}}|{{l10n|item_infobox|imagealt:equipped|$name$={{#var:ii:lname}}}}|link=]]<!-- |
||
-->|<!-- |
-->|<!-- |
||
+ | -->{{#if:{{bool|{{{autoimageequipped|{{options/get|item infobox|autoimageequipped}}}}}|y}}|<!-- |
||
− | -->{{image|{{#var:ii:name}} (equipped)|{{l10n|item_infobox|imagealt:equipped|$name$={{#var:ii:lname}}}}|link=}}<!-- check .gif, then .png |
||
+ | -->{{image|{{#var:ii:name}} (equipped)|{{l10n|item_infobox|imagealt:equipped|$name$={{#var:ii:lname}}}}|link=}}<!-- check .gif, then .png |
||
+ | -->|{{#if:{{#vardefineecho:ii:temp:extequipped|{{{extequipped|{{options/get|item infobox|extequipped}}}}}}}|<!-- |
||
+ | -->[[file:{{#var:ii:name}} (equipped).{{#var:ii:temp:extequipped}} |{{l10n|item_infobox|imagealt:equipped|$name$={{#var:ii:lname}}}}|link=]]<!-- |
||
+ | -->}}}}<!-- |
||
-->}}<!-- |
-->}}<!-- |
||
-->}}}}}<!-- |
-->}}}}}<!-- |
||
− | -->|<!-- 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 ====== |
||
+ | +++++++++++++ 5. Categorize and store to cargo +++++++++++++ |
||
+ | |||
+ | ---- determine validity of categorization ---- |
||
-->{{#vardefine:cate|}}<!-- |
-->{{#vardefine:cate|}}<!-- |
||
-->{{#switch:{{{cate|}}}<!-- |
-->{{#switch:{{{cate|}}}<!-- |
||
− | -->|yes|force={{#vardefine:cate|y}}<!-- |
+ | -->|1|y|yes|true|force={{#vardefine:cate|y}}<!-- |
− | -->|no={{#vardefine:cate|}}<!-- |
+ | -->|0|n|no|false={{#vardefine:cate|}}<!-- |
-->|#default={{#ifeq:{{NAMESPACE}}|{{ns:0}}|<!-- only in main ns |
-->|#default={{#ifeq:{{NAMESPACE}}|{{ns:0}}|<!-- only in main ns |
||
-->{{#switch:{{#var:viewname}}<!-- |
-->{{#switch:{{#var:viewname}}<!-- |
||
Строка 685: | Строка 817: | ||
-->}}<!-- |
-->}}<!-- |
||
-->}}<!-- |
-->}}<!-- |
||
+ | -------- |
||
+ | |||
+ | ---- categorize ---- |
||
+ | -->{{#vardefine:ii:types|{{#lstuniq:{{#var:ii:types}}|/|/}}}}<!-- |
||
-->{{#if:{{#var:cate}}|<!-- |
-->{{#if:{{#var:cate}}|<!-- |
||
+ | -->{{#lstmap:{{#var:ii:types}}|/|@@@@|<esc>[[Category:{{#or:{{l10n|item_infobox|typecate:{{lc:@@@@}}}}|{{tr|{{ucfirst:@@@@}} items|link=y}}}}]]</esc>|}}<!-- |
||
− | == cates == |
||
+ | -->{{#lstmap:{{#var:ii:listcats}}|/|@@@@|<esc>[[Category:{{#or:{{l10n|item_infobox|listcat:{{lc:@@@@}}}}|{{tr|{{ucfirst:@@@@}}|link=y}}}}]]</esc>|}}<!-- |
||
− | -->{{#ifeq:{{{cate|}}}|no|<!-- nothing -->|{{#ifeq:{{{listexclude|no}}}|yes|<!-- nothing -->|<!-- only if $cate != no |
||
+ | -->{{#if:{{#var:ii:isArmorSet}}|<!-- |
||
− | //cate |
||
− | -->{{# |
+ | -->{{#if:{{#lstind:vanity|{{#var:ii:types}}|/}}|[[Category:{{l10n|item_infobox|cate:vanitysets}}]]}}<!-- |
+ | -->{{#if:{{#lstind:armor|{{#var:ii:types}}|/}}|<!-- |
||
− | -->{{#arrayprint:ii:listcats||@@@@|[[Category:{{#if:{{l10n|item_infobox|listcat:@@@@}}|{{l10n|item_infobox|listcat:@@@@}}|{{tr|{{ucfirst:@@@@}}|link=y}}}}]]}}<!-- |
||
+ | -->[[Category:{{l10n|item_infobox|cate:armorsets}}]]<!-- |
||
− | -->{{#arraysearch:ii:types|set|0|<!-- |
||
− | -->{{# |
+ | -->{{#if:{{#var:ii:setbonus}}||[[Category:{{l10n|item_infobox|cate:nosetbonus}}]]}}<!-- |
− | + | -->}}<!-- |
|
+ | -->}}<!-- |
||
− | -->[[Category:{{l10n|item_infobox|cate:armorsets}}]]<!-- |
||
− | + | -->{{#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}}|<!-- |
||
+ | -->{{#if:{{#lstind:furniture|{{#var:ii:types}}|/}}||<!-- don't categorize placeable weapons as autoswing |
||
+ | -->{{#if:{{#lstfltr:weapon/tool|/|{{#var:ii:types}}|/}}|[[Category:{{l10n|item_infobox|cate:autoswingitem}}]]}}<!-- |
||
-->}}<!-- |
-->}}<!-- |
||
+ | -->}}<!-- |
||
− | -->{{#if:{{#var:ii:consumable}}|[[Category:{{l10n|item_infobox|cate:consumableitem}}]]}}<!-- |
||
− | + | -->{{#if:{{#var:ii:allversions}}|{{all versions}}}}<!-- |
|
− | -->{{#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]]}} --><!-- |
||
− | -->}}}}<!-- |
||
-->}}<!-- |
-->}}<!-- |
||
+ | -------- |
||
+ | ---- determine validity of cargo storage ---- |
||
-->{{#vardefine:cargo|}}<!-- |
-->{{#vardefine:cargo|}}<!-- |
||
− | -->{{#ifeq:{{NAMESPACE}}|{{ns:0}}|{{#ifeq:{{PAGENAME}}|{{ROOTPAGENAME}}|{{#vardefine:cargo|y}}}}}}<!-- |
+ | -->{{#ifeq:{{NAMESPACE}}|{{ns:0}}|{{#ifeq:{{PAGENAME}}|{{ROOTPAGENAME}}|{{#vardefine:cargo|y}}}}}}<!-- default: only main ns, only root pages (e.g. no translation subpages) |
− | -->{{#if:{{{cargo|}}}| |
+ | -->{{#if:{{{cargo|}}}|<!-- |
+ | -->{{#switch:{{{cargo|}}}<!-- |
||
+ | -->|1|y|yes|true|force|on={{#vardefine:cargo|y}}<!-- on |
||
+ | -->|0|n|no|false|off={{#vardefine:cargo|}}<!-- off |
||
+ | -->|#default=<!-- keep it unchanged. |
||
+ | -->}}<!-- |
||
+ | -->}}<!-- |
||
+ | -->{{#if:{{langList|isOnWiki|{{lang}}}}|{{#vardefine:cargo|}}}}<!-- never store for non-english languages on mainwiki |
||
+ | -------- |
||
+ | |||
+ | ---- store to cargo ---- |
||
-->{{#if:{{#var:cargo}}|<!-- |
-->{{#if:{{#var:cargo}}|<!-- |
||
+ | -->{{#cargo_store:_table=Items<!-- |
||
− | == cargo store == |
||
− | //new table: |
||
− | -->{{#cargo_store:_table=Items_new<!-- |
||
-->|itemid={{#var:ii:id}}<!-- |
-->|itemid={{#var:ii:id}}<!-- |
||
-->|name={{#var:ii:name}}<!-- |
-->|name={{#var:ii:name}}<!-- |
||
-->|internalname={{#var:ii:internalName}}<!-- |
-->|internalname={{#var:ii:internalName}}<!-- |
||
− | -->|image={{#var:ii:imagealt|{{#var:ii:image|{{#var:ii:imageplaced|{{#var |
+ | -->|image={{#var:ii:imagealt|{{#var:ii:image|{{#var:ii:imageplaced|{{#var:ii:imageequipped}}}}}}}}<!-- |
-->|imagefile={{#var:ii:imagefile|{{{image|{{#var:ii:name}}.{{{ext|png}}}}}}}}<!-- |
-->|imagefile={{#var:ii:imagefile|{{{image|{{#var:ii:name}}.{{{ext|png}}}}}}}}<!-- |
||
+ | -->|imageplaced={{#var:ii:imageplaced}}<!-- |
||
+ | -->|imageequipped={{#var:ii:imageequipped}}<!-- |
||
-->|autoswing={{#var:ii:autoswing}}<!-- |
-->|autoswing={{#var:ii:autoswing}}<!-- |
||
-->|stack={{#var:ii:stack}}<!-- |
-->|stack={{#var:ii:stack}}<!-- |
||
− | -->|type={{# |
+ | -->|type={{#lstsep:{{#var:ii:types}}|/|^}}<!-- |
− | -->|listcat={{# |
+ | -->|listcat={{#lstsep:{{#var:ii:listcats}}|/|^}}<!-- |
− | -->|tag={{# |
+ | -->|tag={{#lstsep:{{#var:ii:tags}}|/|^}}<!-- |
-->|buy={{#var:ii:buy}}<!-- |
-->|buy={{#var:ii:buy}}<!-- |
||
-->|consumable={{#var:ii:consumable}}<!-- |
-->|consumable={{#var:ii:consumable}}<!-- |
||
Строка 740: | Строка 879: | ||
-->|velocity={{#var:ii:velocity}}<!-- |
-->|velocity={{#var:ii:velocity}}<!-- |
||
-->|knockback={{#var:ii:knockback}}<!-- |
-->|knockback={{#var:ii:knockback}}<!-- |
||
− | -->|rare={{#var:ii: |
+ | -->|rare={{#var:ii:rawrare}}<!-- |
-->|sell={{#var:ii:sell}}<!-- |
-->|sell={{#var:ii:sell}}<!-- |
||
-->|axe={{#var:ii:axe}}<!-- |
-->|axe={{#var:ii:axe}}<!-- |
||
Строка 746: | Строка 885: | ||
-->|hammer={{#var:ii:hammer}}<!-- |
-->|hammer={{#var:ii:hammer}}<!-- |
||
-->|bait={{#ifexpr:{{#var:ii:bait}}|{{#var:ii:bait}}}}<!-- |
-->|bait={{#ifexpr:{{#var:ii:bait}}|{{#var:ii:bait}}}}<!-- |
||
− | -->|fishing={{#ifexpr:{{#var:ii:fishing}}|{{#var:ii:fishing}}}}<!-- |
+ | -->|fishing={{#iferror:{{#ifexpr:{{#var:ii:fishing}}|{{#var:ii:fishing}}}}|{{#var:ii:fishing}}}}<!-- |
-->|bonus={{#var:ii:tileboost}}<!-- |
-->|bonus={{#var:ii:tileboost}}<!-- |
||
-->|toolspeed={{#var:ii:toolspeed}}<!-- |
-->|toolspeed={{#var:ii:toolspeed}}<!-- |
||
-->|usetime={{#var:ii:use}}<!-- |
-->|usetime={{#var:ii:use}}<!-- |
||
− | -->|unobtainable={{# |
+ | -->|unobtainable={{#if:{{#lstind:unobtainable items|{{#var:ii:listcats}}|/}}|y}}<!-- |
-->|autoswing={{#var:ii:autoswing}}<!-- |
-->|autoswing={{#var:ii:autoswing}}<!-- |
||
-->|critical={{#var:ii:critical}}<!-- |
-->|critical={{#var:ii:critical}}<!-- |
||
Строка 758: | Строка 897: | ||
-->|placedheight={{#var:ii:height}}<!-- |
-->|placedheight={{#var:ii:height}}<!-- |
||
-->|mana={{#var:ii:mana}}<!-- |
-->|mana={{#var:ii:mana}}<!-- |
||
+ | -->|hheal={{#var:ii:hheal}}<!-- |
||
+ | -->|mheal={{#var:ii:mheal}}<!-- |
||
-->|bodyslot={{#var:ii:bodyslot}}<!-- |
-->|bodyslot={{#var:ii:bodyslot}}<!-- |
||
-->|toolspeed={{#var:ii:toolspeed}}<!-- |
-->|toolspeed={{#var:ii:toolspeed}}<!-- |
||
− | -->| |
+ | -->|buffs={{#lstmap:{{#var:ii:buffs}}|₪|@|{\{#var:ii:buff@:name}\}|^}}<!-- |
− | -->| |
+ | -->|debuffs={{#lstmap:{{#var:ii:debuffs}}|₪|@|{\{#var:ii:debuff@:name}\}|^}}<!-- |
-->}}<!-- |
-->}}<!-- |
||
− | //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}} |
||
+ | ========================================================================================================================== |
||
+ | ============================================= DATA VIEW ============================================== |
||
+ | ========================================================================================================================== |
||
+ | |||
+ | |||
+ | // select view based on viewname, e.g. "|mode=table" means {{item infobox/tableView}}, default is {{item infobox/infoboxView}} |
||
-->{{item infobox/{{#var:viewname}}View}}<!-- |
-->{{item infobox/{{#var:viewname}}View}}<!-- |
||
Строка 775: | Строка 920: | ||
--><noinclude><!-- |
--><noinclude><!-- |
||
− | -->{{#cargo_declare:_table= |
+ | -->{{#cargo_declare:_table=Items |
− | |itemid=Integer |
+ | | itemid = Integer |
− | |name = String |
+ | | name = String |
− | |internalname=String |
+ | | internalname = String |
− | |image = Wikitext |
+ | | image = Wikitext |
− | |imagefile = String |
+ | | imagefile = String |
+ | | imageplaced = Wikitext |
||
− | |autoswing=Boolean |
||
+ | | imageequipped = Wikitext |
||
− | |stack=Integer |
||
− | | |
+ | | autoswing = Boolean |
+ | | stack = Wikitext (size=500) |
||
− | |hardmode=Boolean |
||
+ | | consumable = Boolean |
||
− | |type = List (^) of String |
||
+ | | hardmode = Boolean |
||
− | |listcat = List (^) of String |
||
− | | |
+ | | type = List (^) of String |
+ | | listcat = List (^) of String |
||
− | |damage = Wikitext |
||
− | | |
+ | | tag = List (^) of String |
+ | | damage = Wikitext |
||
− | |defense=Wikitext (size=1000) |
||
+ | | damagetype = String |
||
− | |velocity = Wikitext |
||
− | | |
+ | | defense = Wikitext (size=1000) |
− | | |
+ | | velocity = Wikitext |
− | | |
+ | | knockback = Wikitext |
− | | |
+ | | rare = Wikitext |
− | | |
+ | | buy = Wikitext |
− | | |
+ | | sell = Wikitext |
− | | |
+ | | axe = Wikitext (size=1000) |
+ | | pick = Wikitext (size=1000) |
||
− | |fishing = Integer |
||
+ | | hammer = Wikitext (size=1000) |
||
− | |bait = Integer |
||
− | | |
+ | | fishing = Wikitext (size=1000) |
+ | | bait = Integer |
||
− | |toolspeed = Wikitext |
||
− | | |
+ | | bonus = Wikitext |
+ | | toolspeed = Wikitext |
||
− | |unobtainable = Boolean |
||
+ | | usetime = Wikitext |
||
− | |autoswing = Boolean |
||
+ | | unobtainable = Boolean |
||
− | |critical=Wikitext (size=1000) |
||
+ | | autoswing = Boolean |
||
− | |tooltip=Wikitext |
||
+ | | critical = Wikitext (size=1000) |
||
− | |placeable=Boolean |
||
+ | | tooltip = Wikitext |
||
− | |placedwidth=Integer |
||
+ | | placeable = Boolean |
||
− | |placedheight=Integer |
||
− | | |
+ | | placedwidth = Integer |
+ | | placedheight = Integer |
||
− | |bodyslot=String |
||
+ | | mana = Wikitext |
||
− | |usetime=Integer |
||
+ | | hheal = Wikitext |
||
− | |toolspeed=Integer |
||
+ | | mheal = Wikitext |
||
− | |buff=Wikitext (size=1000) |
||
+ | | bodyslot = String |
||
− | |bufftype=Wikitext (size=1000) |
||
+ | | buffs = List (^) of String |
||
+ | | debuffs = List (^) of String |
||
}}<!-- |
}}<!-- |
||
− | -->{{i18n-ready}}{{lua|Iteminfo}}{{doc}}</noinclude> |
+ | -->{{i18n-ready}}{{lua|Iteminfo}}{{doc|baddoc=Необходимо полностью обновить документацию шаблона}}</noinclude> |
Текущая версия от 04:31, 1 мая 2021
Этот шаблон определяет таблицу «Items». Просмотр таблицы.
Документация Документация, указанная ниже, находится на странице «Шаблон:Item infobox/док». (править | история)
[обновить]
См. также этот шаблон на английском языке: Template:Item infobox. В нём может содержаться более полная или подробная информация.
Шаблон используется в качестве карточки предмета, описывающий все его свойства.
Использование
Все параметры являются необязательными.
{{карточка предмета | название = название предмета, по умолчанию название страницы | картшир = ширина карточки, по умолчанию 21em, иначе подстраивается под размер изображения | изобр = изображение в инвентаре; по умолчанию «название.png» | изобр-тайл = изображение размещённого объекта; по умолчанию «название (placed).gif»; если GIF отсутствует, то по умолчанию «название (placed).png | изобр-делит = если указано «да», то изображения сместятся под инвентарное; по умолчанию «нет» | тип = например оружие, мебель, инструмент и т.д. | тип2 = второстепенный тип | урон = количество единиц урона, нанесённого за один удар | типурона = ближний, дальний, магический или призывной | авто = «да», если оружие/предмет имеет автоатаку/автовыстрел при удерживании клавиши/кнопки | защита = количество единиц защиты | бонус = | кирка = мощность кирки, без символа % | топор = мощность топора, без символа % | молот = мощность молота, без символа % | наживка = качество наживки, без символа % | отбрасывание = коэффициент отбрасывания при ударе | размещаемый = да/нет | шир = ширина размещаемого объекта | выс = высота размещаемого объекта | ячейка = максимальное количество одного предмета, помещаемого в один слот инвентаря | мана = количество маны, затрачиваемого за одно использование | регенманы = скорость регенерации маны | восманы = количество маны, восстанавливаемого за одно использование | регенздор = скорость регенерации (восстановления) здоровья | восздор = количество здоровья, восстанавливаемого за одно использование | подсказка = | расход = исчезает ли предмет после использования, да/нет | скорость = скорость полёта выпущенного снаряда | крит = если значение отсутствует и основной тип «Оружие», то по умолчанию отображается 4% | редкость = уровень редкости, например «1» для синего, «2» для зелёного. Для янтарного (квестового) используйте «q», для эксклюзивных предметов экспертного режима — «радужный» | слот = слот тела (голова, торс, ноги) | время = время использования | инструмент-скор = | инструмент = инструмент, которым необходимо сломать объект, если он размещён (немного устаревший параметр) | баф = накладываемый баф | бафподсказка = подсказка бафа | бафвремя = время действия бафа | дебаф = накладываемый дебаф | дебафподсказка = подсказка дебафа | дебафвремя = время действия дебафа | покупка = стоимость при покупке в монетах, используйте для этого ({{мм}}, {{см}}, {{зм}}, {{пм}}) | продажа = стоимость при продаже в монетах, используйте те же шаблоны, что при покупке | id = внутренний ID предмета | idбаф = внутренний ID бафа | idтайл = внутренний ID тайла | idстена = внутренний ID стены | idпередвиг = внутренний ID средства передвижения | катсписок = дополнительное название категории, которая включит этот предмет в список DPL, например "стрелы" заставит предмет отображать в "Стрелах" | катсписок2 = аналогичен параметру "катсписок", ещё одно дополнительное название категории | всеверсии = да (только содержимое ПК/консоли/мобильной версии, где выставляется шаблон "эксклюзив") | мод = да/нет, если предмет из мода; используется для раздельной категоризации (по умолчанию «нет») }}
См. также
- {{Карточка существа}}
- {{Карточка бафа}}