|
|
Line 68: |
Line 68: |
| | skills5 = {{{skills5|M_NUL}}} | | | skills5 = {{{skills5|M_NUL}}} |
| }}<!-- | | }}<!-- |
− |
| |
− | Define the types of skills available. These each have their own class, too.
| |
− | -->{{#vardefine: skillClass | {{{skillclass|skill}}} }}<!--
| |
− | -->{{#arraydefine: skilltypearray | {{{skilltypes|combat track}}} | /\s+/ }}<!--
| |
− | -->{{#arraytohash: classhash | skilltypearray | skilltypearray }}<!--
| |
− |
| |
− | We may have custom skill ranks.
| |
− | -->{{#arraydefine: skilllevelarray | <!--
| |
− | -->{{{skillranks| Average (+1) :: Decent (+2) :: Good (+3) :: Great (+4) :: Superb (+5) }}} | :: }}<!--
| |
− | -->{{#arraymerge: skilllevelsreverse | skilllevelarray }}<!--
| |
− | -->{{#arraysort: skilllevelsreverse | reverse }}<!--
| |
− | -->{{#vardefine: numSkLvl | {{#arraysize: skilllevelarray}} }}<!--
| |
− |
| |
− | There are various skill markers that may be defined -- these go into a hash.
| |
− | -->{{#hashdefine: skillmarkerhash | {{{skillmarkers|}}} | :: | /\/\// }}<!--
| |
− |
| |
− | Use a hash to store and then print the skills
| |
− | -->{{#hashdefine: skillhash}}<!--
| |
− |
| |
− | 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//OpType//OpModifier :: SkillName//OpType//OpModifier ...
| |
− | where SkillName is just what it says, OpType is an optional type to the
| |
− | skill (such as 'combat' or 'track' and OpModifier is an optional modifier
| |
− | such as 'MG'.
| |
− | Note: we assume that no skill lines are missing.
| |
− |
| |
− | -->{{#arraydefine: skillsbylevel | {{{skills}}} | ;; }}<!--
| |
− | -->{{#arrayslice: skillsbylevel | skillsbylevel | 0 }}<!--
| |
− | -->{{#arraytohash: skillhash | skillsbylevel | skilllevelsreverse }}<!--
| |
− | -->|<!--
| |
− | 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//OpType//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.
| |
− |
| |
− | -->{{#forargs: skills | thelevel | theskilllist | <!--
| |
− | -->{{#rmatch: {{#var:thelevel}} | /^\d+$/ | <!--
| |
− | -->{{#hashinclude: skillhash | <!--
| |
− | -->{{#arrayindex: skilllevelarray | {{#expr:{{#var: thelevel}}-1}} }}={{#var:theskilllist}}<!--
| |
− | -->}}<!--
| |
− | -->}}<!--
| |
− | -->}}<!--
| |
− | -->}}<!--
| |
− |
| |
− | -->
| |
− | {{Character sheet/section
| |
− | | subhead = Skills
| |
− | | righthead = types: {{#hashprint: classhash | , | %%%% | @@@@ | <span class="{{#var:skillClass}} @@@@"> %%%%</span> }}
| |
− | }}<!-- end section --><!--
| |
− |
| |
− | -->{{#arraydefine: skillhashkeys | name, marker}}<!--
| |
− | -->{{#hashprint: skillhash || %%%% | @@@@ | <nowiki />
| |
− | {{!}}-
| |
− | {{!}} class="label" {{!}} %%%%
| |
− | {{!}} colspan="3" class="{{#var: skillClass }}" {{!}} <!--
| |
− | -->{{#arraydefine: skilllineary | @@@@ | :: }}<!--
| |
− | -->{{#arrayprint: skilllineary | , | $theskill$ | <!--
| |
− | -->{{#arraydefine: theskillarray | $theskill$ | /\/\// }}<!--
| |
− | -->{{#arraytohash: theskillhash | theskillarray | skillhashkeys }}<!--
| |
− | --><span class="{{#var: skillClass}} {{lc:{{#hashvalue: theskillhash | name}}}}"><!--
| |
− | -->{{#hashvalue: theskillhash | name | _____ }}<!--
| |
− | --></span> <!--
| |
− | -->{{#hashvalue: skillmarkerhash | {{#hashvalue: theskillhash | marker}} }}<!--
| |
− | -->}}<!--
| |
− | -->|skilllevelsreverse}}<!--
| |
| | | |
| STUNTS | | STUNTS |