Difference between revisions of "Template:Infobox Enemy/style"

From Twinsuniverse
Jump to: navigation, search
m (eliminated the display parameter of the categorizer)
(improved and reduced code and now using only one variable)
Line 1: Line 1:
 
<includeonly>{{
 
<includeonly>{{
#vardefine: melee | {{#ifeq: {{lc: {{#if:{{{melee|}}}|{{{melee}}}|no}}}} | no |
+
#vardefine: style | {{#var:style|}}{{#ifeq: {{lc:{{#if:   {{{melee|}}}|   {{{melee}}}|no}}}} | no || m }}}}{{
    | {{categorizer|nocat={{{nocat|false}}}
+
#vardefine: style | {{#var:style|}}{{#ifeq: {{lc:{{#if:   {{{ranged|}}}|   {{{ranged}}}|no}}}} | no || r }}}}{{
        |category=Melee enemies
+
#vardefine: style | {{#var:style|}}{{#ifeq: {{lc:{{#if:   {{{magic|}}}|   {{{magic}}}|no}}}} | no || g }}}}{{
        |label=Melee}} }}}}{{
+
#vardefine: style | {{#var:style|}}{{#ifeq: {{lc:{{#if:{{{explosive|}}}|{{{explosive}}}|no}}}} | no || e }}}}{{
#vardefine: ranged | {{#ifeq: {{lc: {{#if:{{{ranged|}}}|{{{ranged}}}|no}}}} | no |
+
#ifexpr: {{#len:{{#var:style|}}}} < 1
    | {{categorizer|nocat={{{nocat|false}}}
+
|{{maintenance task|nocat={{{nocat|false}}} <!-- all options are invalid -->
        |category=Ranged enemies
+
        |label=Ranged}} }}}}{{
+
#vardefine: magic | {{#ifeq: {{lc: {{#if:{{{magic|}}}|{{{magic}}}|no}}}} | no |
+
    | {{categorizer|nocat={{{nocat|false}}}
+
        |category=Magical enemies
+
        |label=Magic}} }}}}{{
+
#vardefine: explosive | {{#ifeq: {{lc: {{#if:{{{explosive|}}}|{{{explosive}}}|no}}}} | no |
+
    | {{categorizer|nocat={{{nocat|false}}}
+
        |category=Explosive enemies
+
        |label=Explosive}} }}}}{{
+
#switch:  
+
| {{#var:melee}}{{#var:ranged}}{{#var:magic}}{{#var:explosive}} = {{maintenance task|nocat={{{nocat|false}}} <!-- all options are invalid -->
+
 
     |category=Enemies of an unknown combat style
 
     |category=Enemies of an unknown combat style
 
     |doclink=Infobox Enemy/style
 
     |doclink=Infobox Enemy/style
 
     |label=''unknown''
 
     |label=''unknown''
 
     |reason=None of the '''melee''', '''ranged''', '''magic''' and '''explosive''' parameters are specified}}
 
     |reason=None of the '''melee''', '''ranged''', '''magic''' and '''explosive''' parameters are specified}}
