Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c0dced6fe6 | ||
|
|
c2aa466ce1 | ||
|
|
24426bb248 | ||
|
|
5a41c4bb56 | ||
|
|
26b2bddc2d | ||
|
|
9f1334da4f | ||
|
|
454982906f | ||
|
|
7ee92f6601 | ||
|
|
33c65735bd | ||
|
|
2bfd3a7d6a | ||
|
|
03b87f2df0 | ||
|
|
9d72b31d5f | ||
|
|
c13fef5103 | ||
|
|
abf8077131 | ||
|
|
b5b75aa2c6 | ||
|
|
7368673ba3 | ||
|
|
a606750b23 | ||
|
|
7358b67da2 | ||
|
|
2a36b8eaa1 | ||
|
|
f38ef8aa6d | ||
|
|
2ac8a6bba4 | ||
|
|
41fb1a8879 | ||
|
|
ff74871a0c | ||
|
|
f8b65c030f | ||
|
|
31a4ccfda1 | ||
|
|
c24e2b7af2 | ||
|
|
cfdba0ee75 | ||
|
|
d67de1b064 | ||
|
|
718f1eab99 | ||
|
|
47fd5b7763 | ||
|
|
ad884994dd | ||
|
|
b08bd195c7 | ||
|
|
c83cd8f079 | ||
|
|
b1ef88235f | ||
|
|
da1ae4e16e | ||
|
|
840a7c1dc4 | ||
|
|
4825166f87 | ||
|
|
b8e873537c | ||
|
|
975bcd1e15 | ||
|
|
b945f22710 | ||
|
|
6baf9a0269 | ||
|
|
8a3c632c7d | ||
|
|
91f12b11da | ||
|
|
bfa51605bc | ||
|
|
c313d3448c | ||
|
|
31cfd52131 | ||
|
|
7fe52cf52a | ||
|
|
a5336faa94 | ||
|
|
a56e6bab3d | ||
|
|
fed1175987 | ||
|
|
1e27e135cf | ||
|
|
30e94741bf | ||
|
|
2dccbf3de3 | ||
|
|
9814c44045 | ||
|
|
f4a2338075 | ||
|
|
53ff2ece7d | ||
|
|
04a30a70b9 | ||
|
|
b5cffae778 | ||
|
|
db23081a9a | ||
|
|
e753f6392d | ||
|
|
2b4e6b18d0 | ||
|
|
0fe61e5bbb | ||
|
|
46cac30dcd | ||
|
|
7e6147299b | ||
|
|
f9737a4cb9 | ||
|
|
6ff4f16f9d | ||
|
|
725dd8c504 | ||
|
|
48883c3102 | ||
|
|
024f0b9c42 | ||
|
|
250fc499ae | ||
|
|
28595e7dd0 | ||
|
|
8095785fc2 | ||
|
|
16df142d45 | ||
|
|
e141839055 | ||
|
|
14e005cb0a | ||
|
|
c635c54f24 | ||
|
|
e27f4209e5 | ||
|
|
0bfa224dae | ||
|
|
35a6b0fae9 | ||
|
|
db21ca93b0 | ||
|
|
7bf0fd90b0 | ||
|
|
a7bdd0434e | ||
|
|
97d4a35cd6 | ||
|
|
c2996aa974 | ||
|
|
bf4f49755a | ||
|
|
57bffd492a | ||
|
|
5a36ee9eab | ||
|
|
a8a1e6e133 | ||
|
|
3bf2612dd0 | ||
|
|
68cb8fcf6d | ||
|
|
4b2daef20a | ||
|
|
792c578e0f | ||
|
|
3b051760ae | ||
|
|
bffbe97805 | ||
|
|
e21e5a91be | ||
|
|
783f7f020b | ||
|
|
ad841b111f | ||
|
|
ba2992221d | ||
|
|
5277a3ca4b | ||
|
|
c77818199a | ||
|
|
30d0924e3d | ||
|
|
6428b3252e | ||
|
|
e85fd1c41f | ||
|
|
d9e7152b4d | ||
|
|
9e7d81f413 | ||
|
|
8dd29e8da5 |
@@ -0,0 +1,15 @@
|
|||||||
|
name: Move new issues into To Do
|
||||||
|
|
||||||
|
on:
|
||||||
|
issues:
|
||||||
|
types: [opened]
|
||||||
|
jobs:
|
||||||
|
createCard:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Close Issue
|
||||||
|
run: >
|
||||||
|
curl -X PATCH -H "Content-Type: application/xml"
|
||||||
|
-H "Authorization: token ${{ secrets.GITEA_TOKEN }}
|
||||||
|
-d '{ "state": "To Do" }'
|
||||||
|
"${{ gitea.event.issue.url }}"
|
||||||
@@ -4,4 +4,5 @@ package-lock.json
|
|||||||
.idea/
|
.idea/
|
||||||
source/packs/
|
source/packs/
|
||||||
source/generators/
|
source/generators/
|
||||||
dist
|
dist
|
||||||
|
*.zip
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
MIT License
|
MIT License
|
||||||
|
|
||||||
Copyright (c) 2022
|
Copyright (c) 2022 Michael Stein
|
||||||
|
Copyright (c) 2023 Byroks
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
|||||||
|
After Width: | Height: | Size: 173 KiB |
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" width="512" height="512"><path fill="#fff" d="M262.406 17.188c-27.22 8.822-54.017 28.012-72.375 55.53 17.544 47.898 17.544 57.26 0 105.157 19.92 15.463 40.304 24.76 60.782 27.47-2.063-25.563-3.63-51.13 1.125-76.69-13.625-1.483-23.374-5.995-37-13.874V82.563c35.866 19.096 61.84 18.777 98.813 0v32.22c-13.364 6.497-21.886 11.16-35.25 13.218 3.614 25.568 3.48 51.15 1.375 76.72 18.644-3.265 37.236-12.113 55.5-26.845-14.353-47.897-14.355-57.26 0-105.156-16.982-28.008-47.453-46.633-72.97-55.532zm-129.594 8.218c-25.906 110.414-27.35 215.33-27.4 330.922-18.84-1.537-37.582-5.12-56.027-11.12v28.554h69.066c8.715 35.025 6.472 70.052-1.036 105.078h28.13c-7.195-35.026-8.237-70.053-.872-105.078h68.904v-28.555c-18.49 4.942-37.256 8.552-56.097 10.46.082-114.94 2.496-223.068-24.667-330.26zm89.47 202.375c0 117.27 25.517 233.342 120.155 257.97C446.62 464.716 462.72 345.374 462.72 227.78H222.28z"/></svg>
|
||||||
|
After Width: | Height: | Size: 956 B |
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" width="512" height="512"><path fill="#000" d="M256 16C123.5 16 16 123.5 16 256c0 132.6 107.5 240 240 240 132.6 0 240-107.4 240-240S388.6 16 256 16zm0 60c99.4 0 180 80.6 180 180s-80.6 180-180 180S76 355.4 76 256 156.6 76 256 76zm91.3 64.2c-6.5 0-12.5 2.4-16.8 8.2-52 70.1-69 96.5-106 169.8-8.4-11.1-65.6-72.4-93.9-94.1-14.2-10.9-41.3 27.2-31.6 37.1C142.6 306.1 220.1 406 232.7 405c21.4-1.7 75.1-136.8 148.8-233.7 8-10.4-15-31.3-34.2-31.1z"/></svg>
|
||||||
|
After Width: | Height: | Size: 508 B |
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 85 KiB |
|
After Width: | Height: | Size: 37 KiB |
|
After Width: | Height: | Size: 84 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 9.5 MiB |
|
Before Width: | Height: | Size: 6.4 MiB |
@@ -6,7 +6,7 @@ _**Warnung:** Das System befindet sich noch in der Entwicklung._
|
|||||||
|
|
||||||
Gehe auf die Setup-Seite deiner Foundry VTT Instanz. Klicke im Reiter **Game Systems** auf den Button **Install System**. In dem dann geöffneten Dialog, unten in der Zeile **Manifest URL** den Link zur aktuellen (oder gewünschten) Version der _system.json_ eintragen und auf **Install** klicken:
|
Gehe auf die Setup-Seite deiner Foundry VTT Instanz. Klicke im Reiter **Game Systems** auf den Button **Install System**. In dem dann geöffneten Dialog, unten in der Zeile **Manifest URL** den Link zur aktuellen (oder gewünschten) Version der _system.json_ eintragen und auf **Install** klicken:
|
||||||
|
|
||||||
https://github.com/michaelstein/foundry-vtt-system-midgard5/releases/download/v1.0.1/system.json
|
https://git.byroks.de/MidgardVTT-Entwicklung/foundry-vtt-system-midgard5/releases/download/v1.3.0/system.json
|
||||||
|
|
||||||
Danach kann eine Spielwelt mit dem System erstellt werden.
|
Danach kann eine Spielwelt mit dem System erstellt werden.
|
||||||
|
|
||||||
@@ -32,7 +32,7 @@ Dieser Reiter enthält (mit Ausname von Zaubern) alle zu erlernenden Dinge des C
|
|||||||
|
|
||||||

|

