diff --git a/PokemonTabletopAdventures_v3/PTA3.css b/PokemonTabletopAdventures_v3/PTA3.css index ab0f4e448c..590c5131f4 100644 --- a/PokemonTabletopAdventures_v3/PTA3.css +++ b/PokemonTabletopAdventures_v3/PTA3.css @@ -97,6 +97,11 @@ --stat-ro-spatk: #99ffff80; --stat-ro-spdef: #99ff9980; --stat-ro-spd: #ff99ff80; + --stat-atk-highlight: #ff9999cc; + --stat-def-highlight: #ffff99cc; + --stat-spatk-highlight: #99ffffcc; + --stat-spdef-highlight: #99ff99cc; + --stat-spd-highlight: #ff99ffcc; } .sheet-rolltemplate-inline-skill-roll, @@ -593,6 +598,15 @@ div.sheet-collapsible-skill { position: relative; } +div.sheet-collapsible-skill.sheet-capture { + grid-template-columns: 8fr 4fr 3fr 1fr; +} + +div.sheet-collapsible-skill.sheet-capture > input.sheet-options-flag, +div.sheet-collapsible-skill.sheet-capture > input.sheet-options-flag + span { + grid-column: 4; +} + div.sheet-collapsible-skill > input.sheet-options-flag, div.sheet-collapsible-skill > input.sheet-options-flag + span { display: block; @@ -614,7 +628,7 @@ div.sheet-3col-centered { .sheet-collapsible-skill.sheet-capture > div.sheet-options { background: #0001; border: 1px solid var(--foreground-color); - grid-area: 2 / 1 / 2 / 4; + grid-area: 2 / 1 / 2 / 5; padding: 0 8px; padding-bottom: 4px; display: grid; @@ -668,6 +682,25 @@ div.sheet-class-feature { background-size: 150px; } +div.sheet-control-header { + display: grid; + grid-template-columns: 4fr 1fr; +} + +p.sheet-pictos-font { + font-family: pictos; +} + +div.sheet-control-header div.sheet-header-controls > p { + display: inline-block; +} + +div.sheet-control-header div.sheet-header-controls > button[type="action"] { + border: none; + background: none; + box-shadow: none; +} + /* Sheet background and styling for Form Changes */ input.sheet-form-setting[value="mega"] ~ div.sheet-wrapper { @@ -1164,84 +1197,133 @@ input.sheet-character-type[value="hybrid"] ~ div.sheet-tab-hybrid { background-color: var(--stat-spd); } -input.sheet-skill-color-setting[value="ATK"] + input[type="number"].sheet-skill-total, -input.sheet-skill-color-setting[value="ATK"] + .sheet-skill-total + button[type="roll"].sheet-skill-roller:hover, input.sheet-skill-color-setting[value="ATK"] + button[type="roll"].sheet-skill-roller:hover, -input.sheet-skill-color-setting[value="ATK"] + button[type="roll"].sheet-skill-roller + .sheet-skill-total { +input.sheet-skill-color-setting[value="ATK"] + button[type="roll"].sheet-skill-roller + input.sheet-skill-total, +input.sheet-skill-color-setting[value="ATK"] + button[type="roll"].sheet-skill-roller + select + input.sheet-skill-total { background-color: var(--stat-ro-atk); border-color: #555555; } -input.sheet-skill-color-setting[value="DEF"] + input[type="number"].sheet-skill-total, -input.sheet-skill-color-setting[value="DEF"] + .sheet-skill-total + button[type="roll"].sheet-skill-roller:hover, input.sheet-skill-color-setting[value="DEF"] + button[type="roll"].sheet-skill-roller:hover, -input.sheet-skill-color-setting[value="DEF"] + button[type="roll"].sheet-skill-roller + .sheet-skill-total { +input.sheet-skill-color-setting[value="DEF"] + button[type="roll"].sheet-skill-roller + input.sheet-skill-total, +input.sheet-skill-color-setting[value="DEF"] + button[type="roll"].sheet-skill-roller + select + input.sheet-skill-total { background-color: var(--stat-ro-def); border-color: #555555; } -input.sheet-skill-color-setting[value="SPATK"] + input[type="number"].sheet-skill-total, -input.sheet-skill-color-setting[value="SPATK"] + .sheet-skill-total + button[type="roll"].sheet-skill-roller:hover, input.sheet-skill-color-setting[value="SPATK"] + button[type="roll"].sheet-skill-roller:hover, -input.sheet-skill-color-setting[value="SPATK"] + button[type="roll"].sheet-skill-roller + .sheet-skill-total { +input.sheet-skill-color-setting[value="SPATK"] + button[type="roll"].sheet-skill-roller + input.sheet-skill-total, +input.sheet-skill-color-setting[value="SPATK"] + button[type="roll"].sheet-skill-roller + select + input.sheet-skill-total { background-color: var(--stat-ro-spatk); border-color: #555555; } -input.sheet-skill-color-setting[value="SPDEF"] + input[type="number"].sheet-skill-total, -input.sheet-skill-color-setting[value="SPDEF"] + .sheet-skill-total + button[type="roll"].sheet-skill-roller:hover, input.sheet-skill-color-setting[value="SPDEF"] + button[type="roll"].sheet-skill-roller:hover, -input.sheet-skill-color-setting[value="SPDEF"] + button[type="roll"].sheet-skill-roller + .sheet-skill-total { +input.sheet-skill-color-setting[value="SPDEF"] + button[type="roll"].sheet-skill-roller + input.sheet-skill-total, +input.sheet-skill-color-setting[value="SPDEF"] + button[type="roll"].sheet-skill-roller + select + input.sheet-skill-total { background-color: var(--stat-ro-spdef); border-color: #555555; } -input.sheet-skill-color-setting[value="SPD"] + input[type="number"].sheet-skill-total, -input.sheet-skill-color-setting[value="SPD"] + .sheet-skill-total + button[type="roll"].sheet-skill-roller:hover, input.sheet-skill-color-setting[value="SPD"] + button[type="roll"].sheet-skill-roller:hover, -input.sheet-skill-color-setting[value="SPD"] + button[type="roll"].sheet-skill-roller + .sheet-skill-total { +input.sheet-skill-color-setting[value="SPD"] + button[type="roll"].sheet-skill-roller + input.sheet-skill-total, +input.sheet-skill-color-setting[value="SPD"] + button[type="roll"].sheet-skill-roller + select + input.sheet-skill-total { background-color: var(--stat-ro-spd); border-color: #555555; } -.sheet-darkmode input.sheet-skill-color-setting[value="ATK"] + input[type="number"].sheet-skill-total, -.sheet-darkmode input.sheet-skill-color-setting[value="ATK"] + .sheet-skill-total + button[type="roll"].sheet-skill-roller:hover, +.sheet-darkmode input.sheet-skill-color-setting + button[type="roll"].sheet-skill-roller:hover, +.sheet-darkmode input.sheet-skill-color-setting + button[type="roll"].sheet-skill-roller + input.sheet-skill-total, +.sheet-darkmode input.sheet-skill-color-setting + button[type="roll"].sheet-skill-roller + select + input.sheet-skill-total { + color: #dddddd; +} + .sheet-darkmode input.sheet-skill-color-setting[value="ATK"] + button[type="roll"].sheet-skill-roller:hover, -.sheet-darkmode input.sheet-skill-color-setting[value="ATK"] + button[type="roll"].sheet-skill-roller + .sheet-skill-total { +.sheet-darkmode input.sheet-skill-color-setting[value="ATK"] + button[type="roll"].sheet-skill-roller + input.sheet-skill-total, +.sheet-darkmode input.sheet-skill-color-setting[value="ATK"] + button[type="roll"].sheet-skill-roller + select + input.sheet-skill-total { border-color: var(--stat-atk); - color: var(--stat-atk); } -.sheet-darkmode input.sheet-skill-color-setting[value="DEF"] + input[type="number"].sheet-skill-total, -.sheet-darkmode input.sheet-skill-color-setting[value="DEF"] + .sheet-skill-total + button[type="roll"].sheet-skill-roller:hover, .sheet-darkmode input.sheet-skill-color-setting[value="DEF"] + button[type="roll"].sheet-skill-roller:hover, -.sheet-darkmode input.sheet-skill-color-setting[value="DEF"] + button[type="roll"].sheet-skill-roller + .sheet-skill-total { +.sheet-darkmode input.sheet-skill-color-setting[value="DEF"] + button[type="roll"].sheet-skill-roller + input.sheet-skill-total, +.sheet-darkmode input.sheet-skill-color-setting[value="DEF"] + button[type="roll"].sheet-skill-roller + select + input.sheet-skill-total { border-color: var(--stat-def); - color: var(--stat-def); } -.sheet-darkmode input.sheet-skill-color-setting[value="SPATK"] + input[type="number"].sheet-skill-total, -.sheet-darkmode input.sheet-skill-color-setting[value="SPATK"] + .sheet-skill-total + button[type="roll"].sheet-skill-roller:hover, .sheet-darkmode input.sheet-skill-color-setting[value="SPATK"] + button[type="roll"].sheet-skill-roller:hover, -.sheet-darkmode input.sheet-skill-color-setting[value="SPATK"] + button[type="roll"].sheet-skill-roller + .sheet-skill-total { +.sheet-darkmode input.sheet-skill-color-setting[value="SPATK"] + button[type="roll"].sheet-skill-roller + input.sheet-skill-total, +.sheet-darkmode input.sheet-skill-color-setting[value="SPATK"] + button[type="roll"].sheet-skill-roller + select + input.sheet-skill-total { border-color: var(--stat-spatk); - color: var(--stat-spatk); } -.sheet-darkmode input.sheet-skill-color-setting[value="SPDEF"] + input[type="number"].sheet-skill-total, -.sheet-darkmode input.sheet-skill-color-setting[value="SPDEF"] + .sheet-skill-total + button[type="roll"].sheet-skill-roller:hover, .sheet-darkmode input.sheet-skill-color-setting[value="SPDEF"] + button[type="roll"].sheet-skill-roller:hover, -.sheet-darkmode input.sheet-skill-color-setting[value="SPDEF"] + button[type="roll"].sheet-skill-roller + .sheet-skill-total { +.sheet-darkmode input.sheet-skill-color-setting[value="SPDEF"] + button[type="roll"].sheet-skill-roller + input.sheet-skill-total, +.sheet-darkmode input.sheet-skill-color-setting[value="SPDEF"] + button[type="roll"].sheet-skill-roller + select + input.sheet-skill-total { border-color: var(--stat-spdef); - color: var(--stat-spdef); } -.sheet-darkmode input.sheet-skill-color-setting[value="SPD"] + input[type="number"].sheet-skill-total, -.sheet-darkmode input.sheet-skill-color-setting[value="SPD"] + .sheet-skill-total + button[type="roll"].sheet-skill-roller:hover, .sheet-darkmode input.sheet-skill-color-setting[value="SPD"] + button[type="roll"].sheet-skill-roller:hover, -.sheet-darkmode input.sheet-skill-color-setting[value="SPD"] + button[type="roll"].sheet-skill-roller + .sheet-skill-total { +.sheet-darkmode input.sheet-skill-color-setting[value="SPD"] + button[type="roll"].sheet-skill-roller + input.sheet-skill-total, +.sheet-darkmode input.sheet-skill-color-setting[value="SPD"] + button[type="roll"].sheet-skill-roller + select + input.sheet-skill-total { border-color: var(--stat-spd); - color: var(--stat-spd); +} + +input.sheet-skill-color-setting + button[type="roll"].sheet-skill-roller input.sheet-talent-pip-setting[value="on"] + span, +input.sheet-skill-color-setting + button[type="roll"].sheet-skill-roller input.sheet-talent-pip-setting[value="2"] + span { + background-color: var(--foreground-color); +} + +.sheet-darkmode input.sheet-skill-color-setting[value="ATK"] + button[type="roll"].sheet-skill-roller input.sheet-talent-pip-setting[value="on"] + span, +.sheet-darkmode input.sheet-skill-color-setting[value="ATK"] + button[type="roll"].sheet-skill-roller input.sheet-talent-pip-setting[value="2"] + span { + background-color: var(--stat-atk-highlight); +} + +.sheet-darkmode input.sheet-skill-color-setting[value="DEF"] + button[type="roll"].sheet-skill-roller input.sheet-talent-pip-setting[value="on"] + span, +.sheet-darkmode input.sheet-skill-color-setting[value="DEF"] + button[type="roll"].sheet-skill-roller input.sheet-talent-pip-setting[value="2"] + span { + background-color: var(--stat-def-highlight); +} + +.sheet-darkmode input.sheet-skill-color-setting[value="SPATK"] + button[type="roll"].sheet-skill-roller input.sheet-talent-pip-setting[value="on"] + span, +.sheet-darkmode input.sheet-skill-color-setting[value="SPATK"] + button[type="roll"].sheet-skill-roller input.sheet-talent-pip-setting[value="2"] + span { + background-color: var(--stat-spatk-highlight); +} + +.sheet-darkmode input.sheet-skill-color-setting[value="SPDEF"] + button[type="roll"].sheet-skill-roller input.sheet-talent-pip-setting[value="on"] + span, +.sheet-darkmode input.sheet-skill-color-setting[value="SPDEF"] + button[type="roll"].sheet-skill-roller input.sheet-talent-pip-setting[value="2"] + span { + background-color: var(--stat-spdef-highlight); +} + +.sheet-darkmode input.sheet-skill-color-setting[value="SPD"] + button[type="roll"].sheet-skill-roller input.sheet-talent-pip-setting[value="on"] + span, +.sheet-darkmode input.sheet-skill-color-setting[value="SPD"] + button[type="roll"].sheet-skill-roller input.sheet-talent-pip-setting[value="2"] + span { + background-color: var(--stat-spd-highlight); +} + +input.sheet-skill-color-setting + button[type="roll"].sheet-skill-roller { + position: relative; +} + +input.sheet-skill-color-setting + button[type="roll"].sheet-skill-roller input.sheet-talent-pip-setting + span { + border-radius: 50%; + height: 8px; + width: 8px; + position: absolute; + bottom: 6px; +} + +input.sheet-skill-color-setting + button[type="roll"].sheet-skill-roller input.sheet-talent-pip-setting + span.sheet-talent1-pip { + right: 20px; +} + +input.sheet-skill-color-setting + button[type="roll"].sheet-skill-roller input.sheet-talent-pip-setting + span.sheet-talent2-pip { + right: 8px; +} + +input.sheet-skill-color-setting + button[type="roll"].sheet-skill-roller input.sheet-talent-pip-setting + span { + background-color: #00000020; +} + +.sheet-darkmode input.sheet-skill-color-setting + button[type="roll"].sheet-skill-roller input.sheet-talent-pip-setting + span { + background-color: #ffffff20; } input.sheet-skill-total { diff --git a/PokemonTabletopAdventures_v3/PTA3.html b/PokemonTabletopAdventures_v3/PTA3.html index 3f515e1854..08a0c7320e 100644 --- a/PokemonTabletopAdventures_v3/PTA3.html +++ b/PokemonTabletopAdventures_v3/PTA3.html @@ -1,36 +1,34 @@ @@ -253,11 +251,6 @@ - - Held Item - - -


