User:NtCarlson/Template:Damage dice image: Difference between revisions

From bg3.wiki
Jump to navigation Jump to search
(Parameter parsing)
(Made size of element correctly adjust with dice size)
Line 1: Line 1:
<includeonly>{{#lvardef: i | 1 }}<span style="display: block; width: 60px; height: 60px; padding-left: 40px; padding-top: 40px; position: relative">
<includeonly><!--
{{#while:  
Width specifies the size of the dice rather than the size of the entire element
-->{{#lvardef: width | {{{width|40}}}}}<!--
Get the number of dice needed to compute the size of the element
-->{{#lvardef: n_dice | 0}}{{#while:
| {{{ {{#expr: {{#lvar: n_dice }} + 1}} |}}}
| {{#lvardef: n_dice | {{#expr: {{#lvar: n_dice }} + 1 }} }}
}}{{#lvardef: elem_width | {{#ifexpr: {{#lvar: n_dice}} >= 2
  | calc({{#lvar: width}} * 1.4)
  | {{#lvar: width}}
}}}}<!--
Compute size of element based on number of dice. There probably is a better way to do this.
-->{{#lvardef: left_padding | {{#ifexpr: {{#lvar: n_dice}} >= 3
  | calc({{#lvar: width}} * 0.4)
  | 0
}}}}{{#lvardef: top_padding | {{#switch: {{#lvar: n_dice}}
  | 1 = 0
  | 2 | 3 = calc({{#lvar: width}} * 0.3)
  | 4 | 5 = calc({{#lvar: width}} * 0.7)
}}}}<!--
Container element
--><span style="
  display:     block;
  position:    relative;
  width:       {{#lvar: elem_width}};
  height:       {{#lvar: width}};
  padding-left: {{#lvar: left_padding}};
  padding-top: {{#lvar: top_padding}};
"><!--
Display each die
-->{{#lvardef: i | 1 }}{{#while:  
| {{{{{#lvar: i }} |}}}
| {{{{{#lvar: i }} |}}}
|
|
{{#lvardef: die | {{ #explode: {{{{{#lvar: i }} |}}} |:|0}}}}
{{#lvardef: die       | {{ #explode: {{{{{#lvar: i }} |}}} |:|0}}}}
{{#lvardef: type | {{ #explode: {{{{{#lvar: i }} |}}} |:|1}}}}
{{#lvardef: type     | {{ #explode: {{{{{#lvar: i }} |}}} |:|1}}}}
{{#lvardef: pos  | {{ #switch: {{#lvar: i }}
{{#lvardef: transform | {{ #switch: {{#lvar: i }}
| 1 = translate(0px, 0px)  
| 1 = translate( 0%, 0%)  
| 2 = translate(40px, -20px) rotate(20deg)
| 2 = translate( 40%, -30%) rotate(20deg)
| 3 = translate(-30px, -15px) rotate(40deg)
| 3 = translate(-35%, -25%) rotate(40deg)
| 4 = translate(30px, -40px) rotate(25deg)
| 4 = translate( 40%, -70%) rotate(25deg)
| 5 = translate(-28px, -42px) rotate(45deg)
| 5 = translate(-40%, -68%) rotate(40deg)
}}}}
}}}}
<span style="z-index: -{{#lvar: i}}; position: absolute; transform: {{#lvar: pos}}">[[File:{{#lvar: die}} {{#lvar:type}}.png]]</span>
<span style="
    z-index: -{{#lvar: i}};
    position: absolute;
    transform: {{#lvar: transform}}
">[[File:{{#lvar: die}} {{#lvar:type}}.png|link= |x{{#lvar: width}}]]</span>
{{#lvardef: i | {{#expr: {{#lvar: i }} + 1 }} }}
{{#lvardef: i | {{#expr: {{#lvar: i }} + 1 }} }}
}}
}}</span></includeonly><noinclude>
</span></includeonly><noinclude>
{{User:NtCarlson/Template:Damage dice image|width=60px|d6:Fire|d4:Radiant|d8:Physical|d12:Lightning|d4:Psychic}} test
{{User:NtCarlson/Template:Damage dice image|d6:Fire|d4:Radiant|d8:Physical|d12:Lightning}} test
{{User:NtCarlson/Template:Damage dice image|width=30px|d12:Physical|d4:Fire}} test
</noinclude>
</noinclude>

Revision as of 19:25, 18 December 2024

D6 Fire.pngD4 Radiant.pngD8 Physical.pngD12 Lightning.pngD4 Psychic.png test D12 Physical.pngD4 Fire.png test