Stargate v.1.74- options to init/moxie rolls, +2 attack slots

This commit is contained in:
Andreas Johansson
2021-08-30 17:32:48 +03:00
parent d770f20485
commit 19671b7a26
5 changed files with 170 additions and 64 deletions
+4
View File
@@ -5,6 +5,10 @@ Offical Roll20 Character sheet for "Stargate RPG" by Wyvern Gaming, sheet create
### Changelog
**v.1.74 (2021-08-31)**
* Add adv./disadv. options to Init & moxie rolls
* Add 6th & 7th weapon slot
**v.1.73 (2021-08-09)**
* Remove History Skill (was skill in old beta rules)
+40 -34
View File
@@ -1,5 +1,5 @@
//- SHEET VERSION
- var version = "1.73";
- var version = "1.74";
input(type="hidden" name="attr_version" value=`${version}`)
//- variables & mixin
- var url = "https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Stargate-RPG/images/";
@@ -12,8 +12,8 @@ input(type="hidden" name="attr_version" value=`${version}`)
//- var skill-at = [];
//- var skill-name = [];
- var dice = ["d4", "d6", "d8", "d10", "d12"];
//- capitalize
//- word.charAt(0).toUpperCase() + word.slice(1);
- var N = number => [...Array(number+1).keys()].slice(1)
- var cap = word => word.charAt(0).toUpperCase() + word.slice(1)
//- sheet start
.tab-buttons.middle.center
@@ -115,10 +115,10 @@ main.character
label.wide(title="Proficiency Bonus") Prof Bonus
input.stat.w40(name="attr_prof" type="number" value="2" title="Proficiency Bonus: @{prof}")
.section.columnflex.nowrap.middle.center.init
button.txt-btn(name="roll_init" type="roll" value="@{whisper}&{template:stargate} {{title=Initiative}} @{show_name} {{ Roll =[[d20+(@{init}) &{tracker}]]}}" title="%{init}") Initiative
button.txt-btn(name="roll_init" type="roll" value="@{whisper}&{template:stargate} {{title=Initiative}} @{show_name} {{ Roll =[[@{init_dice}+(@{init}) &{tracker}]]}}" title="%{init}") Initiative
input.stat.w40(name="attr_init" type="number" value="0" title="@{init}")
.section.columnflex.nowrap.middle.center.moxie
button.txt-btn(name="roll_moxie" type="roll" value="@{whisper}&{template:stargate} {{title=Moxie}} @{show_name} {{ Roll =[[d20+(@{moxie}) &{tracker}]]}}" title="Social Initiative: %{moxie}") Moxie
button.txt-btn(name="roll_moxie" type="roll" value="@{whisper}&{template:stargate} {{title=Moxie}} @{show_name} {{ Roll =[[@{moxie_dice}+(@{moxie}) &{tracker}]]}}" title="Social Initiative: %{moxie}") Moxie
input.stat.w40(name="attr_moxie" type="number" value="0" title="Social Initiative: @{moxie}")
//- ac
.ac.rowflex.nowrap
@@ -139,11 +139,11 @@ main.character
.section.death.columnflex.nowrap.middle.center
button.txt-btn.large(name="roll_deathsave" type="roll" value="@{whisper}&{template:stargate} {{color=black}} {{title=Death Save}} @{show_name} {{Result=[[d20]]}}" title="%{deathsave}") Death Save
.rowflex.nowrap
each num in [1,2,3]
each num in N(3)
input(name=`attr_death_success${num}` type="checkbox" value="1")
span Sucesses
.rowflex.nowrap
each num in [1,2,3]
each num in N(3)
input(name=`attr_death_failure${num}` type="checkbox" value="1")
span Failures
//- saves
@@ -156,7 +156,7 @@ main.character
button.txt-btn(name=`roll_${val}_save` title=`%{${val}_save}` type="roll" value=`@{whisper}&{template:stargate} {{title=${key.charAt(0).toUpperCase()}${key.slice(1)} Save}} @{show_name} {{[[d20+(@{${val}_save})]]=[[d20+(@{${val}_save})]]}}`)= key.charAt(0).toUpperCase() + key.slice(1)
//- bulk
section.bulk.columnflex.nowrap.middle.center
h3 Tactical Vest Bulk
h3 Tactical Bulk
input.stat.w40(name="attr_bulk" type="number" value="8")
//- inventory mini
section.inventory.columnflex.nowrap.center
@@ -171,8 +171,8 @@ main.character
span.bold range
span.bold Cap/Reload
span.bold.pl20 special
//- attacks 1 - 5
each num in [1, 2, 3, 4, 5]
//- attacks 1 - 7
each num in N(7)
.rowflex.nowrap
button(name=`roll_attack${num}` type="roll" title=`%{attack${num}}` value=`@{whisper}&{template:stargate} {{title=@{attack${num}}}} @{show_name} {{[[d20+(@{attack${num}_to_hit})]]=[[d20+(@{attack${num}_to_hit})]]}} {{Damage=[[@{attack${num}_dmg}+0]] @{attack${num}_dmgtype} }} {{desc=@{attack${num}_special} }}`)
input.ml15(name=`attr_attack${num}` type="text" placeholder="Sidearm(Beretta M9)")
@@ -231,21 +231,35 @@ main.npc.gap
//- ---------------------------------------------------------------------------------
main.settings
section.settings.columnflex.nowrap.center
label Settings
h2 Settings
.rowflex.nowrap
span(title="@{whisper}") Whisper rolls?
input(name="attr_whisper" title="@{whisper}" type="checkbox" value="/w gm")
.rowflex.nowrap
span(title="@{show_name}") Show name in rolls?
select(name="attr_show_name" title="@{show_name}")
select(name="attr_show_name" title="@{show_name}").w60
option(value="{{subtitle=@{character_name} }}") Yes
option(value=" ") No
.rowflex.nowrap
h3 Advantage/disadvantage on rolls
.rowflex.nowrap
span(title="@{init_dice}") Initiative
select(name="attr_init_dice" title="@{init_dice}")
option(value="d20" selected) Normal
option(value="2d20kh1") Advantage
option(value="2d20kl1") Disadvantage
.rowflex.nowrap
span(title="@{moxie_dice}") Moxie
select(name="attr_moxie_dice" title="@{moxie_dice}")
option(value="d20" selected) Normal
option(value="2d20kh1") Advantage
option(value="2d20kl1") Disadvantage
.rowflex.nowrap
button(name="roll_hd" type="roll" title="%{hd}" value="@{whisper}&{template:stargate} {{color=green}} {{title=Short Rest}} @{show_name} !modbattr --silent --name @{character_name} --hp|{{Healing=[[@{hd}]]}}!!! {{desc=One roll of the Hit Dice.}}") Short Rest
button(name="roll_longrest" type="roll" title="%{longrest}" value="@{whisper}&{template:stargate} {{color=green}} {{title=Long Rest}} @{show_name} !modbattr --silent --name @{character_name} --hp|{{Healing=[[@{rank}@{hd}]]}}!!! {{desc=Rolls a number of Hit Dice equal to the characters level, and recovers that amount of health. }}") Long Rest
button(name="roll_td" type="roll" title="%{td}" value="@{whisper}&{template:stargate} {{title=Tension Die (@{td})}} @{show_name} {{Roll=[[@{td}]]}} {{desc=Rolls the current tension die for the episode. }}") Tension Dice
.rowflex.nowrap
label Custom roll
h3 Custom roll
.rowflex.nowrap
button(name="roll_custom1" type="roll" value="@{whisper}@{custom1}")
input(type="text" name="attr_custom1" value="&{template:stargate} {{color=green}} {{title=Med Kit}} @{show_name} {{Healing=[[1d4]]}} {{desc=Heals someone with a medic kit. }}")
@@ -259,7 +273,7 @@ main.settings
button(name="roll_custom4" type="roll" value="@{whisper}@{custom4}")
input(type="text" name="attr_custom4" value="&{template:stargate} {{title=Tension Die (@{td})}} @{show_name} {{Roll=[[@{td}]]}} {{desc=Rolls the current tension die for the episode. }}")
section.other.columnflex.nowrap.center
label Other stats
h2 Other stats
.rowflex.nowrap
span Mission Points(MP):
input.w40(name="attr_mp" type="number" placeholder="" title="Mission Points @{mp}")
@@ -277,35 +291,27 @@ main.settings
button.txt-btn(name="roll_help" type="roll" value="@{whisper}&{template:stargate} {{title=[(Link)Sheet Userguide](https://wiki.roll20.net/Stargate) }} {{subtitle=Roll20 Wiki}} {{desc= (Right-click to open in a new tab)\n**Official Stargate RPG**\n**Roll20 Character Sheet**\n created by **Andreas J.**([@anduh_](https://twitter.com/anduh_)) }}") Sheet Documentation
br
h1 Changelog
label "v.1.74 (Aug 30th)""
span
|"• Add adv./disadv. options to Init & moxie rolls"
|"• Add 6th & 7th weapon slot"
label "v.1.73 (Aug 9th)"
span
|* Remove History Skill (was skill in old beta rules)
|• Remove History Skill (was skill in old beta rules)
label "v.1.72 (June)"
span
|* code refactor
|• code refactor
br
| * page navigation made always visible
| • page navigation made always visible
label "v.1.70 (May)"
span
| * replace page buttons
| • replace page buttons
br
| * add datalists for race, origin, class
| • add datalists for race, origin, class
br
| * refactor sheet in PUG & SCSS
| • refactor sheet in PUG & SCSS
br
| * update the sheet to work with CSE
label "v.1.55(Nov. 3rd)"
span
| * more stats to track on Settings page
label "v.1.50(Oct. 20th)"
span
| * add Stargate Phoenix image to roll template
br
| * integrate ChatSetAttr commands to Short/Long Rest buttons
br
| * added whisper toggle to Saves
br
| * Link to sheet wiki page (button on settings page)
| • update the sheet to work with CSE
.ammo
.section.columnflex.nowrap
label.other Living Series
@@ -318,7 +324,7 @@ main.settings
span Stargaterpg.com character link
input.w40(name="attr_cahracter_link" type="text" style="width:350px" placeholder="The url to your character sheet" value="")
.ammo.grid
each num in ["1", "2", "3", "4"]
each num in N(4)
.section.columnflex.nowrap.middle.center
label="Ammo Weapon " + num
input(name=`attr_ammo${num}` type="number" value="0")
+30 -7
View File
@@ -230,16 +230,17 @@ $urldev: "https://raw.githubusercontent.com/Roll20/roll20-character-sheets/maste
main.character {
display: grid;
grid-template-columns: 4fr 8fr 5fr 6fr;
grid-template-rows: repeat(5, 2fr) 5fr 4fr;
grid-template-rows: repeat(5, 2fr) 5fr 4fr 2fr;
grid-template-areas: "name name name name "
"attr skills hp condition"
"attr skills prof condition"
"attr skills ac condition"
"attr skills speed bulk "
"attr skills saves inventory"
"attr attacks attacks attacks ";
"attr attacks attacks attacks "
". attacks attacks attacks ";
width: 850px;
height: 1000px;
height: 1200px;
background-image: url("#{$url}bg.png");
background-repeat: no-repeat;
background-size: 700px 700px;
@@ -277,8 +278,9 @@ $urldev: "https://raw.githubusercontent.com/Roll20/roll20-character-sheets/maste
main.settings{
display: grid;
grid-template-columns: 1fr 1fr;
grid-template-rows: 1fr 1fr;
grid-template-rows: 3fr 2fr 3fr;
grid-template-areas: "settings other "
"settings changelog"
"ammo changelog";
width: 840px;
height: 990px;
@@ -377,6 +379,12 @@ $urldev: "https://raw.githubusercontent.com/Roll20/roll20-character-sheets/maste
// ----------- page 1 ------------
main.character{
input[type="checkbox"]{
width: 18px;
}
}
section.name {
grid-area: name;
padding: 5px 0px 0px 0px;
@@ -658,7 +666,7 @@ $urldev: "https://raw.githubusercontent.com/Roll20/roll20-character-sheets/maste
margin: 5px 0px;
}
input[type="checkbox"] {
transform: scale(0.8);
// transform: scale(0.8);
}
}
}
@@ -712,7 +720,7 @@ $urldev: "https://raw.githubusercontent.com/Roll20/roll20-character-sheets/maste
grid-area: attacks;
display: grid;
grid-template-columns: 3.5fr repeat(5, 1fr) 2fr;
grid-template-rows: repeat(5, 1fr);
grid-template-rows: repeat(7, 1fr);
margin: 0px 20px 10px 5px;
label {
@@ -749,10 +757,25 @@ $urldev: "https://raw.githubusercontent.com/Roll20/roll20-character-sheets/maste
// -------- Page 3 --------
main.settings {
input[type="checkbox"]{
width: 44px;
}
span{
margin-right: 0.5em;
padding-top: 0.3em;
}
select{
margin: 0;
width: 120px;
}
}
section.settings {
grid-area: settings;
select {
select.w60 {
width: 60px;
}
div {
+21 -10
View File
@@ -184,10 +184,10 @@
.charsheet main.character {
display: grid;
grid-template-columns: 4fr 8fr 5fr 6fr;
grid-template-rows: repeat(5, 2fr) 5fr 4fr;
grid-template-areas: "name name name name " "attr skills hp condition" "attr skills prof condition" "attr skills ac condition" "attr skills speed bulk " "attr skills saves inventory" "attr attacks attacks attacks ";
grid-template-rows: repeat(5, 2fr) 5fr 4fr 2fr;
grid-template-areas: "name name name name " "attr skills hp condition" "attr skills prof condition" "attr skills ac condition" "attr skills speed bulk " "attr skills saves inventory" "attr attacks attacks attacks " ". attacks attacks attacks ";
width: 850px;
height: 1000px;
height: 1200px;
background-image: url("https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Stargate-RPG/images/bg.png");
background-repeat: no-repeat;
background-size: 700px 700px;
@@ -223,8 +223,8 @@
.charsheet main.settings {
display: grid;
grid-template-columns: 1fr 1fr;
grid-template-rows: 1fr 1fr;
grid-template-areas: "settings other " "ammo changelog";
grid-template-rows: 3fr 2fr 3fr;
grid-template-areas: "settings other " "settings changelog" "ammo changelog";
width: 840px;
height: 990px;
background-image: url("https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Stargate-RPG/images/bg.png");
@@ -303,6 +303,9 @@
display: flex;
flex-flow: row nowrap;
}
.charsheet main.character input[type=checkbox] {
width: 18px;
}
.charsheet section.name {
grid-area: name;
padding: 5px 0px 0px 0px;
@@ -521,9 +524,6 @@
.charsheet div.speed div.death div {
margin: 5px 0px;
}
.charsheet div.speed div.death input[type=checkbox] {
transform: scale(0.8);
}
.charsheet section.saves {
grid-area: saves;
margin: 5px 20px 5px 5px;
@@ -565,7 +565,7 @@
grid-area: attacks;
display: grid;
grid-template-columns: 3.5fr repeat(5, 1fr) 2fr;
grid-template-rows: repeat(5, 1fr);
grid-template-rows: repeat(7, 1fr);
margin: 0px 20px 10px 5px;
}
.charsheet section.attacks label {
@@ -595,10 +595,21 @@
.charsheet section.attacks .pl20 {
padding-left: 20px;
}
.charsheet main.settings input[type=checkbox] {
width: 44px;
}
.charsheet main.settings span {
margin-right: 0.5em;
padding-top: 0.3em;
}
.charsheet main.settings select {
margin: 0;
width: 120px;
}
.charsheet section.settings {
grid-area: settings;
}
.charsheet section.settings select {
.charsheet section.settings select.w60 {
width: 60px;
}
.charsheet section.settings div {
+75 -13
View File
@@ -1,5 +1,5 @@
<input type="hidden" name="attr_version" value="1.73"/>
<input type="hidden" name="attr_version" value="1.74"/>
<div class="tab-buttons middle center">
<input class="npctoggle" type="hidden" name="attr_npc" value="0"/>
<button class="pc" type="action" name="act_character">Character</button>
@@ -231,11 +231,11 @@
<input class="stat w40" name="attr_prof" type="number" value="2" title="Proficiency Bonus: @{prof}"/>
</div>
<div class="section columnflex nowrap middle center init">
<button class="txt-btn" name="roll_init" type="roll" value="@{whisper}&amp;{template:stargate} {{title=Initiative}} @{show_name} {{ Roll =[[d20+(@{init}) &amp;{tracker}]]}}" title="%{init}">Initiative</button>
<button class="txt-btn" name="roll_init" type="roll" value="@{whisper}&amp;{template:stargate} {{title=Initiative}} @{show_name} {{ Roll =[[@{init_dice}+(@{init}) &amp;{tracker}]]}}" title="%{init}">Initiative</button>
<input class="stat w40" name="attr_init" type="number" value="0" title="@{init}"/>
</div>
<div class="section columnflex nowrap middle center moxie">
<button class="txt-btn" name="roll_moxie" type="roll" value="@{whisper}&amp;{template:stargate} {{title=Moxie}} @{show_name} {{ Roll =[[d20+(@{moxie}) &amp;{tracker}]]}}" title="Social Initiative: %{moxie}">Moxie</button>
<button class="txt-btn" name="roll_moxie" type="roll" value="@{whisper}&amp;{template:stargate} {{title=Moxie}} @{show_name} {{ Roll =[[@{moxie_dice}+(@{moxie}) &amp;{tracker}]]}}" title="Social Initiative: %{moxie}">Moxie</button>
<input class="stat w40" name="attr_moxie" type="number" value="0" title="Social Initiative: @{moxie}"/>
</div>
</div>
@@ -305,7 +305,7 @@
</div>
</section>
<section class="bulk columnflex nowrap middle center">
<h3>Tactical Vest Bulk</h3>
<h3>Tactical Bulk</h3>
<input class="stat w40" name="attr_bulk" type="number" value="8"/>
</section>
<section class="inventory columnflex nowrap center">
@@ -423,6 +423,50 @@
<div>
<input class="w110 mr15" name="attr_attack5_special" type="text"/>
</div>
<div class="rowflex nowrap">
<button name="roll_attack6" type="roll" title="%{attack6}" value="@{whisper}&amp;{template:stargate} {{title=@{attack6}}} @{show_name} {{[[d20+(@{attack6_to_hit})]]=[[d20+(@{attack6_to_hit})]]}} {{Damage=[[@{attack6_dmg}+0]] @{attack6_dmgtype} }} {{desc=@{attack6_special} }}"></button>
<input class="ml15" name="attr_attack6" type="text" placeholder="Sidearm(Beretta M9)"/>
</div>
<div>
<input class="w40" name="attr_attack6_to_hit" type="text" placeholder="4"/>
</div>
<div>
<input class="w70 mr15" name="attr_attack6_dmg" type="text" placeholder="1d6"/>
</div>
<div>
<input class="w50" name="attr_attack6_dmgtype" type="text" placeholder="piercing"/>
</div>
<div>
<input class="w50" name="attr_attack6_range" type="text" placeholder="50/100"/>
</div>
<div>
<input class="w50" name="attr_attack6_reload" type="text" placeholder="15/1"/>
</div>
<div>
<input class="w110 mr15" name="attr_attack6_special" type="text"/>
</div>
<div class="rowflex nowrap">
<button name="roll_attack7" type="roll" title="%{attack7}" value="@{whisper}&amp;{template:stargate} {{title=@{attack7}}} @{show_name} {{[[d20+(@{attack7_to_hit})]]=[[d20+(@{attack7_to_hit})]]}} {{Damage=[[@{attack7_dmg}+0]] @{attack7_dmgtype} }} {{desc=@{attack7_special} }}"></button>
<input class="ml15" name="attr_attack7" type="text" placeholder="Sidearm(Beretta M9)"/>
</div>
<div>
<input class="w40" name="attr_attack7_to_hit" type="text" placeholder="4"/>
</div>
<div>
<input class="w70 mr15" name="attr_attack7_dmg" type="text" placeholder="1d6"/>
</div>
<div>
<input class="w50" name="attr_attack7_dmgtype" type="text" placeholder="piercing"/>
</div>
<div>
<input class="w50" name="attr_attack7_range" type="text" placeholder="50/100"/>
</div>
<div>
<input class="w50" name="attr_attack7_reload" type="text" placeholder="15/1"/>
</div>
<div>
<input class="w110 mr15" name="attr_attack7_special" type="text"/>
</div>
</section>
</main>
<main class="background">
@@ -466,23 +510,40 @@
</main>
<main class="settings">
<section class="settings columnflex nowrap center">
<label>Settings</label>
<h2>Settings</h2>
<div class="rowflex nowrap"><span title="@{whisper}">Whisper rolls?</span>
<input name="attr_whisper" title="@{whisper}" type="checkbox" value="/w gm"/>
</div>
<div class="rowflex nowrap"><span title="@{show_name}">Show name in rolls?</span>
<select name="attr_show_name" title="@{show_name}">
<select class="w60" name="attr_show_name" title="@{show_name}">
<option value="{{subtitle=@{character_name} }}">Yes</option>
<option value=" ">No</option>
</select>
</div>
<div class="rowflex nowrap">
<h3>Advantage/disadvantage on rolls</h3>
</div>
<div class="rowflex nowrap"><span title="@{init_dice}">Initiative</span>
<select name="attr_init_dice" title="@{init_dice}">
<option value="d20" selected="selected">Normal</option>
<option value="2d20kh1">Advantage</option>
<option value="2d20kl1">Disadvantage</option>
</select>
</div>
<div class="rowflex nowrap"><span title="@{moxie_dice}">Moxie</span>
<select name="attr_moxie_dice" title="@{moxie_dice}">
<option value="d20" selected="selected">Normal</option>
<option value="2d20kh1">Advantage</option>
<option value="2d20kl1">Disadvantage</option>
</select>
</div>
<div class="rowflex nowrap">
<button name="roll_hd" type="roll" title="%{hd}" value="@{whisper}&amp;{template:stargate} {{color=green}} {{title=Short Rest}} @{show_name} !modbattr --silent --name @{character_name} --hp|{{Healing=[[@{hd}]]}}!!! {{desc=One roll of the Hit Dice.}}">Short Rest</button>
<button name="roll_longrest" type="roll" title="%{longrest}" value="@{whisper}&amp;{template:stargate} {{color=green}} {{title=Long Rest}} @{show_name} !modbattr --silent --name @{character_name} --hp|{{Healing=[[@{rank}@{hd}]]}}!!! {{desc=Rolls a number of Hit Dice equal to the characters level, and recovers that amount of health. }}">Long Rest</button>
<button name="roll_td" type="roll" title="%{td}" value="@{whisper}&amp;{template:stargate} {{title=Tension Die (@{td})}} @{show_name} {{Roll=[[@{td}]]}} {{desc=Rolls the current tension die for the episode. }}">Tension Dice</button>
</div>
<div class="rowflex nowrap">
<label>Custom roll</label>
<h3>Custom roll</h3>
</div>
<div class="rowflex nowrap">
<button name="roll_custom1" type="roll" value="@{whisper}@{custom1}"></button>
@@ -502,7 +563,7 @@
</div>
</section>
<section class="other columnflex nowrap center">
<label>Other stats</label>
<h2>Other stats</h2>
<div class="rowflex nowrap"><span>Mission Points(MP):</span>
<input class="w40" name="attr_mp" type="number" placeholder="" title="Mission Points @{mp}"/> /
<input class="w40" name="attr_mp_max" type="number" placeholder="" title="Total Mission Points @{mp|max}"/>
@@ -521,11 +582,12 @@
**Roll20 Character Sheet**
created by **Andreas J.**([@anduh_](https://twitter.com/anduh_)) }}">Sheet Documentation</button><br/>
<h1>Changelog</h1>
<label>"v.1.73 (Aug 9th)"</label><span>* Remove History Skill (was skill in old beta rules)</span>
<label>"v.1.72 (June)"</label><span>* code refactor<br/> * page navigation made always visible</span>
<label>"v.1.70 (May)"</label><span>* replace page buttons<br/> * add datalists for race, origin, class<br/> * refactor sheet in PUG &amp; SCSS<br/> * update the sheet to work with CSE</span>
<label>"v.1.55(Nov. 3rd)"</label><span>* more stats to track on Settings page</span>
<label>"v.1.50(Oct. 20th)"</label><span>* add Stargate Phoenix image to roll template<br/> * integrate ChatSetAttr commands to Short/Long Rest buttons<br/> * added whisper toggle to Saves<br/> * Link to sheet wiki page (button on settings page)</span>
<label>"v.1.74 (Aug 30th)""</label><span>
"• Add adv./disadv. options to Init & moxie rolls"
"• Add 6th & 7th weapon slot"</span>
<label>"v.1.73 (Aug 9th)"</label><span>• Remove History Skill (was skill in old beta rules)</span>
<label>"v.1.72 (June)"</label><span>• code refactor<br/> • page navigation made always visible</span>
<label>"v.1.70 (May)"</label><span>• replace page buttons<br/> • add datalists for race, origin, class<br/> • refactor sheet in PUG &amp; SCSS<br/> • update the sheet to work with CSE</span>
</section>
<div class="ammo">
<div class="section columnflex nowrap">