From Dark and Darker Wiki

(Added logic to generate tables with a manually provided list of items. This is used in template:craftable)
(Item property name was changed in script. Edited to account for this.)
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
<includeonly><!--
<includeonly><!--


Create the crafting rows and store them in the var:rows
 
-->{{#arraydefine:craftables|{{Merchant Data|{{{1}}}|Crafts|All}} }}<!--
If @arg:2 has text
-->{{#if:{{{2|}}}|{{#arraydefine:craftables|{{{2}}}}} }}<!--
-->{{#if:{{{2|}}}<!--
-->{{#vardefine:rows|<!--
Use @arg:2
-->|{{#arraydefine:craftables|{{{2}}}}}<!--
Else use all of the Merchant's crafts
-->|{{#arraydefine:craftables|{{Merchant Data|{{{1}}}|Crafts|All}}}}}}<!--
If @arg:ingredient was provided
-->{{#if:{{{ingredient|}}}<!--
AND @arg:ingredient is NOT used in a crafting recipe(s)
-->|{{#if:{{{{{ingredientcategory|Misc}}} Data|{{{ingredient}}}|incraftingrecipefor}}<!--
Set the craftables array to empty
-->||{{#arraydefine:craftables|}}}}}}<!--
        Otherwise do nothing
 
--><table cellspacing="0" class="wikitable sortable jquery-tablesorter" style="width:70%; min-width:500px; text-align:center; vertical-align:middle; {{#ifeq:{{#arraysize:craftables}}|0|display:none;}}"><!--
--><tr><th style="width:3%">Name</th><th style="width:5%">Ingredients</th><th style="width:2%">Merchant</th></tr><!--
-->{{#loop:i|0|{{#arraysize:craftables}}<!--
-->{{#loop:i|0|{{#arraysize:craftables}}<!--
-->|{{#vardefine:craft|{{#arrayindex:craftables|{{#var:i}} }} }}<!--
-->|<tr><!-- Generate a crafting row for each element in @array:craftables
If the ingredient is in the list of ingredients for the craft
-->{{#vardefine:craft|{{#arrayindex:craftables|{{#var:i}}}}}}<!--
OR the ingredient is empty, generate the crafting row.
If @arg:ingredient is in the list of ingredients for @var:craft
-->{{#if:  {{#pos:{{Merchant Data|{{{1}}}|Crafts|{{#var:craft}}|ingredients}}|{{{ingredient|}}}}}<!--
OR @arg:ingredient is empty
-->{{#if:{{{ingredient|}}}||continue}}<!--
-->{{#if:  {{#pos:{{#vardefineecho:ingredients|{{Merchant Data|{{{1}}}|Crafts|{{#var:craft}}|ingredients}} }}|{{{ingredient|}}}}}<!--
-->|{{#arraydefine:ingredients|{{Merchant Data|{{{1}}}|Crafts|{{#var:craft}}|ingredients}} }}<!--
-->{{#if:{{{ingredient|}}}||continue}}<!--
-->{{#vardefine:rarity|{{Merchant Data|{{{1}}}|Crafts|{{#var:craft}}|rarity}} }}<!--
-->|{{#vardefine:rarity|{{Merchant Data|{{{1}}}|Crafts|{{#var:craft}}|rarity}}}}<!--
--><tr>
-->{{#arraydefine:ingredients|{{#var:ingredients}}}}<!--
<td>{{Iconbox|<!--
--><td>{{Iconbox<!--
-->{{#if:{{#pos:{{#var:craft}}|Potion}}<!--
-->|{{#if:{{#pos:{{#var:craft}}|Potion}}<!--
-->|{{#explode:{{#var:craft}}| |1|2}}<!--
-->|{{#explode:{{#var:craft}}| |1|2}}<!--
-->|{{#var:craft}} }}<!--
-->|{{#var:craft}}}}<!--
-->|size=x100px<!--
-->|size =x100px<!--
-->|amount={{Merchant Data|{{{1}}}|Crafts|{{#var:craft}}|quantity}}<!--
-->|amount ={{Merchant Data|{{{1}}}|Crafts|{{#var:craft}}|quantity}}<!--
-->|caption=<span class="colorrarity{{#var:rarity}}">{{#var:craft}}</span><!--
-->|caption =<span class="colorrarity{{#var:rarity}}">{{#var:craft}}</span><!--
-->|rarity={{#var:rarity}} }}</td>
-->|rarity ={{#var:rarity}} }}</td><!--
<td>{{#loop:i|0|{{#arraysize:ingredients}}<!--
--><td>{{#loop:i|0|{{#arraysize:ingredients}}<!--
-->|{{#vardefine:ingredient|{{#arrayindex:ingredients|{{#var:i}} }} }}<!--
-->|{{#vardefine:ingredient|{{#arrayindex:ingredients|{{#var:i}}}}}}<!--
-->{{Iconbox|<!--
-->{{Iconbox|<!--
-->{{#explode:{{#var:ingredient}}|-|1}}<!--
-->{{#explode:{{#var:ingredient}}|-|1}}<!--
-->|size=x100px<!--
-->|size =x100px<!--
-->|caption=no<!--
-->|caption =no<!--
-->|amount={{#explode:{{#var:ingredient}}|-|0}}<!--
-->|amount ={{#explode:{{#var:ingredient}}|-|0}}<!--
-->|rarity=<!--
-->|rarity=<!--
-->{{#if:{{#explode:{{#var:ingredient}}|-|2}}<!--
-->{{#if:{{#explode:{{#var:ingredient}}|-|2}}<!--
-->|{{#explode:{{#var:ingredient}}|-|2}}<!--
-->|{{#explode:{{#var:ingredient}}|-|2}}<!--
-->|{{Misc Data|{{#explode:{{#var:ingredient}}|-|1}}|Rarities}} }} }} }}</td>
-->|{{Misc Data|{{#explode:{{#var:ingredient}}|-|1}}|Rarities}}}}}}}}</td><!--
<td>[[{{{1}}}]]</td></tr>}} }} }}<!--
--><td>[[{{{1}}}]]</td>}}</tr>}}</table><!--
 
Use the var:rows to check if we want to display the table.
--><table cellspacing="0" class="wikitable sortable jquery-tablesorter" style="width:55%; min-width:500px; background:transparent; text-align:center; vertical-align:middle; {{#if:{{#var:rows}}||display:none;}}"><!--
--><tr style="font-weight:bold; {{#if:{{{header|}}}||display:none;}}"><th style="width:15%">Name</th><th style="width:25%">Ingredients</th><th style="width:10%">Trader</th></tr><!--
-->{{#var:rows}}</table><!--


--></includeonly><noinclude>
--></includeonly><noinclude>
=Parameters=
*1:
**Merchant Name
**default: empty string
*2:
**Item or List of Items separated by commas
**default: empty string
*ingredient:
**ingredient to search for
**default: empty string
*ingredientcategory:
**item category of ingredient <code>{Weapon, Armor, Accessory, Utility, Misc}</code>
**default: <code>Misc</code>
==Example==
<pre>{{GenerateCraftingTable|Alchemist|ingredient=Gold Coin}}</pre>
{{GenerateCraftingTable|Alchemist|ingredient=Gold Coin}}
==Example==
==Example==
<pre>{{GenerateCraftingTable|Weaponsmith|header=yes|ingredient=Cyclops's Club}}</pre>
<pre>{{GenerateCraftingTable|Weaponsmith|ingredient=Longsword|ingredientcategory=Weapon}}</pre>
{{GenerateCraftingTable|Weaponsmith|header=yes|ingredient=Cyclops's Club}}
{{GenerateCraftingTable|Weaponsmith|ingredient=Longsword|ingredientcategory=Weapon}}
==Example==
==Example==
<pre>{{GenerateCraftingTable|Weaponsmith|header=yes|Sterling Blade}}</pre>
<pre>{{GenerateCraftingTable|Alchemist|ingredient=Golden Teeth}}</pre>
{{GenerateCraftingTable|Weaponsmith|header=yes|Sterling Blade}}
{{GenerateCraftingTable|Alchemist|ingredient=Golden Teeth}}
==Example==
==Example==
<pre>{{GenerateCraftingTable|Alchemist|header=yes}}</pre>
<pre>{{GenerateCraftingTable|Weaponsmith|Sterling Blade}}</pre>
{{GenerateCraftingTable|Alchemist|header=yes}}
{{GenerateCraftingTable|Weaponsmith|Sterling Blade}}
==Example==
==Example==
<pre>{{GenerateCraftingTable|Alchemist}}</pre>
<pre>{{GenerateCraftingTable|Alchemist}}</pre>

Latest revision as of 06:53, 23 June 2024

Parameters

  • 1:
    • Merchant Name
    • default: empty string
  • 2:
    • Item or List of Items separated by commas
    • default: empty string
  • ingredient:
    • ingredient to search for
    • default: empty string
  • ingredientcategory:
    • item category of ingredient {Weapon, Armor, Accessory, Utility, Misc}
    • default: Misc

Example

{{GenerateCraftingTable|Alchemist|ingredient=Gold Coin}}
NameIngredientsMerchant
Gold Ingot1
Wolf Fang2
Wolf Claw3
Gold Coin300
Alchemist
Gold Ingot1
Golden Teeth1
Gold Coin300
Alchemist

Example

{{GenerateCraftingTable|Weaponsmith|ingredient=Longsword|ingredientcategory=Weapon}}
NameIngredientsMerchant
Longsword1
Dark Matter1
Gold Ingot3
Gold Coin50
Weaponsmith
Longsword1
Silver Powder2
Weaponsmith
Longsword1
Silver Ingot2
Weaponsmith
Longsword1
Silver Ingot3
Weaponsmith

Example

{{GenerateCraftingTable|Alchemist|ingredient=Golden Teeth}}
NameIngredientsMerchant
Gold Ingot1
Golden Teeth1
Gold Coin300
Alchemist

Example

{{GenerateCraftingTable|Weaponsmith|Sterling Blade}}
NameIngredientsMerchant
Longsword1
Silver Powder2
Weaponsmith

Example

{{GenerateCraftingTable|Alchemist}}
NameIngredientsMerchant
Iron Ore2
Alchemist
Copper Ore2
Alchemist
Cobalt Ore2
Alchemist
Rubysilver Ore2
Alchemist
Silver Coin45
Alchemist
Gold Ore2
Alchemist
Froststone Ore2
Alchemist
Gold Ingot1
Wolf Fang2
Wolf Claw3
Gold Coin300
Alchemist
Gold Ingot1
Golden Teeth1
Gold Coin300
Alchemist
Potion of Healing1
Lifeleaf1
Alchemist
Potion of Healing1
Lifeleaf2
Alchemist
Potion of Healing1
Lifeleaf3
Alchemist
Potion of Healing1
Lifeleaf5
Alchemist
Potion of Protection1
Phantom Flower1
Alchemist
Potion of Protection1
Phantom Flower2
Alchemist
Potion of Protection1
Phantom Flower3
Alchemist
Potion of Protection1
Phantom Flower5
Alchemist
Magic Protection Potion1
Wardweed1
Alchemist
Magic Protection Potion1
Wardweed2
Alchemist
Magic Protection Potion1
Wardweed3
Alchemist
Magic Protection Potion1
Wardweed5
Alchemist
Lifeleaf2
Phantom Flower2
Wardweed2
Alchemist
Lifeleaf4
Phantom Flower4
Wardweed4
Alchemist
Lifeleaf6
Phantom Flower6
Wardweed6
Alchemist
Lifeleaf8
Phantom Flower8
Wardweed8
Alchemist

Example

{{GenerateCraftingTable|Alchemist|ingredient=Silver Ore}}