ability trigger, cost, power roll toggle

This commit is contained in:
Primal Zed
2025-08-23 14:23:13 -05:00
parent 3b1a79fd9c
commit 7c2ae3acbc
3 changed files with 45 additions and 13 deletions
+20 -4
View File
@@ -41,8 +41,8 @@
.charsheet input[type=number] {
text-align: center;
}
.charsheet input[type=number]:not(.inner-spin)::-webkit-inner-spin-button,
.charsheet input[type=number]:not(.inner-spin)::-webkit-inner-spin-button {
.charsheet input[type=number].no-spin::-webkit-inner-spin-button,
.charsheet input[type=number].no-spin::-webkit-inner-spin-button {
-webkit-appearance: none;
margin: 0;
}
@@ -352,8 +352,14 @@ input.characteristic-i18n-switch[value="presence"]
grid-template-columns: repeat(6, 1fr);
}
.ability-name {
grid-column-start: 1;
grid-column-end: -1;
grid-column-end: span 4;
font-weight: bold;
}
.ability-cost-input-group {
grid-column-end: span 2;
justify-self: end;
}
.ability-cost-input-group > input {
font-weight: bold;
}
.ability-description {
@@ -372,6 +378,10 @@ input.characteristic-i18n-switch[value="presence"]
text-align: end;
font-weight: bold;
}
.ability-type:has(> option[value*="triggered"]:checked) ~ .triggered-hide,
.ability-type:not(:has(> option[value*="triggered"]:checked)) ~ .triggered-show {
display: none;
}
.ability-distance {
grid-column-end: span 3;
}
@@ -380,6 +390,11 @@ input.characteristic-i18n-switch[value="presence"]
font-size: 0.8em;
text-align: end;
}
.ability-card:has([name="attr_has_power_roll"]:checked) > .power-roll-hide,
.ability-card:has([name="attr_has_power_roll"]:not(:checked)) > .power-roll {
display: none;
}
.ability-card > .power-roll-hide,
.ability-card > .power-roll {
grid-column-start: 1;
grid-column-end: -1;
@@ -399,6 +414,7 @@ input.characteristic-i18n-switch[value="presence"]
.power-roll-tier-effect {
font-size: 0.8em;
}
.ability-card > .ability-trigger,
.ability-card > .ability-effect {
grid-column-start: 1;
grid-column-end: -1;
+21 -9
View File
@@ -101,15 +101,15 @@
<label></label>
<label>Edge</label>
<label>Double Edge</label>
<input type="radio" name="attr_roller_edge_bane" value="doubleBane" />
<input type="radio" name="attr_roller_edge_bane" value="double-bane" />
<input type="radio" name="attr_roller_edge_bane" value="bane" />
<input type="radio" name="attr_roller_edge_bane" value="" checked />
<input type="radio" name="attr_roller_edge_bane" value="edge" />
<input type="radio" name="attr_roller_edge_bane" value="doubleEdge" />
<input type="radio" name="attr_roller_edge_bane" value="double-edge" />
</div>
<div>
<label>Bonus or Penalty</label>
<input type="number" class="inner-spin" name="attr_roller_mod" />
<input type="number" name="attr_roller_mod" />
</div>
<div>
<button type="action" name="act_powerroll">Roll!</button>
@@ -214,11 +214,11 @@
<fieldset class="repeating_conditions">
<input type="text" name="attr_condition_name" data-i18n-placeholder="condition" />
<div>
<input type="radio" name="attr_end" />
<input type="radio" name="attr_end" value="eot" />
<label data-i18n="eot"></label>
</div>
<div>
<input type="radio" name="attr_end" />
<input type="radio" name="attr_end" value="save-ends" />
<label data-i18n="save-ends"></label>
</div>
</fieldset>
@@ -354,18 +354,30 @@
<fieldset class="repeating_abilities">
<div class="ability-card">
<input type="text" class="ability-name" data-i18n-placeholder="ability-name" name="attr_ability_name" />
<div class="ability-cost-input-group">
<label data-i18n="ability-cost"></label>
<input type="number" name="attr_ability_cost" />
</div>
<input type="text" class="ability-description" data-i18n-placeholder="ability-description" name="attr_ability_description" />
<input type="text" class="ability-keywords" data-i18n-placeholder="keywords" name="attr_ability_keywords" />
<select class="ability-type" name="attr_ability_type">
<option value="" disabled selected data-i18n="ability-type"></option>
<option value="mainAction" data-i18n="main-action"></option>
<option value="" selected data-i18n="no-action"></option>
<option value="main-action" data-i18n="main-action"></option>
<option value="maneuver" data-i18n="maneuver"></option>
<option value="free-maneuver" data-i18n="free-maneuver"></option>
<option value="triggered-action" data-i18n="triggered-action"></option>
<option value="free-triggered-action" data-i18n="free-triggered-action"></option>
</select>
<input type="text" class="ability-distance" data-i18n-placeholder="distance" name="attr_ability_distance" />
<input type="text" class="ability-target" data-i18n-placeholder="target" name="attr_ability_target" />
<textarea class="ability-trigger triggered-show" data-i18n-placeholder="trigger" name="attr_ability_trigger"></textarea>
<div class="power-roll-hide">
<input type="checkbox" name="attr_has_power_roll" />
<label data-i18n="power-roll"></label>
</div>
<div class="power-roll">
<div class="power-roll-mods">
<input type="checkbox" name="attr_has_power_roll" />
<label data-i18n="power-roll"></label>
<span>+</span>
<input type="text" class="power-roll-characteristic" name="attr_ability_characteristic" />
@@ -501,9 +513,9 @@
(roll) => {
const doubleEdgeBane = (() => {
switch (attrs.roller_edge_bane) {
case 'doubleBane':
case 'double-bane':
return -1;
case 'doubleEdge':
case 'double-edge':
return 1;
default:
return 0;
+4
View File
@@ -55,11 +55,15 @@
"abilities": "Abilities",
"keywords": "Keywords",
"ability-name": "Name",
"ability-cost": "Cost",
"ability-description": "Description",
"ability-type": "Type",
"no-action": "No action",
"main-action": "Main Action",
"maneuver": "Maneuver",
"free-maneuver": "Free Maneuver",
"triggered-action": "Triggered",
"free-triggered-action": "Free Triggered",
"distance": "Distance",
"target": "Target",
"trigger": "Trigger",