Merge branch 'cleanup-compendium-packs' into 'master'

Cleanup compendium packs

Closes #94

See merge request dungeonslayers/ds4!171
This commit is contained in:
Johannes Loher 2022-02-13 00:12:30 +00:00
commit d7b8eb0dd2
10 changed files with 471 additions and 460 deletions

File diff suppressed because it is too large Load diff

View file

@ -10003,7 +10003,7 @@
"type": "loot",
"img": "icons/consumables/potions/potion-bottle-labeled-medicine-capped-red-black.webp",
"data": {
"description": "<p>Dieses meist schwarze Getr&auml;nk gew&auml;hrt f&uuml;r W20 Stunden dem Trinker die zwergische Volksf&auml;higkeit Dunkelsicht (siehe GRW Seite 83).</p>",
"description": "<p>Dieses meist schwarze Getr&auml;nk gew&auml;hrt f&uuml;r W20 Stunden dem Trinker die zwergische Volksf&auml;higkeit Dunkelsicht (<strong>DS4</strong> S. 83).</p>",
"quantity": 1,
"price": 15,
"availability": "unset",

View file

@ -41,7 +41,7 @@
"type": "racialAbility",
"img": "icons/svg/aura.svg",
"data": {
"description": "<p>Tollpatschige V&ouml;lker sind sehr ungeschickt und grobmotorisch - sie erhalten auf alle Proben mit Agilit&auml;t einen Malus von -4.</p>"
"description": "<p>Tollpatschige V&ouml;lker sind sehr ungeschickt und grobmotorisch &ndash; sie erhalten auf alle Proben mit Agilit&auml;t einen Malus von -4.</p>"
},
"effects": [
{
@ -586,7 +586,7 @@
"type": "racialAbility",
"img": "icons/svg/aura.svg",
"data": {
"description": "<p>Mitglieder dieses Volkes sind von der Magie ber&uuml;hrt - es f&auml;llt ihnen unheimlich leicht, Zauber zu verstehen und zu wirken. Sie erhalten +1 auf Zaubern.</p>"
"description": "<p>Mitglieder dieses Volkes sind von der Magie ber&uuml;hrt &ndash; es f&auml;llt ihnen unheimlich leicht, Zauber zu verstehen und zu wirken. Sie erhalten +1 auf Zaubern.</p>"
},
"effects": [
{

View file

@ -22,7 +22,7 @@
"type": "specialCreatureAbility",
"img": "systems/ds4/assets/icons/official/special-creature-abilities/hover.png",
"data": {
"description": "<p>Kann, statt zu laufen, auch schweben. Wird die Aktion &ldquo;Rennen&rdquo; ausgef&uuml;hrt, erh&ouml;ht sich die Geschwindigkeit wie am Boden auf Laufen x 2.</p>",
"description": "<p>Kann, statt zu laufen, auch schweben. Wird die Aktion &bdquo;Rennen&ldquo; ausgef&uuml;hrt, erh&ouml;ht sich die Geschwindigkeit wie am Boden auf Laufen x 2.</p>",
"experiencePoints": 10
},
"effects": [],
@ -39,7 +39,7 @@
"type": "specialCreatureAbility",
"img": "systems/ds4/assets/icons/official/special-creature-abilities/swim.png",
"data": {
"description": "<p>Kann, statt zu laufen, schwimmen. Wird die Aktion &ldquo;Rennen&rdquo; schwimmend ausgef&uuml;hrt, erh&ouml;ht sich die Geschwindigkeit ganz normal auf Laufen x 2.</p>",
"description": "<p>Kann, statt zu laufen, schwimmen. Wird die Aktion &bdquo;Rennen&ldquo; schwimmend ausgef&uuml;hrt, erh&ouml;ht sich die Geschwindigkeit ganz normal auf Laufen x 2.</p>",
"experiencePoints": 5
},
"effects": [],
@ -226,7 +226,7 @@
"type": "specialCreatureAbility",
"img": "systems/ds4/assets/icons/official/special-creature-abilities/sonar.png",
"data": {
"description": "<p>&ldquo;Sieht&rdquo; per Sonar.</p>",
"description": "<p>&bdquo;Sieht&ldquo; per Sonar.</p>",
"experiencePoints": 10
},
"effects": [],
@ -294,7 +294,7 @@
"type": "specialCreatureAbility",
"img": "systems/ds4/assets/icons/official/special-creature-abilities/charm.png",
"data": {
"description": "<p>Kann Gegner mit einem &ldquo;Lockruf&rdquo; bezaubern. Dieser Zauber funktioniert wie der Zauberspruch <em>Gehorche</em>. Abklingzeit des <em>Lockrufs</em>: 10 Kampfrunden</p>",
"description": "<p>Kann Gegner mit einem &bdquo;Lockruf&ldquo; bezaubern. Dieser Zauber funktioniert wie der Zauberspruch <em>Gehorche</em>. Abklingzeit des <em>Lockrufs</em>: 10 Kampfrunden</p>",
"experiencePoints": 25
},
"effects": [],
@ -481,7 +481,7 @@
"type": "specialCreatureAbility",
"img": "systems/ds4/assets/icons/official/special-creature-abilities/poison.png",
"data": {
"description": "<p>Wird Schaden verursacht, w&uuml;rfelt das Ziel eine &ldquo;Gift trotzen&rdquo;-Probe, ansonsten erh&auml;lt es W20 Kampfrunden lang 1 nicht abwehrbaren Schadenspunkt pro Runde.</p>",
"description": "<p>Wird Schaden verursacht, w&uuml;rfelt das Ziel eine &bdquo;Gift trotzen&ldquo;-Probe, ansonsten erh&auml;lt es W20 Kampfrunden lang 1 nicht abwehrbaren Schadenspunkt pro Runde.</p>",
"experiencePoints": 10
},
"effects": [],
@ -693,7 +693,7 @@
"type": "specialCreatureAbility",
"img": "systems/ds4/assets/icons/official/special-creature-abilities/dive-attack.png",
"data": {
"description": "<p>Wird fliegend mindestens eine Distanz in H&ouml;he von Laufen x 2 &ldquo;rennend&rdquo; geflogen, kann in der Runde noch ein Angriff mit Schlagen + K&Ouml;R erfolgen, w&auml;hrend der Bewegung, also nicht nur davor oder danach.</p>",
"description": "<p>Wird fliegend mindestens eine Distanz in H&ouml;he von Laufen x 2 &bdquo;rennend&ldquo; geflogen, kann in der Runde noch ein Angriff mit Schlagen + K&Ouml;R erfolgen, w&auml;hrend der Bewegung, also nicht nur davor oder danach.</p>",
"experiencePoints": 10
},
"effects": [],
@ -727,7 +727,7 @@
"type": "specialCreatureAbility",
"img": "systems/ds4/assets/icons/official/special-creature-abilities/poison.png",
"data": {
"description": "<p>Wird Schaden verursacht, w&uuml;rfelt das Ziel eine &ldquo;Gift trotzen&rdquo;-Probe, ansonsten erh&auml;lt es W20 Kampfrunden lang 4 nicht abwehrbaren Schadenspunkt pro Runde.</p>",
"description": "<p>Wird Schaden verursacht, w&uuml;rfelt das Ziel eine &bdquo;Gift trotzen&ldquo;-Probe, ansonsten erh&auml;lt es W20 Kampfrunden lang 4 nicht abwehrbaren Schadenspunkt pro Runde.</p>",
"experiencePoints": 40
},
"effects": [],
@ -744,7 +744,7 @@
"type": "specialCreatureAbility",
"img": "systems/ds4/assets/icons/official/special-creature-abilities/poison.png",
"data": {
"description": "<p>Wird Schaden verursacht, w&uuml;rfelt das Ziel eine &ldquo;Gift trotzen&rdquo;-Probe, ansonsten erh&auml;lt es W20 Kampfrunden lang 2 nicht abwehrbaren Schadenspunkt pro Runde.</p>",
"description": "<p>Wird Schaden verursacht, w&uuml;rfelt das Ziel eine &bdquo;Gift trotzen&ldquo;-Probe, ansonsten erh&auml;lt es W20 Kampfrunden lang 2 nicht abwehrbaren Schadenspunkt pro Runde.</p>",
"experiencePoints": 20
},
"effects": [],
@ -863,7 +863,7 @@
"type": "specialCreatureAbility",
"img": "systems/ds4/assets/icons/official/special-creature-abilities/poison.png",
"data": {
"description": "<p>Wird Schaden verursacht, w&uuml;rfelt das Ziel eine &ldquo;Gift trotzen&rdquo;-Probe, ansonsten erh&auml;lt es W20 Kampfrunden lang 5 nicht abwehrbaren Schadenspunkt pro Runde.</p>",
"description": "<p>Wird Schaden verursacht, w&uuml;rfelt das Ziel eine &bdquo;Gift trotzen&ldquo;-Probe, ansonsten erh&auml;lt es W20 Kampfrunden lang 5 nicht abwehrbaren Schadenspunkt pro Runde.</p>",
"experiencePoints": 50
},
"effects": [],
@ -948,7 +948,7 @@
"type": "specialCreatureAbility",
"img": "systems/ds4/assets/icons/official/special-creature-abilities/breath-weapon.png",
"data": {
"description": "<p>Nur alle W20 Runden einsetzbar. Erzeugt nicht abwehrbaren Schaden (Schie&szlig;en-Angriff) - nur f&uuml;r magische Abwehrboni wird gew&uuml;rfelt (PW: Bonush&ouml;he). GE x 5m langer Kegel (am Ende GE x 3m breit).</p>",
"description": "<p>Nur alle W20 Runden einsetzbar. Erzeugt nicht abwehrbaren Schaden (Schie&szlig;en-Angriff) &ndash; nur f&uuml;r magische Abwehrboni wird gew&uuml;rfelt (PW: Bonush&ouml;he). GE x 5m langer Kegel (am Ende GE x 3m breit).</p>",
"experiencePoints": -1
},
"effects": [],
@ -965,7 +965,7 @@
"type": "specialCreatureAbility",
"img": "systems/ds4/assets/icons/official/special-creature-abilities/flight.png",
"data": {
"description": "<p>Kann, statt zu laufen, mit doppelten Laufen-Wert fliegen. Wird die Aktion &ldquo;Rennen&rdquo; im Flug ausgef&uuml;hrt, erh&ouml;ht sich die Geschwindigkeit somit auf Laufen x 4.</p>",
"description": "<p>Kann, statt zu laufen, mit doppelten Laufen-Wert fliegen. Wird die Aktion &bdquo;Rennen&ldquo; im Flug ausgef&uuml;hrt, erh&ouml;ht sich die Geschwindigkeit somit auf Laufen x 4.</p>",
"experiencePoints": 15
},
"effects": [],
@ -982,7 +982,7 @@
"type": "specialCreatureAbility",
"img": "systems/ds4/assets/icons/official/special-creature-abilities/poison.png",
"data": {
"description": "<p>Wird Schaden verursacht, w&uuml;rfelt das Ziel eine &ldquo;Gift trotzen&rdquo;-Probe, ansonsten erh&auml;lt es W20 Kampfrunden lang 3 nicht abwehrbaren Schadenspunkt pro Runde.</p>",
"description": "<p>Wird Schaden verursacht, w&uuml;rfelt das Ziel eine &bdquo;Gift trotzen&ldquo;-Probe, ansonsten erh&auml;lt es W20 Kampfrunden lang 3 nicht abwehrbaren Schadenspunkt pro Runde.</p>",
"experiencePoints": 30
},
"effects": [],

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,9 @@
/*
* SPDX-FileCopyrightText: 2021 Johannes Loher
*
* SPDX-License-Identifier: MIT
*/
.ds4-add-button {
padding: 0 calc(1em / 3);
}

View file

@ -11,6 +11,7 @@
@use "global/fonts";
// shared
@use "components/shared/add_button";
@use "components/shared/control_button_group";
@use "components/shared/editor";
@use "components/shared/embedded_document_list";

View file

@ -11,7 +11,7 @@ SPDX-License-Identifier: MIT
!-- @param title: The title to use for the link element (will be localized)
!-- @param type: An optional property to use as data-type attribute
}}
<div>
<div class="ds4-add-button">
<a class="control-{{documentType}}" title="{{localize title}}" data-action="create" {{#if type}}data-type="{{type}}"
{{/if}}>
<i class="fas fa-plus"></i>

View file

@ -5,7 +5,7 @@
import promises from "node:fs/promises";
import path from "node:path";
import { distDirectory, sourceDirectory } from "./const.js";
import { distDirectory } from "./const.js";
import { convertPackFileToJSONFile } from "./json-pack-tools.js";
const packsDistDirectory = path.join(distDirectory, "packs");

View file

@ -40,11 +40,12 @@ function cleanPackEntry(entry, cleanSourceId = true) {
}
/**
* Converts a JSON string containing an array to a Pack (NeDB) string.
* @param {string} jsonString The input JSON string
* @returns {string} The resulting Pack string
* Converts JSON content containing an array to a Pack (NeDB) string.
* @param {string | ArrayBuffer} contents The input JSON content
* @returns {Promise<string>} The resulting Pack string
*/
export function convertJSONToPack(jsonString) {
export async function convertJSONToPack(contents) {
const jsonString = contents.toString();
return (
JSON.parse(jsonString)
.map((entry) => cleanPackEntry(entry))