From 1de6801c37967115309895c4586e8d923d8b53bb Mon Sep 17 00:00:00 2001 From: Blaze Sanecki Date: Sun, 21 Dec 2025 21:08:54 +0100 Subject: [PATCH 01/14] Create icon-chat.svg --- LandOfEem/images/icon-chat.svg | 1 + 1 file changed, 1 insertion(+) create mode 100644 LandOfEem/images/icon-chat.svg diff --git a/LandOfEem/images/icon-chat.svg b/LandOfEem/images/icon-chat.svg new file mode 100644 index 0000000000..3fba11f003 --- /dev/null +++ b/LandOfEem/images/icon-chat.svg @@ -0,0 +1 @@ + \ No newline at end of file From 825e43dd01e8d4dabfaae5287a9455248c1db729 Mon Sep 17 00:00:00 2001 From: Blaze Sanecki Date: Sun, 21 Dec 2025 21:47:39 +0100 Subject: [PATCH 02/14] Add button to share ability name and description in the chat --- LandOfEem/landofeem.css | 61 ++++++++++++++++++++++++++++++++++------ LandOfEem/landofeem.html | 32 +++++++++++++++++++++ 2 files changed, 84 insertions(+), 9 deletions(-) diff --git a/LandOfEem/landofeem.css b/LandOfEem/landofeem.css index abbad35070..79cdd77122 100644 --- a/LandOfEem/landofeem.css +++ b/LandOfEem/landofeem.css @@ -125,7 +125,8 @@ div.container { } .sheet-rolltemplate-attack, -.sheet-rolltemplate-check { +.sheet-rolltemplate-check, +.sheet-rolltemplate-description { --sheet-primary-color: #cc9133; --sheet-background-color: #fff4e7; background-color: #ffffff; @@ -137,27 +138,31 @@ div.container { } .sheet-rolltemplate-attack:has(.sheet-adversary), -.sheet-rolltemplate-check:has(.sheet-adversary) { +.sheet-rolltemplate-check:has(.sheet-adversary), +.sheet-rolltemplate-description:has(.sheet-adversary) { --sheet-primary-color: #da3831; --sheet-background-color: #f9e7e4; } .sheet-rolltemplate-attack:has(.sheet-npc), -.sheet-rolltemplate-check:has(.sheet-npc) { +.sheet-rolltemplate-check:has(.sheet-npc), +.sheet-rolltemplate-description:has(.sheet-npc) { --sheet-primary-color: #2babe3; --sheet-background-color: #e7f4fb; } .sheet-rolltemplate-attack ul, -.sheet-rolltemplate-check ul { +.sheet-rolltemplate-check ul, +.sheet-rolltemplate-description ul { list-style: none; margin: 0; padding: 0; } .sheet-rolltemplate-attack h3, -.sheet-rolltemplate-check h3 { +.sheet-rolltemplate-check h3, +.sheet-rolltemplate-description h3 { padding: 8px; text-align: center; background-color: var(--sheet-background-color); @@ -166,7 +171,8 @@ div.container { } .sheet-rolltemplate-attack h4, -.sheet-rolltemplate-check h4 { +.sheet-rolltemplate-check h4, +.sheet-rolltemplate-description h4 { padding: 4px; font-size: 13px; font-weight: normal; @@ -174,7 +180,8 @@ div.container { } .sheet-rolltemplate-attack h5, -.sheet-rolltemplate-check h5 { +.sheet-rolltemplate-check h5, +.sheet-rolltemplate-description h5 { padding: 4px; font-size: 11px; font-weight: bold; @@ -185,7 +192,8 @@ div.container { } .sheet-rolltemplate-attack h2, -.sheet-rolltemplate-check h2 { +.sheet-rolltemplate-check h2, +.sheet-rolltemplate-description h2 { background-color: var(--sheet-primary-color); font-size: 14px; font-weight: 900; @@ -196,7 +204,8 @@ div.container { } .sheet-rolltemplate-attack h2 i, -.sheet-rolltemplate-check h2 i { +.sheet-rolltemplate-check h2 i, +.sheet-rolltemplate-description h2 i { font-size: 12px; font-weight: normal; text-transform: none; @@ -2046,4 +2055,38 @@ section.hint { display: block; text-align: center; padding-bottom: 6px; +} + +/* ===================================== */ + +/* Share Button */ + +/* ===================================== */ + +.btn-share { + width: 16px; + height: 16px; + border-radius: 4px; + padding: 0; + border: none; + background: transparent; + cursor: pointer; + vertical-align: middle; + position: absolute; + top: 3px; + right: 0; +} + +.btn-share div { + width: 100%; + height: 100%; + mask: url('https://raw.githubusercontent.com/blaze-sanecki/roll20-character-sheets/landofeem-chat-share/LandOfEem/images/icon-chat.svg'); + mask-size: contain; + mask-repeat: no-repeat; + mask-position: center; + background-color: var(--sheet-primary-color); +} + +.btn-share:hover div { + background-color: #000; } \ No newline at end of file diff --git a/LandOfEem/landofeem.html b/LandOfEem/landofeem.html index 48f93efa9a..7f0b373fe3 100644 --- a/LandOfEem/landofeem.html +++ b/LandOfEem/landofeem.html @@ -235,6 +235,9 @@ +
@@ -379,6 +382,9 @@ +
@@ -761,6 +767,19 @@
+ +
+

{{name}} ({{character}})

+
+
    +
  • +

    {{description}}

    +
  • +
+
+
+
+ @@ -777,6 +796,19 @@ buttonlist.forEach(button => { }) }) +//********* SKILL SHARE **********/ +on("clicked:repeating_skills:share", function(eventinfo) { + const rowId = eventinfo.sourceAttribute.split("_")[2] + getAttrs([`repeating_skills_${rowId}_skillname`, `repeating_skills_${rowId}_skilldescription`, "character_name"], async (values) => { + const skillName = values[`repeating_skills_${rowId}_skillname`] || "Unnamed Skill" + const skillDescription = values[`repeating_skills_${rowId}_skilldescription`] || "No description." + const characterName = values["character_name"] || "Unknown Character" + + const roll = await startRoll(`&{template:description} {{name=${skillName}}} {{character=${characterName}}} {{description=${skillDescription}}} {{ignore=[[0]]}}`); + finishRoll(roll.rollId); + }) +}) + //********* DEFINE SIGNED AND UNSIGNED ATTRIBUTES **********/ const signed = ["attack", "defense", "vim", "charm", "inspire", "mettle", "perception", "vigor", "athletics", "intimidate", "might", "vitality", "knack", "nimbleness", "search", "sneak", "trickery", "knowhow", "lore", "realms", "tinker", "wilderness", "treasure_hunting"]; const unsigned = ["courage", "courage_max", "quest_pts", "block", "inventory_slots", "inventory_slots_max", "material_number", "coins_copper", "coins_silver", "coins_gold", "coins_ancient", "rations_d6", "rations_d8", "rations_d10", "lv", "xp"]; From 312aa07a44fc09e069a9e55dd9dc1756713c45cb Mon Sep 17 00:00:00 2001 From: Blaze Sanecki Date: Sun, 21 Dec 2025 21:51:12 +0100 Subject: [PATCH 03/14] Add coloring of ability descriptions in chat --- LandOfEem/landofeem.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LandOfEem/landofeem.html b/LandOfEem/landofeem.html index 7f0b373fe3..a020d4961c 100644 --- a/LandOfEem/landofeem.html +++ b/LandOfEem/landofeem.html @@ -804,7 +804,7 @@ on("clicked:repeating_skills:share", function(eventinfo) { const skillDescription = values[`repeating_skills_${rowId}_skilldescription`] || "No description." const characterName = values["character_name"] || "Unknown Character" - const roll = await startRoll(`&{template:description} {{name=${skillName}}} {{character=${characterName}}} {{description=${skillDescription}}} {{ignore=[[0]]}}`); + const roll = await startRoll(`&{template:description} {{sheet_type=@{sheet_type}}} {{name=${skillName}}} {{character=${characterName}}} {{description=${skillDescription}}} {{ignore=[[0]]}}`); finishRoll(roll.rollId); }) }) From 9d5614d75c9bb666c3d3ddbf4e877a6ff22bcf74 Mon Sep 17 00:00:00 2001 From: Blaze Sanecki Date: Sun, 21 Dec 2025 21:55:34 +0100 Subject: [PATCH 04/14] Fix translation errors --- LandOfEem/translation.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/LandOfEem/translation.json b/LandOfEem/translation.json index b03526d414..a5bc541686 100644 --- a/LandOfEem/translation.json +++ b/LandOfEem/translation.json @@ -23,7 +23,7 @@ "attack": "Attack", "defense": "Defense", "quest": "Quest Pts.", - "name-and-pronouns": "Name & Pronouns", + "name-and-pronouns": "Name
& Pronouns", "name": "Name", "and-pronouns": "& Pronouns", "class": "Class", @@ -99,7 +99,7 @@ "hit": "Hit.", "critical-hit": "Critical Hit.", "modifier-clamped": "Modifier clamped to [-3..3] range.", - "damage": "Damage", + "damage": "Dread", "complete-failure": "Complete Failure.", "failure-with-a-plus": "Failure with a Plus.", "success-with-a-twist": "Success with a Twist.", @@ -134,7 +134,7 @@ "keywords": "Keywords", "preview": "Attributes", "detail": "Detail", - "definition": "Constraints", + "definition": "Initial Setup", "sizes": "Sizes:", "tiny": "Tiny", "small": "Small", From 70155c8dfc705408ea5f82a526aa8ff20f096827 Mon Sep 17 00:00:00 2001 From: Blaze Sanecki Date: Sun, 21 Dec 2025 22:02:22 +0100 Subject: [PATCH 05/14] Bump version number --- LandOfEem/landofeem.html | 2 +- LandOfEem/sheet.json | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/LandOfEem/landofeem.html b/LandOfEem/landofeem.html index a020d4961c..06538f42de 100644 --- a/LandOfEem/landofeem.html +++ b/LandOfEem/landofeem.html @@ -652,7 +652,7 @@
- +
diff --git a/LandOfEem/sheet.json b/LandOfEem/sheet.json index f5584f872e..0aa52ee02c 100644 --- a/LandOfEem/sheet.json +++ b/LandOfEem/sheet.json @@ -4,7 +4,6 @@ "authors": "Blaze Sanecki", "roll20userid": "10036432", "preview": "preview.png", - "instructions": "# Land Of Eem - Roll20 Character Sheet\n\n#### Version\n\nCurrent Version: 2.0.0\n\n## Features\n\n- **Custom design** matching the Land of Eem official character sheet aesthetic\n- **Expandable and Flexible Skill Lists** to better fit all of your character content\n- **Interactive rolls** with advantage/disadvantage support\n- **Auto-Recalculation** of abilities and stats when changing related attributes\n- **Optional modifier validation** (total modifier clamped to -3 and +3)\n- **Full Multi-language support** with English and Polish already implemented\n- **NPC Sheet type** for storing data about NPCs\n- **Adversary Sheet type** for storing data about Adversaries (with automated attack and mettle rolls)\n\n## Instructions\n**Selecting a PC Class**\n\n- Class input field has suggested values which correspond to Land of Eem core classes\n- Selecting a predefined class resets Courage and Dread to its defaults\n\n**Making a Roll**\n\n- Click on attribute, ability or stat name label to make a roll. Rollable elements will be underlined when you hover over them\n- Popup dialog will appear and let you apply Advantage or Disadvantage\n- Popup dialog will let you apply additional custom modifier\n- Calculated final modifier is clamped to -3 and +3 range (optional - can be disabled in sheet settings) and the roll result is displayed in the chat\n- You can still see the uncapped modifier when you hover over the roll result in the chat if needed\n\n**Changing the Sheet Type**\n\n- Go into the 'Settings' tab (right side of the navbar)\n- Choose between PC/NPC/Adversary from the type dropdown\n\n**Setting up the Adversary Sheet**\n\n- First fill in the options in the 'Constraints' tab\n- Fill in the 'Attack', 'Defense' and 'Wrangle'/'Parley' in the 'Attributes' tab\n- You can now choose level, class and size from the dropdowns in the 'Attributes' tab to recalculate the default 'Courage' and 'Mettle' that apply to your choices\n\n## Development\n\n#### Roadmap (TODO list)\n\n- Add interactive dice icons for making generic rolls\n- Buttons for consuming rations (automated usage die roll)\n- Buttons for spending coins (automated usage die roll)\n\n#### Credits\n\n**Character Sheet Created by**: Blaze Sanecki\n**Land of Eem Created By**: Ben Costa & James Parks \n**Official Land of Eem Website**: [landofeem.com](https://landofeem.com/)\n\nThis is an unofficial fan-made sheet created with the official blessing of the Land of Eem creators.\n\n#### License\n\nThis character sheet is a fan work created for use with The Land of Eem tabletop RPG. All Land of Eem intellectual property belongs to Ben Costa & James Parks.\n\n#### Fonts Used\n\n- Bird of Feather (replacement for the Blackriver font used in the Land of Eem rulebooks)\n- DM Sans (replacement for the New Atten font used in the Land of Eem rulebooks)\n\nAll used fonts are free for non-commercial use and allow being used as embeded online fonts.", - "patreon": "https://patreon.com/BearlyWorks", + "instructions": "# Land Of Eem - Roll20 Character Sheet\n\n#### Version\n\nCurrent Version: 2.1.0\n\n## Features\n\n- **Custom design** matching the Land of Eem official character sheet aesthetic\n- **Expandable and Flexible Skill Lists** to better fit all of your character content\n- **Interactive rolls** with advantage/disadvantage support\n- **Auto-Recalculation** of abilities and stats when changing related attributes\n- **Optional modifier validation** (total modifier clamped to -3 and +3)\n- **Full Multi-language support** with English and Polish already implemented\n- **NPC Sheet type** for storing data about NPCs\n- **Adversary Sheet type** for storing data about Adversaries (with automated attack and mettle rolls)\n\n## Instructions\n**Selecting a PC Class**\n\n- Class input field has suggested values which correspond to Land of Eem core classes\n- Selecting a predefined class resets Courage and Dread to its defaults\n\n**Making a Roll**\n\n- Click on attribute, ability or stat name label to make a roll. Rollable elements will be underlined when you hover over them\n- Popup dialog will appear and let you apply Advantage or Disadvantage\n- Popup dialog will let you apply additional custom modifier\n- Calculated final modifier is clamped to -3 and +3 range (optional - can be disabled in sheet settings) and the roll result is displayed in the chat\n- You can still see the uncapped modifier when you hover over the roll result in the chat if needed\n\n**Changing the Sheet Type**\n\n- Go into the 'Settings' tab (right side of the navbar)\n- Choose between PC/NPC/Adversary from the type dropdown\n\n**Setting up the Adversary Sheet**\n\n- First fill in the options in the 'Initial Setup' tab\n- Fill in the 'Attack', 'Defense' and 'Wrangle'/'Parley' in the 'Attributes' tab\n- You can now choose level, class and size from the dropdowns in the 'Attributes' tab to recalculate the default 'Courage' and 'Mettle' that apply to your choices\n\n## Development\n\n#### Roadmap (TODO list)\n\n- Add interactive dice icons for making generic rolls\n- Buttons for consuming rations (automated usage die roll)\n- Buttons for spending coins (automated usage die roll)\n\n#### Credits\n\n**Character Sheet Created by**: Blaze Sanecki\n**Land of Eem Created By**: Ben Costa & James Parks \n**Official Land of Eem Website**: [landofeem.com](https://landofeem.com/)\n\nThis is an unofficial fan-made sheet created with the official blessing of the Land of Eem creators.\n\n#### License\n\nThis character sheet is a fan work created for use with The Land of Eem tabletop RPG. All Land of Eem intellectual property belongs to Ben Costa & James Parks.\n\n#### Fonts Used\n\n- Bird of Feather (replacement for the Blackriver font used in the Land of Eem rulebooks)\n- DM Sans (replacement for the New Atten font used in the Land of Eem rulebooks)\n\nAll used fonts are free for non-commercial use and allow being used as embeded online fonts.\n\n#### Support My Work\n\nIf you like my work, consider buying me a [Monster Energy Drink](https://ko-fi.com/blazesanecki/).", "legacy": false } \ No newline at end of file From 8a678b8af3594ca04e8e1eba9eaf25e2a90c88a1 Mon Sep 17 00:00:00 2001 From: Blaze Sanecki Date: Sun, 21 Dec 2025 22:11:09 +0100 Subject: [PATCH 06/14] Revert "Create icon-chat.svg" This reverts commit 1de6801c37967115309895c4586e8d923d8b53bb. --- LandOfEem/images/icon-chat.svg | 1 - 1 file changed, 1 deletion(-) delete mode 100644 LandOfEem/images/icon-chat.svg diff --git a/LandOfEem/images/icon-chat.svg b/LandOfEem/images/icon-chat.svg deleted file mode 100644 index 3fba11f003..0000000000 --- a/LandOfEem/images/icon-chat.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file From 72a9b9ef0d9fd26ec8c2b4350e17c602e63c75a0 Mon Sep 17 00:00:00 2001 From: Blaze Sanecki Date: Sun, 21 Dec 2025 21:47:39 +0100 Subject: [PATCH 07/14] Add button to share ability name and description in the chat --- LandOfEem/landofeem.css | 61 ++++++++++++++++++++++++++++++++++------ LandOfEem/landofeem.html | 32 +++++++++++++++++++++ 2 files changed, 84 insertions(+), 9 deletions(-) diff --git a/LandOfEem/landofeem.css b/LandOfEem/landofeem.css index abbad35070..79cdd77122 100644 --- a/LandOfEem/landofeem.css +++ b/LandOfEem/landofeem.css @@ -125,7 +125,8 @@ div.container { } .sheet-rolltemplate-attack, -.sheet-rolltemplate-check { +.sheet-rolltemplate-check, +.sheet-rolltemplate-description { --sheet-primary-color: #cc9133; --sheet-background-color: #fff4e7; background-color: #ffffff; @@ -137,27 +138,31 @@ div.container { } .sheet-rolltemplate-attack:has(.sheet-adversary), -.sheet-rolltemplate-check:has(.sheet-adversary) { +.sheet-rolltemplate-check:has(.sheet-adversary), +.sheet-rolltemplate-description:has(.sheet-adversary) { --sheet-primary-color: #da3831; --sheet-background-color: #f9e7e4; } .sheet-rolltemplate-attack:has(.sheet-npc), -.sheet-rolltemplate-check:has(.sheet-npc) { +.sheet-rolltemplate-check:has(.sheet-npc), +.sheet-rolltemplate-description:has(.sheet-npc) { --sheet-primary-color: #2babe3; --sheet-background-color: #e7f4fb; } .sheet-rolltemplate-attack ul, -.sheet-rolltemplate-check ul { +.sheet-rolltemplate-check ul, +.sheet-rolltemplate-description ul { list-style: none; margin: 0; padding: 0; } .sheet-rolltemplate-attack h3, -.sheet-rolltemplate-check h3 { +.sheet-rolltemplate-check h3, +.sheet-rolltemplate-description h3 { padding: 8px; text-align: center; background-color: var(--sheet-background-color); @@ -166,7 +171,8 @@ div.container { } .sheet-rolltemplate-attack h4, -.sheet-rolltemplate-check h4 { +.sheet-rolltemplate-check h4, +.sheet-rolltemplate-description h4 { padding: 4px; font-size: 13px; font-weight: normal; @@ -174,7 +180,8 @@ div.container { } .sheet-rolltemplate-attack h5, -.sheet-rolltemplate-check h5 { +.sheet-rolltemplate-check h5, +.sheet-rolltemplate-description h5 { padding: 4px; font-size: 11px; font-weight: bold; @@ -185,7 +192,8 @@ div.container { } .sheet-rolltemplate-attack h2, -.sheet-rolltemplate-check h2 { +.sheet-rolltemplate-check h2, +.sheet-rolltemplate-description h2 { background-color: var(--sheet-primary-color); font-size: 14px; font-weight: 900; @@ -196,7 +204,8 @@ div.container { } .sheet-rolltemplate-attack h2 i, -.sheet-rolltemplate-check h2 i { +.sheet-rolltemplate-check h2 i, +.sheet-rolltemplate-description h2 i { font-size: 12px; font-weight: normal; text-transform: none; @@ -2046,4 +2055,38 @@ section.hint { display: block; text-align: center; padding-bottom: 6px; +} + +/* ===================================== */ + +/* Share Button */ + +/* ===================================== */ + +.btn-share { + width: 16px; + height: 16px; + border-radius: 4px; + padding: 0; + border: none; + background: transparent; + cursor: pointer; + vertical-align: middle; + position: absolute; + top: 3px; + right: 0; +} + +.btn-share div { + width: 100%; + height: 100%; + mask: url('https://raw.githubusercontent.com/blaze-sanecki/roll20-character-sheets/landofeem-chat-share/LandOfEem/images/icon-chat.svg'); + mask-size: contain; + mask-repeat: no-repeat; + mask-position: center; + background-color: var(--sheet-primary-color); +} + +.btn-share:hover div { + background-color: #000; } \ No newline at end of file diff --git a/LandOfEem/landofeem.html b/LandOfEem/landofeem.html index 48f93efa9a..7f0b373fe3 100644 --- a/LandOfEem/landofeem.html +++ b/LandOfEem/landofeem.html @@ -235,6 +235,9 @@ +
@@ -379,6 +382,9 @@ +
@@ -761,6 +767,19 @@
+ +
+

{{name}} ({{character}})

+
+
    +
  • +

    {{description}}

    +
  • +
+
+
+
+ @@ -777,6 +796,19 @@ buttonlist.forEach(button => { }) }) +//********* SKILL SHARE **********/ +on("clicked:repeating_skills:share", function(eventinfo) { + const rowId = eventinfo.sourceAttribute.split("_")[2] + getAttrs([`repeating_skills_${rowId}_skillname`, `repeating_skills_${rowId}_skilldescription`, "character_name"], async (values) => { + const skillName = values[`repeating_skills_${rowId}_skillname`] || "Unnamed Skill" + const skillDescription = values[`repeating_skills_${rowId}_skilldescription`] || "No description." + const characterName = values["character_name"] || "Unknown Character" + + const roll = await startRoll(`&{template:description} {{name=${skillName}}} {{character=${characterName}}} {{description=${skillDescription}}} {{ignore=[[0]]}}`); + finishRoll(roll.rollId); + }) +}) + //********* DEFINE SIGNED AND UNSIGNED ATTRIBUTES **********/ const signed = ["attack", "defense", "vim", "charm", "inspire", "mettle", "perception", "vigor", "athletics", "intimidate", "might", "vitality", "knack", "nimbleness", "search", "sneak", "trickery", "knowhow", "lore", "realms", "tinker", "wilderness", "treasure_hunting"]; const unsigned = ["courage", "courage_max", "quest_pts", "block", "inventory_slots", "inventory_slots_max", "material_number", "coins_copper", "coins_silver", "coins_gold", "coins_ancient", "rations_d6", "rations_d8", "rations_d10", "lv", "xp"]; From f98b1a277a23dd02b4e7b50b195a7a912ea253cb Mon Sep 17 00:00:00 2001 From: Blaze Sanecki Date: Sun, 21 Dec 2025 21:51:12 +0100 Subject: [PATCH 08/14] Add coloring of ability descriptions in chat --- LandOfEem/landofeem.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LandOfEem/landofeem.html b/LandOfEem/landofeem.html index 7f0b373fe3..a020d4961c 100644 --- a/LandOfEem/landofeem.html +++ b/LandOfEem/landofeem.html @@ -804,7 +804,7 @@ on("clicked:repeating_skills:share", function(eventinfo) { const skillDescription = values[`repeating_skills_${rowId}_skilldescription`] || "No description." const characterName = values["character_name"] || "Unknown Character" - const roll = await startRoll(`&{template:description} {{name=${skillName}}} {{character=${characterName}}} {{description=${skillDescription}}} {{ignore=[[0]]}}`); + const roll = await startRoll(`&{template:description} {{sheet_type=@{sheet_type}}} {{name=${skillName}}} {{character=${characterName}}} {{description=${skillDescription}}} {{ignore=[[0]]}}`); finishRoll(roll.rollId); }) }) From c10e84a1332eb553467a71e68a9f475be152dae4 Mon Sep 17 00:00:00 2001 From: Blaze Sanecki Date: Sun, 21 Dec 2025 21:55:34 +0100 Subject: [PATCH 09/14] Fix translation errors --- LandOfEem/translation.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/LandOfEem/translation.json b/LandOfEem/translation.json index b03526d414..a5bc541686 100644 --- a/LandOfEem/translation.json +++ b/LandOfEem/translation.json @@ -23,7 +23,7 @@ "attack": "Attack", "defense": "Defense", "quest": "Quest Pts.", - "name-and-pronouns": "Name & Pronouns", + "name-and-pronouns": "Name
& Pronouns", "name": "Name", "and-pronouns": "& Pronouns", "class": "Class", @@ -99,7 +99,7 @@ "hit": "Hit.", "critical-hit": "Critical Hit.", "modifier-clamped": "Modifier clamped to [-3..3] range.", - "damage": "Damage", + "damage": "Dread", "complete-failure": "Complete Failure.", "failure-with-a-plus": "Failure with a Plus.", "success-with-a-twist": "Success with a Twist.", @@ -134,7 +134,7 @@ "keywords": "Keywords", "preview": "Attributes", "detail": "Detail", - "definition": "Constraints", + "definition": "Initial Setup", "sizes": "Sizes:", "tiny": "Tiny", "small": "Small", From 9f2bae9340c4b16a29b2a02abb4d5b482c650394 Mon Sep 17 00:00:00 2001 From: Blaze Sanecki Date: Sun, 21 Dec 2025 22:02:22 +0100 Subject: [PATCH 10/14] Bump version number --- LandOfEem/landofeem.html | 2 +- LandOfEem/sheet.json | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/LandOfEem/landofeem.html b/LandOfEem/landofeem.html index a020d4961c..06538f42de 100644 --- a/LandOfEem/landofeem.html +++ b/LandOfEem/landofeem.html @@ -652,7 +652,7 @@
- +
diff --git a/LandOfEem/sheet.json b/LandOfEem/sheet.json index f5584f872e..0aa52ee02c 100644 --- a/LandOfEem/sheet.json +++ b/LandOfEem/sheet.json @@ -4,7 +4,6 @@ "authors": "Blaze Sanecki", "roll20userid": "10036432", "preview": "preview.png", - "instructions": "# Land Of Eem - Roll20 Character Sheet\n\n#### Version\n\nCurrent Version: 2.0.0\n\n## Features\n\n- **Custom design** matching the Land of Eem official character sheet aesthetic\n- **Expandable and Flexible Skill Lists** to better fit all of your character content\n- **Interactive rolls** with advantage/disadvantage support\n- **Auto-Recalculation** of abilities and stats when changing related attributes\n- **Optional modifier validation** (total modifier clamped to -3 and +3)\n- **Full Multi-language support** with English and Polish already implemented\n- **NPC Sheet type** for storing data about NPCs\n- **Adversary Sheet type** for storing data about Adversaries (with automated attack and mettle rolls)\n\n## Instructions\n**Selecting a PC Class**\n\n- Class input field has suggested values which correspond to Land of Eem core classes\n- Selecting a predefined class resets Courage and Dread to its defaults\n\n**Making a Roll**\n\n- Click on attribute, ability or stat name label to make a roll. Rollable elements will be underlined when you hover over them\n- Popup dialog will appear and let you apply Advantage or Disadvantage\n- Popup dialog will let you apply additional custom modifier\n- Calculated final modifier is clamped to -3 and +3 range (optional - can be disabled in sheet settings) and the roll result is displayed in the chat\n- You can still see the uncapped modifier when you hover over the roll result in the chat if needed\n\n**Changing the Sheet Type**\n\n- Go into the 'Settings' tab (right side of the navbar)\n- Choose between PC/NPC/Adversary from the type dropdown\n\n**Setting up the Adversary Sheet**\n\n- First fill in the options in the 'Constraints' tab\n- Fill in the 'Attack', 'Defense' and 'Wrangle'/'Parley' in the 'Attributes' tab\n- You can now choose level, class and size from the dropdowns in the 'Attributes' tab to recalculate the default 'Courage' and 'Mettle' that apply to your choices\n\n## Development\n\n#### Roadmap (TODO list)\n\n- Add interactive dice icons for making generic rolls\n- Buttons for consuming rations (automated usage die roll)\n- Buttons for spending coins (automated usage die roll)\n\n#### Credits\n\n**Character Sheet Created by**: Blaze Sanecki\n**Land of Eem Created By**: Ben Costa & James Parks \n**Official Land of Eem Website**: [landofeem.com](https://landofeem.com/)\n\nThis is an unofficial fan-made sheet created with the official blessing of the Land of Eem creators.\n\n#### License\n\nThis character sheet is a fan work created for use with The Land of Eem tabletop RPG. All Land of Eem intellectual property belongs to Ben Costa & James Parks.\n\n#### Fonts Used\n\n- Bird of Feather (replacement for the Blackriver font used in the Land of Eem rulebooks)\n- DM Sans (replacement for the New Atten font used in the Land of Eem rulebooks)\n\nAll used fonts are free for non-commercial use and allow being used as embeded online fonts.", - "patreon": "https://patreon.com/BearlyWorks", + "instructions": "# Land Of Eem - Roll20 Character Sheet\n\n#### Version\n\nCurrent Version: 2.1.0\n\n## Features\n\n- **Custom design** matching the Land of Eem official character sheet aesthetic\n- **Expandable and Flexible Skill Lists** to better fit all of your character content\n- **Interactive rolls** with advantage/disadvantage support\n- **Auto-Recalculation** of abilities and stats when changing related attributes\n- **Optional modifier validation** (total modifier clamped to -3 and +3)\n- **Full Multi-language support** with English and Polish already implemented\n- **NPC Sheet type** for storing data about NPCs\n- **Adversary Sheet type** for storing data about Adversaries (with automated attack and mettle rolls)\n\n## Instructions\n**Selecting a PC Class**\n\n- Class input field has suggested values which correspond to Land of Eem core classes\n- Selecting a predefined class resets Courage and Dread to its defaults\n\n**Making a Roll**\n\n- Click on attribute, ability or stat name label to make a roll. Rollable elements will be underlined when you hover over them\n- Popup dialog will appear and let you apply Advantage or Disadvantage\n- Popup dialog will let you apply additional custom modifier\n- Calculated final modifier is clamped to -3 and +3 range (optional - can be disabled in sheet settings) and the roll result is displayed in the chat\n- You can still see the uncapped modifier when you hover over the roll result in the chat if needed\n\n**Changing the Sheet Type**\n\n- Go into the 'Settings' tab (right side of the navbar)\n- Choose between PC/NPC/Adversary from the type dropdown\n\n**Setting up the Adversary Sheet**\n\n- First fill in the options in the 'Initial Setup' tab\n- Fill in the 'Attack', 'Defense' and 'Wrangle'/'Parley' in the 'Attributes' tab\n- You can now choose level, class and size from the dropdowns in the 'Attributes' tab to recalculate the default 'Courage' and 'Mettle' that apply to your choices\n\n## Development\n\n#### Roadmap (TODO list)\n\n- Add interactive dice icons for making generic rolls\n- Buttons for consuming rations (automated usage die roll)\n- Buttons for spending coins (automated usage die roll)\n\n#### Credits\n\n**Character Sheet Created by**: Blaze Sanecki\n**Land of Eem Created By**: Ben Costa & James Parks \n**Official Land of Eem Website**: [landofeem.com](https://landofeem.com/)\n\nThis is an unofficial fan-made sheet created with the official blessing of the Land of Eem creators.\n\n#### License\n\nThis character sheet is a fan work created for use with The Land of Eem tabletop RPG. All Land of Eem intellectual property belongs to Ben Costa & James Parks.\n\n#### Fonts Used\n\n- Bird of Feather (replacement for the Blackriver font used in the Land of Eem rulebooks)\n- DM Sans (replacement for the New Atten font used in the Land of Eem rulebooks)\n\nAll used fonts are free for non-commercial use and allow being used as embeded online fonts.\n\n#### Support My Work\n\nIf you like my work, consider buying me a [Monster Energy Drink](https://ko-fi.com/blazesanecki/).", "legacy": false } \ No newline at end of file From 408d6ac1a114a65c6882890be52e811677dbc146 Mon Sep 17 00:00:00 2001 From: Blaze Sanecki Date: Sun, 21 Dec 2025 22:14:29 +0100 Subject: [PATCH 11/14] Re-Add icon-chat.svg --- LandOfEem/images/icon-chat.svg | 1 + 1 file changed, 1 insertion(+) create mode 100644 LandOfEem/images/icon-chat.svg diff --git a/LandOfEem/images/icon-chat.svg b/LandOfEem/images/icon-chat.svg new file mode 100644 index 0000000000..3fba11f003 --- /dev/null +++ b/LandOfEem/images/icon-chat.svg @@ -0,0 +1 @@ + \ No newline at end of file From a19d729142fed3b0b784417fdf4674a24193e630 Mon Sep 17 00:00:00 2001 From: Blaze Sanecki Date: Sun, 21 Dec 2025 23:00:31 +0100 Subject: [PATCH 12/14] Fix icon-chat.svg reference to the new location --- LandOfEem/landofeem.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LandOfEem/landofeem.css b/LandOfEem/landofeem.css index 79cdd77122..8a87d19a24 100644 --- a/LandOfEem/landofeem.css +++ b/LandOfEem/landofeem.css @@ -2080,7 +2080,7 @@ section.hint { .btn-share div { width: 100%; height: 100%; - mask: url('https://raw.githubusercontent.com/blaze-sanecki/roll20-character-sheets/landofeem-chat-share/LandOfEem/images/icon-chat.svg'); + mask: url('https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/LandOfEem/images/icon-chat.svg'); mask-size: contain; mask-repeat: no-repeat; mask-position: center; From 37d0b8e5a5083ab273100e68360d8a66d03661b6 Mon Sep 17 00:00:00 2001 From: Blaze Sanecki Date: Mon, 22 Dec 2025 01:07:16 +0100 Subject: [PATCH 13/14] Update personal link --- LandOfEem/landofeem.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LandOfEem/landofeem.html b/LandOfEem/landofeem.html index 06538f42de..bc9b30bf91 100644 --- a/LandOfEem/landofeem.html +++ b/LandOfEem/landofeem.html @@ -648,7 +648,7 @@
From a9fe92867c654f8b3987bf1355b9db4b9540d64b Mon Sep 17 00:00:00 2001 From: Blaze Sanecki Date: Mon, 22 Dec 2025 11:38:20 +0100 Subject: [PATCH 14/14] Fix misspelled attribute (attr_actions to attr_adversary_actions) --- LandOfEem/landofeem.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/LandOfEem/landofeem.html b/LandOfEem/landofeem.html index bc9b30bf91..9d11e2abb9 100644 --- a/LandOfEem/landofeem.html +++ b/LandOfEem/landofeem.html @@ -184,7 +184,7 @@

Actions

- 1 + 1
-
@@ -1428,4 +1428,4 @@ on("clicked:attack", async () => { }) }) }) - \ No newline at end of file +