Compare commits

..

1 commit
1.2.1 ... main

Author SHA1 Message Date
3b2ff4b436
added support for multiple experiences 2026-01-25 17:46:04 +01:00
2 changed files with 26 additions and 11 deletions

View file

@ -1,7 +1,7 @@
{ {
"id": "dh-importer", "id": "dh-importer",
"title": "Daggerheart Statblock Importer", "title": "Daggerheart Statblock Importer",
"version": "1.2.1", "version": "1.2.2",
"compatibility": { "compatibility": {
"minimum": "13", "minimum": "13",
"verified": "13" "verified": "13"
@ -34,5 +34,5 @@
"description": "Imports Adversaries and Environments from text blocks into the Daggerheart system.", "description": "Imports Adversaries and Environments from text blocks into the Daggerheart system.",
"url": "https://github.com/cptn-cosmo/dh-importer", "url": "https://github.com/cptn-cosmo/dh-importer",
"manifest": "https://git.geeks.gay/cosmo/dh-importer/raw/branch/main/module.json", "manifest": "https://git.geeks.gay/cosmo/dh-importer/raw/branch/main/module.json",
"download": "https://git.geeks.gay/cosmo/dh-importer/releases/download/1.2.1/dh-importer.zip" "download": "https://git.geeks.gay/cosmo/dh-importer/releases/download/1.2.2/dh-importer.zip"
} }

View file

@ -279,8 +279,19 @@ export class DHImporter {
} }
static _parseExperienceLine(line, data) { static _parseExperienceLine(line, data) {
// "Ambusher +3" // Handle "Experience: Manipulate +2, Infiltrate +2" or "Knowledge (Arcana, History) +2"
const match = line.match(/(.+?)\s+([+-]?\d+)$/); const parts = line.split(",");
let buffer = "";
for (let part of parts) {
buffer = buffer ? buffer + "," + part : part;
// Check if buffer matches "Name +Value"
// We trim to handle spaces around commas
const trimmed = buffer.trim();
// Regex to match "Name +Value" at the end of the string
const match = trimmed.match(/(.+?)\s+([+-]?\d+)$/);
if (match) { if (match) {
const currentCount = Object.keys(data.system.experiences).length; const currentCount = Object.keys(data.system.experiences).length;
const key = "exp" + currentCount; const key = "exp" + currentCount;
@ -288,8 +299,12 @@ export class DHImporter {
name: match[1].trim(), name: match[1].trim(),
value: parseInt(match[2]) value: parseInt(match[2])
}; };
// Reset buffer as we found a complete experience
buffer = "";
} }
} }
// If buffer remains (e.g. "Some Trait" without number), it is ignored, consistent with previous behavior.
}
/** /**
* Helper to create feature item data * Helper to create feature item data