Merge branch 'cleanup-compendium-packs' into 'master'
Cleanup compendium packs Closes #94 See merge request dungeonslayers/ds4!171
This commit is contained in:
commit
d7b8eb0dd2
10 changed files with 471 additions and 460 deletions
File diff suppressed because it is too large
Load diff
|
@ -10003,7 +10003,7 @@
|
||||||
"type": "loot",
|
"type": "loot",
|
||||||
"img": "icons/consumables/potions/potion-bottle-labeled-medicine-capped-red-black.webp",
|
"img": "icons/consumables/potions/potion-bottle-labeled-medicine-capped-red-black.webp",
|
||||||
"data": {
|
"data": {
|
||||||
"description": "<p>Dieses meist schwarze Getränk gewährt für W20 Stunden dem Trinker die zwergische Volksfähigkeit Dunkelsicht (siehe GRW Seite 83).</p>",
|
"description": "<p>Dieses meist schwarze Getränk gewährt für W20 Stunden dem Trinker die zwergische Volksfähigkeit Dunkelsicht (<strong>DS4</strong> S. 83).</p>",
|
||||||
"quantity": 1,
|
"quantity": 1,
|
||||||
"price": 15,
|
"price": 15,
|
||||||
"availability": "unset",
|
"availability": "unset",
|
||||||
|
|
|
@ -41,7 +41,7 @@
|
||||||
"type": "racialAbility",
|
"type": "racialAbility",
|
||||||
"img": "icons/svg/aura.svg",
|
"img": "icons/svg/aura.svg",
|
||||||
"data": {
|
"data": {
|
||||||
"description": "<p>Tollpatschige Völker sind sehr ungeschickt und grobmotorisch - sie erhalten auf alle Proben mit Agilität einen Malus von -4.</p>"
|
"description": "<p>Tollpatschige Völker sind sehr ungeschickt und grobmotorisch – sie erhalten auf alle Proben mit Agilität einen Malus von -4.</p>"
|
||||||
},
|
},
|
||||||
"effects": [
|
"effects": [
|
||||||
{
|
{
|
||||||
|
@ -586,7 +586,7 @@
|
||||||
"type": "racialAbility",
|
"type": "racialAbility",
|
||||||
"img": "icons/svg/aura.svg",
|
"img": "icons/svg/aura.svg",
|
||||||
"data": {
|
"data": {
|
||||||
"description": "<p>Mitglieder dieses Volkes sind von der Magie berührt - es fä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ührt – es fällt ihnen unheimlich leicht, Zauber zu verstehen und zu wirken. Sie erhalten +1 auf Zaubern.</p>"
|
||||||
},
|
},
|
||||||
"effects": [
|
"effects": [
|
||||||
{
|
{
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
"type": "specialCreatureAbility",
|
"type": "specialCreatureAbility",
|
||||||
"img": "systems/ds4/assets/icons/official/special-creature-abilities/hover.png",
|
"img": "systems/ds4/assets/icons/official/special-creature-abilities/hover.png",
|
||||||
"data": {
|
"data": {
|
||||||
"description": "<p>Kann, statt zu laufen, auch schweben. Wird die Aktion “Rennen” ausgeführt, erhöht sich die Geschwindigkeit wie am Boden auf Laufen x 2.</p>",
|
"description": "<p>Kann, statt zu laufen, auch schweben. Wird die Aktion „Rennen“ ausgeführt, erhöht sich die Geschwindigkeit wie am Boden auf Laufen x 2.</p>",
|
||||||
"experiencePoints": 10
|
"experiencePoints": 10
|
||||||
},
|
},
|
||||||
"effects": [],
|
"effects": [],
|
||||||
|
@ -39,7 +39,7 @@
|
||||||
"type": "specialCreatureAbility",
|
"type": "specialCreatureAbility",
|
||||||
"img": "systems/ds4/assets/icons/official/special-creature-abilities/swim.png",
|
"img": "systems/ds4/assets/icons/official/special-creature-abilities/swim.png",
|
||||||
"data": {
|
"data": {
|
||||||
"description": "<p>Kann, statt zu laufen, schwimmen. Wird die Aktion “Rennen” schwimmend ausgeführt, erhöht sich die Geschwindigkeit ganz normal auf Laufen x 2.</p>",
|
"description": "<p>Kann, statt zu laufen, schwimmen. Wird die Aktion „Rennen“ schwimmend ausgeführt, erhöht sich die Geschwindigkeit ganz normal auf Laufen x 2.</p>",
|
||||||
"experiencePoints": 5
|
"experiencePoints": 5
|
||||||
},
|
},
|
||||||
"effects": [],
|
"effects": [],
|
||||||
|
@ -226,7 +226,7 @@
|
||||||
"type": "specialCreatureAbility",
|
"type": "specialCreatureAbility",
|
||||||
"img": "systems/ds4/assets/icons/official/special-creature-abilities/sonar.png",
|
"img": "systems/ds4/assets/icons/official/special-creature-abilities/sonar.png",
|
||||||
"data": {
|
"data": {
|
||||||
"description": "<p>“Sieht” per Sonar.</p>",
|
"description": "<p>„Sieht“ per Sonar.</p>",
|
||||||
"experiencePoints": 10
|
"experiencePoints": 10
|
||||||
},
|
},
|
||||||
"effects": [],
|
"effects": [],
|
||||||
|
@ -294,7 +294,7 @@
|
||||||
"type": "specialCreatureAbility",
|
"type": "specialCreatureAbility",
|
||||||
"img": "systems/ds4/assets/icons/official/special-creature-abilities/charm.png",
|
"img": "systems/ds4/assets/icons/official/special-creature-abilities/charm.png",
|
||||||
"data": {
|
"data": {
|
||||||
"description": "<p>Kann Gegner mit einem “Lockruf” bezaubern. Dieser Zauber funktioniert wie der Zauberspruch <em>Gehorche</em>. Abklingzeit des <em>Lockrufs</em>: 10 Kampfrunden</p>",
|
"description": "<p>Kann Gegner mit einem „Lockruf“ bezaubern. Dieser Zauber funktioniert wie der Zauberspruch <em>Gehorche</em>. Abklingzeit des <em>Lockrufs</em>: 10 Kampfrunden</p>",
|
||||||
"experiencePoints": 25
|
"experiencePoints": 25
|
||||||
},
|
},
|
||||||
"effects": [],
|
"effects": [],
|
||||||
|
@ -481,7 +481,7 @@
|
||||||
"type": "specialCreatureAbility",
|
"type": "specialCreatureAbility",
|
||||||
"img": "systems/ds4/assets/icons/official/special-creature-abilities/poison.png",
|
"img": "systems/ds4/assets/icons/official/special-creature-abilities/poison.png",
|
||||||
"data": {
|
"data": {
|
||||||
"description": "<p>Wird Schaden verursacht, würfelt das Ziel eine “Gift trotzen”-Probe, ansonsten erhält es W20 Kampfrunden lang 1 nicht abwehrbaren Schadenspunkt pro Runde.</p>",
|
"description": "<p>Wird Schaden verursacht, würfelt das Ziel eine „Gift trotzen“-Probe, ansonsten erhält es W20 Kampfrunden lang 1 nicht abwehrbaren Schadenspunkt pro Runde.</p>",
|
||||||
"experiencePoints": 10
|
"experiencePoints": 10
|
||||||
},
|
},
|
||||||
"effects": [],
|
"effects": [],
|
||||||
|
@ -693,7 +693,7 @@
|
||||||
"type": "specialCreatureAbility",
|
"type": "specialCreatureAbility",
|
||||||
"img": "systems/ds4/assets/icons/official/special-creature-abilities/dive-attack.png",
|
"img": "systems/ds4/assets/icons/official/special-creature-abilities/dive-attack.png",
|
||||||
"data": {
|
"data": {
|
||||||
"description": "<p>Wird fliegend mindestens eine Distanz in Höhe von Laufen x 2 “rennend” geflogen, kann in der Runde noch ein Angriff mit Schlagen + KÖR erfolgen, während der Bewegung, also nicht nur davor oder danach.</p>",
|
"description": "<p>Wird fliegend mindestens eine Distanz in Höhe von Laufen x 2 „rennend“ geflogen, kann in der Runde noch ein Angriff mit Schlagen + KÖR erfolgen, während der Bewegung, also nicht nur davor oder danach.</p>",
|
||||||
"experiencePoints": 10
|
"experiencePoints": 10
|
||||||
},
|
},
|
||||||
"effects": [],
|
"effects": [],
|
||||||
|
@ -727,7 +727,7 @@
|
||||||
"type": "specialCreatureAbility",
|
"type": "specialCreatureAbility",
|
||||||
"img": "systems/ds4/assets/icons/official/special-creature-abilities/poison.png",
|
"img": "systems/ds4/assets/icons/official/special-creature-abilities/poison.png",
|
||||||
"data": {
|
"data": {
|
||||||
"description": "<p>Wird Schaden verursacht, würfelt das Ziel eine “Gift trotzen”-Probe, ansonsten erhält es W20 Kampfrunden lang 4 nicht abwehrbaren Schadenspunkt pro Runde.</p>",
|
"description": "<p>Wird Schaden verursacht, würfelt das Ziel eine „Gift trotzen“-Probe, ansonsten erhält es W20 Kampfrunden lang 4 nicht abwehrbaren Schadenspunkt pro Runde.</p>",
|
||||||
"experiencePoints": 40
|
"experiencePoints": 40
|
||||||
},
|
},
|
||||||
"effects": [],
|
"effects": [],
|
||||||
|
@ -744,7 +744,7 @@
|
||||||
"type": "specialCreatureAbility",
|
"type": "specialCreatureAbility",
|
||||||
"img": "systems/ds4/assets/icons/official/special-creature-abilities/poison.png",
|
"img": "systems/ds4/assets/icons/official/special-creature-abilities/poison.png",
|
||||||
"data": {
|
"data": {
|
||||||
"description": "<p>Wird Schaden verursacht, würfelt das Ziel eine “Gift trotzen”-Probe, ansonsten erhält es W20 Kampfrunden lang 2 nicht abwehrbaren Schadenspunkt pro Runde.</p>",
|
"description": "<p>Wird Schaden verursacht, würfelt das Ziel eine „Gift trotzen“-Probe, ansonsten erhält es W20 Kampfrunden lang 2 nicht abwehrbaren Schadenspunkt pro Runde.</p>",
|
||||||
"experiencePoints": 20
|
"experiencePoints": 20
|
||||||
},
|
},
|
||||||
"effects": [],
|
"effects": [],
|
||||||
|
@ -863,7 +863,7 @@
|
||||||
"type": "specialCreatureAbility",
|
"type": "specialCreatureAbility",
|
||||||
"img": "systems/ds4/assets/icons/official/special-creature-abilities/poison.png",
|
"img": "systems/ds4/assets/icons/official/special-creature-abilities/poison.png",
|
||||||
"data": {
|
"data": {
|
||||||
"description": "<p>Wird Schaden verursacht, würfelt das Ziel eine “Gift trotzen”-Probe, ansonsten erhält es W20 Kampfrunden lang 5 nicht abwehrbaren Schadenspunkt pro Runde.</p>",
|
"description": "<p>Wird Schaden verursacht, würfelt das Ziel eine „Gift trotzen“-Probe, ansonsten erhält es W20 Kampfrunden lang 5 nicht abwehrbaren Schadenspunkt pro Runde.</p>",
|
||||||
"experiencePoints": 50
|
"experiencePoints": 50
|
||||||
},
|
},
|
||||||
"effects": [],
|
"effects": [],
|
||||||
|
@ -948,7 +948,7 @@
|
||||||
"type": "specialCreatureAbility",
|
"type": "specialCreatureAbility",
|
||||||
"img": "systems/ds4/assets/icons/official/special-creature-abilities/breath-weapon.png",
|
"img": "systems/ds4/assets/icons/official/special-creature-abilities/breath-weapon.png",
|
||||||
"data": {
|
"data": {
|
||||||
"description": "<p>Nur alle W20 Runden einsetzbar. Erzeugt nicht abwehrbaren Schaden (Schießen-Angriff) - nur für magische Abwehrboni wird gewürfelt (PW: Bonushö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ßen-Angriff) – nur für magische Abwehrboni wird gewürfelt (PW: Bonushöhe). GE x 5m langer Kegel (am Ende GE x 3m breit).</p>",
|
||||||
"experiencePoints": -1
|
"experiencePoints": -1
|
||||||
},
|
},
|
||||||
"effects": [],
|
"effects": [],
|
||||||
|
@ -965,7 +965,7 @@
|
||||||
"type": "specialCreatureAbility",
|
"type": "specialCreatureAbility",
|
||||||
"img": "systems/ds4/assets/icons/official/special-creature-abilities/flight.png",
|
"img": "systems/ds4/assets/icons/official/special-creature-abilities/flight.png",
|
||||||
"data": {
|
"data": {
|
||||||
"description": "<p>Kann, statt zu laufen, mit doppelten Laufen-Wert fliegen. Wird die Aktion “Rennen” im Flug ausgeführt, erhöht sich die Geschwindigkeit somit auf Laufen x 4.</p>",
|
"description": "<p>Kann, statt zu laufen, mit doppelten Laufen-Wert fliegen. Wird die Aktion „Rennen“ im Flug ausgeführt, erhöht sich die Geschwindigkeit somit auf Laufen x 4.</p>",
|
||||||
"experiencePoints": 15
|
"experiencePoints": 15
|
||||||
},
|
},
|
||||||
"effects": [],
|
"effects": [],
|
||||||
|
@ -982,7 +982,7 @@
|
||||||
"type": "specialCreatureAbility",
|
"type": "specialCreatureAbility",
|
||||||
"img": "systems/ds4/assets/icons/official/special-creature-abilities/poison.png",
|
"img": "systems/ds4/assets/icons/official/special-creature-abilities/poison.png",
|
||||||
"data": {
|
"data": {
|
||||||
"description": "<p>Wird Schaden verursacht, würfelt das Ziel eine “Gift trotzen”-Probe, ansonsten erhält es W20 Kampfrunden lang 3 nicht abwehrbaren Schadenspunkt pro Runde.</p>",
|
"description": "<p>Wird Schaden verursacht, würfelt das Ziel eine „Gift trotzen“-Probe, ansonsten erhält es W20 Kampfrunden lang 3 nicht abwehrbaren Schadenspunkt pro Runde.</p>",
|
||||||
"experiencePoints": 30
|
"experiencePoints": 30
|
||||||
},
|
},
|
||||||
"effects": [],
|
"effects": [],
|
||||||
|
|
File diff suppressed because one or more lines are too long
9
scss/components/shared/_add_button.scss
Normal file
9
scss/components/shared/_add_button.scss
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: 2021 Johannes Loher
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
|
.ds4-add-button {
|
||||||
|
padding: 0 calc(1em / 3);
|
||||||
|
}
|
|
@ -11,6 +11,7 @@
|
||||||
@use "global/fonts";
|
@use "global/fonts";
|
||||||
|
|
||||||
// shared
|
// shared
|
||||||
|
@use "components/shared/add_button";
|
||||||
@use "components/shared/control_button_group";
|
@use "components/shared/control_button_group";
|
||||||
@use "components/shared/editor";
|
@use "components/shared/editor";
|
||||||
@use "components/shared/embedded_document_list";
|
@use "components/shared/embedded_document_list";
|
||||||
|
|
|
@ -11,7 +11,7 @@ SPDX-License-Identifier: MIT
|
||||||
!-- @param title: The title to use for the link element (will be localized)
|
!-- @param title: The title to use for the link element (will be localized)
|
||||||
!-- @param type: An optional property to use as data-type attribute
|
!-- @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}}"
|
<a class="control-{{documentType}}" title="{{localize title}}" data-action="create" {{#if type}}data-type="{{type}}"
|
||||||
{{/if}}>
|
{{/if}}>
|
||||||
<i class="fas fa-plus"></i>
|
<i class="fas fa-plus"></i>
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
import promises from "node:fs/promises";
|
import promises from "node:fs/promises";
|
||||||
import path from "node:path";
|
import path from "node:path";
|
||||||
|
|
||||||
import { distDirectory, sourceDirectory } from "./const.js";
|
import { distDirectory } from "./const.js";
|
||||||
import { convertPackFileToJSONFile } from "./json-pack-tools.js";
|
import { convertPackFileToJSONFile } from "./json-pack-tools.js";
|
||||||
|
|
||||||
const packsDistDirectory = path.join(distDirectory, "packs");
|
const packsDistDirectory = path.join(distDirectory, "packs");
|
||||||
|
|
|
@ -40,11 +40,12 @@ function cleanPackEntry(entry, cleanSourceId = true) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Converts a JSON string containing an array to a Pack (NeDB) string.
|
* Converts JSON content containing an array to a Pack (NeDB) string.
|
||||||
* @param {string} jsonString The input JSON string
|
* @param {string | ArrayBuffer} contents The input JSON content
|
||||||
* @returns {string} The resulting Pack string
|
* @returns {Promise<string>} The resulting Pack string
|
||||||
*/
|
*/
|
||||||
export function convertJSONToPack(jsonString) {
|
export async function convertJSONToPack(contents) {
|
||||||
|
const jsonString = contents.toString();
|
||||||
return (
|
return (
|
||||||
JSON.parse(jsonString)
|
JSON.parse(jsonString)
|
||||||
.map((entry) => cleanPackEntry(entry))
|
.map((entry) => cleanPackEntry(entry))
|
||||||
|
|
Loading…
Reference in a new issue