diff --git a/ddb.js b/ddb.js index 71f73af..88eefd0 100644 --- a/ddb.js +++ b/ddb.js @@ -790,7 +790,7 @@ class DDB { for (const monster of response.data) { if (!monster.isReleased&&!monster.isHomebrew) { prog.value += (!filename)? (15*(1/count)) : 1 - console.log(`Skipping ${monster.isReleased} ${monster.isHomebrew}`) + console.log(`Skipping ${monster.name} ${monster.isReleased} ${monster.isHomebrew}`) continue } if (monster.isHomebrew !== homebrew) { @@ -862,6 +862,10 @@ class DDB { } else { monsterEntry._content.push({type: this.ruledata.monsterTypes.find(s=>s.id===monster.typeId)?.name||monster.typeId}) } + if (monster.swarm) { + let type = monsterEntry._content.find(s=>s.type) + type.type = `swarm of ${this.ruledata.creatureSizes.find(s=>s.id===monster.swarm.sizeId).name} ${this.ruledata.monsterTypes.find(s=>s.id===monster.swarm.typeId)?.pluralizedName}` + } if (monster.damageAdjustments?.length>0) { let resist = monster.damageAdjustments .filter(s=>this.ruledata.damageAdjustments.find(d=>d.id===s&&d.type===1)) @@ -1047,6 +1051,11 @@ ${(monster.sourceId)?`Source: ${this.ruledata.sources.find((s)=> monster.sour ] } var zip = AdmZip(filename) + let ddbVer = zip.readAsText("version.txt").trim() + let modVer = app.getVersion().split(".") + modVer.push(ddbVer) + modVer = modVer.map(Number) + mod._attrs.version = (modVer[0] * (1000**3)) + (modVer[1] * (1000**2)) + (modVer[2] * 1000) + (modVer[3]) zip.extractEntryTo(`${book.name.toLowerCase()}.db3`,temp.name,false,true) var db = new sqlite3.Database(path.join(temp.name,`${book.name.toLowerCase()}.db3`)) var imageMap = [] diff --git a/index.js b/index.js index d73fce9..80910c3 100644 --- a/index.js +++ b/index.js @@ -604,12 +604,24 @@ function requestCampaignChars(gameId,cobalt) { defaultPath: `${thisCampaign.label.replaceAll("&&","&")}.compendium`, }).then((save) => { if (save.filePath) { - const prog = new ProgressBar({title: "Converting campaign characters...", text: "Converting campaign characters...", detail: "Please wait..."}) - download(_win,`https://play5e.online/ddb.php?tokenmap=true&circles=true&campaign=https://ddb.ac/characters/${campaignChars[0].id}`,{ + let prog = new ProgressBar({title: "Converting campaign characters...", text: "Converting campaign characters...", detail: "Please wait..."}) + let dlProg + download(_win,`https://play5e.online/?api=true&tokenmap=true&circles=true&campaign=https://ddb.ac/characters/${campaignChars[0].id}`,{ filename: path.basename(save.filePath), directory: path.dirname(save.filePath), - onStarted: () => prog.setCompleted() - }) + onCompleted: (f) => { + try { + prog.setCompleted() + new AdmZip(save.filePath) + } catch (e) { + prog.text = "Error" + const err = fs.readFileSync(save.filePath).toString() + prog.detail = err + fs.rm(save.filePath,()=>{}) + dialog.showErrorBox("Error",`Could not convert characters:\n${err}`) + } + } + }).catch(e=>console.log(e)) } }) } diff --git a/package.json b/package.json index ad68ddd..2b3ea71 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "encounterlog", "productName": "EncounterLog", - "version": "2.2.0", + "version": "2.2.1", "description": "Connect D&D Beyond to EncounterPlus", "repository": { "type": "git",