|
||||||
|
|
||||||
Es kann einfach per Drag'n'Drop die entsprechende Blaupause auf den Charakterbogen gezogen werden, um eine Fertigkeit/Fähigkeit/Sprache zu *lernen.* Alternativ kann auch der **Lernen** Button bei den **ungelernten Fertigkeiten** geklickt werden.
|
Es kann einfach per Drag'n'Drop die entsprechende Blaupause auf den Charakterbogen gezogen werden, um eine Fertigkeit/Fähigkeit/Sprache zu _lernen._ Alternativ kann auch der **Lernen** Button bei den **ungelernten Fertigkeiten** geklickt werden.
|
||||||
|
|
||||||
Um den **Fertigkeitswert** und die **Leiteigenschaft** einer Fertigkeit anzupassen, kann man auf die Fertigkeit klicken. Dann geht folgender Dialog auf:
|
Um den **Fertigkeitswert** und die **Leiteigenschaft** einer Fertigkeit anzupassen, kann man auf die Fertigkeit klicken. Dann geht folgender Dialog auf:
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
{
|
{
|
||||||
"moduleName": "Midgard 5. Edition",
|
"moduleName": "Midgard 5. Edition",
|
||||||
"repository": "https://github.com/Byroks/foundry-vtt-system-midgard5",
|
"repository": "https://git.byroks.de/MidgardVTT-Entwicklung/foundry-vtt-system-midgard5"
|
||||||
"rawURL": "https://raw.githubusercontent.com/Byroks/foundry-vtt-system-midgard5"
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,29 +1,28 @@
|
|||||||
import * as gulp from "gulp"
|
import * as gulp from "gulp";
|
||||||
import fs from "fs-extra"
|
import fs from "fs-extra";
|
||||||
import * as path from "path"
|
import * as path from "path";
|
||||||
import archiver from "archiver"
|
import archiver from "archiver";
|
||||||
import stringify from "json-stringify-pretty-compact"
|
import stringify from "json-stringify-pretty-compact";
|
||||||
|
|
||||||
const sourcemaps = require('gulp-sourcemaps')
|
const sourcemaps = require("gulp-sourcemaps");
|
||||||
const uglify = require('gulp-uglify')
|
const uglify = require("gulp-uglify");
|
||||||
const concat = require("gulp-concat")
|
const concat = require("gulp-concat");
|
||||||
const buffer = require('vinyl-buffer')
|
const buffer = require("vinyl-buffer");
|
||||||
const source = require('vinyl-source-stream')
|
const source = require("vinyl-source-stream");
|
||||||
const through = require('through2')
|
const through = require("through2");
|
||||||
const jsonminify = require('gulp-jsonminify')
|
const jsonminify = require("gulp-jsonminify");
|
||||||
const merge2 = require('merge2')
|
const merge2 = require("merge2");
|
||||||
|
|
||||||
const git = require('gulp-git-streamed')
|
const git = require("gulp-git-streamed");
|
||||||
|
|
||||||
const loadJson = (path: string): any => {
|
const loadJson = (path: string): any => {
|
||||||
try {
|
try {
|
||||||
let str = fs.readFileSync(path).toString()
|
let str = fs.readFileSync(path).toString();
|
||||||
return JSON.parse(str)
|
return JSON.parse(str);
|
||||||
|
} catch {
|
||||||
|
throw Error("Unable to load " + path);
|
||||||
}
|
}
|
||||||
catch {
|
};
|
||||||
throw Error("Unable to load " + path)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
import {
|
import {
|
||||||
createLiteral,
|
createLiteral,
|
||||||
@@ -38,36 +37,37 @@ import {
|
|||||||
TransformerFactory,
|
TransformerFactory,
|
||||||
visitEachChild,
|
visitEachChild,
|
||||||
visitNode,
|
visitNode,
|
||||||
} from "typescript"
|
} from "typescript";
|
||||||
import less from "gulp-less"
|
import less from "gulp-less";
|
||||||
|
|
||||||
import Logger from "./source/utils/Logger"
|
import Logger from "./source/utils/Logger";
|
||||||
import {ModuleData} from "@league-of-foundry-developers/foundry-vtt-types/src/foundry/common/packages.mjs"
|
import { ModuleData } from "@league-of-foundry-developers/foundry-vtt-types/src/foundry/common/packages.mjs";
|
||||||
import browserify from "browserify"
|
import browserify from "browserify";
|
||||||
const tsify = require("tsify")
|
import { data } from "jquery";
|
||||||
|
const tsify = require("tsify");
|
||||||
|
|
||||||
const ts = require("gulp-typescript")
|
const ts = require("gulp-typescript");
|
||||||
|
|
||||||
const argv = require("yargs").argv
|
const argv = require("yargs").argv;
|
||||||
|
|
||||||
let distPath = "dist"
|
let distPath = "dist";
|
||||||
|
|
||||||
function getConfig() {
|
function getConfig() {
|
||||||
const configPath = path.resolve(process.cwd(), "foundryconfig.json")
|
const configPath = path.resolve(process.cwd(), "foundryconfig.json");
|
||||||
let config
|
let config;
|
||||||
|
|
||||||
if (fs.existsSync(configPath)) {
|
if (fs.existsSync(configPath)) {
|
||||||
config = loadJson(configPath)
|
config = loadJson(configPath);
|
||||||
return config
|
return config;
|
||||||
} else {
|
} else {
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
interface Manifest {
|
interface Manifest {
|
||||||
root: string
|
root: string;
|
||||||
file: ModuleData
|
file: ModuleData;
|
||||||
name: string
|
name: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
const getManifest = (): Manifest | null => {
|
const getManifest = (): Manifest | null => {
|
||||||
@@ -75,237 +75,211 @@ const getManifest = (): Manifest | null => {
|
|||||||
root: "",
|
root: "",
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
file: {},
|
file: {},
|
||||||
name: ""
|
name: "",
|
||||||
}
|
};
|
||||||
|
|
||||||
if (fs.existsSync("source")) {
|
if (fs.existsSync("source")) {
|
||||||
json.root = "source"
|
json.root = "source";
|
||||||
} else {
|
} else {
|
||||||
json.root = distPath
|
json.root = distPath;
|
||||||
}
|
}
|
||||||
|
const modulePath = path.join(json.root, "module.json");
|
||||||
const modulePath = path.join(json.root, "module.json")
|
const systemPath = path.join(json.root, "system.json");
|
||||||
const systemPath = path.join(json.root, "system.json")
|
|
||||||
|
|
||||||
if (fs.existsSync(modulePath)) {
|
if (fs.existsSync(modulePath)) {
|
||||||
json.file = loadJson(modulePath) as ModuleData
|
json.file = loadJson(modulePath) as ModuleData;
|
||||||
json.name = "module.json"
|
json.name = "module.json";
|
||||||
} else if (fs.existsSync(systemPath)) {
|
} else if (fs.existsSync(systemPath)) {
|
||||||
json.file = loadJson(systemPath) as ModuleData
|
json.file = loadJson(systemPath) as ModuleData;
|
||||||
json.name = "system.json"
|
json.name = "system.json";
|
||||||
} else {
|
} else {
|
||||||
return null
|
return null;
|
||||||
}
|
}
|
||||||
|
return json;
|
||||||
return json
|
};
|
||||||
}
|
|
||||||
|
|
||||||
const createTransformer = (): TransformerFactory<any> => {
|
const createTransformer = (): TransformerFactory<any> => {
|
||||||
/**
|
/**
|
||||||
* @param {typescript.Node} node
|
* @param {typescript.Node} node
|
||||||
*/
|
*/
|
||||||
const shouldMutateModuleSpecifier = (node: Node): boolean => {
|
const shouldMutateModuleSpecifier = (node: Node): boolean => {
|
||||||
if (!isImportDeclaration(node) && !isExportDeclaration(node))
|
if (!isImportDeclaration(node) && !isExportDeclaration(node)) return false;
|
||||||
return false
|
if (node.moduleSpecifier === undefined) return false;
|
||||||
if (node.moduleSpecifier === undefined)
|
if (!isStringLiteral(node.moduleSpecifier)) return false;
|
||||||
return false
|
if (!node.moduleSpecifier.text.startsWith("./") && !node.moduleSpecifier.text.startsWith("../")) return false;
|
||||||
if (!isStringLiteral(node.moduleSpecifier))
|
|
||||||
return false
|
|
||||||
if (!node.moduleSpecifier.text.startsWith("./") && !node.moduleSpecifier.text.startsWith("../"))
|
|
||||||
return false
|
|
||||||
|
|
||||||
return path.extname(node.moduleSpecifier.text) === ""
|
return path.extname(node.moduleSpecifier.text) === "";
|
||||||
}
|
};
|
||||||
|
|
||||||
return (context: TransformationContext): TSTransformer<any> => {
|
return (context: TransformationContext): TSTransformer<any> => {
|
||||||
return (node: Node) => {
|
return (node: Node) => {
|
||||||
function visitor(node: Node): Node {
|
function visitor(node: Node): Node {
|
||||||
if (shouldMutateModuleSpecifier(node)) {
|
if (shouldMutateModuleSpecifier(node)) {
|
||||||
if (isImportDeclaration(node)) {
|
if (isImportDeclaration(node)) {
|
||||||
const newModuleSpecifier = createLiteral(`${(node.moduleSpecifier as LiteralExpression).text}.js`)
|
const newModuleSpecifier = createLiteral(`${(node.moduleSpecifier as LiteralExpression).text}.js`);
|
||||||
return factory.updateImportDeclaration(node, node.decorators, node.modifiers, node.importClause, newModuleSpecifier, undefined)
|
return factory.updateImportDeclaration(node, node.decorators, node.modifiers, node.importClause, newModuleSpecifier, undefined);
|
||||||
} else if (isExportDeclaration(node)) {
|
} else if (isExportDeclaration(node)) {
|
||||||
const newModuleSpecifier = createLiteral(`${(node.moduleSpecifier as LiteralExpression).text}.js`)
|
const newModuleSpecifier = createLiteral(`${(node.moduleSpecifier as LiteralExpression).text}.js`);
|
||||||
return factory.updateExportDeclaration(node, node.decorators, node.modifiers, false, node.exportClause, newModuleSpecifier, undefined)
|
return factory.updateExportDeclaration(node, node.decorators, node.modifiers, false, node.exportClause, newModuleSpecifier, undefined);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return visitEachChild(node, visitor, context)
|
return visitEachChild(node, visitor, context);
|
||||||
}
|
}
|
||||||
|
|
||||||
return visitNode(node, visitor)
|
return visitNode(node, visitor);
|
||||||
}
|
};
|
||||||
}
|
};
|
||||||
}
|
};
|
||||||
|
|
||||||
const tsConfig = ts.createProject("tsconfig.json", {
|
const tsConfig = ts.createProject("tsconfig.json", {
|
||||||
getCustomTransformers: (_program: any) => ({
|
getCustomTransformers: (_program: any) => ({
|
||||||
after: [createTransformer()],
|
after: [createTransformer()],
|
||||||
}),
|
}),
|
||||||
})
|
});
|
||||||
|
|
||||||
function buildTS() {
|
function buildTS() {
|
||||||
const debug = process.env.npm_lifecycle_event !== "package"
|
const debug = process.env.npm_lifecycle_event !== "package";
|
||||||
let res = tsConfig.src()
|
let res = tsConfig.src().pipe(sourcemaps.init()).pipe(tsConfig());
|
||||||
.pipe(sourcemaps.init())
|
|
||||||
.pipe(tsConfig())
|
|
||||||
|
|
||||||
return res.js
|
return res.js.pipe(sourcemaps.write("", { debug: debug, includeContent: true, sourceRoot: "./ts/source" })).pipe(gulp.dest(distPath));
|
||||||
.pipe(sourcemaps.write('', { debug: debug, includeContent: true, sourceRoot: './ts/source' }))
|
|
||||||
.pipe(gulp.dest(distPath))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const bundleModule = () => {
|
const bundleModule = () => {
|
||||||
const debug = argv.dbg || argv.debug
|
const debug = argv.dbg || argv.debug;
|
||||||
const bsfy = browserify(path.join(__dirname, "source/index.ts"), { debug: debug })
|
const bsfy = browserify(path.join(__dirname, "source/index.ts"), { debug: debug });
|
||||||
return bsfy.on('error', Logger.err)
|
return bsfy
|
||||||
|
.on("error", Logger.err)
|
||||||
.plugin(tsify)
|
.plugin(tsify)
|
||||||
.bundle()
|
.bundle()
|
||||||
.pipe(source(path.join(distPath, "bundle.js")))
|
.pipe(source(path.join(distPath, "bundle.js")))
|
||||||
.pipe(buffer())
|
.pipe(buffer())
|
||||||
.pipe(sourcemaps.init({loadMaps: true}))
|
.pipe(sourcemaps.init({ loadMaps: true }))
|
||||||
.pipe(uglify())
|
.pipe(uglify())
|
||||||
.pipe(sourcemaps.write('./'))
|
.pipe(sourcemaps.write("./"))
|
||||||
.pipe(gulp.dest('./'))
|
.pipe(gulp.dest("./"));
|
||||||
}
|
};
|
||||||
|
|
||||||
const buildLess = () => {
|
const buildLess = () => {
|
||||||
return gulp.src("source/style/*.less")
|
return gulp.src("source/style/*.less").pipe(less()).pipe(concat("bundle.css")).pipe(gulp.dest(distPath));
|
||||||
.pipe(less())
|
};
|
||||||
.pipe(concat("bundle.css"))
|
|
||||||
.pipe(gulp.dest(distPath))
|
|
||||||
}
|
|
||||||
|
|
||||||
interface Pack {
|
interface Pack {
|
||||||
root: string,
|
root: string;
|
||||||
type: string,
|
type: string;
|
||||||
name: string
|
name: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
const buildPack = (pack: Pack): NodeJS.ReadWriteStream => {
|
const buildPack = (pack: Pack): NodeJS.ReadWriteStream => {
|
||||||
return gulp.src(pack.root + "/" + pack.type + "/" + pack.name + "/*.json")
|
return gulp
|
||||||
|
.src(pack.root + "/" + pack.type + "/" + pack.name + "/*.json")
|
||||||
.pipe(jsonminify())
|
.pipe(jsonminify())
|
||||||
.pipe(concat(pack.name + ".db"))
|
.pipe(concat(pack.name + ".db"))
|
||||||
.pipe(gulp.dest(distPath + "/" + pack.root + "/" + pack.type))
|
.pipe(gulp.dest(distPath + "/" + pack.root + "/" + pack.type));
|
||||||
}
|
};
|
||||||
|
|
||||||
const buildPacks = () => {
|
const buildPacks = () => {
|
||||||
let packs: Pack[] = []
|
let packs: Pack[] = [];
|
||||||
|
|
||||||
const rootDir = "packs"
|
const rootDir = "packs";
|
||||||
const packTypes = fs.readdirSync(rootDir).filter(p => fs.statSync(path.join(rootDir, p)).isDirectory())
|
const packTypes = fs.readdirSync(rootDir).filter((p) => fs.statSync(path.join(rootDir, p)).isDirectory());
|
||||||
packTypes.forEach(packType => {
|
packTypes.forEach((packType) => {
|
||||||
const packDir = path.join(rootDir, packType)
|
const packDir = path.join(rootDir, packType);
|
||||||
const packNames = fs.readdirSync(packDir).filter(p => fs.statSync(path.join(packDir, p)).isDirectory())
|
const packNames = fs.readdirSync(packDir).filter((p) => fs.statSync(path.join(packDir, p)).isDirectory());
|
||||||
packNames.forEach(packName => {
|
packNames.forEach((packName) => {
|
||||||
packs.push({
|
packs.push({
|
||||||
name: packName,
|
name: packName,
|
||||||
type: packType,
|
type: packType,
|
||||||
root: rootDir
|
root: rootDir,
|
||||||
})
|
});
|
||||||
})
|
});
|
||||||
})
|
});
|
||||||
|
|
||||||
return merge2(packs.map(p => buildPack(p)))
|
return merge2(packs.map((p) => buildPack(p)));
|
||||||
}
|
};
|
||||||
|
|
||||||
const copyFiles = async() => {
|
const copyFiles = async () => {
|
||||||
const recursiveFileSearch = (dir: string, callback: (err: NodeJS.ErrnoException | null, res: Array<string>) => void) => {
|
const recursiveFileSearch = (dir: string, callback: (err: NodeJS.ErrnoException | null, res: Array<string>) => void) => {
|
||||||
let results: Array<string> = []
|
let results: Array<string> = [];
|
||||||
fs.readdir(dir, (err, list) => {
|
fs.readdir(dir, (err, list) => {
|
||||||
if (err)
|
if (err) return callback(err, results);
|
||||||
return callback(err, results)
|
|
||||||
|
|
||||||
let pending = list.length
|
let pending = list.length;
|
||||||
if (!pending)
|
if (!pending) return callback(null, results);
|
||||||
return callback(null, results)
|
|
||||||
|
|
||||||
for (let file of list) {
|
for (let file of list) {
|
||||||
file = path.resolve(dir, file)
|
file = path.resolve(dir, file);
|
||||||
fs.stat(file, (err, stat) => {
|
fs.stat(file, (err, stat) => {
|
||||||
if (stat && stat.isDirectory()) {
|
if (stat && stat.isDirectory()) {
|
||||||
recursiveFileSearch(file, (err, res) => {
|
recursiveFileSearch(file, (err, res) => {
|
||||||
results = results.concat(res)
|
results = results.concat(res);
|
||||||
if (!--pending)
|
if (!--pending) callback(null, results);
|
||||||
callback(null, results)
|
});
|
||||||
})
|
} else {
|
||||||
|
results.push(file);
|
||||||
|
if (!--pending) callback(null, results);
|
||||||
}
|
}
|
||||||
else {
|
});
|
||||||
results.push(file)
|
|
||||||
if (!--pending)
|
|
||||||
callback(null, results)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
})
|
});
|
||||||
}
|
};
|
||||||
try {
|
try {
|
||||||
|
const modulePath = path.join("source", "module.json");
|
||||||
const modulePath = path.join("source", "module.json")
|
if (fs.existsSync(modulePath)) await fs.copyFile(modulePath, path.join(distPath, "module.json"));
|
||||||
if (fs.existsSync(modulePath))
|
|
||||||
await fs.copyFile(modulePath, path.join(distPath, "module.json"))
|
|
||||||
|
|
||||||
const systemPath = path.join("source/system.json")
|
const systemPath = path.join("source/system.json");
|
||||||
if (fs.existsSync(systemPath))
|
if (fs.existsSync(systemPath)) await fs.copyFile(systemPath, path.join(distPath, "system.json"));
|
||||||
await fs.copyFile(systemPath, path.join(distPath, "system.json"))
|
|
||||||
|
if (!fs.existsSync(path.resolve(__dirname, "assets"))) return Promise.resolve();
|
||||||
if (!fs.existsSync(path.resolve(__dirname, "assets")))
|
|
||||||
return Promise.resolve()
|
|
||||||
|
|
||||||
const filter = (src: string, dest: string): boolean => {
|
const filter = (src: string, dest: string): boolean => {
|
||||||
Logger.ok("Copying file: " + dest)
|
Logger.ok("Copying file: " + dest);
|
||||||
return true
|
return true;
|
||||||
}
|
};
|
||||||
|
|
||||||
await fs.copyFile(path.join("source", "template.json"), path.join(distPath, "template.json"))
|
|
||||||
|
|
||||||
fs.copySync(path.resolve(__dirname, "assets"), path.resolve(__dirname, distPath + "/assets"), { overwrite: true, filter })
|
await fs.copyFile(path.join("source", "template.json"), path.join(distPath, "template.json"));
|
||||||
fs.copySync(path.resolve(__dirname, "lang"), path.resolve(__dirname, distPath + "/lang"), { overwrite: true, filter })
|
|
||||||
|
fs.copySync(path.resolve(__dirname, "assets"), path.resolve(__dirname, distPath + "/assets"), { overwrite: true, filter });
|
||||||
|
fs.copySync(path.resolve(__dirname, "lang"), path.resolve(__dirname, distPath + "/lang"), { overwrite: true, filter });
|
||||||
//fs.copySync(path.resolve(__dirname, "packs"), path.resolve(__dirname, distPath + "/packs"), { overwrite: true, filter })
|
//fs.copySync(path.resolve(__dirname, "packs"), path.resolve(__dirname, distPath + "/packs"), { overwrite: true, filter })
|
||||||
fs.copySync(path.resolve(__dirname, "templates"), path.resolve(__dirname, distPath + "/templates"), { overwrite: true, filter })
|
fs.copySync(path.resolve(__dirname, "templates"), path.resolve(__dirname, distPath + "/templates"), { overwrite: true, filter });
|
||||||
return Promise.resolve()
|
return Promise.resolve();
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
await Promise.reject(err)
|
await Promise.reject(err);
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
|
||||||
const cleanDist = async () => {
|
const cleanDist = async () => {
|
||||||
if (argv.dbg || argv.debug)
|
if (argv.dbg || argv.debug) return;
|
||||||
return
|
Logger.log("Cleaning dist file clutter");
|
||||||
Logger.log("Cleaning dist file clutter")
|
|
||||||
|
|
||||||
const files: string[] = []
|
const files: string[] = [];
|
||||||
const getFiles = async (dir: string) => {
|
const getFiles = async (dir: string) => {
|
||||||
const arr = await fs.promises.readdir(dir)
|
const arr = await fs.promises.readdir(dir);
|
||||||
for(const entry of arr)
|
for (const entry of arr) {
|
||||||
{
|
const fullPath = path.join(dir, entry);
|
||||||
const fullPath = path.join(dir, entry)
|
const stat = await fs.promises.stat(fullPath);
|
||||||
const stat = await fs.promises.stat(fullPath)
|
if (stat.isDirectory()) await getFiles(fullPath);
|
||||||
if (stat.isDirectory())
|
else files.push(fullPath);
|
||||||
await getFiles(fullPath)
|
|
||||||
else
|
|
||||||
files.push(fullPath)
|
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
|
||||||
await getFiles(path.resolve(distPath))
|
await getFiles(path.resolve(distPath));
|
||||||
for(const file of files) {
|
for (const file of files) {
|
||||||
if (file.endsWith("bundle.js") || file.endsWith(".css") || file.endsWith("module.json"))
|
if (file.endsWith("bundle.js") || file.endsWith(".css") || file.endsWith("module.json")) continue;
|
||||||
continue
|
|
||||||
|
|
||||||
Logger.warn("Cleaning " + path.relative(process.cwd(), file))
|
Logger.warn("Cleaning " + path.relative(process.cwd(), file));
|
||||||
await fs.promises.unlink(file)
|
await fs.promises.unlink(file);
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Watch for changes for each build step
|
* Watch for changes for each build step
|
||||||
*/
|
*/
|
||||||
const buildWatch = () => {
|
const buildWatch = () => {
|
||||||
gulp.watch("source/**/*.ts", { ignoreInitial: false }, gulp.series(buildTS, bundleModule))
|
gulp.watch("source/**/*.ts", { ignoreInitial: false }, gulp.series(buildTS, bundleModule));
|
||||||
gulp.watch("source/**/*.less", { ignoreInitial: false }, buildLess)
|
gulp.watch("source/**/*.less", { ignoreInitial: false }, buildLess);
|
||||||
gulp.watch("packs", { ignoreInitial: false }, buildPacks)
|
gulp.watch("packs", { ignoreInitial: false }, buildPacks);
|
||||||
gulp.watch(["assets", "lang", "templates", "source/*.json"], { ignoreInitial: false }, copyFiles)
|
gulp.watch(["assets", "lang", "templates", "source/*.json"], { ignoreInitial: false }, copyFiles);
|
||||||
}
|
};
|
||||||
|
|
||||||
/********************/
|
/********************/
|
||||||
/* CLEAN */
|
/* CLEAN */
|
||||||
@@ -316,67 +290,63 @@ const buildWatch = () => {
|
|||||||
* while ignoring source files
|
* while ignoring source files
|
||||||
*/
|
*/
|
||||||
const clean = async () => {
|
const clean = async () => {
|
||||||
if (!fs.existsSync(distPath))
|
if (!fs.existsSync(distPath)) fs.mkdirSync(distPath);
|
||||||
fs.mkdirSync(distPath)
|
|
||||||
else {
|
else {
|
||||||
// Attempt to remove the files
|
// Attempt to remove the files
|
||||||
try {
|
try {
|
||||||
fs.rmSync(distPath, { recursive: true, force: true })
|
fs.rmSync(distPath, { recursive: true, force: true });
|
||||||
fs.mkdirSync(distPath)
|
fs.mkdirSync(distPath);
|
||||||
return Promise.resolve()
|
return Promise.resolve();
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
await Promise.reject(err)
|
await Promise.reject(err);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
|
||||||
const setTargetDir = async () => {
|
const setTargetDir = async () => {
|
||||||
const dp = process.env.FOUNDRY_PATH
|
const dp = process.env.FOUNDRY_PATH;
|
||||||
if (!dp)
|
if (!dp) throw Error("FOUNDRY_PATH not defined in environment");
|
||||||
throw Error("FOUNDRY_PATH not defined in environment")
|
|
||||||
|
const name = getManifest()!.file.name ?? "midgard5";
|
||||||
const name = getManifest()!.file.name ?? "midgard5"
|
distPath = path.join(dp, "Data", "systems", name);
|
||||||
distPath = path.join(dp, "Data", "systems", name)
|
};
|
||||||
}
|
|
||||||
|
|
||||||
const linkUserData = async () => {
|
const linkUserData = async () => {
|
||||||
const name = getManifest()!.file.name
|
const name = getManifest()!.file.name;
|
||||||
|
|
||||||
let destDir
|
let destDir;
|
||||||
try {
|
try {
|
||||||
if (fs.existsSync(path.resolve(".", distPath, "module.json")) || fs.existsSync(path.resolve(".", "source", "module.json"))) {
|
if (fs.existsSync(path.resolve(".", distPath, "module.json")) || fs.existsSync(path.resolve(".", "source", "module.json"))) {
|
||||||
destDir = "modules"
|
destDir = "modules";
|
||||||
} else if (fs.existsSync(path.resolve(".", distPath, "system.json")) || fs.existsSync(path.resolve(".", "source", "system.json"))) {
|
} else if (fs.existsSync(path.resolve(".", distPath, "system.json")) || fs.existsSync(path.resolve(".", "source", "system.json"))) {
|
||||||
destDir = "systems"
|
destDir = "systems";
|
||||||
} else {
|
} else {
|
||||||
throw Error(`Could not find module.json or system.json`)
|
throw Error(`Could not find module.json or system.json`);
|
||||||
}
|
}
|
||||||
|
|
||||||
let linkDir
|
let linkDir;
|
||||||
const dataPath = process.env.FOUNDRY_PATH
|
const dataPath = process.env.FOUNDRY_PATH;
|
||||||
if (dataPath) {
|
if (dataPath) {
|
||||||
if (!fs.existsSync(path.join(dataPath, "Data")))
|
if (!fs.existsSync(path.join(dataPath, "Data"))) throw Error("User Data path invalid, no Data directory found");
|
||||||
throw Error("User Data path invalid, no Data directory found")
|
linkDir = path.join(dataPath, "Data", destDir, name as string);
|
||||||
|
|
||||||
linkDir = path.join(dataPath, "Data", destDir, name as string)
|
|
||||||
} else {
|
} else {
|
||||||
throw Error("FOUNDRY_PATH not defined in environment")
|
throw Error("FOUNDRY_PATH not defined in environment");
|
||||||
}
|
}
|
||||||
|
|
||||||
//if (argv.clean || argv.c) {
|
//if (argv.clean || argv.c) {
|
||||||
Logger.warn(`Removing build in ${linkDir}`)
|
Logger.warn(`Removing build in ${linkDir}`);
|
||||||
fs.rmSync(linkDir, { recursive: true, force: true })
|
fs.rmSync(linkDir, { recursive: true, force: true });
|
||||||
fs.mkdirSync(linkDir)
|
fs.mkdirSync(linkDir);
|
||||||
//}
|
//}
|
||||||
|
|
||||||
Logger.ok(`Copying build to ${linkDir}`)
|
Logger.ok(`Copying build to ${linkDir}`);
|
||||||
fs.copySync(path.resolve(distPath), linkDir, { overwrite: true })
|
fs.copySync(path.resolve(distPath), linkDir, { overwrite: true });
|
||||||
|
|
||||||
return Promise.resolve()
|
return Promise.resolve();
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
await Promise.reject(err)
|
await Promise.reject(err);
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
|
||||||
/*********************/
|
/*********************/
|
||||||
/* PACKAGE */
|
/* PACKAGE */
|
||||||
@@ -386,48 +356,51 @@ const linkUserData = async () => {
|
|||||||
* Package build
|
* Package build
|
||||||
*/
|
*/
|
||||||
async function packageBuild() {
|
async function packageBuild() {
|
||||||
const manifest = getManifest()
|
const manifest = getManifest();
|
||||||
if (manifest === null) {
|
if (manifest === null) {
|
||||||
Logger.err("Manifest file could not be loaded.")
|
Logger.err("Manifest file could not be loaded.");
|
||||||
throw Error()
|
throw Error();
|
||||||
}
|
}
|
||||||
|
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
try {
|
try {
|
||||||
// Remove the package dir without doing anything else
|
// Remove the package dir without doing anything else
|
||||||
if (argv.clean || argv.c) {
|
if (argv.clean || argv.c) {
|
||||||
Logger.warn("Removing all packaged files")
|
Logger.warn("Removing all packaged files");
|
||||||
fs.rmSync(distPath, { force: true, recursive: true })
|
fs.rmSync(distPath, { force: true, recursive: true });
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ensure there is a directory to hold all the packaged versions
|
// Ensure there is a directory to hold all the packaged versions
|
||||||
if(!fs.existsSync(distPath))
|
if (!fs.existsSync(distPath)) fs.mkdirSync(distPath);
|
||||||
fs.mkdirSync(distPath)
|
|
||||||
|
|
||||||
// Initialize the zip file
|
// Initialize the zip file
|
||||||
const zipName = `${manifest.file.name}-v${manifest.file.version}.zip`
|
const zipName = `${manifest.file.name}-v${manifest.file.version}.zip`;
|
||||||
const zipFile = fs.createWriteStream(path.join(distPath, zipName))
|
const zipFile = fs.createWriteStream(zipName);
|
||||||
const zip = archiver("zip", { zlib: { level: 9 } })
|
const zip = archiver("zip", { zlib: { level: 9 } });
|
||||||
|
|
||||||
zipFile.on("close", () => {
|
zipFile.on("close", () => {
|
||||||
Logger.ok(zip.pointer() + " total bytes")
|
Logger.ok(zip.pointer() + " total bytes");
|
||||||
Logger.ok(`Zip file ${zipName} has been written`)
|
Logger.ok(`Zip file ${zipName} has been written`);
|
||||||
return resolve(true)
|
return resolve(true);
|
||||||
})
|
});
|
||||||
|
|
||||||
|
zipFile.on("end", function () {
|
||||||
|
throw "Data has been drained";
|
||||||
|
});
|
||||||
|
|
||||||
zip.on("error", (err) => {
|
zip.on("error", (err) => {
|
||||||
throw err
|
throw err;
|
||||||
})
|
});
|
||||||
|
|
||||||
zip.pipe(zipFile)
|
zip.pipe(zipFile);
|
||||||
|
|
||||||
zip.directory(path.join(process.cwd(), distPath), false)
|
zip.directory(distPath, manifest.file.name);
|
||||||
return zip.finalize()
|
|
||||||
|
return zip.finalize();
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
return reject(err)
|
return reject(err);
|
||||||
}
|
}
|
||||||
})
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/*********************/
|
/*********************/
|
||||||
@@ -438,116 +411,113 @@ async function packageBuild() {
|
|||||||
* Update version and URLs in the manifest JSON
|
* Update version and URLs in the manifest JSON
|
||||||
*/
|
*/
|
||||||
const updateManifest = (cb: any) => {
|
const updateManifest = (cb: any) => {
|
||||||
const packageJson = loadJson("package.json")
|
const packageJson = loadJson("package.json");
|
||||||
const config = getConfig(),
|
const config = getConfig(),
|
||||||
manifest = getManifest(),
|
manifest = getManifest(),
|
||||||
rawURL = config.rawURL,
|
rawURL = config.rawURL,
|
||||||
repoURL = config.repository,
|
repoURL = config.repository,
|
||||||
manifestRoot = manifest!.root
|
manifestRoot = manifest!.root;
|
||||||
|
|
||||||
if (!config)
|
if (!config) cb(Error("foundryconfig.json not found"));
|
||||||
cb(Error("foundryconfig.json not found"))
|
|
||||||
if (manifest === null) {
|
if (manifest === null) {
|
||||||
cb(Error("Manifest JSON not found"))
|
cb(Error("Manifest JSON not found"));
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
if (!rawURL || !repoURL)
|
if (!repoURL) cb(Error("Repository URLs not configured in foundryconfig.json"));
|
||||||
cb(Error("Repository URLs not configured in foundryconfig.json"))
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const version = argv.update || argv.u
|
const version = argv.update || argv.u;
|
||||||
|
|
||||||
/* Update version */
|
/* Update version */
|
||||||
|
|
||||||
const versionMatch = /^(\d{1,}).(\d{1,}).(\d{1,})$/
|
const versionMatch = /^(\d{1,}).(\d{1,}).(\d{1,})$/;
|
||||||
const currentVersion = manifest!.file.version
|
const currentVersion = manifest!.file.version;
|
||||||
let targetVersion = ""
|
let targetVersion = "";
|
||||||
|
|
||||||
if (!version) {
|
if (!version) {
|
||||||
cb(Error("Missing version number"))
|
cb(Error("Missing version number"));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (versionMatch.test(version)) {
|
if (versionMatch.test(version)) {
|
||||||
targetVersion = version
|
targetVersion = version;
|
||||||
} else {
|
} else {
|
||||||
targetVersion = currentVersion.replace(versionMatch, (substring: string, major: string, minor: string, patch: string) => {
|
targetVersion = currentVersion.replace(versionMatch, (substring: string, major: string, minor: string, patch: string) => {
|
||||||
console.log(substring, Number(major) + 1, Number(minor) + 1, Number(patch) + 1)
|
console.log(substring, Number(major) + 1, Number(minor) + 1, Number(patch) + 1);
|
||||||
if (version === "major") {
|
if (version === "major") {
|
||||||
return `${Number(major) + 1}.0.0`
|
return `${Number(major) + 1}.0.0`;
|
||||||
} else if (version === "minor") {
|
} else if (version === "minor") {
|
||||||
return `${major}.${Number(minor) + 1}.0`
|
return `${major}.${Number(minor) + 1}.0`;
|
||||||
} else if (version === "patch") {
|
} else if (version === "patch") {
|
||||||
return `${major}.${minor}.${Number(patch) + 1}`
|
return `${major}.${minor}.${Number(patch) + 1}`;
|
||||||
} else {
|
} else {
|
||||||
return ""
|
return "";
|
||||||
}
|
}
|
||||||
})
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (targetVersion === "") {
|
if (targetVersion === "") {
|
||||||
return cb(Error("Error: Incorrect version arguments."))
|
return cb(Error("Error: Incorrect version arguments."));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (targetVersion === currentVersion) {
|
if (targetVersion === currentVersion) {
|
||||||
return cb(Error("Error: Target version is identical to current version."))
|
return cb(Error("Error: Target version is identical to current version."));
|
||||||
}
|
}
|
||||||
|
|
||||||
Logger.ok(`Updating version number to '${targetVersion}'`)
|
Logger.ok(`Updating version number to '${targetVersion}'`);
|
||||||
|
|
||||||
packageJson.version = targetVersion
|
packageJson.version = targetVersion;
|
||||||
manifest.file.version = targetVersion
|
manifest.file.version = targetVersion;
|
||||||
|
|
||||||
/* Update URLs */
|
/* Update URLs */
|
||||||
|
|
||||||
const result = `${rawURL}/v${manifest.file.version}/${distPath}/${manifest.file.name}-v${manifest.file.version}.zip`
|
const result = `${repoURL}/releases/download`;
|
||||||
|
|
||||||
manifest.file.url = repoURL
|
manifest.file.url = repoURL;
|
||||||
manifest.file.manifest = `${rawURL}/master/${manifestRoot}/${manifest.name}`
|
manifest.file.manifest = `${result}/v${manifest.file.version}/${manifest.name}`;
|
||||||
manifest.file.download = result
|
manifest.file.download = `${result}/v${manifest.file.version}/${manifest.file.name}-v${manifest.file.version}.zip`;
|
||||||
|
|
||||||
const prettyProjectJson = stringify(manifest.file, {
|
const prettyProjectJson = stringify(manifest.file, {
|
||||||
maxLength: 35,
|
maxLength: 35,
|
||||||
indent: "\t",
|
indent: "\t",
|
||||||
})
|
});
|
||||||
|
|
||||||
fs.writeFileSync("package.json", JSON.stringify(packageJson, null, '\t'))
|
fs.writeFileSync("package.json", JSON.stringify(packageJson, null, "\t"));
|
||||||
fs.writeFileSync(path.join(manifest.root, manifest.name), prettyProjectJson, "utf8")
|
fs.writeFileSync(path.join(manifest.root, manifest.name), prettyProjectJson, "utf8");
|
||||||
|
|
||||||
return cb()
|
return cb();
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
return cb(err)
|
return cb(err);
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
|
||||||
const gitTaskManifest = (cb: gulp.TaskFunctionCallback) => {
|
const gitTaskManifest = (cb: gulp.TaskFunctionCallback) => {
|
||||||
const manifest = getManifest()
|
const manifest = getManifest();
|
||||||
if (!manifest)
|
if (!manifest) return cb(Error("could not load manifest."));
|
||||||
return cb(Error("could not load manifest."))
|
return gulp
|
||||||
|
.src([`package.json`, `source/system.json`])
|
||||||
return gulp.src([`package.json`, `source/module.json`])
|
|
||||||
.pipe(git.add({ args: "--no-all -f" }))
|
.pipe(git.add({ args: "--no-all -f" }))
|
||||||
.pipe(git.commit(`v${manifest.file.version}`, { args: "-a", disableAppendPaths: true }))
|
.pipe(git.commit(`v${manifest.file.version}`, { args: "-a", disableAppendPaths: true }));
|
||||||
}
|
};
|
||||||
|
|
||||||
const gitTaskBuild = (cb: gulp.TaskFunctionCallback) => {
|
const gitTaskBuild = (cb: gulp.TaskFunctionCallback) => {
|
||||||
const manifest = getManifest()
|
const manifest = getManifest();
|
||||||
if (!manifest)
|
if (!manifest) return cb(Error("could not load manifest."));
|
||||||
return cb(Error("could not load manifest."))
|
|
||||||
|
|
||||||
return gulp.src(`${distPath}/${manifest.file.name}-v${manifest.file.version}.zip`)
|
return gulp
|
||||||
.pipe(git.checkout(`v${manifest.file.version}`, { args: '-b' }))
|
.src(`${manifest.file.name}-v${manifest.file.version}.zip`)
|
||||||
|
.pipe(git.checkout(`v${manifest.file.version}`, { args: "-b" }))
|
||||||
.pipe(git.add({ args: "--no-all -f" }))
|
.pipe(git.add({ args: "--no-all -f" }))
|
||||||
.pipe(git.commit(`v${manifest.file.version}`, { args: "-a", disableAppendPaths: true }))
|
.pipe(git.commit(`v${manifest.file.version}`, { args: "-a", disableAppendPaths: true }));
|
||||||
}
|
};
|
||||||
|
|
||||||
const execBuild = gulp.parallel(buildTS, buildLess, buildPacks, copyFiles)
|
const execBuild = gulp.parallel(buildTS, buildLess, buildPacks, copyFiles);
|
||||||
|
|
||||||
exports.build = gulp.series(clean, execBuild, bundleModule)
|
exports.build = gulp.series(clean, execBuild, bundleModule);
|
||||||
exports.buildTarget = gulp.series(setTargetDir, clean, execBuild, bundleModule)
|
exports.buildTarget = gulp.series(setTargetDir, clean, execBuild, bundleModule);
|
||||||
exports.watch = buildWatch
|
exports.watch = buildWatch;
|
||||||
exports.watchTarget = gulp.series(setTargetDir, buildWatch)
|
exports.watchTarget = gulp.series(setTargetDir, buildWatch);
|
||||||
exports.clean = clean
|
exports.clean = clean;
|
||||||
exports.link = linkUserData
|
exports.link = linkUserData;
|
||||||
exports.package = packageBuild
|
exports.package = packageBuild;
|
||||||
exports.update = updateManifest
|
exports.update = updateManifest;
|
||||||
//exports.publish = gulp.series(clean, updateManifest, execBuild, bundleModule, packageBuild, gitTaskManifest, gitTaskBuild)
|
exports.publish = gulp.series(clean, updateManifest, execBuild, bundleModule, packageBuild, gitTaskManifest);
|
||||||
|
|||||||
@@ -1,24 +1,49 @@
|
|||||||
{
|
{
|
||||||
"ACTOR.TypeCharacter": "Charakter",
|
"TYPES.Actor.character": "Charakter",
|
||||||
"ACTOR.TypeNpc": "Kreatur / Nichtspielerfigur",
|
"ACTOR.TypeNpc": "Kreatur / Nichtspielerfigur",
|
||||||
"ACTOR.TypeVehicle": "Transportmittel / Pferd etc.",
|
"ACTOR.TypeVehicle": "Transportmittel / Pferd etc.",
|
||||||
|
|
||||||
"ITEM.TypeItem": "Gegenstand",
|
"TYPES.Item.item": "Gegenstand",
|
||||||
"ITEM.TypeWeapon": "Waffe",
|
"TYPES.Item.skill": "Fertigkeit",
|
||||||
"ITEM.TypeDefensiveWeapon": "Verteidigungswaffe",
|
"TYPES.Item.weapon": "Waffe",
|
||||||
"ITEM.TypeArmor": "Rüstung",
|
"TYPES.Item.defensiveWeapon": "Verteidigungswaffe",
|
||||||
"ITEM.TypeSpell": "Zauber",
|
"TYPES.Item.armor": "Rüstung",
|
||||||
|
"TYPES.Item.spell": "Zauber",
|
||||||
|
"TYPES.Item.effect": "Aktiver Effekt",
|
||||||
|
"TYPES.Item.kampfkunst": "Kampfkunst",
|
||||||
|
"TYPES.Item.container": "Aufbewahrung",
|
||||||
|
|
||||||
|
"midgard5.phase-action": "Handlungsphase",
|
||||||
|
"midgard5.phase-movement": "Bewegungsphase",
|
||||||
|
"midgard5.no-encounter": "Kein Kampf",
|
||||||
|
"midgard5.encounter-not-started": "Kein aktiver Kampf",
|
||||||
|
"midgard5.initiative": "Initiative",
|
||||||
|
|
||||||
|
"midgard5.time-duration": "Dauer",
|
||||||
|
"midgard5.time-round": "Runde(n)",
|
||||||
|
"midgard5.time-minute": "Minute(n)",
|
||||||
|
"midgard5.time-hour": "Stunde(n)",
|
||||||
|
"midgard5.time-limitless": "Unbegrenzt",
|
||||||
|
|
||||||
"midgard5.doRoll": "Würfeln",
|
"midgard5.doRoll": "Würfeln",
|
||||||
"midgard5.learn": "Lernen",
|
"midgard5.learn": "Lernen",
|
||||||
|
|
||||||
"midgard5.label": "Bezeichnung",
|
"midgard5.label": "Bezeichnung",
|
||||||
"midgard5.description": "Beschreibung",
|
"midgard5.description": "Beschreibung",
|
||||||
"midgard5.attribute": "Leiteigenschaft",
|
"midgard5.Characteristic": "Merkmal",
|
||||||
|
"midgard5.characteristics": "Merkmale",
|
||||||
|
"midgard5.background": "Hintergrund",
|
||||||
|
"midgard5.attribute": "Eigenschaft",
|
||||||
|
"midgard5.attributes": "Eigenschaften",
|
||||||
|
"midgard5.points": "Punkte",
|
||||||
|
"midgard5.calculated-value": "Berechneter Wert",
|
||||||
|
"midgard5.calculated-values": "Sonstige Werte",
|
||||||
|
|
||||||
"midgard5.skill": "Fertigkeit",
|
"midgard5.skill": "Fertigkeit",
|
||||||
"midgard5.skill-value": "Fertigkeitswert",
|
"midgard5.skill-value": "Fertigkeitswert",
|
||||||
"midgard5.fw": "FW",
|
"midgard5.fw": "FW",
|
||||||
"midgard5.bonus": "Bonus",
|
"midgard5.bonus": "Bonus",
|
||||||
|
"midgard5.bonuses": "Boni",
|
||||||
"midgard5.ew": "EW",
|
"midgard5.ew": "EW",
|
||||||
"midgard5.pp-short": "PP",
|
"midgard5.pp-short": "PP",
|
||||||
"midgard5.pp": "Praxispunkte",
|
"midgard5.pp": "Praxispunkte",
|
||||||
@@ -27,6 +52,7 @@
|
|||||||
"midgard5.item-quantity": "Menge",
|
"midgard5.item-quantity": "Menge",
|
||||||
"midgard5.item-onbody": "Am Körper",
|
"midgard5.item-onbody": "Am Körper",
|
||||||
"midgard5.item-ismagic": "Ist Magisch",
|
"midgard5.item-ismagic": "Ist Magisch",
|
||||||
|
"midgard5.item-wealth": "Vermögenswert",
|
||||||
|
|
||||||
"midgard5.actor-lp": "Lebenspunkte",
|
"midgard5.actor-lp": "Lebenspunkte",
|
||||||
"midgard5.actor-lp-short": "LP",
|
"midgard5.actor-lp-short": "LP",
|
||||||
@@ -50,6 +76,8 @@
|
|||||||
"midgard5.actor-zt-long": "Zaubertalent",
|
"midgard5.actor-zt-long": "Zaubertalent",
|
||||||
"midgard5.actor-wk": "Wk",
|
"midgard5.actor-wk": "Wk",
|
||||||
"midgard5.actor-wk-long": "Willenskraft",
|
"midgard5.actor-wk-long": "Willenskraft",
|
||||||
|
"midgard5.actor-git": "GiT",
|
||||||
|
"midgard5.actor-git-long": "Gifttolleranz",
|
||||||
|
|
||||||
"midgard5.aktuell": "Akt.",
|
"midgard5.aktuell": "Akt.",
|
||||||
"midgard5.maximum": "Max.",
|
"midgard5.maximum": "Max.",
|
||||||
@@ -60,10 +88,16 @@
|
|||||||
"midgard5.skills": "Fertigkeiten",
|
"midgard5.skills": "Fertigkeiten",
|
||||||
"midgard5.gear": "Ausrüstung",
|
"midgard5.gear": "Ausrüstung",
|
||||||
"midgard5.spells": "Zauber",
|
"midgard5.spells": "Zauber",
|
||||||
|
"midgard5.effects": "Aktive Effekte",
|
||||||
|
"midgard5.kampfkuenste": "Kampfkünste",
|
||||||
|
"midgard5.combat": "Kampf",
|
||||||
|
|
||||||
"midgard5.class": "Klasse",
|
|
||||||
|
"midgard5.actor-name": "Figur",
|
||||||
|
"midgard5.level": "Grad",
|
||||||
|
"midgard5.class": "Typ",
|
||||||
"midgard5.race": "Rasse",
|
"midgard5.race": "Rasse",
|
||||||
"midgard5.magicUsing": "zauberkundig",
|
"midgard5.magicUsing": "Zauberkundig",
|
||||||
"midgard5.gender": "Geschlecht",
|
"midgard5.gender": "Geschlecht",
|
||||||
"midgard5.weight": "Gewicht",
|
"midgard5.weight": "Gewicht",
|
||||||
"midgard5.height": "Größe",
|
"midgard5.height": "Größe",
|
||||||
@@ -74,27 +108,48 @@
|
|||||||
"midgard5.origin": "Heimat",
|
"midgard5.origin": "Heimat",
|
||||||
"midgard5.faith": "Glaube",
|
"midgard5.faith": "Glaube",
|
||||||
|
|
||||||
|
"midgard5.currency": "Geld",
|
||||||
|
"midgard5.currency-gold": "Gold",
|
||||||
|
"midgard5.currency-silver": "Silber",
|
||||||
|
"midgard5.currency-copper": "Kupfer",
|
||||||
|
"midgard5.currency-wealth": "Vermögen in GS",
|
||||||
|
"midgard5.currency-available": "verfügbares Vermögen",
|
||||||
|
"midgard5.hoard": "aktueller Hort",
|
||||||
|
"midgard5.hoardMin": "benötigter Mindesthort",
|
||||||
|
"midgard5.hoard-next": "Hort für nächsten Grad",
|
||||||
|
"midgard5.hoarded": "Hort",
|
||||||
|
|
||||||
|
"midgard5.no-container": "Ohne",
|
||||||
|
|
||||||
"midgard5.exp-overall": "Erfahrungsschatz",
|
"midgard5.exp-overall": "Erfahrungsschatz",
|
||||||
"midgard5.exp-available": "Erfahrungspunkte",
|
"midgard5.exp-available": "Erfahrungspunkte",
|
||||||
"midgard5.grace": "Göttliche Gnade",
|
"midgard5.grace": "Göttliche Gnade",
|
||||||
"midgard5.destiny": "Schicksalsgunst",
|
"midgard5.destiny": "Schicksalsgunst",
|
||||||
"midgard5.luckPoints": "Glückspunkte",
|
"midgard5.luckPoints": "Glückspunkte",
|
||||||
|
|
||||||
|
"midgard5.abrichten": "Abrichten",
|
||||||
"midgard5.akrobatik": "Akrobatik",
|
"midgard5.akrobatik": "Akrobatik",
|
||||||
"midgard5.alchimie": "Alchimie",
|
"midgard5.alchimie": "Alchimie",
|
||||||
"midgard5.anfuehren": "Anführen",
|
"midgard5.anfuehren": "Anführen",
|
||||||
|
"midgard5.askese": "Askese",
|
||||||
|
"midgard5.astrologie": "Astrologie",
|
||||||
"midgard5.athletik": "Athletik",
|
"midgard5.athletik": "Athletik",
|
||||||
"midgard5.balancieren": "Balancieren",
|
"midgard5.balancieren": "Balancieren",
|
||||||
"midgard5.beidhaendigerKampf": "Beidhändiger Kampf",
|
"midgard5.beidhaendigerKampf": "Beidhändiger Kampf",
|
||||||
|
"midgard5.bergreiten": "Bergreiten",
|
||||||
"midgard5.beredsamkeit": "Beredsamkeit",
|
"midgard5.beredsamkeit": "Beredsamkeit",
|
||||||
"midgard5.betaeuben": "Betäuben",
|
"midgard5.betaeuben": "Betäuben",
|
||||||
|
"midgard5.betaeubungsgriff": "Betäubungsgriff",
|
||||||
"midgard5.bootfahren": "Bootfahren",
|
"midgard5.bootfahren": "Bootfahren",
|
||||||
|
"midgard5.dickhaeuterLenken": "Dickhäuter lenken",
|
||||||
"midgard5.ersteHilfe": "Erste Hilfe",
|
"midgard5.ersteHilfe": "Erste Hilfe",
|
||||||
"midgard5.etikette": "Etikette",
|
"midgard5.etikette": "Etikette",
|
||||||
"midgard5.fallenEntdecken": "Fallen entdecken",
|
"midgard5.fallenEntdecken": "Fallen entdecken",
|
||||||
"midgard5.fallenmechanik": "Fallenmechanik",
|
"midgard5.fallenmechanik": "Fallenmechanik",
|
||||||
"midgard5.faelschen": "Fälschen",
|
"midgard5.faelschen": "Fälschen",
|
||||||
|
"midgard5.fangen": "Fangen",
|
||||||
"midgard5.fechten": "Fechten",
|
"midgard5.fechten": "Fechten",
|
||||||
|
"midgard5.feueralchimie": "Feueralchimie",
|
||||||
"midgard5.gassenwissen": "Gassenwissen",
|
"midgard5.gassenwissen": "Gassenwissen",
|
||||||
"midgard5.gaukeln": "Gaukeln",
|
"midgard5.gaukeln": "Gaukeln",
|
||||||
"midgard5.gelaendelauf": "Geländelauf",
|
"midgard5.gelaendelauf": "Geländelauf",
|
||||||
@@ -103,33 +158,55 @@
|
|||||||
"midgard5.gluecksspiel": "Glücksspiel",
|
"midgard5.gluecksspiel": "Glücksspiel",
|
||||||
"midgard5.heilkunde": "Heilkunde",
|
"midgard5.heilkunde": "Heilkunde",
|
||||||
"midgard5.kampfInVollruestung": "Kampf in Vollrüstung",
|
"midgard5.kampfInVollruestung": "Kampf in Vollrüstung",
|
||||||
|
"midgard5.kampfInSchlachtreihe": "Kampf in Schlachtreihe",
|
||||||
|
"midgard5.kampfkunst": "Kampfkunst",
|
||||||
|
"midgard5.kido": "Kido",
|
||||||
"midgard5.klettern": "Klettern",
|
"midgard5.klettern": "Klettern",
|
||||||
"midgard5.landeskunde": "Landeskunde",
|
"midgard5.landeskunde": "Landeskunde",
|
||||||
"midgard5.laufen": "Laufen",
|
"midgard5.laufen": "Laufen",
|
||||||
"midgard5.lesenVonZauberschrift": "Lesen von Zauberschrift",
|
"midgard5.lesenVonZauberschrift": "Lesen von Zauberschrift",
|
||||||
|
"midgard5.lesenVonZauberrunen": "Lesen von Zauberrunen",
|
||||||
"midgard5.meditieren": "Meditieren",
|
"midgard5.meditieren": "Meditieren",
|
||||||
"midgard5.menschenkenntnis": "Menschenkenntnis",
|
"midgard5.menschenkenntnis": "Menschenkenntnis",
|
||||||
"midgard5.meucheln": "Meucheln",
|
"midgard5.meucheln": "Meucheln",
|
||||||
"midgard5.musizieren": "Musizieren",
|
"midgard5.musizieren": "Musizieren",
|
||||||
"midgard5.naturkunde": "Naturkunde",
|
"midgard5.naturkunde": "Naturkunde",
|
||||||
|
"midgard5.ninjutsu": "NinJutsu",
|
||||||
|
"midgard5.orakelkunst": "Orakelkunst",
|
||||||
"midgard5.pflanzenkunde": "Pflanzenkunde",
|
"midgard5.pflanzenkunde": "Pflanzenkunde",
|
||||||
|
"midgard5.raunen": "Raunen",
|
||||||
"midgard5.reiten": "Reiten",
|
"midgard5.reiten": "Reiten",
|
||||||
"midgard5.reiterkampf": "Reiterkampf",
|
"midgard5.reiterkampf": "Reiterkampf",
|
||||||
|
"midgard5.rutengehen": "Rutengehen",
|
||||||
"midgard5.scharfschiessen": "Scharfschießen",
|
"midgard5.scharfschiessen": "Scharfschießen",
|
||||||
|
"midgard5.schiesskunst": "Schießkunst",
|
||||||
"midgard5.schleichen": "Schleichen",
|
"midgard5.schleichen": "Schleichen",
|
||||||
"midgard5.schloesserOeffnen": "Schlösser öffnen",
|
"midgard5.schloesserOeffnen": "Schlösser öffnen",
|
||||||
|
"midgard5.schmerzErtragen": "Schmerzen ertragen",
|
||||||
"midgard5.schwimmen": "Schwimmen",
|
"midgard5.schwimmen": "Schwimmen",
|
||||||
"midgard5.seilkunst": "Seilkunst",
|
"midgard5.seilkunst": "Seilkunst",
|
||||||
|
"midgard5.selbstkontrolle": "Selbstkontrolle",
|
||||||
|
"midgard5.singen": "Singen",
|
||||||
|
"midgard5.skifahren": "Skifahren",
|
||||||
|
"midgard5.spinnengang": "Spinnengang",
|
||||||
|
"midgard5.speerfechten": "Speerfechten",
|
||||||
"midgard5.spurensuche": "Spurensuche",
|
"midgard5.spurensuche": "Spurensuche",
|
||||||
"midgard5.stehlen": "Stehlen",
|
"midgard5.stehlen": "Stehlen",
|
||||||
|
"midgard5.taitschi": "TaiTschi",
|
||||||
"midgard5.tarnen": "Tarnen",
|
"midgard5.tarnen": "Tarnen",
|
||||||
|
"midgard5.tanzen": "Tanzen",
|
||||||
"midgard5.tauchen": "Tauchen",
|
"midgard5.tauchen": "Tauchen",
|
||||||
|
"midgard5.thaumagraphie": "Thaumagraphie",
|
||||||
|
"midgard5.thaumalogie": "Thaumalogie",
|
||||||
"midgard5.tierkunde": "Tierkunde",
|
"midgard5.tierkunde": "Tierkunde",
|
||||||
"midgard5.ueberleben": "Überleben",
|
"midgard5.ueberleben": "Überleben",
|
||||||
"midgard5.verfuehren": "Verführen",
|
"midgard5.verfuehren": "Verführen",
|
||||||
"midgard5.verhoeren": "Verhören",
|
"midgard5.verhoeren": "Verhören",
|
||||||
"midgard5.verstellen": "Verstellen",
|
"midgard5.verstellen": "Verstellen",
|
||||||
|
"midgard5.volkstanz": "Volkstanz",
|
||||||
"midgard5.wagenlenken": "Wagenlenken",
|
"midgard5.wagenlenken": "Wagenlenken",
|
||||||
|
"midgard5.wahrsagen": "Wahrsagen",
|
||||||
|
"midgard5.wasserkampf": "Wasserkampf",
|
||||||
"midgard5.zauberkunde": "Zauberkunde",
|
"midgard5.zauberkunde": "Zauberkunde",
|
||||||
|
|
||||||
"midgard5.armor": "Rüstung",
|
"midgard5.armor": "Rüstung",
|
||||||
@@ -146,23 +223,43 @@
|
|||||||
"midgard5.spellCasting": "Zaubern",
|
"midgard5.spellCasting": "Zaubern",
|
||||||
"midgard5.spellBonus": "Zauberbonus",
|
"midgard5.spellBonus": "Zauberbonus",
|
||||||
"midgard5.brawl": "Raufen",
|
"midgard5.brawl": "Raufen",
|
||||||
"midgard5.poisonResistance": "Giftresistenz",
|
"midgard5.poisonResistance": "Gifttolleranz",
|
||||||
"midgard5.enduranceBonus": "Ausdauerbonus",
|
"midgard5.enduranceBonus": "Ausdauerbonus",
|
||||||
|
"midgard5.lpProtection": "Rüstungsschutz (LP)",
|
||||||
|
"midgard5.apProtection": "Rüstungsschutz (AP)",
|
||||||
|
"midgard5.perception": "Wahrnehmung",
|
||||||
|
"midgard5.drinking": "Trinken",
|
||||||
|
|
||||||
"midgard5.new-skill": "Neue Fertigkeit",
|
"midgard5.new-skill": "Neue Fertigkeit",
|
||||||
"midgard5.special": "Spezial",
|
"midgard5.special": "Spezial",
|
||||||
"midgard5.learned-skill": "Gelernte Fertigkeit",
|
"midgard5.learned-skill": "Gelernte Fertigkeit",
|
||||||
|
"midgard5.learned-skills": "Gelernte Fertigkeiten",
|
||||||
"midgard5.language": "Sprache",
|
"midgard5.language": "Sprache",
|
||||||
|
"midgard5.languages": "Sprachen",
|
||||||
"midgard5.weapon-skill": "Waffenfertigkeit",
|
"midgard5.weapon-skill": "Waffenfertigkeit",
|
||||||
|
"midgard5.weapon-skills": "Waffenfertigkeiten",
|
||||||
"midgard5.unlearned-skill": "Ungelernte Fertigkeit",
|
"midgard5.unlearned-skill": "Ungelernte Fertigkeit",
|
||||||
"midgard5.innate-ability": "Angeborene Fähigkeit",
|
"midgard5.unlearned-skills": "Ungelernte Fertigkeiten",
|
||||||
|
"midgard5.innate-ability": "Angeborene/Besondere Fertigkeit",
|
||||||
|
"midgard5.innate-abilities": "Angeborene/Besondere Fertigkeit",
|
||||||
|
|
||||||
"midgard5.base-damage": "Grundschaden",
|
"midgard5.base-damage": "Grundschaden",
|
||||||
|
"midgard5.weapon": "Waffe",
|
||||||
|
"midgard5.weapons": "Waffen",
|
||||||
"midgard5.defensive-weapon": "Verteidigungswaffe",
|
"midgard5.defensive-weapon": "Verteidigungswaffe",
|
||||||
|
"midgard5.defensive-weapons": "Verteidigungswaffen",
|
||||||
"midgard5.no-skill": "Keine Fertigkeit",
|
"midgard5.no-skill": "Keine Fertigkeit",
|
||||||
"midgard5.magic": "magisch",
|
"midgard5.magic": "magisch",
|
||||||
|
"midgard5.valuable": "Vermögen",
|
||||||
|
"midgard5.equipped": "Ausgerüstet",
|
||||||
|
"midgard5.active": "Aktiv",
|
||||||
"midgard5.rangedWeapon": "Schusswaffe",
|
"midgard5.rangedWeapon": "Schusswaffe",
|
||||||
"midgard5.assignItemToCharacter": "Füge Gegenstand einem Charakter hinzu, um Fähigkeit auwählen zu können",
|
"midgard5.assignItemToCharacter": "Füge Gegenstand einem Charakter hinzu, um hier etwas auswählen zu können",
|
||||||
|
"midgard5.showAll": "Alle anzeigen",
|
||||||
|
"midgard5.wealthAndContainers": "Vermögen und Aufbewahrung",
|
||||||
|
"midgard5.itemsInContainers": "Gegenstände in Aufbewahrung",
|
||||||
|
"midgard5.allItems": "Alle Gegenstände",
|
||||||
|
|
||||||
|
|
||||||
"midgard5.pw": "Prüfwurf",
|
"midgard5.pw": "Prüfwurf",
|
||||||
"midgard5.attack": "Angriff",
|
"midgard5.attack": "Angriff",
|
||||||
@@ -204,10 +301,44 @@
|
|||||||
"midgard5.spell-effectDuration": "Wirkungsdauer",
|
"midgard5.spell-effectDuration": "Wirkungsdauer",
|
||||||
"midgard5.spell-origin": "Ursprung",
|
"midgard5.spell-origin": "Ursprung",
|
||||||
|
|
||||||
|
"midgard5.kampfkunst-type": "Kampfkunst Art",
|
||||||
|
"midgard5.kampfkunst-variante": "Kampfkunst Variante",
|
||||||
|
"midgard5.kampfkunst-variante-short": "Var",
|
||||||
|
"midgard5.kido-type": "Kido Art",
|
||||||
|
"midgard5.kido-variante": "Kido Variante",
|
||||||
|
|
||||||
|
"midgard5.kampfkunst-type-angriff": "Angriffstechnik",
|
||||||
|
"midgard5.kampfkunst-type-verteidigung": "Verteidigungstechnik",
|
||||||
|
"midgard5.kampfkunst-type-finte": "Finte",
|
||||||
|
"midgard5.kampfkunst-type-geist": "Geistestechnik",
|
||||||
|
"midgard5.kampfkunst-type-schießkunst": "Schießkunst",
|
||||||
|
"midgard5.kampfkunst-type-fechten": "Fechtkunst",
|
||||||
|
"midgard5.kido-type-angriff": "Kido Angriffstechnik",
|
||||||
|
"midgard5.kido-type-verteidigung": "Kido Verteidigungstechnik",
|
||||||
|
"midgard5.kido-type-finte": "Kido Finte",
|
||||||
|
"midgard5.kido-type-leib": "Kido Leibestechnik",
|
||||||
|
|
||||||
|
"midgard5.kampfkunst-variante-anstuermen": "Anstürmen",
|
||||||
|
"midgard5.kampfkunst-variante-attackieren": "Attackieren",
|
||||||
|
"midgard5.kampfkunst-variante-entwaffnen": "Entwaffnen",
|
||||||
|
|
||||||
|
"midgard5.kido-variante-anspringen": "Anspringen",
|
||||||
|
"midgard5.kido-variante-attackieren": "Attackieren",
|
||||||
|
"midgard5.kido-variante-entwaffnen": "Entwaffnen",
|
||||||
|
"midgard5.kido-variante-werfen": "Werfen",
|
||||||
|
"midgard5.kido-variante-ausweichen": "Ausweichen",
|
||||||
|
"midgard5.kido-variante-blockieren": "Blockieren",
|
||||||
|
"midgard5.kido-variante-bewegen": "Bewegen",
|
||||||
|
"midgard5.kido-variante-kontrollieren": "Kontrollieren",
|
||||||
|
|
||||||
"midgard5.mod-operation-add100": "Addieren (max 100)",
|
"midgard5.mod-operation-add100": "Addieren (max 100)",
|
||||||
|
"midgard5.mod-operation-roll": "Wurf Modifikation",
|
||||||
"midgard5.mod-operation-add": "Addieren",
|
"midgard5.mod-operation-add": "Addieren",
|
||||||
"midgard5.mod-operation-set": "Basiswert",
|
"midgard5.mod-operation-set": "Basiswert",
|
||||||
"midgard5.mod-operation-fixed": "Fester Wert",
|
"midgard5.mod-operation-fixed": "Fester Wert",
|
||||||
|
"midgard5.mod-operation-subtract": "Subtrahieren",
|
||||||
|
"midgard5.mod-operation-multiply": "Multiplizieren",
|
||||||
|
"midgard5.mod-operation-division": "Dividieren",
|
||||||
|
|
||||||
"midgard5.mod-stat-defenseBonus": "Abwehrbonus",
|
"midgard5.mod-stat-defenseBonus": "Abwehrbonus",
|
||||||
"midgard5.mod-stat-attackBonus": "Angriffsbonus",
|
"midgard5.mod-stat-attackBonus": "Angriffsbonus",
|
||||||
@@ -217,9 +348,13 @@
|
|||||||
"midgard5.mod-stat-resistanceBody": "Resistenz Körper",
|
"midgard5.mod-stat-resistanceBody": "Resistenz Körper",
|
||||||
"midgard5.mod-stat-spellCasting": "Zaubern",
|
"midgard5.mod-stat-spellCasting": "Zaubern",
|
||||||
"midgard5.mod-stat-brawl": "Raufen",
|
"midgard5.mod-stat-brawl": "Raufen",
|
||||||
"midgard5.mod-stat-poisonResistance": "Giftresistenz",
|
"midgard5.mod-stat-poisonResistance": "Gifttolleranz",
|
||||||
"midgard5.mod-stat-lp": "Lebenspunkte",
|
"midgard5.mod-stat-lp": "Lebenspunkte",
|
||||||
"midgard5.mod-stat-ap": "Ausdauerpunkte",
|
"midgard5.mod-stat-ap": "Ausdauerpunkte",
|
||||||
|
"midgard5.mod-stat-lpProtection": "Rüstungsschutz (LP)",
|
||||||
|
"midgard5.mod-stat-apProtection": "Rüstungsschutz (AP)",
|
||||||
|
"midgard5.mod-stat-perception": "Wahrnehmung",
|
||||||
|
"midgard5.mod-stat-drinking": "Trinken",
|
||||||
|
|
||||||
"midgard5.mod-type": "Typ der Modifikation",
|
"midgard5.mod-type": "Typ der Modifikation",
|
||||||
"midgard5.mod-id": "Was soll modifiziert werden",
|
"midgard5.mod-id": "Was soll modifiziert werden",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "foundry-system-midgard5",
|
"name": "foundry-system-midgard5",
|
||||||
"version": "1.2.1",
|
"version": "2.4.2",
|
||||||
"description": "",
|
"description": "",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
@@ -13,7 +13,7 @@
|
|||||||
"build:watch:target": "gulp watchTarget",
|
"build:watch:target": "gulp watchTarget",
|
||||||
"clean": "gulp clean && gulp link --clean"
|
"clean": "gulp clean && gulp link --clean"
|
||||||
},
|
},
|
||||||
"author": "Simon Gustavs",
|
"author": "Byroks",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@babel/core": "^7.15.0",
|
"@babel/core": "^7.15.0",
|
||||||
@@ -58,4 +58,4 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"handlebars-helpers": "^0.10.0"
|
"handlebars-helpers": "^0.10.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Angelhaken", "type": "item", "img": "icons/tools/fishing/hook-barbed-steel-blue.webp", "system": {"description": "KOD S. 201", "equippable": false, "equipped": true, "value": null, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700336817949, "modifiedTime": 1700344214956, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "ptPhWX3Otql5YD5K", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Angelschnur", "type": "item", "img": "icons/tools/fishing/reel-brown-white.webp", "system": {"description": "KOD S. 201", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700336890575, "modifiedTime": 1700344214956, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "HtgeX3gqlYUNmoT7", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Armbrustbolzen", "type": "item", "img": "icons/weapons/ammunition/arrows-broadhead-white.webp", "system": {"description": "KOD S. 201", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700336933022, "modifiedTime": 1700344214956, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "E9BcGFvPHIG8uFAt", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Berserkerpilz", "type": "item", "img": "icons/consumables/mushrooms/umbontae-green.webp", "system": {"description": "<p>ARK S. 174</p><p></p><p>@UUID[Compendium.midgard5.kampfzustaende.Item.]{Berserkergang}</p>", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700337107612, "modifiedTime": 1700344214956, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "6HhMzrc0X70FM0Bo", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Blasrohrnadel", "type": "item", "img": "icons/weapons/ammunition/arrows-fletching.webp", "system": {"description": "KOD S. 201", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700337134535, "modifiedTime": 1700344214957, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "Zq43rQLtzBLeJUqf", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Bleikugel", "type": "item", "img": "icons/weapons/ammunition/shot-round-lead.webp", "system": {"description": "KOD S. 201", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700337162880, "modifiedTime": 1700344214957, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "tuEU5XXed5g5N1Y6", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Bolzenk\u00f6cher", "type": "item", "img": "icons/containers/ammunition/arrows-quiver-grey-gold.webp", "system": {"description": "KOD S. 199", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700340687915, "modifiedTime": 1700344214963, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "5LcPj2gGQKaY0PCq", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Brecheisen", "type": "item", "img": "icons/tools/fasteners/bracket.webp", "system": {"description": "KOD S. 201", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700337186426, "modifiedTime": 1700344214957, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "LbVNFA0iXvadi1Zs", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Bronzegl\u00f6ckchen, klein", "type": "item", "img": "icons/tools/instruments/bell-brass-brown.webp", "system": {"description": "KOD S. 201", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700337474249, "modifiedTime": 1700344214957, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "HvbEC1LJXfa6WGIa", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Bronzehorn", "type": "item", "img": "icons/containers/misc/horn-drinking-wood-teal.webp", "system": {"description": "KOD S. 202", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700340198012, "modifiedTime": 1700344214962, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "NTcOlPb3j7TBaYMv", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Decke, warm", "type": "item", "img": "icons/sundries/survival/bedroll-blue-red.webp", "system": {"description": "KOD S. 201", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700337535983, "modifiedTime": 1700344214957, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "YWptt5cY8AuW6XNO", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Dolchscheide, einfach", "type": "item", "img": "icons/equipment/waist/belt-buckle-square-red.webp", "system": {"description": "KOD S. 199", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700337586636, "modifiedTime": 1700344214957, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "4oz3iGQXLyqhWqsf", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Dolchscheide, verziert", "type": "item", "img": "icons/equipment/waist/belt-leather-black-brass.webp", "system": {"description": "KOD S. 199", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700337586636, "modifiedTime": 1700344214958, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "XuFi9DRVZXVbCJ7R", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Einbrecherwerkzeug", "type": "item", "img": "icons/sundries/misc/key-ring-long-silver.webp", "system": {"description": "KOD S. 201", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700337820582, "modifiedTime": 1700344214958, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "j14QP0JrN3xpy6lo", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Eisenkeil", "type": "item", "img": "icons/commodities/metal/hinge-brass.webp", "system": {"description": "KOD S. 201", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700337884280, "modifiedTime": 1700344214958, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "WbebaVEJHFQj2z87", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Erste-Hilfe-Ausr\u00fcstung", "type": "item", "img": "icons/magic/life/cross-worn-green.webp", "system": {"description": "KOD S. 201", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700337948091, "modifiedTime": 1700344214958, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "7A2FMFRTU74hK6hY", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Erste-Hilfe-Heilmittel", "type": "item", "img": "icons/tools/laboratory/bowl-herbs-green.webp", "system": {"description": "KOD S. 201", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700337948091, "modifiedTime": 1700344214959, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "X71T2SmtyzvmFhLB", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Fackeln", "type": "item", "img": "icons/sundries/lights/torch-brown-lit.webp", "system": {"description": "KOD S. 201", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700338067075, "modifiedTime": 1700344214959, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "TGkot7doVxjuYogC", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Fernrohr (2x)", "type": "item", "img": "icons/tools/navigation/spyglass-telescope-brass.webp", "system": {"description": "KOD S. 201", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700338138751, "modifiedTime": 1700344214959, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "1SBFERO074zU5Y72", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Feuerstein & Zunder", "type": "item", "img": "icons/tools/smithing/furnace-fire-metal-orange.webp", "system": {"description": "KOD S. 201", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700338202933, "modifiedTime": 1700344214959, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "ukLdWCebvdlYWcrV", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Feuertopf aus Ton", "type": "item", "img": "icons/containers/kitchenware/bowl-clay-brown.webp", "system": {"description": "KOD S. 201", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700338268521, "modifiedTime": 1700344214959, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "ziuy5AYML53EjOGW", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Fischernetz", "type": "item", "img": "icons/tools/fishing/net-tan.webp", "system": {"description": "KOD S. 201", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700338297878, "modifiedTime": 1700344214959, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "p0VcPlKCuthyeI1T", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Flohpulver", "type": "item", "img": "icons/consumables/grains/sack-grain-open-white.webp", "system": {"description": "<p>ARK S. 175</p><p></p><p>@UUID[Compendium.midgard5.zauberwirkungen.Item.TRgAdyTpNX6xFM7f]{Flohpulver}</p>", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700338323057, "modifiedTime": 1700344214960, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "7eTVSg335jYoSoft", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Fl\u00f6te", "type": "item", "img": "icons/tools/instruments/flute-simple-wood.webp", "system": {"description": "KOD S. 202", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700338346745, "modifiedTime": 1700344214960, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "07068MEDLhOsV4jc", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Garn", "type": "item", "img": "icons/sundries/survival/rope-coiled-brown.webp", "system": {"description": "KOD S. 201", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700338366220, "modifiedTime": 1700344214960, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "jmuTti0JrIoqqH8O", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Greifvogel", "type": "item", "img": "icons/creatures/birds/corvid-call-sound-glowing.webp", "system": {"description": "KOD S. 202", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700338422548, "modifiedTime": 1700344214960, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "8PoDR1FQgM8xrJKV", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Greifvogelfutter", "type": "item", "img": "icons/consumables/meat/cut-bowl-wooden-pink-green.webp", "system": {"description": "KOD S. 200", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700338454422, "modifiedTime": 1700344214960, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "ND48kN2hmgCS8ed3", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "G\u00fcrtel", "type": "item", "img": "icons/equipment/waist/belt-buckle-square-leather-brown.webp", "system": {"description": "KOD S. 199", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700338561470, "modifiedTime": 1700344214961, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "cQFMuoAkQVeKdc97", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Hammer", "type": "item", "img": "icons/tools/smithing/hammer-sledge-steel-grey.webp", "system": {"description": "KOD S. 201", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700338588641, "modifiedTime": 1700344214961, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "XEM8MiGJkxLxBBRs", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Hand- und Fussfessel mit Kette", "type": "item", "img": "icons/sundries/survival/cuffs-shackles-steel.webp", "system": {"description": "KOD S. 201", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700339458394, "modifiedTime": 1700344214961, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "1ifVYP0yoHL9iCYW", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Handwaage mit Waagschalen", "type": "item", "img": "icons/skills/social/trading-justice-scale-gold.webp", "system": {"description": "KOD S. 201", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700339735680, "modifiedTime": 1700344214961, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "tU2qA3OsEIqLXRZ0", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Harfe", "type": "item", "img": "icons/tools/instruments/harp-gold-glowing.webp", "system": {"description": "KOD S. 202", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700339779526, "modifiedTime": 1700344214961, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "nPwxqIHFi10yjm9B", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Heiltrunk", "type": "item", "img": "icons/consumables/potions/bottle-corked-green.webp", "system": {"description": "ARK S. 175 [[1d6]]", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {"0": {"type": "stat", "id": "lp", "operation": "add", "value": null}}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700339806059, "modifiedTime": 1700344214961, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "LHgjofEluOhVbWwD", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Hemd", "type": "item", "img": "icons/equipment/chest/shirt-collared-brown.webp", "system": {"description": "KOD S. 199", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700339967376, "modifiedTime": 1700344214962, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "RQluqa74y7CvPKDx", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Holzbalken", "type": "item", "img": "icons/commodities/wood/lumber-square-beam.webp", "system": {"description": "KOD S. 201", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700340002857, "modifiedTime": 1700344214962, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "lnTbuIhulXPjYT5F", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Holzkohle", "type": "item", "img": "icons/commodities/gems/powder-raw-white.webp", "system": {"description": "KOD S. 201", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700340057496, "modifiedTime": 1700344214962, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "D0IHREXgPafauEeM", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Holzpflock", "type": "item", "img": "icons/sundries/survival/stake-rough-heavy-brown.webp", "system": {"description": "KOD S. 201", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700340160962, "modifiedTime": 1700344214962, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "rostQgltuHrNAJTc", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Hose", "type": "item", "img": "icons/equipment/leg/pants-leather-tasset-red.webp", "system": {"description": "KOD S. 199", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700340244299, "modifiedTime": 1700344214963, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "tQdkwsDZgr6MTyCH", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Hundefutter", "type": "item", "img": "icons/consumables/meat/steak-glowing-fatty-white.webp", "system": {"description": "KOD S. 200", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700340332022, "modifiedTime": 1700344214963, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "p23gvctvzlKndysF", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Jagdhund", "type": "item", "img": "icons/creatures/abilities/wolf-howl-moon-purple.webp", "system": {"description": "KOD S. 202", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700340413210, "modifiedTime": 1700344214963, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "OdTUAeIzfBs4Znuq", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Kampfhund", "type": "item", "img": "icons/creatures/abilities/mouth-teeth-long-red.webp", "system": {"description": "KOD S. 202", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700340495804, "modifiedTime": 1700344214963, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "1OYNWsCEadW6wpDN", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Kilt", "type": "item", "img": "icons/equipment/leg/skirt-cloth-red.webp", "system": {"description": "KOD S. 199", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700340541758, "modifiedTime": 1700344214963, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "x7Hcn5CrioNhDW2B", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Kleid", "type": "item", "img": "icons/equipment/chest/robe-layered-teal.webp", "system": {"description": "KOD S. 199", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700340636292, "modifiedTime": 1700344214963, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "3SjCq2wEdBhQgWN3", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Krafttrunk 1W6", "type": "item", "img": "icons/consumables/potions/bottle-corked-blue.webp", "system": {"description": "<p>ARK S. 175</p><p></p><p>[[1d6]]</p>", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {"0": {"type": "stat", "id": "ap", "operation": "add", "value": 0}}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700340760812, "modifiedTime": 1700344214964, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "tFa73yJT05w6CFc4", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Krafttrunk 2W6", "type": "item", "img": "icons/consumables/potions/bottle-corked-blue.webp", "system": {"description": "<p>ARK S. 175</p><p></p><p>[[2d6]]</p>", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {"0": {"type": "stat", "id": "ap", "operation": "add", "value": 0}}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700340760812, "modifiedTime": 1700344214964, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "rdqrGsNAGQYels8W", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Krafttrunk 3W6", "type": "item", "img": "icons/consumables/potions/bottle-corked-blue.webp", "system": {"description": "<p>ARK S. 175</p><p></p><p>[[3d6]]</p>", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {"0": {"type": "stat", "id": "ap", "operation": "add", "value": 0}}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700340760812, "modifiedTime": 1700344214964, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "XOraVIzffPmQid13", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Kraut der konzentrierten Energie", "type": "item", "img": "icons/commodities/flowers/dandelion-pod-blue.webp", "system": {"description": "ARK S. 175", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700340819892, "modifiedTime": 1700344214964, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "cP1thMQpKmJnp2Ei", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Kreidest\u00fcck", "type": "item", "img": "icons/commodities/stone/ore-chunk-white.webp", "system": {"description": "KOD S. 201", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700341013171, "modifiedTime": 1700344214964, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "hGoH4ADtYsKM4MW0", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Kristallspiegel", "type": "item", "img": "icons/commodities/treasure/token-silver-blue.webp", "system": {"description": "KOD S. 201", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700343296333, "modifiedTime": 1700344214971, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "Jf3M0R8VFPk68FFi", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Kupferdraht", "type": "item", "img": "icons/tools/hand/lockpicks-steel-grey.webp", "system": {"description": "KOD S. 201", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700341109013, "modifiedTime": 1700344214965, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "osAv07ozhccIpF8e", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Kutte", "type": "item", "img": "icons/equipment/head/hood-cloth-teal.webp", "system": {"description": "KOD S. 199", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700341247991, "modifiedTime": 1700344214965, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "G4qmduHsHdEAWHaK", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Lampen\u00f6l", "type": "item", "img": "icons/consumables/potions/potion-jar-corked-orange.webp", "system": {"description": "KOD S. 201", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700341281337, "modifiedTime": 1700344214965, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "og0ZLGP1YgMR8ElR", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Laterne, abblendbar", "type": "item", "img": "icons/sundries/lights/lantern-iron-yellow.webp", "system": {"description": "KOD S. 201", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700341362507, "modifiedTime": 1700344214965, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "xFvCBbvhdEJyyukV", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Laterne", "type": "item", "img": "icons/sundries/lights/lantern-iron-lit-yellow.webp", "system": {"description": "KOD S. 201", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700341336215, "modifiedTime": 1700344214965, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "B2Xg6mVdKs4RR8Pm", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Laute", "type": "item", "img": "icons/tools/instruments/lute-gold-brown.webp", "system": {"description": "KOD S. 202", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700341380164, "modifiedTime": 1700344214965, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "w74foUkMyF3TXwVk", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Lederhandschuhe", "type": "item", "img": "icons/equipment/hand/gauntlet-simple-leather-brown.webp", "system": {"description": "KOD S. 199", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700339697427, "modifiedTime": 1700344214961, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "zBFahd3ATMoonOhR", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Ledertasche, Bleikugeln", "type": "item", "img": "icons/containers/ammunition/powder-horn-worn.webp", "system": {"description": "KOD S. 199", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700341416201, "modifiedTime": 1700344214965, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "41Sp9PothZDTDKyj", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Liebestrank", "type": "item", "img": "icons/consumables/potions/flask-decorated-label-pink.webp", "system": {"description": "ARKS S. 175", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700341450514, "modifiedTime": 1700344214965, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "NKqfJaXUonAZMQOu", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Maganbrot", "type": "item", "img": "icons/consumables/food/bread-toast-tan.webp", "system": {"description": "ARK S. 176", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700341501776, "modifiedTime": 1700344214966, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "4RjCcsb7J5xvlj88", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Metallkette", "type": "item", "img": "icons/commodities/metal/chain-steel.webp", "system": {"description": "KOD S. 201", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700341578395, "modifiedTime": 1700344214966, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "VYFiMG4psKUkfQyf", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Metallspiegel", "type": "item", "img": "icons/tools/smithing/plate-steel-grey.webp", "system": {"description": "KOD S. 201", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700343353376, "modifiedTime": 1700344214971, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "a0lTGD1AfXVSYGs4", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Nagel, gro\u00df", "type": "item", "img": "icons/tools/fasteners/nail-steel.webp", "system": {"description": "KOD S. 201", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700341678257, "modifiedTime": 1700344214966, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "IhRkdFazyU8qvHcm", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "N\u00e4hnadel", "type": "item", "img": "icons/commodities/cloth/thread-and-needle.webp", "system": {"description": "KOD S. 201", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700341712892, "modifiedTime": 1700344214966, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "vWfxylv3W96r4xoA", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Oberbekleidung, warm", "type": "item", "img": "icons/equipment/chest/vest-leather-tattered-white.webp", "system": {"description": "KOD S. 199", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700341752909, "modifiedTime": 1700344214966, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "LTXHIjwreWlDjFVe", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Papyrus", "type": "item", "img": "icons/sundries/documents/blueprint-recipe-alchemical.webp", "system": {"description": "KOD S. 201", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700341784413, "modifiedTime": 1700344214967, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "9X4DHhXWfmR9vtOF", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Pergament", "type": "item", "img": "icons/sundries/documents/document-sealed-white-orange.webp", "system": {"description": "KOD S. 201", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700341827425, "modifiedTime": 1700344214967, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "rF3rI93xpSwXp54m", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Pfeil", "type": "item", "img": "icons/weapons/ammunition/arrows-barbed-white.webp", "system": {"description": "KOD S. 199", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700341865983, "modifiedTime": 1700344214967, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "h7CHoQddkmRnXgcI", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Pfeilk\u00f6cher", "type": "item", "img": "icons/containers/ammunition/arrows-quiver-green-brown.webp", "system": {"description": "KOD S. 199", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700340709193, "modifiedTime": 1700344214964, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "9SfA9qaSUqpABpqK", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Pferdefutter", "type": "item", "img": "icons/consumables/grains/sack-rice-flour-brown.webp", "system": {"description": "KOD S. 200", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700341900229, "modifiedTime": 1700344214967, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "W3csaJLCiQ4t1o9P", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Reckentrunk", "type": "item", "img": "icons/consumables/potions/bottle-corked-red.webp", "system": {"description": "<p>ARK S. 176</p><p></p><p>[[1d6-1]]</p><p></p><p>[[PW:GiT]]</p><p>@UUID[Compendium.midgard5.zauberwirkungen.Item.6bq4dm9ak5YDp9KV]{Bärenwut}</p>", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700341932276, "modifiedTime": 1700344214967, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "TwzwDjvtddNJ5Ki4", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Reiseverpflegung", "type": "item", "img": "icons/containers/bags/sack-open-grain-tan.webp", "system": {"description": "KOD S. 200", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700342032837, "modifiedTime": 1700344214967, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "Xn9VsRATmiDXe0SO", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Reitkamel", "type": "item", "img": "icons/creatures/mammals/livestock-sheep-green.webp", "system": {"description": "KOD S. 202", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700342110683, "modifiedTime": 1700344214967, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "slFAJBzsdDYzDJ9X", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Reitpferd", "type": "item", "img": "icons/creatures/mammals/unicorn-horned-white.webp", "system": {"description": "KOD S. 202", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700342231300, "modifiedTime": 1700344214967, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "7GeCGeSn558MJLdH", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Robe", "type": "item", "img": "icons/equipment/back/cloak-collared-purple-gold.webp", "system": {"description": "KOD S. 199", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700342405172, "modifiedTime": 1700344214968, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "w7gUXCx0ECYnPW2r", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Rock", "type": "item", "img": "icons/equipment/leg/tasset-cloth-white.webp", "system": {"description": "KOD S. 199", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700342441749, "modifiedTime": 1700344214968, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "eY96dy93lAsixVYT", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Salbe der Eisenhaut", "type": "item", "img": "icons/tools/laboratory/bowl-liquid-black.webp", "system": {"description": "<p>ARK S. 176</p><p></p><p>@UUID[Compendium.midgard5.zauberwirkungen.Item.RiUYfceWEkRkKm0h]{Eisenhaut}</p>", "equippable": false, "equipped": true, "value": 0, "magic": true, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700342463963, "modifiedTime": 1700344214968, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "NszEKahcPjXDDv9c", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Salbe der Krakenh\u00e4nde", "type": "item", "img": "icons/consumables/food/soup-broth-bowl-tentacle.webp", "system": {"description": "<p>ARK S. 176</p><p></p><p>@UUID[Compendium.midgard5.zauberwirkungen.Item.TRgAdyTpNX6xFM7g]{Krakenhände}</p>", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700342544615, "modifiedTime": 1700344214968, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "YY6CbftXVqZGKCFs", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Sandalen", "type": "item", "img": "icons/equipment/feet/boots-leather-red-gold.webp", "system": {"description": "KOD S. 199", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700342568875, "modifiedTime": 1700344214968, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "5Xy4Uiqwi0RWioNc", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Sanduhr", "type": "item", "img": "icons/sundries/misc/hourglass-wood.webp", "system": {"description": "KOD S. 201", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700342601837, "modifiedTime": 1700344214969, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "QRwSLdtLQ7NQSeHi", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Sattel", "type": "item", "img": "icons/commodities/leather/leather-buckle-embossed-gold.webp", "system": {"description": "KOD S. 202", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700342635099, "modifiedTime": 1700344214969, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "RE7L3DhE09jqg8k2", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Schaufel", "type": "item", "img": "icons/tools/hand/shovel-spade-steel-grey.webp", "system": {"description": "KOD S. 201", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700342672980, "modifiedTime": 1700344214969, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "iXTenD0XzdqBidDu", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"name": "Schlachtross", "type": "item", "img": "icons/commodities/biological/head-zebra.webp", "system": {"description": "KOD S. 202", "equippable": false, "equipped": true, "value": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700342704144, "modifiedTime": 1700344214969, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "ECyfNTtzigeqHcNL", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
|
||||||