From 1ed54dccff16df11d36174ede726c37c290c7fd9 Mon Sep 17 00:00:00 2001 From: Gesina Schwalbe Date: Tue, 29 Dec 2020 23:58:45 +0100 Subject: [PATCH 1/5] replaced " by ' in HBS localize arguments --- src/templates/actor/partials/items.hbs | 93 ++++++++++++++------------ 1 file changed, 49 insertions(+), 44 deletions(-) diff --git a/src/templates/actor/partials/items.hbs b/src/templates/actor/partials/items.hbs index 2e773eba..6b48fe37 100644 --- a/src/templates/actor/partials/items.hbs +++ b/src/templates/actor/partials/items.hbs @@ -3,26 +3,28 @@
{{!-- WEAPONS --}} -

{{localize "DS4.ItemTypeWeapon"}}

{{!-- SPECIFIC --}} +

{{localize 'DS4.ItemTypeWeapon'}}

{{!-- SPECIFIC --}}
  1. -
    E
    {{!-- equipped --}} {{!-- SPECIFIC --}} +
    E
    {{!-- equipped --}} {{!-- SPECIFIC --}}
    -
    #
    {{!-- amount --}} +
    #
    {{!-- amount --}}
    -
    {{localize "DS4.ItemName"}}
    -
    {{localize "DS4.AttackTypeAbbr"}}
    {{!-- SPECIFIC --}} +
    {{localize 'DS4.ItemName'}}
    +
    {{localize 'DS4.AttackTypeAbbr'}}
    {{!-- SPECIFIC --}}
    -
    {{localize "DS4.WeaponBonusAbbr"}}
    {{!-- SPECIFIC --}} -
    {{localize "DS4.OpponentDefenseAbbr"}}
    {{!-- SPECIFIC --}} +
    {{localize 'DS4.WeaponBonusAbbr'}} +
    {{!-- SPECIFIC --}} +
    {{localize + 'DS4.OpponentDefenseAbbr'}}
    {{!-- SPECIFIC --}}
    -
    {{localize "DS4.Description"}}
    +
    {{localize 'DS4.Description'}}
    {{!-- add button --}}
    {{!-- SPECIFIC --}} - + - {{localize "DS4.UserInteractionAddItem"}} + {{localize 'DS4.UserInteractionAddItem'}}
  2. {{#each itemsByType.weapon as |item id|}} {{!-- SPECIFIC --}} @@ -61,24 +63,26 @@
{{!-- ARMOR --}} -

{{localize "DS4.ItemTypeArmor"}}

{{!-- SPECIFIC --}} +

{{localize 'DS4.ItemTypeArmor'}}

{{!-- SPECIFIC --}}
  1. -
    E
    {{!-- equipped --}} {{!-- SPECIFIC --}} +
    E
    {{!-- equipped --}} {{!-- SPECIFIC --}}
    -
    #
    {{!-- amount --}} +
    #
    {{!-- amount --}}
    -
    {{localize "DS4.ItemName"}}
    -
    {{localize "DS4.ArmorMaterialTypeAbbr"}}
    {{!-- SPECIFIC --}} -
    {{localize "DS4.ArmorTypeAbbr"}}
    {{!-- SPECIFIC --}} -
    {{localize "DS4.ArmorValueAbbr"}}
    {{!-- SPECIFIC --}} -
    {{localize "DS4.Description"}}
    +
    {{localize 'DS4.ItemName'}}
    +
    {{localize 'DS4.ArmorMaterialTypeAbbr'}}
    {{!-- + SPECIFIC --}} +
    {{localize 'DS4.ArmorTypeAbbr'}}
    {{!-- SPECIFIC --}} +
    {{localize 'DS4.ArmorValueAbbr'}} +
    {{!-- SPECIFIC --}} +
    {{localize 'DS4.Description'}}
    {{!-- add button --}}
    {{!-- SPECIFIC --}} - + - {{localize "DS4.UserInteractionAddItem"}} + {{localize 'DS4.UserInteractionAddItem'}}
  2. {{#each itemsByType.armor as |item id|}} {{!-- SPECIFIC --}} @@ -116,22 +120,23 @@ {{!-- SHIELD --}} -

    {{localize "DS4.ItemTypeShield"}}

    {{!-- SPECIFIC --}} +

    {{localize 'DS4.ItemTypeShield'}}

    {{!-- SPECIFIC --}}
    1. -
      E
      {{!-- equipped --}} {{!-- SPECIFIC --}} +
      E
      {{!-- equipped --}} {{!-- SPECIFIC --}}
      -
      #
      {{!-- amount --}} +
      #
      {{!-- amount --}}
      -
      {{localize "DS4.ItemName"}}
      -
      {{localize "DS4.ArmorValueAbbr"}}
      {{!-- SPECIFIC --}} -
      {{localize "DS4.Description"}}
      +
      {{localize 'DS4.ItemName'}}
      +
      {{localize 'DS4.ArmorValueAbbr'}} +
      {{!-- SPECIFIC --}} +
      {{localize 'DS4.Description'}}
      {{!-- add button --}}
      {{!-- SPECIFIC --}} - + - {{localize "DS4.UserInteractionAddItem"}} + {{localize 'DS4.UserInteractionAddItem'}}
    2. {{#each itemsByType.shield as |item id|}} {{!-- SPECIFIC --}} @@ -166,22 +171,22 @@
    {{!-- TRINKET --}} -

    {{localize "DS4.ItemTypeTrinket"}}

    {{!-- SPECIFIC --}} +

    {{localize 'DS4.ItemTypeTrinket'}}

    {{!-- SPECIFIC --}}
    1. -
      E
      {{!-- equipped --}} {{!-- SPECIFIC --}} +
      E
      {{!-- equipped --}} {{!-- SPECIFIC --}}
      -
      #
      {{!-- amount --}} +
      #
      {{!-- amount --}}
      -
      {{localize "DS4.ItemName"}}
      -
      {{localize "DS4.StorageLocation"}}
      {{!-- SPECIFIC --}} -
      {{localize "DS4.Description"}}
      +
      {{localize 'DS4.ItemName'}}
      +
      {{localize 'DS4.StorageLocation'}}
      {{!-- SPECIFIC --}} +
      {{localize 'DS4.Description'}}
      {{!-- add button --}}
      {{!-- SPECIFIC --}} - + - {{localize "DS4.UserInteractionAddItem"}} + {{localize 'DS4.UserInteractionAddItem'}}
    2. {{#each itemsByType.trinket as |item id|}} {{!-- SPECIFIC --}} @@ -202,7 +207,7 @@ {{!-- name --}}

      {{item.name}}

      {{!-- storage location --}} -
      {{{itemData.storageLocation}}}
      {{!-- SPECIFIC --}} +
      {{{itemData.storageLocation}}}
      {{!-- SPECIFIC --}} {{!-- description --}}
      {{{itemData.description}}}
      {{!-- edit & delete buttons --}} @@ -216,21 +221,21 @@
    {{!-- EQUIPMENT --}} -

    {{localize "DS4.ItemTypeEquipment"}}

    {{!-- SPECIFIC --}} +

    {{localize 'DS4.ItemTypeEquipment'}}

    {{!-- SPECIFIC --}}
    1. -
      #
      {{!-- amount --}} +
      #
      {{!-- amount --}}
      -
      {{localize "DS4.ItemName"}}
      -
      {{localize "DS4.StorageLocation"}}
      {{!-- SPECIFIC --}} -
      {{localize "DS4.Description"}}
      +
      {{localize 'DS4.ItemName'}}
      +
      {{localize 'DS4.StorageLocation'}}
      {{!-- SPECIFIC --}} +
      {{localize 'DS4.Description'}}
      {{!-- add button --}}
      {{!-- SPECIFIC --}} - {{localize "DS4.UserInteractionAddItem"}} + {{localize 'DS4.UserInteractionAddItem'}}
    2. {{#each itemsByType.equipment as |item id|}} {{!-- SPECIFIC --}} @@ -247,7 +252,7 @@ {{!-- name --}}

      {{item.name}}

      {{!-- storage location --}} -
      {{{itemData.storageLocation}}}
      {{!-- SPECIFIC --}} +
      {{{itemData.storageLocation}}}
      {{!-- SPECIFIC --}} {{!-- description --}}
      {{{itemData.description}}}
      {{!-- edit & delete buttons --}} From 0b93f5ff9e3b2e21b57ba02bd1b80edccb09c542 Mon Sep 17 00:00:00 2001 From: Gesina Schwalbe Date: Wed, 30 Dec 2020 00:01:41 +0100 Subject: [PATCH 2/5] replaced attack type str with icons in char sheet --- src/assets/DS4-MAT.png | Bin 0 -> 15367 bytes src/assets/DS4-MRA.png | Bin 0 -> 14537 bytes src/assets/DS4-RAT.png | Bin 0 -> 14257 bytes src/module/config.ts | 10 ++++++++++ src/templates/actor/partials/items.hbs | 6 +++++- 5 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 src/assets/DS4-MAT.png create mode 100644 src/assets/DS4-MRA.png create mode 100644 src/assets/DS4-RAT.png diff --git a/src/assets/DS4-MAT.png b/src/assets/DS4-MAT.png new file mode 100644 index 0000000000000000000000000000000000000000..09e41dfcbb5a8fb20f8f4baa1eaf352a12506537 GIT binary patch literal 15367 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 literal 0 HcmV?d00001 diff --git a/src/assets/DS4-RAT.png b/src/assets/DS4-RAT.png new file mode 100644 index 0000000000000000000000000000000000000000..c292458d94e3c2ef557fbe10012507e5b0388da2 GIT binary patch literal 14257 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 AfB*mh literal 0 HcmV?d00001 diff --git a/src/module/config.ts b/src/module/config.ts index 07c97ca1..0b0720fd 100644 --- a/src/module/config.ts +++ b/src/module/config.ts @@ -66,4 +66,14 @@ export const DS4 = { chain: "DS4.ArmorMaterialTypeChain", plate: "DS4.ArmorMaterialTypePlate", }, + + /** + * * Define the file paths to icon images + * @type {Object} + */ + attackTypesIcons: { + melee: "systems/ds4/assets/DS4-MAT.png", + meleeRanged: "systems/ds4/assets/DS4-MRA.png", + ranged: "systems/ds4/assets/DS4-RAT.png", + }, }; diff --git a/src/templates/actor/partials/items.hbs b/src/templates/actor/partials/items.hbs index 6b48fe37..22ddfe40 100644 --- a/src/templates/actor/partials/items.hbs +++ b/src/templates/actor/partials/items.hbs @@ -45,7 +45,11 @@ {{!-- name --}}

      {{item.name}}

      {{!-- item specifics --}} -
      {{lookup ../../config.attackTypes itemData.attackType}}
      {{!-- SPECIFIC --}} +
      + +
      {{!-- SPECIFIC --}}
      {{itemData.weaponBonus}}
      {{!-- SPECIFIC --}}
      {{itemData.opponentDefense}}
      {{!-- SPECIFIC --}} From 9da168afa69c788a6862ac84ae8fdc38ae099a7d Mon Sep 17 00:00:00 2001 From: Gesina Schwalbe Date: Wed, 30 Dec 2020 01:03:06 +0100 Subject: [PATCH 3/5] abbr for armor type&material in item overview Additions: - further abbreviations included in localization Changes: - now not full armor type / material expression displayed in char sheet, but only an abbreviation with tooltip - description now smaller for weapon and armor --- src/lang/en.json | 11 ++++++++- src/module/config.ts | 33 ++++++++++++++++++++++---- src/module/ds4.ts | 10 +++++++- src/templates/actor/partials/items.hbs | 15 ++++++++---- 4 files changed, 57 insertions(+), 12 deletions(-) diff --git a/src/lang/en.json b/src/lang/en.json index b7c84f1d..601ffc37 100644 --- a/src/lang/en.json +++ b/src/lang/en.json @@ -38,12 +38,21 @@ "DS4.ArmorValue": "Armor Value", "DS4.ArmorValueAbbr": "AV", "DS4.ArmorTypeBody": "Body", + "DS4.ArmorTypeBodyAbbr": "Body", "DS4.ArmorTypeHelmet": "Helmet", + "DS4.ArmorTypeHelmetAbbr": "Helm", "DS4.ArmorTypeVambrace": "Vambrace", + "DS4.ArmorTypeVambraceAbbr": "Vambr", "DS4.ArmorTypeGreaves": "Greaves", + "DS4.ArmorTypeGreavesAbbr": "Greav", "DS4.ArmorTypeVambraceGreaves": "Vambrace + Greaves", + "DS4.ArmorTypeVambraceGreavesAbbr": "V+G", "DS4.ArmorMaterialTypeCloth": "Cloth", + "DS4.ArmorMaterialTypeClothAbbr": "Cloth", "DS4.ArmorMaterialTypeLeather": "Leather", + "DS4.ArmorMaterialTypeLeatherAbbr": "Leath", "DS4.ArmorMaterialTypeChain": "Chain", - "DS4.ArmorMaterialTypePlate": "Plate" + "DS4.ArmorMaterialTypeChainAbbr": "Chain", + "DS4.ArmorMaterialTypePlate": "Plate", + "DS4.ArmorMaterialTypePlateAbbr": "Plate" } diff --git a/src/module/config.ts b/src/module/config.ts index 0b0720fd..3ea52ba3 100644 --- a/src/module/config.ts +++ b/src/module/config.ts @@ -18,6 +18,16 @@ export const DS4 = { meleeRanged: "DS4.AttackTypeMeleeRanged", }, + /** + * * Define the file paths to icon images + * @type {Object} + */ + attackTypesIcons: { + melee: "systems/ds4/assets/DS4-MAT.png", + meleeRanged: "systems/ds4/assets/DS4-MRA.png", + ranged: "systems/ds4/assets/DS4-RAT.png", + }, + /** * Define the set of item availabilties * @type {Object} @@ -56,6 +66,18 @@ export const DS4 = { vambraceGreaves: "DS4.ArmorTypeVambraceGreaves", }, + /** + * * Define abbreviations for the armor types + * @type {Object} + */ + armorTypesAbbr: { + body: "DS4.ArmorTypeBodyAbbr", + helmet: "DS4.ArmorTypeHelmetAbbr", + vambrace: "DS4.ArmorTypeVambraceAbbr", + greaves: "DS4.ArmorTypeGreavesAbbr", + vambraceGreaves: "DS4.ArmorTypeVambraceGreavesAbbr", + }, + /** * * Define the set of armor materials, used to determine if a characer may wear the armor without additional penalties * @type {Object} @@ -68,12 +90,13 @@ export const DS4 = { }, /** - * * Define the file paths to icon images + * * Define the abbreviations of armor materials * @type {Object} */ - attackTypesIcons: { - melee: "systems/ds4/assets/DS4-MAT.png", - meleeRanged: "systems/ds4/assets/DS4-MRA.png", - ranged: "systems/ds4/assets/DS4-RAT.png", + armorMaterialTypesAbbr: { + cloth: "DS4.ArmorMaterialTypeClothAbbr", + leather: "DS4.ArmorMaterialTypeLeatherAbbr", + chain: "DS4.ArmorMaterialTypeChainAbbr", + plate: "DS4.ArmorMaterialTypePlateAbbr", }, }; diff --git a/src/module/ds4.ts b/src/module/ds4.ts index 09899c42..5cf5d4a0 100644 --- a/src/module/ds4.ts +++ b/src/module/ds4.ts @@ -50,7 +50,15 @@ async function registerHandlebarsPartials() { */ Hooks.once("setup", function () { // Localize CONFIG objects once up-front - const toLocalize = ["attackTypes", "itemAvailabilities", "itemTypes", "armorTypes", "armorMaterialTypes"]; + const toLocalize = [ + "attackTypes", + "itemAvailabilities", + "itemTypes", + "armorTypes", + "armorTypesAbbr", + "armorMaterialTypes", + "armorMaterialTypesAbbr", + ]; // Exclude some from sorting where the default order matters const noSort = []; diff --git a/src/templates/actor/partials/items.hbs b/src/templates/actor/partials/items.hbs index 22ddfe40..efde82c2 100644 --- a/src/templates/actor/partials/items.hbs +++ b/src/templates/actor/partials/items.hbs @@ -79,9 +79,10 @@
      {{localize 'DS4.ArmorMaterialTypeAbbr'}}
      {{!-- SPECIFIC --}}
      {{localize 'DS4.ArmorTypeAbbr'}}
      {{!-- SPECIFIC --}} -
      {{localize 'DS4.ArmorValueAbbr'}} +
      + {{localize 'DS4.ArmorValueAbbr'}}
      {{!-- SPECIFIC --}} -
      {{localize 'DS4.Description'}}
      +
      {{localize 'DS4.Description'}}
      {{!-- add button --}}
      {{!-- SPECIFIC --}} @@ -107,11 +108,15 @@ {{!-- name --}}

      {{item.name}}

      {{!-- item specifics --}} -
      {{lookup ../../config.armorMaterialTypes itemData.armorMaterialType}}
      {{!-- SPECIFIC --}} -
      {{lookup ../../config.armorTypes itemData.armorType}}
      {{!-- SPECIFIC --}} +
      + {{lookup ../../config.armorMaterialTypesAbbr itemData.armorMaterialType}} +
      {{!-- SPECIFIC --}} +
      + {{lookup ../../config.armorTypesAbbr itemData.armorType}} +
      {{!-- SPECIFIC --}}
      {{itemData.armorValue}}
      {{!-- SPECIFIC --}} {{!-- description --}} -
      {{{itemData.description}}}
      +
      {{{itemData.description}}}
      {{!-- edit & delete buttons --}}
      From 94430ab8995b1f9037481890eb3144d94eafcc6f Mon Sep 17 00:00:00 2001 From: Gesina Schwalbe Date: Wed, 30 Dec 2020 01:06:21 +0100 Subject: [PATCH 4/5] removed border from item icons --- src/scss/components/_items.scss | 1 + 1 file changed, 1 insertion(+) diff --git a/src/scss/components/_items.scss b/src/scss/components/_items.scss index 9c725e83..d35a84a5 100644 --- a/src/scss/components/_items.scss +++ b/src/scss/components/_items.scss @@ -21,6 +21,7 @@ img { display: block; + border: none; } } From d45917c414305187a63fa662755cd2d8bfa6b073 Mon Sep 17 00:00:00 2001 From: Johannes Loher Date: Wed, 30 Dec 2020 14:46:08 +0100 Subject: [PATCH 5/5] remove unnecessary comment --- src/templates/actor/partials/items.hbs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/templates/actor/partials/items.hbs b/src/templates/actor/partials/items.hbs index efde82c2..1c72cd46 100644 --- a/src/templates/actor/partials/items.hbs +++ b/src/templates/actor/partials/items.hbs @@ -46,8 +46,7 @@

      {{item.name}}

      {{!-- item specifics --}}
      -
      {{!-- SPECIFIC --}}