User:FizzleMaster/Sandbox/Itembox: Difference between revisions
FizzleMaster (talk | contribs) mNo edit summary |
FizzleMaster (talk | contribs) mNo edit summary |
||
| Line 9: | Line 9: | ||
--><div><!-- | --><div><!-- | ||
-->{{#if:{{{size|}}}|<div style="display:flex; justify-content:space-between;"><span>Size:</span><span>{{{size}}}</span></div>}}<!-- | -->{{#if:{{{size|}}}|<div style="display:flex; justify-content:space-between;"><span>Size:</span><span>{{{size}}}</span></div>}}<!-- | ||
-->{{#if:{{{weight|}}}|{{#iferror:{{#expr:{{{weight}}}+0}}|<div style="display:flex; justify-content:space-between;"><span>Weight:</span><span style="color:#ff5555;">⚠ Invalid value</span></div>|<div style="display:flex; justify-content:space-between;"><span>Weight:</span><span>{{#ifeq:{{{weight}}}|0|0.0|{{{weight}}}}}</span></div>}}}}<!-- | -->{{#if:{{{weight|}}}|{{#iferror:{{#expr:{{{weight}}}+0}}|<div style="display:flex; justify-content:space-between;"><span>Weight:</span><span style="color:#ff5555;">⚠ Invalid value</span></div>|<div style="display:flex; justify-content:space-between;"><span>Weight:</span><span>{{#ifeq:{{#expr:{{{weight}}}+0}}|0|0.0|{{#expr:{{{weight}}}+0}}}}</span></div>}}}}<!-- | ||
-->{{#if:{{{skill|}}}|<div style="display:flex; justify-content:space-between;"><span>Skill:</span><span>{{{skill}}}</span></div>}}<!-- | -->{{#if:{{{skill|}}}|<div style="display:flex; justify-content:space-between;"><span>Skill:</span><span>{{{skill}}}</span></div>}}<!-- | ||
--></div><!-- | --></div><!-- | ||
--><div><!-- | --><div><!-- | ||
-->{{#if:{{{hp|}}}|{{#iferror:{{#expr:{{{hp}}}+0}}|<div style="display:flex; justify-content:space-between;"><span>HP:</span><span style="color:#ff5555;">⚠ Invalid value</span></div>|{{#ifeq:{{{hp}}}|0||<div style="display:flex; justify-content:space-between;"><span>HP:</span><span>{{{hp}}}</span></div>}}}}}}<!-- | -->{{#if:{{{hp|}}}|{{#iferror:{{#expr:{{{hp}}}+0}}|<div style="display:flex; justify-content:space-between;"><span>HP:</span><span style="color:#ff5555;">⚠ Invalid value</span></div>|{{#ifeq:{{#expr:{{{hp}}}+0}}|0||<div style="display:flex; justify-content:space-between;"><span>HP:</span><span>{{#expr:{{{hp}}}+0}}</span></div>}}}}}}<!-- | ||
-->{{#if:{{{mana|}}}|{{#iferror:{{#expr:{{{mana}}}+0}}|<div style="display:flex; justify-content:space-between;"><span>Mana:</span><span style="color:#ff5555;">⚠ Invalid value</span></div>|{{#ifeq:{{{mana}}}|0||<div style="display:flex; justify-content:space-between;"><span>Mana:</span><span>{{{mana}}}</span></div>}}}}}}<!-- | -->{{#if:{{{mana|}}}|{{#iferror:{{#expr:{{{mana}}}+0}}|<div style="display:flex; justify-content:space-between;"><span>Mana:</span><span style="color:#ff5555;">⚠ Invalid value</span></div>|{{#ifeq:{{#expr:{{{mana}}}+0}}|0||<div style="display:flex; justify-content:space-between;"><span>Mana:</span><span>{{#expr:{{{mana}}}+0}}</span></div>}}}}}}<!-- | ||
-->{{#if:{{{endurance|}}}|{{#iferror:{{#expr:{{{endurance}}}+0}}|<div style="display:flex; justify-content:space-between;"><span>Endurance:</span><span style="color:#ff5555;">⚠ Invalid value</span></div>|{{#ifeq:{{{endurance}}}|0||<div style="display:flex; justify-content:space-between;"><span>Endurance:</span><span>{{{endurance}}}</span></div>}}}}}}<!-- | -->{{#if:{{{endurance|}}}|{{#iferror:{{#expr:{{{endurance}}}+0}}|<div style="display:flex; justify-content:space-between;"><span>Endurance:</span><span style="color:#ff5555;">⚠ Invalid value</span></div>|{{#ifeq:{{#expr:{{{endurance}}}+0}}|0||<div style="display:flex; justify-content:space-between;"><span>Endurance:</span><span>{{#expr:{{{endurance}}}+0}}</span></div>}}}}}}<!-- | ||
--></div><!-- | --></div><!-- | ||
--><div><!-- | --><div><!-- | ||
-->{{#if:{{{dmg|}}}|{{#iferror:{{#expr:{{{dmg}}}+0}}|<div style="display:flex; justify-content:space-between;"><span>Base Dmg:</span><span style="color:#ff5555;">⚠ Invalid value</span></div>|{{#ifeq:{{{dmg}}}|0||<div style="display:flex; justify-content:space-between;"><span>Base Dmg:</span><span>{{{dmg}}}</span></div>}}}}}}<!-- | -->{{#if:{{{dmg|}}}|{{#iferror:{{#expr:{{{dmg}}}+0}}|<div style="display:flex; justify-content:space-between;"><span>Base Dmg:</span><span style="color:#ff5555;">⚠ Invalid value</span></div>|{{#ifeq:{{#expr:{{{dmg}}}+0}}|0||<div style="display:flex; justify-content:space-between;"><span>Base Dmg:</span><span>{{#expr:{{{dmg}}}+0}}</span></div>}}}}}}<!-- | ||
-->{{#vardefine:box_rogok|{{#if:{{#pos:{{{class|}}}|ROG}}|1|{{#if:{{#pos:{{{class|}}}|ALL}}|1|}}}}}}<!-- | -->{{#vardefine:box_rogok|{{#if:{{#pos:{{{class|}}}|ROG}}|1|{{#if:{{#pos:{{{class|}}}|ALL}}|1|}}}}}}<!-- | ||
-->{{#vardefine:box_piercing|{{#ifeq:{{{skill|}}}|1H Piercing|1|}}}}<!-- | -->{{#vardefine:box_piercing|{{#ifeq:{{{skill|}}}|1H Piercing|1|}}}}<!-- | ||
-->{{#if:{{{dmg|}}}|{{#if:{{#var:box_rogok}}|{{#if:{{#var:box_piercing}}|{{#if:{{{backstab|}}}|{{#iferror:{{#expr:{{{backstab}}}+0}}|<div style="display:flex; justify-content:space-between;"><span>Backstab Dmg:</span><span style="color:#ff5555;">⚠ Invalid value</span></div>|<div style="display:flex; justify-content:space-between;"><span>Backstab Dmg:</span><span>{{{backstab}}}</span></div>}}|{{#iferror:{{#expr:{{{dmg}}}+0}}|<div style="display:flex; justify-content:space-between;"><span>Backstab Dmg:</span><span style="color:#ff5555;">⚠ Invalid value</span></div>|<div style="display:flex; justify-content:space-between;"><span>Backstab Dmg:</span><span>{{{dmg}}}</span></div>}}}}}}}}}}<!-- | -->{{#if:{{{dmg|}}}|{{#if:{{#var:box_rogok}}|{{#if:{{#var:box_piercing}}|{{#if:{{{backstab|}}}|{{#iferror:{{#expr:{{{backstab}}}+0}}|<div style="display:flex; justify-content:space-between;"><span>Backstab Dmg:</span><span style="color:#ff5555;">⚠ Invalid value</span></div>|<div style="display:flex; justify-content:space-between;"><span>Backstab Dmg:</span><span>{{#expr:{{{backstab}}}+0}}</span></div>}}|{{#iferror:{{#expr:{{{dmg}}}+0}}|<div style="display:flex; justify-content:space-between;"><span>Backstab Dmg:</span><span style="color:#ff5555;">⚠ Invalid value</span></div>|<div style="display:flex; justify-content:space-between;"><span>Backstab Dmg:</span><span>{{#expr:{{{dmg}}}+0}}</span></div>}}}}}}}}}}<!-- | ||
-->{{#if:{{{delay|}}}|{{#iferror:{{#expr:{{{delay}}}+0}}|<div style="display:flex; justify-content:space-between;"><span>Delay:</span><span style="color:#ff5555;">⚠ Invalid value</span></div>|{{#ifeq:{{{delay}}}|0||<div style="display:flex; justify-content:space-between;"><span>Delay:</span><span>{{{delay}}}</span></div>}}}}}}<!-- | -->{{#if:{{{delay|}}}|{{#iferror:{{#expr:{{{delay}}}+0}}|<div style="display:flex; justify-content:space-between;"><span>Delay:</span><span style="color:#ff5555;">⚠ Invalid value</span></div>|{{#ifeq:{{#expr:{{{delay}}}+0}}|0||<div style="display:flex; justify-content:space-between;"><span>Delay:</span><span>{{#expr:{{{delay}}}+0}}</span></div>}}}}}}<!-- | ||
-->{{#if:{{{dmg_bonus|}}}|{{#iferror:{{#expr:{{{dmg_bonus}}}+0}}|<div style="display:flex; justify-content:space-between;"><span>Dmg Bon:</span><span style="color:#ff5555;">⚠ Invalid value</span></div>|{{#ifeq:{{{dmg_bonus}}}|0||<div style="display:flex; justify-content:space-between;"><span>Dmg Bon:</span><span>{{{dmg_bonus}}}</span></div>}}}}}}<!-- | -->{{#if:{{{dmg_bonus|}}}|{{#iferror:{{#expr:{{{dmg_bonus}}}+0}}|<div style="display:flex; justify-content:space-between;"><span>Dmg Bon:</span><span style="color:#ff5555;">⚠ Invalid value</span></div>|{{#ifeq:{{#expr:{{{dmg_bonus}}}+0}}|0||<div style="display:flex; justify-content:space-between;"><span>Dmg Bon:</span><span>{{#expr:{{{dmg_bonus}}}+0}}</span></div>}}}}}}<!-- | ||
-->{{#if:{{{dmg|}}}|<div style="display:flex; justify-content:space-between;"><span>Ratio:</span><span class="itemratio"></span></div>}}<!-- | -->{{#if:{{{dmg|}}}|<div style="display:flex; justify-content:space-between;"><span>Ratio:</span><span class="itemratio"></span></div>}}<!-- | ||
--></div><!-- | --></div><!-- | ||
| Line 30: | Line 30: | ||
--><div style="display:grid; grid-template-columns:110px 110px 150px; gap:1.5em; margin:0.5em 0;"><!-- | --><div style="display:grid; grid-template-columns:110px 110px 150px; gap:1.5em; margin:0.5em 0;"><!-- | ||
--><div><!-- | --><div><!-- | ||
-->{{#if:{{{str|}}}|{{#iferror:{{#expr:{{{str}}}+0}}|<div style="display:flex; justify-content:space-between;"><span>Strength:</span><span style="color:#ff5555;">⚠ Invalid value</span></div>|{{#ifeq:{{{str}}}|0||<div style="display:flex; justify-content:space-between;"><span>Strength:</span><span>{{{str}}}</span></div>}}}}}}<!-- | -->{{#if:{{{str|}}}|{{#iferror:{{#expr:{{{str}}}+0}}|<div style="display:flex; justify-content:space-between;"><span>Strength:</span><span style="color:#ff5555;">⚠ Invalid value</span></div>|{{#ifeq:{{#expr:{{{str}}}+0}}|0||<div style="display:flex; justify-content:space-between;"><span>Strength:</span><span>{{#expr:{{{str}}}+0}}</span></div>}}}}}}<!-- | ||
-->{{#if:{{{sta|}}}|{{#iferror:{{#expr:{{{sta}}}+0}}|<div style="display:flex; justify-content:space-between;"><span>Stamina:</span><span style="color:#ff5555;">⚠ Invalid value</span></div>|{{#ifeq:{{{sta}}}|0||<div style="display:flex; justify-content:space-between;"><span>Stamina:</span><span>{{{sta}}}</span></div>}}}}}}<!-- | -->{{#if:{{{sta|}}}|{{#iferror:{{#expr:{{{sta}}}+0}}|<div style="display:flex; justify-content:space-between;"><span>Stamina:</span><span style="color:#ff5555;">⚠ Invalid value</span></div>|{{#ifeq:{{#expr:{{{sta}}}+0}}|0||<div style="display:flex; justify-content:space-between;"><span>Stamina:</span><span>{{#expr:{{{sta}}}+0}}</span></div>}}}}}}<!-- | ||
-->{{#if:{{{int|}}}|{{#iferror:{{#expr:{{{int}}}+0}}|<div style="display:flex; justify-content:space-between;"><span>Intelligence:</span><span style="color:#ff5555;">⚠ Invalid value</span></div>|{{#ifeq:{{{int}}}|0||<div style="display:flex; justify-content:space-between;"><span>Intelligence:</span><span>{{{int}}}</span></div>}}}}}}<!-- | -->{{#if:{{{int|}}}|{{#iferror:{{#expr:{{{int}}}+0}}|<div style="display:flex; justify-content:space-between;"><span>Intelligence:</span><span style="color:#ff5555;">⚠ Invalid value</span></div>|{{#ifeq:{{#expr:{{{int}}}+0}}|0||<div style="display:flex; justify-content:space-between;"><span>Intelligence:</span><span>{{#expr:{{{int}}}+0}}</span></div>}}}}}}<!-- | ||
-->{{#if:{{{wis|}}}|{{#iferror:{{#expr:{{{wis}}}+0}}|<div style="display:flex; justify-content:space-between;"><span>Wisdom:</span><span style="color:#ff5555;">⚠ Invalid value</span></div>|{{#ifeq:{{{wis}}}|0||<div style="display:flex; justify-content:space-between;"><span>Wisdom:</span><span>{{{wis}}}</span></div>}}}}}}<!-- | -->{{#if:{{{wis|}}}|{{#iferror:{{#expr:{{{wis}}}+0}}|<div style="display:flex; justify-content:space-between;"><span>Wisdom:</span><span style="color:#ff5555;">⚠ Invalid value</span></div>|{{#ifeq:{{#expr:{{{wis}}}+0}}|0||<div style="display:flex; justify-content:space-between;"><span>Wisdom:</span><span>{{#expr:{{{wis}}}+0}}</span></div>}}}}}}<!-- | ||
-->{{#if:{{{agi|}}}|{{#iferror:{{#expr:{{{agi}}}+0}}|<div style="display:flex; justify-content:space-between;"><span>Agility:</span><span style="color:#ff5555;">⚠ Invalid value</span></div>|{{#ifeq:{{{agi}}}|0||<div style="display:flex; justify-content:space-between;"><span>Agility:</span><span>{{{agi}}}</span></div>}}}}}}<!-- | -->{{#if:{{{agi|}}}|{{#iferror:{{#expr:{{{agi}}}+0}}|<div style="display:flex; justify-content:space-between;"><span>Agility:</span><span style="color:#ff5555;">⚠ Invalid value</span></div>|{{#ifeq:{{#expr:{{{agi}}}+0}}|0||<div style="display:flex; justify-content:space-between;"><span>Agility:</span><span>{{#expr:{{{agi}}}+0}}</span></div>}}}}}}<!-- | ||
-->{{#if:{{{dex|}}}|{{#iferror:{{#expr:{{{dex}}}+0}}|<div style="display:flex; justify-content:space-between;"><span>Dexterity:</span><span style="color:#ff5555;">⚠ Invalid value</span></div>|{{#ifeq:{{{dex}}}|0||<div style="display:flex; justify-content:space-between;"><span>Dexterity:</span><span>{{{dex}}}</span></div>}}}}}}<!-- | -->{{#if:{{{dex|}}}|{{#iferror:{{#expr:{{{dex}}}+0}}|<div style="display:flex; justify-content:space-between;"><span>Dexterity:</span><span style="color:#ff5555;">⚠ Invalid value</span></div>|{{#ifeq:{{#expr:{{{dex}}}+0}}|0||<div style="display:flex; justify-content:space-between;"><span>Dexterity:</span><span>{{#expr:{{{dex}}}+0}}</span></div>}}}}}}<!-- | ||
-->{{#if:{{{cha|}}}|{{#iferror:{{#expr:{{{cha}}}+0}}|<div style="display:flex; justify-content:space-between;"><span>Charisma:</span><span style="color:#ff5555;">⚠ Invalid value</span></div>|{{#ifeq:{{{cha}}}|0||<div style="display:flex; justify-content:space-between;"><span>Charisma:</span><span>{{{cha}}}</span></div>}}}}}}<!-- | -->{{#if:{{{cha|}}}|{{#iferror:{{#expr:{{{cha}}}+0}}|<div style="display:flex; justify-content:space-between;"><span>Charisma:</span><span style="color:#ff5555;">⚠ Invalid value</span></div>|{{#ifeq:{{#expr:{{{cha}}}+0}}|0||<div style="display:flex; justify-content:space-between;"><span>Charisma:</span><span>{{#expr:{{{cha}}}+0}}</span></div>}}}}}}<!-- | ||
--></div><!-- | --></div><!-- | ||
--><div><!-- | --><div><!-- | ||
-->{{#if:{{{svmagic|}}}|{{#iferror:{{#expr:{{{svmagic}}}+0}}|<div style="display:flex; justify-content:space-between;"><span>SV Magic:</span><span style="color:#ff5555;">⚠ Invalid value</span></div>|{{#ifeq:{{{svmagic}}}|0||<div style="display:flex; justify-content:space-between;"><span>SV Magic:</span><span>{{{svmagic}}}</span></div>}}}}}}<!-- | -->{{#if:{{{svmagic|}}}|{{#iferror:{{#expr:{{{svmagic}}}+0}}|<div style="display:flex; justify-content:space-between;"><span>SV Magic:</span><span style="color:#ff5555;">⚠ Invalid value</span></div>|{{#ifeq:{{#expr:{{{svmagic}}}+0}}|0||<div style="display:flex; justify-content:space-between;"><span>SV Magic:</span><span>{{#expr:{{{svmagic}}}+0}}</span></div>}}}}}}<!-- | ||
-->{{#if:{{{svfire|}}}|{{#iferror:{{#expr:{{{svfire}}}+0}}|<div style="display:flex; justify-content:space-between;"><span>SV Fire:</span><span style="color:#ff5555;">⚠ Invalid value</span></div>|{{#ifeq:{{{svfire}}}|0||<div style="display:flex; justify-content:space-between;"><span>SV Fire:</span><span>{{{svfire}}}</span></div>}}}}}}<!-- | -->{{#if:{{{svfire|}}}|{{#iferror:{{#expr:{{{svfire}}}+0}}|<div style="display:flex; justify-content:space-between;"><span>SV Fire:</span><span style="color:#ff5555;">⚠ Invalid value</span></div>|{{#ifeq:{{#expr:{{{svfire}}}+0}}|0||<div style="display:flex; justify-content:space-between;"><span>SV Fire:</span><span>{{#expr:{{{svfire}}}+0}}</span></div>}}}}}}<!-- | ||
-->{{#if:{{{svcold|}}}|{{#iferror:{{#expr:{{{svcold}}}+0}}|<div style="display:flex; justify-content:space-between;"><span>SV Cold:</span><span style="color:#ff5555;">⚠ Invalid value</span></div>|{{#ifeq:{{{svcold}}}|0||<div style="display:flex; justify-content:space-between;"><span>SV Cold:</span><span>{{{svcold}}}</span></div>}}}}}}<!-- | -->{{#if:{{{svcold|}}}|{{#iferror:{{#expr:{{{svcold}}}+0}}|<div style="display:flex; justify-content:space-between;"><span>SV Cold:</span><span style="color:#ff5555;">⚠ Invalid value</span></div>|{{#ifeq:{{#expr:{{{svcold}}}+0}}|0||<div style="display:flex; justify-content:space-between;"><span>SV Cold:</span><span>{{#expr:{{{svcold}}}+0}}</span></div>}}}}}}<!-- | ||
-->{{#if:{{{svdisease|}}}|{{#iferror:{{#expr:{{{svdisease}}}+0}}|<div style="display:flex; justify-content:space-between;"><span>SV Disease:</span><span style="color:#ff5555;">⚠ Invalid value</span></div>|{{#ifeq:{{{svdisease}}}|0||<div style="display:flex; justify-content:space-between;"><span>SV Disease:</span><span>{{{svdisease}}}</span></div>}}}}}}<!-- | -->{{#if:{{{svdisease|}}}|{{#iferror:{{#expr:{{{svdisease}}}+0}}|<div style="display:flex; justify-content:space-between;"><span>SV Disease:</span><span style="color:#ff5555;">⚠ Invalid value</span></div>|{{#ifeq:{{#expr:{{{svdisease}}}+0}}|0||<div style="display:flex; justify-content:space-between;"><span>SV Disease:</span><span>{{#expr:{{{svdisease}}}+0}}</span></div>}}}}}}<!-- | ||
-->{{#if:{{{svpoison|}}}|{{#iferror:{{#expr:{{{svpoison}}}+0}}|<div style="display:flex; justify-content:space-between;"><span>SV Poison:</span><span style="color:#ff5555;">⚠ Invalid value</span></div>|{{#ifeq:{{{svpoison}}}|0||<div style="display:flex; justify-content:space-between;"><span>SV Poison:</span><span>{{{svpoison}}}</span></div>}}}}}}<!-- | -->{{#if:{{{svpoison|}}}|{{#iferror:{{#expr:{{{svpoison}}}+0}}|<div style="display:flex; justify-content:space-between;"><span>SV Poison:</span><span style="color:#ff5555;">⚠ Invalid value</span></div>|{{#ifeq:{{#expr:{{{svpoison}}}+0}}|0||<div style="display:flex; justify-content:space-between;"><span>SV Poison:</span><span>{{#expr:{{{svpoison}}}+0}}</span></div>}}}}}}<!-- | ||
-->{{#if:{{{svvoid|}}}|{{#iferror:{{#expr:{{{svvoid}}}+0}}|<div style="display:flex; justify-content:space-between;"><span>SV Void:</span><span style="color:#ff5555;">⚠ Invalid value</span></div>|{{#ifeq:{{{svvoid}}}|0||<div style="display:flex; justify-content:space-between;"><span>SV Void:</span><span>{{{svvoid}}}</span></div>}}}}}}<!-- | -->{{#if:{{{svvoid|}}}|{{#iferror:{{#expr:{{{svvoid}}}+0}}|<div style="display:flex; justify-content:space-between;"><span>SV Void:</span><span style="color:#ff5555;">⚠ Invalid value</span></div>|{{#ifeq:{{#expr:{{{svvoid}}}+0}}|0||<div style="display:flex; justify-content:space-between;"><span>SV Void:</span><span>{{#expr:{{{svvoid}}}+0}}</span></div>}}}}}}<!-- | ||
--></div><!-- | --></div><!-- | ||
--><div></div><!-- | --><div></div><!-- | ||
| Line 52: | Line 52: | ||
-->{{#if:{{{click_effect|}}}|Click Effect: [[{{{click_effect}}}|<span class="itemeff">{{{click_effect}}}</span>]]{{#if:{{{click_effect_flag|}}}| ({{{click_effect_flag}}})}}<br><!-- | -->{{#if:{{{click_effect|}}}|Click Effect: [[{{{click_effect}}}|<span class="itemeff">{{{click_effect}}}</span>]]{{#if:{{{click_effect_flag|}}}| ({{{click_effect_flag}}})}}<br><!-- | ||
-->{{#if:{{{click_cast_time|}}}|<div style="margin-left:1.5em;">Cast Time: {{{click_cast_time}}}</div>}}<!-- | -->{{#if:{{{click_cast_time|}}}|<div style="margin-left:1.5em;">Cast Time: {{{click_cast_time}}}</div>}}<!-- | ||
-->{{#if:{{{click_required_level|}}}|{{#iferror:{{#expr:{{{click_required_level}}}+0}}|<div style="margin-left:1.5em; color:#ff5555;">Required Level: ⚠ Invalid value</div>|<div style="margin-left:1.5em;">Required Level: {{{click_required_level}}}</div>}}}}<!-- | -->{{#if:{{{click_required_level|}}}|{{#iferror:{{#expr:{{{click_required_level}}}+0}}|<div style="margin-left:1.5em; color:#ff5555;">Required Level: ⚠ Invalid value</div>|<div style="margin-left:1.5em;">Required Level: {{#expr:{{{click_required_level}}}+0}}</div>}}}}<!-- | ||
-->{{#if:{{{click_cooldown|}}}|<div style="margin-left:1.5em;">Cooldown: {{{click_cooldown}}}</div>}}<!-- | -->{{#if:{{{click_cooldown|}}}|<div style="margin-left:1.5em;">Cooldown: {{{click_cooldown}}}</div>}}<!-- | ||
-->}}<!-- | -->}}<!-- | ||
-->{{#if:{{{worn_effect|}}}|Worn Effect: [[{{{worn_effect}}}|<span class="itemeff">{{{worn_effect}}}</span>]]<br>}}<!-- | -->{{#if:{{{worn_effect|}}}|Worn Effect: [[{{{worn_effect}}}|<span class="itemeff">{{{worn_effect}}}</span>]]<br>}}<!-- | ||
-->{{#if:{{{combat_effect|}}}|Combat Effect: [[{{{combat_effect}}}|<span class="itemeff">{{{combat_effect}}}</span>]]{{#if:{{{combat_effect_level|}}}|{{#iferror:{{#expr:{{{combat_effect_level}}}+0}}| <span style="color:#ff5555;">(⚠ Invalid value)</span>| (Req Level {{{combat_effect_level}}})}}}}<br>}} | -->{{#if:{{{combat_effect|}}}|Combat Effect: [[{{{combat_effect}}}|<span class="itemeff">{{{combat_effect}}}</span>]]{{#if:{{{combat_effect_level|}}}|{{#iferror:{{#expr:{{{combat_effect_level}}}+0}}| <span style="color:#ff5555;">(⚠ Invalid value)</span>| (Req Level {{#expr:{{{combat_effect_level}}}+0}})}}}}<br>}} | ||
</div></div><div class="itembotbg"></div></includeonly><noinclude> | </div></div><div class="itembotbg"></div></includeonly><noinclude> | ||
===Description=== | ===Description=== | ||
Sandbox redesign of Template:Itembox, matching the in-game tooltip's layout, wording, | Sandbox redesign of Template:Itembox, matching the in-game tooltip's layout, wording, and field placement rather than the wiki's previous single-column free-text blob. Within each stat column, labels left-justify and values right-justify, matching the in-game tooltip's visual alignment. The box has left/right padding (currently 1.4em) around all content, tuned to visually match the in-game tooltip's own margins. | ||
and field placement rather than the wiki's previous single-column free-text blob. | |||
Within each stat column, labels left-justify and values right-justify, matching the | |||
in-game tooltip's visual alignment. The box has left/right padding (currently 1.4em) | |||
around all content, tuned to visually match the in-game tooltip's own margins. | |||
'''Important: always enter base (Tier 0) values.''' EQL's item upgrade system | '''Important: always enter base (Tier 0) values.''' EQL's item upgrade system (see [[Item Upgrade System]]) lets players raise an item's tier with motes, which increases its stats via a slider — the wiki should record only the base values an upgrade slider derives everything else from, never a specific upgraded copy's numbers. | ||
(see [[Item Upgrade System]]) lets players raise an item's tier with motes, which | |||
increases its stats via a slider — the wiki should record only the base values an | |||
upgrade slider derives everything else from, never a specific upgraded copy's numbers. | |||
'''Note on Class:''' the Exaltation swap system can change an item's class | '''Note on Class:''' the Exaltation swap system can change an item's class restriction (e.g. socketing a class-specific effect into an otherwise multi-class item can lock it to that class). Record the item's class access with no swapped-in Exaltations applied — its own original kit only. | ||
restriction (e.g. socketing a class-specific effect into an otherwise multi-class | |||
item can lock it to that class). Record the item's class access with no swapped-in | |||
Exaltations applied — its own original kit only. | |||
'''Note on Skill:''' use the exact in-game skill name, e.g. "1H Piercing" rather than | '''Note on Skill:''' use the exact in-game skill name, e.g. "1H Piercing" rather than "Piercing" — Rogues do not have access to a 2H Piercing skill, so the Backstab logic checks for this exact string. | ||
"Piercing" — Rogues do not have access to a 2H Piercing skill, so the Backstab | |||
logic checks for this exact string. | |||
'''Ratio shown as an empty visual placeholder:''' the Ratio row (Base Dmg ÷ Delay) | '''Ratio shown as an empty visual placeholder:''' the Ratio row (Base Dmg ÷ Delay) always renders when the item has a dmg value, with its label present but the value intentionally left blank (<span class="itemratio"></span>). This mocks up how the page is expected to look once the item upgrade tier slider is implemented — that tool would compute and fill in Ratio live based on the selected tier, which a static wiki page cannot do on its own for a value tied to a variable upgrade tier. The placeholder just reserves the correct labeled position without guessing at the computation. | ||
always renders when the item has a dmg value, with its label present but the value | |||
intentionally left blank (<span class="itemratio"></span>). This mocks up how the | |||
page is expected to look once the item upgrade tier slider is implemented — that | |||
tool would compute and fill in Ratio live based on the selected tier, which a static | |||
wiki page cannot do on its own for a value tied to a variable upgrade tier. The | |||
placeholder just reserves the correct labeled position without guessing at the | |||
computation. | |||
'''Zero-value safeguard:''' every numeric stat field except Weight is skipped | '''Zero-value safeguard:''' every numeric stat field except Weight is skipped entirely — not rendered at all, with the layout adjusting automatically to close the gap — if the value evaluates to "0". This includes Base Dmg, Delay, Dmg Bon, HP, Mana, Endurance, Strength, Stamina, Intelligence, Wisdom, Agility, Dexterity, Charisma, and all six SV resists. This guards against an editor typing 0 out of habit for a stat that doesn't apply, since with named parameters it's easy to treat this like a form to fill in completely rather than leaving a field genuinely blank. Leaving the field blank works exactly the same way as entering 0 — and so does entering "+0", since the check now compares the evaluated value, not the raw typed text (see the plus-sign note below). | ||
entirely — not rendered at all, with the layout adjusting automatically to close | |||
the gap — if the value | |||
HP, Mana, Endurance, Strength, Stamina, Intelligence, Wisdom, Agility, Dexterity, | |||
Charisma, and all six SV resists. This guards against an editor typing 0 out of | |||
habit for a stat that doesn't apply, since with named parameters it's easy to treat | |||
this like a form to fill in completely rather than leaving a field genuinely blank. | |||
Leaving the field blank works exactly the same way as entering 0. | |||
'''Exception: Weight always renders, even at 0.''' Weight is a real physical | '''Exception: Weight always renders, even at 0.''' Weight is a real physical attribute (a weightless item is meaningful data, not "not applicable"), so | weight = 0 always shows and is normalized to display as "0.0" rather than a bare "0", matching the in-game tooltip's formatting. | ||
attribute (a weightless item is meaningful data, not "not applicable"), so | |||
| weight = 0 always shows and is normalized to display as "0.0" rather than a bare | |||
"0", matching the in-game tooltip's formatting. | |||
'''Size and Skill always render regardless of value''' — these aren't numeric | '''Size and Skill always render regardless of value''' — these aren't numeric bonuses and have no meaningful "zero" state to guard against. | ||
bonuses and have no meaningful "zero" state to guard against. | |||
'''Numeric validation:''' the following 23 fields must contain a genuine number — | '''Numeric validation:''' the following 23 fields must contain a genuine number — digits, an optional leading minus sign for negative stats (e.g. Charisma penalties), and an optional decimal point (e.g. Weight) — or the page displays a short red "⚠ Invalid value" warning in that field's spot instead of a broken parser error or silently-wrong data: weight, hp, mana, endurance, dmg, backstab, delay, dmg_bonus, str, sta, int, wis, agi, dex, cha, svmagic, svfire, svcold, svdisease, svpoison, svvoid, combat_effect_level, click_required_level. Letters, symbols, or text (e.g. "five", "N/A", "?") all trigger the warning. This works by testing each value through MediaWiki's #expr, which only accepts real numeric expressions, caught with #iferror before it can leak MediaWiki's own longer default error text ("Expression error: Unrecognized word "X"." — nearly 3x longer than our message and untested against these narrow columns). | ||
digits, an optional leading minus sign for negative stats (e.g. Charisma penalties), | |||
and an optional decimal point (e.g. Weight) — or the page displays a short red | |||
"⚠ Invalid value" warning in that field's spot instead of a broken parser error or | |||
silently-wrong data: | |||
'''Leading plus signs are stripped automatically.''' If an editor types "+5" for any of the 23 validated numeric fields, the page displays "5" — a plus sign is redundant on a stat value, since a number with no sign is already understood as positive. A minus sign is preserved correctly ("-30" still displays as "-30"). This works because every validated field's displayed value is the *result* of running it through MediaWiki's #expr (the same calculation already used to check validity), rather than the raw text the editor typed — and #expr math naturally treats "+5" and "5" as equivalent, so the sign disappears as a side effect of evaluating it as a number, with no separate string-stripping logic needed. | |||
'''Backstab Dmg has special logic, not just simple validation:''' when the weapon qualifies (class contains ROG or ALL, AND skill is exactly "1H Piercing"), computed once via #vardefine into box_rogok and box_piercing to keep the nesting shallow and less error-prone than checking both conditions inline (a prior version of this template broke from a brace-count mistake at this exact spot — see the note in git history / discussion thread if this evolves into a real submission): | |||
'''Backstab Dmg has special logic, not just simple validation:''' when the weapon qualifies (class contains ROG or ALL, AND skill is exactly "1H Piercing"): | |||
* If '''backstab''' is left blank, it auto-fills from '''dmg''' — "Backstab Dmg: [same value as Base Dmg]". This is a real EQL mechanic: Backstab damage happens to equal base damage on many 1H Piercing weapons, so this saves the editor from retyping it, while still being fully overridable (see below). | * If '''backstab''' is left blank, it auto-fills from '''dmg''' — "Backstab Dmg: [same value as Base Dmg]". This is a real EQL mechanic: Backstab damage happens to equal base damage on many 1H Piercing weapons, so this saves the editor from retyping it, while still being fully overridable (see below). | ||
| Line 142: | Line 100: | ||
* click_effect, click_effect_flag (e.g. "Must Equip"), click_cast_time, click_required_level, click_cooldown | * click_effect, click_effect_flag (e.g. "Must Equip"), click_cast_time, click_required_level, click_cooldown | ||
'''Deliberately NOT tracked:''' Exaltation slot contents (which item currently | '''Deliberately NOT tracked:''' Exaltation slot contents (which item currently provides each effect) — this is mutable player customization, not base item data. Only record an effect here if the in-game Exaltation slot shows the item's OWN name as the source. | ||
provides each effect) — this is mutable player customization, not base item data. | |||
Only record an effect here if the in-game Exaltation slot shows the item's OWN name | |||
as the source. | |||
'''Deliberately omitted:''' Ratio (Base Dmg ÷ Delay) — client-computed display value, | '''Deliberately omitted:''' Ratio (Base Dmg ÷ Delay) — client-computed display value, not something an editor enters; reserved for the admins' planned upgrade-tier slider tool (see the Ratio placeholder note above). | ||
not something an editor enters; reserved for the admins' planned upgrade-tier slider | |||
tool (see the Ratio placeholder note above). | |||
</noinclude> | </noinclude> | ||
Revision as of 05:44, 17 August 2026
Description
Sandbox redesign of Template:Itembox, matching the in-game tooltip's layout, wording, and field placement rather than the wiki's previous single-column free-text blob. Within each stat column, labels left-justify and values right-justify, matching the in-game tooltip's visual alignment. The box has left/right padding (currently 1.4em) around all content, tuned to visually match the in-game tooltip's own margins.
Important: always enter base (Tier 0) values. EQL's item upgrade system (see Item Upgrade System) lets players raise an item's tier with motes, which increases its stats via a slider — the wiki should record only the base values an upgrade slider derives everything else from, never a specific upgraded copy's numbers.
Note on Class: the Exaltation swap system can change an item's class restriction (e.g. socketing a class-specific effect into an otherwise multi-class item can lock it to that class). Record the item's class access with no swapped-in Exaltations applied — its own original kit only.
Note on Skill: use the exact in-game skill name, e.g. "1H Piercing" rather than "Piercing" — Rogues do not have access to a 2H Piercing skill, so the Backstab logic checks for this exact string.
Ratio shown as an empty visual placeholder: the Ratio row (Base Dmg ÷ Delay) always renders when the item has a dmg value, with its label present but the value intentionally left blank (). This mocks up how the page is expected to look once the item upgrade tier slider is implemented — that tool would compute and fill in Ratio live based on the selected tier, which a static wiki page cannot do on its own for a value tied to a variable upgrade tier. The placeholder just reserves the correct labeled position without guessing at the computation.
Zero-value safeguard: every numeric stat field except Weight is skipped entirely — not rendered at all, with the layout adjusting automatically to close the gap — if the value evaluates to "0". This includes Base Dmg, Delay, Dmg Bon, HP, Mana, Endurance, Strength, Stamina, Intelligence, Wisdom, Agility, Dexterity, Charisma, and all six SV resists. This guards against an editor typing 0 out of habit for a stat that doesn't apply, since with named parameters it's easy to treat this like a form to fill in completely rather than leaving a field genuinely blank. Leaving the field blank works exactly the same way as entering 0 — and so does entering "+0", since the check now compares the evaluated value, not the raw typed text (see the plus-sign note below).
Exception: Weight always renders, even at 0. Weight is a real physical attribute (a weightless item is meaningful data, not "not applicable"), so | weight = 0 always shows and is normalized to display as "0.0" rather than a bare "0", matching the in-game tooltip's formatting.
Size and Skill always render regardless of value — these aren't numeric bonuses and have no meaningful "zero" state to guard against.
Numeric validation: the following 23 fields must contain a genuine number — digits, an optional leading minus sign for negative stats (e.g. Charisma penalties), and an optional decimal point (e.g. Weight) — or the page displays a short red "⚠ Invalid value" warning in that field's spot instead of a broken parser error or silently-wrong data: weight, hp, mana, endurance, dmg, backstab, delay, dmg_bonus, str, sta, int, wis, agi, dex, cha, svmagic, svfire, svcold, svdisease, svpoison, svvoid, combat_effect_level, click_required_level. Letters, symbols, or text (e.g. "five", "N/A", "?") all trigger the warning. This works by testing each value through MediaWiki's #expr, which only accepts real numeric expressions, caught with #iferror before it can leak MediaWiki's own longer default error text ("Expression error: Unrecognized word "X"." — nearly 3x longer than our message and untested against these narrow columns).
Leading plus signs are stripped automatically. If an editor types "+5" for any of the 23 validated numeric fields, the page displays "5" — a plus sign is redundant on a stat value, since a number with no sign is already understood as positive. A minus sign is preserved correctly ("-30" still displays as "-30"). This works because every validated field's displayed value is the *result* of running it through MediaWiki's #expr (the same calculation already used to check validity), rather than the raw text the editor typed — and #expr math naturally treats "+5" and "5" as equivalent, so the sign disappears as a side effect of evaluating it as a number, with no separate string-stripping logic needed.
Backstab Dmg has special logic, not just simple validation: when the weapon qualifies (class contains ROG or ALL, AND skill is exactly "1H Piercing"), computed once via #vardefine into box_rogok and box_piercing to keep the nesting shallow and less error-prone than checking both conditions inline (a prior version of this template broke from a brace-count mistake at this exact spot — see the note in git history / discussion thread if this evolves into a real submission):
- If backstab is left blank, it auto-fills from dmg — "Backstab Dmg: [same value as Base Dmg]". This is a real EQL mechanic: Backstab damage happens to equal base damage on many 1H Piercing weapons, so this saves the editor from retyping it, while still being fully overridable (see below).
- If backstab is explicitly given a valid number, that value is used instead of the dmg default — set this whenever Backstab Dmg genuinely differs from Base Dmg in-game (confirmed to happen — do not assume they're always equal).
- If backstab is explicitly given an invalid value, the row shows the "⚠ Invalid value" warning.
- If backstab is left blank AND dmg itself is invalid, the Backstab row ALSO shows "⚠ Invalid value" — even though the editor never touched the backstab field. This is deliberate: since Backstab silently auto-fills from dmg, a broken dmg value would otherwise pass through into Backstab undetected. Two warnings for one root typo (Base Dmg's own row plus Backstab's) is judged better than letting bad data through silently on the second row.
- If the weapon doesn't qualify (wrong class or wrong skill), the entire Backstab row is omitted, exactly as today — no validation runs in this case either, since nothing would display regardless of what backstab contains.
Parameters:
- itemname, lucy_img_ID — same as original
- flags — free text, e.g. "Lore Equipped, Attunable, Quest, Placeable"
- class, race, slot
- size, weight, skill, delay
- dmg, dmg_bonus, backstab (optional; defaults to dmg for Rogue-usable 1H Piercing weapons — see Backstab section above)
- hp, mana, endurance
- str, sta, agi, dex, wis, int, cha
- svmagic, svfire, svcold, svdisease, svpoison, svvoid
- focus_effect, worn_effect — a linked spell name
- combat_effect, combat_effect_level — linked spell name + "(Req Level X)"
- click_effect, click_effect_flag (e.g. "Must Equip"), click_cast_time, click_required_level, click_cooldown
Deliberately NOT tracked: Exaltation slot contents (which item currently provides each effect) — this is mutable player customization, not base item data. Only record an effect here if the in-game Exaltation slot shows the item's OWN name as the source.
Deliberately omitted: Ratio (Base Dmg ÷ Delay) — client-computed display value, not something an editor enters; reserved for the admins' planned upgrade-tier slider tool (see the Ratio placeholder note above).