|
|
Line 119: |
Line 119: |
| -->}}<!-- | | -->}}<!-- |
| | | |
− | -->
| + | STUNTS |
− | |-
| |
− | | class="subhead" | Skills
| |
− | | colspan="3" class="shaded" | <!--
| |
− | | |
− | Skill listing setup | |
− | | |
− | Define the types of skills available, and add a list of them to
| |
− | the character sheet. These each have their own class, too.
| |
− | | |
− | -->{{#vardefine: skillClass | {{{skillclass|skill}}} }}<!--
| |
− | -->{{#vardefine: skillClskey | {{#replace: {{#var: skillClass}} ||-}} }}<!--
| |
− | -->{{#vardefine: stidx | 0 }}<!--
| |
− | -->{{#while: <!--
| |
− | -->| {{#vardefineecho: skilltype | <!--
| |
− | -->{{#explode: {{{skilltypes|combat track}}} | | {{#var: stidx}} }} <!--
| |
− | -->}}<!-- end vardefineecho
| |
− | -->| {{#vardefine: {{#var:skilltype}}Class | {{#var:skilltype}} }}<!--
| |
− | -->{{#ifeq:{{#var:stidx}}|0|types: |, }} <!--
| |
− | --><span class="{{#var: skillClass}} {{#var:skilltype}}">{{#var:skilltype}}</span><!--
| |
− | -->{{#vardefine: stidx | {{#expr: {{#var: stidx}} + 1}} }}<!--
| |
− | -->}}<!-- end while -->
| |
− | |-
| |
− | <!--
| |
− | | |
− | | |
− | Now define the skill modifiers available. Each of these will have
| |
− | as associated HTML fragment that is appended to the skill name.
| |
− | | |
− | -->{{#vardefine: smidx | 0 }}<!--
| |
− | -->{{#while: | <!-- while skill marker
| |
− | -->{{#vardefineecho: marker | {{#explode: {{{skillmarkers|}}} | ;; | {{#var: smidx}} }} }}<!--
| |
− | -->|<!--
| |
− | -->{{#vardefine: mKey | {{#replace: {{lc:{{#explode: {{#var: marker}} | // | 0 }}}} ||}} }}<!--
| |
− | -->{{#vardefine: {{#var:mKey}}HTML | {{#explode: {{#var: marker}} | // | 1 }} }}<!--
| |
− | -->{{#vardefine: smidx | {{#expr: {{#var: smidx}} + 1}} }}<!--
| |
− | -->}}<!-- end while marker
| |
− | | |
− | | |
− | We may have custom skill ranks.
| |
− | | |
− | -->{{#vardefine: skillLevel | {{{skillranks| Average Decent Good Great Superb }}} }}<!--
| |
− | -->{{#vardefine: numSkLvl | 0 }}<!--
| |
− | -->{{#while: | {{#explode: {{#var:skillLevel}} | | {{#var:numSkLvl}} }} | <!--
| |
− | -->{{#vardefine: numSkLvl | {{#expr: {{#var:numSkLvl}} + 1}} }}<!--
| |
− | -->}}<!--
| |
− | -->{{#vardefine: slidx | {{#var:numSkLvl}} }}<!--
| |
− | | |
− | Iterate over all defined skill levels, from highest to lowest:
| |
− | -->{{#while: | <!-- while skill level
| |
− | -->{{#ifeq: {{#var:slidx}} | 0 | | 1 }}<!-- not yet zero
| |
− | -->|<!--
| |
− | | |
− | We either have a long section of skills, or one entry per level.
| |
− | -->{{#if: {{{skills|}}} <!--
| |
− | | |
− | -->|<!-- One 'skills' section.
| |
− | Lines are listed in descending order of skill. Each line is of the form:
| |
− | ;; SkillName//OpModifier[//OpModifier ...] :: SkillName//OpModifier ...
| |
− | where SkillName is just what it says, and OpModifier is an optional
| |
− | modifier such as 'MG'.
| |
− | Note: we assume that no skill lines are missing.
| |
− | | |
− | Skill row:
| |
− | -->{{#vardefine: skillrow | {{#explode:{{{skills|}}}|;;| {{#expr: -{{#var: slidx}}}} }} }}<!--
| |
− | | |
− | -->|<!-- multiple sections: 'skills1', 'skills2', etc.
| |
− | There are several parameters: skills1, skill2, and so on. Each corresponds
| |
− | to a single skill rank, and each is of the form:
| |
− | skillN = SkillName//OpModifier[//OpModifier ...] :: SkillName//OpType//OpModifier ...
| |
− | as in the previous form. We no longer assume that all skill lines are
| |
− | present; gaps may be left if desired.
| |
− | | |
− | Skill row:
| |
− | -->{{#vardefine: skillrow | {{{skills{{#var: slidx}}|}}} }}<!--
| |
− | | |
− | -->}}<!-- end skills conditional
| |
− | | |
− | TODO: allow for skills starting at +0?
| |
− | | |
− | -->{{#vardefine: levelnum | {{#var: slidx}} }}<!--
| |
− | -->{{#vardefine: slidx | {{#expr: {{#var: slidx}} - 1}} }}<!--
| |
− | Skill level name:
| |
− | -->{{#vardefine: thelevel | {{#explode: {{#var: skillLevel}} | | {{#var: slidx}} }} }}<!--
| |
− | | |
− | Get the right skill row, if it exists:
| |
− | -->{{#if:{{#var: skillrow}}<!--
| |
− | -->|<!-- There are skills defined at this level
| |
− | --><nowiki />
| |
− | {{!}} class="label" {{!}} {{#var: thelevel}} (+{{#var: levelnum}})
| |
− | {{!}} colspan="3" {{!}} <!--
| |
− | -->{{#vardefine: skidx | 0 }}<!--
| |
− | -->{{#while: | <!-- while skill
| |
− | -->{{#vardefineecho: theskill | {{#explode:{{#var: skillrow}}|::| {{#var: skidx}} }} }}<!--
| |
− | -->|<!--
| |
− | -->{{#vardefine: skillname | {{#explode: {{#var: theskill}} |//| 0 }} }}<!--
| |
− | -->{{#vardefine: skillkey | {{#replace: {{lc:{{#var: skillname}}}} ||-}} }}<!--
| |
− | -->{{#vardefine: skilltype | {{#explode: {{#var: theskill}} |//| 1 }} }}<!--
| |
− | The following is for later use:
| |
− | -->{{#vardefine: skillValue{{#replace: {{lc:{{#var: skillname}}}} ||}} | {{#var: levelnum}}}}<!--
| |
− | | |
− | -->{{#ifeq: {{ #var: skidx }} | 0 ||, }} <span class="{{#var: skillClass }}"><!--
| |
− | --><span class="{{#var: {{#var: skilltype}}Class }} skill-{{#var:skillkey}}"><!--
| |
− | -->{{#var: skillname | _____ }}<!--
| |
− | --></span> <!--
| |
− | | |
− | Look for skill markers:
| |
− | -->{{#vardefine: smidx | 1 }}<!--
| |
− | -->{{#while: | <!-- while skill marker
| |
− | -->{{#vardefineecho: skillmod | {{#explode: {{#var: theskill}} |//| {{#var:smidx}} }} }}<!--
| |
− | -->|<!--
| |
− | -->{{#vardefine: mKey | {{#replace: {{lc:{{#var: skillmod}}}} }} }}<!--
| |
− | -->{{#if:{{#var: {{#var:mKey}}HTML }}|{{#var: {{#var:mKey}}HTML }}|({{#var:skillmod}})}}<!--
| |
− | -->{{#vardefine: smidx | {{#expr: {{#var: smidx}} + 1}} }}<!--
| |
− | -->}}<!-- end while marker
| |
− | --></span> <!--
| |
− | | |
− | -->{{#vardefine: skidx | {{#expr: {{#var: skidx}} + 1}} }}<!--
| |
− | -->}}<!-- end while skill -->
| |
− | {{!}}-<!--
| |
− | -->}}<!-- end if skills exist at this level
| |
− | -->}}<!-- end while skill level
| |
− | | |
− | Stunts section
| |
| | | |
| --> | | --> |