Merge pull request #687 from Lithl/exalted-create-rolltemplate

Create roll templates for Exalted 2e
This commit is contained in:
SteveKoontz
2015-03-16 13:02:13 -07:00
6 changed files with 187 additions and 8 deletions
+65 -1
View File
@@ -1,4 +1,68 @@
.charsheet
.sheet-rolltemplate-joinbattle > div > img,
.sheet-rolltemplate-joindebate > div > img,
.sheet-rolltemplate-joinwar > div > img {
height: 45px;
float: left;
margin: 3px;
}
.sheet-rolltemplate-attack > div,
.sheet-rolltemplate-damage > div {
background-image: url(http://i.imgur.com/X0RX9Qu.png);
background-size: contain;
background-position: right center;
background-repeat: no-repeat;
}
.sheet-rolltemplate-damage > div { background-image: url(http://i.imgur.com/t9YYFMu.png); }
.sheet-rolltemplate-joinbattle > div > h3,
.sheet-rolltemplate-joindebate > div > h3,
.sheet-rolltemplate-joinwar > div > h3,
.sheet-rolltemplate-attack > div > h3,
.sheet-rolltemplate-damage > div > h3 {
color: #d6c110;
font-style: italic;
text-align: left;
}
.sheet-rolltemplate-joindebate > div > h3 { color: #90c1a5; }
.sheet-rolltemplate-joinwar > div > h3 { color: #f69010; }
.sheet-rolltemplate-attack > div > h3 { color: #d63010; }
.sheet-rolltemplate-damage > div > h3 { color: #b39d9c; }
.sheet-rolltemplate-attack h3.sheet-unnamed,
.sheet-rolltemplate-damage h3.sheet-unnamed { text-align: center; }
.sheet-rolltemplate-joinbattle > div > div,
.sheet-rolltemplate-joindebate > div > div,
.sheet-rolltemplate-joinwar > div > div,
.sheet-rolltemplate-attack > div > div,
.sheet-rolltemplate-damage > div > div {
text-align: right;
}
.sheet-rolltemplate-joinbattle > div,
.sheet-rolltemplate-joindebate > div,
.sheet-rolltemplate-joinwar > div,
.sheet-rolltemplate-attack > div,
.sheet-rolltemplate-damage > div {
font-weight: bold;
text-align: center;
}
.sheet-rolltemplate-damage span.sheet-minimum + span.sheet-regular { display: none; }
.sheet-rolltemplate-damage span.sheet-damage-type {
display: inline-block;
font-weight: bolder;
text-transform: lowercase;
font-variant: small-caps;
background-color: #88ffff;
padding: 0 3px 0 3px;
}
.sheet-rolltemplate-damage span.sheet-damage-type::first-letter { text-transform: uppercase; }
.charsheet
{
background-color: #fff;
overflow: hidden;
+120 -5
View File
@@ -1,3 +1,118 @@
<rolltemplate class="sheet-rolltemplate-joinbattle">
<div>
<img src="http://i.imgur.com/SncEMzz.png" />
<h3>Join Battle!</h3>
<div>Wits ({{wits}}) +</div>
<div>Awareness ({{awareness}}) +</div>
<div>Bonus Dice ({{bonus dice}}) +</div>
<div>Bonus Successess ({{bonus successess}}) =</div>
{{roll}} Successes
</div>
</rolltemplate>
<rolltemplate class="sheet-rolltemplate-joindebate">
<div>
<img src="http://i.imgur.com/SncEMzz.png" />
<h3>Join Debate!</h3>
<div>Wits ({{wits}}) +</div>
<div>Awareness ({{awareness}}) +</div>
<div>Bonus Dice ({{bonus dice}}) +</div>
<div>Bonus Successess ({{bonus successess}}) =</div>
{{roll}} Successes
</div>
</rolltemplate>
<rolltemplate class="sheet-rolltemplate-joinwar">
<div>
<img src="http://i.imgur.com/SncEMzz.png" />
<h3>Join War!</h3>
<div>Wits ({{wits}}) +</div>
<div>War ({{war}}) +</div>
<div>Bonus Dice ({{bonus dice}}) +</div>
<div>Bonus Successess ({{bonus successess}}) =</div>
{{roll}} Successes
</div>
</rolltemplate>
<rolltemplate class="sheet-rolltemplate-attack">
<div>
{{#name}}
<h3 class="named">{{name}} (Attack!)</h3>
{{/name}}
{{^name}}
<h3 class="unnamed">Attack!</h3>
{{/name}}
<div>
{{#attribute name}}
{{attribute name}}
{{/attribute name}}
{{^attribute name}}
Attribute
{{/attribute name}}
({{attribute}}) +
</div>
<div>
{{#ability name}}
{{ability name}}
{{/ability name}}
{{^ability name}}
Ability
{{/ability name}}
({{ability}}) +
</div>
<div>
{{#specialty name}}
{{specialty name}}
{{/specialty name}}
{{^specialty name}}
Specialty
{{/specialty name}}
({{specialty}}) +
</div>
<div>Accuracy ({{accuracy}}) +</div>
<div>Bonus Dice ({{bonus dice}}) +</div>
<div>Bonus Successes ({{bonus successes}}) =</div>
{{roll}} Successes
</div>
</rolltemplate>
<rolltemplate class="sheet-rolltemplate-damage">
<div>
{{#name}}
<h3 class="named">{{name}} (Hit!)</h3>
{{/name}}
{{^name}}
<h3 class="unnamed">Hit!</h3>
{{/name}}
<div><span class="damage-type">{{damage type}}</span> Damage ({{damage}}) +</div>
{{#attribute}}
<div>
{{#attribute name}}
{{attribute name}}
{{/attribute name}}
{{^attribute name}}
Attribute
{{/attribute name}}
({{attribute}}) +
</div>
{{/attribute}}
{{#ability}}
<div>
{{#ability name}}
{{ability name}}
{{/ability name}}
{{^ability name}}
Ability
{{/ability name}}
({{ability}}) +
</div>
{{/ability}}
<div>Bonus Dice ({{bonus dice}}) +</div>
<div>Bonus Successes ({{bonus successes}}) &ndash;</div>
<div>Target Soak ({{target soak}}) =</div>
{{#rollTotal() pool 0}}
<span class="minimum">{{minimum roll}} Successes</span>
{{/rollTotal() pool 0}}
<span class="regular">{{roll}} Successes</span>
</div>
</rolltemplate>
<div class="bio sheet-3colrow">
<div class="sheet-col center">
<img src="http://i.imgur.com/RgaO9Ft.gif" class="banner" />
@@ -646,9 +761,9 @@
<h1 class="separator vspace"><span>Combat</span></h1>
<div class="combat-equipment">
<div class="weapons" style="width: 67%">
<div style="width: 32%; display: inline-block" class="center"><button class="tokenaction blank-roll-button" type="roll" name="roll_JoinBattle" value="/me joins the fight\n/r (@{Wits}+@{Awareness}*(1-@{Awareness|max})+?{Bonus Dice (Charms, Stunts, etc.)|0})t[exalted]+?{Automatic Successes|0} &{tracker}">Join Battle</button></div>
<div style="width: 32%; display: inline-block" class="center"><button class="tokenaction blank-roll-button" type="roll" name="roll_JoinDebate" value="/me joins the argument\n/r (@{Wits}+@{Awareness}*(1-@{Awareness|max})+?{Bonus Dice (Charms, Stunts, etc.)|0})t[exalted]+?{Automatic Successes|0} &{tracker}">Join Debate</button></div>
<div style="width: 32%; display: inline-block" class="center"><button class="tokenaction blank-roll-button" type="roll" name="roll_JoinWar" value="/me joins the war\n/r (@{Wits}+@{War}*(1-@{War|max})+?{Bonus Dice (Charms, Stunts, etc.)|0})t[exalted]+?{Automatic Successes|0} &{tracker}">Join War</button></div>
<div style="width: 32%; display: inline-block" class="center"><button class="tokenaction blank-roll-button" type="roll" name="roll_JoinBattle" value="&{template:joinbattle} {{wits=[[@{Wits}]]}} {{awareness=[[(1-@{Awareness|max})*@{Awareness}]]}} {{bonus dice=[[?{Bonus Dice (Charms, Stunts, etc.)|0}]]}} {{bonus successess=[[?{Bonus Successes|0}]]}} {{roll=[[(@{Wits}+@{Awareness}*(1-@{Awareness|max})+?{Bonus Dice (Charms, Stunts, etc.)|0})t[exalted]+?{Bonus Successes|0} &{tracker}]]}}}">Join Battle</button></div>
<div style="width: 32%; display: inline-block" class="center"><button class="tokenaction blank-roll-button" type="roll" name="roll_JoinDebate" value="&{template:joindebate} {{wits=[[@{Wits}]]}} {{awareness=[[(1-@{Awareness|max})*@{Awareness}]]}} {{bonus dice=[[?{Bonus Dice (Charms, Stunts, etc.)|0}]]}} {{bonus successess=[[?{Bonus Successes|0}]]}} {{roll=[[(@{Wits}+@{Awareness}*(1-@{Awareness|max})+?{Bonus Dice (Charms, Stunts, etc.)|0})t[exalted]+?{Bonus Successes|0} &{tracker}]]}}">Join Debate</button></div>
<div style="width: 32%; display: inline-block" class="center"><button class="tokenaction blank-roll-button" type="roll" name="roll_JoinWar" value="&{template:joinwar} {{wits=[[@{Wits}]]}} {{war=[[(1-@{War|max})*@{War}]]}} {{bonus dice=[[?{Bonus Dice (Charms, Stunts, etc.)|0}]]}} {{bonus successess=[[?{Bonus Successes|0}]]}} {{roll=[[(@{Wits}+@{War}*(1-@{War|max})+?{Bonus Dice (Charms, Stunts, etc.)|0})t[exalted]+?{Bonus Successes|0} &{tracker}]]}}">Join War</button></div>
<div class="vspace"></div>
<span class="span-header center" style="padding: 0px; width: 130px">Weapon / Attack</span>
<span class="span-header center" style="padding: 0px; width: 49px">Speed</span>
@@ -680,7 +795,7 @@
</div>
</div>
<div>
<button style="width: 76px" class="blank-roll-button" type="roll" name="roll_AttackRoll" value="/r (@{AttackAttribute}+@{AttackAbility}+@{AttackSpecialty}+@{AttackAccuracy}+?{Bonus Dice (Charms, Stunts, etc.)|0})t[exalted]+?{Automatic Successes|0}">Attack:</button>
<button value="&{template:attack} {{name=@{AttackName}}} {{attribute=[[@{AttackAttribute}]]}} {{ability=[[@{AttackAbility}]]}} {{specialty=[[@{AttackSpecialty}]]}} {{accuracy=[[@{AttackAccuracy}]]}} {{bonus dice=[[?{Bonus Dice (Charms, Stunts, etc.)|0}]]}} {{bonus successes=[[?{Bonus Successes|0}]]}} {{roll=[[(@{AttackAttribute}+@{AttackAbility}+@{AttackSpecialty}+@{AttackAccuracy}+?{Bonus Dice (Charms, Stunts, etc.)})t[exalted]+?{Bonus Successes}]]}}" style="width: 76px" class="blank-roll-button" type="roll" name="roll_AttackRoll">Attack:</button>
<select name="attr_AttackAttribute" class="regular fancy">
<option value="@{Strength}">Strength</option>
<option value="@{Dexterity}" selected="true">Dexterity</option>
@@ -735,7 +850,7 @@
<input type="number" class="fancy" name="attr_AttackSpecialty" min="0" max="3" value="0" title="Specialty" />
</div>
<div>
<button class="blank-roll-button" type="roll" name="roll_AttackDamage" value="/r [[{?{Minimum Damage|1},@{AttackDamage}+@{AttackDamageAttribute}+@{AttackDamageAbility}+?{Bonus Dice (Charms, Threshold Successes etc.)|1}-?{Target Soak|0}}kh1]]t[exalted]+?{Automatic Successes|0} @{AttackDamageType}">Damage:</button>
<button value="&{template:damage} {{name=@{AttackName}}} {{damage type=@{AttackDamageType}}} {{damage=[[@{AttackDamage}]]}} {{attribute=[[@{AttackDamageAttribute}]]}} {{ability=[[@{AttackDamageAbility}]]}} {{bonus dice=[[?{Bonus Dice (Charms, Threshold Successes, etc.)|1}]]}} {{bonus successes=[[?{Bonus Successes|0}]]}} {{target soak=[[?{Target Soak|0}]]}} {{pool=[[(@{AttackDamage}+@{AttackDamageAttribute}+@{AttackDamageAbility}+?{Bonus Dice (Charms, Threshold Successes, etc.)}-?{Target Soak}-?{Minimum Damage|1})d0>1f<1]]}} {{minimum roll=[[?{Minimum Damage}t[exalted-damage]+?{Bonus Successes}]]}} {{roll=[[(@{AttackDamage}+@{AttackDamageAttribute}+@{AttackDamageAbility}+?{Bonus Dice (Charms, Threshold Successes, etc.)}-?{Target Soak})t[exalted-damage]+?{Bonus Successes}]]}}" class="blank-roll-button" type="roll" name="roll_AttackDamage">Damage:</button>
<select name="attr_AttackDamageAttribute" class="regular fancy">
<option value="0"></option>
<option value="@{Strength}">Strength</option>
Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

+2 -2
View File
@@ -4,5 +4,5 @@
"authors": "Brian Shields, Benjamin Bandelow",
"preview": "exalted2e.jpg",
"roll20userid": "235259,442",
"instructions": "The roll buttons assume you have two rollable tables, one named `exalted` and one named `exalted-damage`.\n\nThe table `exalted` should have the following table items:\n\n* \"botch\" (weight 1)\n* \"0\" (weight 5)\n* \"1\" (weight 3)\n* \"2\" (weight 1)\n\nThe table `exalted-damage` should have the following table items:\n\n* \"0\" (weight 6)\n* \"1\" (weight 4)\n\nIf your campaign includes Sidereals throwing around Ascending and/or Descending Destinies, you will either need the API (a mentor feature) or alternate rollable tables, and the roll buttons on the sheet will not be correct.\n\n**When creating your own macros,** be sure to multiply any Ability by `1-Ability|max`, to account for abilities which have been reset to 0. For example, `/r (@{Dexterity}+@{Melee})t[exalted]` will roll your Dexterity and Melee together, however if the checkbox to reset Melee to 0 is ticked, the roll will be incorrect. Instead, use `/r (@{Dexterity+@{Melee}*(1-@{Melee|max}))t[exalted]`."
}
"instructions": "###Rollable Tables\nThe roll buttons assume you have two rollable tables, one named `exalted` and one named `exalted-damage`.\n\nThe table `exalted` should have the following table items:\n\n* \"botch\" (weight 1)\n* \"0\" (weight 5)\n* \"1\" (weight 3)\n* \"2\" (weight 1)\n\nThe table `exalted-damage` should have the following table items:\n\n* \"0\" (weight 6)\n* \"1\" (weight 4)\n\nIf your campaign includes Sidereals throwing around Ascending and/or Descending Destinies, you will either need the API (a mentor feature) or alternate rollable tables, and the roll buttons on the sheet will not be correct.\n\n**When creating your own macros,** be sure to multiply any Ability by `1-Ability|max`, to account for abilities which have been reset to 0. For example, `/r (@{Dexterity}+@{Melee})t[exalted]` will roll your Dexterity and Melee together, however if the checkbox to reset Melee to 0 is ticked, the roll will be incorrect. Instead, use `/r (@{Dexterity+@{Melee}*(1-@{Melee|max}))t[exalted]`.\n\n###Roll Templates\nThis sheet includes five roll templates: `joinbattle`, `joindebate`, `joinwar`, `attack`, and `damage`.\n\n`joinbattle` and `joindebate` both accept the properties `wits`, `awareness`, `bonus dice`, `bonus successes`, and `roll`. `joinwar` is the same, except `war` is used instead of `awareness`. If you create your own macros using these templates, each of the properties should be an inline roll and the `roll` property should roll an appropriate number of times on the `exalted` table.\n\n`attack` **requires** the properties `attribute`, `ability`, `specialty`, `accuracy`, `bonus dice`, `bonus successes`, and `roll`. As with the previous templates, if you create your own attack macros, these properties should all be inline rolls, and `roll` should roll on the `exalted` table. `attack` can *optionally* include the properties `name`, `attribute name`, `ability name`, and `specialty name`. The attack roll button in the repeating section on the **Combat** tab uses the weapon name for `name`, while the other name properties are unused. If supplied in a custom macro, they will be used in place of \"Attribute\", \"Ability\", and \"Specialty\".\n\n`damage` **requires** the properties `damage type`, `damage`, `bonus dice`, `bonus successes`, `target soak`, `pool`, `minimum roll`, and `roll`. `damage` can *optionally* include `name`, `attribute name`, `attribute`, `ability name`, and `ability`.\n\nThe properties `damage`, `attribute`, `ability`, `bonus dice`, `bonus successes`, `target soak`, `pool`, `minimum roll`, and `roll` should all be inline rolls. `minimum roll` should roll on the `exalted-damage` table a number of times equal to your minimum damage for the attack (generally 1, except for overwhelming weapons). `roll` should roll on the `exalted-damage` table the appropriate number of times. The two damage rolls are distinguised by the `pool` property. **In a custom macro, `pool` should be set to roll a number of zero-sided dice equal to your damage dice pool minus your minimum damage. This roll should generate successes on results of 1 or greater, and failures on results of 1 or less.** Such an inline roll looks something along the lines of `[[(Damage + Attribute + Ability + Bonus Dice - Target Soak - Minimum Damage)d0>1f<1]]`. This computation results in either 0 (for a die pool of 0 or less) or the size of the pool expressed as a negative value. This lets the template know whether to use your minimum damage or your regular damage."
}