diff --git a/Zafir/translation.json b/Zafir/translation.json
index dc8e596768..1452f8c9ff 100644
--- a/Zafir/translation.json
+++ b/Zafir/translation.json
@@ -279,5 +279,7 @@
"Use Ability:":"Use Ability:",
"Use Item:":"Use Item:",
"Use Ability":"Use Ability",
- "Use Item":"Use Item"
+ "Use Item":"Use Item",
+ "Notes":"Notes",
+ "CRITICAL SUCCESS!":"CRITICAL SUCCESS!"
}
diff --git a/Zafir/zafir.css b/Zafir/zafir.css
index 82c0622eb9..1eece7d3aa 100644
--- a/Zafir/zafir.css
+++ b/Zafir/zafir.css
@@ -1,9 +1,49 @@
+/* latin */
+@font-face {
+ font-family: 'Montserrat';
+ font-style: italic;
+ font-weight: 400;
+ font-display: swap;
+ src: local('Montserrat Italic'), local('Montserrat-Italic'), url(https://fonts.gstatic.com/s/montserrat/v14/JTUQjIg1_i6t8kCHKm459WxRyS7m.woff2) format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+
+/* latin */
+@font-face {
+ font-family: 'Montserrat';
+ font-style: italic;
+ font-weight: 700;
+ font-display: swap;
+ src: local('Montserrat Bold Italic'), local('Montserrat-BoldItalic'), url(https://fonts.gstatic.com/s/montserrat/v14/JTUPjIg1_i6t8kCHKm459WxZcgvz_PZw.woff2) format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+
+/* latin */
+@font-face {
+ font-family: 'Montserrat';
+ font-style: normal;
+ font-weight: 400;
+ font-display: swap;
+ src: local('Montserrat Regular'), local('Montserrat-Regular'), url(https://fonts.gstatic.com/s/montserrat/v14/JTUSjIg1_i6t8kCHKm459Wlhyw.woff2) format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+
+/* latin */
+@font-face {
+ font-family: 'Montserrat';
+ font-style: normal;
+ font-weight: 700;
+ font-display: swap;
+ src: local('Montserrat Bold'), local('Montserrat-Bold'), url(https://fonts.gstatic.com/s/montserrat/v14/JTURjIg1_i6t8kCHKm45_dJE3gnD_g.woff2) format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+
/* Set the min-width and max-width so that when the window is resized the character sheet stays the same */
.charsheet {
background-color: #fff;
min-width: 900px;
max-width: 900px;
- font-family: 'Montserrat';
+ font-family: 'Montserrat', 'Arial';
}
/* Universal styling applied to all elements of these types */
@@ -257,6 +297,11 @@ button.repcontrol_edit {
text-align: center;
}
+button.sheet-selected {
+ background-color: #852419;
+ color: white;
+}
+
.sheet-attacklabel {
float: right;
/*background-color: #EEE;*/
@@ -343,6 +388,14 @@ button[type=roll]:active {
background-color: #CCC;
}
+button.sheet-selected:hover {
+ background-color: #963126;
+}
+
+button.sheet-selected:active {
+ background-color: #a83e32;
+}
+
button:disabled,
button[disabled] {
color: #999;
@@ -928,6 +981,7 @@ input[type=checkbox] {
.sheet-res,
.sheet-inv,
.sheet-oth,
+.sheet-set,
.sheet-epw,
.sheet-esw,
.sheet-eba,
@@ -960,7 +1014,8 @@ input[type=checkbox] {
.sheet-tabstoggle[value="eqp"] ~ div.sheet-eqp,
.sheet-tabstoggle[value="res"] ~ div.sheet-res,
.sheet-tabstoggle[value="inv"] ~ div.sheet-inv,
-.sheet-tabstoggle[value="oth"] ~ div.sheet-oth {
+.sheet-tabstoggle[value="oth"] ~ div.sheet-oth,
+.sheet-tabstoggle[value="set"] ~ div.sheet-set {
display: block;
}
@@ -1044,6 +1099,7 @@ button.sheet-eqpbtn,
button.sheet-resbtn,
button.sheet-invbtn,
button.sheet-othbtn,
+button.sheet-setbtn,
button.sheet-gmcombatbtn,
button.sheet-gmunitsbtn {
background-color: #EEE;
@@ -1068,6 +1124,7 @@ button.sheet-eqpbtn:hover,
button.sheet-resbtn:hover,
button.sheet-invbtn:hover,
button.sheet-othbtn:hover,
+button.sheet-setbtn:hover,
button.sheet-epwbtn:hover,
button.sheet-eswbtn:hover,
button.sheet-ebabtn:hover,
@@ -1091,6 +1148,7 @@ button.sheet-eqpbtn:active,
button.sheet-resbtn:active,
button.sheet-invbtn:active,
button.sheet-othbtn:active,
+button.sheet-setbtn:active,
button.sheet-epwbtn:active,
button.sheet-eswbtn:active,
button.sheet-ebabtn:active,
@@ -1114,6 +1172,7 @@ button.sheet-gmunitsbtn:active {
.sheet-tabstoggle[value="res"] ~ div button.sheet-resbtn,
.sheet-tabstoggle[value="inv"] ~ div button.sheet-invbtn,
.sheet-tabstoggle[value="oth"] ~ div button.sheet-othbtn,
+.sheet-tabstoggle[value="set"] ~ div button.sheet-setbtn,
.sheet-tabstoggle[value="gmcombat"] ~ div button.sheet-gmcombatbtn,
.sheet-tabstoggle[value="gmunits"] ~ div button.sheet-gmunitsbtn {
background-color: white;
@@ -1230,7 +1289,7 @@ button[type=roll].sheet-btn::before {
padding-top: 6px;
padding-bottom: 8px;
background-color: white;
- font-family: "Montserrat"
+ font-family: "Montserrat", "Arial"
}
.sheet-rolltemplate-zafir div.sheet-template-nameplate,
@@ -1545,6 +1604,38 @@ button[type=roll].sheet-btn::before {
border: 2px solid #AAA;
}
+.sheet-rolltemplate-zafir .sheet-aimroll .inlinerollresult,
+.sheet-rolltemplate-zafirwillattack .sheet-aimroll .inlinerollresult,
+.sheet-rolltemplate-zafirskillaction .sheet-aimroll .inlinerollresult,
+.sheet-rolltemplate-zafirdodge .sheet-aimroll .inlinerollresult,
+.sheet-rolltemplate-zafirgrenade .sheet-aimroll .inlinerollresult {
+ border: 2px solid #a83131;
+}
+
+.sheet-rolltemplate-zafir .sheet-critroll .inlinerollresult,
+.sheet-rolltemplate-zafirwillattack .sheet-critroll .inlinerollresult,
+.sheet-rolltemplate-zafirskillaction .sheet-critroll .inlinerollresult,
+.sheet-rolltemplate-zafirdodge .sheet-critroll .inlinerollresult,
+.sheet-rolltemplate-zafirgrenade .sheet-critroll .inlinerollresult {
+ border: 2px solid #d6c44b;
+}
+
+.sheet-rolltemplate-zafir .sheet-resistroll .inlinerollresult,
+.sheet-rolltemplate-zafirwillattack .sheet-resistroll .inlinerollresult,
+.sheet-rolltemplate-zafirskillaction .sheet-resistroll .inlinerollresult,
+.sheet-rolltemplate-zafirdodge .sheet-resistroll .inlinerollresult,
+.sheet-rolltemplate-zafirgrenade .sheet-resistroll .inlinerollresult {
+ border: 2px solid #6e2999;
+}
+
+.sheet-rolltemplate-zafir .sheet-dodgeroll .inlinerollresult,
+.sheet-rolltemplate-zafirwillattack .sheet-dodgeroll .inlinerollresult,
+.sheet-rolltemplate-zafirskillaction .sheet-dodgeroll .inlinerollresult,
+.sheet-rolltemplate-zafirdodge .sheet-dodgeroll .inlinerollresult,
+.sheet-rolltemplate-zafirgrenade .sheet-dodgeroll .inlinerollresult {
+ border: 2px solid #009eda;
+}
+
/* // Charactermancer /////////////////////////////////////////// */
.sheet-popup-bg {
position: absolute;
diff --git a/Zafir/zafir.html b/Zafir/zafir.html
index 2b89173b61..2b21a724be 100644
--- a/Zafir/zafir.html
+++ b/Zafir/zafir.html
@@ -145,6 +145,7 @@
+
@@ -194,14 +195,14 @@
-
+
-
+
@@ -252,17 +253,17 @@
-
-
+
Attack
-
+
Attack
@@ -277,7 +278,7 @@
- Attack
+ Attack
@@ -309,7 +310,7 @@
}
Use Charge
Expend item charge
-
+
Throw Grenade
@@ -327,7 +328,7 @@
}
Use Charge
Expend item charge
-
+
Use Heavy Weapon
@@ -339,7 +340,7 @@
Grenade Attack
+ value="&{template:zafirgrenade} {{name=@{gatkname}}} {{targets=@{gtargets}}} {{targetsroll=[[@{gtargets}]]}} {{crit1=[[ [Crit Dice] (@{gatkcritdice})d6>6]]}} {{damage1=[[ [Damage] @{gatkdamage}]]}} {{critdmg1=[[ [Damage] @{gatkdamage} + @{gatkcritdamage}]]}} {{crit2=[[ [Crit Dice] (@{gatkcritdice})d6>6]]}} {{damage2=[[ [Damage] @{gatkdamage}]]}} {{critdmg2=[[ [Damage] @{gatkdamage} + @{gatkcritdamage}]]}} {{crit3=[[ [Crit Dice] (@{gatkcritdice})d6>6]]}} {{damage3=[[ [Damage] @{gatkdamage}]]}} {{critdmg3=[[ [Damage] @{gatkdamage} + @{gatkcritdamage}]]}} {{crit4=[[ [Crit Dice] (@{gatkcritdice})d6>6]]}} {{damage4=[[ [Damage] @{gatkdamage}]]}} {{critdmg4=[[ [Damage] @{gatkdamage} + @{gatkcritdamage}]]}} {{crit5=[[ [Crit Dice] (@{gatkcritdice})d6>6]]}} {{damage5=[[ [Damage] @{gatkdamage}]]}} {{critdmg5=[[ [Damage] @{gatkdamage} + @{gatkcritdamage}]]}} {{notes=@{geffects}}} {{player=@{char_name}}}">Grenade Attack
@@ -378,7 +379,7 @@
}
Use Charge
Expend ability charge
Area Attack
+ value="&{template:zafirgrenade} {{name=@{aablname}}} {{targets=@{areaabltargets}}} {{targetsroll=[[@{areaabltargets}]]}} {{crit1=[[ [Crit Dice] (@{aablatkrollcritdice})d6>6]]}} {{damage1=[[ [Damage] @{aablatkrolldamage}]]}} {{critdmg1=[[ [Damage] @{aablatkrolldamage} + @{aablatkrollcritdamage}]]}} {{crit2=[[ [Crit Dice] (@{aablatkrollcritdice})d6>6]]}} {{damage2=[ [Damage] @{aablatkrolldamage}]]}} {{critdmg2=[[ [Damage] @{aablatkrolldamage} + @{aablatkrollcritdamage}]]}} {{crit3=[[ [Crit Dice] (@{aablatkrollcritdice})d6>6]]}} {{damage3=[[ [Damage] @{aablatkrolldamage}]]}} {{critdmg3=[[ [Damage] @{aablatkrolldamage} + @{aablatkrollcritdamage}]]}} {{crit4=[[ [Crit Dice] (@{aablatkrollcritdice})d6>6]]}} {{damage4=[[ [Damage] @{aablatkrolldamage}]]}} {{critdmg4=[[ [Damage] @{aablatkrolldamage} + @{aablatkrollcritdamage}]]}} {{crit5=[[ [Crit Dice] (@{aablatkrollcritdice})d6>6]]}} {{damage5=[[ [Damage] @{aablatkrolldamage}]]}} {{critdmg5=[[ [Damage] @{aablatkrolldamage} + @{aablatkrollcritdamage}]]}} {{notes=@{aablatkeffects}}} {{player=@{char_name}}}">Area Attack
@@ -440,7 +441,7 @@
}
Use Charge
Expend ability charge
- Will Attack
+ Will Attack
@@ -450,7 +451,7 @@
- Will Attack
+ Will Attack
@@ -584,7 +585,7 @@
@@ -1000,7 +1001,7 @@
- Skill Roll
+ Skill Roll
+
+
+
+
+
@@ -1117,19 +1125,23 @@
- Attack
+ Attack
- Attack
+
+
+ Attack
- Attack
+
+
+ Attack
@@ -1140,7 +1152,7 @@
Grenade Attack
+ value="&{template:zafirgrenade} {{name=@{gmgatkname}}} {{targets=@{gmgtargets}}} {{targetsroll=[[@{gmgtargets}]]}} {{crit1=[[ [Crit Dice] (@{gmgatkcritdice})d6>6]]}} {{damage1=[[ [Damage] @{gmgatkdamage}]]}} {{critdmg1=[[ [Damage] @{gmgatkdamage} + @{gmgatkcritdamage}]]}} {{crit2=[[ [Crit Dice] (@{gmgatkcritdice})d6>6]]}} {{damage2=[[ [Damage] @{gmgatkdamage}]]}} {{critdmg2=[[ [Damage] @{gmgatkdamage} + @{gmgatkcritdamage}]]}} {{crit3=[[ [Crit Dice] (@{gmgatkcritdice})d6>6]]}} {{damage3=[[ [Damage] @{gmgatkdamage}]]}} {{critdmg3=[[ [Damage] @{gmgatkdamage} + @{gmgatkcritdamage}]]}} {{crit4=[[ [Crit Dice] (@{gmgatkcritdice})d6>6]]}} {{damage4=[[ [Damage] @{gmgatkdamage}]]}} {{critdmg4=[[ [Damage] @{gmgatkdamage} + @{gmgatkcritdamage}]]}} {{crit5=[[ [Crit Dice] (@{gmgatkcritdice})d6>6]]}} {{damage5=[[ [Damage] @{gmgatkdamage}]]}} {{critdmg5=[[ [Damage] @{gmgatkdamage} + @{gmgatkcritdamage}]]}} {{notes=@{gmgeffects}}} {{enemy=@{selectedenemy}}}">Grenade Attack
@@ -1166,12 +1178,12 @@
- Will Attack
+ Will Attack
- Test For Panic
+ Test For Panic
@@ -1181,7 +1193,7 @@
@@ -1399,10 +1411,13 @@
-
+ Refresh
Enemy Unit Selector
Unit Display Options
@@ -1420,7 +1435,10 @@
Enemy Units
+Add
@@ -1648,16 +1666,16 @@
{{/ammo}}
{{#rollGreater() aim 0}}
{{#rollGreater() crit 0}}
- CRITICAL HIT! {{crit}} {{aim}}
+ CRITICAL HIT! {{crit}} {{aim}}
Critical Damage: {{critdmg}}
{{/rollGreater() crit 0}}
{{#rollTotal() crit 0}}
- HIT! {{aim}}
+ HIT! {{crit}} {{aim}}
Damage: {{damage}}
{{/rollTotal() crit 0}}
{{/rollGreater() aim 0}}
{{#rollTotal() aim 0}}
- MISS! {{aim}}
+ MISS! {{crit}} {{aim}}
{{/rollTotal() aim 0}}
{{#enemy}}{{/enemy}}
@@ -1689,18 +1707,18 @@
{{#rollGreater() resist 0}}
{{#panic}}{{/panic}}
{{^panic}}
{{/panic}}
- {{resist}} {{aim}} RESISTED!
+
{{resist}} {{crit}} {{aim}}RESISTED!
{{/rollGreater() resist 0}}
{{#rollTotal() resist 0}}
{{#rollGreater() crit 0}}
- {{crit}} {{aim}} SUCCESS +
CRITICAL EFFECT!
+ {{resist}} {{crit}} {{aim}}SUCCESS +
CRITICAL EFFECT!
{{/rollGreater() crit 0}}
{{#rollTotal() crit 0}}
{{#panic}}
- PANIC! {{aim}}
+ PANIC! {{resist}} {{crit}} {{aim}}
{{/panic}}
{{^panic}}
- SUCCESS! {{aim}}
+ SUCCESS! {{resist}} {{crit}} {{aim}}
{{/panic}}
{{/rollTotal() crit 0}}
{{/rollTotal() resist 0}}
@@ -1711,7 +1729,7 @@
{{#rollTotal() aim 0}}
{{#panic}}{{/panic}}
{{^panic}}
{{/panic}}
- RESISTED! {{aim}}
+
RESISTED! {{resist}} {{crit}} {{aim}}
{{/rollTotal() aim 0}}
@@ -1725,14 +1743,14 @@
Using {{responsibility}}
{{#rollGreater() aim 0}}
{{#rollGreater() crit 0}}
- CRITICAL SUCCESS! {{crit}} {{aim}}
+ CRITICAL SUCCESS! {{crit}} {{aim}}
{{/rollGreater() crit 0}}
{{#rollTotal() crit 0}}
- SUCCESS! {{aim}}
+ SUCCESS! {{crit}} {{aim}}
{{/rollTotal() crit 0}}
{{/rollGreater() aim 0}}
{{#rollTotal() aim 0}}
- FAILED! {{aim}}
+ FAILED! {{crit}} {{aim}}
{{/rollTotal() aim 0}}
@@ -1746,10 +1764,10 @@
{{#player}}{{player}}
{{/player}}
{{#rollGreater() dodge 0}}
- SUCCESS! {{dodge}}
+ SUCCESS! {{dodge}}
{{/rollGreater() dodge 0}}
{{#rollTotal() dodge 0}}
- FAILED! {{dodge}}
+ FAILED! {{dodge}}
{{/rollTotal() dodge 0}}
{{#enemy}}{{/enemy}}
@@ -1774,46 +1792,46 @@
{{/notes}}
{{#rollGreater() targetsroll 0}}
{{#rollGreater() crit1 0}}
- Critical Damage: {{critdmg1}}
+ Critical Damage: {{critdmg1}} {{crit1}}
{{/rollGreater() crit1 0}}
{{#rollTotal() crit1 0}}
- Damage: {{damage1}}
+ Damage: {{damage1}} {{crit1}}
{{/rollTotal() crit1 0}}
{{/rollGreater() targetsroll 0}}
{{#rollGreater() targetsroll 1}}
{{#rollGreater() crit2 0}}
- Critical Damage: {{critdmg2}}
+ Critical Damage: {{critdmg2}} {{crit2}}
{{/rollGreater() crit2 0}}
{{#rollTotal() crit2 0}}
- Damage: {{damage2}}
+ Damage: {{damage2}} {{crit2}}
{{/rollTotal() crit2 0}}
{{/rollGreater() targetsroll 1}}
{{#rollGreater() targetsroll 2}}
{{#rollGreater() crit3 0}}
- Critical Damage: {{critdmg3}}
+ Critical Damage: {{critdmg3}} {{crit3}}
{{/rollGreater() crit3 0}}
{{#rollTotal() crit3 0}}
- Damage: {{damage3}}
+ Damage: {{damage3}} {{crit3}}
{{/rollTotal() crit3 0}}
{{/rollGreater() targetsroll 2}}
{{#rollGreater() targetsroll 3}}
{{#rollGreater() crit4 0}}
- Critical Damage: {{critdmg4}}
+ Critical Damage: {{critdmg4}} {{crit4}}
{{/rollGreater() crit4 0}}
{{#rollTotal() crit4 0}}
- Damage: {{damage4}}
+ Damage: {{damage4}} {{crit4}}
{{/rollTotal() crit4 0}}
{{/rollGreater() targetsroll 3}}
{{#rollGreater() targetsroll 4}}
{{#rollGreater() crit5 0}}
- Critical Damage: {{critdmg5}}
+ Critical Damage: {{critdmg5}} {{crit5}}
{{/rollGreater() crit5 0}}
{{#rollTotal() crit5 0}}
- Damage: {{damage5}}
+ Damage: {{damage5}} {{crit5}}
{{/rollTotal() crit5 0}}
{{/rollGreater() targetsroll 4}}
@@ -2510,7 +2528,7 @@