From 7cb6080808deb89895fa7b4a370b6ff9ffbd9622 Mon Sep 17 00:00:00 2001 From: Johannes Loher Date: Mon, 4 Jan 2021 01:11:05 +0100 Subject: [PATCH] extract and simplify combat values to own component --- src/ds4.scss | 1 + src/module/ds4.ts | 3 +- src/scss/components/_character_values.scss | 48 ------------- src/scss/components/_combat_values.scss | 48 +++++++++++++ src/templates/actor/actor-sheet.hbs | 69 +------------------ .../actor/partials/combat-values.hbs | 30 ++++++++ 6 files changed, 82 insertions(+), 117 deletions(-) create mode 100644 src/scss/components/_combat_values.scss create mode 100644 src/templates/actor/partials/combat-values.hbs diff --git a/src/ds4.scss b/src/ds4.scss index 5eae4571..2fedca1f 100644 --- a/src/ds4.scss +++ b/src/ds4.scss @@ -19,4 +19,5 @@ @import "scss/components/description"; @import "scss/components/character_values"; @import "scss/components/attributes_traits"; + @import "scss/components/combat_values"; } diff --git a/src/module/ds4.ts b/src/module/ds4.ts index 99227746..358074b0 100644 --- a/src/module/ds4.ts +++ b/src/module/ds4.ts @@ -38,6 +38,7 @@ async function registerHandlebarsPartials() { "systems/ds4/templates/item/partials/body.hbs", "systems/ds4/templates/actor/partials/items-overview.hbs", "systems/ds4/templates/actor/partials/attributes-traits.hbs", + "systems/ds4/templates/actor/partials/combat-values.hbs", ]; return loadTemplates(templatePaths); } @@ -68,7 +69,7 @@ Hooks.once("setup", function () { ]; // Exclude some from sorting where the default order matters - const noSort = ["attributes", "traits"]; + const noSort = ["attributes", "traits", "combatValues"]; // Localize and sort CONFIG objects for (const o of toLocalize) { diff --git a/src/scss/components/_character_values.scss b/src/scss/components/_character_values.scss index b27e2252..69ccc0ff 100644 --- a/src/scss/components/_character_values.scss +++ b/src/scss/components/_character_values.scss @@ -1,53 +1,5 @@ header.sheet-header { .character-values { flex: 0 0 100%; - .combat-values { - margin-top: $margin-sm; - .combat-value-with-formula { - display: grid; - place-items: center; - $size: 60px; - row-gap: $margin-sm; - .combat-value { - @include centered-content; - height: $size; - width: $size; - flex: 0 0 auto; - background-size: contain; - font-size: 1.5em; - &.hitPoints { - background-image: url("#{$official-assets-path}/DS4-HP.png"); - } - &.defense { - background-image: url("#{$official-assets-path}/DS4-DEF.png"); - } - &.initiative { - background-image: url("#{$official-assets-path}/DS4-INI.png"); - } - &.movement { - background-image: url("#{$official-assets-path}/DS4-MR.png"); - } - &.meleeAttack { - background-image: url("#{$official-assets-path}/DS4-MAT.png"); - } - &.rangedAttack { - background-image: url("#{$official-assets-path}/DS4-RAT.png"); - } - &.spellcasting { - background-image: url("#{$official-assets-path}/DS4-SPC.png"); - } - &.targetedSpellcasting { - background-image: url("#{$official-assets-path}/DS4-TSC.png"); - } - } - - .combat-value-formula { - width: $size; - input { - text-align: center; - } - } - } - } } } diff --git a/src/scss/components/_combat_values.scss b/src/scss/components/_combat_values.scss new file mode 100644 index 00000000..5b7ad3d2 --- /dev/null +++ b/src/scss/components/_combat_values.scss @@ -0,0 +1,48 @@ +.combat-values { + margin-top: $margin-sm; + .combat-value-with-formula { + display: grid; + place-items: center; + $size: 60px; + row-gap: $margin-sm; + .combat-value { + @include centered-content; + height: $size; + width: $size; + flex: 0 0 auto; + background-size: contain; + font-size: 1.5em; + &.hitPoints { + background-image: url("#{$official-assets-path}/DS4-HP.png"); + } + &.defense { + background-image: url("#{$official-assets-path}/DS4-DEF.png"); + } + &.initiative { + background-image: url("#{$official-assets-path}/DS4-INI.png"); + } + &.movement { + background-image: url("#{$official-assets-path}/DS4-MR.png"); + } + &.meleeAttack { + background-image: url("#{$official-assets-path}/DS4-MAT.png"); + } + &.rangedAttack { + background-image: url("#{$official-assets-path}/DS4-RAT.png"); + } + &.spellcasting { + background-image: url("#{$official-assets-path}/DS4-SPC.png"); + } + &.targetedSpellcasting { + background-image: url("#{$official-assets-path}/DS4-TSC.png"); + } + } + + .combat-value-formula { + width: $size; + input { + text-align: center; + } + } + } +} diff --git a/src/templates/actor/actor-sheet.hbs b/src/templates/actor/actor-sheet.hbs index f288880e..475ce2fd 100644 --- a/src/templates/actor/actor-sheet.hbs +++ b/src/templates/actor/actor-sheet.hbs @@ -83,75 +83,8 @@ {{> systems/ds4/templates/actor/partials/attributes-traits.hbs}} + {{> systems/ds4/templates/actor/partials/combat-values.hbs}} -
-
-
{{data.combatValues.hitPoints.total}}
-
-
-
-
{{data.combatValues.defense.total}}
-
-
-
-
{{data.combatValues.initiative.total}}
-
-
-
-
{{data.combatValues.movement.total}}
-
-
-
-
{{data.combatValues.meleeAttack.total}}
-
-
-
-
{{data.combatValues.rangedAttack.total}}
-
-
-
-
{{data.combatValues.spellcasting.total}}
-
-
-
-
{{data.combatValues.targetedSpellcasting.total}} -
-
-
-
diff --git a/src/templates/actor/partials/combat-values.hbs b/src/templates/actor/partials/combat-values.hbs new file mode 100644 index 00000000..49bfd024 --- /dev/null +++ b/src/templates/actor/partials/combat-values.hbs @@ -0,0 +1,30 @@ +{{!-- ======================================================================== --}} +{{!-- INLINE PARTIAL DEFINITIONS --}} +{{!-- ======================================================================== --}} + +{{!-- +!-- Render a combat value. +!-- +!-- @param combat-value-key: The key of the combat value +!-- @param combat-value-data: The data for the attribute +--}} + +{{#*inline "combat-value"}} +
+
{{combat-value-data.total}} +
+
+
+
+{{/inline}} + +{{!-- ======================================================================== --}} + +
+ {{#each config.combatValues as |combat-value-label combat-value-key|}} + {{> combat-value combat-value-key=combat-value-key combat-value-data=(lookup ../data.combatValues + combat-value-key)}} + {{/each}} +