switch (roll option): Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
Line 36: | Line 36: | ||
</source> | </source> | ||
Outputs {{code|used for jabs, so is a puncturing weapon}}. Notice that the first matching clause was the one that the {{roll|switch}} option found. | Outputs {{code|used for jabs, so is a puncturing weapon}}. Notice that the first matching clause was the one that the {{roll|switch}} option found. | ||
When using the {{roll|code}} option with a {{code|switch}} option, each case body its own set of braces, like so: | |||
<source lang="mtmacro" line> | |||
[h,switch(class),code: | |||
case "Warrior": { | |||
[Armor = 6] | |||
[beginningPowers = "Sword, Shield Bash, Bow, Shield, Torch"] | |||
}; | |||
case "Rogue": { | |||
[Armor = 2] | |||
[beginningPowers = "Dagger, Hide, Backstab, Pick Lock, Torch"] | |||
}; | |||
case "Wizard": { | |||
[Armor = 1] | |||
[beginningPowers = "Dagger, Staff, Light, Lightning Bolt, Fire Ball"] | |||
}; | |||
case "Priest": { | |||
[Armor = 4] | |||
[beginningPowers = "Mace, Heal, Protect, Banish Undead, Torch"] | |||
}; | |||
default: { | |||
[Armor = 0] | |||
[beginningPowers = "Fists, Feet"] | |||
}] | |||
</source> | |||
|also= | |also= |
Revision as of 17:07, 28 September 2009
[switch():] Roll Option
* Introduced in version 1.3b46
Chooses among several options and executes code based on the expression.
Usage
[switch(expression):
case case1: body1;
case case2: body2;
default: defaultBody
]
Parameters
expression
- The regular expression that determines which case is executed. Since this is a regular expression, metacharacters such as*
and()
will need to have backslashes in front of them if you want to match them literally.case
- A potential match for theexpression
, possesses a correspondingbody
that is executed if a match is made.default
- If theexpression
finds no matches within thecase
s, then thedefaultBody
is executed.
Examples
[h:powerType="at-will"]
[switch(powerType):
case "at-will": "You may use this power as much as you like";
case "encounter": "You may only use this power once per encounter";
case "daily": "You may only use this power once per day"]
Outputs You may use this power as much as you like
[h:powerType=".*sword.*"]
[switch(powerType):
case "flail": "one-handed weapon; two-handed does Str*2 damage";
case "shortsword": "used for jabs, so is a puncturing weapon";
case "longsword": "a slashing weapon"]
Outputs used for jabs, so is a puncturing weapon
. Notice that the first matching clause was the one that the [switch():] option found.
When using the [code():] option with a switch
option, each case body its own set of braces, like so:
[h,switch(class),code:
case "Warrior": {
[Armor = 6]
[beginningPowers = "Sword, Shield Bash, Bow, Shield, Torch"]
};
case "Rogue": {
[Armor = 2]
[beginningPowers = "Dagger, Hide, Backstab, Pick Lock, Torch"]
};
case "Wizard": {
[Armor = 1]
[beginningPowers = "Dagger, Staff, Light, Lightning Bolt, Fire Ball"]
};
case "Priest": {
[Armor = 4]
[beginningPowers = "Mace, Heal, Protect, Banish Undead, Torch"]
};
default: {
[Armor = 0]
[beginningPowers = "Fists, Feet"]
}]