From a768a02fa351bae1bdbd69c70237acc262bb4d7c Mon Sep 17 00:00:00 2001 From: Aaron Lutomski Date: Sat, 23 May 2026 19:52:53 -0700 Subject: [PATCH 01/19] Move adaptation ticks to Agent Sheet V2 left panel (#297) Port issue #297 from reyzor/297-adaption-left-panel: adaptation incident checkboxes live in the left bar; Psychological tab is motivations/disorders only. Includes #281 tooltips on adaptation controls, adapted-label-slot spacing, locale key DG.Sheet.BlockHeaders.Adaptations (11 languages), and height 700. Age remains on the bio tab (#374). Manual port from branch reyzor/297-adaption-left-panel (@reyzor1991), not a literal cherry-pick, due to merge conflicts with v14 and extravaganza work. Co-authored-by: reyzor1991 --- CHANGELOG.md | 6 ++ css/deltagreen.css | 93 ++++++++++++++++--- lang/ca.json | 1 + lang/cn.json | 1 + lang/de.json | 1 + lang/en.json | 2 + lang/es.json | 1 + lang/fr.json | 1 + lang/ja.json | 1 + lang/pl.json | 1 + lang/pt-BR.json | 1 + lang/sv.json | 1 + lang/uk.json | 1 + module/sheets/agent-sheet-v2.js | 4 +- templates/actor/parts/left-bar.html | 76 +++++++++++++-- templates/actor/parts/motivations-tab-v2.html | 60 ------------ 16 files changed, 171 insertions(+), 80 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bb4bed2..89593f7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,7 +11,13 @@ - [#211](https://github.com/deltagreen-foundryvtt/delta-green-foundry-vtt-system/issues/211) - Move macros to System macros folder in compendium. - [#283](https://github.com/deltagreen-foundryvtt/delta-green-foundry-vtt-system/issues/283) - Added new actor sheet with left hand Sidebar RFC - [#291](https://github.com/deltagreen-foundryvtt/delta-green-foundry-vtt-system/issues/291) - Moving Luck button from three dots to left hand panel +- [#297](https://github.com/deltagreen-foundryvtt/delta-green-foundry-vtt-system/issues/297) - Move adaption ticks to left hand panel - [#374](https://github.com/deltagreen-foundryvtt/delta-green-foundry-vtt-system/issues/374) - Moving Age to Bio tab +- [#393](https://github.com/deltagreen-foundryvtt/delta-green-foundry-vtt-system/issues/393) - Updated to support Foundry v14 +- [#223](https://github.com/deltagreen-foundryvtt/delta-green-foundry-vtt-system/issues/223) - Migrated item sheets to Foundry ApplicationV2 (`ItemSheetV2`) + +### **Bug Fixes:** +- [#392](https://github.com/deltagreen-foundryvtt/delta-green-foundry-vtt-system/issues/392) - Fixed sheet rolls ## Version 1.6.6 - 2026-04-15 diff --git a/css/deltagreen.css b/css/deltagreen.css index c4f44a8..9fa2cd3 100644 --- a/css/deltagreen.css +++ b/css/deltagreen.css @@ -126,6 +126,18 @@ cursor: pointer; } +button.rollable.inline-roll { + display: inline; + margin: 0; + padding: 0; + border: none; + background: transparent; + font: inherit; + color: inherit; + line-height: inherit; + vertical-align: baseline; +} + .not-rollable { color: #999999; } @@ -1345,7 +1357,7 @@ a[data-action="applySkillImprovements"] { .window-content { display: grid; grid-template-columns: 220px 1fr; - grid-template-rows: auto; + grid-template-rows: auto 1fr; width: 100%; height: 100%; } @@ -1353,18 +1365,56 @@ a[data-action="applySkillImprovements"] { .left-bar { grid-column: 1; grid-row: 1 / -1; - padding: 10px; + padding: 3px; } - .window-content > :not(.left-bar) { + .window-content > nav.sheet-tabs { grid-column: 2; grid-row: 1; + align-self: start; width: 100%; box-sizing: border-box; + margin-bottom: 0; + position: relative; + z-index: 2; + } + + .window-content > [data-application-part="rightBar"], + .window-content > .right-bar { + grid-column: 2; + grid-row: 2; + width: 100%; + min-height: 0; + box-sizing: border-box; padding-right: 0; margin-right: 0; } + .right-bar { + display: flex; + flex-direction: column; + min-height: 0; + height: 100%; + } + + .right-bar > .tab { + flex: 1 1 auto; + min-height: 0; + } + + /* Match V1: flat top edge on panel; active tab overlaps the panel top border */ + .right-bar > .tab.active { + border-top-left-radius: 0; + border-top-right-radius: 0; + } + + .tabs [data-action="tab"].active { + position: relative; + z-index: 1; + margin-bottom: -2px; + padding-bottom: 2px; + } + .profile-img { width: 100%; height: auto; @@ -1383,10 +1433,6 @@ a[data-action="applySkillImprovements"] { padding: 1px; } - .tab.active { - padding-top: 20px; - } - .breaking-point { justify-content: space-between; display: flex; @@ -1397,19 +1443,44 @@ a[data-action="applySkillImprovements"] { } } + .mb-10 { + margin-bottom: 10px; + } + .stats { input { margin: 1px; } } - .luck { - margin-top: 5px; - } - .horizontal-bar-section-divider.skills-header { display: flex; } + + .adaptation-grid-4col { + display: grid; + grid-template-columns: 50% 25px 25px 25px; + align-content: center; + justify-content: left; + align-items: center; + row-gap: 0; + margin-bottom: 0; + } + + .adaptation-grid-4col .adapted-label-slot { + grid-column: 1 / -1; + min-height: 1.35em; + } + + .adaptation-grid-4col .adapted-label-slot .adapted-label { + display: block; + margin: 0; + } + + .adaptation-block { + border: 1px solid black; + padding: 3px; + } } .stats-wrapper { diff --git a/lang/ca.json b/lang/ca.json index 53045db..611d826 100644 --- a/lang/ca.json +++ b/lang/ca.json @@ -229,6 +229,7 @@ "DG.Sheet.BlockHeaders.SkillsAndTraining": "SKILLS AND TRAINING", "DG.Sheet.BlockHeaders.Injuries": "INJURIES", "DG.Sheet.BlockHeaders.BreakingPointAndAdaptations": "BREAKING POINT AND ADAPTATIONS", + "DG.Sheet.BlockHeaders.Adaptations": "Adaptations", "DG.Sheet.BlockHeaders.MotivationsAndDisorders": "MOTIVATIONS AND DISORDERS", "DG.Sheet.BlockHeaders.PersonalInfoCV": "PERSONAL INFORMATION / CV", "DG.Sheet.BlockHeaders.BondsRelationshipsContacts": "BONDS / RELATIONSHIPS / CONTACTS", diff --git a/lang/cn.json b/lang/cn.json index a630732..fc8f18c 100644 --- a/lang/cn.json +++ b/lang/cn.json @@ -243,6 +243,7 @@ "DG.Sheet.BlockHeaders.SkillsAndTraining": "技能与特训", "DG.Sheet.BlockHeaders.Injuries": "伤害", "DG.Sheet.BlockHeaders.BreakingPointAndAdaptations": "崩溃点和适应", + "DG.Sheet.BlockHeaders.Adaptations": "适应", "DG.Sheet.BlockHeaders.MotivationsAndDisorders": "动机和精神疾病", "DG.Sheet.BlockHeaders.PersonalInfoCV": "个人信息 / 简历", "DG.Sheet.BlockHeaders.BondsRelationshipsContacts": "重要关系 / 关系 / 联系人", diff --git a/lang/de.json b/lang/de.json index 972e302..b94fef6 100644 --- a/lang/de.json +++ b/lang/de.json @@ -246,6 +246,7 @@ "DG.Sheet.BlockHeaders.SkillsAndTraining": "FERTIGKEITEN UND TRAINING", "DG.Sheet.BlockHeaders.Injuries": "VERLETZUNGEN", "DG.Sheet.BlockHeaders.BreakingPointAndAdaptations": "BELASTUNGSSCHWELLE UND GEWÖHNUNGEN", + "DG.Sheet.BlockHeaders.Adaptations": "Gewöhnungen", "DG.Sheet.BlockHeaders.MotivationsAndDisorders": "MOTIVATIONEN UND STÖRUNGEN", "DG.Sheet.BlockHeaders.PersonalInfoCV": "PERSÖNLICHE INFORMATIONEN / LEBENSLAUF", "DG.Sheet.BlockHeaders.BondsRelationshipsContacts": "BINDUNGEN / BEZIEHUNGEN / KONTAKTE", diff --git a/lang/en.json b/lang/en.json index 94b9363..e4c0805 100644 --- a/lang/en.json +++ b/lang/en.json @@ -312,6 +312,7 @@ "DG.Sheet.BlockHeaders.SkillsAndTraining": "SKILLS AND TRAINING", "DG.Sheet.BlockHeaders.Injuries": "INJURIES", "DG.Sheet.BlockHeaders.BreakingPointAndAdaptations": "BREAKING POINT AND ADAPTATIONS", + "DG.Sheet.BlockHeaders.Adaptations": "Adaptations", "DG.Sheet.BlockHeaders.MotivationsAndDisorders": "MOTIVATIONS AND DISORDERS", "DG.Sheet.BlockHeaders.PersonalInfoCV": "PERSONAL INFORMATION / CV", "DG.Sheet.BlockHeaders.BondsRelationshipsContacts": "BONDS / RELATIONSHIPS / CONTACTS", @@ -349,6 +350,7 @@ "DG.Sheet.class.item": "Item Sheet", "DG.Sheet.class.agent": "Agent Sheet", + "DG.Sheet.class.agentV2": "Agent Sheet V2", "DG.Sheet.class.npc": "NPC Sheet", "DG.Sheet.class.unnatural": "Unnatural Sheet", "DG.Sheet.class.vehicle": "Vehicle Sheet", diff --git a/lang/es.json b/lang/es.json index 45c1f36..0db399b 100644 --- a/lang/es.json +++ b/lang/es.json @@ -310,6 +310,7 @@ "DG.Sheet.BlockHeaders.SkillsAndTraining": "HABILIDADES Y ENTRENAMIENTO", "DG.Sheet.BlockHeaders.Injuries": "HERIDAS", "DG.Sheet.BlockHeaders.BreakingPointAndAdaptations": "PUNTO DE RUPTURA Y ADAPTACIONES", + "DG.Sheet.BlockHeaders.Adaptations": "Adaptaciones", "DG.Sheet.BlockHeaders.MotivationsAndDisorders": "MOTIVACIONES Y TRANSTORNOS MENTALES", "DG.Sheet.BlockHeaders.PersonalInfoCV": "INFORMACIÓN PERSONAL Y CURRÍCULO", "DG.Sheet.BlockHeaders.BondsRelationshipsContacts": "LAZOS, RELACIONES Y CONTACTOS", diff --git a/lang/fr.json b/lang/fr.json index 0bd6768..e8a53e4 100644 --- a/lang/fr.json +++ b/lang/fr.json @@ -310,6 +310,7 @@ "DG.Sheet.BlockHeaders.SkillsAndTraining": "COMPÉTENCES ET FORMATION", "DG.Sheet.BlockHeaders.Injuries": "BLESSURES ET MALADIES", "DG.Sheet.BlockHeaders.BreakingPointAndAdaptations": "SEUIL DE RUPTURE ET ADAPTATIONS", + "DG.Sheet.BlockHeaders.Adaptations": "Adaptations", "DG.Sheet.BlockHeaders.MotivationsAndDisorders": "MOTIVATIONS ET TROUBLES PSYCHIQUES", "DG.Sheet.BlockHeaders.PersonalInfoCV": "DÉTAILS PERSONNELS ET NOTES", "DG.Sheet.BlockHeaders.BondsRelationshipsContacts": "ATTACHES, RELATIONS ET CONTACTS", diff --git a/lang/ja.json b/lang/ja.json index 54107ca..c2e7902 100644 --- a/lang/ja.json +++ b/lang/ja.json @@ -245,6 +245,7 @@ "DG.Sheet.BlockHeaders.SkillsAndTraining": "技能と訓練", "DG.Sheet.BlockHeaders.Injuries": "負傷", "DG.Sheet.BlockHeaders.BreakingPointAndAdaptations": "限界点と慣れ", + "DG.Sheet.BlockHeaders.Adaptations": "慣れ", "DG.Sheet.BlockHeaders.MotivationsAndDisorders": "モチベーションと精神障害", "DG.Sheet.BlockHeaders.PersonalInfoCV": "個人情報 / 経歴", "DG.Sheet.BlockHeaders.BondsRelationshipsContacts": "絆 / 関係 / 協力者", diff --git a/lang/pl.json b/lang/pl.json index c0bbc59..053bfaa 100644 --- a/lang/pl.json +++ b/lang/pl.json @@ -308,6 +308,7 @@ "DG.Sheet.BlockHeaders.SkillsAndTraining": "UMIEJĘTNOŚCI I SZKOLENIE", "DG.Sheet.BlockHeaders.Injuries": "URAZY", "DG.Sheet.BlockHeaders.BreakingPointAndAdaptations": "PUNKT ZŁAMANIA I ADAPTACJE", + "DG.Sheet.BlockHeaders.Adaptations": "Adaptacje", "DG.Sheet.BlockHeaders.MotivationsAndDisorders": "MOTYWACJE I ZABURZENIA", "DG.Sheet.BlockHeaders.PersonalInfoCV": "DANE OSOBOWE / CV", "DG.Sheet.BlockHeaders.BondsRelationshipsContacts": "WIĘZI / RELACJE / KONTAKTY", diff --git a/lang/pt-BR.json b/lang/pt-BR.json index 3bd7a9f..2843a2c 100644 --- a/lang/pt-BR.json +++ b/lang/pt-BR.json @@ -310,6 +310,7 @@ "DG.Sheet.BlockHeaders.SkillsAndTraining": "HABILIDADES E TREINAMENTO", "DG.Sheet.BlockHeaders.Injuries": "FERIMENTOS", "DG.Sheet.BlockHeaders.BreakingPointAndAdaptations": "PONTO DE RUPTURA E ADAPTAÇÕES", + "DG.Sheet.BlockHeaders.Adaptations": "Adaptações", "DG.Sheet.BlockHeaders.MotivationsAndDisorders": "MOTIVAÇÕES E DISTÚRBIOS", "DG.Sheet.BlockHeaders.PersonalInfoCV": "INFORMAÇÕES PESSOAIS / C.V.", "DG.Sheet.BlockHeaders.BondsRelationshipsContacts": "LAÇOS / RELACIONAMENTOS / CONTATOS", diff --git a/lang/sv.json b/lang/sv.json index c87f62a..a57d77d 100644 --- a/lang/sv.json +++ b/lang/sv.json @@ -245,6 +245,7 @@ "DG.Sheet.BlockHeaders.SkillsAndTraining": "FÄRDIGHETER OCH TRÄNING", "DG.Sheet.BlockHeaders.Injuries": "SKADOR", "DG.Sheet.BlockHeaders.BreakingPointAndAdaptations": "BRYTPUNKT OCH ANPASSNINGAR", + "DG.Sheet.BlockHeaders.Adaptations": "Anpassningar", "DG.Sheet.BlockHeaders.MotivationsAndDisorders": "MOTIVATIONER OCH STÖRNINGAR", "DG.Sheet.BlockHeaders.PersonalInfoCV": "PERSONLIG INFORMATION", "DG.Sheet.BlockHeaders.BondsRelationshipsContacts": "KAMRATER OCH RELATIONER", diff --git a/lang/uk.json b/lang/uk.json index 4e3e12c..4ce6bf9 100644 --- a/lang/uk.json +++ b/lang/uk.json @@ -310,6 +310,7 @@ "DG.Sheet.BlockHeaders.SkillsAndTraining": "НАВИЧКИ ТА ПІДГОТОВКА", "DG.Sheet.BlockHeaders.Injuries": "ТРАВМИ", "DG.Sheet.BlockHeaders.BreakingPointAndAdaptations": "ТОЧКА ЗЛАМУ ТА АДАПТАЦІЇ", + "DG.Sheet.BlockHeaders.Adaptations": "Адаптації", "DG.Sheet.BlockHeaders.MotivationsAndDisorders": "МОТИВАЦІЇ ТА РОЗЛАДИ", "DG.Sheet.BlockHeaders.PersonalInfoCV": "ОСОБИСТІ ДАНІ / РЕЗЮМЕ", "DG.Sheet.BlockHeaders.BondsRelationshipsContacts": "ЗВ’ЯЗКИ / СТОСУНКИ / КОНТАКТИ", diff --git a/module/sheets/agent-sheet-v2.js b/module/sheets/agent-sheet-v2.js index f013bee..a424730 100644 --- a/module/sheets/agent-sheet-v2.js +++ b/module/sheets/agent-sheet-v2.js @@ -5,7 +5,7 @@ import ActorEditStatForm from "./edit-stats.js"; export default class DGAgentSheetV2 extends DGAgentSheet { static DEFAULT_OPTIONS = /** @type {const} */ ({ classes: ["actor-sheet-v2"], - position: { width: 950, height: 665 }, + position: { width: 950, height: 700 }, actions: { openStatsEdit: this._openStatsEdit, }, @@ -17,6 +17,7 @@ export default class DGAgentSheetV2 extends DGAgentSheet { template: `${this.TEMPLATE_PATH}/parts/left-bar.html`, templates: [`${this.TEMPLATE_PATH}/partials/sanity-partial.html`], }, + tabs: this.BASE_PARTS.tabs, rightBar: { template: `${this.TEMPLATE_PATH}/parts/right-bar.html`, templates: [ @@ -31,7 +32,6 @@ export default class DGAgentSheetV2 extends DGAgentSheet { `${this.TEMPLATE_PATH}/partials/notes-partial.html`, ], }, - tabs: this.BASE_PARTS.tabs, }); static _openStatsEdit() { diff --git a/templates/actor/parts/left-bar.html b/templates/actor/parts/left-bar.html index b583ced..452f6ca 100644 --- a/templates/actor/parts/left-bar.html +++ b/templates/actor/parts/left-bar.html @@ -21,7 +21,7 @@ -
+
@@ -52,9 +52,7 @@
-
- -
+
{{!-- HP --}}