| {{#var:melee}}{{#var:ranged}}{{#var:magic}}
+
|{{
| {{#var:melee}}{{#var:ranged}}{{#var:explosive}}
+
    #ifexpr: {{#len:{{#var:style|}}}} > 1
| {{#var:melee}}{{#var:magic}}{{#var:explosive}}
+
    |{{categorizer|nocat={{{nocat|false}}} <!-- multiple options are valid -->
| {{#var:ranged}}{{#var:magic}}{{#var:explosive}} = {{#var:melee}}{{#var:ranged}}{{#var:magic}}{{#var:explosive}} <!-- only one option is valid -->
+
| #default = {{categorizer|nocat={{{nocat|false}}} <!-- multiple options are valid -->
+
 
         |category=Multistyle enemies
 
         |category=Multistyle enemies
 
         |label=Multiple:}}
 
         |label=Multiple:}}
 
     </td></tr>
 
     </td></tr>
     <tr><td colspan="2"><ul>{{
+
     <tr><td colspan="2">}}{{list
        #if:{{#var:melee}}|<li>{{#var:melee}}</li>}}{{
+
    | {{#if: {{#pos:{{#var:style|}}|m}}
        #if:{{#var:ranged}}|<li>{{#var:ranged}}</li>}}{{
+
        | {{categorizer|nocat={{{nocat|false}}}
        #if:{{#var:magic}}|<li>{{#var:magic}}</li>}}{{
+
            |category=Melee enemies
        #if:{{#var:explosive}}|<li>{{#var:explosive}}</li>}}</ul>
+
            |label=Melee}}}}
 +
    | {{#if: {{#pos:{{#var:style|}}|r}}
 +
        | {{categorizer|nocat={{{nocat|false}}}
 +
            |category=Ranged enemies
 +
            |label=Ranged}}}}
 +
    | {{#if: {{#pos:{{#var:style|}}|g}}
 +
        | {{categorizer|nocat={{{nocat|false}}}
 +
            |category=Magical enemies
 +
            |label=Magic}}}}
 +
    | {{#if: {{#pos:{{#var:style|}}|e}}
 +
        | {{categorizer|nocat={{{nocat|false}}}
 +
            |category=Explosive enemies
 +
            |label=Explosive}}}} }}
 
}}</includeonly><noinclude>
 
}}</includeonly><noinclude>
 
This template offers a multiple choice for defining which combat style(s) an (enemy) article belongs to. It can also automatically categorize a page under those categories.
 
This template offers a multiple choice for defining which combat style(s) an (enemy) article belongs to. It can also automatically categorize a page under those categories.

Revision as of 22:15, 4 January 2013

This template offers a multiple choice for defining which combat style(s) an (enemy) article belongs to. It can also automatically categorize a page under those categories.

Parameters

  • melee: Whether or not this enemy attacks using hand-to-hand combat (defaults to no, enable by any other nonempty value)
  • ranged: Whether or not this enemy attacks using a weapon from a distance (defaults to no, enable by any other nonempty value)
  • magic: Whether or not this enemy attacks using magical spells/objects (defaults to no, enable by any other nonempty value)
  • explosive: Whether or not this enemy's attacks explode on hit (defaults to no, enable by any other nonempty value)
  • nocat: Whether or not to suppress categorization under the chosen categories (defaults to false, which means auto categorization).


Note: the explosive parameter is often paired with ranged, when enemies throw with explosive objects.

Note: this categorizer is multiple choice: you can specify any combination of the four options.

Note: if neither melee, ranged, magic or explosive specify a positive value, the default 'unknown' will be used.

Syntax

{{Infobox Enemy/style|melee=value|ranged=value|magic=value|explosive=value}}

Examples

Common use include any of the melee, ranged, magic or explosive parameters to specify the style an enemy attacks with (value "yes" is recommended):

{{Infobox Enemy/style|melee=yes}}
{{Infobox Enemy/style|ranged=yes}}
{{Infobox Enemy/style|magic=yes}}
{{Infobox Enemy/style|explosive=yes}}
Melee [list all]
Ranged [list all]
Magic [list all]
Explosive [list all]


You can also specify multiple styles for one enemy (warning: this will force a table cell to split in two, so do not do this outside table cells!):

{{Infobox Enemy/style|melee=yes|ranged=yes}}
Multiple: [list all]


It doesn't matter which value you use, any nonempty value other than "no" will express a positive value, so these all have the same result:

{{Infobox Enemy/style|melee=aye, let's do this!}}
{{Infobox Enemy/style|melee=false}}
{{Infobox Enemy/style|melee=not}}
{{Infobox Enemy/style|melee=maybe}}
{{Infobox Enemy/style|melee=0}}
{{Infobox Enemy/style|melee=zero}}
{{Infobox Enemy/style|melee=null}}
{{Infobox Enemy/style|melee=n}}
{{Infobox Enemy/style|melee=whatever}}
{{Infobox Enemy/style|melee=yes}}
{{Infobox Enemy/style|melee=YES}}
Melee [list all]


The only ways to express a negative value is by leaving out the parameter, leaving it empty or specifying "no" (case insensitive), so these all have the same result:

{{Infobox Enemy/style|melee=yes}}
{{Infobox Enemy/style|melee=yes|ranged=}}
{{Infobox Enemy/style|melee=yes|ranged=no}}
{{Infobox Enemy/style|melee=yes|ranged=NO}}
Melee [list all]


You may leave the "style" undefined (which would raise the Enemies of an unknown combat style maintenance task) by not specifying any positive value for any of the options, so these all have the same result:

{{Infobox Enemy/style}}
{{Infobox Enemy/style|melee=no}}
{{Infobox Enemy/style|melee=|ranged=|magic=|explosive=}}
unknown [list all]


The nocat parameter may be used to suppress automatic categorization like this (any value will do):

{{Infobox Enemy/style|melee=yes|nocat=true}}

This would render the same result as the first example above, but would not automatically categorize under Category:Melee enemies. This feature works both on valid values and the maintenance task mentioned above.