Compare commits

..
45 Commits
Author SHA1 Message Date
Byroks 53ff2ece7d v2.2.0 2023-12-06 16:08:39 +01:00
Byroks 04a30a70b9 Minor Style Changes 2023-12-06 16:08:08 +01:00
ByroksandGitHub b5cffae778 Fix Armor misscalculation (#46)
Changes:
 + mod operation "add" can't go into negative numbers
2023-12-06 14:49:12 +01:00
ByroksandGitHub db23081a9a Fix Movement Boni being applied multiple times (#45)
Changes:
 + seperate display of Base Movement speed and calculated movement speed
 + for asthetic reasons move GiT to Berechnete Werte
2023-12-06 12:31:34 +01:00
LeFriqueandGitHub e753f6392d Delete Maps (#43)
- Deleted Assets
- Deleted Packs
+ Removed Scenepacks from system.json
2023-12-06 11:17:05 +01:00
ByroksandGitHub 2b4e6b18d0 28 apply damage through chat (#40)
* Add Rightclick menu to apply damage/heal

Changes:
 + add rightclick context menu for rolls
 + only appears if keyword Schaden exists
 + calculate damage from all rolls with keyword Schaden
 + possible to apply damage or heal actor or if present token

ToDo:
 + add button that does the same

* Add Rüstungsschutz to damage calculation

Changes:
 + Add Damage application from chat
 + take token first, if none exist, take actor
 + include damage reduction from equipped armor
 + damage appliaction is only accesible through right click on roll

* Fix falsy display of rightclick context menu
2023-12-06 11:14:35 +01:00
oskaloqandGitHub 0fe61e5bbb Comprehensive overhaul of the character sheet design. (#35) 2023-12-04 11:44:32 +01:00
46cac30dcd 17 add rüstungskammer + 21 Restructure Compendium (#31)
* Rüstkammer, Fixes & Preparation

+ Added Rüstkammer
+ Added Pagedescriptions in Ausrüstung
+ Prepared Compendium Folders

* Compendium Folders & Fixes

+ Added Effects to magical Gear
+ Added more Combat Conditions for Gear Effects
+ Added Markup to some Items for better visualization in Items or chat, more to follow
+ Solved Combat Folders (works only in new World!)

---------

Co-authored-by: Byroks <byroks@gmail.com>
2023-12-03 15:29:12 +01:00
ByroksandGitHub 7e6147299b Adjust Mod Calculation (#30)
Changes:
 + Adjust mod calculation
 + remov max 0 from subtract and addition
 + check in skills for subtract mod
2023-12-03 13:07:41 +01:00
ByroksandGitHub f9737a4cb9 Aktualisieren von LICENSE 2023-12-01 22:10:24 +01:00
LeFriqueandGitHub 6ff4f16f9d 18 add more operations for modifiers (#23)
* Added Operations and Combat Conditions

+ Added Multiply, Division and Subtract operations for modifiers
+ Added Combat Conditions Effects form Ars Armorum

* Added Math.floor()

* Fixed Operations and Combat Conditions
2023-12-01 19:04:58 +01:00
LeFriqueandGitHub 725dd8c504 Added Operations and Combat Conditions (#22)
* Added Operations and Combat Conditions

+ Added Multiply, Division and Subtract operations for modifiers
+ Added Combat Conditions Effects form Ars Armorum

* Added Math.floor()
2023-12-01 15:26:49 +01:00
ByroksandGitHub 48883c3102 Add Description to bottom of rolls (#19)
Changes:
 + Add helper to strip Html
 + add description of items to bottom of roll
2023-11-30 18:13:04 +01:00
Byroks 250fc499ae v2.1.0 2023-11-30 16:17:04 +01:00
ByroksandGitHub 28595e7dd0 Make Items with mods equippable (#11)
Changes:
 + Items that can influence you stats are equippable
 + only equipped items influence your stats
 + Armor now influences your stats
 + move mods into a partial for easier changes
2023-11-30 15:50:59 +01:00
ByroksandGitHub 8095785fc2 Movement stat (#10)
Changes:
 + make movement stat work and be moddable by effects
2023-11-29 10:14:49 +01:00
ByroksandGitHub e141839055 Merge branch 'main' into develop 2023-11-28 19:50:38 +01:00
Byroks 14e005cb0a v2.0.0 2023-11-28 19:48:14 +01:00
ByroksandGitHub c635c54f24 Dev Kampfkünste Items & Integration (#7)
Changes:
 + add kampfkuenste template
 + add kampfkuenste tab
 + make kampfkuenste rollable
 + update localization
2023-11-28 19:42:38 +01:00
Byroks e27f4209e5 Squashed commit of the following:
commit 0bfa224dae
Author: Byroks <byroks@gmail.com>
Date:   Mon Nov 27 19:56:05 2023 +0100

    V1.3.1 (#6)

    * v1.3.1

    * v1.3.1

    * update .gitingore

commit 35a6b0fae9
Author: Byroks <byroks@gmail.com>
Date:   Mon Nov 27 19:48:56 2023 +0100

    v1.3.1

commit db21ca93b0
Author: Byroks <byroks@gmail.com>
Date:   Sun Nov 26 13:13:13 2023 +0100

    subtract ap when casting spell

    Changes:
     + subtract AP when casting a spell
2023-11-27 20:05:20 +01:00
Byroks 0bfa224dae V1.3.1 (#6)
* v1.3.1

* v1.3.1

* update .gitingore
2023-11-27 20:04:06 +01:00
Byroks 35a6b0fae9 v1.3.1 2023-11-27 19:48:56 +01:00
Byroks db21ca93b0 subtract ap when casting spell
Changes:
 + subtract AP when casting a spell
2023-11-26 13:13:13 +01:00
Byroks 7bf0fd90b0 update verified and maximum version 2023-11-25 19:33:03 +01:00
Byroks a7bdd0434e Delete midgard5-v1.3.0.zip 2023-11-25 16:38:39 +01:00
Byroks 97d4a35cd6 update localize Keys
Changes:
 + update localize Keys, to conform with v11
2023-11-25 16:38:05 +01:00
Byroks c2996aa974 Fix Raufen roll
Changes:
 + fix roll attributes for Raufen
2023-11-25 16:04:17 +01:00
Byroks bf4f49755a adjust iniative roll
Changes:
 + fix iniative stat
2023-11-25 15:54:53 +01:00
ByroksandGitHub 57bffd492a Update de.md 2023-11-25 14:20:47 +01:00
ByroksandGitHub 5a36ee9eab V1.3.0 (#3)
* v1.3.0

* v1.3.0
2023-11-24 21:01:10 +01:00
Byroks a8a1e6e133 fix gulpfile 2023-11-24 20:54:22 +01:00
Byroks 3bf2612dd0 update system.json & gitignore 2023-11-24 20:47:21 +01:00
Byroks 68cb8fcf6d Include Weapons and effects
Changes:
 + include weapon pack and effect pack
 + handle effects as own entity
 + effects can influence your attributes and skills
 + add Aktive Effekte page for effects on your character
2023-11-24 20:11:36 +01:00
Byroks 4b2daef20a fix Gifttolleranz naming, parsing and display 2023-11-22 23:13:19 +01:00
ByroksandGitHub 792c578e0f Merge pull request #1 from LeFrique/main
Added skills & weapons from all Sourcebooks,GiT&B
2023-11-22 22:19:54 +01:00
ByroksandGitHub 3b051760ae Merge branch 'main' into main 2023-11-22 22:19:20 +01:00
Byroks bffbe97805 Revert "update system id"
This reverts commit 6428b3252e.
2023-11-22 19:11:53 +01:00
Byroks e21e5a91be Revert "adjust to id change"
This reverts commit 30d0924e3d.
2023-11-22 19:11:44 +01:00
Byroks 783f7f020b Revert "update version"
This reverts commit c77818199a.
2023-11-22 19:11:36 +01:00
Byroks ad841b111f Revert "remove"
This reverts commit 5277a3ca4b.
2023-11-22 19:11:17 +01:00
Le-Frique ba2992221d Added skills & weapons from all Sourcebooks,GiT&B 2023-11-21 20:03:46 +01:00
Byroks 5277a3ca4b remove 2023-11-21 19:57:45 +01:00
Byroks c77818199a update version 2023-11-21 19:53:32 +01:00
Byroks 30d0924e3d adjust to id change 2023-11-21 19:50:39 +01:00
Byroks 6428b3252e update system id 2023-11-21 19:18:05 +01:00
378 changed files with 4380 additions and 885 deletions
+1
View File
@@ -5,3 +5,4 @@ package-lock.json
source/packs/ source/packs/
source/generators/ source/generators/
dist dist
*.zip
+2 -1
View File
@@ -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
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.5 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.4 MiB

+1 -1
View File
@@ -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://github.com/byroks/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.
+261 -291
View File
@@ -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");
if (fs.existsSync(modulePath)) await fs.copyFile(modulePath, path.join(distPath, "module.json"));
const modulePath = path.join("source", "module.json") const systemPath = path.join("source/system.json");
if (fs.existsSync(modulePath)) if (fs.existsSync(systemPath)) await fs.copyFile(systemPath, path.join(distPath, "system.json"));
await fs.copyFile(modulePath, path.join(distPath, "module.json"))
const systemPath = path.join("source/system.json") if (!fs.existsSync(path.resolve(__dirname, "assets"))) return Promise.resolve();
if (fs.existsSync(systemPath))
await fs.copyFile(systemPath, path.join(distPath, "system.json"))
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")) 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 }) 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, "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 (!rawURL || !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);
+82 -8
View File
@@ -1,13 +1,15 @@
{ {
"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.weapon": "Waffe",
"ITEM.TypeDefensiveWeapon": "Verteidigungswaffe", "ITEM.TypeDefensiveWeapon": "Verteidigungswaffe",
"ITEM.TypeArmor": "Rüstung", "TYPES.Item.armor": "Rüstung",
"ITEM.TypeSpell": "Zauber", "TYPES.Item.spell": "Zauber",
"TYPES.Item.effect": "Aktive Effekte",
"ITEM.type.kampfkunst": "Kampfkünste",
"midgard5.doRoll": "Würfeln", "midgard5.doRoll": "Würfeln",
"midgard5.learn": "Lernen", "midgard5.learn": "Lernen",
@@ -50,6 +52,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 +64,12 @@
"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.class": "Klasse", "midgard5.class": "Klasse",
"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",
@@ -80,21 +86,29 @@
"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 +117,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,8 +182,10 @@
"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.new-skill": "Neue Fertigkeit", "midgard5.new-skill": "Neue Fertigkeit",
"midgard5.special": "Spezial", "midgard5.special": "Spezial",
@@ -161,6 +199,8 @@
"midgard5.defensive-weapon": "Verteidigungswaffe", "midgard5.defensive-weapon": "Verteidigungswaffe",
"midgard5.no-skill": "Keine Fertigkeit", "midgard5.no-skill": "Keine Fertigkeit",
"midgard5.magic": "magisch", "midgard5.magic": "magisch",
"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 Fähigkeit auwählen zu können",
@@ -204,10 +244,42 @@
"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.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-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 +289,11 @@
"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-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 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "foundry-system-midgard5", "name": "foundry-system-midgard5",
"version": "1.2.2", "version": "2.2.0",
"description": "", "description": "",
"main": "index.js", "main": "index.js",
"scripts": { "scripts": {
+1
View File
@@ -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}}
+1
View File
@@ -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}}
+1
View File
@@ -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}}
+1
View File
@@ -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}}
+1
View File
@@ -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}}
+1
View File
@@ -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}}
+1
View File
@@ -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}}
+1
View File
@@ -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}}
+1
View File
@@ -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}}
+1
View File
@@ -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}}
+1
View File
@@ -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}}
+1
View File
@@ -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}}
+1
View File
@@ -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}}
+1
View File
@@ -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}}
+1
View File
@@ -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}}
+1
View File
@@ -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}}
+1
View File
@@ -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}}
+1
View File
@@ -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}}
+1
View File
@@ -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}}
+1
View File
@@ -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}}
+1
View File
@@ -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}}
+1
View File
@@ -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}}
+1
View File
@@ -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}}
+1
View File
@@ -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}}
+1
View File
@@ -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}}
+1
View File
@@ -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}}
+1
View File
@@ -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}}
+1
View File
@@ -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}}
+1
View File
@@ -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}}
+1
View File
@@ -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}}
+1
View File
@@ -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}}
+1
View File
@@ -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}}
+1
View File
@@ -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}}
+1
View File
@@ -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}}
+1
View File
@@ -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}}
+1
View File
@@ -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}}
+1
View File
@@ -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}}
+1
View File
@@ -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}}
+1
View File
@@ -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}}
+1
View File
@@ -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}}
+1
View File
@@ -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}}
+1
View File
@@ -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}}
+1
View File
@@ -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}}
+1
View File
@@ -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}}
+1
View File
@@ -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}}
+1
View File
@@ -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}}
+1
View File
@@ -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}}
+1
View File
@@ -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}}
+1
View File
@@ -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}}
@@ -0,0 +1 @@
{"name": "Schnellkraut", "type": "item", "img": "icons/skills/movement/feet-winged-boots-glowing-yellow.webp", "system": {"description": "<p>ARK S. 176</p><p></p><p>@UUID[Compendium.midgard5.zauberwirkungen.Item.VXsXFBkozIBxK3iF]{Beschleunigen}</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": 1700342836786, "modifiedTime": 1700344214969, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "xdPcoLHDyOz7O7BJ", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
@@ -0,0 +1 @@
{"name": "Schreibpinsel", "type": "item", "img": "icons/skills/trades/academics-scribe-quill-gray.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": 1700342873393, "modifiedTime": 1700344214969, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "dbTdECeoItRIhcWG", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
+1
View File
@@ -0,0 +1 @@
{"name": "Schuhe", "type": "item", "img": "icons/equipment/feet/boots-collared-rounded-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": 1700342920794, "modifiedTime": 1700344214969, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "PAiYvmrZS3jbnhus", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
@@ -0,0 +1 @@
{"name": "Schwertscheide, einfach", "type": "item", "img": "icons/weapons/swords/sword-guard-steel-green.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": 1700342989380, "modifiedTime": 1700344214970, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "pI0bnmrwuGgs6UKy", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
@@ -0,0 +1 @@
{"name": "Schwertscheide, verziert", "type": "item", "img": "icons/weapons/swords/sword-ringed-engraved.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": 1700342989380, "modifiedTime": 1700344214970, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "E65qlBFv3kT7CLLp", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
+1
View File
@@ -0,0 +1 @@
{"name": "Segeltuch", "type": "item", "img": "icons/commodities/cloth/cloth-bolt-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": 1700343102474, "modifiedTime": 1700344214970, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "LlAU5ioMIT2WvAFp", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
+1
View File
@@ -0,0 +1 @@
{"name": "Seil", "type": "item", "img": "icons/sundries/survival/rope-coiled-wrapped-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": 1700343135128, "modifiedTime": 1700344214970, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "zLfkTwbR5GP2lzlt", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
+1
View File
@@ -0,0 +1 @@
{"name": "Siegelwachs", "type": "item", "img": "icons/sundries/documents/document-sealed-red-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": 1700343164980, "modifiedTime": 1700344214970, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "mNsqRkdEUpXyDGts", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
@@ -0,0 +1 @@
{"name": "Signalpfeife, Metall", "type": "item", "img": "icons/tools/instruments/megaphone.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": 1700343193286, "modifiedTime": 1700344214970, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "c2JWf0yl34dkSYby", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}

Some files were not shown because too many files have changed in this diff Show More