@@ -280,13 +273,21 @@ Diet - - Held Item - Egg Group
+
+ + . +
+ Held Item +
+
+ Held Item + +
+
@@ -353,8 +354,6 @@ - Credits - Level @@ -421,8 +420,19 @@ Diet - Held Item - + Credits + + + +
+ + . +
+ Held Item +
+
+ Held Item +
@@ -782,7 +792,7 @@ -
+
-
@@ -790,9 +800,20 @@
-

Skills

+
+

Skills

+
+

All Skills:

+ + +
+
-
+
@@ -800,6 +821,8 @@ @@ -807,8 +830,8 @@
Talents - - + + Base Attribute @@ -833,6 +856,8 @@ @@ -840,8 +865,8 @@
Talents - - + + Base Attribute @@ -866,6 +891,8 @@ @@ -873,8 +900,8 @@
Talents - - + + Base Attribute @@ -899,6 +926,8 @@ @@ -906,8 +935,8 @@
Talents - - + + Base Attribute @@ -932,6 +961,8 @@ @@ -939,8 +970,8 @@
Talents - - + + Base Attribute @@ -961,10 +992,12 @@
- + @@ -972,8 +1005,8 @@
Talents - - + + Base Attribute @@ -994,10 +1027,12 @@
- + @@ -1005,8 +1040,8 @@
Talents - - + + Base Attribute @@ -1031,6 +1066,8 @@ @@ -1038,8 +1075,8 @@
Talents - - + + Base Attribute @@ -1064,6 +1101,8 @@ @@ -1071,8 +1110,8 @@
Talents - - + + Base Attribute @@ -1099,6 +1138,8 @@ @@ -1106,8 +1147,8 @@
Talents - - + + Base Attribute @@ -1132,6 +1173,8 @@ @@ -1139,8 +1182,8 @@
Talents - - + + Base Attribute @@ -1165,6 +1208,8 @@ @@ -1172,8 +1217,8 @@
Talents - - + + Base Attribute @@ -1198,6 +1243,8 @@ @@ -1205,8 +1252,8 @@
Talents - - + + Base Attribute @@ -1231,6 +1278,8 @@ @@ -1238,8 +1287,8 @@
Talents - - + + Base Attribute @@ -1264,6 +1313,8 @@ @@ -1271,8 +1322,8 @@
Talents - - + + Base Attribute @@ -1297,6 +1348,8 @@ @@ -1304,8 +1357,8 @@
Talents - - + + Base Attribute @@ -1330,6 +1383,8 @@ @@ -1337,8 +1392,8 @@
Talents - - + + Base Attribute @@ -1363,6 +1418,8 @@ @@ -1370,8 +1427,8 @@
Talents - - + + Base Attribute @@ -1394,206 +1451,7 @@
- -
-
- Total - Skill Name - Talent - Bonus - Total - Skill Name - Talent - Bonus -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
@@ -1606,48 +1464,47 @@ value="@{publicity_roll} &{template:@{skill_template}} {{base-attribute=@{capture_ability_mod}}} {{character-id=@{character_id}}} {{character-name=@{character_name}}} {{skill-name=Capture Pokémon}} {{skill-roll=@{capture_skill_roll}}}"> Capture Pokémon () + y
- Selected Ball: - - Modifier: + Selected Ball Capture Modifier: @@ -1659,7 +1516,7 @@ Accuracy Attribute - @@ -4214,6 +4071,42 @@ }); }); +const skillOptionsFlags = [ + "acrobatics_options_flag", + "athletics_options_flag", + "bluff_options_flag", + "concentration_options_flag", + "constitution_options_flag", + "diplomacy_options_flag", + "engineering_options_flag", + "history_options_flag", + "insight_options_flag", + "investigate_options_flag", + "medicine_options_flag", + "nature_options_flag", + "perception_options_flag", + "perform_options_flag", + "handling_options_flag", + "programming_options_flag", + "sleightofhand_options_flag", + "stealth_options_flag", + "capture_options_flag" + ]; + + on(`clicked:collapse-all-skills`, function() { + setAllSkillFlags("off"); + }); + + on(`clicked:expand-all-skills`, function() { + setAllSkillFlags("on"); + }); + + function setAllSkillFlags(visibility) { + let newAttrs = {}; + skillOptionsFlags.forEach((skill) => newAttrs[skill] = visibility ); + setAttrs(newAttrs); + } + on(`clicked:activate-tera`, function () { performFormChange("tera", "Terastallize", "End Terastallization", true); }); @@ -5203,11 +5096,13 @@ // Skill Functions function getSkillAttributes(statLabel, talent1Label, talent2Label, userBonusLabel, totalLabel) { getAttrs([statLabel, talent1Label, talent2Label, totalLabel, userBonusLabel], function (attributes) { - const stat = parseInt(attributes[statLabel]) || 0; - const talent1 = parseInt(attributes[talent1Label]) || 0; - const talent2 = parseInt(attributes[talent2Label]) || 0; - const total = parseInt(attributes[totalLabel]) || -1; - const userBonus = parseInt(attributes[userBonusLabel]) || 0; + let stat = parseInt(attributes[statLabel]) || 0; + let talent1 = attributes[talent1Label]; + let talent2 = attributes[talent2Label]; + talent1 = isNaN(talent1) ? talent1 == "on" ? 2 : 0 : parseInt(talent1); + talent2 = isNaN(talent2) ? talent2 == "on" ? 2 : 0 : parseInt(talent2); + let total = parseInt(attributes[totalLabel]) || -1; + let userBonus = parseInt(attributes[userBonusLabel]) || 0; assignSkillTotal(totalLabel, stat, talent1, talent2, total, userBonus); }); diff --git a/PokemonTabletopAdventures_v3/README.md b/PokemonTabletopAdventures_v3/README.md index 51b246473e..bb2ecd7301 100644 --- a/PokemonTabletopAdventures_v3/README.md +++ b/PokemonTabletopAdventures_v3/README.md @@ -23,6 +23,13 @@ Things we want to add to the character sheet, presented in no particular order o ## Changelog +### Jul 20, 2025 +- Added Collapse/Expand button for all skills, so a single click closes/opens them all +- Added collapsing section for giving held items a description to prevent continuous cross-referencing +- Added skill talent pips to the skill roll button +- Moved ball selection back out of the capture configuration section +- Updated the colour used for the highlighted skill and all skill totals in dark mode to have a better contrast + ### Jul 14, 2025 - Added a collapsing section for skills - Fixed an issue where pokémon nature would affect trainer stats