|
|
| 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 |