diff --git a/.eslintrc.json b/.eslintrc.json
new file mode 100644
index 0000000..def3484
--- /dev/null
+++ b/.eslintrc.json
@@ -0,0 +1,71 @@
+{
+ "root": true,
+ "ignorePatterns": [],
+ "parserOptions": {
+ "ecmaVersion": "latest"
+ },
+ "overrides": [
+ {
+ "files": ["*.ts"],
+ "parser": "@angular-eslint/template-parser",
+ "parserOptions": {
+ "project": ["tsconfig.json"],
+ "createDefaultProgram": true,
+ "ecmaVersion": "latest",
+ "sourceType": "module"
+ },
+ "extends": [
+ "plugin:@typescript-eslint/recommended",
+ "plugin:@angular-eslint/template/recommended",
+ "plugin:@angular-eslint/template/process-inline-templates",
+ "plugin:prettier/recommended"
+ ],
+ "rules": {
+ "@typescript-eslint/consistent-type-definitions": "error",
+ "@typescript-eslint/dot-notation": "off",
+ "@typescript-eslint/explicit-member-accessibility": [
+ "off",
+ {
+ "accessibility": "explicit"
+ }
+ ],
+ "brace-style": ["error", "1tbs"],
+ "id-blacklist": "off",
+ "id-match": "off",
+ "no-bitwise": "off",
+ "no-underscore-dangle": "off",
+ "prettier/prettier": [
+ "error",
+ {
+ "endOfLine": "auto"
+ },
+ {
+ "usePrettierrc": true
+ }
+ ]
+ }
+ },
+ // NOTE: WE ARE NOT APPLYING PRETTIER IN THIS OVERRIDE, ONLY @ANGULAR-ESLINT/TEMPLATE
+ {
+ "files": ["*.html"],
+ "extends": ["plugin:@angular-eslint/template/recommended"],
+ "rules": {}
+ },
+ // NOTE: WE ARE NOT APPLYING @ANGULAR-ESLINT/TEMPLATE IN THIS OVERRIDE, ONLY PRETTIER
+ {
+ "files": ["*.html"],
+ "excludedFiles": ["*inline-template-*.component.html"],
+ "extends": ["plugin:prettier/recommended"],
+ "rules": {
+ // NOTE: WE ARE OVERRIDING THE DEFAULT CONFIG TO ALWAYS SET THE PARSER TO ANGULAR (SEE BELOW)
+ "prettier/prettier": [
+ "error",
+ {
+ "parser": "angular",
+ "endOfLine": "auto"
+ }
+ ]
+ }
+ }
+ ]
+}
diff --git a/.prettierrc b/.prettierrc
new file mode 100644
index 0000000..29be0cf
--- /dev/null
+++ b/.prettierrc
@@ -0,0 +1,11 @@
+{
+ "printWidth": 120,
+ "singleQuote": true,
+ "useTabs": false,
+ "tabWidth": 2,
+ "semi": true,
+ "bracketSpacing": true,
+ "jsxBracketSameLine": true,
+ "trailingComma": "es5",
+ "arrowParens": "avoid"
+}
diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644
index 0000000..9bf4d12
--- /dev/null
+++ b/.vscode/settings.json
@@ -0,0 +1,4 @@
+{
+ "editor.defaultFormatter": "esbenp.prettier-vscode",
+ "editor.formatOnSave": true
+}
diff --git a/editor.config b/editor.config
new file mode 100644
index 0000000..d800e3b
--- /dev/null
+++ b/editor.config
@@ -0,0 +1,16 @@
+# Editor configuration, see https://editorconfig.org
+root = true
+
+[*]
+charset = utf-8
+indent_style = space
+indent_size = 2
+insert_final_newline = true
+trim_trailing_whitespace = true
+
+[*.ts]
+quote_type = single
+
+[*.md]
+max_line_length = off
+trim_trailing_whitespace = false
\ No newline at end of file
diff --git a/foundryconfig.json b/foundryconfig.json
index 1386868..4e2e837 100644
--- a/foundryconfig.json
+++ b/foundryconfig.json
@@ -1,4 +1,4 @@
{
- "moduleName": "Midgard 5. Edition",
- "repository": "https://git.byroks.de/MidgardVTT-Entwicklung/foundry-vtt-system-midgard5"
+ "moduleName": "Midgard 5. Edition",
+ "repository": "https://git.byroks.de/MidgardVTT-Entwicklung/foundry-vtt-system-midgard5"
}
diff --git a/gulpfile.ts b/gulpfile.ts
index 73b2ee5..5def5ab 100644
--- a/gulpfile.ts
+++ b/gulpfile.ts
@@ -16,27 +16,27 @@ const merge2 = require("merge2");
const git = require("gulp-git-streamed");
const loadJson = (path: string): any => {
- try {
- let str = fs.readFileSync(path).toString();
- return JSON.parse(str);
- } catch {
- throw Error("Unable to load " + path);
- }
+ try {
+ let str = fs.readFileSync(path).toString();
+ return JSON.parse(str);
+ } catch {
+ throw Error("Unable to load " + path);
+ }
};
import {
- createLiteral,
- factory,
- isExportDeclaration,
- isImportDeclaration,
- isStringLiteral,
- LiteralExpression,
- Node,
- TransformationContext,
- Transformer as TSTransformer,
- TransformerFactory,
- visitEachChild,
- visitNode,
+ createLiteral,
+ factory,
+ isExportDeclaration,
+ isImportDeclaration,
+ isStringLiteral,
+ LiteralExpression,
+ Node,
+ TransformationContext,
+ Transformer as TSTransformer,
+ TransformerFactory,
+ visitEachChild,
+ visitNode,
} from "typescript";
import less from "gulp-less";
@@ -53,232 +53,307 @@ const argv = require("yargs").argv;
let distPath = "dist";
function getConfig() {
- const configPath = path.resolve(process.cwd(), "foundryconfig.json");
- let config;
+ const configPath = path.resolve(process.cwd(), "foundryconfig.json");
+ let config;
- if (fs.existsSync(configPath)) {
- config = loadJson(configPath);
- return config;
- } else {
- return;
- }
+ if (fs.existsSync(configPath)) {
+ config = loadJson(configPath);
+ return config;
+ } else {
+ return;
+ }
}
interface Manifest {
- root: string;
- file: ModuleData;
- name: string;
+ root: string;
+ file: ModuleData;
+ name: string;
}
const getManifest = (): Manifest | null => {
- const json: Manifest = {
- root: "",
- // @ts-ignore
- file: {},
- name: "",
- };
+ const json: Manifest = {
+ root: "",
+ // @ts-ignore
+ file: {},
+ name: "",
+ };
- if (fs.existsSync("source")) {
- json.root = "source";
- } else {
- json.root = distPath;
- }
- const modulePath = path.join(json.root, "module.json");
- const systemPath = path.join(json.root, "system.json");
- if (fs.existsSync(modulePath)) {
- json.file = loadJson(modulePath) as ModuleData;
- json.name = "module.json";
- } else if (fs.existsSync(systemPath)) {
- json.file = loadJson(systemPath) as ModuleData;
- json.name = "system.json";
- } else {
- return null;
- }
- return json;
+ if (fs.existsSync("source")) {
+ json.root = "source";
+ } else {
+ json.root = distPath;
+ }
+ const modulePath = path.join(json.root, "module.json");
+ const systemPath = path.join(json.root, "system.json");
+ if (fs.existsSync(modulePath)) {
+ json.file = loadJson(modulePath) as ModuleData;
+ json.name = "module.json";
+ } else if (fs.existsSync(systemPath)) {
+ json.file = loadJson(systemPath) as ModuleData;
+ json.name = "system.json";
+ } else {
+ return null;
+ }
+ return json;
};
const createTransformer = (): TransformerFactory => {
- /**
- * @param {typescript.Node} node
- */
- const shouldMutateModuleSpecifier = (node: Node): boolean => {
- if (!isImportDeclaration(node) && !isExportDeclaration(node)) return false;
- if (node.moduleSpecifier === undefined) return false;
- if (!isStringLiteral(node.moduleSpecifier)) return false;
- if (!node.moduleSpecifier.text.startsWith("./") && !node.moduleSpecifier.text.startsWith("../")) return false;
+ /**
+ * @param {typescript.Node} node
+ */
+ const shouldMutateModuleSpecifier = (node: Node): boolean => {
+ if (!isImportDeclaration(node) && !isExportDeclaration(node)) return false;
+ if (node.moduleSpecifier === undefined) 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 => {
- return (node: Node) => {
- function visitor(node: Node): Node {
- if (shouldMutateModuleSpecifier(node)) {
- if (isImportDeclaration(node)) {
- const newModuleSpecifier = createLiteral(`${(node.moduleSpecifier as LiteralExpression).text}.js`);
- return factory.updateImportDeclaration(node, node.decorators, node.modifiers, node.importClause, newModuleSpecifier, undefined);
- } else if (isExportDeclaration(node)) {
- const newModuleSpecifier = createLiteral(`${(node.moduleSpecifier as LiteralExpression).text}.js`);
- return factory.updateExportDeclaration(node, node.decorators, node.modifiers, false, node.exportClause, newModuleSpecifier, undefined);
- }
- }
- return visitEachChild(node, visitor, context);
- }
+ return (context: TransformationContext): TSTransformer => {
+ return (node: Node) => {
+ function visitor(node: Node): Node {
+ if (shouldMutateModuleSpecifier(node)) {
+ if (isImportDeclaration(node)) {
+ const newModuleSpecifier = createLiteral(
+ `${(node.moduleSpecifier as LiteralExpression).text}.js`,
+ );
+ return factory.updateImportDeclaration(
+ node,
+ node.decorators,
+ node.modifiers,
+ node.importClause,
+ newModuleSpecifier,
+ undefined,
+ );
+ } else if (isExportDeclaration(node)) {
+ const newModuleSpecifier = createLiteral(
+ `${(node.moduleSpecifier as LiteralExpression).text}.js`,
+ );
+ return factory.updateExportDeclaration(
+ node,
+ node.decorators,
+ node.modifiers,
+ false,
+ node.exportClause,
+ newModuleSpecifier,
+ undefined,
+ );
+ }
+ }
+ return visitEachChild(node, visitor, context);
+ }
- return visitNode(node, visitor);
- };
- };
+ return visitNode(node, visitor);
+ };
+ };
};
const tsConfig = ts.createProject("tsconfig.json", {
- getCustomTransformers: (_program: any) => ({
- after: [createTransformer()],
- }),
+ getCustomTransformers: (_program: any) => ({
+ after: [createTransformer()],
+ }),
});
function buildTS() {
- const debug = process.env.npm_lifecycle_event !== "package";
- let res = tsConfig.src().pipe(sourcemaps.init()).pipe(tsConfig());
+ const debug = process.env.npm_lifecycle_event !== "package";
+ let res = tsConfig.src().pipe(sourcemaps.init()).pipe(tsConfig());
- return res.js.pipe(sourcemaps.write("", { debug: debug, includeContent: true, sourceRoot: "./ts/source" })).pipe(gulp.dest(distPath));
+ return res.js
+ .pipe(
+ sourcemaps.write("", {
+ debug: debug,
+ includeContent: true,
+ sourceRoot: "./ts/source",
+ }),
+ )
+ .pipe(gulp.dest(distPath));
}
const bundleModule = () => {
- const debug = argv.dbg || argv.debug;
- const bsfy = browserify(path.join(__dirname, "source/index.ts"), { debug: debug });
- return bsfy
- .on("error", Logger.err)
- .plugin(tsify)
- .bundle()
- .pipe(source(path.join(distPath, "bundle.js")))
- .pipe(buffer())
- .pipe(sourcemaps.init({ loadMaps: true }))
- .pipe(uglify())
- .pipe(sourcemaps.write("./"))
- .pipe(gulp.dest("./"));
+ const debug = argv.dbg || argv.debug;
+ const bsfy = browserify(path.join(__dirname, "source/index.ts"), {
+ debug: debug,
+ });
+ return bsfy
+ .on("error", Logger.err)
+ .plugin(tsify)
+ .bundle()
+ .pipe(source(path.join(distPath, "bundle.js")))
+ .pipe(buffer())
+ .pipe(sourcemaps.init({ loadMaps: true }))
+ .pipe(uglify())
+ .pipe(sourcemaps.write("./"))
+ .pipe(gulp.dest("./"));
};
const buildLess = () => {
- return gulp.src("source/style/*.less").pipe(less()).pipe(concat("bundle.css")).pipe(gulp.dest(distPath));
+ return gulp
+ .src("source/style/*.less")
+ .pipe(less())
+ .pipe(concat("bundle.css"))
+ .pipe(gulp.dest(distPath));
};
interface Pack {
- root: string;
- type: string;
- name: string;
+ root: string;
+ type: string;
+ name: string;
}
const buildPack = (pack: Pack): NodeJS.ReadWriteStream => {
- return gulp
- .src(pack.root + "/" + pack.type + "/" + pack.name + "/*.json")
- .pipe(jsonminify())
- .pipe(concat(pack.name + ".db"))
- .pipe(gulp.dest(distPath + "/" + pack.root + "/" + pack.type));
+ return gulp
+ .src(pack.root + "/" + pack.type + "/" + pack.name + "/*.json")
+ .pipe(jsonminify())
+ .pipe(concat(pack.name + ".db"))
+ .pipe(gulp.dest(distPath + "/" + pack.root + "/" + pack.type));
};
const buildPacks = () => {
- let packs: Pack[] = [];
+ let packs: Pack[] = [];
- const rootDir = "packs";
- const packTypes = fs.readdirSync(rootDir).filter((p) => fs.statSync(path.join(rootDir, p)).isDirectory());
- packTypes.forEach((packType) => {
- const packDir = path.join(rootDir, packType);
- const packNames = fs.readdirSync(packDir).filter((p) => fs.statSync(path.join(packDir, p)).isDirectory());
- packNames.forEach((packName) => {
- packs.push({
- name: packName,
- type: packType,
- root: rootDir,
- });
- });
- });
+ const rootDir = "packs";
+ const packTypes = fs
+ .readdirSync(rootDir)
+ .filter((p) => fs.statSync(path.join(rootDir, p)).isDirectory());
+ packTypes.forEach((packType) => {
+ const packDir = path.join(rootDir, packType);
+ const packNames = fs
+ .readdirSync(packDir)
+ .filter((p) => fs.statSync(path.join(packDir, p)).isDirectory());
+ packNames.forEach((packName) => {
+ packs.push({
+ name: packName,
+ type: packType,
+ root: rootDir,
+ });
+ });
+ });
- return merge2(packs.map((p) => buildPack(p)));
+ return merge2(packs.map((p) => buildPack(p)));
};
const copyFiles = async () => {
- const recursiveFileSearch = (dir: string, callback: (err: NodeJS.ErrnoException | null, res: Array) => void) => {
- let results: Array = [];
- fs.readdir(dir, (err, list) => {
- if (err) return callback(err, results);
+ const recursiveFileSearch = (
+ dir: string,
+ callback: (err: NodeJS.ErrnoException | null, res: Array) => void,
+ ) => {
+ let results: Array = [];
+ fs.readdir(dir, (err, list) => {
+ if (err) return callback(err, results);
- let pending = list.length;
- if (!pending) return callback(null, results);
+ let pending = list.length;
+ if (!pending) return callback(null, results);
- for (let file of list) {
- file = path.resolve(dir, file);
- fs.stat(file, (err, stat) => {
- if (stat && stat.isDirectory()) {
- recursiveFileSearch(file, (err, res) => {
- results = results.concat(res);
- if (!--pending) callback(null, results);
- });
- } else {
- results.push(file);
- if (!--pending) callback(null, results);
- }
- });
- }
- });
- };
- try {
- const modulePath = path.join("source", "module.json");
- if (fs.existsSync(modulePath)) await fs.copyFile(modulePath, path.join(distPath, "module.json"));
+ for (let file of list) {
+ file = path.resolve(dir, file);
+ fs.stat(file, (err, stat) => {
+ if (stat && stat.isDirectory()) {
+ recursiveFileSearch(file, (err, res) => {
+ results = results.concat(res);
+ if (!--pending) callback(null, results);
+ });
+ } else {
+ results.push(file);
+ if (!--pending) callback(null, results);
+ }
+ });
+ }
+ });
+ };
+ try {
+ const modulePath = path.join("source", "module.json");
+ if (fs.existsSync(modulePath))
+ await fs.copyFile(modulePath, path.join(distPath, "module.json"));
- const systemPath = path.join("source/system.json");
- if (fs.existsSync(systemPath)) await fs.copyFile(systemPath, path.join(distPath, "system.json"));
+ const systemPath = path.join("source/system.json");
+ if (fs.existsSync(systemPath))
+ await fs.copyFile(systemPath, path.join(distPath, "system.json"));
- if (!fs.existsSync(path.resolve(__dirname, "assets"))) return Promise.resolve();
+ if (!fs.existsSync(path.resolve(__dirname, "assets")))
+ return Promise.resolve();
- const filter = (src: string, dest: string): boolean => {
- Logger.ok("Copying file: " + dest);
- return true;
- };
+ const filter = (src: string, dest: string): boolean => {
+ Logger.ok("Copying file: " + dest);
+ 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, "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, "templates"), path.resolve(__dirname, distPath + "/templates"), { overwrite: true, filter });
- return Promise.resolve();
- } catch (err) {
- await Promise.reject(err);
- }
+ fs.copySync(
+ path.resolve(__dirname, "assets"),
+ path.resolve(__dirname, distPath + "/assets"),
+ { overwrite: true, filter },
+ );
+ fs.copySync(
+ path.resolve(__dirname, "lang"),
+ path.resolve(__dirname, distPath + "/lang"),
+ { overwrite: true, filter },
+ );
+ //fs.copySync(path.resolve(__dirname, "packs"), path.resolve(__dirname, distPath + "/packs"), { overwrite: true, filter })
+ fs.copySync(
+ path.resolve(__dirname, "templates"),
+ path.resolve(__dirname, distPath + "/templates"),
+ { overwrite: true, filter },
+ );
+ return Promise.resolve();
+ } catch (err) {
+ await Promise.reject(err);
+ }
};
const cleanDist = async () => {
- if (argv.dbg || argv.debug) return;
- Logger.log("Cleaning dist file clutter");
+ if (argv.dbg || argv.debug) return;
+ Logger.log("Cleaning dist file clutter");
- const files: string[] = [];
- const getFiles = async (dir: string) => {
- const arr = await fs.promises.readdir(dir);
- for (const entry of arr) {
- const fullPath = path.join(dir, entry);
- const stat = await fs.promises.stat(fullPath);
- if (stat.isDirectory()) await getFiles(fullPath);
- else files.push(fullPath);
- }
- };
+ const files: string[] = [];
+ const getFiles = async (dir: string) => {
+ const arr = await fs.promises.readdir(dir);
+ for (const entry of arr) {
+ const fullPath = path.join(dir, entry);
+ const stat = await fs.promises.stat(fullPath);
+ if (stat.isDirectory()) await getFiles(fullPath);
+ else files.push(fullPath);
+ }
+ };
- await getFiles(path.resolve(distPath));
- for (const file of files) {
- if (file.endsWith("bundle.js") || file.endsWith(".css") || file.endsWith("module.json")) continue;
+ await getFiles(path.resolve(distPath));
+ for (const file of files) {
+ if (
+ file.endsWith("bundle.js") ||
+ file.endsWith(".css") ||
+ file.endsWith("module.json")
+ )
+ continue;
- Logger.warn("Cleaning " + path.relative(process.cwd(), file));
- await fs.promises.unlink(file);
- }
+ Logger.warn("Cleaning " + path.relative(process.cwd(), file));
+ await fs.promises.unlink(file);
+ }
};
/**
* Watch for changes for each build step
*/
const buildWatch = () => {
- gulp.watch("source/**/*.ts", { ignoreInitial: false }, gulp.series(buildTS, bundleModule));
- gulp.watch("source/**/*.less", { ignoreInitial: false }, buildLess);
- gulp.watch("packs", { ignoreInitial: false }, buildPacks);
- gulp.watch(["assets", "lang", "templates", "source/*.json"], { ignoreInitial: false }, copyFiles);
+ gulp.watch(
+ "source/**/*.ts",
+ { ignoreInitial: false },
+ gulp.series(buildTS, bundleModule),
+ );
+ gulp.watch("source/**/*.less", { ignoreInitial: false }, buildLess);
+ gulp.watch("packs", { ignoreInitial: false }, buildPacks);
+ gulp.watch(
+ ["assets", "lang", "templates", "source/*.json"],
+ { ignoreInitial: false },
+ copyFiles,
+ );
};
/********************/
@@ -290,62 +365,69 @@ const buildWatch = () => {
* while ignoring source files
*/
const clean = async () => {
- if (!fs.existsSync(distPath)) fs.mkdirSync(distPath);
- else {
- // Attempt to remove the files
- try {
- fs.rmSync(distPath, { recursive: true, force: true });
- fs.mkdirSync(distPath);
- return Promise.resolve();
- } catch (err) {
- await Promise.reject(err);
- }
- }
+ if (!fs.existsSync(distPath)) fs.mkdirSync(distPath);
+ else {
+ // Attempt to remove the files
+ try {
+ fs.rmSync(distPath, { recursive: true, force: true });
+ fs.mkdirSync(distPath);
+ return Promise.resolve();
+ } catch (err) {
+ await Promise.reject(err);
+ }
+ }
};
const setTargetDir = async () => {
- const dp = process.env.FOUNDRY_PATH;
- if (!dp) throw Error("FOUNDRY_PATH not defined in environment");
+ const dp = process.env.FOUNDRY_PATH;
+ if (!dp) throw Error("FOUNDRY_PATH not defined in environment");
- const name = getManifest()!.file.name ?? "midgard5";
- distPath = path.join(dp, "Data", "systems", name);
+ const name = getManifest()!.file.name ?? "midgard5";
+ distPath = path.join(dp, "Data", "systems", name);
};
const linkUserData = async () => {
- const name = getManifest()!.file.name;
+ const name = getManifest()!.file.name;
- let destDir;
- try {
- if (fs.existsSync(path.resolve(".", distPath, "module.json")) || fs.existsSync(path.resolve(".", "source", "module.json"))) {
- destDir = "modules";
- } else if (fs.existsSync(path.resolve(".", distPath, "system.json")) || fs.existsSync(path.resolve(".", "source", "system.json"))) {
- destDir = "systems";
- } else {
- throw Error(`Could not find module.json or system.json`);
- }
+ let destDir;
+ try {
+ if (
+ fs.existsSync(path.resolve(".", distPath, "module.json")) ||
+ fs.existsSync(path.resolve(".", "source", "module.json"))
+ ) {
+ destDir = "modules";
+ } else if (
+ fs.existsSync(path.resolve(".", distPath, "system.json")) ||
+ fs.existsSync(path.resolve(".", "source", "system.json"))
+ ) {
+ destDir = "systems";
+ } else {
+ throw Error(`Could not find module.json or system.json`);
+ }
- let linkDir;
- const dataPath = process.env.FOUNDRY_PATH;
- if (dataPath) {
- if (!fs.existsSync(path.join(dataPath, "Data"))) throw Error("User Data path invalid, no Data directory found");
- linkDir = path.join(dataPath, "Data", destDir, name as string);
- } else {
- throw Error("FOUNDRY_PATH not defined in environment");
- }
+ let linkDir;
+ const dataPath = process.env.FOUNDRY_PATH;
+ if (dataPath) {
+ if (!fs.existsSync(path.join(dataPath, "Data")))
+ throw Error("User Data path invalid, no Data directory found");
+ linkDir = path.join(dataPath, "Data", destDir, name as string);
+ } else {
+ throw Error("FOUNDRY_PATH not defined in environment");
+ }
- //if (argv.clean || argv.c) {
- Logger.warn(`Removing build in ${linkDir}`);
- fs.rmSync(linkDir, { recursive: true, force: true });
- fs.mkdirSync(linkDir);
- //}
+ //if (argv.clean || argv.c) {
+ Logger.warn(`Removing build in ${linkDir}`);
+ fs.rmSync(linkDir, { recursive: true, force: true });
+ fs.mkdirSync(linkDir);
+ //}
- Logger.ok(`Copying build to ${linkDir}`);
- fs.copySync(path.resolve(distPath), linkDir, { overwrite: true });
+ Logger.ok(`Copying build to ${linkDir}`);
+ fs.copySync(path.resolve(distPath), linkDir, { overwrite: true });
- return Promise.resolve();
- } catch (err) {
- await Promise.reject(err);
- }
+ return Promise.resolve();
+ } catch (err) {
+ await Promise.reject(err);
+ }
};
/*********************/
@@ -356,51 +438,51 @@ const linkUserData = async () => {
* Package build
*/
async function packageBuild() {
- const manifest = getManifest();
- if (manifest === null) {
- Logger.err("Manifest file could not be loaded.");
- throw Error();
- }
+ const manifest = getManifest();
+ if (manifest === null) {
+ Logger.err("Manifest file could not be loaded.");
+ throw Error();
+ }
- return new Promise((resolve, reject) => {
- try {
- // Remove the package dir without doing anything else
- if (argv.clean || argv.c) {
- Logger.warn("Removing all packaged files");
- fs.rmSync(distPath, { force: true, recursive: true });
- return;
- }
+ return new Promise((resolve, reject) => {
+ try {
+ // Remove the package dir without doing anything else
+ if (argv.clean || argv.c) {
+ Logger.warn("Removing all packaged files");
+ fs.rmSync(distPath, { force: true, recursive: true });
+ return;
+ }
- // Ensure there is a directory to hold all the packaged versions
- if (!fs.existsSync(distPath)) fs.mkdirSync(distPath);
+ // Ensure there is a directory to hold all the packaged versions
+ if (!fs.existsSync(distPath)) fs.mkdirSync(distPath);
- // Initialize the zip file
- const zipName = `${manifest.file.name}-v${manifest.file.version}.zip`;
- const zipFile = fs.createWriteStream(zipName);
- const zip = archiver("zip", { zlib: { level: 9 } });
- zipFile.on("close", () => {
- Logger.ok(zip.pointer() + " total bytes");
- Logger.ok(`Zip file ${zipName} has been written`);
- return resolve(true);
- });
+ // Initialize the zip file
+ const zipName = `${manifest.file.name}-v${manifest.file.version}.zip`;
+ const zipFile = fs.createWriteStream(zipName);
+ const zip = archiver("zip", { zlib: { level: 9 } });
+ zipFile.on("close", () => {
+ Logger.ok(zip.pointer() + " total bytes");
+ Logger.ok(`Zip file ${zipName} has been written`);
+ return resolve(true);
+ });
- zipFile.on("end", function () {
- throw "Data has been drained";
- });
+ zipFile.on("end", function () {
+ throw "Data has been drained";
+ });
- zip.on("error", (err) => {
- throw err;
- });
+ zip.on("error", (err) => {
+ throw err;
+ });
- zip.pipe(zipFile);
+ zip.pipe(zipFile);
- zip.directory(distPath, manifest.file.name);
+ zip.directory(distPath, manifest.file.name);
- return zip.finalize();
- } catch (err) {
- return reject(err);
- }
- });
+ return zip.finalize();
+ } catch (err) {
+ return reject(err);
+ }
+ });
}
/*********************/
@@ -411,103 +493,128 @@ async function packageBuild() {
* Update version and URLs in the manifest JSON
*/
const updateManifest = (cb: any) => {
- const packageJson = loadJson("package.json");
- const config = getConfig(),
- manifest = getManifest(),
- rawURL = config.rawURL,
- repoURL = config.repository,
- manifestRoot = manifest!.root;
+ const packageJson = loadJson("package.json");
+ const config = getConfig(),
+ manifest = getManifest(),
+ rawURL = config.rawURL,
+ repoURL = config.repository,
+ manifestRoot = manifest!.root;
- if (!config) cb(Error("foundryconfig.json not found"));
- if (manifest === null) {
- cb(Error("Manifest JSON not found"));
- return;
- }
- if (!repoURL) cb(Error("Repository URLs not configured in foundryconfig.json"));
+ if (!config) cb(Error("foundryconfig.json not found"));
+ if (manifest === null) {
+ cb(Error("Manifest JSON not found"));
+ return;
+ }
+ if (!repoURL)
+ cb(Error("Repository URLs not configured in foundryconfig.json"));
- try {
- const version = argv.update || argv.u;
+ try {
+ const version = argv.update || argv.u;
- /* Update version */
+ /* Update version */
- const versionMatch = /^(\d{1,}).(\d{1,}).(\d{1,})$/;
- const currentVersion = manifest!.file.version;
- let targetVersion = "";
+ const versionMatch = /^(\d{1,}).(\d{1,}).(\d{1,})$/;
+ const currentVersion = manifest!.file.version;
+ let targetVersion = "";
- if (!version) {
- cb(Error("Missing version number"));
- }
+ if (!version) {
+ cb(Error("Missing version number"));
+ }
- if (versionMatch.test(version)) {
- targetVersion = version;
- } else {
- targetVersion = currentVersion.replace(versionMatch, (substring: string, major: string, minor: string, patch: string) => {
- console.log(substring, Number(major) + 1, Number(minor) + 1, Number(patch) + 1);
- if (version === "major") {
- return `${Number(major) + 1}.0.0`;
- } else if (version === "minor") {
- return `${major}.${Number(minor) + 1}.0`;
- } else if (version === "patch") {
- return `${major}.${minor}.${Number(patch) + 1}`;
- } else {
- return "";
- }
- });
- }
+ if (versionMatch.test(version)) {
+ targetVersion = version;
+ } else {
+ targetVersion = currentVersion.replace(
+ versionMatch,
+ (substring: string, major: string, minor: string, patch: string) => {
+ console.log(
+ substring,
+ Number(major) + 1,
+ Number(minor) + 1,
+ Number(patch) + 1,
+ );
+ if (version === "major") {
+ return `${Number(major) + 1}.0.0`;
+ } else if (version === "minor") {
+ return `${major}.${Number(minor) + 1}.0`;
+ } else if (version === "patch") {
+ return `${major}.${minor}.${Number(patch) + 1}`;
+ } else {
+ return "";
+ }
+ },
+ );
+ }
- if (targetVersion === "") {
- return cb(Error("Error: Incorrect version arguments."));
- }
+ if (targetVersion === "") {
+ return cb(Error("Error: Incorrect version arguments."));
+ }
- if (targetVersion === currentVersion) {
- return cb(Error("Error: Target version is identical to current version."));
- }
+ if (targetVersion === currentVersion) {
+ 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;
- manifest.file.version = targetVersion;
+ packageJson.version = targetVersion;
+ manifest.file.version = targetVersion;
- /* Update URLs */
+ /* Update URLs */
- const result = `${repoURL}/releases/download`;
+ const result = `${repoURL}/releases/download`;
- manifest.file.url = repoURL;
- manifest.file.manifest = `${result}/v${manifest.file.version}/${manifest.name}`;
- manifest.file.download = `${result}/v${manifest.file.version}/${manifest.file.name}-v${manifest.file.version}.zip`;
+ manifest.file.url = repoURL;
+ manifest.file.manifest = `${result}/v${manifest.file.version}/${manifest.name}`;
+ manifest.file.download = `${result}/v${manifest.file.version}/${manifest.file.name}-v${manifest.file.version}.zip`;
- const prettyProjectJson = stringify(manifest.file, {
- maxLength: 35,
- indent: "\t",
- });
+ const prettyProjectJson = stringify(manifest.file, {
+ maxLength: 35,
+ indent: "\t",
+ });
- fs.writeFileSync("package.json", JSON.stringify(packageJson, null, "\t"));
- fs.writeFileSync(path.join(manifest.root, manifest.name), prettyProjectJson, "utf8");
+ fs.writeFileSync("package.json", JSON.stringify(packageJson, null, "\t"));
+ fs.writeFileSync(
+ path.join(manifest.root, manifest.name),
+ prettyProjectJson,
+ "utf8",
+ );
- return cb();
- } catch (err) {
- return cb(err);
- }
+ return cb();
+ } catch (err) {
+ return cb(err);
+ }
};
const gitTaskManifest = (cb: gulp.TaskFunctionCallback) => {
- const manifest = getManifest();
- if (!manifest) return cb(Error("could not load manifest."));
- return gulp
- .src([`package.json`, `source/system.json`])
- .pipe(git.add({ args: "--no-all -f" }))
- .pipe(git.commit(`v${manifest.file.version}`, { args: "-a", disableAppendPaths: true }));
+ const manifest = getManifest();
+ if (!manifest) return cb(Error("could not load manifest."));
+ return gulp
+ .src([`package.json`, `source/system.json`])
+ .pipe(git.add({ args: "--no-all -f" }))
+ .pipe(
+ git.commit(`v${manifest.file.version}`, {
+ args: "-a",
+ disableAppendPaths: true,
+ }),
+ );
};
const gitTaskBuild = (cb: gulp.TaskFunctionCallback) => {
- const manifest = getManifest();
- if (!manifest) return cb(Error("could not load manifest."));
+ const manifest = getManifest();
+ if (!manifest) return cb(Error("could not load manifest."));
- return gulp
- .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.commit(`v${manifest.file.version}`, { args: "-a", disableAppendPaths: true }));
+ return gulp
+ .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.commit(`v${manifest.file.version}`, {
+ args: "-a",
+ disableAppendPaths: true,
+ }),
+ );
};
const execBuild = gulp.parallel(buildTS, buildLess, buildPacks, copyFiles);
@@ -520,4 +627,11 @@ exports.clean = clean;
exports.link = linkUserData;
exports.package = packageBuild;
exports.update = updateManifest;
-exports.publish = gulp.series(clean, updateManifest, execBuild, bundleModule, packageBuild, gitTaskManifest);
+exports.publish = gulp.series(
+ clean,
+ updateManifest,
+ execBuild,
+ bundleModule,
+ packageBuild,
+ gitTaskManifest,
+);
diff --git a/lang/de.json b/lang/de.json
index 49ab45f..7ebfd37 100644
--- a/lang/de.json
+++ b/lang/de.json
@@ -1,377 +1,377 @@
{
- "TYPES.Actor.character": "Charakter",
- "ACTOR.TypeNpc": "Kreatur / Nichtspielerfigur",
- "ACTOR.TypeVehicle": "Transportmittel / Pferd etc.",
+ "TYPES.Actor.character": "Charakter",
+ "ACTOR.TypeNpc": "Kreatur / Nichtspielerfigur",
+ "ACTOR.TypeVehicle": "Transportmittel / Pferd etc.",
- "TYPES.Item.item": "Gegenstand",
- "TYPES.Item.skill": "Fertigkeit",
- "TYPES.Item.weapon": "Waffe",
- "TYPES.Item.defensiveWeapon": "Verteidigungswaffe",
- "TYPES.Item.armor": "Rüstung",
- "TYPES.Item.spell": "Zauber",
- "TYPES.Item.effect": "Aktiver Effekt",
- "TYPES.Item.kampfkunst": "Kampfkunst",
- "TYPES.Item.container": "Aufbewahrung",
+ "TYPES.Item.item": "Gegenstand",
+ "TYPES.Item.skill": "Fertigkeit",
+ "TYPES.Item.weapon": "Waffe",
+ "TYPES.Item.defensiveWeapon": "Verteidigungswaffe",
+ "TYPES.Item.armor": "Rüstung",
+ "TYPES.Item.spell": "Zauber",
+ "TYPES.Item.effect": "Aktiver Effekt",
+ "TYPES.Item.kampfkunst": "Kampfkunst",
+ "TYPES.Item.container": "Aufbewahrung",
- "midgard5.phase-action": "Handlungsphase",
- "midgard5.phase-movement": "Bewegungsphase",
- "midgard5.no-encounter": "Kein Kampf",
- "midgard5.encounter-not-started": "Kein aktiver Kampf",
- "midgard5.initiative": "Handlungsrang",
+ "midgard5.phase-action": "Handlungsphase",
+ "midgard5.phase-movement": "Bewegungsphase",
+ "midgard5.no-encounter": "Kein Kampf",
+ "midgard5.encounter-not-started": "Kein aktiver Kampf",
+ "midgard5.initiative": "Handlungsrang",
- "midgard5.combat-join": "Kampf Beitreten/Handlungsrang zurücksetzen",
- "midgard5.combat-ranged": "Fernangriff",
- "midgard5.combat-spell": "Zaubern (10 Sec)",
+ "midgard5.combat-join": "Kampf Beitreten/Handlungsrang zurücksetzen",
+ "midgard5.combat-ranged": "Fernangriff",
+ "midgard5.combat-spell": "Zaubern (10 Sec)",
- "midgard5.time-duration": "Dauer",
- "midgard5.time-round": "Runde(n)",
- "midgard5.time-minute": "Minute(n)",
- "midgard5.time-hour": "Stunde(n)",
- "midgard5.time-limitless": "Unbegrenzt",
+ "midgard5.time-duration": "Dauer",
+ "midgard5.time-round": "Runde(n)",
+ "midgard5.time-minute": "Minute(n)",
+ "midgard5.time-hour": "Stunde(n)",
+ "midgard5.time-limitless": "Unbegrenzt",
- "midgard5.doRoll": "Würfeln",
- "midgard5.learn": "Lernen",
+ "midgard5.doRoll": "Würfeln",
+ "midgard5.learn": "Lernen",
- "midgard5.label": "Bezeichnung",
- "midgard5.description": "Beschreibung",
- "midgard5.Characteristic": "Merkmal",
- "midgard5.characteristics": "Merkmale",
- "midgard5.background": "Hintergrund",
- "midgard5.attribute": "Eigenschaft",
- "midgard5.attributes": "Eigenschaften",
- "midgard5.points": "Punkte",
- "midgard5.calculated-value": "Berechneter Wert",
- "midgard5.calculated-values": "Sonstige Werte",
+ "midgard5.label": "Bezeichnung",
+ "midgard5.description": "Beschreibung",
+ "midgard5.Characteristic": "Merkmal",
+ "midgard5.characteristics": "Merkmale",
+ "midgard5.background": "Hintergrund",
+ "midgard5.attribute": "Eigenschaft",
+ "midgard5.attributes": "Eigenschaften",
+ "midgard5.points": "Punkte",
+ "midgard5.calculated-value": "Berechneter Wert",
+ "midgard5.calculated-values": "Werte und Boni",
- "midgard5.skill": "Fertigkeit",
- "midgard5.skill-value": "Fertigkeitswert",
- "midgard5.fw": "FW",
- "midgard5.bonus": "Bonus",
- "midgard5.bonuses": "Boni",
- "midgard5.ew": "EW",
- "midgard5.pp-short": "PP",
- "midgard5.pp": "Praxispunkte",
+ "midgard5.skill": "Fertigkeit",
+ "midgard5.skill-value": "Fertigkeitswert",
+ "midgard5.fw": "FW",
+ "midgard5.bonus": "Bonus",
+ "midgard5.bonuses": "Boni",
+ "midgard5.ew": "EW",
+ "midgard5.pp-short": "PP",
+ "midgard5.pp": "Praxispunkte",
- "midgard5.item-value": "Wert",
- "midgard5.item-quantity": "Menge",
- "midgard5.item-onbody": "Am Körper",
- "midgard5.item-ismagic": "Ist Magisch",
- "midgard5.item-wealth": "Vermögenswert",
- "midgard5.item-weight": "Gewicht",
+ "midgard5.item-value": "Wert",
+ "midgard5.item-quantity": "Menge",
+ "midgard5.item-onbody": "Am Körper",
+ "midgard5.item-ismagic": "Ist Magisch",
+ "midgard5.item-wealth": "Vermögenswert",
+ "midgard5.item-weight": "Gewicht",
- "midgard5.actor-lp": "Lebenspunkte",
- "midgard5.actor-lp-short": "LP",
- "midgard5.actor-ap": "Ausdauerpunkte",
- "midgard5.actor-ap-short": "AP",
- "midgard5.actor-st": "St",
- "midgard5.actor-st-long": "Stärke",
- "midgard5.actor-ko": "Ko",
- "midgard5.actor-ko-long": "Konstitution",
- "midgard5.actor-au": "Au",
- "midgard5.actor-au-long": "Aussehen",
- "midgard5.actor-gs": "Gs",
- "midgard5.actor-gs-long": "Geschicklichkeit",
- "midgard5.actor-in": "In",
- "midgard5.actor-in-long": "Intelligenz",
- "midgard5.actor-pa": "pA",
- "midgard5.actor-pa-long": "persönliche Ausstrahlung",
- "midgard5.actor-gw": "Gw",
- "midgard5.actor-gw-long": "Gewandtheit",
- "midgard5.actor-zt": "Zt",
- "midgard5.actor-zt-long": "Zaubertalent",
- "midgard5.actor-wk": "Wk",
- "midgard5.actor-wk-long": "Willenskraft",
- "midgard5.actor-git": "GiT",
- "midgard5.actor-git-long": "Gifttolleranz",
+ "midgard5.actor-lp": "Lebenspunkte",
+ "midgard5.actor-lp-short": "LP",
+ "midgard5.actor-ap": "Ausdauerpunkte",
+ "midgard5.actor-ap-short": "AP",
+ "midgard5.actor-st": "St",
+ "midgard5.actor-st-long": "Stärke",
+ "midgard5.actor-ko": "Ko",
+ "midgard5.actor-ko-long": "Konstitution",
+ "midgard5.actor-au": "Au",
+ "midgard5.actor-au-long": "Aussehen",
+ "midgard5.actor-gs": "Gs",
+ "midgard5.actor-gs-long": "Geschicklichkeit",
+ "midgard5.actor-in": "In",
+ "midgard5.actor-in-long": "Intelligenz",
+ "midgard5.actor-pa": "pA",
+ "midgard5.actor-pa-long": "persönliche Ausstrahlung",
+ "midgard5.actor-gw": "Gw",
+ "midgard5.actor-gw-long": "Gewandtheit",
+ "midgard5.actor-zt": "Zt",
+ "midgard5.actor-zt-long": "Zaubertalent",
+ "midgard5.actor-wk": "Wk",
+ "midgard5.actor-wk-long": "Willenskraft",
+ "midgard5.actor-git": "GiT",
+ "midgard5.actor-git-long": "Gifttolleranz",
- "midgard5.aktuell": "Akt.",
- "midgard5.maximum": "Max.",
- "midgard5.attrvalue": "Wert",
- "midgard5.movementRange": "Bewegungsweite",
+ "midgard5.aktuell": "Akt.",
+ "midgard5.maximum": "Max.",
+ "midgard5.attrvalue": "Wert",
+ "midgard5.movementRange": "Bewegungsweite",
- "midgard5.base_values": "Grundwerte",
- "midgard5.skills": "Fertigkeiten",
- "midgard5.gear": "Ausrüstung",
- "midgard5.spells": "Zauber",
- "midgard5.effects": "Aktive Effekte",
- "midgard5.kampfkuenste": "Kampfkünste",
- "midgard5.combat": "Kampf",
+ "midgard5.base_values": "Grundwerte",
+ "midgard5.skills": "Fertigkeiten",
+ "midgard5.gear": "Ausrüstung",
+ "midgard5.spells": "Zauber",
+ "midgard5.effects": "Aktive Effekte",
+ "midgard5.kampfkuenste": "Kampfkünste",
+ "midgard5.combat": "Kampf",
- "midgard5.actor-name": "Figur",
- "midgard5.level": "Grad",
- "midgard5.class": "Typ",
- "midgard5.race": "Rasse",
- "midgard5.magicUsing": "Zauberkundig",
- "midgard5.gender": "Geschlecht",
- "midgard5.weight": "Gewicht",
- "midgard5.height": "Größe",
- "midgard5.shape": "Gestalt",
- "midgard5.age": "Alter",
- "midgard5.caste": "Stand",
- "midgard5.occupation": "Beruf",
- "midgard5.origin": "Heimat",
- "midgard5.faith": "Glaube",
+ "midgard5.actor-name": "Figur",
+ "midgard5.level": "Grad",
+ "midgard5.class": "Typ",
+ "midgard5.race": "Rasse",
+ "midgard5.magicUsing": "Zauberkundig",
+ "midgard5.gender": "Geschlecht",
+ "midgard5.weight": "Gewicht",
+ "midgard5.height": "Größe",
+ "midgard5.shape": "Gestalt",
+ "midgard5.age": "Alter",
+ "midgard5.caste": "Stand",
+ "midgard5.occupation": "Beruf",
+ "midgard5.origin": "Heimat",
+ "midgard5.faith": "Glaube",
- "midgard5.currency": "Geld",
- "midgard5.currency-gold": "Gold",
- "midgard5.currency-silver": "Silber",
- "midgard5.currency-copper": "Kupfer",
- "midgard5.currency-wealth": "Vermögen in GS",
- "midgard5.currency-available": "verfügbares Vermögen",
- "midgard5.hoard": "aktueller Hort",
- "midgard5.hoardMin": "benötigter Mindesthort",
- "midgard5.hoard-next": "Hort für nächsten Grad",
- "midgard5.hoarded": "Hort",
+ "midgard5.currency": "Geld",
+ "midgard5.currency-gold": "Gold",
+ "midgard5.currency-silver": "Silber",
+ "midgard5.currency-copper": "Kupfer",
+ "midgard5.currency-wealth": "Vermögen in GS",
+ "midgard5.currency-available": "verfügbares Vermögen",
+ "midgard5.hoard": "aktueller Hort",
+ "midgard5.hoardMin": "benötigter Mindesthort",
+ "midgard5.hoard-next": "Hort für nächsten Grad",
+ "midgard5.hoarded": "Hort",
- "midgard5.no-container": "Ohne",
+ "midgard5.no-container": "Ohne",
- "midgard5.encumbrance": "Getragene Last",
- "midgard5.load": "Normallast",
- "midgard5.heavy-load": "Schwere Last",
- "midgard5.thrust-load": "Schublast",
- "midgard5.load-max": "Höchstlast",
- "midgard5.load-capacity": "Tragkraft",
+ "midgard5.encumbrance": "Getragene Last",
+ "midgard5.load": "Normallast",
+ "midgard5.heavy-load": "Schwere Last",
+ "midgard5.thrust-load": "Schublast",
+ "midgard5.load-max": "Höchstlast",
+ "midgard5.load-capacity": "Tragkraft",
- "midgard5.exp-overall": "Erfahrungsschatz",
- "midgard5.exp-available": "Erfahrungspunkte",
- "midgard5.grace": "Göttliche Gnade",
- "midgard5.destiny": "Schicksalsgunst",
- "midgard5.luckPoints": "Glückspunkte",
+ "midgard5.exp-overall": "Erfahrungsschatz",
+ "midgard5.exp-available": "Erfahrungspunkte",
+ "midgard5.grace": "Göttliche Gnade",
+ "midgard5.destiny": "Schicksalsgunst",
+ "midgard5.luckPoints": "Glückspunkte",
- "midgard5.abrichten": "Abrichten",
- "midgard5.akrobatik": "Akrobatik",
- "midgard5.alchimie": "Alchimie",
- "midgard5.anfuehren": "Anführen",
- "midgard5.askese": "Askese",
- "midgard5.astrologie": "Astrologie",
- "midgard5.athletik": "Athletik",
- "midgard5.balancieren": "Balancieren",
- "midgard5.beidhaendigerKampf": "Beidhändiger Kampf",
- "midgard5.bergreiten": "Bergreiten",
- "midgard5.beredsamkeit": "Beredsamkeit",
- "midgard5.betaeuben": "Betäuben",
- "midgard5.betaeubungsgriff": "Betäubungsgriff",
- "midgard5.bootfahren": "Bootfahren",
- "midgard5.dickhaeuterLenken": "Dickhäuter lenken",
- "midgard5.ersteHilfe": "Erste Hilfe",
- "midgard5.etikette": "Etikette",
- "midgard5.fallenEntdecken": "Fallen entdecken",
- "midgard5.fallenmechanik": "Fallenmechanik",
- "midgard5.faelschen": "Fälschen",
- "midgard5.fangen": "Fangen",
- "midgard5.fechten": "Fechten",
- "midgard5.feueralchimie": "Feueralchimie",
- "midgard5.gassenwissen": "Gassenwissen",
- "midgard5.gaukeln": "Gaukeln",
- "midgard5.gelaendelauf": "Geländelauf",
- "midgard5.geraetekunde": "Gerätekunde",
- "midgard5.geschaeftssinn": "Geschäftssinn",
- "midgard5.gluecksspiel": "Glücksspiel",
- "midgard5.heilkunde": "Heilkunde",
- "midgard5.kampfInVollruestung": "Kampf in Vollrüstung",
- "midgard5.kampfInSchlachtreihe": "Kampf in Schlachtreihe",
- "midgard5.kampfkunst": "Kampfkunst",
- "midgard5.kido": "Kido",
- "midgard5.klettern": "Klettern",
- "midgard5.landeskunde": "Landeskunde",
- "midgard5.laufen": "Laufen",
- "midgard5.lesenVonZauberschrift": "Lesen von Zauberschrift",
- "midgard5.lesenVonZauberrunen": "Lesen von Zauberrunen",
- "midgard5.meditieren": "Meditieren",
- "midgard5.menschenkenntnis": "Menschenkenntnis",
- "midgard5.meucheln": "Meucheln",
- "midgard5.musizieren": "Musizieren",
- "midgard5.naturkunde": "Naturkunde",
- "midgard5.ninjutsu": "NinJutsu",
- "midgard5.orakelkunst": "Orakelkunst",
- "midgard5.pflanzenkunde": "Pflanzenkunde",
- "midgard5.raunen": "Raunen",
- "midgard5.reiten": "Reiten",
- "midgard5.reiterkampf": "Reiterkampf",
- "midgard5.rutengehen": "Rutengehen",
- "midgard5.scharfschiessen": "Scharfschießen",
- "midgard5.schiesskunst": "Schießkunst",
- "midgard5.schleichen": "Schleichen",
- "midgard5.schloesserOeffnen": "Schlösser öffnen",
- "midgard5.schmerzErtragen": "Schmerzen ertragen",
- "midgard5.schwimmen": "Schwimmen",
- "midgard5.seilkunst": "Seilkunst",
- "midgard5.selbstkontrolle": "Selbstkontrolle",
- "midgard5.singen": "Singen",
- "midgard5.skifahren": "Skifahren",
- "midgard5.spinnengang": "Spinnengang",
- "midgard5.speerfechten": "Speerfechten",
- "midgard5.spurensuche": "Spurensuche",
- "midgard5.stehlen": "Stehlen",
- "midgard5.taitschi": "TaiTschi",
- "midgard5.tarnen": "Tarnen",
- "midgard5.tanzen": "Tanzen",
- "midgard5.tauchen": "Tauchen",
- "midgard5.thaumagraphie": "Thaumagraphie",
- "midgard5.thaumalogie": "Thaumalogie",
- "midgard5.tierkunde": "Tierkunde",
- "midgard5.ueberleben": "Überleben",
- "midgard5.verfuehren": "Verführen",
- "midgard5.verhoeren": "Verhören",
- "midgard5.verstellen": "Verstellen",
- "midgard5.volkstanz": "Volkstanz",
- "midgard5.wagenlenken": "Wagenlenken",
- "midgard5.wahrsagen": "Wahrsagen",
- "midgard5.wasserkampf": "Wasserkampf",
- "midgard5.zauberkunde": "Zauberkunde",
+ "midgard5.abrichten": "Abrichten",
+ "midgard5.akrobatik": "Akrobatik",
+ "midgard5.alchimie": "Alchimie",
+ "midgard5.anfuehren": "Anführen",
+ "midgard5.askese": "Askese",
+ "midgard5.astrologie": "Astrologie",
+ "midgard5.athletik": "Athletik",
+ "midgard5.balancieren": "Balancieren",
+ "midgard5.beidhaendigerKampf": "Beidhändiger Kampf",
+ "midgard5.bergreiten": "Bergreiten",
+ "midgard5.beredsamkeit": "Beredsamkeit",
+ "midgard5.betaeuben": "Betäuben",
+ "midgard5.betaeubungsgriff": "Betäubungsgriff",
+ "midgard5.bootfahren": "Bootfahren",
+ "midgard5.dickhaeuterLenken": "Dickhäuter lenken",
+ "midgard5.ersteHilfe": "Erste Hilfe",
+ "midgard5.etikette": "Etikette",
+ "midgard5.fallenEntdecken": "Fallen entdecken",
+ "midgard5.fallenmechanik": "Fallenmechanik",
+ "midgard5.faelschen": "Fälschen",
+ "midgard5.fangen": "Fangen",
+ "midgard5.fechten": "Fechten",
+ "midgard5.feueralchimie": "Feueralchimie",
+ "midgard5.gassenwissen": "Gassenwissen",
+ "midgard5.gaukeln": "Gaukeln",
+ "midgard5.gelaendelauf": "Geländelauf",
+ "midgard5.geraetekunde": "Gerätekunde",
+ "midgard5.geschaeftssinn": "Geschäftssinn",
+ "midgard5.gluecksspiel": "Glücksspiel",
+ "midgard5.heilkunde": "Heilkunde",
+ "midgard5.kampfInVollruestung": "Kampf in Vollrüstung",
+ "midgard5.kampfInSchlachtreihe": "Kampf in Schlachtreihe",
+ "midgard5.kampfkunst": "Kampfkunst",
+ "midgard5.kido": "Kido",
+ "midgard5.klettern": "Klettern",
+ "midgard5.landeskunde": "Landeskunde",
+ "midgard5.laufen": "Laufen",
+ "midgard5.lesenVonZauberschrift": "Lesen von Zauberschrift",
+ "midgard5.lesenVonZauberrunen": "Lesen von Zauberrunen",
+ "midgard5.meditieren": "Meditieren",
+ "midgard5.menschenkenntnis": "Menschenkenntnis",
+ "midgard5.meucheln": "Meucheln",
+ "midgard5.musizieren": "Musizieren",
+ "midgard5.naturkunde": "Naturkunde",
+ "midgard5.ninjutsu": "NinJutsu",
+ "midgard5.orakelkunst": "Orakelkunst",
+ "midgard5.pflanzenkunde": "Pflanzenkunde",
+ "midgard5.raunen": "Raunen",
+ "midgard5.reiten": "Reiten",
+ "midgard5.reiterkampf": "Reiterkampf",
+ "midgard5.rutengehen": "Rutengehen",
+ "midgard5.scharfschiessen": "Scharfschießen",
+ "midgard5.schiesskunst": "Schießkunst",
+ "midgard5.schleichen": "Schleichen",
+ "midgard5.schloesserOeffnen": "Schlösser öffnen",
+ "midgard5.schmerzErtragen": "Schmerzen ertragen",
+ "midgard5.schwimmen": "Schwimmen",
+ "midgard5.seilkunst": "Seilkunst",
+ "midgard5.selbstkontrolle": "Selbstkontrolle",
+ "midgard5.singen": "Singen",
+ "midgard5.skifahren": "Skifahren",
+ "midgard5.spinnengang": "Spinnengang",
+ "midgard5.speerfechten": "Speerfechten",
+ "midgard5.spurensuche": "Spurensuche",
+ "midgard5.stehlen": "Stehlen",
+ "midgard5.taitschi": "TaiTschi",
+ "midgard5.tarnen": "Tarnen",
+ "midgard5.tanzen": "Tanzen",
+ "midgard5.tauchen": "Tauchen",
+ "midgard5.thaumagraphie": "Thaumagraphie",
+ "midgard5.thaumalogie": "Thaumalogie",
+ "midgard5.tierkunde": "Tierkunde",
+ "midgard5.ueberleben": "Überleben",
+ "midgard5.verfuehren": "Verführen",
+ "midgard5.verhoeren": "Verhören",
+ "midgard5.verstellen": "Verstellen",
+ "midgard5.volkstanz": "Volkstanz",
+ "midgard5.wagenlenken": "Wagenlenken",
+ "midgard5.wahrsagen": "Wahrsagen",
+ "midgard5.wasserkampf": "Wasserkampf",
+ "midgard5.zauberkunde": "Zauberkunde",
- "midgard5.armor": "Rüstung",
- "midgard5.defense": "Abwehr",
- "midgard5.damageBonus": "Schadensbonus",
- "midgard5.damageBonus-short": "SchB",
- "midgard5.attackBonus": "Angriffsbonus",
- "midgard5.attackBonus-short": "AnB",
- "midgard5.defenseBonus": "Abwehrbonus",
- "midgard5.defenseBonus-short": "AbB",
- "midgard5.movementBonus": "Bewegunsbonus",
- "midgard5.resistanceMind": "Resistenz Geist",
- "midgard5.resistanceBody": "Resistenz Körper",
- "midgard5.spellCasting": "Zaubern",
- "midgard5.spellBonus": "Zauberbonus",
- "midgard5.brawl": "Raufen",
- "midgard5.poisonResistance": "Gifttolleranz",
- "midgard5.enduranceBonus": "Ausdauerbonus",
- "midgard5.lpProtection": "Rüstungsschutz (LP)",
- "midgard5.apProtection": "Rüstungsschutz (AP)",
- "midgard5.perception": "Wahrnehmung",
- "midgard5.drinking": "Trinken",
+ "midgard5.armor": "Rüstung",
+ "midgard5.defense": "Abwehr",
+ "midgard5.damageBonus": "Schadensbonus",
+ "midgard5.damageBonus-short": "SchB",
+ "midgard5.attackBonus": "Angriffsbonus",
+ "midgard5.attackBonus-short": "AnB",
+ "midgard5.defenseBonus": "Abwehrbonus",
+ "midgard5.defenseBonus-short": "AbB",
+ "midgard5.movementBonus": "Bewegunsbonus",
+ "midgard5.resistanceMind": "Resistenz Geist",
+ "midgard5.resistanceBody": "Resistenz Körper",
+ "midgard5.spellCasting": "Zaubern",
+ "midgard5.spellBonus": "Zauberbonus",
+ "midgard5.brawl": "Raufen",
+ "midgard5.poisonResistance": "Gifttolleranz",
+ "midgard5.enduranceBonus": "Ausdauerbonus",
+ "midgard5.lpProtection": "Rüstungsschutz (LP)",
+ "midgard5.apProtection": "Rüstungsschutz (AP)",
+ "midgard5.perception": "Wahrnehmung",
+ "midgard5.drinking": "Trinken",
- "midgard5.new-skill": "Neue Fertigkeit",
- "midgard5.special": "Spezial",
- "midgard5.learned-skill": "Gelernte Fertigkeit",
- "midgard5.learned-skills": "Gelernte Fertigkeiten",
- "midgard5.language": "Sprache",
- "midgard5.languages": "Sprachen",
- "midgard5.weapon-skill": "Waffenfertigkeit",
- "midgard5.weapon-skills": "Waffenfertigkeiten",
- "midgard5.unlearned-skill": "Ungelernte Fertigkeit",
- "midgard5.unlearned-skills": "Ungelernte Fertigkeiten",
- "midgard5.innate-ability": "Angeborene/Besondere Fertigkeit",
- "midgard5.innate-abilities": "Angeborene/Besondere Fertigkeit",
+ "midgard5.new-skill": "Neue Fertigkeit",
+ "midgard5.special": "Spezial",
+ "midgard5.learned-skill": "Gelernte Fertigkeit",
+ "midgard5.learned-skills": "Gelernte Fertigkeiten",
+ "midgard5.language": "Sprache",
+ "midgard5.languages": "Sprachen",
+ "midgard5.weapon-skill": "Waffenfertigkeit",
+ "midgard5.weapon-skills": "Waffenfertigkeiten",
+ "midgard5.unlearned-skill": "Ungelernte Fertigkeit",
+ "midgard5.unlearned-skills": "Ungelernte Fertigkeiten",
+ "midgard5.innate-ability": "Angeborene/Besondere Fertigkeit",
+ "midgard5.innate-abilities": "Angeborene/Besondere Fertigkeit",
- "midgard5.base-damage": "Grundschaden",
- "midgard5.weapon": "Waffe",
- "midgard5.weapons": "Waffen",
- "midgard5.defensive-weapon": "Verteidigungswaffe",
- "midgard5.defensive-weapons": "Verteidigungswaffen",
- "midgard5.no-skill": "Keine Fertigkeit",
- "midgard5.magic": "magisch",
- "midgard5.valuable": "Vermögen",
- "midgard5.equipped": "Ausgerüstet",
- "midgard5.active": "Aktiv",
- "midgard5.rangedWeapon": "Schusswaffe",
- "midgard5.assignItemToCharacter": "Füge Gegenstand einem Charakter hinzu, um hier etwas auswählen zu können",
- "midgard5.showAll": "Alle anzeigen",
- "midgard5.wealthAndContainers": "Vermögen und Aufbewahrung",
- "midgard5.itemsInContainers": "Gegenstände in Aufbewahrung",
- "midgard5.allItems": "Alle Gegenstände",
+ "midgard5.base-damage": "Grundschaden",
+ "midgard5.weapon": "Waffe",
+ "midgard5.weapons": "Waffen",
+ "midgard5.defensive-weapon": "Verteidigungswaffe",
+ "midgard5.defensive-weapons": "Verteidigungswaffen",
+ "midgard5.no-skill": "Keine Fertigkeit",
+ "midgard5.magic": "magisch",
+ "midgard5.valuable": "Vermögen",
+ "midgard5.equipped": "Ausgerüstet",
+ "midgard5.active": "Aktiv",
+ "midgard5.rangedWeapon": "Schusswaffe",
+ "midgard5.assignItemToCharacter": "Füge Gegenstand einem Charakter hinzu, um hier etwas auswählen zu können",
+ "midgard5.showAll": "Alle anzeigen",
+ "midgard5.wealthAndContainers": "Vermögen und Aufbewahrung",
+ "midgard5.itemsInContainers": "Gegenstände in Aufbewahrung",
+ "midgard5.allItems": "Alle Gegenstände",
- "midgard5.pw": "Prüfwurf",
- "midgard5.attack": "Angriff",
- "midgard5.damage": "Schaden",
+ "midgard5.pw": "Prüfwurf",
+ "midgard5.attack": "Angriff",
+ "midgard5.damage": "Schaden",
- "midgard5.spell-process-none": "Ohne",
- "midgard5.spell-process-beherrschen": "Beherrschen",
- "midgard5.spell-process-bewegen": "Bewegen",
- "midgard5.spell-process-erkennen": "Erkennen",
- "midgard5.spell-process-erschaffen": "Erschaffen",
- "midgard5.spell-process-formen": "Formen",
- "midgard5.spell-process-veraendern": "Verändern",
- "midgard5.spell-process-zerstoeren": "Zerstören",
- "midgard5.spell-process-wundertat": "Wundertat",
- "midgard5.spell-process-dweomer": "Dweomer",
- "midgard5.spell-process-zauberlied": "Zauberlied",
- "midgard5.spell-process-salz": "Salz",
- "midgard5.spell-process-thaumagraphie": "Thaumagraphie",
- "midgard5.spell-process-beschwoeren": "Beschwören",
- "midgard5.spell-process-nekromantie": "Nekromantie",
- "midgard5.spell-process-thaumatherapie": "Thaumatherapie",
- "midgard5.spell-process-zaubermittel": "Zaubermittel",
- "midgard5.spell-process-zauberschutz": "Zauberschutz",
+ "midgard5.spell-process-none": "Ohne",
+ "midgard5.spell-process-beherrschen": "Beherrschen",
+ "midgard5.spell-process-bewegen": "Bewegen",
+ "midgard5.spell-process-erkennen": "Erkennen",
+ "midgard5.spell-process-erschaffen": "Erschaffen",
+ "midgard5.spell-process-formen": "Formen",
+ "midgard5.spell-process-veraendern": "Verändern",
+ "midgard5.spell-process-zerstoeren": "Zerstören",
+ "midgard5.spell-process-wundertat": "Wundertat",
+ "midgard5.spell-process-dweomer": "Dweomer",
+ "midgard5.spell-process-zauberlied": "Zauberlied",
+ "midgard5.spell-process-salz": "Salz",
+ "midgard5.spell-process-thaumagraphie": "Thaumagraphie",
+ "midgard5.spell-process-beschwoeren": "Beschwören",
+ "midgard5.spell-process-nekromantie": "Nekromantie",
+ "midgard5.spell-process-thaumatherapie": "Thaumatherapie",
+ "midgard5.spell-process-zaubermittel": "Zaubermittel",
+ "midgard5.spell-process-zauberschutz": "Zauberschutz",
- "midgard5.spell-type-gedanke": "Gedanke",
- "midgard5.spell-type-geste": "Geste",
- "midgard5.spell-type-wort": "Wort",
+ "midgard5.spell-type-gedanke": "Gedanke",
+ "midgard5.spell-type-geste": "Geste",
+ "midgard5.spell-type-wort": "Wort",
- "midgard5.spell-target-umgebung": "Umgebung",
- "midgard5.spell-target-geist": "Geist",
- "midgard5.spell-target-koerper": "Körper",
+ "midgard5.spell-target-umgebung": "Umgebung",
+ "midgard5.spell-target-geist": "Geist",
+ "midgard5.spell-target-koerper": "Körper",
- "midgard5.spell-type": "Art",
- "midgard5.spell-process": "Prozess",
- "midgard5.spell-castDuration": "Zauberdauer",
- "midgard5.spell-range": "Reichweite",
- "midgard5.spell-effectTarget": "Wirkunsziel",
- "midgard5.spell-effectArea": "Wirkungsbereich",
- "midgard5.spell-effectDuration": "Wirkungsdauer",
- "midgard5.spell-origin": "Ursprung",
+ "midgard5.spell-type": "Art",
+ "midgard5.spell-process": "Prozess",
+ "midgard5.spell-castDuration": "Zauberdauer",
+ "midgard5.spell-range": "Reichweite",
+ "midgard5.spell-effectTarget": "Wirkunsziel",
+ "midgard5.spell-effectArea": "Wirkungsbereich",
+ "midgard5.spell-effectDuration": "Wirkungsdauer",
+ "midgard5.spell-origin": "Ursprung",
- "midgard5.kampfkunst-type": "Kampfkunst Art",
- "midgard5.kampfkunst-variante": "Kampfkunst Variante",
- "midgard5.kampfkunst-variante-short": "Var",
- "midgard5.kido-type": "Kido Art",
- "midgard5.kido-variante": "Kido Variante",
+ "midgard5.kampfkunst-type": "Kampfkunst Art",
+ "midgard5.kampfkunst-variante": "Kampfkunst Variante",
+ "midgard5.kampfkunst-variante-short": "Var",
+ "midgard5.kido-type": "Kido Art",
+ "midgard5.kido-variante": "Kido Variante",
- "midgard5.kampfkunst-type-angriff": "Angriffstechnik",
- "midgard5.kampfkunst-type-verteidigung": "Verteidigungstechnik",
- "midgard5.kampfkunst-type-finte": "Finte",
- "midgard5.kampfkunst-type-geist": "Geistestechnik",
- "midgard5.kampfkunst-type-schießkunst": "Schießkunst",
- "midgard5.kampfkunst-type-fechten": "Fechtkunst",
- "midgard5.kido-type-angriff": "Kido Angriffstechnik",
- "midgard5.kido-type-verteidigung": "Kido Verteidigungstechnik",
- "midgard5.kido-type-finte": "Kido Finte",
- "midgard5.kido-type-leib": "Kido Leibestechnik",
+ "midgard5.kampfkunst-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.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.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-roll": "Wurf Modifikation",
- "midgard5.mod-operation-add": "Addieren",
- "midgard5.mod-operation-set": "Basiswert",
- "midgard5.mod-operation-fixed": "Fester Wert",
- "midgard5.mod-operation-subtract": "Subtrahieren",
- "midgard5.mod-operation-multiply": "Multiplizieren",
- "midgard5.mod-operation-division": "Dividieren",
+ "midgard5.mod-operation-add100": "Addieren (max 100)",
+ "midgard5.mod-operation-roll": "Wurf Modifikation",
+ "midgard5.mod-operation-add": "Addieren",
+ "midgard5.mod-operation-set": "Basiswert",
+ "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-attackBonus": "Angriffsbonus",
- "midgard5.mod-stat-damageBonus": "Schadensbonus",
- "midgard5.mod-stat-movement": "Bewegung",
- "midgard5.mod-stat-resistanceMind": "Resistenz Geist",
- "midgard5.mod-stat-resistanceBody": "Resistenz Körper",
- "midgard5.mod-stat-spellCasting": "Zaubern",
- "midgard5.mod-stat-brawl": "Raufen",
- "midgard5.mod-stat-poisonResistance": "Gifttolleranz",
- "midgard5.mod-stat-lp": "Lebenspunkte",
- "midgard5.mod-stat-ap": "Ausdauerpunkte",
- "midgard5.mod-stat-lpProtection": "Rüstungsschutz (LP)",
- "midgard5.mod-stat-apProtection": "Rüstungsschutz (AP)",
- "midgard5.mod-stat-perception": "Wahrnehmung",
- "midgard5.mod-stat-drinking": "Trinken",
+ "midgard5.mod-stat-defenseBonus": "Abwehrbonus",
+ "midgard5.mod-stat-attackBonus": "Angriffsbonus",
+ "midgard5.mod-stat-damageBonus": "Schadensbonus",
+ "midgard5.mod-stat-movement": "Bewegung",
+ "midgard5.mod-stat-resistanceMind": "Resistenz Geist",
+ "midgard5.mod-stat-resistanceBody": "Resistenz Körper",
+ "midgard5.mod-stat-spellCasting": "Zaubern",
+ "midgard5.mod-stat-brawl": "Raufen",
+ "midgard5.mod-stat-poisonResistance": "Gifttolleranz",
+ "midgard5.mod-stat-lp": "Lebenspunkte",
+ "midgard5.mod-stat-ap": "Ausdauerpunkte",
+ "midgard5.mod-stat-lpProtection": "Rüstungsschutz (LP)",
+ "midgard5.mod-stat-apProtection": "Rüstungsschutz (AP)",
+ "midgard5.mod-stat-perception": "Wahrnehmung",
+ "midgard5.mod-stat-drinking": "Trinken",
- "midgard5.mod-type": "Typ der Modifikation",
- "midgard5.mod-id": "Was soll modifiziert werden",
- "midgard5.mod-operation": "Wie soll modifiziert werden",
- "midgard5.mod-value": "Wert",
+ "midgard5.mod-type": "Typ der Modifikation",
+ "midgard5.mod-id": "Was soll modifiziert werden",
+ "midgard5.mod-operation": "Wie soll modifiziert werden",
+ "midgard5.mod-value": "Wert",
- "midgard5.type": "Typ",
- "midgard5.formula": "Formel",
- "midgard5.roll": "Wurf"
+ "midgard5.type": "Typ",
+ "midgard5.formula": "Formel",
+ "midgard5.roll": "Wurf"
}
diff --git a/package.json b/package.json
index efe783e..a9c15a3 100644
--- a/package.json
+++ b/package.json
@@ -1,61 +1,65 @@
{
- "name": "foundry-system-midgard5",
- "version": "2.4.0",
- "description": "",
- "main": "index.js",
- "scripts": {
- "package": "gulp publish --update",
- "build": "gulp build --dbg",
- "build:target": "gulp buildTarget --dbg",
- "build:link": "gulp build --dbg && gulp link",
- "build:prod": "gulp build",
- "build:watch": "gulp watch",
- "build:watch:target": "gulp watchTarget",
- "clean": "gulp clean && gulp link --clean"
- },
- "author": "Byroks",
- "license": "MIT",
- "devDependencies": {
- "@babel/core": "^7.15.0",
- "@league-of-foundry-developers/foundry-vtt-types": "^9.280.0",
- "@types/archiver": "^5.1.1",
- "@types/browserify": "^12.0.37",
- "@types/color": "^3.0.2",
- "@types/fs-extra": "^9.0.13",
- "@types/gulp": "^4.0.9",
- "@types/gulp-less": "^0.0.32",
- "@types/jquery": "^3.5.6",
- "@types/node": "^16.9.1",
- "@types/yargs": "^17.0.2",
- "@typescript-eslint/eslint-plugin": "^4.30.0",
- "@typescript-eslint/parser": "^4.30.0",
- "archiver": "^5.3.0",
- "babelify": "^10.0.0",
- "browserify": "^17.0.0",
- "color": "3.2.1",
- "eslint": "^7.32.0",
- "fs-extra": "^10.0.1",
- "gulp": "^4.0.2",
- "gulp-bro": "^2.0.0",
- "gulp-concat": "^2.6.1",
- "gulp-git": "^2.10.1",
- "gulp-git-streamed": "^2.10.1",
- "gulp-jsonminify": "^1.1.0",
- "gulp-less": "^5.0.0",
- "gulp-sourcemaps": "^3.0.0",
- "gulp-typescript": "^6.0.0-alpha.1",
- "gulp-uglify": "^3.0.2",
- "json-stringify-pretty-compact": "^3.0.0",
- "merge2": "^1.4.1",
- "ts-node": "^10.2.1",
- "tsify": "^5.0.4",
- "typescript": "^4.4.2",
- "uglifyify": "^5.0.2",
- "vinyl-buffer": "^1.0.1",
- "vinyl-source-stream": "^2.0.0",
- "yargs": "^17.1.1"
- },
- "dependencies": {
- "handlebars-helpers": "^0.10.0"
- }
-}
\ No newline at end of file
+ "name": "foundry-system-midgard5",
+ "version": "2.4.2",
+ "description": "",
+ "main": "index.js",
+ "scripts": {
+ "package": "gulp publish --update",
+ "build": "gulp build --dbg",
+ "build:target": "gulp buildTarget --dbg",
+ "build:link": "gulp build --dbg && gulp link",
+ "build:prod": "gulp build",
+ "build:watch": "gulp watch",
+ "build:watch:target": "gulp watchTarget",
+ "clean": "gulp clean && gulp link --clean",
+ "lint": "eslint --ext .js,.ts .",
+ "format": "prettier --ignore-path .gitignore --write \"**/*.+(js|ts|json)\""
+ },
+ "author": "Byroks",
+ "license": "MIT",
+ "devDependencies": {
+ "@babel/core": "^7.15.0",
+ "@league-of-foundry-developers/foundry-vtt-types": "^9.280.0",
+ "@types/archiver": "^5.1.1",
+ "@types/browserify": "^12.0.37",
+ "@types/color": "^3.0.2",
+ "@types/fs-extra": "^9.0.13",
+ "@types/gulp": "^4.0.9",
+ "@types/gulp-less": "^0.0.32",
+ "@types/jquery": "^3.5.6",
+ "@types/node": "^16.9.1",
+ "@types/yargs": "^17.0.2",
+ "@typescript-eslint/eslint-plugin": "^7.0.2",
+ "@typescript-eslint/parser": "^7.0.2",
+ "archiver": "^5.3.0",
+ "babelify": "^10.0.0",
+ "browserify": "^17.0.0",
+ "color": "3.2.1",
+ "eslint": "^8.56.0",
+ "eslint-config-google": "^0.14.0",
+ "fs-extra": "^10.0.1",
+ "gulp": "^4.0.2",
+ "gulp-bro": "^2.0.0",
+ "gulp-concat": "^2.6.1",
+ "gulp-git": "^2.10.1",
+ "gulp-git-streamed": "^2.10.1",
+ "gulp-jsonminify": "^1.1.0",
+ "gulp-less": "^5.0.0",
+ "gulp-sourcemaps": "^3.0.0",
+ "gulp-typescript": "^6.0.0-alpha.1",
+ "gulp-uglify": "^3.0.2",
+ "json-stringify-pretty-compact": "^3.0.0",
+ "merge2": "^1.4.1",
+ "prettier": "^3.2.5",
+ "ts-node": "^10.2.1",
+ "tsify": "^5.0.4",
+ "typescript": "^4.4.2",
+ "uglifyify": "^5.0.2",
+ "vinyl-buffer": "^1.0.1",
+ "vinyl-source-stream": "^2.0.0",
+ "yargs": "^17.1.1"
+ },
+ "dependencies": {
+ "handlebars-helpers": "^0.10.0"
+ }
+}
diff --git a/packs/actors/blaupause-spielfiguren/grad-01.json b/packs/actors/blaupause-spielfiguren/grad-01.json
index 4b8da4a..4b18152 100644
--- a/packs/actors/blaupause-spielfiguren/grad-01.json
+++ b/packs/actors/blaupause-spielfiguren/grad-01.json
@@ -1,472 +1,472 @@
{
- "name": "Grad 01",
- "type": "character",
- "img": "icons/svg/mystery-man.svg",
- "system": {
- "lp": {
- "value": 15,
- "min": 0,
- "max": 15
- },
- "ap": {
- "value": 20,
- "min": 0,
- "max": 20
- },
- "attributes": {
- "st": {
- "value": 50,
- "bonus": 0
- },
- "gs": {
- "value": 50,
- "bonus": 0
- },
- "gw": {
- "value": 50,
- "bonus": 0
- },
- "ko": {
- "value": 50,
- "bonus": 0
- },
- "in": {
- "value": 50,
- "bonus": 0
- },
- "zt": {
- "value": 50,
- "bonus": 0
- },
- "au": {
- "value": 50,
- "bonus": 0
- },
- "pa": {
- "value": 50,
- "bonus": 0
- },
- "wk": {
- "value": 50,
- "bonus": 0
- }
- },
- "info": {
- "description": "",
- "class": "",
- "race": "",
- "magicUsing": false,
- "gender": "",
- "weight": "",
- "height": "",
- "shape": "",
- "age": "",
- "caste": "",
- "occupation": "",
- "origin": "",
- "faith": ""
- },
- "es": 0,
- "ep": 0,
- "gg": 0,
- "sg": 0,
- "gp": 2,
- "skills": {
- "general": {
- "akrobatik": {
- "fw": 6,
- "attribute": "gw",
- "initial": 8,
- "pp": 0
- },
- "alchimie": {
- "fw": 0,
- "attribute": "in",
- "initial": 8,
- "pp": 0
- },
- "anfuehren": {
- "fw": 6,
- "attribute": "pa",
- "initial": 8,
- "pp": 0
- },
- "athletik": {
- "fw": 0,
- "attribute": "st",
- "initial": 8,
- "pp": 0
- },
- "balancieren": {
- "fw": 6,
- "attribute": "gw",
- "initial": 8,
- "pp": 0
- },
- "beidhaendigerKampf": {
- "fw": 0,
- "attribute": "gs",
- "initial": 8,
- "pp": 0
- },
- "beredsamkeit": {
- "fw": 3,
- "attribute": "pa",
- "initial": 8,
- "pp": 0
- },
- "betaeuben": {
- "fw": 6,
- "attribute": "gs",
- "initial": 8,
- "pp": 0
- },
- "bootfahren": {
- "fw": 3,
- "attribute": "gs",
- "initial": 8,
- "pp": 0
- },
- "ersteHilfe": {
- "fw": 0,
- "attribute": "gs",
- "initial": 8,
- "pp": 0
- },
- "etikette": {
- "fw": 0,
- "attribute": "in",
- "initial": 8,
- "pp": 0
- },
- "fallenEntdecken": {
- "fw": 0,
- "attribute": "in",
- "initial": 8,
- "pp": 0
- },
- "fallenmechanik": {
- "fw": 0,
- "attribute": "gs",
- "initial": 8,
- "pp": 0
- },
- "faelschen": {
- "fw": 0,
- "attribute": "gs",
- "initial": 8,
- "pp": 0
- },
- "fechten": {
- "fw": 0,
- "attribute": "gs",
- "initial": 8,
- "pp": 0
- },
- "gassenwissen": {
- "fw": 0,
- "attribute": "in",
- "initial": 8,
- "pp": 0
- },
- "gaukeln": {
- "fw": 0,
- "attribute": "gs",
- "initial": 8,
- "pp": 0
- },
- "gelaendelauf": {
- "fw": 6,
- "attribute": "gw",
- "initial": 8,
- "pp": 0
- },
- "geraetekunde": {
- "fw": 0,
- "attribute": "in",
- "initial": 8,
- "pp": 0
- },
- "geschaeftssinn": {
- "fw": 0,
- "attribute": "in",
- "initial": 8,
- "pp": 0
- },
- "gluecksspiel": {
- "fw": 0,
- "attribute": "gs",
- "initial": 8,
- "pp": 0
- },
- "heilkunde": {
- "fw": 0,
- "attribute": "in",
- "initial": 8,
- "pp": 0
- },
- "kampfInVollruestung": {
- "fw": 0,
- "attribute": "st",
- "initial": 8,
- "pp": 0
- },
- "klettern": {
- "fw": 6,
- "attribute": "st",
- "initial": 8,
- "pp": 0
- },
- "landeskunde": {
- "fw": 6,
- "attribute": "in",
- "initial": 8,
- "pp": 0
- },
- "laufen": {
- "fw": 0,
- "attribute": "ko",
- "initial": 8,
- "pp": 0
- },
- "lesenVonZauberschrift": {
- "fw": 0,
- "attribute": "in",
- "initial": 8,
- "pp": 0
- },
- "meditieren": {
- "fw": 0,
- "attribute": "wk",
- "initial": 8,
- "pp": 0
- },
- "menschenkenntnis": {
- "fw": 3,
- "attribute": "in",
- "initial": 8,
- "pp": 0
- },
- "meucheln": {
- "fw": 0,
- "attribute": "gs",
- "initial": 8,
- "pp": 0
- },
- "musizieren": {
- "fw": 0,
- "attribute": "gs",
- "initial": 8,
- "pp": 0
- },
- "naturkunde": {
- "fw": 0,
- "attribute": "in",
- "initial": 8,
- "pp": 0
- },
- "pflanzenkunde": {
- "fw": 0,
- "attribute": "in",
- "initial": 8,
- "pp": 0
- },
- "reiten": {
- "fw": 6,
- "attribute": "gw",
- "initial": 8,
- "pp": 0
- },
- "reiterkampf": {
- "fw": 0,
- "attribute": "gw",
- "initial": 8,
- "pp": 0
- },
- "scharfschiessen": {
- "fw": 0,
- "attribute": "gs",
- "initial": 8,
- "pp": 0
- },
- "schleichen": {
- "fw": 3,
- "attribute": "gw",
- "initial": 8,
- "pp": 0
- },
- "schloesserOeffnen": {
- "fw": 0,
- "attribute": "gs",
- "initial": 8,
- "pp": 0
- },
- "schwimmen": {
- "fw": 3,
- "attribute": "gw",
- "initial": 8,
- "pp": 0
- },
- "seilkunst": {
- "fw": 3,
- "attribute": "gs",
- "initial": 8,
- "pp": 0
- },
- "spurensuche": {
- "fw": 0,
- "attribute": "in",
- "initial": 8,
- "pp": 0
- },
- "stehlen": {
- "fw": 3,
- "attribute": "gs",
- "initial": 8,
- "pp": 0
- },
- "tarnen": {
- "fw": 3,
- "attribute": "gw",
- "initial": 8,
- "pp": 0
- },
- "tauchen": {
- "fw": 6,
- "attribute": "ko",
- "initial": 8,
- "pp": 0
- },
- "tierkunde": {
- "fw": 0,
- "attribute": "in",
- "initial": 8,
- "pp": 0
- },
- "ueberleben": {
- "fw": 6,
- "attribute": "in",
- "initial": 8,
- "pp": 0
- },
- "verfuehren": {
- "fw": 3,
- "attribute": "pa",
- "initial": 8,
- "pp": 0
- },
- "verhoeren": {
- "fw": 3,
- "attribute": "pa",
- "initial": 8,
- "pp": 0
- },
- "verstellen": {
- "fw": 3,
- "attribute": "pa",
- "initial": 8,
- "pp": 0
- },
- "wagenlenken": {
- "fw": 3,
- "attribute": "gs",
- "initial": 8,
- "pp": 0
- },
- "zauberkunde": {
- "fw": 0,
- "attribute": "in",
- "initial": 8,
- "pp": 0
- }
- }
- },
- "calc": {}
+ "name": "Grad 01",
+ "type": "character",
+ "img": "icons/svg/mystery-man.svg",
+ "system": {
+ "lp": {
+ "value": 15,
+ "min": 0,
+ "max": 15
},
- "prototypeToken": {
- "name": "Spielfigur",
- "displayName": 0,
- "actorLink": false,
- "texture": {
- "src": "icons/svg/mystery-man.svg",
- "scaleX": 1,
- "scaleY": 1,
- "offsetX": 0,
- "offsetY": 0,
- "rotation": 0,
- "tint": null
- },
- "width": 1,
- "height": 1,
- "lockRotation": false,
- "rotation": 0,
- "alpha": 1,
- "disposition": -1,
- "displayBars": 0,
- "bar1": {
- "attribute": "lp"
- },
- "bar2": {
- "attribute": "ap"
- },
- "light": {
- "alpha": 0.5,
- "angle": 360,
- "bright": 0,
- "color": null,
- "coloration": 1,
- "dim": 0,
- "attenuation": 0.5,
- "luminosity": 0.5,
- "saturation": 0,
- "contrast": 0,
- "shadows": 0,
- "animation": {
- "type": null,
- "speed": 5,
- "intensity": 5,
- "reverse": false
- },
- "darkness": {
- "min": 0,
- "max": 1
- }
- },
- "sight": {
- "enabled": false,
- "range": null,
- "angle": 360,
- "visionMode": "basic",
- "color": null,
- "attenuation": 0.1,
- "brightness": 0,
- "saturation": 0,
- "contrast": 0
- },
- "detectionModes": [],
- "flags": {},
- "randomImg": false
+ "ap": {
+ "value": 20,
+ "min": 0,
+ "max": 20
},
- "items": [],
- "effects": [],
- "flags": {
- "core": {
- "sourceId": "Actor.25UihsoT43jms4Rx"
+ "attributes": {
+ "st": {
+ "value": 50,
+ "bonus": 0
+ },
+ "gs": {
+ "value": 50,
+ "bonus": 0
+ },
+ "gw": {
+ "value": 50,
+ "bonus": 0
+ },
+ "ko": {
+ "value": 50,
+ "bonus": 0
+ },
+ "in": {
+ "value": 50,
+ "bonus": 0
+ },
+ "zt": {
+ "value": 50,
+ "bonus": 0
+ },
+ "au": {
+ "value": 50,
+ "bonus": 0
+ },
+ "pa": {
+ "value": 50,
+ "bonus": 0
+ },
+ "wk": {
+ "value": 50,
+ "bonus": 0
+ }
+ },
+ "info": {
+ "description": "",
+ "class": "",
+ "race": "",
+ "magicUsing": false,
+ "gender": "",
+ "weight": "",
+ "height": "",
+ "shape": "",
+ "age": "",
+ "caste": "",
+ "occupation": "",
+ "origin": "",
+ "faith": ""
+ },
+ "es": 0,
+ "ep": 0,
+ "gg": 0,
+ "sg": 0,
+ "gp": 2,
+ "skills": {
+ "general": {
+ "akrobatik": {
+ "fw": 6,
+ "attribute": "gw",
+ "initial": 8,
+ "pp": 0
+ },
+ "alchimie": {
+ "fw": 0,
+ "attribute": "in",
+ "initial": 8,
+ "pp": 0
+ },
+ "anfuehren": {
+ "fw": 6,
+ "attribute": "pa",
+ "initial": 8,
+ "pp": 0
+ },
+ "athletik": {
+ "fw": 0,
+ "attribute": "st",
+ "initial": 8,
+ "pp": 0
+ },
+ "balancieren": {
+ "fw": 6,
+ "attribute": "gw",
+ "initial": 8,
+ "pp": 0
+ },
+ "beidhaendigerKampf": {
+ "fw": 0,
+ "attribute": "gs",
+ "initial": 8,
+ "pp": 0
+ },
+ "beredsamkeit": {
+ "fw": 3,
+ "attribute": "pa",
+ "initial": 8,
+ "pp": 0
+ },
+ "betaeuben": {
+ "fw": 6,
+ "attribute": "gs",
+ "initial": 8,
+ "pp": 0
+ },
+ "bootfahren": {
+ "fw": 3,
+ "attribute": "gs",
+ "initial": 8,
+ "pp": 0
+ },
+ "ersteHilfe": {
+ "fw": 0,
+ "attribute": "gs",
+ "initial": 8,
+ "pp": 0
+ },
+ "etikette": {
+ "fw": 0,
+ "attribute": "in",
+ "initial": 8,
+ "pp": 0
+ },
+ "fallenEntdecken": {
+ "fw": 0,
+ "attribute": "in",
+ "initial": 8,
+ "pp": 0
+ },
+ "fallenmechanik": {
+ "fw": 0,
+ "attribute": "gs",
+ "initial": 8,
+ "pp": 0
+ },
+ "faelschen": {
+ "fw": 0,
+ "attribute": "gs",
+ "initial": 8,
+ "pp": 0
+ },
+ "fechten": {
+ "fw": 0,
+ "attribute": "gs",
+ "initial": 8,
+ "pp": 0
+ },
+ "gassenwissen": {
+ "fw": 0,
+ "attribute": "in",
+ "initial": 8,
+ "pp": 0
+ },
+ "gaukeln": {
+ "fw": 0,
+ "attribute": "gs",
+ "initial": 8,
+ "pp": 0
+ },
+ "gelaendelauf": {
+ "fw": 6,
+ "attribute": "gw",
+ "initial": 8,
+ "pp": 0
+ },
+ "geraetekunde": {
+ "fw": 0,
+ "attribute": "in",
+ "initial": 8,
+ "pp": 0
+ },
+ "geschaeftssinn": {
+ "fw": 0,
+ "attribute": "in",
+ "initial": 8,
+ "pp": 0
+ },
+ "gluecksspiel": {
+ "fw": 0,
+ "attribute": "gs",
+ "initial": 8,
+ "pp": 0
+ },
+ "heilkunde": {
+ "fw": 0,
+ "attribute": "in",
+ "initial": 8,
+ "pp": 0
+ },
+ "kampfInVollruestung": {
+ "fw": 0,
+ "attribute": "st",
+ "initial": 8,
+ "pp": 0
+ },
+ "klettern": {
+ "fw": 6,
+ "attribute": "st",
+ "initial": 8,
+ "pp": 0
+ },
+ "landeskunde": {
+ "fw": 6,
+ "attribute": "in",
+ "initial": 8,
+ "pp": 0
+ },
+ "laufen": {
+ "fw": 0,
+ "attribute": "ko",
+ "initial": 8,
+ "pp": 0
+ },
+ "lesenVonZauberschrift": {
+ "fw": 0,
+ "attribute": "in",
+ "initial": 8,
+ "pp": 0
+ },
+ "meditieren": {
+ "fw": 0,
+ "attribute": "wk",
+ "initial": 8,
+ "pp": 0
+ },
+ "menschenkenntnis": {
+ "fw": 3,
+ "attribute": "in",
+ "initial": 8,
+ "pp": 0
+ },
+ "meucheln": {
+ "fw": 0,
+ "attribute": "gs",
+ "initial": 8,
+ "pp": 0
+ },
+ "musizieren": {
+ "fw": 0,
+ "attribute": "gs",
+ "initial": 8,
+ "pp": 0
+ },
+ "naturkunde": {
+ "fw": 0,
+ "attribute": "in",
+ "initial": 8,
+ "pp": 0
+ },
+ "pflanzenkunde": {
+ "fw": 0,
+ "attribute": "in",
+ "initial": 8,
+ "pp": 0
+ },
+ "reiten": {
+ "fw": 6,
+ "attribute": "gw",
+ "initial": 8,
+ "pp": 0
+ },
+ "reiterkampf": {
+ "fw": 0,
+ "attribute": "gw",
+ "initial": 8,
+ "pp": 0
+ },
+ "scharfschiessen": {
+ "fw": 0,
+ "attribute": "gs",
+ "initial": 8,
+ "pp": 0
+ },
+ "schleichen": {
+ "fw": 3,
+ "attribute": "gw",
+ "initial": 8,
+ "pp": 0
+ },
+ "schloesserOeffnen": {
+ "fw": 0,
+ "attribute": "gs",
+ "initial": 8,
+ "pp": 0
+ },
+ "schwimmen": {
+ "fw": 3,
+ "attribute": "gw",
+ "initial": 8,
+ "pp": 0
+ },
+ "seilkunst": {
+ "fw": 3,
+ "attribute": "gs",
+ "initial": 8,
+ "pp": 0
+ },
+ "spurensuche": {
+ "fw": 0,
+ "attribute": "in",
+ "initial": 8,
+ "pp": 0
+ },
+ "stehlen": {
+ "fw": 3,
+ "attribute": "gs",
+ "initial": 8,
+ "pp": 0
+ },
+ "tarnen": {
+ "fw": 3,
+ "attribute": "gw",
+ "initial": 8,
+ "pp": 0
+ },
+ "tauchen": {
+ "fw": 6,
+ "attribute": "ko",
+ "initial": 8,
+ "pp": 0
+ },
+ "tierkunde": {
+ "fw": 0,
+ "attribute": "in",
+ "initial": 8,
+ "pp": 0
+ },
+ "ueberleben": {
+ "fw": 6,
+ "attribute": "in",
+ "initial": 8,
+ "pp": 0
+ },
+ "verfuehren": {
+ "fw": 3,
+ "attribute": "pa",
+ "initial": 8,
+ "pp": 0
+ },
+ "verhoeren": {
+ "fw": 3,
+ "attribute": "pa",
+ "initial": 8,
+ "pp": 0
+ },
+ "verstellen": {
+ "fw": 3,
+ "attribute": "pa",
+ "initial": 8,
+ "pp": 0
+ },
+ "wagenlenken": {
+ "fw": 3,
+ "attribute": "gs",
+ "initial": 8,
+ "pp": 0
+ },
+ "zauberkunde": {
+ "fw": 0,
+ "attribute": "in",
+ "initial": 8,
+ "pp": 0
}
+ }
},
- "_stats": {
- "systemId": "midgard5",
- "systemVersion": "1.1.0",
- "coreVersion": "10.291",
- "createdTime": 1681861642287,
- "modifiedTime": 1681862257893,
- "lastModifiedBy": "Fphp3NQlJ6KWctyq"
+ "calc": {}
+ },
+ "prototypeToken": {
+ "name": "Spielfigur",
+ "displayName": 0,
+ "actorLink": false,
+ "texture": {
+ "src": "icons/svg/mystery-man.svg",
+ "scaleX": 1,
+ "scaleY": 1,
+ "offsetX": 0,
+ "offsetY": 0,
+ "rotation": 0,
+ "tint": null
},
- "folder": null,
- "sort": 0,
- "ownership": {
- "default": 0,
- "Fphp3NQlJ6KWctyq": 3
+ "width": 1,
+ "height": 1,
+ "lockRotation": false,
+ "rotation": 0,
+ "alpha": 1,
+ "disposition": -1,
+ "displayBars": 0,
+ "bar1": {
+ "attribute": "lp"
},
- "_id": "k21WA0JziDJ7yJ1U"
-}
\ No newline at end of file
+ "bar2": {
+ "attribute": "ap"
+ },
+ "light": {
+ "alpha": 0.5,
+ "angle": 360,
+ "bright": 0,
+ "color": null,
+ "coloration": 1,
+ "dim": 0,
+ "attenuation": 0.5,
+ "luminosity": 0.5,
+ "saturation": 0,
+ "contrast": 0,
+ "shadows": 0,
+ "animation": {
+ "type": null,
+ "speed": 5,
+ "intensity": 5,
+ "reverse": false
+ },
+ "darkness": {
+ "min": 0,
+ "max": 1
+ }
+ },
+ "sight": {
+ "enabled": false,
+ "range": null,
+ "angle": 360,
+ "visionMode": "basic",
+ "color": null,
+ "attenuation": 0.1,
+ "brightness": 0,
+ "saturation": 0,
+ "contrast": 0
+ },
+ "detectionModes": [],
+ "flags": {},
+ "randomImg": false
+ },
+ "items": [],
+ "effects": [],
+ "flags": {
+ "core": {
+ "sourceId": "Actor.25UihsoT43jms4Rx"
+ }
+ },
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.1.0",
+ "coreVersion": "10.291",
+ "createdTime": 1681861642287,
+ "modifiedTime": 1681862257893,
+ "lastModifiedBy": "Fphp3NQlJ6KWctyq"
+ },
+ "folder": null,
+ "sort": 0,
+ "ownership": {
+ "default": 0,
+ "Fphp3NQlJ6KWctyq": 3
+ },
+ "_id": "k21WA0JziDJ7yJ1U"
+}
diff --git a/packs/items/ausruestung/Angelhaken.json b/packs/items/ausruestung/Angelhaken.json
index 404820e..7571004 100644
--- a/packs/items/ausruestung/Angelhaken.json
+++ b/packs/items/ausruestung/Angelhaken.json
@@ -1 +1,31 @@
-{"name": "Angelhaken", "type": "item", "img": "icons/tools/fishing/hook-barbed-steel-blue.webp", "system": {"description": "KOD S. 201", "equippable": false, "equipped": true, "value": 2, "currency": "silver", "weight": 0.05, "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}}
\ No newline at end of file
+{
+ "name": "Angelhaken",
+ "type": "item",
+ "img": "icons/tools/fishing/hook-barbed-steel-blue.webp",
+ "system": {
+ "description": "KOD S. 201",
+ "equippable": false,
+ "equipped": true,
+ "value": 2,
+ "currency": "silver",
+ "weight": 0.05,
+ "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 }
+}
diff --git a/packs/items/ausruestung/Angelschnur.json b/packs/items/ausruestung/Angelschnur.json
index e829647..425a708 100644
--- a/packs/items/ausruestung/Angelschnur.json
+++ b/packs/items/ausruestung/Angelschnur.json
@@ -1 +1,31 @@
-{"name": "Angelschnur", "type": "item", "img": "icons/tools/fishing/reel-brown-white.webp", "system": {"description": "KOD S. 201", "equippable": false, "equipped": true, "value": 1, "currency": "gold", "weight": 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}}
\ No newline at end of file
+{
+ "name": "Angelschnur",
+ "type": "item",
+ "img": "icons/tools/fishing/reel-brown-white.webp",
+ "system": {
+ "description": "KOD S. 201",
+ "equippable": false,
+ "equipped": true,
+ "value": 1,
+ "currency": "gold",
+ "weight": 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 }
+}
diff --git a/packs/items/ausruestung/Armbrustbolzen.json b/packs/items/ausruestung/Armbrustbolzen.json
index edad3f6..343547f 100644
--- a/packs/items/ausruestung/Armbrustbolzen.json
+++ b/packs/items/ausruestung/Armbrustbolzen.json
@@ -1 +1,31 @@
-{"name": "Armbrustbolzen", "type": "item", "img": "icons/weapons/ammunition/arrows-broadhead-white.webp", "system": {"description": "KOD S. 201", "equippable": false, "equipped": true, "value": 3, "currency": "silver", "weight": 0.15, "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}}
\ No newline at end of file
+{
+ "name": "Armbrustbolzen",
+ "type": "item",
+ "img": "icons/weapons/ammunition/arrows-broadhead-white.webp",
+ "system": {
+ "description": "KOD S. 201",
+ "equippable": false,
+ "equipped": true,
+ "value": 3,
+ "currency": "silver",
+ "weight": 0.15,
+ "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 }
+}
diff --git a/packs/items/ausruestung/Berserkerpilz.json b/packs/items/ausruestung/Berserkerpilz.json
index a7a5219..69bd4c9 100644
--- a/packs/items/ausruestung/Berserkerpilz.json
+++ b/packs/items/ausruestung/Berserkerpilz.json
@@ -1 +1,31 @@
-{"name": "Berserkerpilz", "type": "item", "img": "icons/consumables/mushrooms/umbontae-green.webp", "system": {"description": "ARK S. 174
@UUID[Compendium.midgard5.kampfzustaende.Item.]{Berserkergang}
", "equippable": false, "equipped": true, "value": 1000, "currency": "gold", "weight": 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}}
\ No newline at end of file
+{
+ "name": "Berserkerpilz",
+ "type": "item",
+ "img": "icons/consumables/mushrooms/umbontae-green.webp",
+ "system": {
+ "description": "ARK S. 174
@UUID[Compendium.midgard5.kampfzustaende.Item.]{Berserkergang}
",
+ "equippable": false,
+ "equipped": true,
+ "value": 1000,
+ "currency": "gold",
+ "weight": 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 }
+}
diff --git a/packs/items/ausruestung/Blasrohrnadel.json b/packs/items/ausruestung/Blasrohrnadel.json
index 3b36fa7..8beddd9 100644
--- a/packs/items/ausruestung/Blasrohrnadel.json
+++ b/packs/items/ausruestung/Blasrohrnadel.json
@@ -1 +1,31 @@
-{"name": "Blasrohrnadel", "type": "item", "img": "icons/weapons/ammunition/arrows-fletching.webp", "system": {"description": "KOD S. 201", "equippable": false, "equipped": true, "value": 1, "currency": "silver", "weight": 0.02, "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}}
\ No newline at end of file
+{
+ "name": "Blasrohrnadel",
+ "type": "item",
+ "img": "icons/weapons/ammunition/arrows-fletching.webp",
+ "system": {
+ "description": "KOD S. 201",
+ "equippable": false,
+ "equipped": true,
+ "value": 1,
+ "currency": "silver",
+ "weight": 0.02,
+ "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 }
+}
diff --git a/packs/items/ausruestung/Bleikugel.json b/packs/items/ausruestung/Bleikugel.json
index 102182e..2876e6c 100644
--- a/packs/items/ausruestung/Bleikugel.json
+++ b/packs/items/ausruestung/Bleikugel.json
@@ -1 +1,31 @@
-{"name": "Bleikugel", "type": "item", "img": "icons/weapons/ammunition/shot-round-lead.webp", "system": {"description": "KOD S. 201", "equippable": false, "equipped": true, "value": 1, "currency": "silver", "weight": 0.02, "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}}
\ No newline at end of file
+{
+ "name": "Bleikugel",
+ "type": "item",
+ "img": "icons/weapons/ammunition/shot-round-lead.webp",
+ "system": {
+ "description": "KOD S. 201",
+ "equippable": false,
+ "equipped": true,
+ "value": 1,
+ "currency": "silver",
+ "weight": 0.02,
+ "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 }
+}
diff --git a/packs/items/ausruestung/Bolzenköcher.json b/packs/items/ausruestung/Bolzenköcher.json
index cf0355c..1eddb53 100644
--- a/packs/items/ausruestung/Bolzenköcher.json
+++ b/packs/items/ausruestung/Bolzenköcher.json
@@ -1 +1,31 @@
-{"name": "Bolzenk\u00f6cher", "type": "item", "img": "icons/containers/ammunition/arrows-quiver-grey-gold.webp", "system": {"description": "KOD S. 199", "equippable": false, "equipped": true, "value": 2, "currency": "gold", "weight": 0.3, "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}}
\ No newline at end of file
+{
+ "name": "Bolzenk\u00f6cher",
+ "type": "item",
+ "img": "icons/containers/ammunition/arrows-quiver-grey-gold.webp",
+ "system": {
+ "description": "KOD S. 199",
+ "equippable": false,
+ "equipped": true,
+ "value": 2,
+ "currency": "gold",
+ "weight": 0.3,
+ "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 }
+}
diff --git a/packs/items/ausruestung/Brecheisen.json b/packs/items/ausruestung/Brecheisen.json
index 5cabb66..8f6517a 100644
--- a/packs/items/ausruestung/Brecheisen.json
+++ b/packs/items/ausruestung/Brecheisen.json
@@ -1 +1,31 @@
-{"name": "Brecheisen", "type": "item", "img": "icons/tools/fasteners/bracket.webp", "system": {"description": "KOD S. 201", "equippable": false, "equipped": true, "value": 2, "currency": "gold", "weight": 4, "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}}
\ No newline at end of file
+{
+ "name": "Brecheisen",
+ "type": "item",
+ "img": "icons/tools/fasteners/bracket.webp",
+ "system": {
+ "description": "KOD S. 201",
+ "equippable": false,
+ "equipped": true,
+ "value": 2,
+ "currency": "gold",
+ "weight": 4,
+ "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 }
+}
diff --git a/packs/items/ausruestung/Bronzeglöckchen,klein.json b/packs/items/ausruestung/Bronzeglöckchen,klein.json
index 6de29aa..0fdb51b 100644
--- a/packs/items/ausruestung/Bronzeglöckchen,klein.json
+++ b/packs/items/ausruestung/Bronzeglöckchen,klein.json
@@ -1 +1,31 @@
-{"name": "Bronzegl\u00f6ckchen, klein", "type": "item", "img": "icons/tools/instruments/bell-brass-brown.webp", "system": {"description": "KOD S. 201", "equippable": false, "equipped": true, "value": 2, "currency": "gold", "weight": 0.05, "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}}
\ No newline at end of file
+{
+ "name": "Bronzegl\u00f6ckchen, klein",
+ "type": "item",
+ "img": "icons/tools/instruments/bell-brass-brown.webp",
+ "system": {
+ "description": "KOD S. 201",
+ "equippable": false,
+ "equipped": true,
+ "value": 2,
+ "currency": "gold",
+ "weight": 0.05,
+ "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 }
+}
diff --git a/packs/items/ausruestung/Bronzehorn.json b/packs/items/ausruestung/Bronzehorn.json
index f7cd33d..f3bee72 100644
--- a/packs/items/ausruestung/Bronzehorn.json
+++ b/packs/items/ausruestung/Bronzehorn.json
@@ -1 +1,31 @@
-{"name": "Bronzehorn", "type": "item", "img": "icons/containers/misc/horn-drinking-wood-teal.webp", "system": {"description": "KOD S. 202", "equippable": false, "equipped": true, "value": 20, "currency": "gold", "weight": 3, "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}}
\ No newline at end of file
+{
+ "name": "Bronzehorn",
+ "type": "item",
+ "img": "icons/containers/misc/horn-drinking-wood-teal.webp",
+ "system": {
+ "description": "KOD S. 202",
+ "equippable": false,
+ "equipped": true,
+ "value": 20,
+ "currency": "gold",
+ "weight": 3,
+ "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 }
+}
diff --git a/packs/items/ausruestung/Decke,warm.json b/packs/items/ausruestung/Decke,warm.json
index c32fc7c..8aa9c6d 100644
--- a/packs/items/ausruestung/Decke,warm.json
+++ b/packs/items/ausruestung/Decke,warm.json
@@ -1 +1,31 @@
-{"name": "Decke, warm", "type": "item", "img": "icons/sundries/survival/bedroll-blue-red.webp", "system": {"description": "KOD S. 201", "equippable": false, "equipped": true, "value": 4, "currency": "gold", "weight": 2, "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}}
\ No newline at end of file
+{
+ "name": "Decke, warm",
+ "type": "item",
+ "img": "icons/sundries/survival/bedroll-blue-red.webp",
+ "system": {
+ "description": "KOD S. 201",
+ "equippable": false,
+ "equipped": true,
+ "value": 4,
+ "currency": "gold",
+ "weight": 2,
+ "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 }
+}
diff --git a/packs/items/ausruestung/Dolchscheide,einfach.json b/packs/items/ausruestung/Dolchscheide,einfach.json
index c9c85ef..0e9709b 100644
--- a/packs/items/ausruestung/Dolchscheide,einfach.json
+++ b/packs/items/ausruestung/Dolchscheide,einfach.json
@@ -1 +1,31 @@
-{"name": "Dolchscheide, einfach", "type": "item", "img": "icons/equipment/waist/belt-buckle-square-red.webp", "system": {"description": "KOD S. 199", "equippable": false, "equipped": true, "value": 2, "currency": "gold", "weight": 0.1, "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}}
\ No newline at end of file
+{
+ "name": "Dolchscheide, einfach",
+ "type": "item",
+ "img": "icons/equipment/waist/belt-buckle-square-red.webp",
+ "system": {
+ "description": "KOD S. 199",
+ "equippable": false,
+ "equipped": true,
+ "value": 2,
+ "currency": "gold",
+ "weight": 0.1,
+ "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 }
+}
diff --git a/packs/items/ausruestung/Dolchscheide,verziert.json b/packs/items/ausruestung/Dolchscheide,verziert.json
index 0be53aa..a6d5db4 100644
--- a/packs/items/ausruestung/Dolchscheide,verziert.json
+++ b/packs/items/ausruestung/Dolchscheide,verziert.json
@@ -1 +1,31 @@
-{"name": "Dolchscheide, verziert", "type": "item", "img": "icons/equipment/waist/belt-leather-black-brass.webp", "system": {"description": "KOD S. 199", "equippable": false, "equipped": true, "value": 6, "currency": "gold", "weight": 0.2, "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}}
\ No newline at end of file
+{
+ "name": "Dolchscheide, verziert",
+ "type": "item",
+ "img": "icons/equipment/waist/belt-leather-black-brass.webp",
+ "system": {
+ "description": "KOD S. 199",
+ "equippable": false,
+ "equipped": true,
+ "value": 6,
+ "currency": "gold",
+ "weight": 0.2,
+ "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 }
+}
diff --git a/packs/items/ausruestung/Einbrecherwerkzeug.json b/packs/items/ausruestung/Einbrecherwerkzeug.json
index 064e88e..db2178d 100644
--- a/packs/items/ausruestung/Einbrecherwerkzeug.json
+++ b/packs/items/ausruestung/Einbrecherwerkzeug.json
@@ -1 +1,31 @@
-{"name": "Einbrecherwerkzeug", "type": "item", "img": "icons/sundries/misc/key-ring-long-silver.webp", "system": {"description": "KOD S. 201", "equippable": false, "equipped": true, "value": 25, "currency": "gold", "weight": 1.5, "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}}
\ No newline at end of file
+{
+ "name": "Einbrecherwerkzeug",
+ "type": "item",
+ "img": "icons/sundries/misc/key-ring-long-silver.webp",
+ "system": {
+ "description": "KOD S. 201",
+ "equippable": false,
+ "equipped": true,
+ "value": 25,
+ "currency": "gold",
+ "weight": 1.5,
+ "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 }
+}
diff --git a/packs/items/ausruestung/Eisenkeil.json b/packs/items/ausruestung/Eisenkeil.json
index f12aa88..ae186f1 100644
--- a/packs/items/ausruestung/Eisenkeil.json
+++ b/packs/items/ausruestung/Eisenkeil.json
@@ -1 +1,31 @@
-{"name": "Eisenkeil", "type": "item", "img": "icons/commodities/metal/hinge-brass.webp", "system": {"description": "KOD S. 201", "equippable": false, "equipped": true, "value": 5, "currency": "silver", "weight": 0.25, "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}}
\ No newline at end of file
+{
+ "name": "Eisenkeil",
+ "type": "item",
+ "img": "icons/commodities/metal/hinge-brass.webp",
+ "system": {
+ "description": "KOD S. 201",
+ "equippable": false,
+ "equipped": true,
+ "value": 5,
+ "currency": "silver",
+ "weight": 0.25,
+ "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 }
+}
diff --git a/packs/items/ausruestung/Erste-Hilfe-Ausrüstung.json b/packs/items/ausruestung/Erste-Hilfe-Ausrüstung.json
index 5f6a84d..dafbaa8 100644
--- a/packs/items/ausruestung/Erste-Hilfe-Ausrüstung.json
+++ b/packs/items/ausruestung/Erste-Hilfe-Ausrüstung.json
@@ -1 +1,31 @@
-{"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": 30, "currency": "gold", "weight": 1, "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}}
\ No newline at end of file
+{
+ "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": 30,
+ "currency": "gold",
+ "weight": 1,
+ "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 }
+}
diff --git a/packs/items/ausruestung/Erste-Hilfe-Heilmittel.json b/packs/items/ausruestung/Erste-Hilfe-Heilmittel.json
index 76a46dc..7b173b3 100644
--- a/packs/items/ausruestung/Erste-Hilfe-Heilmittel.json
+++ b/packs/items/ausruestung/Erste-Hilfe-Heilmittel.json
@@ -1 +1,31 @@
-{"name": "Erste-Hilfe-Heilmittel", "type": "item", "img": "icons/tools/laboratory/bowl-herbs-green.webp", "system": {"description": "KOD S. 201", "equippable": false, "equipped": true, "value": 20, "currency": "gold", "weight": 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}}
\ No newline at end of file
+{
+ "name": "Erste-Hilfe-Heilmittel",
+ "type": "item",
+ "img": "icons/tools/laboratory/bowl-herbs-green.webp",
+ "system": {
+ "description": "KOD S. 201",
+ "equippable": false,
+ "equipped": true,
+ "value": 20,
+ "currency": "gold",
+ "weight": 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 }
+}
diff --git a/packs/items/ausruestung/Fackeln.json b/packs/items/ausruestung/Fackeln.json
index c943bfd..c84bbcc 100644
--- a/packs/items/ausruestung/Fackeln.json
+++ b/packs/items/ausruestung/Fackeln.json
@@ -1 +1,31 @@
-{"name": "Fackeln", "type": "item", "img": "icons/sundries/lights/torch-brown-lit.webp", "system": {"description": "KOD S. 201", "equippable": false, "equipped": true, "value": 3, "currency": "silver", "weight": 0.5, "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}}
\ No newline at end of file
+{
+ "name": "Fackeln",
+ "type": "item",
+ "img": "icons/sundries/lights/torch-brown-lit.webp",
+ "system": {
+ "description": "KOD S. 201",
+ "equippable": false,
+ "equipped": true,
+ "value": 3,
+ "currency": "silver",
+ "weight": 0.5,
+ "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 }
+}
diff --git a/packs/items/ausruestung/Fernrohr(2x).json b/packs/items/ausruestung/Fernrohr(2x).json
index 4e38819..ae057f9 100644
--- a/packs/items/ausruestung/Fernrohr(2x).json
+++ b/packs/items/ausruestung/Fernrohr(2x).json
@@ -1 +1,31 @@
-{"name": "Fernrohr (2x)", "type": "item", "img": "icons/tools/navigation/spyglass-telescope-brass.webp", "system": {"description": "KOD S. 201", "equippable": false, "equipped": true, "value": 800, "currency": "gold", "weight": 0.5, "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}}
\ No newline at end of file
+{
+ "name": "Fernrohr (2x)",
+ "type": "item",
+ "img": "icons/tools/navigation/spyglass-telescope-brass.webp",
+ "system": {
+ "description": "KOD S. 201",
+ "equippable": false,
+ "equipped": true,
+ "value": 800,
+ "currency": "gold",
+ "weight": 0.5,
+ "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 }
+}
diff --git a/packs/items/ausruestung/Feuerstein&Zunder.json b/packs/items/ausruestung/Feuerstein&Zunder.json
index b253f2c..e1ccac4 100644
--- a/packs/items/ausruestung/Feuerstein&Zunder.json
+++ b/packs/items/ausruestung/Feuerstein&Zunder.json
@@ -1 +1,31 @@
-{"name": "Feuerstein & Zunder", "type": "item", "img": "icons/tools/smithing/furnace-fire-metal-orange.webp", "system": {"description": "KOD S. 201", "equippable": false, "equipped": true, "value": 1, "currency": "gold", "weight": 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}}
\ No newline at end of file
+{
+ "name": "Feuerstein & Zunder",
+ "type": "item",
+ "img": "icons/tools/smithing/furnace-fire-metal-orange.webp",
+ "system": {
+ "description": "KOD S. 201",
+ "equippable": false,
+ "equipped": true,
+ "value": 1,
+ "currency": "gold",
+ "weight": 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 }
+}
diff --git a/packs/items/ausruestung/FeuertopfausTon.json b/packs/items/ausruestung/FeuertopfausTon.json
index d569521..22bbbb5 100644
--- a/packs/items/ausruestung/FeuertopfausTon.json
+++ b/packs/items/ausruestung/FeuertopfausTon.json
@@ -1 +1,31 @@
-{"name": "Feuertopf aus Ton", "type": "item", "img": "icons/containers/kitchenware/bowl-clay-brown.webp", "system": {"description": "KOD S. 201", "equippable": false, "equipped": true, "value": 5, "currency": "silver", "weight": 0.5, "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}}
\ No newline at end of file
+{
+ "name": "Feuertopf aus Ton",
+ "type": "item",
+ "img": "icons/containers/kitchenware/bowl-clay-brown.webp",
+ "system": {
+ "description": "KOD S. 201",
+ "equippable": false,
+ "equipped": true,
+ "value": 5,
+ "currency": "silver",
+ "weight": 0.5,
+ "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 }
+}
diff --git a/packs/items/ausruestung/Fischernetz.json b/packs/items/ausruestung/Fischernetz.json
index 4d606c2..d3cd040 100644
--- a/packs/items/ausruestung/Fischernetz.json
+++ b/packs/items/ausruestung/Fischernetz.json
@@ -1 +1,31 @@
-{"name": "Fischernetz", "type": "item", "img": "icons/tools/fishing/net-tan.webp", "system": {"description": "KOD S. 201", "equippable": false, "equipped": true, "value": 1, "currency": "gold", "weight": 1, "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}}
\ No newline at end of file
+{
+ "name": "Fischernetz",
+ "type": "item",
+ "img": "icons/tools/fishing/net-tan.webp",
+ "system": {
+ "description": "KOD S. 201",
+ "equippable": false,
+ "equipped": true,
+ "value": 1,
+ "currency": "gold",
+ "weight": 1,
+ "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 }
+}
diff --git a/packs/items/ausruestung/Flohpulver.json b/packs/items/ausruestung/Flohpulver.json
index 5eb5b5e..85fe658 100644
--- a/packs/items/ausruestung/Flohpulver.json
+++ b/packs/items/ausruestung/Flohpulver.json
@@ -1 +1,31 @@
-{"name": "Flohpulver", "type": "item", "img": "icons/consumables/grains/sack-grain-open-white.webp", "system": {"description": "ARK S. 175
@UUID[Compendium.midgard5.zauberwirkungen.Item.TRgAdyTpNX6xFM7f]{Flohpulver}
", "equippable": false, "equipped": true, "value": 150, "currency": "gold", "weight": 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}}
\ No newline at end of file
+{
+ "name": "Flohpulver",
+ "type": "item",
+ "img": "icons/consumables/grains/sack-grain-open-white.webp",
+ "system": {
+ "description": "ARK S. 175
@UUID[Compendium.midgard5.zauberwirkungen.Item.TRgAdyTpNX6xFM7f]{Flohpulver}
",
+ "equippable": false,
+ "equipped": true,
+ "value": 150,
+ "currency": "gold",
+ "weight": 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 }
+}
diff --git a/packs/items/ausruestung/Flöte.json b/packs/items/ausruestung/Flöte.json
index 69d0e82..754516d 100644
--- a/packs/items/ausruestung/Flöte.json
+++ b/packs/items/ausruestung/Flöte.json
@@ -1 +1,31 @@
-{"name": "Fl\u00f6te", "type": "item", "img": "icons/tools/instruments/flute-simple-wood.webp", "system": {"description": "KOD S. 202", "equippable": false, "equipped": true, "value": 5, "currency": "gold", "weight": 0.3, "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}}
\ No newline at end of file
+{
+ "name": "Fl\u00f6te",
+ "type": "item",
+ "img": "icons/tools/instruments/flute-simple-wood.webp",
+ "system": {
+ "description": "KOD S. 202",
+ "equippable": false,
+ "equipped": true,
+ "value": 5,
+ "currency": "gold",
+ "weight": 0.3,
+ "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 }
+}
diff --git a/packs/items/ausruestung/Garn.json b/packs/items/ausruestung/Garn.json
index 9e2bb59..cceeab2 100644
--- a/packs/items/ausruestung/Garn.json
+++ b/packs/items/ausruestung/Garn.json
@@ -1 +1,31 @@
-{"name": "Garn", "type": "item", "img": "icons/sundries/survival/rope-coiled-brown.webp", "system": {"description": "KOD S. 201", "equippable": false, "equipped": true, "value": 1, "currency": "silver", "weight": 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}}
\ No newline at end of file
+{
+ "name": "Garn",
+ "type": "item",
+ "img": "icons/sundries/survival/rope-coiled-brown.webp",
+ "system": {
+ "description": "KOD S. 201",
+ "equippable": false,
+ "equipped": true,
+ "value": 1,
+ "currency": "silver",
+ "weight": 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 }
+}
diff --git a/packs/items/ausruestung/Greifvogel.json b/packs/items/ausruestung/Greifvogel.json
index 85fc4d4..f07fbad 100644
--- a/packs/items/ausruestung/Greifvogel.json
+++ b/packs/items/ausruestung/Greifvogel.json
@@ -1 +1,31 @@
-{"name": "Greifvogel", "type": "item", "img": "icons/creatures/birds/corvid-call-sound-glowing.webp", "system": {"description": "KOD S. 202", "equippable": false, "equipped": true, "value": 50, "currency": "gold", "weight": 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}}
\ No newline at end of file
+{
+ "name": "Greifvogel",
+ "type": "item",
+ "img": "icons/creatures/birds/corvid-call-sound-glowing.webp",
+ "system": {
+ "description": "KOD S. 202",
+ "equippable": false,
+ "equipped": true,
+ "value": 50,
+ "currency": "gold",
+ "weight": 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 }
+}
diff --git a/packs/items/ausruestung/Greifvogelfutter.json b/packs/items/ausruestung/Greifvogelfutter.json
index a3c0247..7cedec7 100644
--- a/packs/items/ausruestung/Greifvogelfutter.json
+++ b/packs/items/ausruestung/Greifvogelfutter.json
@@ -1 +1,31 @@
-{"name": "Greifvogelfutter", "type": "item", "img": "icons/consumables/meat/cut-bowl-wooden-pink-green.webp", "system": {"description": "KOD S. 200", "equippable": false, "equipped": true, "value": 1, "currency": "silver", "weight": 0.2, "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}}
\ No newline at end of file
+{
+ "name": "Greifvogelfutter",
+ "type": "item",
+ "img": "icons/consumables/meat/cut-bowl-wooden-pink-green.webp",
+ "system": {
+ "description": "KOD S. 200",
+ "equippable": false,
+ "equipped": true,
+ "value": 1,
+ "currency": "silver",
+ "weight": 0.2,
+ "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 }
+}
diff --git a/packs/items/ausruestung/Gürtel.json b/packs/items/ausruestung/Gürtel.json
index 949c567..72aac24 100644
--- a/packs/items/ausruestung/Gürtel.json
+++ b/packs/items/ausruestung/Gürtel.json
@@ -1 +1,31 @@
-{"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": 2, "currency": "gold", "weight": 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}}
\ No newline at end of file
+{
+ "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": 2,
+ "currency": "gold",
+ "weight": 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 }
+}
diff --git a/packs/items/ausruestung/Hammer.json b/packs/items/ausruestung/Hammer.json
index fea39a8..58ff6f4 100644
--- a/packs/items/ausruestung/Hammer.json
+++ b/packs/items/ausruestung/Hammer.json
@@ -1 +1,31 @@
-{"name": "Hammer", "type": "item", "img": "icons/tools/smithing/hammer-sledge-steel-grey.webp", "system": {"description": "KOD S. 201", "equippable": false, "equipped": true, "value": 5, "currency": "gold", "weight": 1.5, "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}}
\ No newline at end of file
+{
+ "name": "Hammer",
+ "type": "item",
+ "img": "icons/tools/smithing/hammer-sledge-steel-grey.webp",
+ "system": {
+ "description": "KOD S. 201",
+ "equippable": false,
+ "equipped": true,
+ "value": 5,
+ "currency": "gold",
+ "weight": 1.5,
+ "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 }
+}
diff --git a/packs/items/ausruestung/Hand-undFussfesselmitKette.json b/packs/items/ausruestung/Hand-undFussfesselmitKette.json
index 8bc82b7..c3f132d 100644
--- a/packs/items/ausruestung/Hand-undFussfesselmitKette.json
+++ b/packs/items/ausruestung/Hand-undFussfesselmitKette.json
@@ -1 +1,31 @@
-{"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": 30, "currency": "gold", "weight": 2, "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}}
\ No newline at end of file
+{
+ "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": 30,
+ "currency": "gold",
+ "weight": 2,
+ "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 }
+}
diff --git a/packs/items/ausruestung/HandwaagemitWaagschalen.json b/packs/items/ausruestung/HandwaagemitWaagschalen.json
index 3efa023..a51d598 100644
--- a/packs/items/ausruestung/HandwaagemitWaagschalen.json
+++ b/packs/items/ausruestung/HandwaagemitWaagschalen.json
@@ -1 +1,31 @@
-{"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": 5, "currency": "gold", "weight": 0.5, "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}}
\ No newline at end of file
+{
+ "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": 5,
+ "currency": "gold",
+ "weight": 0.5,
+ "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 }
+}
diff --git a/packs/items/ausruestung/Harfe.json b/packs/items/ausruestung/Harfe.json
index ad16c16..91298e1 100644
--- a/packs/items/ausruestung/Harfe.json
+++ b/packs/items/ausruestung/Harfe.json
@@ -1 +1,31 @@
-{"name": "Harfe", "type": "item", "img": "icons/tools/instruments/harp-gold-glowing.webp", "system": {"description": "KOD S. 202", "equippable": false, "equipped": true, "value": 100, "currency": "gold", "weight": 5, "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}}
\ No newline at end of file
+{
+ "name": "Harfe",
+ "type": "item",
+ "img": "icons/tools/instruments/harp-gold-glowing.webp",
+ "system": {
+ "description": "KOD S. 202",
+ "equippable": false,
+ "equipped": true,
+ "value": 100,
+ "currency": "gold",
+ "weight": 5,
+ "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 }
+}
diff --git a/packs/items/ausruestung/Heiltrunk.json b/packs/items/ausruestung/Heiltrunk.json
index 4ed82e7..990f3ef 100644
--- a/packs/items/ausruestung/Heiltrunk.json
+++ b/packs/items/ausruestung/Heiltrunk.json
@@ -1 +1,31 @@
-{"name": "Heiltrunk", "type": "item", "img": "icons/consumables/potions/bottle-corked-green.webp", "system": {"description": "ARK S. 175 [[1d6]]", "equippable": false, "equipped": true, "value": 200, "currency": "gold", "weight": 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}}
\ No newline at end of file
+{
+ "name": "Heiltrunk",
+ "type": "item",
+ "img": "icons/consumables/potions/bottle-corked-green.webp",
+ "system": {
+ "description": "ARK S. 175 [[1d6]]",
+ "equippable": false,
+ "equipped": true,
+ "value": 200,
+ "currency": "gold",
+ "weight": 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 }
+}
diff --git a/packs/items/ausruestung/Hemd.json b/packs/items/ausruestung/Hemd.json
index 9342495..a208aa6 100644
--- a/packs/items/ausruestung/Hemd.json
+++ b/packs/items/ausruestung/Hemd.json
@@ -1 +1,31 @@
-{"name": "Hemd", "type": "item", "img": "icons/equipment/chest/shirt-collared-brown.webp", "system": {"description": "KOD S. 199", "equippable": false, "equipped": true, "value": 3, "currency": "gold", "weight": 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}}
\ No newline at end of file
+{
+ "name": "Hemd",
+ "type": "item",
+ "img": "icons/equipment/chest/shirt-collared-brown.webp",
+ "system": {
+ "description": "KOD S. 199",
+ "equippable": false,
+ "equipped": true,
+ "value": 3,
+ "currency": "gold",
+ "weight": 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 }
+}
diff --git a/packs/items/ausruestung/Holzbalken.json b/packs/items/ausruestung/Holzbalken.json
index 82b2d86..3398b09 100644
--- a/packs/items/ausruestung/Holzbalken.json
+++ b/packs/items/ausruestung/Holzbalken.json
@@ -1 +1,31 @@
-{"name": "Holzbalken", "type": "item", "img": "icons/commodities/wood/lumber-square-beam.webp", "system": {"description": "KOD S. 201", "equippable": false, "equipped": true, "value": 1, "currency": "gold", "weight": 20, "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}}
\ No newline at end of file
+{
+ "name": "Holzbalken",
+ "type": "item",
+ "img": "icons/commodities/wood/lumber-square-beam.webp",
+ "system": {
+ "description": "KOD S. 201",
+ "equippable": false,
+ "equipped": true,
+ "value": 1,
+ "currency": "gold",
+ "weight": 20,
+ "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 }
+}
diff --git a/packs/items/ausruestung/Holzkohle.json b/packs/items/ausruestung/Holzkohle.json
index c0d01b5..5fc619b 100644
--- a/packs/items/ausruestung/Holzkohle.json
+++ b/packs/items/ausruestung/Holzkohle.json
@@ -1 +1,31 @@
-{"name": "Holzkohle", "type": "item", "img": "icons/commodities/gems/powder-raw-white.webp", "system": {"description": "KOD S. 201", "equippable": false, "equipped": true, "value": 5, "currency": "silver", "weight": 0.1, "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}}
\ No newline at end of file
+{
+ "name": "Holzkohle",
+ "type": "item",
+ "img": "icons/commodities/gems/powder-raw-white.webp",
+ "system": {
+ "description": "KOD S. 201",
+ "equippable": false,
+ "equipped": true,
+ "value": 5,
+ "currency": "silver",
+ "weight": 0.1,
+ "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 }
+}
diff --git a/packs/items/ausruestung/Holzpflock.json b/packs/items/ausruestung/Holzpflock.json
index 717d378..d1b3365 100644
--- a/packs/items/ausruestung/Holzpflock.json
+++ b/packs/items/ausruestung/Holzpflock.json
@@ -1 +1,31 @@
-{"name": "Holzpflock", "type": "item", "img": "icons/sundries/survival/stake-rough-heavy-brown.webp", "system": {"description": "KOD S. 201", "equippable": false, "equipped": true, "value": 2, "currency": "silver", "weight": 0.05, "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}}
\ No newline at end of file
+{
+ "name": "Holzpflock",
+ "type": "item",
+ "img": "icons/sundries/survival/stake-rough-heavy-brown.webp",
+ "system": {
+ "description": "KOD S. 201",
+ "equippable": false,
+ "equipped": true,
+ "value": 2,
+ "currency": "silver",
+ "weight": 0.05,
+ "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 }
+}
diff --git a/packs/items/ausruestung/Hose.json b/packs/items/ausruestung/Hose.json
index 014ceff..1638d70 100644
--- a/packs/items/ausruestung/Hose.json
+++ b/packs/items/ausruestung/Hose.json
@@ -1 +1,31 @@
-{"name": "Hose", "type": "item", "img": "icons/equipment/leg/pants-leather-tasset-red.webp", "system": {"description": "KOD S. 199", "equippable": false, "equipped": true, "value": 5, "currency": "gold", "weight": 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}}
\ No newline at end of file
+{
+ "name": "Hose",
+ "type": "item",
+ "img": "icons/equipment/leg/pants-leather-tasset-red.webp",
+ "system": {
+ "description": "KOD S. 199",
+ "equippable": false,
+ "equipped": true,
+ "value": 5,
+ "currency": "gold",
+ "weight": 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 }
+}
diff --git a/packs/items/ausruestung/Hundefutter.json b/packs/items/ausruestung/Hundefutter.json
index 4116dc7..b54b333 100644
--- a/packs/items/ausruestung/Hundefutter.json
+++ b/packs/items/ausruestung/Hundefutter.json
@@ -1 +1,31 @@
-{"name": "Hundefutter", "type": "item", "img": "icons/consumables/meat/steak-glowing-fatty-white.webp", "system": {"description": "KOD S. 200", "equippable": false, "equipped": true, "value": 2, "currency": "silver", "weight": 0.3, "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}}
\ No newline at end of file
+{
+ "name": "Hundefutter",
+ "type": "item",
+ "img": "icons/consumables/meat/steak-glowing-fatty-white.webp",
+ "system": {
+ "description": "KOD S. 200",
+ "equippable": false,
+ "equipped": true,
+ "value": 2,
+ "currency": "silver",
+ "weight": 0.3,
+ "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 }
+}
diff --git a/packs/items/ausruestung/Jagdhund.json b/packs/items/ausruestung/Jagdhund.json
index a655c30..74ae34a 100644
--- a/packs/items/ausruestung/Jagdhund.json
+++ b/packs/items/ausruestung/Jagdhund.json
@@ -1 +1,31 @@
-{"name": "Jagdhund", "type": "item", "img": "icons/creatures/abilities/wolf-howl-moon-purple.webp", "system": {"description": "KOD S. 202", "equippable": false, "equipped": true, "value": 20, "currency": "gold", "weight": 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}}
\ No newline at end of file
+{
+ "name": "Jagdhund",
+ "type": "item",
+ "img": "icons/creatures/abilities/wolf-howl-moon-purple.webp",
+ "system": {
+ "description": "KOD S. 202",
+ "equippable": false,
+ "equipped": true,
+ "value": 20,
+ "currency": "gold",
+ "weight": 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 }
+}
diff --git a/packs/items/ausruestung/Kampfhund.json b/packs/items/ausruestung/Kampfhund.json
index 95ef8a3..49d3842 100644
--- a/packs/items/ausruestung/Kampfhund.json
+++ b/packs/items/ausruestung/Kampfhund.json
@@ -1 +1,31 @@
-{"name": "Kampfhund", "type": "item", "img": "icons/creatures/abilities/mouth-teeth-long-red.webp", "system": {"description": "KOD S. 202", "equippable": false, "equipped": true, "value": 50, "currency": "gold", "weight": 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}}
\ No newline at end of file
+{
+ "name": "Kampfhund",
+ "type": "item",
+ "img": "icons/creatures/abilities/mouth-teeth-long-red.webp",
+ "system": {
+ "description": "KOD S. 202",
+ "equippable": false,
+ "equipped": true,
+ "value": 50,
+ "currency": "gold",
+ "weight": 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 }
+}
diff --git a/packs/items/ausruestung/Kilt.json b/packs/items/ausruestung/Kilt.json
index 1c7e019..599ec1b 100644
--- a/packs/items/ausruestung/Kilt.json
+++ b/packs/items/ausruestung/Kilt.json
@@ -1 +1,31 @@
-{"name": "Kilt", "type": "item", "img": "icons/equipment/leg/skirt-cloth-red.webp", "system": {"description": "KOD S. 199", "equippable": false, "equipped": true, "value": 3, "currency": "gold", "weight": 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}}
\ No newline at end of file
+{
+ "name": "Kilt",
+ "type": "item",
+ "img": "icons/equipment/leg/skirt-cloth-red.webp",
+ "system": {
+ "description": "KOD S. 199",
+ "equippable": false,
+ "equipped": true,
+ "value": 3,
+ "currency": "gold",
+ "weight": 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 }
+}
diff --git a/packs/items/ausruestung/Kleid.json b/packs/items/ausruestung/Kleid.json
index b469bc4..9e64722 100644
--- a/packs/items/ausruestung/Kleid.json
+++ b/packs/items/ausruestung/Kleid.json
@@ -1 +1,31 @@
-{"name": "Kleid", "type": "item", "img": "icons/equipment/chest/robe-layered-teal.webp", "system": {"description": "KOD S. 199", "equippable": false, "equipped": true, "value": 15, "currency": "gold", "weight": 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}}
\ No newline at end of file
+{
+ "name": "Kleid",
+ "type": "item",
+ "img": "icons/equipment/chest/robe-layered-teal.webp",
+ "system": {
+ "description": "KOD S. 199",
+ "equippable": false,
+ "equipped": true,
+ "value": 15,
+ "currency": "gold",
+ "weight": 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 }
+}
diff --git a/packs/items/ausruestung/Krafttrunk1W6.json b/packs/items/ausruestung/Krafttrunk1W6.json
index b082447..6ae67fd 100644
--- a/packs/items/ausruestung/Krafttrunk1W6.json
+++ b/packs/items/ausruestung/Krafttrunk1W6.json
@@ -1 +1,31 @@
-{"name": "Krafttrunk 1W6", "type": "item", "img": "icons/consumables/potions/bottle-corked-blue.webp", "system": {"description": "ARK S. 175
[[1d6]]
", "equippable": false, "equipped": true, "value": 100, "currency": "gold", "weight": 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}}
\ No newline at end of file
+{
+ "name": "Krafttrunk 1W6",
+ "type": "item",
+ "img": "icons/consumables/potions/bottle-corked-blue.webp",
+ "system": {
+ "description": "ARK S. 175
[[1d6]]
",
+ "equippable": false,
+ "equipped": true,
+ "value": 100,
+ "currency": "gold",
+ "weight": 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 }
+}
diff --git a/packs/items/ausruestung/Krafttrunk2W6.json b/packs/items/ausruestung/Krafttrunk2W6.json
index 80e156d..d6b9859 100644
--- a/packs/items/ausruestung/Krafttrunk2W6.json
+++ b/packs/items/ausruestung/Krafttrunk2W6.json
@@ -1 +1,31 @@
-{"name": "Krafttrunk 2W6", "type": "item", "img": "icons/consumables/potions/bottle-corked-blue.webp", "system": {"description": "ARK S. 175
[[2d6]]
", "equippable": false, "equipped": true, "value": 200, "currency": "gold", "weight": 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}}
\ No newline at end of file
+{
+ "name": "Krafttrunk 2W6",
+ "type": "item",
+ "img": "icons/consumables/potions/bottle-corked-blue.webp",
+ "system": {
+ "description": "ARK S. 175
[[2d6]]
",
+ "equippable": false,
+ "equipped": true,
+ "value": 200,
+ "currency": "gold",
+ "weight": 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 }
+}
diff --git a/packs/items/ausruestung/Krafttrunk3W6.json b/packs/items/ausruestung/Krafttrunk3W6.json
index d470335..37f4d96 100644
--- a/packs/items/ausruestung/Krafttrunk3W6.json
+++ b/packs/items/ausruestung/Krafttrunk3W6.json
@@ -1 +1,31 @@
-{"name": "Krafttrunk 3W6", "type": "item", "img": "icons/consumables/potions/bottle-corked-blue.webp", "system": {"description": "ARK S. 175
[[3d6]]
", "equippable": false, "equipped": true, "value": 300, "currency": "gold", "weight": 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}}
\ No newline at end of file
+{
+ "name": "Krafttrunk 3W6",
+ "type": "item",
+ "img": "icons/consumables/potions/bottle-corked-blue.webp",
+ "system": {
+ "description": "ARK S. 175
[[3d6]]
",
+ "equippable": false,
+ "equipped": true,
+ "value": 300,
+ "currency": "gold",
+ "weight": 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 }
+}
diff --git a/packs/items/ausruestung/Zaumzeug.json b/packs/items/ausruestung/Zaumzeug.json
index 80ecbd4..ab7f02f 100644
--- a/packs/items/ausruestung/Zaumzeug.json
+++ b/packs/items/ausruestung/Zaumzeug.json
@@ -1 +1,29 @@
-{"name": "Zaumzeug", "type": "item", "img": "icons/commodities/leather/leather-buckle-steel-tan.webp", "system": {"description": "KOD S. 202", "equippable": false, "equipped": true, "value": 3, "currency": "gold", "weight": 0, "magic": false, "rolls": {"formulas": {}, "output": ""}, "mods": {}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700344084954, "modifiedTime": 1700344214973, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "kss3Nvln8LtGmM9X", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
\ No newline at end of file
+{
+ "name": "Zaumzeug",
+ "type": "item",
+ "img": "icons/commodities/leather/leather-buckle-steel-tan.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": 1700344084954,
+ "modifiedTime": 1700344214973,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "kss3Nvln8LtGmM9X",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+}
diff --git a/packs/items/ausruestung/gegenstand.json b/packs/items/ausruestung/gegenstand.json
index 9508764..3df1959 100644
--- a/packs/items/ausruestung/gegenstand.json
+++ b/packs/items/ausruestung/gegenstand.json
@@ -1,41 +1,41 @@
{
- "name": "Gegenstand",
- "type": "item",
- "img": "icons/svg/item-bag.svg",
- "system": {
- "description": "",
- "equippable": false,
- "equipped": true,
- "value": 0,
- "currency": "",
- "weight": 0,
- "magic": false,
- "rolls": {
- "formulas": {},
- "output": ""
- },
- "mods": {},
- "calc": {}
+ "name": "Gegenstand",
+ "type": "item",
+ "img": "icons/svg/item-bag.svg",
+ "system": {
+ "description": "",
+ "equippable": false,
+ "equipped": true,
+ "value": 0,
+ "currency": "",
+ "weight": 0,
+ "magic": false,
+ "rolls": {
+ "formulas": {},
+ "output": ""
},
- "effects": [],
- "flags": {
- "core": {
- "sourceId": "Item.8GrWgO1jjysZPnxc"
- }
- },
- "_stats": {
- "systemId": "midgard5",
- "systemVersion": "1.1.0",
- "coreVersion": "10.291",
- "createdTime": 1681862229001,
- "modifiedTime": 1681862253981,
- "lastModifiedBy": "Fphp3NQlJ6KWctyq"
- },
- "folder": null,
- "sort": 0,
- "ownership": {
- "default": 0,
- "Fphp3NQlJ6KWctyq": 3
- },
- "_id": "ERcxMh7hWiv42rfx"
-}
\ No newline at end of file
+ "mods": {},
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {
+ "core": {
+ "sourceId": "Item.8GrWgO1jjysZPnxc"
+ }
+ },
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.1.0",
+ "coreVersion": "10.291",
+ "createdTime": 1681862229001,
+ "modifiedTime": 1681862253981,
+ "lastModifiedBy": "Fphp3NQlJ6KWctyq"
+ },
+ "folder": null,
+ "sort": 0,
+ "ownership": {
+ "default": 0,
+ "Fphp3NQlJ6KWctyq": 3
+ },
+ "_id": "ERcxMh7hWiv42rfx"
+}
diff --git a/packs/items/fertigkeiten/fertigkeit.json b/packs/items/fertigkeiten/fertigkeit.json
index d3308d1..81dd662 100644
--- a/packs/items/fertigkeiten/fertigkeit.json
+++ b/packs/items/fertigkeiten/fertigkeit.json
@@ -1,69 +1,69 @@
{
- "name": "Gewöhnliche Fertigkeit",
- "type": "skill",
- "img": "icons/svg/item-bag.svg",
- "data": {
- "description": "",
- "attributes": {
- "st": {
- "short": "midgard5.actor-st",
- "long": "midgard5.actor-st-long"
- },
- "gs": {
- "short": "midgard5.actor-gs",
- "long": "midgard5.actor-gs-long"
- },
- "gw": {
- "short": "midgard5.actor-gw",
- "long": "midgard5.actor-gw-long"
- },
- "ko": {
- "short": "midgard5.actor-ko",
- "long": "midgard5.actor-ko-long"
- },
- "in": {
- "short": "midgard5.actor-in",
- "long": "midgard5.actor-in-long"
- },
- "zt": {
- "short": "midgard5.actor-zt",
- "long": "midgard5.actor-zt-long"
- },
- "au": {
- "short": "midgard5.actor-au",
- "long": "midgard5.actor-au-long"
- },
- "pa": {
- "short": "midgard5.actor-pa",
- "long": "midgard5.actor-pa-long"
- },
- "wk": {
- "short": "midgard5.actor-wk",
- "long": "midgard5.actor-wk-long"
- }
- },
- "fw": 8,
- "attribute": "st",
- "skill": "",
- "type": "general",
- "rolls": {
- "formulas": {
- "0": {
- "formula": "1d20 + @i.fw + @i.calc.bonus",
- "enabled": true,
- "label": "EW"
- }
- },
- "output": ""
- },
- "calc": {}
- },
- "effects": [],
- "folder": null,
- "sort": 0,
- "permission": {
- "default": 0,
- "XD0IpWT6bN4AJiYQ": 3
- },
- "_id": "4N0IgVDj1eee0hSB"
-}
\ No newline at end of file
+ "name": "Gewöhnliche Fertigkeit",
+ "type": "skill",
+ "img": "icons/svg/item-bag.svg",
+ "data": {
+ "description": "",
+ "attributes": {
+ "st": {
+ "short": "midgard5.actor-st",
+ "long": "midgard5.actor-st-long"
+ },
+ "gs": {
+ "short": "midgard5.actor-gs",
+ "long": "midgard5.actor-gs-long"
+ },
+ "gw": {
+ "short": "midgard5.actor-gw",
+ "long": "midgard5.actor-gw-long"
+ },
+ "ko": {
+ "short": "midgard5.actor-ko",
+ "long": "midgard5.actor-ko-long"
+ },
+ "in": {
+ "short": "midgard5.actor-in",
+ "long": "midgard5.actor-in-long"
+ },
+ "zt": {
+ "short": "midgard5.actor-zt",
+ "long": "midgard5.actor-zt-long"
+ },
+ "au": {
+ "short": "midgard5.actor-au",
+ "long": "midgard5.actor-au-long"
+ },
+ "pa": {
+ "short": "midgard5.actor-pa",
+ "long": "midgard5.actor-pa-long"
+ },
+ "wk": {
+ "short": "midgard5.actor-wk",
+ "long": "midgard5.actor-wk-long"
+ }
+ },
+ "fw": 8,
+ "attribute": "st",
+ "skill": "",
+ "type": "general",
+ "rolls": {
+ "formulas": {
+ "0": {
+ "formula": "1d20 + @i.fw + @i.calc.bonus",
+ "enabled": true,
+ "label": "EW"
+ }
+ },
+ "output": ""
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "folder": null,
+ "sort": 0,
+ "permission": {
+ "default": 0,
+ "XD0IpWT6bN4AJiYQ": 3
+ },
+ "_id": "4N0IgVDj1eee0hSB"
+}
diff --git a/packs/items/fertigkeiten/fähigkeit.json b/packs/items/fertigkeiten/fähigkeit.json
index 1391e59..a3e1d1b 100644
--- a/packs/items/fertigkeiten/fähigkeit.json
+++ b/packs/items/fertigkeiten/fähigkeit.json
@@ -1,69 +1,69 @@
{
- "name": "Angeborene Fähigkeit",
- "type": "skill",
- "img": "icons/svg/item-bag.svg",
- "data": {
- "description": "",
- "attributes": {
- "st": {
- "short": "midgard5.actor-st",
- "long": "midgard5.actor-st-long"
- },
- "gs": {
- "short": "midgard5.actor-gs",
- "long": "midgard5.actor-gs-long"
- },
- "gw": {
- "short": "midgard5.actor-gw",
- "long": "midgard5.actor-gw-long"
- },
- "ko": {
- "short": "midgard5.actor-ko",
- "long": "midgard5.actor-ko-long"
- },
- "in": {
- "short": "midgard5.actor-in",
- "long": "midgard5.actor-in-long"
- },
- "zt": {
- "short": "midgard5.actor-zt",
- "long": "midgard5.actor-zt-long"
- },
- "au": {
- "short": "midgard5.actor-au",
- "long": "midgard5.actor-au-long"
- },
- "pa": {
- "short": "midgard5.actor-pa",
- "long": "midgard5.actor-pa-long"
- },
- "wk": {
- "short": "midgard5.actor-wk",
- "long": "midgard5.actor-wk-long"
- }
- },
- "fw": 6,
- "attribute": "",
- "skill": "",
- "type": "innate",
- "rolls": {
- "formulas": {
- "0": {
- "formula": "1d20 + @i.fw + @i.calc.bonus",
- "type": "ew",
- "label": "EW"
- }
- },
- "output": ""
- },
- "calc": {}
- },
- "effects": [],
- "folder": null,
- "sort": 0,
- "permission": {
- "default": 0,
- "XD0IpWT6bN4AJiYQ": 3
- },
- "_id": "nkMkMFNDSdvlP1Jt"
-}
\ No newline at end of file
+ "name": "Angeborene Fähigkeit",
+ "type": "skill",
+ "img": "icons/svg/item-bag.svg",
+ "data": {
+ "description": "",
+ "attributes": {
+ "st": {
+ "short": "midgard5.actor-st",
+ "long": "midgard5.actor-st-long"
+ },
+ "gs": {
+ "short": "midgard5.actor-gs",
+ "long": "midgard5.actor-gs-long"
+ },
+ "gw": {
+ "short": "midgard5.actor-gw",
+ "long": "midgard5.actor-gw-long"
+ },
+ "ko": {
+ "short": "midgard5.actor-ko",
+ "long": "midgard5.actor-ko-long"
+ },
+ "in": {
+ "short": "midgard5.actor-in",
+ "long": "midgard5.actor-in-long"
+ },
+ "zt": {
+ "short": "midgard5.actor-zt",
+ "long": "midgard5.actor-zt-long"
+ },
+ "au": {
+ "short": "midgard5.actor-au",
+ "long": "midgard5.actor-au-long"
+ },
+ "pa": {
+ "short": "midgard5.actor-pa",
+ "long": "midgard5.actor-pa-long"
+ },
+ "wk": {
+ "short": "midgard5.actor-wk",
+ "long": "midgard5.actor-wk-long"
+ }
+ },
+ "fw": 6,
+ "attribute": "",
+ "skill": "",
+ "type": "innate",
+ "rolls": {
+ "formulas": {
+ "0": {
+ "formula": "1d20 + @i.fw + @i.calc.bonus",
+ "type": "ew",
+ "label": "EW"
+ }
+ },
+ "output": ""
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "folder": null,
+ "sort": 0,
+ "permission": {
+ "default": 0,
+ "XD0IpWT6bN4AJiYQ": 3
+ },
+ "_id": "nkMkMFNDSdvlP1Jt"
+}
diff --git a/packs/items/fertigkeiten/sprache.json b/packs/items/fertigkeiten/sprache.json
index 09fa693..3e12a87 100644
--- a/packs/items/fertigkeiten/sprache.json
+++ b/packs/items/fertigkeiten/sprache.json
@@ -1,69 +1,69 @@
{
- "name": "Sprache",
- "type": "skill",
- "img": "icons/svg/item-bag.svg",
- "data": {
- "description": "",
- "attributes": {
- "st": {
- "short": "midgard5.actor-st",
- "long": "midgard5.actor-st-long"
- },
- "gs": {
- "short": "midgard5.actor-gs",
- "long": "midgard5.actor-gs-long"
- },
- "gw": {
- "short": "midgard5.actor-gw",
- "long": "midgard5.actor-gw-long"
- },
- "ko": {
- "short": "midgard5.actor-ko",
- "long": "midgard5.actor-ko-long"
- },
- "in": {
- "short": "midgard5.actor-in",
- "long": "midgard5.actor-in-long"
- },
- "zt": {
- "short": "midgard5.actor-zt",
- "long": "midgard5.actor-zt-long"
- },
- "au": {
- "short": "midgard5.actor-au",
- "long": "midgard5.actor-au-long"
- },
- "pa": {
- "short": "midgard5.actor-pa",
- "long": "midgard5.actor-pa-long"
- },
- "wk": {
- "short": "midgard5.actor-wk",
- "long": "midgard5.actor-wk-long"
- }
- },
- "fw": 8,
- "attribute": "in",
- "skill": "",
- "type": "language",
- "rolls": {
- "formulas": {
- "0": {
- "formula": "1d20 + @i.calc.fw + @i.calc.bonus",
- "enabled": true,
- "label": "EW"
- }
- },
- "output": ""
- },
- "calc": {}
- },
- "effects": [],
- "folder": null,
- "sort": 0,
- "permission": {
- "default": 0,
- "XD0IpWT6bN4AJiYQ": 3
- },
- "_id": "rDN14z3lNJISWTdO"
-}
\ No newline at end of file
+ "name": "Sprache",
+ "type": "skill",
+ "img": "icons/svg/item-bag.svg",
+ "data": {
+ "description": "",
+ "attributes": {
+ "st": {
+ "short": "midgard5.actor-st",
+ "long": "midgard5.actor-st-long"
+ },
+ "gs": {
+ "short": "midgard5.actor-gs",
+ "long": "midgard5.actor-gs-long"
+ },
+ "gw": {
+ "short": "midgard5.actor-gw",
+ "long": "midgard5.actor-gw-long"
+ },
+ "ko": {
+ "short": "midgard5.actor-ko",
+ "long": "midgard5.actor-ko-long"
+ },
+ "in": {
+ "short": "midgard5.actor-in",
+ "long": "midgard5.actor-in-long"
+ },
+ "zt": {
+ "short": "midgard5.actor-zt",
+ "long": "midgard5.actor-zt-long"
+ },
+ "au": {
+ "short": "midgard5.actor-au",
+ "long": "midgard5.actor-au-long"
+ },
+ "pa": {
+ "short": "midgard5.actor-pa",
+ "long": "midgard5.actor-pa-long"
+ },
+ "wk": {
+ "short": "midgard5.actor-wk",
+ "long": "midgard5.actor-wk-long"
+ }
+ },
+ "fw": 8,
+ "attribute": "in",
+ "skill": "",
+ "type": "language",
+ "rolls": {
+ "formulas": {
+ "0": {
+ "formula": "1d20 + @i.calc.fw + @i.calc.bonus",
+ "enabled": true,
+ "label": "EW"
+ }
+ },
+ "output": ""
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "folder": null,
+ "sort": 0,
+ "permission": {
+ "default": 0,
+ "XD0IpWT6bN4AJiYQ": 3
+ },
+ "_id": "rDN14z3lNJISWTdO"
+}
diff --git a/packs/items/fertigkeiten/waffenfertigkeit.json b/packs/items/fertigkeiten/waffenfertigkeit.json
index 45b4b02..7bc7a23 100644
--- a/packs/items/fertigkeiten/waffenfertigkeit.json
+++ b/packs/items/fertigkeiten/waffenfertigkeit.json
@@ -1,69 +1,69 @@
{
- "name": "Waffenfertigkeit",
- "type": "skill",
- "img": "icons/svg/item-bag.svg",
- "data": {
- "description": "",
- "attributes": {
- "st": {
- "short": "midgard5.actor-st",
- "long": "midgard5.actor-st-long"
- },
- "gs": {
- "short": "midgard5.actor-gs",
- "long": "midgard5.actor-gs-long"
- },
- "gw": {
- "short": "midgard5.actor-gw",
- "long": "midgard5.actor-gw-long"
- },
- "ko": {
- "short": "midgard5.actor-ko",
- "long": "midgard5.actor-ko-long"
- },
- "in": {
- "short": "midgard5.actor-in",
- "long": "midgard5.actor-in-long"
- },
- "zt": {
- "short": "midgard5.actor-zt",
- "long": "midgard5.actor-zt-long"
- },
- "au": {
- "short": "midgard5.actor-au",
- "long": "midgard5.actor-au-long"
- },
- "pa": {
- "short": "midgard5.actor-pa",
- "long": "midgard5.actor-pa-long"
- },
- "wk": {
- "short": "midgard5.actor-wk",
- "long": "midgard5.actor-wk-long"
- }
- },
- "fw": 5,
- "attribute": "",
- "skill": "",
- "type": "combat",
- "rolls": {
- "formulas": {
- "0": {
- "formula": "1d20 + @i.calc.fw + @i.calc.bonus",
- "enabled": true,
- "label": "EW"
- }
- },
- "output": ""
- },
- "calc": {}
- },
- "effects": [],
- "folder": null,
- "sort": 0,
- "permission": {
- "default": 0,
- "XD0IpWT6bN4AJiYQ": 3
- },
- "_id": "1E4XHTGZlned2ofY"
-}
\ No newline at end of file
+ "name": "Waffenfertigkeit",
+ "type": "skill",
+ "img": "icons/svg/item-bag.svg",
+ "data": {
+ "description": "",
+ "attributes": {
+ "st": {
+ "short": "midgard5.actor-st",
+ "long": "midgard5.actor-st-long"
+ },
+ "gs": {
+ "short": "midgard5.actor-gs",
+ "long": "midgard5.actor-gs-long"
+ },
+ "gw": {
+ "short": "midgard5.actor-gw",
+ "long": "midgard5.actor-gw-long"
+ },
+ "ko": {
+ "short": "midgard5.actor-ko",
+ "long": "midgard5.actor-ko-long"
+ },
+ "in": {
+ "short": "midgard5.actor-in",
+ "long": "midgard5.actor-in-long"
+ },
+ "zt": {
+ "short": "midgard5.actor-zt",
+ "long": "midgard5.actor-zt-long"
+ },
+ "au": {
+ "short": "midgard5.actor-au",
+ "long": "midgard5.actor-au-long"
+ },
+ "pa": {
+ "short": "midgard5.actor-pa",
+ "long": "midgard5.actor-pa-long"
+ },
+ "wk": {
+ "short": "midgard5.actor-wk",
+ "long": "midgard5.actor-wk-long"
+ }
+ },
+ "fw": 5,
+ "attribute": "",
+ "skill": "",
+ "type": "combat",
+ "rolls": {
+ "formulas": {
+ "0": {
+ "formula": "1d20 + @i.calc.fw + @i.calc.bonus",
+ "enabled": true,
+ "label": "EW"
+ }
+ },
+ "output": ""
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "folder": null,
+ "sort": 0,
+ "permission": {
+ "default": 0,
+ "XD0IpWT6bN4AJiYQ": 3
+ },
+ "_id": "1E4XHTGZlned2ofY"
+}
diff --git a/packs/items/fertigkeiten/zauber.json b/packs/items/fertigkeiten/zauber.json
index 4bc08c3..c9f0270 100644
--- a/packs/items/fertigkeiten/zauber.json
+++ b/packs/items/fertigkeiten/zauber.json
@@ -1,67 +1,67 @@
{
- "name": "Zauber",
- "type": "spell",
- "img": "icons/svg/item-bag.svg",
- "data": {
- "description": "",
- "spellProcessSelection": {
- "none": "midgard5.spell-process-none",
- "beherrschen": "midgard5.spell-process-beherrschen",
- "bewegen": "midgard5.spell-process-bewegen",
- "erkennen": "midgard5.spell-process-erkennen",
- "erschaffen": "midgard5.spell-process-erschaffen",
- "formen": "midgard5.spell-process-formen",
- "veraendern": "midgard5.spell-process-veraendern",
- "zerstoeren": "midgard5.spell-process-zerstoeren",
- "wundertat": "midgard5.spell-process-wundertat",
- "dweomer": "midgard5.spell-process-dweomer",
- "zauberlied": "midgard5.spell-process-zauberlied",
- "salz": "midgard5.spell-process-salz",
- "thaumagraphie": "midgard5.spell-process-thaumagraphie",
- "beschwoeren": "midgard5.spell-process-beschwoeren",
- "nekromantie": "midgard5.spell-process-nekromantie",
- "thaumatherapie": "midgard5.spell-process-thaumatherapie",
- "zaubermittel": "midgard5.spell-process-zaubermittel",
- "zauberschutz": "midgard5.spell-process-zauberschutz"
- },
- "spellTypeSelection": {
- "gedanke": "midgard5.spell-type-gedanke",
- "geste": "midgard5.spell-type-geste",
- "wort": "midgard5.spell-type-wort"
- },
- "spellTargetSelection": {
- "umgebung": "midgard5.spell-target-umgebung",
- "geist": "midgard5.spell-target-geist",
- "koerper": "midgard5.spell-target-koerper"
- },
- "bonus": 0,
- "type": "gedanke",
- "process": "none",
- "ap": 0,
- "castDuration": "",
- "range": "",
- "effectTarget": "umgebung",
- "effectArea": "",
- "effectDuration": "",
- "origin": "",
- "rolls": {
- "formulas": {
- "0": {
- "formula": "1d20 + @c.calc.stats.spellCasting.value + @i.bonus",
- "enabled": true,
- "label": "Zaubern"
- }
- },
- "output": ""
- },
- "calc": {}
- },
- "effects": [],
- "folder": null,
- "sort": 0,
- "permission": {
- "default": 0,
- "XD0IpWT6bN4AJiYQ": 3
- },
- "_id": "HQ469FvZkwKfzFfu"
-}
\ No newline at end of file
+ "name": "Zauber",
+ "type": "spell",
+ "img": "icons/svg/item-bag.svg",
+ "data": {
+ "description": "",
+ "spellProcessSelection": {
+ "none": "midgard5.spell-process-none",
+ "beherrschen": "midgard5.spell-process-beherrschen",
+ "bewegen": "midgard5.spell-process-bewegen",
+ "erkennen": "midgard5.spell-process-erkennen",
+ "erschaffen": "midgard5.spell-process-erschaffen",
+ "formen": "midgard5.spell-process-formen",
+ "veraendern": "midgard5.spell-process-veraendern",
+ "zerstoeren": "midgard5.spell-process-zerstoeren",
+ "wundertat": "midgard5.spell-process-wundertat",
+ "dweomer": "midgard5.spell-process-dweomer",
+ "zauberlied": "midgard5.spell-process-zauberlied",
+ "salz": "midgard5.spell-process-salz",
+ "thaumagraphie": "midgard5.spell-process-thaumagraphie",
+ "beschwoeren": "midgard5.spell-process-beschwoeren",
+ "nekromantie": "midgard5.spell-process-nekromantie",
+ "thaumatherapie": "midgard5.spell-process-thaumatherapie",
+ "zaubermittel": "midgard5.spell-process-zaubermittel",
+ "zauberschutz": "midgard5.spell-process-zauberschutz"
+ },
+ "spellTypeSelection": {
+ "gedanke": "midgard5.spell-type-gedanke",
+ "geste": "midgard5.spell-type-geste",
+ "wort": "midgard5.spell-type-wort"
+ },
+ "spellTargetSelection": {
+ "umgebung": "midgard5.spell-target-umgebung",
+ "geist": "midgard5.spell-target-geist",
+ "koerper": "midgard5.spell-target-koerper"
+ },
+ "bonus": 0,
+ "type": "gedanke",
+ "process": "none",
+ "ap": 0,
+ "castDuration": "",
+ "range": "",
+ "effectTarget": "umgebung",
+ "effectArea": "",
+ "effectDuration": "",
+ "origin": "",
+ "rolls": {
+ "formulas": {
+ "0": {
+ "formula": "1d20 + @c.calc.stats.spellCasting.value + @i.bonus",
+ "enabled": true,
+ "label": "Zaubern"
+ }
+ },
+ "output": ""
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "folder": null,
+ "sort": 0,
+ "permission": {
+ "default": 0,
+ "XD0IpWT6bN4AJiYQ": 3
+ },
+ "_id": "HQ469FvZkwKfzFfu"
+}
diff --git a/packs/items/kampf/fernkampfwaffe.json b/packs/items/kampf/fernkampfwaffe.json
index c94f54c..f41fdfc 100644
--- a/packs/items/kampf/fernkampfwaffe.json
+++ b/packs/items/kampf/fernkampfwaffe.json
@@ -1,49 +1,49 @@
{
- "name": "Fernkampfwaffe",
- "type": "weapon",
- "img": "icons/svg/item-bag.svg",
- "data": {
- "description": "",
- "stats": {
- "damageBonus": 0,
- "attackBonus": 0,
- "defenseBonus": 0,
- "movementBonus": 0,
- "resistanceMind": 0,
- "resistanceBody": 0,
- "spellBonus": 0
- },
- "equippable": false,
- "equipped": true,
- "value": 0,
- "magic": false,
- "special": false,
- "ranged": true,
- "skillId": "",
- "damageBase": "1d6",
- "rolls": {
- "formulas": {
- "0": {
- "formula": "1d20 + @i.calc.fw + @i.calc.bonus + @i.calc.special + @c.calc.stats.attackBonus.value + @i.stats.attackBonus",
- "label": "Angriff",
- "enabled": true
- },
- "1": {
- "formula": "@i.damageBase + @i.stats.damageBonus",
- "label": "Schaden",
- "enabled": true
- }
- },
- "output": ""
- },
- "calc": {}
- },
- "effects": [],
- "folder": null,
- "sort": 0,
- "permission": {
- "default": 0,
- "XD0IpWT6bN4AJiYQ": 3
- },
- "_id": "h1inVuRJQI42JTCs"
-}
\ No newline at end of file
+ "name": "Fernkampfwaffe",
+ "type": "weapon",
+ "img": "icons/svg/item-bag.svg",
+ "data": {
+ "description": "",
+ "stats": {
+ "damageBonus": 0,
+ "attackBonus": 0,
+ "defenseBonus": 0,
+ "movementBonus": 0,
+ "resistanceMind": 0,
+ "resistanceBody": 0,
+ "spellBonus": 0
+ },
+ "equippable": false,
+ "equipped": true,
+ "value": 0,
+ "magic": false,
+ "special": false,
+ "ranged": true,
+ "skillId": "",
+ "damageBase": "1d6",
+ "rolls": {
+ "formulas": {
+ "0": {
+ "formula": "1d20 + @i.calc.fw + @i.calc.bonus + @i.calc.special + @c.calc.stats.attackBonus.value + @i.stats.attackBonus",
+ "label": "Angriff",
+ "enabled": true
+ },
+ "1": {
+ "formula": "@i.damageBase + @i.stats.damageBonus",
+ "label": "Schaden",
+ "enabled": true
+ }
+ },
+ "output": ""
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "folder": null,
+ "sort": 0,
+ "permission": {
+ "default": 0,
+ "XD0IpWT6bN4AJiYQ": 3
+ },
+ "_id": "h1inVuRJQI42JTCs"
+}
diff --git a/packs/items/kampf/kampfkunst.json b/packs/items/kampf/kampfkunst.json
index 11524d8..9233672 100644
--- a/packs/items/kampf/kampfkunst.json
+++ b/packs/items/kampf/kampfkunst.json
@@ -1,33 +1,33 @@
{
- "name": "Kampfkunst",
- "type": "kampfkunst",
- "img": "icons/svg/item-bag.svg",
- "data": {
- "description": "",
- "bonus": 0,
- "type": "angriff",
- "variante": "none",
- "isKido": false,
- "skillId": "",
- "ap": 0,
- "rolls": {
- "formulas": {
- "0": {
- "formula": "1d20 + @i.calc.ew + @i.bonus",
- "enabled": true,
- "label": "Kampfkunst"
- }
- },
- "output": ""
- },
- "calc": {}
- },
- "effects": [],
- "folder": null,
- "sort": 0,
- "permission": {
- "default": 0,
- "XD0IpWT6bN4AJiYQ": 3
- },
- "_id": "HQ469FvZkwKfzFff"
+ "name": "Kampfkunst",
+ "type": "kampfkunst",
+ "img": "icons/svg/item-bag.svg",
+ "data": {
+ "description": "",
+ "bonus": 0,
+ "type": "angriff",
+ "variante": "none",
+ "isKido": false,
+ "skillId": "",
+ "ap": 0,
+ "rolls": {
+ "formulas": {
+ "0": {
+ "formula": "1d20 + @i.calc.ew + @i.bonus",
+ "enabled": true,
+ "label": "Kampfkunst"
+ }
+ },
+ "output": ""
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "folder": null,
+ "sort": 0,
+ "permission": {
+ "default": 0,
+ "XD0IpWT6bN4AJiYQ": 3
+ },
+ "_id": "HQ469FvZkwKfzFff"
}
diff --git a/packs/items/kampf/rüstung.json b/packs/items/kampf/rüstung.json
index c76a252..6166de9 100644
--- a/packs/items/kampf/rüstung.json
+++ b/packs/items/kampf/rüstung.json
@@ -1,45 +1,45 @@
{
- "name": "Rüstung",
- "type": "armor",
- "img": "icons/svg/item-bag.svg",
- "data": {
- "description": "",
- "stats": {
- "damageBonus": 0,
- "attackBonus": 0,
- "defenseBonus": 0,
- "movementBonus": 0,
- "resistanceMind": 0,
- "resistanceBody": 0,
- "spellBonus": 0
- },
- "equipped": false,
- "attributeMod": {
- "st": 0,
- "gs": 0,
- "gw": 0,
- "ko": 0,
- "in": 0,
- "zt": 0,
- "au": 0,
- "pa": 0,
- "wk": 0
- },
- "magic": false,
- "lpProtection": 0,
- "apProtection": 0,
- "rolls": {
- "formulas": {},
- "output": ""
- },
- "calc": {}
- },
- "effects": [],
- "folder": null,
- "sort": 0,
- "permission": {
- "default": 0,
- "XD0IpWT6bN4AJiYQ": 3
- },
- "_id": "pV1hNavlQGJ9UaEf"
+ "name": "Rüstung",
+ "type": "armor",
+ "img": "icons/svg/item-bag.svg",
+ "data": {
+ "description": "",
+ "stats": {
+ "damageBonus": 0,
+ "attackBonus": 0,
+ "defenseBonus": 0,
+ "movementBonus": 0,
+ "resistanceMind": 0,
+ "resistanceBody": 0,
+ "spellBonus": 0
+ },
+ "equipped": false,
+ "attributeMod": {
+ "st": 0,
+ "gs": 0,
+ "gw": 0,
+ "ko": 0,
+ "in": 0,
+ "zt": 0,
+ "au": 0,
+ "pa": 0,
+ "wk": 0
+ },
+ "magic": false,
+ "lpProtection": 0,
+ "apProtection": 0,
+ "rolls": {
+ "formulas": {},
+ "output": ""
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "folder": null,
+ "sort": 0,
+ "permission": {
+ "default": 0,
+ "XD0IpWT6bN4AJiYQ": 3
+ },
+ "_id": "pV1hNavlQGJ9UaEf"
}
diff --git a/packs/items/kampf/verteidigungswaffe.json b/packs/items/kampf/verteidigungswaffe.json
index 8944228..fca94b7 100644
--- a/packs/items/kampf/verteidigungswaffe.json
+++ b/packs/items/kampf/verteidigungswaffe.json
@@ -1,42 +1,42 @@
{
- "name": "Verteidigungswaffe",
- "type": "defensiveWeapon",
- "img": "icons/svg/item-bag.svg",
- "data": {
- "description": "",
- "stats": {
- "damageBonus": 0,
- "attackBonus": 0,
- "defenseBonus": 0,
- "movementBonus": 0,
- "resistanceMind": 0,
- "resistanceBody": 0,
- "spellBonus": 0
- },
- "equippable": false,
- "equipped": true,
- "special": false,
- "magic": false,
- "skillId": "",
- "rolls": {
- "formulas": {
- "0": {
- "formula": "1d20 + @i.calc.fw + @i.calc.bonus + @i.calc.special + @c.calc.stats.defense.value + @c.calc.stats.defenseBonus.value + @i.stats.defenseBonus",
- "enabled": true,
- "label": "Abwehr"
- }
- },
- "output": ""
- },
- "calc": {},
- "damageBase": ""
- },
- "effects": [],
- "folder": null,
- "sort": 0,
- "permission": {
- "default": 0,
- "XD0IpWT6bN4AJiYQ": 3
- },
- "_id": "BNAoHN0vHfcwNUTl"
-}
\ No newline at end of file
+ "name": "Verteidigungswaffe",
+ "type": "defensiveWeapon",
+ "img": "icons/svg/item-bag.svg",
+ "data": {
+ "description": "",
+ "stats": {
+ "damageBonus": 0,
+ "attackBonus": 0,
+ "defenseBonus": 0,
+ "movementBonus": 0,
+ "resistanceMind": 0,
+ "resistanceBody": 0,
+ "spellBonus": 0
+ },
+ "equippable": false,
+ "equipped": true,
+ "special": false,
+ "magic": false,
+ "skillId": "",
+ "rolls": {
+ "formulas": {
+ "0": {
+ "formula": "1d20 + @i.calc.fw + @i.calc.bonus + @i.calc.special + @c.calc.stats.defense.value + @c.calc.stats.defenseBonus.value + @i.stats.defenseBonus",
+ "enabled": true,
+ "label": "Abwehr"
+ }
+ },
+ "output": ""
+ },
+ "calc": {},
+ "damageBase": ""
+ },
+ "effects": [],
+ "folder": null,
+ "sort": 0,
+ "permission": {
+ "default": 0,
+ "XD0IpWT6bN4AJiYQ": 3
+ },
+ "_id": "BNAoHN0vHfcwNUTl"
+}
diff --git a/packs/items/kampf/waffe.json b/packs/items/kampf/waffe.json
index 452dba6..0ea367d 100644
--- a/packs/items/kampf/waffe.json
+++ b/packs/items/kampf/waffe.json
@@ -1,48 +1,48 @@
{
- "name": "Waffe",
- "type": "weapon",
- "img": "icons/svg/item-bag.svg",
- "data": {
- "description": "",
- "stats": {
- "damageBonus": 0,
- "attackBonus": 0,
- "defenseBonus": 0,
- "movementBonus": 0,
- "resistanceMind": 0,
- "resistanceBody": 0,
- "spellBonus": 0
- },
- "equippable": false,
- "equipped": true,
- "special": false,
- "magic": false,
- "ranged": false,
- "skillId": "",
- "damageBase": "1d6",
- "rolls": {
- "formulas": {
- "0": {
- "formula": "1d20 + @i.calc.fw + @i.calc.bonus + @i.calc.special + @c.calc.stats.attackBonus.value + @i.stats.attackBonus",
- "enabled": true,
- "label": "Angriff"
- },
- "1": {
- "formula": "@i.damageBase + @i.stats.damageBonus + @c.calc.stats.damageBonus.value",
- "enabled": true,
- "label": "Schaden"
- }
- },
- "output": ""
- },
- "calc": {}
- },
- "effects": [],
- "folder": null,
- "sort": 0,
- "permission": {
- "default": 0,
- "XD0IpWT6bN4AJiYQ": 3
- },
- "_id": "uGQJ4VPhh135e79a"
-}
\ No newline at end of file
+ "name": "Waffe",
+ "type": "weapon",
+ "img": "icons/svg/item-bag.svg",
+ "data": {
+ "description": "",
+ "stats": {
+ "damageBonus": 0,
+ "attackBonus": 0,
+ "defenseBonus": 0,
+ "movementBonus": 0,
+ "resistanceMind": 0,
+ "resistanceBody": 0,
+ "spellBonus": 0
+ },
+ "equippable": false,
+ "equipped": true,
+ "special": false,
+ "magic": false,
+ "ranged": false,
+ "skillId": "",
+ "damageBase": "1d6",
+ "rolls": {
+ "formulas": {
+ "0": {
+ "formula": "1d20 + @i.calc.fw + @i.calc.bonus + @i.calc.special + @c.calc.stats.attackBonus.value + @i.stats.attackBonus",
+ "enabled": true,
+ "label": "Angriff"
+ },
+ "1": {
+ "formula": "@i.damageBase + @i.stats.damageBonus + @c.calc.stats.damageBonus.value",
+ "enabled": true,
+ "label": "Schaden"
+ }
+ },
+ "output": ""
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "folder": null,
+ "sort": 0,
+ "permission": {
+ "default": 0,
+ "XD0IpWT6bN4AJiYQ": 3
+ },
+ "_id": "uGQJ4VPhh135e79a"
+}
diff --git a/packs/items/kampfzustaende/angeschlagen.json b/packs/items/kampfzustaende/angeschlagen.json
index 3639dd8..5046641 100644
--- a/packs/items/kampfzustaende/angeschlagen.json
+++ b/packs/items/kampfzustaende/angeschlagen.json
@@ -1,23 +1,43 @@
{
- "name": "Angeschlagen",
- "type": "effect",
- "img": "icons/skills/wounds/injury-pain-body-orange.webp",
- "system": {
- "description": "",
- "equippable": false,
- "equipped": true,
- "duration": { "time": 2, "unit": "round" },
- "value": 0,
- "magic": false,
- "rolls": { "formulas": {}, "output": "" },
- "mods": { "0": { "type": "stat", "id": "movement", "operation": "division", "value": 2 }, "1": { "type": "stat", "id": "ap.max", "operation": "division", "value": 2 } },
- "calc": {}
- },
- "effects": [],
- "flags": {},
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700349805056, "modifiedTime": 1700353901248, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "PJ0tqjZXQ5opcYz6",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "Angeschlagen",
+ "type": "effect",
+ "img": "icons/skills/wounds/injury-pain-body-orange.webp",
+ "system": {
+ "description": "",
+ "equippable": false,
+ "equipped": true,
+ "duration": { "time": 2, "unit": "round" },
+ "value": 0,
+ "magic": false,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": {
+ "type": "stat",
+ "id": "movement",
+ "operation": "division",
+ "value": 2
+ },
+ "1": {
+ "type": "stat",
+ "id": "ap.max",
+ "operation": "division",
+ "value": 2
+ }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {},
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1700349805056,
+ "modifiedTime": 1700353901248,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "PJ0tqjZXQ5opcYz6",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/items/kampfzustaende/benommen.json b/packs/items/kampfzustaende/benommen.json
index bbf8fd4..117ffe3 100644
--- a/packs/items/kampfzustaende/benommen.json
+++ b/packs/items/kampfzustaende/benommen.json
@@ -1,23 +1,37 @@
{
- "name": "Benommen",
- "type": "effect",
- "img": "icons/magic/control/hypnosis-mesmerism-eye.webp",
- "system": {
- "description": "",
- "equippable": false,
- "equipped": true,
- "duration": { "time": 2, "unit": "round" },
- "value": 0,
- "magic": false,
- "rolls": { "formulas": {}, "output": "" },
- "mods": { "0": { "type": "stat", "id": "defenseBonus", "operation": "subtract", "value": 4 } },
- "calc": {}
- },
- "effects": [],
- "flags": {},
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700349805056, "modifiedTime": 1700353901248, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "PJ0tqjZXQ5opcYzY",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
-}
\ No newline at end of file
+ "name": "Benommen",
+ "type": "effect",
+ "img": "icons/magic/control/hypnosis-mesmerism-eye.webp",
+ "system": {
+ "description": "",
+ "equippable": false,
+ "equipped": true,
+ "duration": { "time": 2, "unit": "round" },
+ "value": 0,
+ "magic": false,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": {
+ "type": "stat",
+ "id": "defenseBonus",
+ "operation": "subtract",
+ "value": 4
+ }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {},
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1700349805056,
+ "modifiedTime": 1700353901248,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "PJ0tqjZXQ5opcYzY",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+}
diff --git a/packs/items/kampfzustaende/berserkergang.json b/packs/items/kampfzustaende/berserkergang.json
index 0f1a7e8..ac20a1c 100644
--- a/packs/items/kampfzustaende/berserkergang.json
+++ b/packs/items/kampfzustaende/berserkergang.json
@@ -1,23 +1,43 @@
{
- "name": "Berserkergang",
- "type": "effect",
- "img": "icons/magic/unholy/silhouette-evil-horned-giant.webp",
- "system": {
- "description": "KOD. S96",
- "equippable": false,
- "equipped": true,
- "duration": { "time": 360, "unit": "round" },
- "value": 0,
- "magic": false,
- "rolls": { "formulas": {}, "output": "" },
- "mods": { "0": { "type": "stat", "id": "damageBonus", "operation": "add", "value": 2 }, "1": { "type": "stat", "id": "attackBonus", "operation": "add", "value": 2 } },
- "calc": {}
- },
- "effects": [],
- "flags": {},
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700349805056, "modifiedTime": 1700353901248, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "PJ0tqjZXQ5opcY8",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "Berserkergang",
+ "type": "effect",
+ "img": "icons/magic/unholy/silhouette-evil-horned-giant.webp",
+ "system": {
+ "description": "KOD. S96",
+ "equippable": false,
+ "equipped": true,
+ "duration": { "time": 360, "unit": "round" },
+ "value": 0,
+ "magic": false,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": {
+ "type": "stat",
+ "id": "damageBonus",
+ "operation": "add",
+ "value": 2
+ },
+ "1": {
+ "type": "stat",
+ "id": "attackBonus",
+ "operation": "add",
+ "value": 2
+ }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {},
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1700349805056,
+ "modifiedTime": 1700353901248,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "PJ0tqjZXQ5opcY8",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/items/kampfzustaende/blutend.json b/packs/items/kampfzustaende/blutend.json
index ff6bc25..fa74f5c 100644
--- a/packs/items/kampfzustaende/blutend.json
+++ b/packs/items/kampfzustaende/blutend.json
@@ -1,22 +1,32 @@
{
- "name": "Blutend",
- "type": "effect",
- "img": "icons/skills/wounds/blood-drip-droplet-red.webp",
- "system": {
- "description": "",
- "equippable": false,
- "equipped": true,
- "value": 0,
- "magic": false,
- "rolls": { "formulas": {}, "output": "" },
- "mods": { "0": { "type": "stat", "id": "lp", "operation": "subtract", "value": 1 }, "1": { "type": "stat", "id": "ap", "operation": "subtract", "value": 1 } },
- "calc": {}
- },
- "effects": [],
- "flags": {},
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700349805056, "modifiedTime": 1700353901248, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "PJ0tqjZXQ5opcYz5",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "Blutend",
+ "type": "effect",
+ "img": "icons/skills/wounds/blood-drip-droplet-red.webp",
+ "system": {
+ "description": "",
+ "equippable": false,
+ "equipped": true,
+ "value": 0,
+ "magic": false,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": { "type": "stat", "id": "lp", "operation": "subtract", "value": 1 },
+ "1": { "type": "stat", "id": "ap", "operation": "subtract", "value": 1 }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {},
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1700349805056,
+ "modifiedTime": 1700353901248,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "PJ0tqjZXQ5opcYz5",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/items/kampfzustaende/eingeschuechtert.json b/packs/items/kampfzustaende/eingeschuechtert.json
index 22b0eae..fdbaffa 100644
--- a/packs/items/kampfzustaende/eingeschuechtert.json
+++ b/packs/items/kampfzustaende/eingeschuechtert.json
@@ -1,23 +1,37 @@
{
- "name": "Eingeschüchtert",
- "type": "effect",
- "img": "icons/magic/control/fear-fright-white.webp",
- "system": {
- "description": "",
- "equippable": false,
- "equipped": true,
- "duration": { "time": 2, "unit": "round" },
- "value": 0,
- "magic": false,
- "rolls": { "formulas": {}, "output": "" },
- "mods": { "0": { "type": "stat", "id": "defenseBonus", "operation": "add", "value": 4 } },
- "calc": {}
- },
- "effects": [],
- "flags": {},
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700349805056, "modifiedTime": 1700353901248, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "PJ0tqjZXQ5opcYzZ",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "Eingeschüchtert",
+ "type": "effect",
+ "img": "icons/magic/control/fear-fright-white.webp",
+ "system": {
+ "description": "",
+ "equippable": false,
+ "equipped": true,
+ "duration": { "time": 2, "unit": "round" },
+ "value": 0,
+ "magic": false,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": {
+ "type": "stat",
+ "id": "defenseBonus",
+ "operation": "add",
+ "value": 4
+ }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {},
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1700349805056,
+ "modifiedTime": 1700353901248,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "PJ0tqjZXQ5opcYzZ",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/items/kampfzustaende/ermutigt.json b/packs/items/kampfzustaende/ermutigt.json
index f8c57f2..759dfbb 100644
--- a/packs/items/kampfzustaende/ermutigt.json
+++ b/packs/items/kampfzustaende/ermutigt.json
@@ -1,23 +1,43 @@
{
- "name": "Ermutigt",
- "type": "effect",
- "img": "icons/magic/earth/strike-fist-stone-light.webp",
- "system": {
- "description": "",
- "equippable": false,
- "equipped": true,
- "duration": { "time": 6, "unit": "round" },
- "value": 0,
- "magic": false,
- "rolls": { "formulas": {}, "output": "" },
- "mods": { "0": { "type": "stat", "id": "defenseBonus", "operation": "add", "value": 1 }, "1": { "type": "stat", "id": "attackBonus", "operation": "add", "value": 1 } },
- "calc": {}
- },
- "effects": [],
- "flags": {},
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700349805056, "modifiedTime": 1700353901248, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "PJ0tqjZXQ5opcYzX",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "Ermutigt",
+ "type": "effect",
+ "img": "icons/magic/earth/strike-fist-stone-light.webp",
+ "system": {
+ "description": "",
+ "equippable": false,
+ "equipped": true,
+ "duration": { "time": 6, "unit": "round" },
+ "value": 0,
+ "magic": false,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": {
+ "type": "stat",
+ "id": "defenseBonus",
+ "operation": "add",
+ "value": 1
+ },
+ "1": {
+ "type": "stat",
+ "id": "attackBonus",
+ "operation": "add",
+ "value": 1
+ }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {},
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1700349805056,
+ "modifiedTime": 1700353901248,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "PJ0tqjZXQ5opcYzX",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/items/kampfzustaende/erschoepft.json b/packs/items/kampfzustaende/erschoepft.json
index ddd8059..253bd40 100644
--- a/packs/items/kampfzustaende/erschoepft.json
+++ b/packs/items/kampfzustaende/erschoepft.json
@@ -1,22 +1,42 @@
{
- "name": "Erschöpft",
- "type": "effect",
- "img": "icons/skills/wounds/injury-body-pain-gray.webp",
- "system": {
- "description": "",
- "equippable": false,
- "equipped": true,
- "value": 0,
- "magic": false,
- "rolls": { "formulas": {}, "output": "" },
- "mods": { "0": { "type": "stat", "id": "defenseBonus", "operation": "subtract", "value": 4 }, "1": { "type": "stat", "id": "attackBonus", "operation": "subtract", "value": 4 } },
- "calc": {}
- },
- "effects": [],
- "flags": {},
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700349805056, "modifiedTime": 1700353901248, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "PJ0tqjZXQ5opcYz7",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "Erschöpft",
+ "type": "effect",
+ "img": "icons/skills/wounds/injury-body-pain-gray.webp",
+ "system": {
+ "description": "",
+ "equippable": false,
+ "equipped": true,
+ "value": 0,
+ "magic": false,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": {
+ "type": "stat",
+ "id": "defenseBonus",
+ "operation": "subtract",
+ "value": 4
+ },
+ "1": {
+ "type": "stat",
+ "id": "attackBonus",
+ "operation": "subtract",
+ "value": 4
+ }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {},
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1700349805056,
+ "modifiedTime": 1700353901248,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "PJ0tqjZXQ5opcYz7",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/items/kampfzustaende/erzuernt.json b/packs/items/kampfzustaende/erzuernt.json
index d2fd190..33a02c7 100644
--- a/packs/items/kampfzustaende/erzuernt.json
+++ b/packs/items/kampfzustaende/erzuernt.json
@@ -1,22 +1,42 @@
{
- "name": "Erzürnt",
- "type": "effect",
- "img": "icons/magic/control/fear-fright-monster-grin-red-orange.webp",
- "system": {
- "description": "",
- "equippable": false,
- "equipped": true,
- "value": 0,
- "magic": false,
- "rolls": { "formulas": {}, "output": "" },
- "mods": { "0": { "type": "stat", "id": "defenseBonus", "operation": "subtract", "value": 2 }, "1": { "type": "stat", "id": "attackBonus", "operation": "add", "value": 2 } },
- "calc": {}
- },
- "effects": [],
- "flags": {},
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700349805056, "modifiedTime": 1700353901248, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "PJ0tqjZXQ5opcYz3",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "Erzürnt",
+ "type": "effect",
+ "img": "icons/magic/control/fear-fright-monster-grin-red-orange.webp",
+ "system": {
+ "description": "",
+ "equippable": false,
+ "equipped": true,
+ "value": 0,
+ "magic": false,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": {
+ "type": "stat",
+ "id": "defenseBonus",
+ "operation": "subtract",
+ "value": 2
+ },
+ "1": {
+ "type": "stat",
+ "id": "attackBonus",
+ "operation": "add",
+ "value": 2
+ }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {},
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1700349805056,
+ "modifiedTime": 1700353901248,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "PJ0tqjZXQ5opcYz3",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/items/kampfzustaende/lahm.json b/packs/items/kampfzustaende/lahm.json
index 5139343..18068ee 100644
--- a/packs/items/kampfzustaende/lahm.json
+++ b/packs/items/kampfzustaende/lahm.json
@@ -1,22 +1,36 @@
{
- "name": "Lahm",
- "type": "effect",
- "img": "icons/skills/movement/feet-spurred-boots-brown.webp",
- "system": {
- "description": "",
- "equippable": false,
- "equipped": true,
- "value": 0,
- "magic": false,
- "rolls": { "formulas": {}, "output": "" },
- "mods": { "0": { "type": "stat", "id": "movement", "operation": "division", "value": 2 } },
- "calc": {}
- },
- "effects": [],
- "flags": {},
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700349805056, "modifiedTime": 1700353901248, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "PJ0tqjZXQ5opcYz0",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "Lahm",
+ "type": "effect",
+ "img": "icons/skills/movement/feet-spurred-boots-brown.webp",
+ "system": {
+ "description": "",
+ "equippable": false,
+ "equipped": true,
+ "value": 0,
+ "magic": false,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": {
+ "type": "stat",
+ "id": "movement",
+ "operation": "division",
+ "value": 2
+ }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {},
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1700349805056,
+ "modifiedTime": 1700353901248,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "PJ0tqjZXQ5opcYz0",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/items/kampfzustaende/taumelnd.json b/packs/items/kampfzustaende/taumelnd.json
index 91b1fb3..58a6759 100644
--- a/packs/items/kampfzustaende/taumelnd.json
+++ b/packs/items/kampfzustaende/taumelnd.json
@@ -1,23 +1,43 @@
{
- "name": "Taumelnd",
- "type": "effect",
- "img": "icons/magic/control/silhouette-fall-slip-prone.webp",
- "system": {
- "description": "",
- "equippable": false,
- "equipped": true,
- "duration": { "time": 2, "unit": "round" },
- "value": 0,
- "magic": false,
- "rolls": { "formulas": {}, "output": "" },
- "mods": { "0": { "type": "stat", "id": "defenseBonus", "operation": "subtract", "value": 2 }, "1": { "type": "stat", "id": "attackBonus", "operation": "sub", "value": 2 } },
- "calc": {}
- },
- "effects": [],
- "flags": {},
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700349805056, "modifiedTime": 1700353901248, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "PJ0tqjZXQ5opcYz1",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "Taumelnd",
+ "type": "effect",
+ "img": "icons/magic/control/silhouette-fall-slip-prone.webp",
+ "system": {
+ "description": "",
+ "equippable": false,
+ "equipped": true,
+ "duration": { "time": 2, "unit": "round" },
+ "value": 0,
+ "magic": false,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": {
+ "type": "stat",
+ "id": "defenseBonus",
+ "operation": "subtract",
+ "value": 2
+ },
+ "1": {
+ "type": "stat",
+ "id": "attackBonus",
+ "operation": "sub",
+ "value": 2
+ }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {},
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1700349805056,
+ "modifiedTime": 1700353901248,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "PJ0tqjZXQ5opcYz1",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/items/kampfzustaende/ueberrascht.json b/packs/items/kampfzustaende/ueberrascht.json
index 7bccd21..1fcac65 100644
--- a/packs/items/kampfzustaende/ueberrascht.json
+++ b/packs/items/kampfzustaende/ueberrascht.json
@@ -1,23 +1,37 @@
{
- "name": "Überrascht",
- "type": "effect",
- "img": "icons/magic/control/silhouette-hold-change-green.webp",
- "system": {
- "description": "",
- "equippable": false,
- "equipped": true,
- "duration": { "time": 1, "unit": "round" },
- "value": 0,
- "magic": false,
- "rolls": { "formulas": {}, "output": "" },
- "mods": { "0": { "type": "stat", "id": "defenseBonus", "operation": "subtract", "value": 4 } },
- "calc": {}
- },
- "effects": [],
- "flags": {},
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700349805056, "modifiedTime": 1700353901248, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "PJ0tqjZXQ5opcYz2",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "Überrascht",
+ "type": "effect",
+ "img": "icons/magic/control/silhouette-hold-change-green.webp",
+ "system": {
+ "description": "",
+ "equippable": false,
+ "equipped": true,
+ "duration": { "time": 1, "unit": "round" },
+ "value": 0,
+ "magic": false,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": {
+ "type": "stat",
+ "id": "defenseBonus",
+ "operation": "subtract",
+ "value": 4
+ }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {},
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1700349805056,
+ "modifiedTime": 1700353901248,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "PJ0tqjZXQ5opcYz2",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/items/kampfzustaende/verwirrt.json b/packs/items/kampfzustaende/verwirrt.json
index cbff06f..ab14cd6 100644
--- a/packs/items/kampfzustaende/verwirrt.json
+++ b/packs/items/kampfzustaende/verwirrt.json
@@ -1,23 +1,37 @@
{
- "name": "Verwirrt",
- "type": "effect",
- "img": "icons/magic/control/silhouette-grow-shrink-blue.webp",
- "system": {
- "description": "",
- "equippable": false,
- "equipped": true,
- "duration": { "time": 2, "unit": "round" },
- "value": 0,
- "magic": false,
- "rolls": { "formulas": {}, "output": "" },
- "mods": { "0": { "type": "stat", "id": "movement", "operation": "fixed", "value": 0 } },
- "calc": {}
- },
- "effects": [],
- "flags": {},
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700349805056, "modifiedTime": 1700353901248, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "PJ0tqjZXQ5opcYz6",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "Verwirrt",
+ "type": "effect",
+ "img": "icons/magic/control/silhouette-grow-shrink-blue.webp",
+ "system": {
+ "description": "",
+ "equippable": false,
+ "equipped": true,
+ "duration": { "time": 2, "unit": "round" },
+ "value": 0,
+ "magic": false,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": {
+ "type": "stat",
+ "id": "movement",
+ "operation": "fixed",
+ "value": 0
+ }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {},
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1700349805056,
+ "modifiedTime": 1700353901248,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "PJ0tqjZXQ5opcYz6",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/items/verletzungen/arm.json b/packs/items/verletzungen/arm.json
index d7f0a01..e46b6b3 100644
--- a/packs/items/verletzungen/arm.json
+++ b/packs/items/verletzungen/arm.json
@@ -1,22 +1,36 @@
{
- "name": "Arm",
- "type": "effect",
- "img": "icons/skills/wounds/injury-pain-impaled-hand-blood.webp",
- "system": {
- "description": "",
- "equippable": false,
- "equipped": true,
- "value": 0,
- "magic": false,
- "rolls": { "formulas": {}, "output": "" },
- "mods": { "0": { "type": "stat", "id": "attackBonus", "operation": "substract", "value": 4 } },
- "calc": {}
- },
- "effects": [],
- "flags": {},
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700349805056, "modifiedTime": 1700353901248, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "PJ0tqjZXQ5opcYz8",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "Arm",
+ "type": "effect",
+ "img": "icons/skills/wounds/injury-pain-impaled-hand-blood.webp",
+ "system": {
+ "description": "",
+ "equippable": false,
+ "equipped": true,
+ "value": 0,
+ "magic": false,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": {
+ "type": "stat",
+ "id": "attackBonus",
+ "operation": "substract",
+ "value": 4
+ }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {},
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1700349805056,
+ "modifiedTime": 1700353901248,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "PJ0tqjZXQ5opcYz8",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/items/verletzungen/auge.json b/packs/items/verletzungen/auge.json
index d4ba32b..8a60cae 100644
--- a/packs/items/verletzungen/auge.json
+++ b/packs/items/verletzungen/auge.json
@@ -1,22 +1,36 @@
{
- "name": "Auge",
- "type": "effect",
- "img": "icons/skills/wounds/injury-eyes-blood-red.webp",
- "system": {
- "description": "",
- "equippable": false,
- "equipped": true,
- "value": 0,
- "magic": false,
- "rolls": { "formulas": {}, "output": "" },
- "mods": { "0": { "type": "stat", "id": "perception", "operation": "subtract", "value": 2 } },
- "calc": {}
- },
- "effects": [],
- "flags": {},
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700349805056, "modifiedTime": 1700353901248, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "PJ0tqjZXQ5opcY14",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "Auge",
+ "type": "effect",
+ "img": "icons/skills/wounds/injury-eyes-blood-red.webp",
+ "system": {
+ "description": "",
+ "equippable": false,
+ "equipped": true,
+ "value": 0,
+ "magic": false,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": {
+ "type": "stat",
+ "id": "perception",
+ "operation": "subtract",
+ "value": 2
+ }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {},
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1700349805056,
+ "modifiedTime": 1700353901248,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "PJ0tqjZXQ5opcY14",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/items/verletzungen/bein.json b/packs/items/verletzungen/bein.json
index 5f0ecfb..87fbad5 100644
--- a/packs/items/verletzungen/bein.json
+++ b/packs/items/verletzungen/bein.json
@@ -1,22 +1,36 @@
{
- "name": "Bein",
- "type": "effect",
- "img": "icons/skills/wounds/bone-broken-knee-beam.webp",
- "system": {
- "description": "",
- "equippable": false,
- "equipped": true,
- "value": 0,
- "magic": false,
- "rolls": { "formulas": {}, "output": "" },
- "mods": { "0": { "type": "stat", "id": "movement", "operation": "fixed", "value": 4 } },
- "calc": {}
- },
- "effects": [],
- "flags": {},
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700349805056, "modifiedTime": 1700353901248, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "PJ0tqjZXQ5opcYz9",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "Bein",
+ "type": "effect",
+ "img": "icons/skills/wounds/bone-broken-knee-beam.webp",
+ "system": {
+ "description": "",
+ "equippable": false,
+ "equipped": true,
+ "value": 0,
+ "magic": false,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": {
+ "type": "stat",
+ "id": "movement",
+ "operation": "fixed",
+ "value": 4
+ }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {},
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1700349805056,
+ "modifiedTime": 1700353901248,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "PJ0tqjZXQ5opcYz9",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/items/verletzungen/bein1aid.json b/packs/items/verletzungen/bein1aid.json
index d8d5f91..bb55b75 100644
--- a/packs/items/verletzungen/bein1aid.json
+++ b/packs/items/verletzungen/bein1aid.json
@@ -1,22 +1,36 @@
{
- "name": "Bein mit Erster Hilfe",
- "type": "effect",
- "img": "icons/skills/wounds/anatomy-bone-joint.webp",
- "system": {
- "description": "",
- "equippable": false,
- "equipped": true,
- "value": 0,
- "magic": false,
- "rolls": { "formulas": {}, "output": "" },
- "mods": { "0": { "type": "stat", "id": "movement", "operation": "fixed", "value": 6 } },
- "calc": {}
- },
- "effects": [],
- "flags": {},
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700349805056, "modifiedTime": 1700353901248, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "PJ0tqjZXQ5opcY11",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "Bein mit Erster Hilfe",
+ "type": "effect",
+ "img": "icons/skills/wounds/anatomy-bone-joint.webp",
+ "system": {
+ "description": "",
+ "equippable": false,
+ "equipped": true,
+ "value": 0,
+ "magic": false,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": {
+ "type": "stat",
+ "id": "movement",
+ "operation": "fixed",
+ "value": 6
+ }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {},
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1700349805056,
+ "modifiedTime": 1700353901248,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "PJ0tqjZXQ5opcY11",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/items/verletzungen/beinstock.json b/packs/items/verletzungen/beinstock.json
index 4bd2287..52bf8a0 100644
--- a/packs/items/verletzungen/beinstock.json
+++ b/packs/items/verletzungen/beinstock.json
@@ -1,22 +1,42 @@
{
- "name": "Bein mit Stock",
- "type": "effect",
- "img": "icons/skills/wounds/injury-stapled-flesh-tan.webp",
- "system": {
- "description": "",
- "equippable": false,
- "equipped": true,
- "value": 0,
- "magic": false,
- "rolls": { "formulas": {}, "output": "" },
- "mods": { "0": { "type": "stat", "id": "movement", "operation": "division", "value": 2 }, "1": { "type": "stat", "id": "defenseBonus", "operation": "subtract", "value": 4 } },
- "calc": {}
- },
- "effects": [],
- "flags": {},
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700349805056, "modifiedTime": 1700353901248, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "PJ0tqjZXQ5opcY10",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "Bein mit Stock",
+ "type": "effect",
+ "img": "icons/skills/wounds/injury-stapled-flesh-tan.webp",
+ "system": {
+ "description": "",
+ "equippable": false,
+ "equipped": true,
+ "value": 0,
+ "magic": false,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": {
+ "type": "stat",
+ "id": "movement",
+ "operation": "division",
+ "value": 2
+ },
+ "1": {
+ "type": "stat",
+ "id": "defenseBonus",
+ "operation": "subtract",
+ "value": 4
+ }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {},
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1700349805056,
+ "modifiedTime": 1700353901248,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "PJ0tqjZXQ5opcY10",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/items/verletzungen/hals.json b/packs/items/verletzungen/hals.json
index 4df71a1..7e366dd 100644
--- a/packs/items/verletzungen/hals.json
+++ b/packs/items/verletzungen/hals.json
@@ -1,22 +1,32 @@
{
- "name": "Hals",
- "type": "effect",
- "img": "icons/skills/wounds/blood-spurt-spray-red.webp",
- "system": {
- "description": "",
- "equippable": false,
- "equipped": true,
- "value": 0,
- "magic": false,
- "rolls": { "formulas": {}, "output": "" },
- "mods": { "0": { "type": "stat", "id": "lp", "operation": "subtract", "value": 1 }, "1": { "type": "stat", "id": "ap", "operation": "subtract", "value": 1 } },
- "calc": {}
- },
- "effects": [],
- "flags": {},
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700349805056, "modifiedTime": 1700353901248, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "PJ0tqjZXQ5opcY12",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "Hals",
+ "type": "effect",
+ "img": "icons/skills/wounds/blood-spurt-spray-red.webp",
+ "system": {
+ "description": "",
+ "equippable": false,
+ "equipped": true,
+ "value": 0,
+ "magic": false,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": { "type": "stat", "id": "lp", "operation": "subtract", "value": 1 },
+ "1": { "type": "stat", "id": "ap", "operation": "subtract", "value": 1 }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {},
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1700349805056,
+ "modifiedTime": 1700353901248,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "PJ0tqjZXQ5opcY12",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/items/verletzungen/innereverletzungen.json b/packs/items/verletzungen/innereverletzungen.json
index 19ec008..dcc1c8c 100644
--- a/packs/items/verletzungen/innereverletzungen.json
+++ b/packs/items/verletzungen/innereverletzungen.json
@@ -1,22 +1,36 @@
{
- "name": "Innere Verletzungen",
- "type": "effect",
- "img": "icons/skills/wounds/injury-triple-slash-bleed.webp",
- "system": {
- "description": "",
- "equippable": false,
- "equipped": true,
- "value": 0,
- "magic": false,
- "rolls": { "formulas": {}, "output": "" },
- "mods": { "0": { "type": "stat", "id": "movement", "operation": "fixed", "value": 4 } },
- "calc": {}
- },
- "effects": [],
- "flags": {},
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700349805056, "modifiedTime": 1700353901248, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "PJ0tqjZXQ5opcY13",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "Innere Verletzungen",
+ "type": "effect",
+ "img": "icons/skills/wounds/injury-triple-slash-bleed.webp",
+ "system": {
+ "description": "",
+ "equippable": false,
+ "equipped": true,
+ "value": 0,
+ "magic": false,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": {
+ "type": "stat",
+ "id": "movement",
+ "operation": "fixed",
+ "value": 4
+ }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {},
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1700349805056,
+ "modifiedTime": 1700353901248,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "PJ0tqjZXQ5opcY13",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/items/verletzungen/ohr.json b/packs/items/verletzungen/ohr.json
index 4c9f5bd..17aa837 100644
--- a/packs/items/verletzungen/ohr.json
+++ b/packs/items/verletzungen/ohr.json
@@ -1,22 +1,36 @@
{
- "name": "Ohr",
- "type": "effect",
- "img": "icons/skills/wounds/injury-eyes-blood-red-pink.webp",
- "system": {
- "description": "",
- "equippable": false,
- "equipped": true,
- "value": 0,
- "magic": false,
- "rolls": { "formulas": {}, "output": "" },
- "mods": { "0": { "type": "stat", "id": "perception", "operation": "subtract", "value": 2 } },
- "calc": {}
- },
- "effects": [],
- "flags": {},
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700349805056, "modifiedTime": 1700353901248, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "PJ0tqjZXQ5opcY15",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "Ohr",
+ "type": "effect",
+ "img": "icons/skills/wounds/injury-eyes-blood-red-pink.webp",
+ "system": {
+ "description": "",
+ "equippable": false,
+ "equipped": true,
+ "value": 0,
+ "magic": false,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": {
+ "type": "stat",
+ "id": "perception",
+ "operation": "subtract",
+ "value": 2
+ }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {},
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1700349805056,
+ "modifiedTime": 1700353901248,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "PJ0tqjZXQ5opcY15",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/items/verletzungen/rippen.json b/packs/items/verletzungen/rippen.json
index f84699f..cec4ecc 100644
--- a/packs/items/verletzungen/rippen.json
+++ b/packs/items/verletzungen/rippen.json
@@ -1,22 +1,54 @@
{
- "name": "Rippen",
- "type": "effect",
- "img": "icons/skills/wounds/bone-broken-marrow-yellow.webp",
- "system": {
- "description": "",
- "equippable": false,
- "equipped": true,
- "value": 0,
- "magic": false,
- "rolls": { "formulas": {}, "output": "" },
- "mods": { "0": { "type": "stat", "id": "defenseBonus", "operation": "subtract", "value": 4 }, "1": { "type": "stat", "id": "attackBonus", "operation": "subtract", "value": 4 }, "2": { "type": "skill", "id": "Klettern", "operation": "subtract", "value": 4 }, "3": { "type": "skill", "id": "Akrobatik", "operation": "subtract", "value": 4 } },
- "calc": {}
- },
- "effects": [],
- "flags": {},
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700349805056, "modifiedTime": 1700353901248, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "PJ0tqjZXQ5opcY16",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "Rippen",
+ "type": "effect",
+ "img": "icons/skills/wounds/bone-broken-marrow-yellow.webp",
+ "system": {
+ "description": "",
+ "equippable": false,
+ "equipped": true,
+ "value": 0,
+ "magic": false,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": {
+ "type": "stat",
+ "id": "defenseBonus",
+ "operation": "subtract",
+ "value": 4
+ },
+ "1": {
+ "type": "stat",
+ "id": "attackBonus",
+ "operation": "subtract",
+ "value": 4
+ },
+ "2": {
+ "type": "skill",
+ "id": "Klettern",
+ "operation": "subtract",
+ "value": 4
+ },
+ "3": {
+ "type": "skill",
+ "id": "Akrobatik",
+ "operation": "subtract",
+ "value": 4
+ }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {},
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1700349805056,
+ "modifiedTime": 1700353901248,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "PJ0tqjZXQ5opcY16",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/items/waffenkammer/FaustkampfRingen.json b/packs/items/waffenkammer/FaustkampfRingen.json
index b9d2cfe..4bf5c54 100644
--- a/packs/items/waffenkammer/FaustkampfRingen.json
+++ b/packs/items/waffenkammer/FaustkampfRingen.json
@@ -1 +1,57 @@
-{"name": "Faustkampf/Ringen", "type": "weapon", "img": "icons/skills/melee/unarmed-punch-fist.webp", "system": {"description": "Kodex Seite 142
", "stats": {"damageBonus": 0, "attackBonus": 0, "defenseBonus": 0, "movementBonus": 0, "resistanceMind": 0, "resistanceBody": 0, "spellBonus": 0}, "equippable": false, "equipped": true, "value": 0, "magic": false, "special": false, "ranged": false, "skillId": "", "damageBase": "1d6-4", "rolls": {"formulas": {"0": {"formula": "1d20 + @i.calc.fw + @i.calc.bonus + @i.calc.special + @c.calc.stats.attackBonus.value + @i.stats.attackBonus", "label": "Angriff", "enabled": true}, "1": {"formula": "@i.damageBase + @i.stats.damageBonus + @c.calc.stats.damageBonus.value", "label": "Schaden", "enabled": true}}, "output": ""}, "calc": {}}, "effects": [], "flags": {"core": {"sourceId": "Compendium.midgard5.waffen.3qxoFIxKNRyZsGav"}}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1677960561949, "modifiedTime": 1700335400802, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "3qxoFIxKNRyZsGav", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
\ No newline at end of file
+{
+ "name": "Faustkampf/Ringen",
+ "type": "weapon",
+ "img": "icons/skills/melee/unarmed-punch-fist.webp",
+ "system": {
+ "description": "Kodex Seite 142
",
+ "stats": {
+ "damageBonus": 0,
+ "attackBonus": 0,
+ "defenseBonus": 0,
+ "movementBonus": 0,
+ "resistanceMind": 0,
+ "resistanceBody": 0,
+ "spellBonus": 0
+ },
+ "equippable": false,
+ "equipped": true,
+ "value": 0,
+ "magic": false,
+ "special": false,
+ "ranged": false,
+ "skillId": "",
+ "damageBase": "1d6-4",
+ "rolls": {
+ "formulas": {
+ "0": {
+ "formula": "1d20 + @i.calc.fw + @i.calc.bonus + @i.calc.special + @c.calc.stats.attackBonus.value + @i.stats.attackBonus",
+ "label": "Angriff",
+ "enabled": true
+ },
+ "1": {
+ "formula": "@i.damageBase + @i.stats.damageBonus + @c.calc.stats.damageBonus.value",
+ "label": "Schaden",
+ "enabled": true
+ }
+ },
+ "output": ""
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {
+ "core": { "sourceId": "Compendium.midgard5.waffen.3qxoFIxKNRyZsGav" }
+ },
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1677960561949,
+ "modifiedTime": 1700335400802,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "3qxoFIxKNRyZsGav",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+}
diff --git a/packs/items/waffenkammer/Schild.json b/packs/items/waffenkammer/Schild.json
new file mode 100644
index 0000000..49c3fb1
--- /dev/null
+++ b/packs/items/waffenkammer/Schild.json
@@ -0,0 +1,50 @@
+{
+ "name": "Schild",
+ "type": "defensiveWeapon",
+ "img": "icons/equipment/shield/wardoor-wooden-boss-brown.webp",
+ "system": {
+ "description": "Kodex Seite 145, 146
",
+ "stats": {
+ "damageBonus": 0,
+ "attackBonus": 0,
+ "defenseBonus": 0,
+ "movementBonus": 0,
+ "resistanceMind": 0,
+ "resistanceBody": 0,
+ "spellBonus": 0
+ },
+ "equippable": false,
+ "equipped": true,
+ "value": 0,
+ "magic": false,
+ "special": false,
+ "skillId": "",
+ "rolls": {
+ "formulas": {
+ "0": {
+ "formula": "1d20 + @i.calc.fw + @i.calc.bonus + @i.calc.special + @c.calc.stats.defense.value + @c.calc.stats.defenseBonus.value + @i.stats.defenseBonus",
+ "label": "Abwehr",
+ "enabled": true
+ }
+ },
+ "output": ""
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {
+ "core": { "sourceId": "Compendium.midgard5.waffen.XhhkDb8zpq3xjCUX" }
+ },
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1677961980548,
+ "modifiedTime": 1700335400806,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "XhhkDb8zpq3xjCUX",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+}
diff --git a/packs/items/zauberwirkungen/Anziehen.json b/packs/items/zauberwirkungen/Anziehen.json
index badfbb5..258120b 100644
--- a/packs/items/zauberwirkungen/Anziehen.json
+++ b/packs/items/zauberwirkungen/Anziehen.json
@@ -1,23 +1,37 @@
{
- "name": "Anziehen",
- "type": "effect",
- "img": "icons/magic/control/voodoo-doll-pain-damage-tan.webp",
- "system": {
- "description": "ARK S. 64
",
- "equippable": false,
- "duration": { "time": 6, "unit": "hour" },
- "equipped": true,
- "value": 0,
- "magic": false,
- "rolls": { "formulas": {}, "output": "" },
- "mods": { "0": { "type": "skill", "id": "midgard5.verfuehren", "operation": "add", "value": 6 } },
- "calc": {}
- },
- "effects": [],
- "flags": {},
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700346141608, "modifiedTime": 1700353901244, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "4BRbFw8t8YjaSlB5",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "Anziehen",
+ "type": "effect",
+ "img": "icons/magic/control/voodoo-doll-pain-damage-tan.webp",
+ "system": {
+ "description": "ARK S. 64
",
+ "equippable": false,
+ "duration": { "time": 6, "unit": "hour" },
+ "equipped": true,
+ "value": 0,
+ "magic": false,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": {
+ "type": "skill",
+ "id": "midgard5.verfuehren",
+ "operation": "add",
+ "value": 6
+ }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {},
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1700346141608,
+ "modifiedTime": 1700353901244,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "4BRbFw8t8YjaSlB5",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/items/zauberwirkungen/Beschleunigen.json b/packs/items/zauberwirkungen/Beschleunigen.json
index 3940fff..6a0d0f1 100644
--- a/packs/items/zauberwirkungen/Beschleunigen.json
+++ b/packs/items/zauberwirkungen/Beschleunigen.json
@@ -1,23 +1,41 @@
{
- "name": "Beschleunigen",
- "type": "effect",
- "img": "icons/skills/movement/feet-winged-boots-glowing-yellow.webp",
- "system": {
- "description": "ARK S. 67
",
- "equippable": false,
- "equipped": true,
- "duration": { "time": 6, "unit": "round" },
- "value": 0,
- "magic": true,
- "rolls": { "formulas": {}, "output": "" },
- "mods": { "0": { "type": "stat", "id": "movement", "operation": "multiply", "value": 2 } },
- "calc": {}
- },
- "effects": [],
- "flags": { "core": { "sourceId": "Compendium.midgard5.zauberwirkungen.VXsXFBkozIBxK3iF" } },
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1677860518284, "modifiedTime": 1700353901241, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "VXsXFBkozIBxK3iF",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "Beschleunigen",
+ "type": "effect",
+ "img": "icons/skills/movement/feet-winged-boots-glowing-yellow.webp",
+ "system": {
+ "description": "ARK S. 67
",
+ "equippable": false,
+ "equipped": true,
+ "duration": { "time": 6, "unit": "round" },
+ "value": 0,
+ "magic": true,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": {
+ "type": "stat",
+ "id": "movement",
+ "operation": "multiply",
+ "value": 2
+ }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {
+ "core": {
+ "sourceId": "Compendium.midgard5.zauberwirkungen.VXsXFBkozIBxK3iF"
+ }
+ },
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1677860518284,
+ "modifiedTime": 1700353901241,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "VXsXFBkozIBxK3iF",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/items/zauberwirkungen/Blenden.json b/packs/items/zauberwirkungen/Blenden.json
index 4fb302a..a85adde 100644
--- a/packs/items/zauberwirkungen/Blenden.json
+++ b/packs/items/zauberwirkungen/Blenden.json
@@ -1,29 +1,56 @@
{
- "name": "Blenden",
- "type": "effect",
- "img": "icons/creatures/eyes/humanoid-single-blind.webp",
- "system": {
- "description": "ARK S. 69
",
- "equippable": false,
- "equipped": true,
- "duration": { "time": 6, "unit": "round" },
- "value": 0,
- "magic": false,
- "rolls": { "formulas": {}, "output": "" },
- "mods": {
- "0": { "type": "stat", "id": "defenseBonus", "operation": "subtract", "value": 6 },
- "1": { "type": "stat", "id": "attackBonus", "operation": "subtract", "value": 6 },
- "2": { "type": "stat", "id": "brawl", "operation": "subtract", "value": 6 },
- "3": { "type": "stat", "id": "spellCasting", "operation": "subtract", "value": 6 },
- "4": { "type": "skill", "id": "", "operation": "subtract", "value": 6 }
- },
- "calc": {}
- },
- "effects": [],
- "flags": {},
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700346302548, "modifiedTime": 1700353901245, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "ZhHUenDLCr0xJ84j",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "Blenden",
+ "type": "effect",
+ "img": "icons/creatures/eyes/humanoid-single-blind.webp",
+ "system": {
+ "description": "ARK S. 69
",
+ "equippable": false,
+ "equipped": true,
+ "duration": { "time": 6, "unit": "round" },
+ "value": 0,
+ "magic": false,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": {
+ "type": "stat",
+ "id": "defenseBonus",
+ "operation": "subtract",
+ "value": 6
+ },
+ "1": {
+ "type": "stat",
+ "id": "attackBonus",
+ "operation": "subtract",
+ "value": 6
+ },
+ "2": {
+ "type": "stat",
+ "id": "brawl",
+ "operation": "subtract",
+ "value": 6
+ },
+ "3": {
+ "type": "stat",
+ "id": "spellCasting",
+ "operation": "subtract",
+ "value": 6
+ },
+ "4": { "type": "skill", "id": "", "operation": "subtract", "value": 6 }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {},
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1700346302548,
+ "modifiedTime": 1700353901245,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "ZhHUenDLCr0xJ84j",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/items/zauberwirkungen/Blendsalz.json b/packs/items/zauberwirkungen/Blendsalz.json
index 3b96dbc..47745d3 100644
--- a/packs/items/zauberwirkungen/Blendsalz.json
+++ b/packs/items/zauberwirkungen/Blendsalz.json
@@ -1,29 +1,56 @@
{
- "name": "Blendsalz",
- "type": "effect",
- "img": "icons/creatures/eyes/humanoid-single-blind.webp",
- "system": {
- "description": "MYS S. 44
",
- "equippable": false,
- "equipped": true,
- "duration": { "time": 1, "unit": "round" },
- "value": 0,
- "magic": false,
- "rolls": { "formulas": {}, "output": "" },
- "mods": {
- "0": { "type": "stat", "id": "defenseBonus", "operation": "subtract", "value": 6 },
- "1": { "type": "stat", "id": "attackBonus", "operation": "subtract", "value": 6 },
- "2": { "type": "stat", "id": "brawl", "operation": "subtract", "value": 6 },
- "3": { "type": "stat", "id": "spellCasting", "operation": "subtract", "value": 6 },
- "4": { "type": "skill", "id": "", "operation": "subtract", "value": 6 }
- },
- "calc": {}
- },
- "effects": [],
- "flags": {},
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700346302548, "modifiedTime": 1700353901250, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "WZnIGd66AfQVWAvL",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "Blendsalz",
+ "type": "effect",
+ "img": "icons/creatures/eyes/humanoid-single-blind.webp",
+ "system": {
+ "description": "MYS S. 44
",
+ "equippable": false,
+ "equipped": true,
+ "duration": { "time": 1, "unit": "round" },
+ "value": 0,
+ "magic": false,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": {
+ "type": "stat",
+ "id": "defenseBonus",
+ "operation": "subtract",
+ "value": 6
+ },
+ "1": {
+ "type": "stat",
+ "id": "attackBonus",
+ "operation": "subtract",
+ "value": 6
+ },
+ "2": {
+ "type": "stat",
+ "id": "brawl",
+ "operation": "subtract",
+ "value": 6
+ },
+ "3": {
+ "type": "stat",
+ "id": "spellCasting",
+ "operation": "subtract",
+ "value": 6
+ },
+ "4": { "type": "skill", "id": "", "operation": "subtract", "value": 6 }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {},
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1700346302548,
+ "modifiedTime": 1700353901250,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "WZnIGd66AfQVWAvL",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/items/zauberwirkungen/Bärenwut.json b/packs/items/zauberwirkungen/Bärenwut.json
index d022547..7e77e34 100644
--- a/packs/items/zauberwirkungen/Bärenwut.json
+++ b/packs/items/zauberwirkungen/Bärenwut.json
@@ -1,23 +1,41 @@
{
- "name": "Bärenwut",
- "type": "effect",
- "img": "icons/magic/lightning/fist-unarmed-strike-blue-green.webp",
- "system": {
- "description": "ARK S. 144
",
- "equippable": false,
- "equipped": true,
- "duration": { "time": 12, "unit": "round" },
- "value": 0,
- "magic": true,
- "rolls": { "formulas": {}, "output": "" },
- "mods": { "0": { "type": "attribute", "id": "st", "operation": "add100", "value": 30 } },
- "calc": {}
- },
- "effects": [],
- "flags": { "core": { "sourceId": "Compendium.midgard5.zauberwirkungen.6bq4dm9ak5YDp9KV" } },
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1677858414297, "modifiedTime": 1700353901242, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "6bq4dm9ak5YDp9KV",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "Bärenwut",
+ "type": "effect",
+ "img": "icons/magic/lightning/fist-unarmed-strike-blue-green.webp",
+ "system": {
+ "description": "ARK S. 144
",
+ "equippable": false,
+ "equipped": true,
+ "duration": { "time": 12, "unit": "round" },
+ "value": 0,
+ "magic": true,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": {
+ "type": "attribute",
+ "id": "st",
+ "operation": "add100",
+ "value": 30
+ }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {
+ "core": {
+ "sourceId": "Compendium.midgard5.zauberwirkungen.6bq4dm9ak5YDp9KV"
+ }
+ },
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1677858414297,
+ "modifiedTime": 1700353901242,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "6bq4dm9ak5YDp9KV",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/items/zauberwirkungen/DerReimderEntkräftung.json b/packs/items/zauberwirkungen/DerReimderEntkräftung.json
index a205e06..cd2f6df 100644
--- a/packs/items/zauberwirkungen/DerReimderEntkräftung.json
+++ b/packs/items/zauberwirkungen/DerReimderEntkräftung.json
@@ -1,23 +1,37 @@
{
- "name": "Der Reim der Entkräftung",
- "type": "effect",
- "img": "icons/magic/unholy/hand-marked-pink.webp",
- "system": {
- "description": "ARS S. 133
",
- "equippable": false,
- "equipped": true,
- "duration": { "time": 12, "unit": "round" },
- "value": 0,
- "magic": false,
- "rolls": { "formulas": {}, "output": "" },
- "mods": { "0": { "type": "stat", "id": "resistanceBody", "operation": "subtract", "value": 2 } },
- "calc": {}
- },
- "effects": [],
- "flags": {},
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700353265928, "modifiedTime": 1700353901251, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "jMajisHSdFrctHf4",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "Der Reim der Entkräftung",
+ "type": "effect",
+ "img": "icons/magic/unholy/hand-marked-pink.webp",
+ "system": {
+ "description": "ARS S. 133
",
+ "equippable": false,
+ "equipped": true,
+ "duration": { "time": 12, "unit": "round" },
+ "value": 0,
+ "magic": false,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": {
+ "type": "stat",
+ "id": "resistanceBody",
+ "operation": "subtract",
+ "value": 2
+ }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {},
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1700353265928,
+ "modifiedTime": 1700353901251,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "jMajisHSdFrctHf4",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/items/zauberwirkungen/DerReimdesFlinkfusses.json b/packs/items/zauberwirkungen/DerReimdesFlinkfusses.json
index cdabcbf..ec76031 100644
--- a/packs/items/zauberwirkungen/DerReimdesFlinkfusses.json
+++ b/packs/items/zauberwirkungen/DerReimdesFlinkfusses.json
@@ -1,23 +1,32 @@
{
- "name": "Der Reim des Flinkfusses",
- "type": "effect",
- "img": "icons/skills/movement/feet-winged-boots-brown.webp",
- "system": {
- "description": "ARS S. 133
",
- "equippable": false,
- "equipped": true,
- "duration": { "time": 60, "unit": "round" },
- "value": 0,
- "magic": false,
- "rolls": { "formulas": {}, "output": "" },
- "mods": { "0": { "type": "stat", "id": "movement", "operation": "add", "value": 4 } },
- "calc": {}
- },
- "effects": [],
- "flags": {},
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700353356476, "modifiedTime": 1700353901251, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "hslkD4zujroa6Frc",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "Der Reim des Flinkfusses",
+ "type": "effect",
+ "img": "icons/skills/movement/feet-winged-boots-brown.webp",
+ "system": {
+ "description": "ARS S. 133
",
+ "equippable": false,
+ "equipped": true,
+ "duration": { "time": 60, "unit": "round" },
+ "value": 0,
+ "magic": false,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": { "type": "stat", "id": "movement", "operation": "add", "value": 4 }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {},
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1700353356476,
+ "modifiedTime": 1700353901251,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "hslkD4zujroa6Frc",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/items/zauberwirkungen/DerVersderGeistesgegenwart.json b/packs/items/zauberwirkungen/DerVersderGeistesgegenwart.json
index a3270ea..3e8bdd8 100644
--- a/packs/items/zauberwirkungen/DerVersderGeistesgegenwart.json
+++ b/packs/items/zauberwirkungen/DerVersderGeistesgegenwart.json
@@ -1,23 +1,43 @@
{
- "name": "Der Vers der Geistesgegenwart",
- "type": "effect",
- "img": "icons/magic/perception/hand-eye-fire-blue.webp",
- "system": {
- "description": "ARS S. 135
",
- "equippable": false,
- "equipped": true,
- "duration": { "time": 60, "unit": "round" },
- "value": 0,
- "magic": false,
- "rolls": { "formulas": {}, "output": "" },
- "mods": { "0": { "type": "stat", "id": "defenseBonus", "operation": "add", "value": 1 }, "1": { "type": "attribute", "id": "gw", "operation": "add100", "value": 20 } },
- "calc": {}
- },
- "effects": [],
- "flags": {},
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700353476921, "modifiedTime": 1700353901251, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "0iuDnaJXeHLDbhEj",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "Der Vers der Geistesgegenwart",
+ "type": "effect",
+ "img": "icons/magic/perception/hand-eye-fire-blue.webp",
+ "system": {
+ "description": "ARS S. 135
",
+ "equippable": false,
+ "equipped": true,
+ "duration": { "time": 60, "unit": "round" },
+ "value": 0,
+ "magic": false,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": {
+ "type": "stat",
+ "id": "defenseBonus",
+ "operation": "add",
+ "value": 1
+ },
+ "1": {
+ "type": "attribute",
+ "id": "gw",
+ "operation": "add100",
+ "value": 20
+ }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {},
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1700353476921,
+ "modifiedTime": 1700353901251,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "0iuDnaJXeHLDbhEj",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/items/zauberwirkungen/DerVersdesMutmachens.json b/packs/items/zauberwirkungen/DerVersdesMutmachens.json
index a8d93fe..4e144ed 100644
--- a/packs/items/zauberwirkungen/DerVersdesMutmachens.json
+++ b/packs/items/zauberwirkungen/DerVersdesMutmachens.json
@@ -1,23 +1,43 @@
{
- "name": "Der Vers des Mutmachens",
- "type": "effect",
- "img": "icons/magic/defensive/illusion-evasion-echo-purple.webp",
- "system": {
- "description": "ARS S. 136
",
- "equippable": false,
- "equipped": true,
- "duration": { "time": 60, "unit": "round" },
- "value": 0,
- "magic": false,
- "rolls": { "formulas": {}, "output": "" },
- "mods": { "0": { "type": "stat", "id": "defenseBonus", "operation": "add", "value": 1 }, "1": { "type": "stat", "id": "attackBonus", "operation": "add", "value": 1 } },
- "calc": {}
- },
- "effects": [],
- "flags": {},
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700353548568, "modifiedTime": 1700353901251, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "ALqoejHCzvBEMJPT",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "Der Vers des Mutmachens",
+ "type": "effect",
+ "img": "icons/magic/defensive/illusion-evasion-echo-purple.webp",
+ "system": {
+ "description": "ARS S. 136
",
+ "equippable": false,
+ "equipped": true,
+ "duration": { "time": 60, "unit": "round" },
+ "value": 0,
+ "magic": false,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": {
+ "type": "stat",
+ "id": "defenseBonus",
+ "operation": "add",
+ "value": 1
+ },
+ "1": {
+ "type": "stat",
+ "id": "attackBonus",
+ "operation": "add",
+ "value": 1
+ }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {},
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1700353548568,
+ "modifiedTime": 1700353901251,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "ALqoejHCzvBEMJPT",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/items/zauberwirkungen/DerVersdesTrotzes.json b/packs/items/zauberwirkungen/DerVersdesTrotzes.json
index cf97cc3..70e2959 100644
--- a/packs/items/zauberwirkungen/DerVersdesTrotzes.json
+++ b/packs/items/zauberwirkungen/DerVersdesTrotzes.json
@@ -1,27 +1,53 @@
{
- "name": "Der Vers des Trotzes",
- "type": "effect",
- "img": "icons/magic/unholy/hand-weapon-glow-black-green.webp",
- "system": {
- "description": "ARS S. 137
",
- "equippable": false,
- "equipped": true,
- "duration": { "time": 12, "unit": "round" },
- "value": 0,
- "magic": true,
- "rolls": { "formulas": {}, "output": "" },
- "mods": {
- "0": { "type": "stat", "id": "defenseBonus", "operation": "subtract", "value": 2 },
- "1": { "type": "stat", "id": "attackBonus", "operation": "add", "value": 2 },
- "2": { "type": "stat", "id": "damageBonus", "operation": "add", "value": 1 }
- },
- "calc": {}
- },
- "effects": [],
- "flags": { "core": { "sourceId": "Compendium.midgard5.zauberwirkungen.izugfahUnOBnxIWL" } },
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1677858754955, "modifiedTime": 1700353901252, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "oz5RppKemIaoTlRE",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "Der Vers des Trotzes",
+ "type": "effect",
+ "img": "icons/magic/unholy/hand-weapon-glow-black-green.webp",
+ "system": {
+ "description": "ARS S. 137
",
+ "equippable": false,
+ "equipped": true,
+ "duration": { "time": 12, "unit": "round" },
+ "value": 0,
+ "magic": true,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": {
+ "type": "stat",
+ "id": "defenseBonus",
+ "operation": "subtract",
+ "value": 2
+ },
+ "1": {
+ "type": "stat",
+ "id": "attackBonus",
+ "operation": "add",
+ "value": 2
+ },
+ "2": {
+ "type": "stat",
+ "id": "damageBonus",
+ "operation": "add",
+ "value": 1
+ }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {
+ "core": {
+ "sourceId": "Compendium.midgard5.zauberwirkungen.izugfahUnOBnxIWL"
+ }
+ },
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1677858754955,
+ "modifiedTime": 1700353901252,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "oz5RppKemIaoTlRE",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/items/zauberwirkungen/DerVersdesstählernenLeibes.json b/packs/items/zauberwirkungen/DerVersdesstählernenLeibes.json
index 98391f1..ff026fd 100644
--- a/packs/items/zauberwirkungen/DerVersdesstählernenLeibes.json
+++ b/packs/items/zauberwirkungen/DerVersdesstählernenLeibes.json
@@ -1,23 +1,43 @@
{
- "name": "Der Vers des stählernen Leibes",
- "type": "effect",
- "img": "icons/magic/control/buff-strength-muscle-damage-orange.webp",
- "system": {
- "description": "ARS S. 137
",
- "equippable": false,
- "equipped": true,
- "duration": { "time": 12, "unit": "round" },
- "value": 0,
- "magic": false,
- "rolls": { "formulas": {}, "output": "" },
- "mods": { "0": { "type": "stat", "id": "resistanceBody", "operation": "add", "value": 1 }, "1": { "type": "attribute", "id": "ko", "operation": "add100", "value": 10 } },
- "calc": {}
- },
- "effects": [],
- "flags": {},
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700353612923, "modifiedTime": 1700353901251, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "xtRudTpkcngGZSF3",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "Der Vers des stählernen Leibes",
+ "type": "effect",
+ "img": "icons/magic/control/buff-strength-muscle-damage-orange.webp",
+ "system": {
+ "description": "ARS S. 137
",
+ "equippable": false,
+ "equipped": true,
+ "duration": { "time": 12, "unit": "round" },
+ "value": 0,
+ "magic": false,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": {
+ "type": "stat",
+ "id": "resistanceBody",
+ "operation": "add",
+ "value": 1
+ },
+ "1": {
+ "type": "attribute",
+ "id": "ko",
+ "operation": "add100",
+ "value": 10
+ }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {},
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1700353612923,
+ "modifiedTime": 1700353901251,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "xtRudTpkcngGZSF3",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/items/zauberwirkungen/DerVersdesstählernenWillens.json b/packs/items/zauberwirkungen/DerVersdesstählernenWillens.json
index 1245bcd..329df41 100644
--- a/packs/items/zauberwirkungen/DerVersdesstählernenWillens.json
+++ b/packs/items/zauberwirkungen/DerVersdesstählernenWillens.json
@@ -1,23 +1,43 @@
{
- "name": "Der Vers des stählernen Willens",
- "type": "effect",
- "img": "icons/magic/perception/eye-ringed-glow-angry-red.webp",
- "system": {
- "description": "ARS S. 137
",
- "equippable": false,
- "equipped": true,
- "duration": { "time": 12, "unit": "round" },
- "value": 0,
- "magic": false,
- "rolls": { "formulas": {}, "output": "" },
- "mods": { "0": { "type": "stat", "id": "resistanceMind", "operation": "add", "value": 1 }, "1": { "type": "attribute", "id": "wk", "operation": "add100", "value": 10 } },
- "calc": {}
- },
- "effects": [],
- "flags": {},
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700353612923, "modifiedTime": 1700353901251, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "ZbKVOWRjoKgN9jTG",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "Der Vers des stählernen Willens",
+ "type": "effect",
+ "img": "icons/magic/perception/eye-ringed-glow-angry-red.webp",
+ "system": {
+ "description": "ARS S. 137
",
+ "equippable": false,
+ "equipped": true,
+ "duration": { "time": 12, "unit": "round" },
+ "value": 0,
+ "magic": false,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": {
+ "type": "stat",
+ "id": "resistanceMind",
+ "operation": "add",
+ "value": 1
+ },
+ "1": {
+ "type": "attribute",
+ "id": "wk",
+ "operation": "add100",
+ "value": 10
+ }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {},
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1700353612923,
+ "modifiedTime": 1700353901251,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "ZbKVOWRjoKgN9jTG",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/items/zauberwirkungen/DerverunsicherndeGesang.json b/packs/items/zauberwirkungen/DerverunsicherndeGesang.json
index fa967e5..7e3f214 100644
--- a/packs/items/zauberwirkungen/DerverunsicherndeGesang.json
+++ b/packs/items/zauberwirkungen/DerverunsicherndeGesang.json
@@ -1,23 +1,42 @@
{
- "name": "Der verunsichernde Gesang",
- "type": "effect",
- "img": "icons/magic/sonic/scream-wail-shout-teal.webp",
- "system": {
- "description": "ARK S. 170
",
- "equippable": false,
- "equipped": true,
- "duration": { "time": 6, "unit": "round" },
- "value": 0,
- "magic": true,
- "rolls": { "formulas": {}, "output": "" },
- "mods": { "0": { "type": "attribute", "id": "", "operation": "subtract", "value": 5 }, "1": { "type": "skill", "id": "", "operation": "subtract", "value": 1 } },
- "calc": {}
- },
- "effects": [],
- "flags": { "core": { "sourceId": "Compendium.midgard5.zauberwirkungen.lEqFJcDY9QCh4Gmd" } },
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1677860239164, "modifiedTime": 1700353901250, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "KneY9z7Jdjh1xWZb",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "Der verunsichernde Gesang",
+ "type": "effect",
+ "img": "icons/magic/sonic/scream-wail-shout-teal.webp",
+ "system": {
+ "description": "ARK S. 170
",
+ "equippable": false,
+ "equipped": true,
+ "duration": { "time": 6, "unit": "round" },
+ "value": 0,
+ "magic": true,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": {
+ "type": "attribute",
+ "id": "",
+ "operation": "subtract",
+ "value": 5
+ },
+ "1": { "type": "skill", "id": "", "operation": "subtract", "value": 1 }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {
+ "core": {
+ "sourceId": "Compendium.midgard5.zauberwirkungen.lEqFJcDY9QCh4Gmd"
+ }
+ },
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1677860239164,
+ "modifiedTime": 1700353901250,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "KneY9z7Jdjh1xWZb",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/items/zauberwirkungen/DerverunsicherndeVers.json b/packs/items/zauberwirkungen/DerverunsicherndeVers.json
index 7b66866..c909c48 100644
--- a/packs/items/zauberwirkungen/DerverunsicherndeVers.json
+++ b/packs/items/zauberwirkungen/DerverunsicherndeVers.json
@@ -1,23 +1,42 @@
{
- "name": "Der verunsichernde Gesang",
- "type": "effect",
- "img": "icons/magic/sonic/scream-wail-shout-teal.webp",
- "system": {
- "description": "ARK S. 170
",
- "equippable": false,
- "equipped": true,
- "duration": { "time": 60, "unit": "round" },
- "value": 0,
- "magic": true,
- "rolls": { "formulas": {}, "output": "" },
- "mods": { "0": { "type": "attribute", "id": "", "operation": "subtract", "value": 5 }, "1": { "type": "skill", "id": "", "operation": "subtract", "value": 1 } },
- "calc": {}
- },
- "effects": [],
- "flags": { "core": { "sourceId": "Compendium.midgard5.zauberwirkungen.lEqFJcDY9QCh4Gmd" } },
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1677860239164, "modifiedTime": 1700353901250, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "KneY9z7Jdjh1xWZc",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "Der verunsichernde Gesang",
+ "type": "effect",
+ "img": "icons/magic/sonic/scream-wail-shout-teal.webp",
+ "system": {
+ "description": "ARK S. 170
",
+ "equippable": false,
+ "equipped": true,
+ "duration": { "time": 60, "unit": "round" },
+ "value": 0,
+ "magic": true,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": {
+ "type": "attribute",
+ "id": "",
+ "operation": "subtract",
+ "value": 5
+ },
+ "1": { "type": "skill", "id": "", "operation": "subtract", "value": 1 }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {
+ "core": {
+ "sourceId": "Compendium.midgard5.zauberwirkungen.lEqFJcDY9QCh4Gmd"
+ }
+ },
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1677860239164,
+ "modifiedTime": 1700353901250,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "KneY9z7Jdjh1xWZc",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/items/zauberwirkungen/DieStählendeBallade.json b/packs/items/zauberwirkungen/DieStählendeBallade.json
index a6c4035..659ddd9 100644
--- a/packs/items/zauberwirkungen/DieStählendeBallade.json
+++ b/packs/items/zauberwirkungen/DieStählendeBallade.json
@@ -1,23 +1,43 @@
{
- "name": "Die Stählende Ballade",
- "type": "effect",
- "img": "icons/tools/instruments/drum-standing-glowing-green.webp",
- "system": {
- "description": "ARK S. 171
",
- "equippable": false,
- "equipped": true,
- "duration": { "time": 6, "unit": "round" },
- "value": 0,
- "magic": false,
- "rolls": { "formulas": {}, "output": "" },
- "mods": { "0": { "type": "stat", "id": "resistanceMind", "operation": "add", "value": 2 }, "1": { "type": "attribute", "id": "wk", "operation": "add100", "value": 20 } },
- "calc": {}
- },
- "effects": [],
- "flags": {},
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700351409498, "modifiedTime": 1700353901249, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "a6zZzNXwXBc5FT0s",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "Die Stählende Ballade",
+ "type": "effect",
+ "img": "icons/tools/instruments/drum-standing-glowing-green.webp",
+ "system": {
+ "description": "ARK S. 171
",
+ "equippable": false,
+ "equipped": true,
+ "duration": { "time": 6, "unit": "round" },
+ "value": 0,
+ "magic": false,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": {
+ "type": "stat",
+ "id": "resistanceMind",
+ "operation": "add",
+ "value": 2
+ },
+ "1": {
+ "type": "attribute",
+ "id": "wk",
+ "operation": "add100",
+ "value": 20
+ }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {},
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1700351409498,
+ "modifiedTime": 1700353901249,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "a6zZzNXwXBc5FT0s",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/items/zauberwirkungen/DieanfeuerndeBallade.json b/packs/items/zauberwirkungen/DieanfeuerndeBallade.json
index 6d25695..6761fcf 100644
--- a/packs/items/zauberwirkungen/DieanfeuerndeBallade.json
+++ b/packs/items/zauberwirkungen/DieanfeuerndeBallade.json
@@ -1,27 +1,39 @@
{
- "name": "Die anfeuernde Ballade",
- "type": "effect",
- "img": "icons/tools/instruments/horn-red-brown.webp",
- "system": {
- "description": "ARK S. 171 Auf alle Bewegungsfertigkeiten anwendbar!
",
- "equippable": false,
- "equipped": true,
- "duration": { "time": 6, "unit": "round" },
- "value": 0,
- "magic": false,
- "rolls": { "formulas": {}, "output": "" },
- "mods": {
- "0": { "type": "attribute", "id": "st", "operation": "add100", "value": 40 },
- "1": { "type": "stat", "id": "movement", "operation": "add", "value": 4 },
- "2": { "type": "skill", "id": "", "operation": "add", "value": 2 }
- },
- "calc": {}
- },
- "effects": [],
- "flags": {},
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700351500767, "modifiedTime": 1700353901249, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "TOFtzexKcQctAYLj",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "Die anfeuernde Ballade",
+ "type": "effect",
+ "img": "icons/tools/instruments/horn-red-brown.webp",
+ "system": {
+ "description": "ARK S. 171 Auf alle Bewegungsfertigkeiten anwendbar!
",
+ "equippable": false,
+ "equipped": true,
+ "duration": { "time": 6, "unit": "round" },
+ "value": 0,
+ "magic": false,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": {
+ "type": "attribute",
+ "id": "st",
+ "operation": "add100",
+ "value": 40
+ },
+ "1": { "type": "stat", "id": "movement", "operation": "add", "value": 4 },
+ "2": { "type": "skill", "id": "", "operation": "add", "value": 2 }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {},
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1700351500767,
+ "modifiedTime": 1700353901249,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "TOFtzexKcQctAYLj",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/items/zauberwirkungen/Eisenhaut.json b/packs/items/zauberwirkungen/Eisenhaut.json
index d54d353..4199cd9 100644
--- a/packs/items/zauberwirkungen/Eisenhaut.json
+++ b/packs/items/zauberwirkungen/Eisenhaut.json
@@ -1 +1,51 @@
-{"name": "Eisenhaut", "effect": "armor", "img": "icons/equipment/chest/breastplate-helmet-metal.webp", "system": {"description": "ARK S. 74
", "stats": { "damageBonus": 0, "attackBonus": 0, "defenseBonus": 0, "movementBonus": 0, "resistanceMind": 0, "resistanceBody": 0, "spellBonus": 0}, "equippable": false, "duration": { "time": 12, "unit": "round" }, "equipped": true, "attributeMod": {"st": 0, "gs": 0, "gw": 0, "ko": 0, "in": 0, "zt": 0, "au": 0, "pa": 0, "wk": 0}, "value": 0, "magic": false, "lpProtection": 5, "apProtection": 5, "rolls": {"formulas": {}, "output": ""}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700346498452, "modifiedTime": 1700353901245, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "RiUYfceWEkRkKm0h", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
\ No newline at end of file
+{
+ "name": "Eisenhaut",
+ "effect": "armor",
+ "img": "icons/equipment/chest/breastplate-helmet-metal.webp",
+ "system": {
+ "description": "ARK S. 74
",
+ "stats": {
+ "damageBonus": 0,
+ "attackBonus": 0,
+ "defenseBonus": 0,
+ "movementBonus": 0,
+ "resistanceMind": 0,
+ "resistanceBody": 0,
+ "spellBonus": 0
+ },
+ "equippable": false,
+ "duration": { "time": 12, "unit": "round" },
+ "equipped": true,
+ "attributeMod": {
+ "st": 0,
+ "gs": 0,
+ "gw": 0,
+ "ko": 0,
+ "in": 0,
+ "zt": 0,
+ "au": 0,
+ "pa": 0,
+ "wk": 0
+ },
+ "value": 0,
+ "magic": false,
+ "lpProtection": 5,
+ "apProtection": 5,
+ "rolls": { "formulas": {}, "output": "" },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {},
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1700346498452,
+ "modifiedTime": 1700353901245,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "RiUYfceWEkRkKm0h",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+}
diff --git a/packs/items/zauberwirkungen/Elfenklinge.json b/packs/items/zauberwirkungen/Elfenklinge.json
index efb9dd9..5f529d1 100644
--- a/packs/items/zauberwirkungen/Elfenklinge.json
+++ b/packs/items/zauberwirkungen/Elfenklinge.json
@@ -1,23 +1,43 @@
{
- "name": "Elfenklinge",
- "type": "effect",
- "img": "icons/weapons/swords/sword-hilt-steel-green.webp",
- "system": {
- "description": "ARK S. 150
",
- "equippable": false,
- "equipped": true,
- "duration": { "time": 60, "unit": "round" },
- "value": 0,
- "magic": false,
- "rolls": { "formulas": {}, "output": "" },
- "mods": { "0": { "type": "stat", "id": "attackBonus", "operation": "add", "value": 1 }, "1": { "type": "stat", "id": "damageBonus", "operation": "add", "value": 1 } },
- "calc": {}
- },
- "effects": [],
- "flags": {},
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700349264379, "modifiedTime": 1700353901247, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "mUvQuIdIVDhPwp1M",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "Elfenklinge",
+ "type": "effect",
+ "img": "icons/weapons/swords/sword-hilt-steel-green.webp",
+ "system": {
+ "description": "ARK S. 150
",
+ "equippable": false,
+ "equipped": true,
+ "duration": { "time": 60, "unit": "round" },
+ "value": 0,
+ "magic": false,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": {
+ "type": "stat",
+ "id": "attackBonus",
+ "operation": "add",
+ "value": 1
+ },
+ "1": {
+ "type": "stat",
+ "id": "damageBonus",
+ "operation": "add",
+ "value": 1
+ }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {},
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1700349264379,
+ "modifiedTime": 1700353901247,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "mUvQuIdIVDhPwp1M",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/items/zauberwirkungen/Erdfessel.json b/packs/items/zauberwirkungen/Erdfessel.json
index ff505ea..a08a72e 100644
--- a/packs/items/zauberwirkungen/Erdfessel.json
+++ b/packs/items/zauberwirkungen/Erdfessel.json
@@ -1,23 +1,37 @@
{
- "name": "Erdfessel",
- "type": "effect",
- "img": "icons/commodities/materials/slime-white.webp",
- "system": {
- "description": "ARK S. 76
",
- "equippable": false,
- "equipped": true,
- "duration": { "time": 12, "unit": "round" },
- "value": 0,
- "magic": false,
- "rolls": { "formulas": {}, "output": "" },
- "mods": { "0": { "type": "stat", "id": "defenseBonus", "operation": "subtract", "value": 2 } },
- "calc": {}
- },
- "effects": [],
- "flags": {},
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700346582878, "modifiedTime": 1700353901245, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "ADmM17YSyW4Aoit8",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "Erdfessel",
+ "type": "effect",
+ "img": "icons/commodities/materials/slime-white.webp",
+ "system": {
+ "description": "ARK S. 76
",
+ "equippable": false,
+ "equipped": true,
+ "duration": { "time": 12, "unit": "round" },
+ "value": 0,
+ "magic": false,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": {
+ "type": "stat",
+ "id": "defenseBonus",
+ "operation": "subtract",
+ "value": 2
+ }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {},
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1700346582878,
+ "modifiedTime": 1700353901245,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "ADmM17YSyW4Aoit8",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/items/zauberwirkungen/Erstarren.json b/packs/items/zauberwirkungen/Erstarren.json
index 3b797eb..44a4b6f 100644
--- a/packs/items/zauberwirkungen/Erstarren.json
+++ b/packs/items/zauberwirkungen/Erstarren.json
@@ -1,28 +1,50 @@
{
- "name": "Erstarren",
- "type": "effect",
- "img": "icons/magic/unholy/strike-body-life-soul-purple.webp",
- "system": {
- "description": "DUM S. 83
",
- "equippable": false,
- "equipped": true,
- "duration": { "time": 999, "unit": "round" },
- "value": 0,
- "magic": false,
- "rolls": { "formulas": {}, "output": "" },
- "mods": {
- "0": { "type": "stat", "id": "movement", "operation": "subtract", "value": 4 },
- "1": { "type": "stat", "id": "defenseBonus", "operation": "subtract", "value": 4 },
- "2": { "type": "stat", "id": "attackBonus", "operation": "subtract", "value": 4 },
- "3": { "type": "skill", "id": "", "operation": "subtract", "value": 4 }
- },
- "calc": {}
- },
- "effects": [],
- "flags": {},
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700352932754, "modifiedTime": 1700353901251, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "FzP3nqQUC181togj",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "Erstarren",
+ "type": "effect",
+ "img": "icons/magic/unholy/strike-body-life-soul-purple.webp",
+ "system": {
+ "description": "DUM S. 83
",
+ "equippable": false,
+ "equipped": true,
+ "duration": { "time": 999, "unit": "round" },
+ "value": 0,
+ "magic": false,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": {
+ "type": "stat",
+ "id": "movement",
+ "operation": "subtract",
+ "value": 4
+ },
+ "1": {
+ "type": "stat",
+ "id": "defenseBonus",
+ "operation": "subtract",
+ "value": 4
+ },
+ "2": {
+ "type": "stat",
+ "id": "attackBonus",
+ "operation": "subtract",
+ "value": 4
+ },
+ "3": { "type": "skill", "id": "", "operation": "subtract", "value": 4 }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {},
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1700352932754,
+ "modifiedTime": 1700353901251,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "FzP3nqQUC181togj",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/items/zauberwirkungen/Flammenklinge.json b/packs/items/zauberwirkungen/Flammenklinge.json
index 0aed4a1..38a37b1 100644
--- a/packs/items/zauberwirkungen/Flammenklinge.json
+++ b/packs/items/zauberwirkungen/Flammenklinge.json
@@ -1,23 +1,37 @@
{
- "name": "Flammenklinge",
- "type": "effect",
- "img": "icons/weapons/swords/greatsword-evil-green.webp",
- "system": {
- "description": "ARK S. 85
",
- "equippable": false,
- "equipped": true,
- "duration": { "time": 60, "unit": "round" },
- "value": 0,
- "magic": false,
- "rolls": { "formulas": {}, "output": "" },
- "mods": { "0": { "type": "stat", "id": "damageBonus", "operation": "add", "value": 2 } },
- "calc": {}
- },
- "effects": [],
- "flags": {},
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700346728220, "modifiedTime": 1700353901245, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "UsCjdczviIIjDFTd",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "Flammenklinge",
+ "type": "effect",
+ "img": "icons/weapons/swords/greatsword-evil-green.webp",
+ "system": {
+ "description": "ARK S. 85
",
+ "equippable": false,
+ "equipped": true,
+ "duration": { "time": 60, "unit": "round" },
+ "value": 0,
+ "magic": false,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": {
+ "type": "stat",
+ "id": "damageBonus",
+ "operation": "add",
+ "value": 2
+ }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {},
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1700346728220,
+ "modifiedTime": 1700353901245,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "UsCjdczviIIjDFTd",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/items/zauberwirkungen/Flohpulver.json b/packs/items/zauberwirkungen/Flohpulver.json
index a8e1f8a..f84dc53 100644
--- a/packs/items/zauberwirkungen/Flohpulver.json
+++ b/packs/items/zauberwirkungen/Flohpulver.json
@@ -1,23 +1,37 @@
{
- "name": "Flohpulver",
- "type": "effect",
- "img": "icons/creatures/invertebrates/ant-strength-green.webp",
- "system": {
- "description": "ARK S. 175
",
- "equippable": false,
- "equipped": true,
- "duration": { "time": 1, "unit": "hour" },
- "value": 0,
- "magic": false,
- "rolls": { "formulas": {}, "output": "" },
- "mods": { "0": { "type": "skill", "id": "midgard5.gelaendelauf", "operation": "add", "value": 4 } },
- "calc": {}
- },
- "effects": [],
- "flags": {},
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700349693679, "modifiedTime": 1700353901248, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "TRgAdyTpNX6xFM7f",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "Flohpulver",
+ "type": "effect",
+ "img": "icons/creatures/invertebrates/ant-strength-green.webp",
+ "system": {
+ "description": "ARK S. 175
",
+ "equippable": false,
+ "equipped": true,
+ "duration": { "time": 1, "unit": "hour" },
+ "value": 0,
+ "magic": false,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": {
+ "type": "skill",
+ "id": "midgard5.gelaendelauf",
+ "operation": "add",
+ "value": 4
+ }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {},
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1700349693679,
+ "modifiedTime": 1700353901248,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "TRgAdyTpNX6xFM7f",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/items/zauberwirkungen/Funkenregen.json b/packs/items/zauberwirkungen/Funkenregen.json
index 95edf92..c1f0205 100644
--- a/packs/items/zauberwirkungen/Funkenregen.json
+++ b/packs/items/zauberwirkungen/Funkenregen.json
@@ -1,23 +1,44 @@
{
- "name": "Funkenregen",
- "type": "effect",
- "img": "icons/magic/fire/projectile-meteor-salvo-light-red.webp",
- "system": {
- "description": "ARK S. 87
",
- "equippable": false,
- "equipped": true,
- "duration": { "time": 6, "unit": "round" },
- "value": 0,
- "magic": false,
- "rolls": { "formulas": {}, "output": "" },
- "mods": { "0": { "type": "stat", "id": "defenseBonus", "operation": "subtract", "value": 4 }, "1": { "type": "stat", "id": "attackBonus", "operation": "subtract", "value": -4 }, "2": { "type": "stat", "id": "movement", "operation": "fxed", "value": 6 } },
- "calc": {}
- },
- "effects": [],
- "flags": {},
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700346946708, "modifiedTime": 1700353901245, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "aJp9FC3IHx1nr8AX",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "Funkenregen",
+ "type": "effect",
+ "img": "icons/magic/fire/projectile-meteor-salvo-light-red.webp",
+ "system": {
+ "description": "ARK S. 87
",
+ "equippable": false,
+ "equipped": true,
+ "duration": { "time": 6, "unit": "round" },
+ "value": 0,
+ "magic": false,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": {
+ "type": "stat",
+ "id": "defenseBonus",
+ "operation": "subtract",
+ "value": 4
+ },
+ "1": {
+ "type": "stat",
+ "id": "attackBonus",
+ "operation": "subtract",
+ "value": -4
+ },
+ "2": { "type": "stat", "id": "movement", "operation": "fxed", "value": 6 }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {},
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1700346946708,
+ "modifiedTime": 1700353901245,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "aJp9FC3IHx1nr8AX",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/items/zauberwirkungen/GoldeneWehr.json b/packs/items/zauberwirkungen/GoldeneWehr.json
index bdf7d46..8e05f63 100644
--- a/packs/items/zauberwirkungen/GoldeneWehr.json
+++ b/packs/items/zauberwirkungen/GoldeneWehr.json
@@ -1,23 +1,37 @@
{
- "name": "Goldene Wehr",
- "type": "effect",
- "img": "icons/weapons/hammers/hammer-double-glowing-yellow.webp",
- "system": {
- "description": "ARK S. 141
",
- "equippable": false,
- "equipped": true,
- "duration": { "time": 60, "unit": "round" },
- "value": 0,
- "magic": false,
- "rolls": { "formulas": {}, "output": "" },
- "mods": { "0": { "type": "stat", "id": "damageBonus", "operation": "add", "value": 2 } },
- "calc": {}
- },
- "effects": [],
- "flags": {},
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700348650968, "modifiedTime": 1700353901247, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "LnjP5kqEHG20r6sB",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "Goldene Wehr",
+ "type": "effect",
+ "img": "icons/weapons/hammers/hammer-double-glowing-yellow.webp",
+ "system": {
+ "description": "ARK S. 141
",
+ "equippable": false,
+ "equipped": true,
+ "duration": { "time": 60, "unit": "round" },
+ "value": 0,
+ "magic": false,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": {
+ "type": "stat",
+ "id": "damageBonus",
+ "operation": "add",
+ "value": 2
+ }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {},
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1700348650968,
+ "modifiedTime": 1700353901247,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "LnjP5kqEHG20r6sB",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/items/zauberwirkungen/GoldenerPanzer.json b/packs/items/zauberwirkungen/GoldenerPanzer.json
index bd2adf1..299d576 100644
--- a/packs/items/zauberwirkungen/GoldenerPanzer.json
+++ b/packs/items/zauberwirkungen/GoldenerPanzer.json
@@ -1 +1,51 @@
-{"name": "Goldener/Strahlender Panzer", "type": "effect", "img": "icons/equipment/chest/breastplate-layered-gilded-orange.webp", "system": {"description": "ARK S. 88
", "stats": {"damageBonus": 0, "attackBonus": 0, "defenseBonus": 0, "movementBonus": 0, "resistanceMind": 0, "resistanceBody": 0, "spellBonus": 0}, "equippable": false, "equipped": true, "duration": { "time": 12, "unit": "round" },"attributeMod": {"st": 0, "gs": 0, "gw": 0, "ko": 0, "in": 0, "zt": 0, "au": 0, "pa": 0, "wk": 0}, "value": 0, "magic": false, "lpProtection": 2, "apProtection": 0, "rolls": {"formulas": {}, "output": ""}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700347046024, "modifiedTime": 1700353901246, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "xql3yvtFlgU0TE8n", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
\ No newline at end of file
+{
+ "name": "Goldener/Strahlender Panzer",
+ "type": "effect",
+ "img": "icons/equipment/chest/breastplate-layered-gilded-orange.webp",
+ "system": {
+ "description": "ARK S. 88
",
+ "stats": {
+ "damageBonus": 0,
+ "attackBonus": 0,
+ "defenseBonus": 0,
+ "movementBonus": 0,
+ "resistanceMind": 0,
+ "resistanceBody": 0,
+ "spellBonus": 0
+ },
+ "equippable": false,
+ "equipped": true,
+ "duration": { "time": 12, "unit": "round" },
+ "attributeMod": {
+ "st": 0,
+ "gs": 0,
+ "gw": 0,
+ "ko": 0,
+ "in": 0,
+ "zt": 0,
+ "au": 0,
+ "pa": 0,
+ "wk": 0
+ },
+ "value": 0,
+ "magic": false,
+ "lpProtection": 2,
+ "apProtection": 0,
+ "rolls": { "formulas": {}, "output": "" },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {},
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1700347046024,
+ "modifiedTime": 1700353901246,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "xql3yvtFlgU0TE8n",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+}
diff --git a/packs/items/zauberwirkungen/Gottesgabe.json b/packs/items/zauberwirkungen/Gottesgabe.json
index bf4b916..43b33e1 100644
--- a/packs/items/zauberwirkungen/Gottesgabe.json
+++ b/packs/items/zauberwirkungen/Gottesgabe.json
@@ -1,38 +1,115 @@
{
- "name": "Gottesgabe",
- "type": "effect",
- "img": "icons/magic/holy/angel-winged-humanoid-blue.webp",
- "system": {
- "description": "ARK S. 143
",
- "equippable": false,
- "equipped": true,
- "duration": { "time": 60, "unit": "round" },
- "value": 0,
- "magic": false,
- "rolls": { "formulas": {}, "output": "" },
- "mods": {
- "0": { "type": "stat", "id": "defenseBonus", "operation": "add", "value": 2 },
- "1": { "type": "stat", "id": "attackBonus", "operation": "add", "value": 2 },
- "2": { "type": "stat", "id": "resistanceMind", "operation": "add", "value": 2 },
- "3": { "type": "stat", "id": "resistanceBody", "operation": "add", "value": 2 },
- "4": { "type": "stat", "id": "poisonResistance", "operation": "add", "value": 10 },
- "5": { "type": "attribute", "id": "st", "operation": "add100", "value": 10 },
- "6": { "type": "attribute", "id": "gw", "operation": "add100", "value": 10 },
- "7": { "type": "attribute", "id": "gs", "operation": "add100", "value": 10 },
- "8": { "type": "attribute", "id": "ko", "operation": "add100", "value": 10 },
- "9": { "type": "attribute", "id": "in", "operation": "add100", "value": 10 },
- "10": { "type": "attribute", "id": "zt", "operation": "add100", "value": 10 },
- "11": { "type": "attribute", "id": "wk", "operation": "add100", "value": 10 },
- "12": { "type": "attribute", "id": "au", "operation": "add100", "value": 10 },
- "13": { "type": "attribute", "id": "pa", "operation": "add100", "value": 10 }
- },
- "calc": {}
- },
- "effects": [],
- "flags": {},
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700348800218, "modifiedTime": 1700353901247, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "aknZ0NraYk1rPyk3",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "Gottesgabe",
+ "type": "effect",
+ "img": "icons/magic/holy/angel-winged-humanoid-blue.webp",
+ "system": {
+ "description": "ARK S. 143
",
+ "equippable": false,
+ "equipped": true,
+ "duration": { "time": 60, "unit": "round" },
+ "value": 0,
+ "magic": false,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": {
+ "type": "stat",
+ "id": "defenseBonus",
+ "operation": "add",
+ "value": 2
+ },
+ "1": {
+ "type": "stat",
+ "id": "attackBonus",
+ "operation": "add",
+ "value": 2
+ },
+ "2": {
+ "type": "stat",
+ "id": "resistanceMind",
+ "operation": "add",
+ "value": 2
+ },
+ "3": {
+ "type": "stat",
+ "id": "resistanceBody",
+ "operation": "add",
+ "value": 2
+ },
+ "4": {
+ "type": "stat",
+ "id": "poisonResistance",
+ "operation": "add",
+ "value": 10
+ },
+ "5": {
+ "type": "attribute",
+ "id": "st",
+ "operation": "add100",
+ "value": 10
+ },
+ "6": {
+ "type": "attribute",
+ "id": "gw",
+ "operation": "add100",
+ "value": 10
+ },
+ "7": {
+ "type": "attribute",
+ "id": "gs",
+ "operation": "add100",
+ "value": 10
+ },
+ "8": {
+ "type": "attribute",
+ "id": "ko",
+ "operation": "add100",
+ "value": 10
+ },
+ "9": {
+ "type": "attribute",
+ "id": "in",
+ "operation": "add100",
+ "value": 10
+ },
+ "10": {
+ "type": "attribute",
+ "id": "zt",
+ "operation": "add100",
+ "value": 10
+ },
+ "11": {
+ "type": "attribute",
+ "id": "wk",
+ "operation": "add100",
+ "value": 10
+ },
+ "12": {
+ "type": "attribute",
+ "id": "au",
+ "operation": "add100",
+ "value": 10
+ },
+ "13": {
+ "type": "attribute",
+ "id": "pa",
+ "operation": "add100",
+ "value": 10
+ }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {},
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1700348800218,
+ "modifiedTime": 1700353901247,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "aknZ0NraYk1rPyk3",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/items/zauberwirkungen/Götterarme.json b/packs/items/zauberwirkungen/Götterarme.json
index fd06c71..639f3dd 100644
--- a/packs/items/zauberwirkungen/Götterarme.json
+++ b/packs/items/zauberwirkungen/Götterarme.json
@@ -1,23 +1,37 @@
{
- "name": "Götterarme",
- "type": "effect",
- "img": "icons/magic/unholy/hands-circle-light-green.webp",
- "system": {
- "description": "RAW S. 105
",
- "equippable": false,
- "equipped": true,
- "duration": { "time": 12, "unit": "round" },
- "value": 0,
- "magic": false,
- "rolls": { "formulas": {}, "output": "" },
- "mods": { "0": { "type": "stat", "id": "defenseBonus", "operation": "add", "value": 2 } },
- "calc": {}
- },
- "effects": [],
- "flags": {},
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700351931956, "modifiedTime": 1700353901250, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "thUAFzfOPGEIs9hO",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "Götterarme",
+ "type": "effect",
+ "img": "icons/magic/unholy/hands-circle-light-green.webp",
+ "system": {
+ "description": "RAW S. 105
",
+ "equippable": false,
+ "equipped": true,
+ "duration": { "time": 12, "unit": "round" },
+ "value": 0,
+ "magic": false,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": {
+ "type": "stat",
+ "id": "defenseBonus",
+ "operation": "add",
+ "value": 2
+ }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {},
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1700351931956,
+ "modifiedTime": 1700353901250,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "thUAFzfOPGEIs9hO",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/items/zauberwirkungen/GöttlicherSchutzvorMagie.json b/packs/items/zauberwirkungen/GöttlicherSchutzvorMagie.json
index 0393066..872b4d5 100644
--- a/packs/items/zauberwirkungen/GöttlicherSchutzvorMagie.json
+++ b/packs/items/zauberwirkungen/GöttlicherSchutzvorMagie.json
@@ -1,23 +1,43 @@
{
- "name": "Göttlicher Schutz vor Magie",
- "type": "effect",
- "img": "icons/magic/holy/barrier-shield-winged-cross.webp",
- "system": {
- "description": "ARK S. 142
",
- "equippable": false,
- "equipped": true,
- "duration": { "time": 1, "unit": "hour" },
- "value": 0,
- "magic": false,
- "rolls": { "formulas": {}, "output": "" },
- "mods": { "0": { "type": "stat", "id": "resistanceMind", "operation": "add", "value": 4 }, "1": { "type": "stat", "id": "resistanceBody", "operation": "add", "value": 4 } },
- "calc": {}
- },
- "effects": [],
- "flags": {},
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700348740869, "modifiedTime": 1700353901247, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "V4Hql7b4wT9XtnGZ",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "Göttlicher Schutz vor Magie",
+ "type": "effect",
+ "img": "icons/magic/holy/barrier-shield-winged-cross.webp",
+ "system": {
+ "description": "ARK S. 142
",
+ "equippable": false,
+ "equipped": true,
+ "duration": { "time": 1, "unit": "hour" },
+ "value": 0,
+ "magic": false,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": {
+ "type": "stat",
+ "id": "resistanceMind",
+ "operation": "add",
+ "value": 4
+ },
+ "1": {
+ "type": "stat",
+ "id": "resistanceBody",
+ "operation": "add",
+ "value": 4
+ }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {},
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1700348740869,
+ "modifiedTime": 1700353901247,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "V4Hql7b4wT9XtnGZ",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/items/zauberwirkungen/HeiligerZorn.json b/packs/items/zauberwirkungen/HeiligerZorn.json
index d0a80e9..eb88dd0 100644
--- a/packs/items/zauberwirkungen/HeiligerZorn.json
+++ b/packs/items/zauberwirkungen/HeiligerZorn.json
@@ -1,23 +1,41 @@
{
- "name": "Heiliger Zorn",
- "type": "effect",
- "img": "icons/magic/lightning/fist-unarmed-strike-blue-green.webp",
- "system": {
- "description": "ARK S. 144
",
- "equippable": false,
- "equipped": true,
- "duration": { "time": 12, "unit": "round" },
- "value": 0,
- "magic": true,
- "rolls": { "formulas": {}, "output": "" },
- "mods": { "0": { "type": "attribute", "id": "st", "operation": "add100", "value": 30 } },
- "calc": {}
- },
- "effects": [],
- "flags": { "core": { "sourceId": "Compendium.midgard5.zauberwirkungen.6bq4dm9ak5YDp9KV" } },
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1677858414297, "modifiedTime": 1700353901249, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "kH7LJwGK99YqV0il",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "Heiliger Zorn",
+ "type": "effect",
+ "img": "icons/magic/lightning/fist-unarmed-strike-blue-green.webp",
+ "system": {
+ "description": "ARK S. 144
",
+ "equippable": false,
+ "equipped": true,
+ "duration": { "time": 12, "unit": "round" },
+ "value": 0,
+ "magic": true,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": {
+ "type": "attribute",
+ "id": "st",
+ "operation": "add100",
+ "value": 30
+ }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {
+ "core": {
+ "sourceId": "Compendium.midgard5.zauberwirkungen.6bq4dm9ak5YDp9KV"
+ }
+ },
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1677858414297,
+ "modifiedTime": 1700353901249,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "kH7LJwGK99YqV0il",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/items/zauberwirkungen/HörenvonFernem.json b/packs/items/zauberwirkungen/HörenvonFernem.json
index 090fba7..10d51a6 100644
--- a/packs/items/zauberwirkungen/HörenvonFernem.json
+++ b/packs/items/zauberwirkungen/HörenvonFernem.json
@@ -1,23 +1,32 @@
{
- "name": "H\u00f6ren von Fernem",
- "type": "effect",
- "img": "icons/magic/air/wind-vortex-swirl-purple.webp",
- "system": {
- "description": "ARK S. 93
",
- "equippable": false,
- "equipped": true,
- "duration": { "time": 60, "unit": "round" },
- "value": 0,
- "magic": false,
- "rolls": { "formulas": {}, "output": "" },
- "mods": { "0": { "type": "skill", "id": "Hören", "operation": "add", "value": 2 } },
- "calc": {}
- },
- "effects": [],
- "flags": {},
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700347174542, "modifiedTime": 1700353901246, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "Fs9eNX3g7pZhBcCj",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "H\u00f6ren von Fernem",
+ "type": "effect",
+ "img": "icons/magic/air/wind-vortex-swirl-purple.webp",
+ "system": {
+ "description": "ARK S. 93
",
+ "equippable": false,
+ "equipped": true,
+ "duration": { "time": 60, "unit": "round" },
+ "value": 0,
+ "magic": false,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": { "type": "skill", "id": "Hören", "operation": "add", "value": 2 }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {},
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1700347174542,
+ "modifiedTime": 1700353901246,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "Fs9eNX3g7pZhBcCj",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/items/zauberwirkungen/Katzenwut.json b/packs/items/zauberwirkungen/Katzenwut.json
index 7e85d64..ba20183 100644
--- a/packs/items/zauberwirkungen/Katzenwut.json
+++ b/packs/items/zauberwirkungen/Katzenwut.json
@@ -1,23 +1,41 @@
{
- "name": "Katzenwut",
- "type": "effect",
- "img": "icons/creatures/mammals/cat-hunched-glowing-red.webp",
- "system": {
- "description": "ARK S. 149
",
- "equippable": false,
- "equipped": true,
- "duration": { "time": 12, "unit": "round" },
- "value": 0,
- "magic": true,
- "rolls": { "formulas": {}, "output": "" },
- "mods": { "0": { "type": "attribute", "id": "st", "operation": "add100", "value": 30 } },
- "calc": {}
- },
- "effects": [],
- "flags": { "core": { "sourceId": "Compendium.midgard5.zauberwirkungen.6bq4dm9ak5YDp9KV" } },
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1677858414297, "modifiedTime": 1700353901249, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "DM9ppTSbZNyalp1e",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "Katzenwut",
+ "type": "effect",
+ "img": "icons/creatures/mammals/cat-hunched-glowing-red.webp",
+ "system": {
+ "description": "ARK S. 149
",
+ "equippable": false,
+ "equipped": true,
+ "duration": { "time": 12, "unit": "round" },
+ "value": 0,
+ "magic": true,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": {
+ "type": "attribute",
+ "id": "st",
+ "operation": "add100",
+ "value": 30
+ }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {
+ "core": {
+ "sourceId": "Compendium.midgard5.zauberwirkungen.6bq4dm9ak5YDp9KV"
+ }
+ },
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1677858414297,
+ "modifiedTime": 1700353901249,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "DM9ppTSbZNyalp1e",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/items/zauberwirkungen/Krakenhände.json b/packs/items/zauberwirkungen/Krakenhände.json
index bf3b069..f533811 100644
--- a/packs/items/zauberwirkungen/Krakenhände.json
+++ b/packs/items/zauberwirkungen/Krakenhände.json
@@ -1,23 +1,37 @@
{
- "name": "Krakenhände",
- "type": "effect",
- "img": "icons/creatures/tentacles/tentacle-eyes-yellow-pink.webp",
- "system": {
- "description": "ARK S. 176
",
- "equippable": false,
- "equipped": true,
- "duration": { "time": 1, "unit": "hour" },
- "value": 0,
- "magic": false,
- "rolls": { "formulas": {}, "output": "" },
- "mods": { "0": { "type": "skill", "id": "midgard5.klettern", "operation": "add", "value": 4 } },
- "calc": {}
- },
- "effects": [],
- "flags": {},
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700349693679, "modifiedTime": 1700353901248, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "TRgAdyTpNX6xFM7g",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "Krakenhände",
+ "type": "effect",
+ "img": "icons/creatures/tentacles/tentacle-eyes-yellow-pink.webp",
+ "system": {
+ "description": "ARK S. 176
",
+ "equippable": false,
+ "equipped": true,
+ "duration": { "time": 1, "unit": "hour" },
+ "value": 0,
+ "magic": false,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": {
+ "type": "skill",
+ "id": "midgard5.klettern",
+ "operation": "add",
+ "value": 4
+ }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {},
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1700349693679,
+ "modifiedTime": 1700353901248,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "TRgAdyTpNX6xFM7g",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/items/zauberwirkungen/Lachsalz.json b/packs/items/zauberwirkungen/Lachsalz.json
index 512773d..bd86639 100644
--- a/packs/items/zauberwirkungen/Lachsalz.json
+++ b/packs/items/zauberwirkungen/Lachsalz.json
@@ -1,31 +1,68 @@
{
- "name": "Lachsalz",
- "type": "effect",
- "img": "icons/creatures/magical/construct-iron-stomping-yellow.webp",
- "system": {
- "description": "MYS S. 48
",
- "equippable": false,
- "equipped": true,
- "duration": { "time": 12, "unit": "round" },
- "value": 0,
- "magic": false,
- "rolls": { "formulas": {}, "output": "" },
- "mods": {
- "0": { "type": "skill", "id": "", "operation": "subtract", "value": 2 },
- "1": { "type": "stat", "id": "defenseBonus", "operation": "subtract", "value": 2 },
- "2": { "type": "stat", "id": "attackBonus", "operation": "subtract", "value": 2 },
- "3": { "type": "stat", "id": "resistanceMind", "operation": "subtract", "value": 2 },
- "4": { "type": "stat", "id": "resistanceBody", "operation": "subtract", "value": 2 },
- "5": { "type": "stat", "id": "spellCasting", "operation": "subtract", "value": 2 },
- "6": { "type": "stat", "id": "brawl", "operation": "subtract", "value": 2 }
- },
- "calc": {}
- },
- "effects": [],
- "flags": {},
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700352128898, "modifiedTime": 1700353901250, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "wpHAnHNImU9oAaSV",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "Lachsalz",
+ "type": "effect",
+ "img": "icons/creatures/magical/construct-iron-stomping-yellow.webp",
+ "system": {
+ "description": "MYS S. 48
",
+ "equippable": false,
+ "equipped": true,
+ "duration": { "time": 12, "unit": "round" },
+ "value": 0,
+ "magic": false,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": { "type": "skill", "id": "", "operation": "subtract", "value": 2 },
+ "1": {
+ "type": "stat",
+ "id": "defenseBonus",
+ "operation": "subtract",
+ "value": 2
+ },
+ "2": {
+ "type": "stat",
+ "id": "attackBonus",
+ "operation": "subtract",
+ "value": 2
+ },
+ "3": {
+ "type": "stat",
+ "id": "resistanceMind",
+ "operation": "subtract",
+ "value": 2
+ },
+ "4": {
+ "type": "stat",
+ "id": "resistanceBody",
+ "operation": "subtract",
+ "value": 2
+ },
+ "5": {
+ "type": "stat",
+ "id": "spellCasting",
+ "operation": "subtract",
+ "value": 2
+ },
+ "6": {
+ "type": "stat",
+ "id": "brawl",
+ "operation": "subtract",
+ "value": 2
+ }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {},
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1700352128898,
+ "modifiedTime": 1700353901250,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "wpHAnHNImU9oAaSV",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/items/zauberwirkungen/Lebenskeule.json b/packs/items/zauberwirkungen/Lebenskeule.json
index e405e99..a601540 100644
--- a/packs/items/zauberwirkungen/Lebenskeule.json
+++ b/packs/items/zauberwirkungen/Lebenskeule.json
@@ -1,23 +1,43 @@
{
- "name": "Lebenskeule",
- "type": "effect",
- "img": "icons/weapons/clubs/club-bone-blue.webp",
- "system": {
- "description": "ARK S. 154
",
- "equippable": false,
- "equipped": true,
- "duration": { "time": 12, "unit": "round" },
- "value": 0,
- "magic": true,
- "rolls": { "formulas": {}, "output": "" },
- "mods": { "0": { "type": "stat", "id": "attackBonus", "operation": "add", "value": 1 }, "1": { "type": "stat", "id": "damageBonus", "operation": "add", "value": 1 } },
- "calc": {}
- },
- "effects": [],
- "flags": {},
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700349353093, "modifiedTime": 1700353901248, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "dypl2WTRzKYZ1TzF",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "Lebenskeule",
+ "type": "effect",
+ "img": "icons/weapons/clubs/club-bone-blue.webp",
+ "system": {
+ "description": "ARK S. 154
",
+ "equippable": false,
+ "equipped": true,
+ "duration": { "time": 12, "unit": "round" },
+ "value": 0,
+ "magic": true,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": {
+ "type": "stat",
+ "id": "attackBonus",
+ "operation": "add",
+ "value": 1
+ },
+ "1": {
+ "type": "stat",
+ "id": "damageBonus",
+ "operation": "add",
+ "value": 1
+ }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {},
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1700349353093,
+ "modifiedTime": 1700353901248,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "dypl2WTRzKYZ1TzF",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/items/zauberwirkungen/LiedderTapferkeit.json b/packs/items/zauberwirkungen/LiedderTapferkeit.json
index 4bedda3..50256a2 100644
--- a/packs/items/zauberwirkungen/LiedderTapferkeit.json
+++ b/packs/items/zauberwirkungen/LiedderTapferkeit.json
@@ -1,23 +1,43 @@
{
- "name": "Lied der Tapferkeit",
- "type": "effect",
- "img": "icons/tools/instruments/rattle-gourd-glowing-teal.webp",
- "system": {
- "description": "ARK S. 166
",
- "equippable": false,
- "equipped": true,
- "duration": { "time": 180, "unit": "round" },
- "value": 0,
- "magic": false,
- "rolls": { "formulas": {}, "output": "" },
- "mods": { "0": { "type": "stat", "id": "defenseBonus", "operation": "add", "value": 1 }, "1": { "type": "stat", "id": "attackBonus", "operation": "add", "value": 1 } },
- "calc": {}
- },
- "effects": [],
- "flags": {},
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700349805056, "modifiedTime": 1700353901248, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "PJ0tqjZXQ5opcYzw",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "Lied der Tapferkeit",
+ "type": "effect",
+ "img": "icons/tools/instruments/rattle-gourd-glowing-teal.webp",
+ "system": {
+ "description": "ARK S. 166
",
+ "equippable": false,
+ "equipped": true,
+ "duration": { "time": 180, "unit": "round" },
+ "value": 0,
+ "magic": false,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": {
+ "type": "stat",
+ "id": "defenseBonus",
+ "operation": "add",
+ "value": 1
+ },
+ "1": {
+ "type": "stat",
+ "id": "attackBonus",
+ "operation": "add",
+ "value": 1
+ }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {},
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1700349805056,
+ "modifiedTime": 1700353901248,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "PJ0tqjZXQ5opcYzw",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/items/zauberwirkungen/LieddesWagemuts.json b/packs/items/zauberwirkungen/LieddesWagemuts.json
index 646a95e..7d2a051 100644
--- a/packs/items/zauberwirkungen/LieddesWagemuts.json
+++ b/packs/items/zauberwirkungen/LieddesWagemuts.json
@@ -1,27 +1,53 @@
{
- "name": "Lied des Wagemuts",
- "type": "effect",
- "img": "icons/magic/unholy/hand-weapon-glow-black-green.webp",
- "system": {
- "description": "ARK S. 168
",
- "equippable": false,
- "equipped": true,
- "duration": { "time": 180, "unit": "round" },
- "value": 0,
- "magic": true,
- "rolls": { "formulas": {}, "output": "" },
- "mods": {
- "0": { "type": "stat", "id": "defenseBonus", "operation": "subtract", "value": 2 },
- "1": { "type": "stat", "id": "attackBonus", "operation": "add", "value": 2 },
- "2": { "type": "stat", "id": "damageBonus", "operation": "add", "value": 1 }
- },
- "calc": {}
- },
- "effects": [],
- "flags": { "core": { "sourceId": "Compendium.midgard5.zauberwirkungen.izugfahUnOBnxIWL" } },
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1677858754955, "modifiedTime": 1700353901249, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "KJl4suhSLS5I7QT3",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "Lied des Wagemuts",
+ "type": "effect",
+ "img": "icons/magic/unholy/hand-weapon-glow-black-green.webp",
+ "system": {
+ "description": "ARK S. 168
",
+ "equippable": false,
+ "equipped": true,
+ "duration": { "time": 180, "unit": "round" },
+ "value": 0,
+ "magic": true,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": {
+ "type": "stat",
+ "id": "defenseBonus",
+ "operation": "subtract",
+ "value": 2
+ },
+ "1": {
+ "type": "stat",
+ "id": "attackBonus",
+ "operation": "add",
+ "value": 2
+ },
+ "2": {
+ "type": "stat",
+ "id": "damageBonus",
+ "operation": "add",
+ "value": 1
+ }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {
+ "core": {
+ "sourceId": "Compendium.midgard5.zauberwirkungen.izugfahUnOBnxIWL"
+ }
+ },
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1677858754955,
+ "modifiedTime": 1700353901249,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "KJl4suhSLS5I7QT3",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/items/zauberwirkungen/Marmorhaut.json b/packs/items/zauberwirkungen/Marmorhaut.json
index a079909..9ae4398 100644
--- a/packs/items/zauberwirkungen/Marmorhaut.json
+++ b/packs/items/zauberwirkungen/Marmorhaut.json
@@ -1 +1,51 @@
-{"name": "Marmorhaut", "type": "effect", "img": "icons/equipment/chest/breastplate-gorget-steel-white.webp", "system": {"description": "ARK S. 102
", "stats": {"damageBonus": 0, "attackBonus": 0, "defenseBonus": 0, "movementBonus": 0, "resistanceMind": 0, "resistanceBody": 0, "spellBonus": 0}, "equippable": false, "equipped": true, "duration": { "time": 60, "unit": "round" },"attributeMod": {"st": 0, "gs": 0, "gw": 0, "ko": 0, "in": 0, "zt": 0, "au": 0, "pa": 0, "wk": 0}, "value": 0, "magic": false, "lpProtection": 4, "apProtection": 4, "rolls": {"formulas": {}, "output": ""}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700347338839, "modifiedTime": 1700353901246, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "wqS82FP9pAxLb5bn", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
\ No newline at end of file
+{
+ "name": "Marmorhaut",
+ "type": "effect",
+ "img": "icons/equipment/chest/breastplate-gorget-steel-white.webp",
+ "system": {
+ "description": "ARK S. 102
",
+ "stats": {
+ "damageBonus": 0,
+ "attackBonus": 0,
+ "defenseBonus": 0,
+ "movementBonus": 0,
+ "resistanceMind": 0,
+ "resistanceBody": 0,
+ "spellBonus": 0
+ },
+ "equippable": false,
+ "equipped": true,
+ "duration": { "time": 60, "unit": "round" },
+ "attributeMod": {
+ "st": 0,
+ "gs": 0,
+ "gw": 0,
+ "ko": 0,
+ "in": 0,
+ "zt": 0,
+ "au": 0,
+ "pa": 0,
+ "wk": 0
+ },
+ "value": 0,
+ "magic": false,
+ "lpProtection": 4,
+ "apProtection": 4,
+ "rolls": { "formulas": {}, "output": "" },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {},
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1700347338839,
+ "modifiedTime": 1700353901246,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "wqS82FP9pAxLb5bn",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+}
diff --git a/packs/items/zauberwirkungen/Niessalz.json b/packs/items/zauberwirkungen/Niessalz.json
index 9829fe5..8b7f471 100644
--- a/packs/items/zauberwirkungen/Niessalz.json
+++ b/packs/items/zauberwirkungen/Niessalz.json
@@ -1,31 +1,68 @@
{
- "name": "Niessalz",
- "type": "effect",
- "img": "icons/creatures/magical/spirit-fear-energy-pink.webp",
- "system": {
- "description": "MYS S. 48
",
- "equippable": false,
- "equipped": true,
- "duration": { "time": 12, "unit": "round" },
- "value": 0,
- "magic": false,
- "rolls": { "formulas": {}, "output": "" },
- "mods": {
- "0": { "type": "skill", "id": "", "operation": "subtract", "value": 4 },
- "1": { "type": "stat", "id": "defenseBonus", "operation": "subtract", "value": 4 },
- "2": { "type": "stat", "id": "attackBonus", "operation": "subtract", "value": 4 },
- "3": { "type": "stat", "id": "resistanceMind", "operation": "subtract", "value": 4 },
- "4": { "type": "stat", "id": "resistanceBody", "operation": "subtract", "value": 4 },
- "5": { "type": "stat", "id": "spellCasting", "operation": "subtract", "value": 4 },
- "6": { "type": "stat", "id": "brawl", "operation": "subtract", "value": 4 }
- },
- "calc": {}
- },
- "effects": [],
- "flags": {},
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700352128898, "modifiedTime": 1700353901250, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "830HvgJasFqQiGjt",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "Niessalz",
+ "type": "effect",
+ "img": "icons/creatures/magical/spirit-fear-energy-pink.webp",
+ "system": {
+ "description": "MYS S. 48
",
+ "equippable": false,
+ "equipped": true,
+ "duration": { "time": 12, "unit": "round" },
+ "value": 0,
+ "magic": false,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": { "type": "skill", "id": "", "operation": "subtract", "value": 4 },
+ "1": {
+ "type": "stat",
+ "id": "defenseBonus",
+ "operation": "subtract",
+ "value": 4
+ },
+ "2": {
+ "type": "stat",
+ "id": "attackBonus",
+ "operation": "subtract",
+ "value": 4
+ },
+ "3": {
+ "type": "stat",
+ "id": "resistanceMind",
+ "operation": "subtract",
+ "value": 4
+ },
+ "4": {
+ "type": "stat",
+ "id": "resistanceBody",
+ "operation": "subtract",
+ "value": 4
+ },
+ "5": {
+ "type": "stat",
+ "id": "spellCasting",
+ "operation": "subtract",
+ "value": 4
+ },
+ "6": {
+ "type": "stat",
+ "id": "brawl",
+ "operation": "subtract",
+ "value": 4
+ }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {},
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1700352128898,
+ "modifiedTime": 1700353901250,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "830HvgJasFqQiGjt",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/items/zauberwirkungen/Reaktionsschnelle.json b/packs/items/zauberwirkungen/Reaktionsschnelle.json
index 4382a2f..6ce7aca 100644
--- a/packs/items/zauberwirkungen/Reaktionsschnelle.json
+++ b/packs/items/zauberwirkungen/Reaktionsschnelle.json
@@ -1,23 +1,47 @@
{
- "name": "Reaktionsschnelle",
- "type": "effect",
- "img": "icons/magic/movement/trail-streak-zigzag-teal.webp",
- "system": {
- "description": "ARK S. 105
",
- "equippable": false,
- "equipped": true,
- "duration": { "time": 60, "unit": "round" },
- "value": 0,
- "magic": true,
- "rolls": { "formulas": {}, "output": "" },
- "mods": { "0": { "type": "attribute", "id": "gw", "operation": "add", "value": -20 }, "1": { "type": "stat", "id": "defenseBonus", "operation": "add", "value": 1 } },
- "calc": {}
- },
- "effects": [],
- "flags": { "core": { "sourceId": "Compendium.midgard5.zauberwirkungen.NkfwtGhFGzaQQQyI" } },
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1677858980435, "modifiedTime": 1700353901242, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "NkfwtGhFGzaQQQyI",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "Reaktionsschnelle",
+ "type": "effect",
+ "img": "icons/magic/movement/trail-streak-zigzag-teal.webp",
+ "system": {
+ "description": "ARK S. 105
",
+ "equippable": false,
+ "equipped": true,
+ "duration": { "time": 60, "unit": "round" },
+ "value": 0,
+ "magic": true,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": {
+ "type": "attribute",
+ "id": "gw",
+ "operation": "add",
+ "value": -20
+ },
+ "1": {
+ "type": "stat",
+ "id": "defenseBonus",
+ "operation": "add",
+ "value": 1
+ }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {
+ "core": {
+ "sourceId": "Compendium.midgard5.zauberwirkungen.NkfwtGhFGzaQQQyI"
+ }
+ },
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1677858980435,
+ "modifiedTime": 1700353901242,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "NkfwtGhFGzaQQQyI",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/items/zauberwirkungen/Rindenhaut.json b/packs/items/zauberwirkungen/Rindenhaut.json
index 98c1461..722efb0 100644
--- a/packs/items/zauberwirkungen/Rindenhaut.json
+++ b/packs/items/zauberwirkungen/Rindenhaut.json
@@ -1 +1,51 @@
-{"name": "Rindenhaut", "type": "effect", "img": "icons/equipment/chest/breastplate-leather-brown-belted.webp", "system": {"description": "ARK S. 157
", "stats": {"damageBonus": 0, "attackBonus": 0, "defenseBonus": 0, "movementBonus": 0, "resistanceMind": 0, "resistanceBody": 0, "spellBonus": 0}, "equippable": false, "equipped": true, "duration": { "time": 60, "unit": "round" },"attributeMod": {"st": 0, "gs": 0, "gw": 0, "ko": 0, "in": 0, "zt": 0, "au": 0, "pa": 0, "wk": 0}, "value": 0, "magic": false, "lpProtection": 3, "apProtection": 3, "rolls": {"formulas": {}, "output": ""}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700349427856, "modifiedTime": 1700353901248, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "fiyvORwl1F1PLZOD", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
\ No newline at end of file
+{
+ "name": "Rindenhaut",
+ "type": "effect",
+ "img": "icons/equipment/chest/breastplate-leather-brown-belted.webp",
+ "system": {
+ "description": "ARK S. 157
",
+ "stats": {
+ "damageBonus": 0,
+ "attackBonus": 0,
+ "defenseBonus": 0,
+ "movementBonus": 0,
+ "resistanceMind": 0,
+ "resistanceBody": 0,
+ "spellBonus": 0
+ },
+ "equippable": false,
+ "equipped": true,
+ "duration": { "time": 60, "unit": "round" },
+ "attributeMod": {
+ "st": 0,
+ "gs": 0,
+ "gw": 0,
+ "ko": 0,
+ "in": 0,
+ "zt": 0,
+ "au": 0,
+ "pa": 0,
+ "wk": 0
+ },
+ "value": 0,
+ "magic": false,
+ "lpProtection": 3,
+ "apProtection": 3,
+ "rolls": { "formulas": {}, "output": "" },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {},
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1700349427856,
+ "modifiedTime": 1700353901248,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "fiyvORwl1F1PLZOD",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+}
diff --git a/packs/items/zauberwirkungen/RüstungdesRechtschaffenen.json b/packs/items/zauberwirkungen/RüstungdesRechtschaffenen.json
index 64b0590..ab3d0a9 100644
--- a/packs/items/zauberwirkungen/RüstungdesRechtschaffenen.json
+++ b/packs/items/zauberwirkungen/RüstungdesRechtschaffenen.json
@@ -1 +1,51 @@
-{"name": "R\u00fcstung des Rechtschaffenen", "type": "effect", "img": "icons/equipment/chest/breastplate-layered-leather-green.webp", "system": {"description": "ARK S. 145
", "stats": {"damageBonus": 0, "attackBonus": 0, "defenseBonus": 0, "movementBonus": 0, "resistanceMind": 0, "resistanceBody": 0, "spellBonus": 0}, "equippable": false, "equipped": true, "duration": { "time": 12, "unit": "round" },"attributeMod": {"st": 0, "gs": 0, "gw": 0, "ko": 0, "in": 0, "zt": 0, "au": 0, "pa": 0, "wk": 0}, "value": 0, "magic": false, "lpProtection": 5, "apProtection": 5, "rolls": {"formulas": {}, "output": ""}, "calc": {}}, "effects": [], "flags": {}, "_stats": {"systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700349062247, "modifiedTime": 1700353901247, "lastModifiedBy": "cb3PEvEU0kHkMdjb"}, "_id": "a49UmucuWJL3tXbM", "folder": null, "sort": 0, "ownership": {"default": 0, "cb3PEvEU0kHkMdjb": 3}}
\ No newline at end of file
+{
+ "name": "R\u00fcstung des Rechtschaffenen",
+ "type": "effect",
+ "img": "icons/equipment/chest/breastplate-layered-leather-green.webp",
+ "system": {
+ "description": "ARK S. 145
",
+ "stats": {
+ "damageBonus": 0,
+ "attackBonus": 0,
+ "defenseBonus": 0,
+ "movementBonus": 0,
+ "resistanceMind": 0,
+ "resistanceBody": 0,
+ "spellBonus": 0
+ },
+ "equippable": false,
+ "equipped": true,
+ "duration": { "time": 12, "unit": "round" },
+ "attributeMod": {
+ "st": 0,
+ "gs": 0,
+ "gw": 0,
+ "ko": 0,
+ "in": 0,
+ "zt": 0,
+ "au": 0,
+ "pa": 0,
+ "wk": 0
+ },
+ "value": 0,
+ "magic": false,
+ "lpProtection": 5,
+ "apProtection": 5,
+ "rolls": { "formulas": {}, "output": "" },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {},
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1700349062247,
+ "modifiedTime": 1700353901247,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "a49UmucuWJL3tXbM",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+}
diff --git a/packs/items/zauberwirkungen/Scharfblick.json b/packs/items/zauberwirkungen/Scharfblick.json
index 38f6d6d..039b81a 100644
--- a/packs/items/zauberwirkungen/Scharfblick.json
+++ b/packs/items/zauberwirkungen/Scharfblick.json
@@ -1,23 +1,36 @@
{
- "name": "Scharfblick",
- "type": "effect",
- "img": "icons/magic/perception/eye-slit-orange.webp",
- "system": {
- "description": "ARK S. 108
",
- "equippable": false,
- "equipped": true,
- "duration": { "time": 60, "unit": "round" },
- "value": 0,
- "magic": true,
- "rolls": { "formulas": {}, "output": "" },
- "mods": { "0": { "type": "skill", "id": "Sehen", "operation": "add", "value": 2 } },
- "calc": {}
- },
- "effects": [],
- "flags": { "core": { "sourceId": "Compendium.midgard5.zauberwirkungen.czzKGpPItM6J8r91" } },
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1677860144324, "modifiedTime": 1700353901242, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "czzKGpPItM6J8r91",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "Scharfblick",
+ "type": "effect",
+ "img": "icons/magic/perception/eye-slit-orange.webp",
+ "system": {
+ "description": "ARK S. 108
",
+ "equippable": false,
+ "equipped": true,
+ "duration": { "time": 60, "unit": "round" },
+ "value": 0,
+ "magic": true,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": { "type": "skill", "id": "Sehen", "operation": "add", "value": 2 }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {
+ "core": {
+ "sourceId": "Compendium.midgard5.zauberwirkungen.czzKGpPItM6J8r91"
+ }
+ },
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1677860144324,
+ "modifiedTime": 1700353901242,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "czzKGpPItM6J8r91",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/items/zauberwirkungen/Schattenverstärken.json b/packs/items/zauberwirkungen/Schattenverstärken.json
index 7b4f069..29ebc4c 100644
--- a/packs/items/zauberwirkungen/Schattenverstärken.json
+++ b/packs/items/zauberwirkungen/Schattenverstärken.json
@@ -1,23 +1,37 @@
{
- "name": "Schatten verst\u00e4rken",
- "type": "effect",
- "img": "icons/magic/unholy/silhouette-light-fire-blue.webp",
- "system": {
- "description": "ARK S. 108
",
- "equippable": false,
- "equipped": true,
- "duration": { "time": 60, "unit": "round" },
- "value": 0,
- "magic": false,
- "rolls": { "formulas": {}, "output": "" },
- "mods": { "0": { "type": "skill", "id": "midgard5.tarnen", "operation": "add", "value": 4 } },
- "calc": {}
- },
- "effects": [],
- "flags": {},
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700347465594, "modifiedTime": 1700353901246, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "mBZkNsuZxH5ffULH",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "Schatten verst\u00e4rken",
+ "type": "effect",
+ "img": "icons/magic/unholy/silhouette-light-fire-blue.webp",
+ "system": {
+ "description": "ARK S. 108
",
+ "equippable": false,
+ "equipped": true,
+ "duration": { "time": 60, "unit": "round" },
+ "value": 0,
+ "magic": false,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": {
+ "type": "skill",
+ "id": "midgard5.tarnen",
+ "operation": "add",
+ "value": 4
+ }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {},
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1700347465594,
+ "modifiedTime": 1700353901246,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "mBZkNsuZxH5ffULH",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/items/zauberwirkungen/Schlachtenwahnsinn.json b/packs/items/zauberwirkungen/Schlachtenwahnsinn.json
index 75b4ff0..a0bf05d 100644
--- a/packs/items/zauberwirkungen/Schlachtenwahnsinn.json
+++ b/packs/items/zauberwirkungen/Schlachtenwahnsinn.json
@@ -1,23 +1,43 @@
{
- "name": "Schlachtenwahnsinn",
- "type": "effect",
- "img": "icons/magic/unholy/strike-body-explode-disintegrate.webp",
- "system": {
- "description": "ARK S. 157
",
- "equippable": false,
- "equipped": true,
- "duration": { "time": 6, "unit": "round" },
- "value": 0,
- "magic": false,
- "rolls": { "formulas": {}, "output": "" },
- "mods": { "0": { "type": "attribute", "id": "st", "operation": "add100", "value": 30 }, "1": { "type": "stat", "id": "movement", "operation": "add", "value": null } },
- "calc": {}
- },
- "effects": [],
- "flags": {},
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700349501457, "modifiedTime": 1700353901248, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "UrP6Z1lLr0YAkriD",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "Schlachtenwahnsinn",
+ "type": "effect",
+ "img": "icons/magic/unholy/strike-body-explode-disintegrate.webp",
+ "system": {
+ "description": "ARK S. 157
",
+ "equippable": false,
+ "equipped": true,
+ "duration": { "time": 6, "unit": "round" },
+ "value": 0,
+ "magic": false,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": {
+ "type": "attribute",
+ "id": "st",
+ "operation": "add100",
+ "value": 30
+ },
+ "1": {
+ "type": "stat",
+ "id": "movement",
+ "operation": "add",
+ "value": null
+ }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {},
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1700349501457,
+ "modifiedTime": 1700353901248,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "UrP6Z1lLr0YAkriD",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/items/zauberwirkungen/SchlachtenwahnsinnGegner.json b/packs/items/zauberwirkungen/SchlachtenwahnsinnGegner.json
index c0cd144..33256ca 100644
--- a/packs/items/zauberwirkungen/SchlachtenwahnsinnGegner.json
+++ b/packs/items/zauberwirkungen/SchlachtenwahnsinnGegner.json
@@ -1,23 +1,37 @@
{
- "name": "Schlachtenwahnsinn für Gegner",
- "type": "effect",
- "img": "icons/magic/unholy/strike-body-explode-disintegrate.webp",
- "system": {
- "description": "ARK S. 157
",
- "equippable": false,
- "equipped": true,
- "duration": { "time": 6, "unit": "round" },
- "value": 0,
- "magic": false,
- "rolls": { "formulas": {}, "output": "" },
- "mods": { "0": { "type": "stat", "id": "attackBonus", "operation": "subtract", "value": 2 } },
- "calc": {}
- },
- "effects": [],
- "flags": {},
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700349501457, "modifiedTime": 1700353901248, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "UrP6Z1lLr0YAkriD",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "Schlachtenwahnsinn für Gegner",
+ "type": "effect",
+ "img": "icons/magic/unholy/strike-body-explode-disintegrate.webp",
+ "system": {
+ "description": "ARK S. 157
",
+ "equippable": false,
+ "equipped": true,
+ "duration": { "time": 6, "unit": "round" },
+ "value": 0,
+ "magic": false,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": {
+ "type": "stat",
+ "id": "attackBonus",
+ "operation": "subtract",
+ "value": 2
+ }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {},
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1700349501457,
+ "modifiedTime": 1700353901248,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "UrP6Z1lLr0YAkriD",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/items/zauberwirkungen/Schleichsalz.json b/packs/items/zauberwirkungen/Schleichsalz.json
index ede6aa9..58b3fcf 100644
--- a/packs/items/zauberwirkungen/Schleichsalz.json
+++ b/packs/items/zauberwirkungen/Schleichsalz.json
@@ -1,23 +1,37 @@
{
- "name": "Schleichsalz",
- "type": "effect",
- "img": "icons/equipment/feet/boots-pointed-cloth-green.webp",
- "system": {
- "description": "MYS S. 49
",
- "equippable": false,
- "equipped": true,
- "duration": { "time": 8, "unit": "hour" },
- "value": 0,
- "magic": false,
- "rolls": { "formulas": {}, "output": "" },
- "mods": { "0": { "type": "skill", "id": "midgard5.schleichen", "operation": "add", "value": 6 } },
- "calc": {}
- },
- "effects": [],
- "flags": {},
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700352499838, "modifiedTime": 1700353901250, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "fYBItm65Mu9FwirS",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "Schleichsalz",
+ "type": "effect",
+ "img": "icons/equipment/feet/boots-pointed-cloth-green.webp",
+ "system": {
+ "description": "MYS S. 49
",
+ "equippable": false,
+ "equipped": true,
+ "duration": { "time": 8, "unit": "hour" },
+ "value": 0,
+ "magic": false,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": {
+ "type": "skill",
+ "id": "midgard5.schleichen",
+ "operation": "add",
+ "value": 6
+ }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {},
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1700352499838,
+ "modifiedTime": 1700353901250,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "fYBItm65Mu9FwirS",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/items/zauberwirkungen/Schmerzen.json b/packs/items/zauberwirkungen/Schmerzen.json
index 7fc5958..26104ab 100644
--- a/packs/items/zauberwirkungen/Schmerzen.json
+++ b/packs/items/zauberwirkungen/Schmerzen.json
@@ -1,31 +1,72 @@
{
- "name": "Schmerzen",
- "type": "effect",
- "img": "icons/magic/unholy/strike-body-life-soul-purple.webp",
- "system": {
- "description": "ARK S. 109
",
- "equippable": false,
- "equipped": true,
- "duration": { "time": 6, "unit": "round" },
- "value": 0,
- "magic": true,
- "rolls": { "formulas": {}, "output": "" },
- "mods": {
- "0": { "type": "stat", "id": "defenseBonus", "operation": "subtract", "value": 4 },
- "1": { "type": "stat", "id": "attackBonus", "operation": "subtract", "value": 4 },
- "2": { "type": "stat", "id": "resistanceMind", "operation": "subtract", "value": 4 },
- "3": { "type": "stat", "id": "resistanceBody", "operation": "subtract", "value": 4 },
- "4": { "type": "stat", "id": "spellCasting", "operation": "subtract", "value": 4 },
- "5": { "type": "stat", "id": "brawl", "operation": "subtract", "value": 4 },
- "6": { "type": "stat", "id": "", "operation": "subtract", "value": 4 }
- },
- "calc": {}
- },
- "effects": [],
- "flags": { "core": { "sourceId": "Compendium.midgard5.zauberwirkungen.dJEivcoLFv754Eln" } },
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1677860622628, "modifiedTime": 1700353901242, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "dJEivcoLFv754Eln",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "Schmerzen",
+ "type": "effect",
+ "img": "icons/magic/unholy/strike-body-life-soul-purple.webp",
+ "system": {
+ "description": "ARK S. 109
",
+ "equippable": false,
+ "equipped": true,
+ "duration": { "time": 6, "unit": "round" },
+ "value": 0,
+ "magic": true,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": {
+ "type": "stat",
+ "id": "defenseBonus",
+ "operation": "subtract",
+ "value": 4
+ },
+ "1": {
+ "type": "stat",
+ "id": "attackBonus",
+ "operation": "subtract",
+ "value": 4
+ },
+ "2": {
+ "type": "stat",
+ "id": "resistanceMind",
+ "operation": "subtract",
+ "value": 4
+ },
+ "3": {
+ "type": "stat",
+ "id": "resistanceBody",
+ "operation": "subtract",
+ "value": 4
+ },
+ "4": {
+ "type": "stat",
+ "id": "spellCasting",
+ "operation": "subtract",
+ "value": 4
+ },
+ "5": {
+ "type": "stat",
+ "id": "brawl",
+ "operation": "subtract",
+ "value": 4
+ },
+ "6": { "type": "stat", "id": "", "operation": "subtract", "value": 4 }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {
+ "core": {
+ "sourceId": "Compendium.midgard5.zauberwirkungen.dJEivcoLFv754Eln"
+ }
+ },
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1677860622628,
+ "modifiedTime": 1700353901242,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "dJEivcoLFv754Eln",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/items/zauberwirkungen/Schwäche.json b/packs/items/zauberwirkungen/Schwäche.json
index 1395dca..9c08555 100644
--- a/packs/items/zauberwirkungen/Schwäche.json
+++ b/packs/items/zauberwirkungen/Schwäche.json
@@ -1,23 +1,37 @@
{
- "name": "Schw\u00e4che",
- "type": "effect",
- "img": "icons/creatures/magical/humanoid-silhouette-glowing-pink.webp",
- "system": {
- "description": "ARK S. 110
",
- "equippable": false,
- "equipped": true,
- "duration": { "time": 12, "unit": "round" },
- "value": 0,
- "magic": false,
- "rolls": { "formulas": {}, "output": "" },
- "mods": { "0": { "type": "attribute", "id": "st", "operation": "subtract", "value": 20 } },
- "calc": {}
- },
- "effects": [],
- "flags": {},
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700347663890, "modifiedTime": 1700353901246, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "Ue2kYDN7jnyuXsqa",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "Schw\u00e4che",
+ "type": "effect",
+ "img": "icons/creatures/magical/humanoid-silhouette-glowing-pink.webp",
+ "system": {
+ "description": "ARK S. 110
",
+ "equippable": false,
+ "equipped": true,
+ "duration": { "time": 12, "unit": "round" },
+ "value": 0,
+ "magic": false,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": {
+ "type": "attribute",
+ "id": "st",
+ "operation": "subtract",
+ "value": 20
+ }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {},
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1700347663890,
+ "modifiedTime": 1700353901246,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "Ue2kYDN7jnyuXsqa",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/items/zauberwirkungen/Segnen.json b/packs/items/zauberwirkungen/Segnen.json
index 6ba59f7..b8ed2de 100644
--- a/packs/items/zauberwirkungen/Segnen.json
+++ b/packs/items/zauberwirkungen/Segnen.json
@@ -1,41 +1,132 @@
{
- "name": "Segnen",
- "type": "effect",
- "img": "icons/magic/holy/prayer-hands-glowing-yellow.webp",
- "system": {
- "description": "Arkanum Seite 146, 147
",
- "equippable": false,
- "equipped": true,
- "duration": { "time": 60, "unit": "round" },
- "value": 0,
- "magic": true,
- "rolls": { "formulas": {}, "output": "" },
- "mods": {
- "0": { "type": "attribute", "id": "st", "operation": "subtract", "value": 5 },
- "1": { "type": "stat", "id": "defenseBonus", "operation": "add", "value": 1 },
- "2": { "type": "stat", "id": "attackBonus", "operation": "add", "value": 1 },
- "3": { "type": "stat", "id": "resistanceMind", "operation": "add", "value": 1 },
- "4": { "type": "stat", "id": "resistanceBody", "operation": "add", "value": 1 },
- "5": { "type": "stat", "id": "spellCasting", "operation": "add", "value": 1 },
- "6": { "type": "stat", "id": "brawl", "operation": "add", "value": 1 },
- "7": { "type": "stat", "id": "poisonResistance", "operation": "subtract", "value": 5 },
- "8": { "type": "attribute", "id": "gw", "operation": "subtract", "value": 5 },
- "9": { "type": "attribute", "id": "gw", "operation": "subtract", "value": 5 },
- "10": { "type": "attribute", "id": "gs", "operation": "subtract", "value": 5 },
- "11": { "type": "attribute", "id": "ko", "operation": "subtract", "value": 5 },
- "12": { "type": "attribute", "id": "in", "operation": "subtract", "value": 5 },
- "13": { "type": "attribute", "id": "zt", "operation": "subtract", "value": 5 },
- "14": { "type": "attribute", "id": "au", "operation": "subtract", "value": 5 },
- "15": { "type": "attribute", "id": "pa", "operation": "subtract", "value": 5 },
- "16": { "type": "attribute", "id": "wk", "operation": "subtract", "value": 5 }
- },
- "calc": {}
- },
- "effects": [],
- "flags": { "core": { "sourceId": "Compendium.midgard5.zauberwirkungen.l3heLZ0cCf9KcQ8g" } },
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1677859129209, "modifiedTime": 1700353901242, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "l3heLZ0cCf9KcQ8g",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "Segnen",
+ "type": "effect",
+ "img": "icons/magic/holy/prayer-hands-glowing-yellow.webp",
+ "system": {
+ "description": "Arkanum Seite 146, 147
",
+ "equippable": false,
+ "equipped": true,
+ "duration": { "time": 60, "unit": "round" },
+ "value": 0,
+ "magic": true,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": {
+ "type": "attribute",
+ "id": "st",
+ "operation": "subtract",
+ "value": 5
+ },
+ "1": {
+ "type": "stat",
+ "id": "defenseBonus",
+ "operation": "add",
+ "value": 1
+ },
+ "2": {
+ "type": "stat",
+ "id": "attackBonus",
+ "operation": "add",
+ "value": 1
+ },
+ "3": {
+ "type": "stat",
+ "id": "resistanceMind",
+ "operation": "add",
+ "value": 1
+ },
+ "4": {
+ "type": "stat",
+ "id": "resistanceBody",
+ "operation": "add",
+ "value": 1
+ },
+ "5": {
+ "type": "stat",
+ "id": "spellCasting",
+ "operation": "add",
+ "value": 1
+ },
+ "6": { "type": "stat", "id": "brawl", "operation": "add", "value": 1 },
+ "7": {
+ "type": "stat",
+ "id": "poisonResistance",
+ "operation": "subtract",
+ "value": 5
+ },
+ "8": {
+ "type": "attribute",
+ "id": "gw",
+ "operation": "subtract",
+ "value": 5
+ },
+ "9": {
+ "type": "attribute",
+ "id": "gw",
+ "operation": "subtract",
+ "value": 5
+ },
+ "10": {
+ "type": "attribute",
+ "id": "gs",
+ "operation": "subtract",
+ "value": 5
+ },
+ "11": {
+ "type": "attribute",
+ "id": "ko",
+ "operation": "subtract",
+ "value": 5
+ },
+ "12": {
+ "type": "attribute",
+ "id": "in",
+ "operation": "subtract",
+ "value": 5
+ },
+ "13": {
+ "type": "attribute",
+ "id": "zt",
+ "operation": "subtract",
+ "value": 5
+ },
+ "14": {
+ "type": "attribute",
+ "id": "au",
+ "operation": "subtract",
+ "value": 5
+ },
+ "15": {
+ "type": "attribute",
+ "id": "pa",
+ "operation": "subtract",
+ "value": 5
+ },
+ "16": {
+ "type": "attribute",
+ "id": "wk",
+ "operation": "subtract",
+ "value": 5
+ }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {
+ "core": {
+ "sourceId": "Compendium.midgard5.zauberwirkungen.l3heLZ0cCf9KcQ8g"
+ }
+ },
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1677859129209,
+ "modifiedTime": 1700353901242,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "l3heLZ0cCf9KcQ8g",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/items/zauberwirkungen/Stinksalz.json b/packs/items/zauberwirkungen/Stinksalz.json
index 12703b6..22e387c 100644
--- a/packs/items/zauberwirkungen/Stinksalz.json
+++ b/packs/items/zauberwirkungen/Stinksalz.json
@@ -1,31 +1,68 @@
{
- "name": "Stinksalz",
- "type": "effect",
- "img": "icons/creatures/magical/construct-face-stone-pink.webp",
- "system": {
- "description": "
ARK S. 49
",
- "equippable": false,
- "equipped": true,
- "duration": { "time": 60, "unit": "round" },
- "value": 0,
- "magic": false,
- "rolls": { "formulas": {}, "output": "" },
- "mods": {
- "0": { "type": "skill", "id": "", "operation": "subtract", "value": 2 },
- "1": { "type": "stat", "id": "defenseBonus", "operation": "subtract", "value": 2 },
- "2": { "type": "stat", "id": "attackBonus", "operation": "subtract", "value": 2 },
- "3": { "type": "stat", "id": "resistanceMind", "operation": "subtract", "value": 2 },
- "4": { "type": "stat", "id": "resistanceBody", "operation": "subtract", "value": 2 },
- "5": { "type": "stat", "id": "spellCasting", "operation": "subtract", "value": 2 },
- "6": { "type": "stat", "id": "brawl", "operation": "subtract", "value": 2 }
- },
- "calc": {}
- },
- "effects": [],
- "flags": {},
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700352128898, "modifiedTime": 1700353901250, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "cXAsGS91VPcxng18",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "Stinksalz",
+ "type": "effect",
+ "img": "icons/creatures/magical/construct-face-stone-pink.webp",
+ "system": {
+ "description": "
ARK S. 49
",
+ "equippable": false,
+ "equipped": true,
+ "duration": { "time": 60, "unit": "round" },
+ "value": 0,
+ "magic": false,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": { "type": "skill", "id": "", "operation": "subtract", "value": 2 },
+ "1": {
+ "type": "stat",
+ "id": "defenseBonus",
+ "operation": "subtract",
+ "value": 2
+ },
+ "2": {
+ "type": "stat",
+ "id": "attackBonus",
+ "operation": "subtract",
+ "value": 2
+ },
+ "3": {
+ "type": "stat",
+ "id": "resistanceMind",
+ "operation": "subtract",
+ "value": 2
+ },
+ "4": {
+ "type": "stat",
+ "id": "resistanceBody",
+ "operation": "subtract",
+ "value": 2
+ },
+ "5": {
+ "type": "stat",
+ "id": "spellCasting",
+ "operation": "subtract",
+ "value": 2
+ },
+ "6": {
+ "type": "stat",
+ "id": "brawl",
+ "operation": "subtract",
+ "value": 2
+ }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {},
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1700352128898,
+ "modifiedTime": 1700353901250,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "cXAsGS91VPcxng18",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/items/zauberwirkungen/Stottersalz.json b/packs/items/zauberwirkungen/Stottersalz.json
index c1c1048..f7e25de 100644
--- a/packs/items/zauberwirkungen/Stottersalz.json
+++ b/packs/items/zauberwirkungen/Stottersalz.json
@@ -1,23 +1,37 @@
{
- "name": "Stottersalz",
- "type": "effect",
- "img": "icons/creatures/abilities/mouth-teeth-human.webp",
- "system": {
- "description": "
ARK S. 49
",
- "equippable": false,
- "equipped": true,
- "duration": { "time": 60, "unit": "round" },
- "value": 0,
- "magic": false,
- "rolls": { "formulas": {}, "output": "" },
- "mods": { "0": { "type": "stat", "id": "spellCasting", "operation": "subtract", "value": 4 } },
- "calc": {}
- },
- "effects": [],
- "flags": {},
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700352382136, "modifiedTime": 1700353901250, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "KxGE4o3RbJjLWp3g",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "Stottersalz",
+ "type": "effect",
+ "img": "icons/creatures/abilities/mouth-teeth-human.webp",
+ "system": {
+ "description": "
ARK S. 49
",
+ "equippable": false,
+ "equipped": true,
+ "duration": { "time": 60, "unit": "round" },
+ "value": 0,
+ "magic": false,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": {
+ "type": "stat",
+ "id": "spellCasting",
+ "operation": "subtract",
+ "value": 4
+ }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {},
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1700352382136,
+ "modifiedTime": 1700353901250,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "KxGE4o3RbJjLWp3g",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/items/zauberwirkungen/Stärke.json b/packs/items/zauberwirkungen/Stärke.json
index e37e375..32ca330 100644
--- a/packs/items/zauberwirkungen/Stärke.json
+++ b/packs/items/zauberwirkungen/Stärke.json
@@ -1,23 +1,36 @@
{
- "name": "St\u00e4rke",
- "type": "effect",
- "img": "icons/magic/control/buff-strength-muscle-damage-orange.webp",
- "system": {
- "description": "ARK S. 115
",
- "equippable": false,
- "equipped": true,
- "duration": { "time": 12, "unit": "round" },
- "value": 0,
- "magic": true,
- "rolls": { "formulas": {}, "output": "" },
- "mods": { "0": { "type": "attribute", "id": "st", "operation": "add", "value": 20 } },
- "calc": {}
- },
- "effects": [],
- "flags": { "core": { "sourceId": "Compendium.midgard5.zauberwirkungen.SsK0Uth6dFlJ4izO" } },
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1677808232488, "modifiedTime": 1700353901243, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "SsK0Uth6dFlJ4izO",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "St\u00e4rke",
+ "type": "effect",
+ "img": "icons/magic/control/buff-strength-muscle-damage-orange.webp",
+ "system": {
+ "description": "ARK S. 115
",
+ "equippable": false,
+ "equipped": true,
+ "duration": { "time": 12, "unit": "round" },
+ "value": 0,
+ "magic": true,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": { "type": "attribute", "id": "st", "operation": "add", "value": 20 }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {
+ "core": {
+ "sourceId": "Compendium.midgard5.zauberwirkungen.SsK0Uth6dFlJ4izO"
+ }
+ },
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1677808232488,
+ "modifiedTime": 1700353901243,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "SsK0Uth6dFlJ4izO",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/items/zauberwirkungen/Verfluchen.json b/packs/items/zauberwirkungen/Verfluchen.json
index a4fb2b0..429b707 100644
--- a/packs/items/zauberwirkungen/Verfluchen.json
+++ b/packs/items/zauberwirkungen/Verfluchen.json
@@ -1,23 +1,42 @@
{
- "name": "Verfluchen",
- "type": "effect",
- "img": "icons/magic/unholy/hands-praying-fire-green.webp",
- "system": {
- "description": "ARK S. 147
",
- "equippable": false,
- "equipped": true,
- "duration": { "time": 60, "unit": "round" },
- "value": 0,
- "magic": true,
- "rolls": { "formulas": {}, "output": "" },
- "mods": { "0": { "type": "attribute", "id": "", "operation": "subtract", "value": 5 }, "1": { "type": "skill", "id": "", "operation": "subtract", "value": 1 } },
- "calc": {}
- },
- "effects": [],
- "flags": { "core": { "sourceId": "Compendium.midgard5.zauberwirkungen.lEqFJcDY9QCh4Gmd" } },
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1677860239164, "modifiedTime": 1700353901249, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "lrV21pQjCGlxAqg9",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "Verfluchen",
+ "type": "effect",
+ "img": "icons/magic/unholy/hands-praying-fire-green.webp",
+ "system": {
+ "description": "ARK S. 147
",
+ "equippable": false,
+ "equipped": true,
+ "duration": { "time": 60, "unit": "round" },
+ "value": 0,
+ "magic": true,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": {
+ "type": "attribute",
+ "id": "",
+ "operation": "subtract",
+ "value": 5
+ },
+ "1": { "type": "skill", "id": "", "operation": "subtract", "value": 1 }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {
+ "core": {
+ "sourceId": "Compendium.midgard5.zauberwirkungen.lEqFJcDY9QCh4Gmd"
+ }
+ },
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1677860239164,
+ "modifiedTime": 1700353901249,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "lrV21pQjCGlxAqg9",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/items/zauberwirkungen/Verlangsamen.json b/packs/items/zauberwirkungen/Verlangsamen.json
index 1e57d28..104fe20 100644
--- a/packs/items/zauberwirkungen/Verlangsamen.json
+++ b/packs/items/zauberwirkungen/Verlangsamen.json
@@ -1,23 +1,37 @@
{
- "name": "Verlangsamen",
- "type": "effect",
- "img": "icons/commodities/leather/boot-torn-tan.webp",
- "system": {
- "description": "ARK S. 122
",
- "equippable": false,
- "equipped": true,
- "duration": { "time": 6, "unit": "round" },
- "value": 0,
- "magic": false,
- "rolls": { "formulas": {}, "output": "" },
- "mods": { "0": { "type": "stat", "id": "movement", "operation": "division", "value": 2 } },
- "calc": {}
- },
- "effects": [],
- "flags": {},
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700347925999, "modifiedTime": 1700353901246, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "yNwUqquDmxK6MvnQ",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "Verlangsamen",
+ "type": "effect",
+ "img": "icons/commodities/leather/boot-torn-tan.webp",
+ "system": {
+ "description": "ARK S. 122
",
+ "equippable": false,
+ "equipped": true,
+ "duration": { "time": 6, "unit": "round" },
+ "value": 0,
+ "magic": false,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": {
+ "type": "stat",
+ "id": "movement",
+ "operation": "division",
+ "value": 2
+ }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {},
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1700347925999,
+ "modifiedTime": 1700353901246,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "yNwUqquDmxK6MvnQ",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/items/zauberwirkungen/Verwünschen.json b/packs/items/zauberwirkungen/Verwünschen.json
index 971333f..3fcedb5 100644
--- a/packs/items/zauberwirkungen/Verwünschen.json
+++ b/packs/items/zauberwirkungen/Verwünschen.json
@@ -1,23 +1,42 @@
{
- "name": "Verw\u00fcnschen",
- "type": "effect",
- "img": "icons/magic/unholy/hands-praying-fire-green.webp",
- "system": {
- "description": "ARK S. 147
",
- "equippable": false,
- "equipped": true,
- "duration": { "time": 180, "unit": "round" },
- "value": 0,
- "magic": true,
- "rolls": { "formulas": {}, "output": "" },
- "mods": { "0": { "type": "attribute", "id": "", "operation": "subtract", "value": 5 }, "1": { "type": "skill", "id": "", "operation": "subtract", "value": 1 } },
- "calc": {}
- },
- "effects": [],
- "flags": { "core": { "sourceId": "Compendium.midgard5.zauberwirkungen.lEqFJcDY9QCh4Gmd" } },
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1677860239164, "modifiedTime": 1700353901243, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "lEqFJcDY9QCh4Gmd",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "Verw\u00fcnschen",
+ "type": "effect",
+ "img": "icons/magic/unholy/hands-praying-fire-green.webp",
+ "system": {
+ "description": "ARK S. 147
",
+ "equippable": false,
+ "equipped": true,
+ "duration": { "time": 180, "unit": "round" },
+ "value": 0,
+ "magic": true,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": {
+ "type": "attribute",
+ "id": "",
+ "operation": "subtract",
+ "value": 5
+ },
+ "1": { "type": "skill", "id": "", "operation": "subtract", "value": 1 }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {
+ "core": {
+ "sourceId": "Compendium.midgard5.zauberwirkungen.lEqFJcDY9QCh4Gmd"
+ }
+ },
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1677860239164,
+ "modifiedTime": 1700353901243,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "lEqFJcDY9QCh4Gmd",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/items/zauberwirkungen/Waffensegen.json b/packs/items/zauberwirkungen/Waffensegen.json
index ff865cd..616a730 100644
--- a/packs/items/zauberwirkungen/Waffensegen.json
+++ b/packs/items/zauberwirkungen/Waffensegen.json
@@ -1,24 +1,37 @@
{
- "name": "Waffensegen",
- "type": "effect",
- "img": "icons/weapons/swords/sword-runed-glowing.webp",
- "system": {
- "description": "ARK S. 148
",
- "equippable": false,
- "equipped": true,
- "duration": { "time": 60, "unit": "round" },
- "value": 0,
- "magic": false,
- "rolls": { "formulas": {}, "output": "" },
- "mods": {
- "0": { "type": "stat", "id": "attackBonus", "operation": "add", "value": 1 } },
- "calc": {}
- },
- "effects": [],
- "flags": {},
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700348426936, "modifiedTime": 1700353901246, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "X22fW1LZ4Ad0udov",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "Waffensegen",
+ "type": "effect",
+ "img": "icons/weapons/swords/sword-runed-glowing.webp",
+ "system": {
+ "description": "ARK S. 148
",
+ "equippable": false,
+ "equipped": true,
+ "duration": { "time": 60, "unit": "round" },
+ "value": 0,
+ "magic": false,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": {
+ "type": "stat",
+ "id": "attackBonus",
+ "operation": "add",
+ "value": 1
+ }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {},
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1700348426936,
+ "modifiedTime": 1700353901246,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "X22fW1LZ4Ad0udov",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/items/zauberwirkungen/Wagemut.json b/packs/items/zauberwirkungen/Wagemut.json
index 48a0f73..e801e2d 100644
--- a/packs/items/zauberwirkungen/Wagemut.json
+++ b/packs/items/zauberwirkungen/Wagemut.json
@@ -1,27 +1,53 @@
{
- "name": "Wagemut",
- "type": "effect",
- "img": "icons/magic/unholy/hand-weapon-glow-black-green.webp",
- "system": {
- "description": "ARK S. 148
",
- "equippable": false,
- "equipped": true,
- "duration": { "time": 12, "unit": "round" },
- "value": 0,
- "magic": true,
- "rolls": { "formulas": {}, "output": "" },
- "mods": {
- "0": { "type": "stat", "id": "defenseBonus", "operation": "subtract", "value": 2 },
- "1": { "type": "stat", "id": "attackBonus", "operation": "add", "value": 2 },
- "2": { "type": "stat", "id": "damageBonus", "operation": "add", "value": 1 }
- },
- "calc": {}
- },
- "effects": [],
- "flags": { "core": { "sourceId": "Compendium.midgard5.zauberwirkungen.izugfahUnOBnxIWL" } },
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1677858754955, "modifiedTime": 1700353901243, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "izugfahUnOBnxIWL",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "Wagemut",
+ "type": "effect",
+ "img": "icons/magic/unholy/hand-weapon-glow-black-green.webp",
+ "system": {
+ "description": "ARK S. 148
",
+ "equippable": false,
+ "equipped": true,
+ "duration": { "time": 12, "unit": "round" },
+ "value": 0,
+ "magic": true,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": {
+ "type": "stat",
+ "id": "defenseBonus",
+ "operation": "subtract",
+ "value": 2
+ },
+ "1": {
+ "type": "stat",
+ "id": "attackBonus",
+ "operation": "add",
+ "value": 2
+ },
+ "2": {
+ "type": "stat",
+ "id": "damageBonus",
+ "operation": "add",
+ "value": 1
+ }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {
+ "core": {
+ "sourceId": "Compendium.midgard5.zauberwirkungen.izugfahUnOBnxIWL"
+ }
+ },
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1677858754955,
+ "modifiedTime": 1700353901243,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "izugfahUnOBnxIWL",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/items/zauberwirkungen/WandelnwiederWind.json b/packs/items/zauberwirkungen/WandelnwiederWind.json
index 62266c5..de8fdb1 100644
--- a/packs/items/zauberwirkungen/WandelnwiederWind.json
+++ b/packs/items/zauberwirkungen/WandelnwiederWind.json
@@ -1,23 +1,37 @@
{
- "name": "Wandeln wie der Wind",
- "type": "effect",
- "img": "icons/equipment/feet/shoes-simple-leaf-green.webp",
- "system": {
- "description": "
ARK S. 160
",
- "equippable": false,
- "equipped": true,
- "duration": { "time": 60, "unit": "round" },
- "value": 0,
- "magic": false,
- "rolls": { "formulas": {}, "output": "" },
- "mods": { "0": { "type": "skill", "id": "midgard5.schleichen", "operation": "add", "value": 8 } },
- "calc": {}
- },
- "effects": [],
- "flags": {},
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700349585682, "modifiedTime": 1700353901248, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "NaqiHP74DQrgAGsb",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "Wandeln wie der Wind",
+ "type": "effect",
+ "img": "icons/equipment/feet/shoes-simple-leaf-green.webp",
+ "system": {
+ "description": "
ARK S. 160
",
+ "equippable": false,
+ "equipped": true,
+ "duration": { "time": 60, "unit": "round" },
+ "value": 0,
+ "magic": false,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": {
+ "type": "skill",
+ "id": "midgard5.schleichen",
+ "operation": "add",
+ "value": 8
+ }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {},
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1700349585682,
+ "modifiedTime": 1700353901248,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "NaqiHP74DQrgAGsb",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/items/zauberwirkungen/Wasseratmen.json b/packs/items/zauberwirkungen/Wasseratmen.json
index dfbdd39..f59c1ea 100644
--- a/packs/items/zauberwirkungen/Wasseratmen.json
+++ b/packs/items/zauberwirkungen/Wasseratmen.json
@@ -1,23 +1,43 @@
{
- "name": "Wasseratmen",
- "type": "effect",
- "img": "icons/environment/wilderness/cave-entrance-island.webp",
- "system": {
- "description": "ARK S. 127
",
- "equippable": false,
- "equipped": true,
- "duration": { "time": 8, "unit": "hour" },
- "value": 0,
- "magic": false,
- "rolls": { "formulas": {}, "output": "" },
- "mods": { "0": { "type": "stat", "id": "defenseBonus", "operation": "subtract", "value": 2 }, "1": { "type": "stat", "id": "attackBonus", "operation": "subtract", "value": 2 } },
- "calc": {}
- },
- "effects": [],
- "flags": {},
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700348312439, "modifiedTime": 1700353901246, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "q4PmonjWkBgDlnN3",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "Wasseratmen",
+ "type": "effect",
+ "img": "icons/environment/wilderness/cave-entrance-island.webp",
+ "system": {
+ "description": "ARK S. 127
",
+ "equippable": false,
+ "equipped": true,
+ "duration": { "time": 8, "unit": "hour" },
+ "value": 0,
+ "magic": false,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": {
+ "type": "stat",
+ "id": "defenseBonus",
+ "operation": "subtract",
+ "value": 2
+ },
+ "1": {
+ "type": "stat",
+ "id": "attackBonus",
+ "operation": "subtract",
+ "value": 2
+ }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {},
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1700348312439,
+ "modifiedTime": 1700353901246,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "q4PmonjWkBgDlnN3",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/items/zauberwirkungen/WundersameTarnung.json b/packs/items/zauberwirkungen/WundersameTarnung.json
index fcb4a5d..a69f84d 100644
--- a/packs/items/zauberwirkungen/WundersameTarnung.json
+++ b/packs/items/zauberwirkungen/WundersameTarnung.json
@@ -1,23 +1,37 @@
{
- "name": "Wundersame Tarnung",
- "type": "effect",
- "img": "icons/environment/wilderness/tree-spruce.webp",
- "system": {
- "description": "ARK S. 161
",
- "equippable": false,
- "equipped": true,
- "duration": { "time": 180, "unit": "round" },
- "value": 0,
- "magic": false,
- "rolls": { "formulas": {}, "output": "" },
- "mods": { "0": { "type": "skill", "id": "midgard5.tarnen", "operation": "add", "value": 12 } },
- "calc": {}
- },
- "effects": [],
- "flags": {},
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700349636941, "modifiedTime": 1700353901248, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "48KCXpchNUaFCGPE",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "Wundersame Tarnung",
+ "type": "effect",
+ "img": "icons/environment/wilderness/tree-spruce.webp",
+ "system": {
+ "description": "ARK S. 161
",
+ "equippable": false,
+ "equipped": true,
+ "duration": { "time": 180, "unit": "round" },
+ "value": 0,
+ "magic": false,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": {
+ "type": "skill",
+ "id": "midgard5.tarnen",
+ "operation": "add",
+ "value": 12
+ }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {},
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1700349636941,
+ "modifiedTime": 1700353901248,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "48KCXpchNUaFCGPE",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/items/zauberwirkungen/Zaubermacht.json b/packs/items/zauberwirkungen/Zaubermacht.json
index 48317af..7503a3b 100644
--- a/packs/items/zauberwirkungen/Zaubermacht.json
+++ b/packs/items/zauberwirkungen/Zaubermacht.json
@@ -1,23 +1,41 @@
{
- "name": "Zaubermacht",
- "type": "effect",
- "img": "icons/magic/control/debuff-energy-hold-levitate-teal-blue.webp",
- "system": {
- "description": "ARK S. 72
",
- "equippable": false,
- "equipped": true,
- "duration": { "time": 60, "unit": "round" },
- "value": 0,
- "magic": true,
- "rolls": { "formulas": {}, "output": "" },
- "mods": { "0": { "type": "stat", "id": "spellCasting", "operation": "add", "value": 2 } },
- "calc": {}
- },
- "effects": [],
- "flags": { "core": { "sourceId": "Compendium.midgard5.zauberwirkungen.pQixwxqhNsgpLk5I" } },
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1677808333782, "modifiedTime": 1700353901244, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "pQixwxqhNsgpLk5I",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "Zaubermacht",
+ "type": "effect",
+ "img": "icons/magic/control/debuff-energy-hold-levitate-teal-blue.webp",
+ "system": {
+ "description": "ARK S. 72
",
+ "equippable": false,
+ "equipped": true,
+ "duration": { "time": 60, "unit": "round" },
+ "value": 0,
+ "magic": true,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": {
+ "type": "stat",
+ "id": "spellCasting",
+ "operation": "add",
+ "value": 2
+ }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {
+ "core": {
+ "sourceId": "Compendium.midgard5.zauberwirkungen.pQixwxqhNsgpLk5I"
+ }
+ },
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1677808333782,
+ "modifiedTime": 1700353901244,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "pQixwxqhNsgpLk5I",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/items/zauberwirkungen/Zauberschmiede.json b/packs/items/zauberwirkungen/Zauberschmiede.json
index 2388e40..f470514 100644
--- a/packs/items/zauberwirkungen/Zauberschmiede.json
+++ b/packs/items/zauberwirkungen/Zauberschmiede.json
@@ -1,24 +1,37 @@
{
- "name": "Zauberschmiede",
- "type": "effect",
- "img": "icons/weapons/swords/sword-runed-glowing.webp",
- "system": {
- "description": "ARK S. 132
",
- "equippable": false,
- "equipped": true,
- "duration": { "time": 60, "unit": "round" },
- "value": 0,
- "magic": false,
- "rolls": { "formulas": {}, "output": "" },
- "mods": {
- "0": { "type": "stat", "id": "attackBonus", "operation": "add", "value": 1 } },
- "calc": {}
- },
- "effects": [],
- "flags": {},
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700348426936, "modifiedTime": 1700353901249, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "U03XlDRnrrvw4zMM",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "Zauberschmiede",
+ "type": "effect",
+ "img": "icons/weapons/swords/sword-runed-glowing.webp",
+ "system": {
+ "description": "ARK S. 132
",
+ "equippable": false,
+ "equipped": true,
+ "duration": { "time": 60, "unit": "round" },
+ "value": 0,
+ "magic": false,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": {
+ "type": "stat",
+ "id": "attackBonus",
+ "operation": "add",
+ "value": 1
+ }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {},
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1700348426936,
+ "modifiedTime": 1700353901249,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "U03XlDRnrrvw4zMM",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/items/zauberwirkungen/Zaubersprung.json b/packs/items/zauberwirkungen/Zaubersprung.json
index 4573bbe..02ceb67 100644
--- a/packs/items/zauberwirkungen/Zaubersprung.json
+++ b/packs/items/zauberwirkungen/Zaubersprung.json
@@ -1,23 +1,37 @@
{
- "name": "Zaubersprung",
- "type": "effect",
- "img": "icons/skills/movement/figure-running-gray.webp",
- "system": {
- "description": "ARK S. 161
",
- "equippable": false,
- "equipped": true,
- "duration": { "time": 1, "unit": "round" },
- "value": 0,
- "magic": false,
- "rolls": { "formulas": {}, "output": "" },
- "mods": { "0": { "type": "skill", "id": "midgard5.gelaendelauf", "operation": "add", "value": 8 } },
- "calc": {}
- },
- "effects": [],
- "flags": {},
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700349693679, "modifiedTime": 1700353901248, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "TRgAdyTpNX6xFM7E",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "Zaubersprung",
+ "type": "effect",
+ "img": "icons/skills/movement/figure-running-gray.webp",
+ "system": {
+ "description": "ARK S. 161
",
+ "equippable": false,
+ "equipped": true,
+ "duration": { "time": 1, "unit": "round" },
+ "value": 0,
+ "magic": false,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": {
+ "type": "skill",
+ "id": "midgard5.gelaendelauf",
+ "operation": "add",
+ "value": 8
+ }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {},
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1700349693679,
+ "modifiedTime": 1700353901248,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "TRgAdyTpNX6xFM7E",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/items/zauberwirkungen/Zielsuche.json b/packs/items/zauberwirkungen/Zielsuche.json
index f67cdad..220e537 100644
--- a/packs/items/zauberwirkungen/Zielsuche.json
+++ b/packs/items/zauberwirkungen/Zielsuche.json
@@ -1,23 +1,37 @@
{
- "name": "Zielsuche",
- "type": "effect",
- "img": "icons/skills/targeting/crosshair-pointed-orange.webp",
- "system": {
- "description": "ARK S. 133
",
- "equippable": false,
- "equipped": true,
- "duration": { "time": 60, "unit": "round" },
- "value": 0,
- "magic": false,
- "rolls": { "formulas": {}, "output": "" },
- "mods": { "0": { "type": "stat", "id": "attackBonus", "operation": "add", "value": 4 } },
- "calc": {}
- },
- "effects": [],
- "flags": {},
- "_stats": { "systemId": "midgard5", "systemVersion": "1.2.1", "coreVersion": "10.312", "createdTime": 1700348554050, "modifiedTime": 1700353901247, "lastModifiedBy": "cb3PEvEU0kHkMdjb" },
- "_id": "4z7wUQSjp90LWQ0B",
- "folder": null,
- "sort": 0,
- "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
+ "name": "Zielsuche",
+ "type": "effect",
+ "img": "icons/skills/targeting/crosshair-pointed-orange.webp",
+ "system": {
+ "description": "ARK S. 133
",
+ "equippable": false,
+ "equipped": true,
+ "duration": { "time": 60, "unit": "round" },
+ "value": 0,
+ "magic": false,
+ "rolls": { "formulas": {}, "output": "" },
+ "mods": {
+ "0": {
+ "type": "stat",
+ "id": "attackBonus",
+ "operation": "add",
+ "value": 4
+ }
+ },
+ "calc": {}
+ },
+ "effects": [],
+ "flags": {},
+ "_stats": {
+ "systemId": "midgard5",
+ "systemVersion": "1.2.1",
+ "coreVersion": "10.312",
+ "createdTime": 1700348554050,
+ "modifiedTime": 1700353901247,
+ "lastModifiedBy": "cb3PEvEU0kHkMdjb"
+ },
+ "_id": "4z7wUQSjp90LWQ0B",
+ "folder": null,
+ "sort": 0,
+ "ownership": { "default": 0, "cb3PEvEU0kHkMdjb": 3 }
}
diff --git a/packs/macros/makros-kritische-ereignisse/kritische_fehler_beim_zaubern.json b/packs/macros/makros-kritische-ereignisse/kritische_fehler_beim_zaubern.json
index 228618d..8689e9a 100644
--- a/packs/macros/makros-kritische-ereignisse/kritische_fehler_beim_zaubern.json
+++ b/packs/macros/makros-kritische-ereignisse/kritische_fehler_beim_zaubern.json
@@ -1,19 +1,19 @@
{
- "name": "Kritische Fehler beim Zaubern",
- "permission": {
- "default": 2,
- "CBq5YXAqbO7HoJ03": 3
- },
- "type": "script",
- "flags": {
- "core": {
- "sourceId": "Macro.e4KLlTBq8Z4Pt7In"
- }
- },
- "scope": "global",
- "command": "await game.tables.getName(\"Kritischer Fehler beim Zaubern\").draw()",
- "author": "CBq5YXAqbO7HoJ03",
- "img": "systems/midgard5/assets/icons/macro/kritfehlerzauber.svg",
- "actorIds": [],
- "_id": "XtzGuyYRyX8wVi1e"
+ "name": "Kritische Fehler beim Zaubern",
+ "permission": {
+ "default": 2,
+ "CBq5YXAqbO7HoJ03": 3
+ },
+ "type": "script",
+ "flags": {
+ "core": {
+ "sourceId": "Macro.e4KLlTBq8Z4Pt7In"
+ }
+ },
+ "scope": "global",
+ "command": "await game.tables.getName(\"Kritischer Fehler beim Zaubern\").draw()",
+ "author": "CBq5YXAqbO7HoJ03",
+ "img": "systems/midgard5/assets/icons/macro/kritfehlerzauber.svg",
+ "actorIds": [],
+ "_id": "XtzGuyYRyX8wVi1e"
}
diff --git a/packs/macros/makros-kritische-ereignisse/kritischer_erfolg_bei_der_abwehr.json b/packs/macros/makros-kritische-ereignisse/kritischer_erfolg_bei_der_abwehr.json
index 84d2265..6aae8ea 100644
--- a/packs/macros/makros-kritische-ereignisse/kritischer_erfolg_bei_der_abwehr.json
+++ b/packs/macros/makros-kritische-ereignisse/kritischer_erfolg_bei_der_abwehr.json
@@ -1,19 +1,19 @@
{
- "name": "Kritischer Erfolg bei der Abwehr",
- "permission": {
- "default": 2,
- "CBq5YXAqbO7HoJ03": 3
- },
- "type": "script",
- "flags": {
- "core": {
- "sourceId": "Macro.P6jQGko7PdG6Xlhe"
- }
- },
- "scope": "global",
- "command": "await game.tables.getName(\"Kritischer Erfolg bei der Abwehr\").draw()",
- "author": "CBq5YXAqbO7HoJ03",
- "img": "systems/midgard5/assets/icons/macro/kriterfolgabwehr.svg",
- "actorIds": [],
- "_id": "qWyrwvh7g9CbTKg9"
+ "name": "Kritischer Erfolg bei der Abwehr",
+ "permission": {
+ "default": 2,
+ "CBq5YXAqbO7HoJ03": 3
+ },
+ "type": "script",
+ "flags": {
+ "core": {
+ "sourceId": "Macro.P6jQGko7PdG6Xlhe"
+ }
+ },
+ "scope": "global",
+ "command": "await game.tables.getName(\"Kritischer Erfolg bei der Abwehr\").draw()",
+ "author": "CBq5YXAqbO7HoJ03",
+ "img": "systems/midgard5/assets/icons/macro/kriterfolgabwehr.svg",
+ "actorIds": [],
+ "_id": "qWyrwvh7g9CbTKg9"
}
diff --git a/packs/macros/makros-kritische-ereignisse/kritischer_fehler_bei_angriffen.json b/packs/macros/makros-kritische-ereignisse/kritischer_fehler_bei_angriffen.json
index 70f9dbf..b6e5193 100644
--- a/packs/macros/makros-kritische-ereignisse/kritischer_fehler_bei_angriffen.json
+++ b/packs/macros/makros-kritische-ereignisse/kritischer_fehler_bei_angriffen.json
@@ -1,19 +1,19 @@
{
- "name": "Kritischer Fehler bei Angriffen",
- "permission": {
- "default": 2,
- "CBq5YXAqbO7HoJ03": 3
- },
- "type": "script",
- "flags": {
- "core": {
- "sourceId": "Macro.FZUermrYHSbrEluS"
- }
- },
- "scope": "global",
- "command": "await game.tables.getName(\"Kritischer Fehler bei Angriffen\").draw()",
- "author": "CBq5YXAqbO7HoJ03",
- "img": "systems/midgard5/assets/icons/macro/kritfehlerangriff.svg",
- "actorIds": [],
- "_id": "798kmgnTkpfP89Z9"
+ "name": "Kritischer Fehler bei Angriffen",
+ "permission": {
+ "default": 2,
+ "CBq5YXAqbO7HoJ03": 3
+ },
+ "type": "script",
+ "flags": {
+ "core": {
+ "sourceId": "Macro.FZUermrYHSbrEluS"
+ }
+ },
+ "scope": "global",
+ "command": "await game.tables.getName(\"Kritischer Fehler bei Angriffen\").draw()",
+ "author": "CBq5YXAqbO7HoJ03",
+ "img": "systems/midgard5/assets/icons/macro/kritfehlerangriff.svg",
+ "actorIds": [],
+ "_id": "798kmgnTkpfP89Z9"
}
diff --git a/packs/macros/makros-kritische-ereignisse/kritischer_fehler_bei_der_abwehr.json b/packs/macros/makros-kritische-ereignisse/kritischer_fehler_bei_der_abwehr.json
index f7f9c08..a925b60 100644
--- a/packs/macros/makros-kritische-ereignisse/kritischer_fehler_bei_der_abwehr.json
+++ b/packs/macros/makros-kritische-ereignisse/kritischer_fehler_bei_der_abwehr.json
@@ -1,19 +1,19 @@
{
- "name": "Kritischer Fehler bei der Abwehr",
- "permission": {
- "default": 2,
- "CBq5YXAqbO7HoJ03": 3
- },
- "type": "script",
- "flags": {
- "core": {
- "sourceId": "Macro.k1tLp8Q2NY9twiZ6"
- }
- },
- "scope": "global",
- "command": "await game.tables.getName(\"Kritischer Fehler bei der Abwehr\").draw()",
- "author": "CBq5YXAqbO7HoJ03",
- "img": "systems/midgard5/assets/icons/macro/kritfehlerabwehr.svg",
- "actorIds": [],
- "_id": "W7rYb00B6rtabV05"
+ "name": "Kritischer Fehler bei der Abwehr",
+ "permission": {
+ "default": 2,
+ "CBq5YXAqbO7HoJ03": 3
+ },
+ "type": "script",
+ "flags": {
+ "core": {
+ "sourceId": "Macro.k1tLp8Q2NY9twiZ6"
+ }
+ },
+ "scope": "global",
+ "command": "await game.tables.getName(\"Kritischer Fehler bei der Abwehr\").draw()",
+ "author": "CBq5YXAqbO7HoJ03",
+ "img": "systems/midgard5/assets/icons/macro/kritfehlerabwehr.svg",
+ "actorIds": [],
+ "_id": "W7rYb00B6rtabV05"
}
diff --git a/packs/macros/makros-kritische-ereignisse/kritischer_schaden.json b/packs/macros/makros-kritische-ereignisse/kritischer_schaden.json
index 001d6cd..d24a3f0 100644
--- a/packs/macros/makros-kritische-ereignisse/kritischer_schaden.json
+++ b/packs/macros/makros-kritische-ereignisse/kritischer_schaden.json
@@ -1,19 +1,19 @@
{
- "name": "Kritischer Schaden",
- "permission": {
- "default": 2,
- "CBq5YXAqbO7HoJ03": 3
- },
- "type": "script",
- "flags": {
- "core": {
- "sourceId": "Macro.QZlbT0tgD2aYW5YJ"
- }
- },
- "scope": "global",
- "command": "await game.tables.getName(\"Kritischer Schaden\").draw()",
- "author": "CBq5YXAqbO7HoJ03",
- "img": "systems/midgard5/assets/icons/macro/kriterfolgangriff.svg",
- "actorIds": [],
- "_id": "48DUqxdpHDCGKOHp"
+ "name": "Kritischer Schaden",
+ "permission": {
+ "default": 2,
+ "CBq5YXAqbO7HoJ03": 3
+ },
+ "type": "script",
+ "flags": {
+ "core": {
+ "sourceId": "Macro.QZlbT0tgD2aYW5YJ"
+ }
+ },
+ "scope": "global",
+ "command": "await game.tables.getName(\"Kritischer Schaden\").draw()",
+ "author": "CBq5YXAqbO7HoJ03",
+ "img": "systems/midgard5/assets/icons/macro/kriterfolgangriff.svg",
+ "actorIds": [],
+ "_id": "48DUqxdpHDCGKOHp"
}
diff --git a/packs/macros/makros-standardwurfel/1W10.json b/packs/macros/makros-standardwurfel/1W10.json
index 5e3c962..b2d0f0b 100644
--- a/packs/macros/makros-standardwurfel/1W10.json
+++ b/packs/macros/makros-standardwurfel/1W10.json
@@ -1,19 +1,19 @@
{
- "name": "1W10",
- "permission": {
- "default": 2,
- "CBq5YXAqbO7HoJ03": 3
- },
- "type": "chat",
- "flags": {
- "core": {
- "sourceId": "Macro.TqmUKpMpY4GhiTML"
- }
- },
- "scope": "global",
- "command": "/r 1d10",
- "author": "CBq5YXAqbO7HoJ03",
- "img": "systems/midgard5/assets/icons/wurfel/w10.svg",
- "actorIds": [],
- "_id": "YWsPRUpZpgLBKIB3"
-}
\ No newline at end of file
+ "name": "1W10",
+ "permission": {
+ "default": 2,
+ "CBq5YXAqbO7HoJ03": 3
+ },
+ "type": "chat",
+ "flags": {
+ "core": {
+ "sourceId": "Macro.TqmUKpMpY4GhiTML"
+ }
+ },
+ "scope": "global",
+ "command": "/r 1d10",
+ "author": "CBq5YXAqbO7HoJ03",
+ "img": "systems/midgard5/assets/icons/wurfel/w10.svg",
+ "actorIds": [],
+ "_id": "YWsPRUpZpgLBKIB3"
+}
diff --git a/packs/macros/makros-standardwurfel/1W100.json b/packs/macros/makros-standardwurfel/1W100.json
index 041b237..f2cf492 100644
--- a/packs/macros/makros-standardwurfel/1W100.json
+++ b/packs/macros/makros-standardwurfel/1W100.json
@@ -1,19 +1,19 @@
{
- "name": "1W100",
- "permission": {
- "default": 2,
- "CBq5YXAqbO7HoJ03": 3
- },
- "type": "chat",
- "flags": {
- "core": {
- "sourceId": "Macro.S01PfXnvLPeuKOH8"
- }
- },
- "scope": "global",
- "command": "/r 1d100",
- "author": "CBq5YXAqbO7HoJ03",
- "img": "systems/midgard5/assets/icons/wurfel/w100.svg",
- "actorIds": [],
- "_id": "pXZIfqDIX9VKYonr"
-}
\ No newline at end of file
+ "name": "1W100",
+ "permission": {
+ "default": 2,
+ "CBq5YXAqbO7HoJ03": 3
+ },
+ "type": "chat",
+ "flags": {
+ "core": {
+ "sourceId": "Macro.S01PfXnvLPeuKOH8"
+ }
+ },
+ "scope": "global",
+ "command": "/r 1d100",
+ "author": "CBq5YXAqbO7HoJ03",
+ "img": "systems/midgard5/assets/icons/wurfel/w100.svg",
+ "actorIds": [],
+ "_id": "pXZIfqDIX9VKYonr"
+}
diff --git a/packs/macros/makros-standardwurfel/1W20.json b/packs/macros/makros-standardwurfel/1W20.json
index cff36fd..ba6cd3c 100644
--- a/packs/macros/makros-standardwurfel/1W20.json
+++ b/packs/macros/makros-standardwurfel/1W20.json
@@ -1,19 +1,19 @@
{
- "name": "1W20",
- "permission": {
- "default": 2,
- "CBq5YXAqbO7HoJ03": 3
- },
- "type": "chat",
- "flags": {
- "core": {
- "sourceId": "Macro.mj9nIEgk0UDz8tbH"
- }
- },
- "scope": "global",
- "command": "/r 1d20",
- "author": "CBq5YXAqbO7HoJ03",
- "img": "systems/midgard5/assets/icons/wurfel/w20.svg",
- "actorIds": [],
- "_id": "qBoxslCQXxR22xKc"
-}
\ No newline at end of file
+ "name": "1W20",
+ "permission": {
+ "default": 2,
+ "CBq5YXAqbO7HoJ03": 3
+ },
+ "type": "chat",
+ "flags": {
+ "core": {
+ "sourceId": "Macro.mj9nIEgk0UDz8tbH"
+ }
+ },
+ "scope": "global",
+ "command": "/r 1d20",
+ "author": "CBq5YXAqbO7HoJ03",
+ "img": "systems/midgard5/assets/icons/wurfel/w20.svg",
+ "actorIds": [],
+ "_id": "qBoxslCQXxR22xKc"
+}
diff --git a/packs/macros/makros-standardwurfel/1W6.json b/packs/macros/makros-standardwurfel/1W6.json
index de00145..cf5d425 100644
--- a/packs/macros/makros-standardwurfel/1W6.json
+++ b/packs/macros/makros-standardwurfel/1W6.json
@@ -1,19 +1,19 @@
{
- "name": "1W6",
- "permission": {
- "default": 2,
- "CBq5YXAqbO7HoJ03": 3
- },
- "type": "chat",
- "flags": {
- "core": {
- "sourceId": "Macro.QBhV6De80g1wH6ot"
- }
- },
- "scope": "global",
- "command": "/r 1d6",
- "author": "CBq5YXAqbO7HoJ03",
- "img": "systems/midgard5/assets/icons/wurfel/w6.svg",
- "actorIds": [],
- "_id": "5tpfRgbM5sTL9gur"
-}
\ No newline at end of file
+ "name": "1W6",
+ "permission": {
+ "default": 2,
+ "CBq5YXAqbO7HoJ03": 3
+ },
+ "type": "chat",
+ "flags": {
+ "core": {
+ "sourceId": "Macro.QBhV6De80g1wH6ot"
+ }
+ },
+ "scope": "global",
+ "command": "/r 1d6",
+ "author": "CBq5YXAqbO7HoJ03",
+ "img": "systems/midgard5/assets/icons/wurfel/w6.svg",
+ "actorIds": [],
+ "_id": "5tpfRgbM5sTL9gur"
+}
diff --git a/packs/rolltables/tabellen-kritische-ereignisse/kritische_fehler_beim_zaubern.json b/packs/rolltables/tabellen-kritische-ereignisse/kritische_fehler_beim_zaubern.json
index f28e71e..e67a483 100644
--- a/packs/rolltables/tabellen-kritische-ereignisse/kritische_fehler_beim_zaubern.json
+++ b/packs/rolltables/tabellen-kritische-ereignisse/kritische_fehler_beim_zaubern.json
@@ -1,163 +1,133 @@
{
- "name": "Kritische Fehler beim Zaubern",
- "permission": {
- "default": 2,
- "CBq5YXAqbO7HoJ03": 3
- },
- "flags": {
- "exportSource": {
- "world": "midgard-test",
- "system": "midgard5",
- "coreVersion": "0.7.9",
- "systemVersion": 0.02
- }
- },
- "img": "icons/svg/book.svg",
- "description": "Tabelle 1: Kritische Fehler Beim Zaubern * : Die Magie wirkt auf ein falsches Ziel oder hat einen unerwünschten Effekt. Werden dabei Wesen betroffen, die nicht verzaubert werden wollen, steht ihnen ein WW:Resistenz oder ein WW:Abwehr zu. Dabei zählt allerdings nicht das Würfelergebnis von 1, das zu dem kritischen Fehler geführt hat, sondern der ungeschickte Zauberer wiederholt in diesen Fällen den EW:Zaubern. Diesem neuen Gesamtergebnis müssen die Opfer \ndes kritischen Fehlers widerstehen, um der magischen Wirkung \nzu entgehen - auch wenn es unter 20 liegt. Fällt bei diesem wiederholten EW:Zaubern eine 1 oder eine 20, so hat dies keine besonderen Folgen.Wird ein kritischer Fehler erwürfelt, der für einen Spruch sinnlos ist, wird stattdessen der Zauberer geschwächt. Er kann [[1d6]] Runden nicht zaubern. ",
- "results": [
- {
- "_id": "LW9UnEaonREGKzTy",
- "flags": {},
- "type": 0,
- "text": "Keine besonderen Auswirkungen.",
- "img": "icons/svg/d20-black.svg",
- "resultId": "",
- "weight": 10,
- "range": [
- 1,
- 10
- ],
- "drawn": false
- },
- {
- "_id": "G7GgXxFcsfsbUcwi",
- "flags": {},
- "type": 0,
- "text": "* Der Zauberer verspricht sich oder kann seine Gedanken nicht zusammenhalten. Es kommt zu einer Entladung magischer Energie, die wirkungslos verpufft, dem Zauberer aber einen leichten thaumatischen Schock versetzt. Er kann [[1d6]] Runden (*10 sec) lang nicht zaubern.",
- "img": "icons/svg/d20-black.svg",
- "resultId": "",
- "weight": 20,
- "range": [
- 11,
- 30
- ],
- "drawn": false
- },
- {
- "_id": "7vVkIs4duqhpJaKq",
- "flags": {},
- "type": 0,
- "text": "Der Zauberer unterschätzt das Ausmaß des Flusses arkaner Energie. Der Zauberer setzt mehr Magan in Bewegung als nötig. Der Überfluss entzieht sich seiner Kontrolle und breitet sich schlagartig in seinem Astralleib aus. Diese Störung lässt den Spruch fehlschlagen. Der Zauberer verliert dadurch doppelt so viele AP wie üblich.",
- "img": "icons/svg/d20-black.svg",
- "resultId": "",
- "weight": 20,
- "range": [
- 31,
- 50
- ],
- "drawn": false
- },
- {
- "_id": "S5d86WFP7bCmatNp",
- "flags": {},
- "type": 0,
- "text": "* Der Zauberer irrt sich bei der Festlegung des Effekts. Das Opfer wird gestärkt statt geschwächt, verwundet statt geheilt, es wird wärmer statt kühler usw. Soweit möglich, geschieht das Gegenteil dessen, was der Zauberer erreichen wollte.",
- "img": "icons/svg/d20-black.svg",
- "resultId": "",
- "weight": 10,
- "range": [
- 51,
- 60
- ],
- "drawn": false
- },
- {
- "_id": "I3XXLhTRCdE19Vmd",
- "flags": {},
- "type": 0,
- "text": "* Der Zauberer irrt sich bei der Auswahl des Opfers/ des Wirkungsbereichs. Der Spruch wirkt auf ein zufällig bestimmtes Wesen oder Objekt innerhalb der Reichweite. Bei räumlichen Wirkungsbereichen breitet sich die Magie in die genau entgegengesetzte Richtung (Kegel oder Strahl) aus bzw. liegt das Zentrum der Wirkung in entgegengesetzter Richtung vom Zauberer aus gesehen (Umkreis).",
- "img": "icons/svg/d20-black.svg",
- "resultId": "",
- "weight": 10,
- "range": [
- 61,
- 70
- ],
- "drawn": false
- },
- {
- "_id": "ciB0pGZyV4KjV5iO",
- "flags": {},
- "type": 0,
- "text": "Der Zauberer wird geschwächt. Der Spruch misslingt, aber die bereits freigesetzte Energie schwächt Körper und Geist des Zauberers. Er verliert [[1d6]] AP und kann [[1d6*10]] min lang nicht zaubern.",
- "img": "icons/svg/d20-black.svg",
- "resultId": "",
- "weight": 10,
- "range": [
- 71,
- 80
- ],
- "drawn": false
- },
- {
- "_id": "xx6BVgf3NbpFJLaQ",
- "flags": {},
- "type": 0,
- "text": "Es kommt zu einer magischen Stauung. Die falsche Ausführung des Zaubers verhindert die Weiterleitung der erzeugten arkanen Energie. Die starke Ansammlung von Magan im Argyriston des Zauberers zieht dieses in Mitleidenschaft. Sein Zaubertalent sinkt für [[1d6]] Tage auf die Hälfte des normalen Wertes - mit entsprechenden Folgen für seinen persönlichen Zauberbonus. Dieser negative Effekt kann mit Allheilung vorzeitig aufgehoben werden.",
- "img": "icons/svg/d20-black.svg",
- "resultId": "",
- "weight": 10,
- "range": [
- 81,
- 90
- ],
- "drawn": false
- },
- {
- "_id": "Q3QjCiHYzLVtrXz3",
- "flags": {},
- "type": 0,
- "text": "Der Zauberer erleidet eine schwere Bewusstseinsstörung. Die Entladung magischer Energie beim Scheitern des Spruches versetzt dem Zauberer einen schweren thaumatischen Schock. Er verliert dadurch [[1d6]] LP und AP und kann in der nächsten Stunde nicht zaubern. Übersteigen die LP-Verluste ein Drittel des LP Maximums, so fällt der Zauberer in ein Koma, aus dem er nach [[1d6]] Tagen erwacht. Mit Allheilung kann er vorher aufgeweckt werden.",
- "img": "icons/svg/d20-black.svg",
- "resultId": "",
- "weight": 5,
- "range": [
- 91,
- 95
- ],
- "drawn": false
- },
- {
- "_id": "QICP7DgbyTmp1Nns",
- "flags": {},
- "type": 0,
- "text": "* Der Zauberer verzaubert sich selbst. Bei einem Geistes- oder Körperzauber trifft die volle Wirkung der Magie den Zauberer selbst, wenn ihm ein WW:Resistenz misslingt. Schützende Zauber funktionieren also gegebenenfalls ganz normal (Glück im Unglück). Kontrollzauber wie Macht über Menschen führen zur vorübergehenden Handlungsunfähigkeit des Zauberers; sein Geist versucht, die Kontrolle über sich selbst zu übernehmen, so dass er völlig mit sich selbst beschäftigt ist, bis ihm ein alle 2 min erlaubter EW:Resistenz gelingt. Sprüche, die wie Macht über die belebte Natur nur auf Tiere wirken, haben keinen Effekt. Bei Umgebungszaubern tritt stattdessen der unter 91-95 beschriebene Effekt ein.",
- "img": "icons/svg/d20-black.svg",
- "resultId": "",
- "weight": 4,
- "range": [
- 96,
- 99
- ],
- "drawn": false
- },
- {
- "_id": "qY2J5MqMZvNzspnt",
- "flags": {},
- "type": 0,
- "text": "Zauberwerk wird in Mitleidenschaft gezogen. Der Spruch misslingt; die dabei freigesetzte Energie stört die Magie von Zauberwerk, das der Zauberer mit sich führt. Jeder magische Gegenstand in bis zu 1 m Entfernung ist mit einer Chance von 10%+Stufe des misslungenen Zaubers betroffen: Zaubermittel (Trünke, Kräuter usw.) verlieren ihre Eigenschaften, Amulette werden wirkungslos, Spruchrollen leeren sich. Bei verzauberten Waffen oder Rüstungen gehen [[1d6–3]] von allen magischen Zuschlägen verloren. Bei Artefakten mit mehreren Wirkungen wird für jede einzeln gewürfelt, ob sie betroffen ist.",
- "img": "icons/svg/d20-black.svg",
- "resultId": "",
- "weight": 1,
- "range": [
- 100,
- 100
- ],
- "drawn": false
- }
- ],
- "formula": "1d100",
- "replacement": true,
- "displayRoll": true,
- "_id": "PRovcPRqdrvFRpFN"
-}
\ No newline at end of file
+ "name": "Kritische Fehler beim Zaubern",
+ "permission": {
+ "default": 2,
+ "CBq5YXAqbO7HoJ03": 3
+ },
+ "flags": {
+ "exportSource": {
+ "world": "midgard-test",
+ "system": "midgard5",
+ "coreVersion": "0.7.9",
+ "systemVersion": 0.02
+ }
+ },
+ "img": "icons/svg/book.svg",
+ "description": "Tabelle 1: Kritische Fehler Beim Zaubern * : Die Magie wirkt auf ein falsches Ziel oder hat einen unerwünschten Effekt. Werden dabei Wesen betroffen, die nicht verzaubert werden wollen, steht ihnen ein WW:Resistenz oder ein WW:Abwehr zu. Dabei zählt allerdings nicht das Würfelergebnis von 1, das zu dem kritischen Fehler geführt hat, sondern der ungeschickte Zauberer wiederholt in diesen Fällen den EW:Zaubern. Diesem neuen Gesamtergebnis müssen die Opfer \ndes kritischen Fehlers widerstehen, um der magischen Wirkung \nzu entgehen - auch wenn es unter 20 liegt. Fällt bei diesem wiederholten EW:Zaubern eine 1 oder eine 20, so hat dies keine besonderen Folgen.Wird ein kritischer Fehler erwürfelt, der für einen Spruch sinnlos ist, wird stattdessen der Zauberer geschwächt. Er kann [[1d6]] Runden nicht zaubern. ",
+ "results": [
+ {
+ "_id": "LW9UnEaonREGKzTy",
+ "flags": {},
+ "type": 0,
+ "text": "Keine besonderen Auswirkungen.",
+ "img": "icons/svg/d20-black.svg",
+ "resultId": "",
+ "weight": 10,
+ "range": [1, 10],
+ "drawn": false
+ },
+ {
+ "_id": "G7GgXxFcsfsbUcwi",
+ "flags": {},
+ "type": 0,
+ "text": "* Der Zauberer verspricht sich oder kann seine Gedanken nicht zusammenhalten. Es kommt zu einer Entladung magischer Energie, die wirkungslos verpufft, dem Zauberer aber einen leichten thaumatischen Schock versetzt. Er kann [[1d6]] Runden (*10 sec) lang nicht zaubern.",
+ "img": "icons/svg/d20-black.svg",
+ "resultId": "",
+ "weight": 20,
+ "range": [11, 30],
+ "drawn": false
+ },
+ {
+ "_id": "7vVkIs4duqhpJaKq",
+ "flags": {},
+ "type": 0,
+ "text": "Der Zauberer unterschätzt das Ausmaß des Flusses arkaner Energie. Der Zauberer setzt mehr Magan in Bewegung als nötig. Der Überfluss entzieht sich seiner Kontrolle und breitet sich schlagartig in seinem Astralleib aus. Diese Störung lässt den Spruch fehlschlagen. Der Zauberer verliert dadurch doppelt so viele AP wie üblich.",
+ "img": "icons/svg/d20-black.svg",
+ "resultId": "",
+ "weight": 20,
+ "range": [31, 50],
+ "drawn": false
+ },
+ {
+ "_id": "S5d86WFP7bCmatNp",
+ "flags": {},
+ "type": 0,
+ "text": "* Der Zauberer irrt sich bei der Festlegung des Effekts. Das Opfer wird gestärkt statt geschwächt, verwundet statt geheilt, es wird wärmer statt kühler usw. Soweit möglich, geschieht das Gegenteil dessen, was der Zauberer erreichen wollte.",
+ "img": "icons/svg/d20-black.svg",
+ "resultId": "",
+ "weight": 10,
+ "range": [51, 60],
+ "drawn": false
+ },
+ {
+ "_id": "I3XXLhTRCdE19Vmd",
+ "flags": {},
+ "type": 0,
+ "text": "* Der Zauberer irrt sich bei der Auswahl des Opfers/ des Wirkungsbereichs. Der Spruch wirkt auf ein zufällig bestimmtes Wesen oder Objekt innerhalb der Reichweite. Bei räumlichen Wirkungsbereichen breitet sich die Magie in die genau entgegengesetzte Richtung (Kegel oder Strahl) aus bzw. liegt das Zentrum der Wirkung in entgegengesetzter Richtung vom Zauberer aus gesehen (Umkreis).",
+ "img": "icons/svg/d20-black.svg",
+ "resultId": "",
+ "weight": 10,
+ "range": [61, 70],
+ "drawn": false
+ },
+ {
+ "_id": "ciB0pGZyV4KjV5iO",
+ "flags": {},
+ "type": 0,
+ "text": "Der Zauberer wird geschwächt. Der Spruch misslingt, aber die bereits freigesetzte Energie schwächt Körper und Geist des Zauberers. Er verliert [[1d6]] AP und kann [[1d6*10]] min lang nicht zaubern.",
+ "img": "icons/svg/d20-black.svg",
+ "resultId": "",
+ "weight": 10,
+ "range": [71, 80],
+ "drawn": false
+ },
+ {
+ "_id": "xx6BVgf3NbpFJLaQ",
+ "flags": {},
+ "type": 0,
+ "text": "Es kommt zu einer magischen Stauung. Die falsche Ausführung des Zaubers verhindert die Weiterleitung der erzeugten arkanen Energie. Die starke Ansammlung von Magan im Argyriston des Zauberers zieht dieses in Mitleidenschaft. Sein Zaubertalent sinkt für [[1d6]] Tage auf die Hälfte des normalen Wertes - mit entsprechenden Folgen für seinen persönlichen Zauberbonus. Dieser negative Effekt kann mit Allheilung vorzeitig aufgehoben werden.",
+ "img": "icons/svg/d20-black.svg",
+ "resultId": "",
+ "weight": 10,
+ "range": [81, 90],
+ "drawn": false
+ },
+ {
+ "_id": "Q3QjCiHYzLVtrXz3",
+ "flags": {},
+ "type": 0,
+ "text": "Der Zauberer erleidet eine schwere Bewusstseinsstörung. Die Entladung magischer Energie beim Scheitern des Spruches versetzt dem Zauberer einen schweren thaumatischen Schock. Er verliert dadurch [[1d6]] LP und AP und kann in der nächsten Stunde nicht zaubern. Übersteigen die LP-Verluste ein Drittel des LP Maximums, so fällt der Zauberer in ein Koma, aus dem er nach [[1d6]] Tagen erwacht. Mit Allheilung kann er vorher aufgeweckt werden.",
+ "img": "icons/svg/d20-black.svg",
+ "resultId": "",
+ "weight": 5,
+ "range": [91, 95],
+ "drawn": false
+ },
+ {
+ "_id": "QICP7DgbyTmp1Nns",
+ "flags": {},
+ "type": 0,
+ "text": "* Der Zauberer verzaubert sich selbst. Bei einem Geistes- oder Körperzauber trifft die volle Wirkung der Magie den Zauberer selbst, wenn ihm ein WW:Resistenz misslingt. Schützende Zauber funktionieren also gegebenenfalls ganz normal (Glück im Unglück). Kontrollzauber wie Macht über Menschen führen zur vorübergehenden Handlungsunfähigkeit des Zauberers; sein Geist versucht, die Kontrolle über sich selbst zu übernehmen, so dass er völlig mit sich selbst beschäftigt ist, bis ihm ein alle 2 min erlaubter EW:Resistenz gelingt. Sprüche, die wie Macht über die belebte Natur nur auf Tiere wirken, haben keinen Effekt. Bei Umgebungszaubern tritt stattdessen der unter 91-95 beschriebene Effekt ein.",
+ "img": "icons/svg/d20-black.svg",
+ "resultId": "",
+ "weight": 4,
+ "range": [96, 99],
+ "drawn": false
+ },
+ {
+ "_id": "qY2J5MqMZvNzspnt",
+ "flags": {},
+ "type": 0,
+ "text": "Zauberwerk wird in Mitleidenschaft gezogen. Der Spruch misslingt; die dabei freigesetzte Energie stört die Magie von Zauberwerk, das der Zauberer mit sich führt. Jeder magische Gegenstand in bis zu 1 m Entfernung ist mit einer Chance von 10%+Stufe des misslungenen Zaubers betroffen: Zaubermittel (Trünke, Kräuter usw.) verlieren ihre Eigenschaften, Amulette werden wirkungslos, Spruchrollen leeren sich. Bei verzauberten Waffen oder Rüstungen gehen [[1d6–3]] von allen magischen Zuschlägen verloren. Bei Artefakten mit mehreren Wirkungen wird für jede einzeln gewürfelt, ob sie betroffen ist.",
+ "img": "icons/svg/d20-black.svg",
+ "resultId": "",
+ "weight": 1,
+ "range": [100, 100],
+ "drawn": false
+ }
+ ],
+ "formula": "1d100",
+ "replacement": true,
+ "displayRoll": true,
+ "_id": "PRovcPRqdrvFRpFN"
+}
diff --git a/packs/rolltables/tabellen-kritische-ereignisse/kritischer_erfolg_bei_der_abwehr.json b/packs/rolltables/tabellen-kritische-ereignisse/kritischer_erfolg_bei_der_abwehr.json
index 53a9e09..5d6dbd1 100644
--- a/packs/rolltables/tabellen-kritische-ereignisse/kritischer_erfolg_bei_der_abwehr.json
+++ b/packs/rolltables/tabellen-kritische-ereignisse/kritischer_erfolg_bei_der_abwehr.json
@@ -1,142 +1,115 @@
{
- "name": "Kritischer Erfolg bei der Abwehr",
- "permission": {
- "default": 2,
- "CBq5YXAqbO7HoJ03": 3
- },
- "flags": {},
- "img": "icons/svg/holy-shield.svg",
- "description": "Tabelle 6: Kritischer Erfolg bei der Abwehr ",
- "results": [
- {
- "_id": "ImLGlzC3AuyT5VMl",
- "flags": {},
- "type": 0,
- "text": "Keine besonderen Auswirkungen.",
- "img": "icons/svg/d20-black.svg",
- "resultId": "",
- "weight": 10,
- "range": [
- 1,
- 10
- ],
- "drawn": false
- },
- {
- "_id": "PPQUPOo5JGRkKPXQ",
- "flags": {},
- "type": 0,
- "text": "Die Waffenhand des Angreifers wird geprellt. In der folgenden Runde kann er mit dieser Hand nicht angreifen. Tiere verlieren einen Angriff mit Pranke, Zähnen, Stachel usw.",
- "img": "icons/svg/d20-black.svg",
- "resultId": "",
- "weight": 20,
- "range": [
- 11,
- 30
- ],
- "drawn": false
- },
- {
- "_id": "IpRVlty1p1it0eMm",
- "flags": {},
- "type": 0,
- "text": "Der Angreifer wird entwaffnet. Die Waffe fliegt vom Angreifer aus gesehen geradlinig um [[1d6–1]] m nach links. Bei waffenlosen Angriffen gibt es keine besonderen Auswirkungen.",
- "img": "icons/svg/d20-black.svg",
- "resultId": "",
- "weight": 10,
- "range": [
- 31,
- 40
- ],
- "drawn": false
- },
- {
- "_id": "fh01DVN6rFKrTdcg",
- "flags": {},
- "type": 0,
- "text": "Der Angreifer wird entwaffnet. Die Waffe fliegt nach rechts (s. 31-40).",
- "img": "icons/svg/d20-black.svg",
- "resultId": "",
- "weight": 10,
- "range": [
- 41,
- 50
- ],
- "drawn": false
- },
- {
- "_id": "k1rD7t7YnayTcV9P",
- "flags": {},
- "type": 0,
- "text": "Der Angreifer wird entwaffnet. Die Waffe fliegt nach hinten (s. 31-40).",
- "img": "icons/svg/d20-black.svg",
- "resultId": "",
- "weight": 10,
- "range": [
- 51,
- 60
- ],
- "drawn": false
- },
- {
- "_id": "9WFBq8PAy1fFxe4I",
- "flags": {},
- "type": 0,
- "text": "Der Angreifer stürzt zu Boden. Er ist vom Abwehrenden umgestoßen worden oder gestolpert. In einem Handgemenge treten keine besonderen Folgen auf.",
- "img": "icons/svg/d20-black.svg",
- "resultId": "",
- "weight": 20,
- "range": [
- 61,
- 80
- ],
- "drawn": false
- },
- {
- "_id": "u5kKsW1vnvWvF79s",
- "flags": {},
- "type": 0,
- "text": "Der Angreifer wird leicht verwundet. Er verliert [[1d6]] AP.",
- "img": "icons/svg/d20-black.svg",
- "resultId": "",
- "weight": 15,
- "range": [
- 81,
- 95
- ],
- "drawn": false
- },
- {
- "_id": "gTvVtavg5GElh0pg",
- "flags": {},
- "type": 0,
- "text": "Der Angreifer wird schwer verwundet. Er erleidet [[1d6]] schweren Schaden.",
- "img": "icons/svg/d20-black.svg",
- "resultId": "",
- "weight": 4,
- "range": [
- 96,
- 99
- ],
- "drawn": false
- },
- {
- "_id": "507Nvm6dWIlN8Ip1",
- "flags": {},
- "type": 0,
- "text": "Der Angreifer verliert das Bewusstsein. Er stürzt zu Boden und kommt erst [[1d6]] Runden später wieder zu sich.",
- "img": "icons/svg/d20-black.svg",
- "resultId": "",
- "weight": 1,
- "range": [
- 100,
- 100
- ],
- "drawn": false
- }
- ],
- "formula": "1d100",
- "replacement": true,
- "displayRoll": true,
- "_id": "JOQf46Cj29MwcKsY"
-}
\ No newline at end of file
+ "name": "Kritischer Erfolg bei der Abwehr",
+ "permission": {
+ "default": 2,
+ "CBq5YXAqbO7HoJ03": 3
+ },
+ "flags": {},
+ "img": "icons/svg/holy-shield.svg",
+ "description": "Tabelle 6: Kritischer Erfolg bei der Abwehr ",
+ "results": [
+ {
+ "_id": "ImLGlzC3AuyT5VMl",
+ "flags": {},
+ "type": 0,
+ "text": "Keine besonderen Auswirkungen.",
+ "img": "icons/svg/d20-black.svg",
+ "resultId": "",
+ "weight": 10,
+ "range": [1, 10],
+ "drawn": false
+ },
+ {
+ "_id": "PPQUPOo5JGRkKPXQ",
+ "flags": {},
+ "type": 0,
+ "text": "Die Waffenhand des Angreifers wird geprellt. In der folgenden Runde kann er mit dieser Hand nicht angreifen. Tiere verlieren einen Angriff mit Pranke, Zähnen, Stachel usw.",
+ "img": "icons/svg/d20-black.svg",
+ "resultId": "",
+ "weight": 20,
+ "range": [11, 30],
+ "drawn": false
+ },
+ {
+ "_id": "IpRVlty1p1it0eMm",
+ "flags": {},
+ "type": 0,
+ "text": "Der Angreifer wird entwaffnet. Die Waffe fliegt vom Angreifer aus gesehen geradlinig um [[1d6–1]] m nach links. Bei waffenlosen Angriffen gibt es keine besonderen Auswirkungen.",
+ "img": "icons/svg/d20-black.svg",
+ "resultId": "",
+ "weight": 10,
+ "range": [31, 40],
+ "drawn": false
+ },
+ {
+ "_id": "fh01DVN6rFKrTdcg",
+ "flags": {},
+ "type": 0,
+ "text": "Der Angreifer wird entwaffnet. Die Waffe fliegt nach rechts (s. 31-40).",
+ "img": "icons/svg/d20-black.svg",
+ "resultId": "",
+ "weight": 10,
+ "range": [41, 50],
+ "drawn": false
+ },
+ {
+ "_id": "k1rD7t7YnayTcV9P",
+ "flags": {},
+ "type": 0,
+ "text": "Der Angreifer wird entwaffnet. Die Waffe fliegt nach hinten (s. 31-40).",
+ "img": "icons/svg/d20-black.svg",
+ "resultId": "",
+ "weight": 10,
+ "range": [51, 60],
+ "drawn": false
+ },
+ {
+ "_id": "9WFBq8PAy1fFxe4I",
+ "flags": {},
+ "type": 0,
+ "text": "Der Angreifer stürzt zu Boden. Er ist vom Abwehrenden umgestoßen worden oder gestolpert. In einem Handgemenge treten keine besonderen Folgen auf.",
+ "img": "icons/svg/d20-black.svg",
+ "resultId": "",
+ "weight": 20,
+ "range": [61, 80],
+ "drawn": false
+ },
+ {
+ "_id": "u5kKsW1vnvWvF79s",
+ "flags": {},
+ "type": 0,
+ "text": "Der Angreifer wird leicht verwundet. Er verliert [[1d6]] AP.",
+ "img": "icons/svg/d20-black.svg",
+ "resultId": "",
+ "weight": 15,
+ "range": [81, 95],
+ "drawn": false
+ },
+ {
+ "_id": "gTvVtavg5GElh0pg",
+ "flags": {},
+ "type": 0,
+ "text": "Der Angreifer wird schwer verwundet. Er erleidet [[1d6]] schweren Schaden.",
+ "img": "icons/svg/d20-black.svg",
+ "resultId": "",
+ "weight": 4,
+ "range": [96, 99],
+ "drawn": false
+ },
+ {
+ "_id": "507Nvm6dWIlN8Ip1",
+ "flags": {},
+ "type": 0,
+ "text": "Der Angreifer verliert das Bewusstsein. Er stürzt zu Boden und kommt erst [[1d6]] Runden später wieder zu sich.",
+ "img": "icons/svg/d20-black.svg",
+ "resultId": "",
+ "weight": 1,
+ "range": [100, 100],
+ "drawn": false
+ }
+ ],
+ "formula": "1d100",
+ "replacement": true,
+ "displayRoll": true,
+ "_id": "JOQf46Cj29MwcKsY"
+}
diff --git a/packs/rolltables/tabellen-kritische-ereignisse/kritischer_fehler_bei_angriffen.json b/packs/rolltables/tabellen-kritische-ereignisse/kritischer_fehler_bei_angriffen.json
index 8a5bee0..c06dd7c 100644
--- a/packs/rolltables/tabellen-kritische-ereignisse/kritischer_fehler_bei_angriffen.json
+++ b/packs/rolltables/tabellen-kritische-ereignisse/kritischer_fehler_bei_angriffen.json
@@ -1,163 +1,133 @@
{
- "name": "Kritischer Fehler bei Angriffen",
- "permission": {
- "default": 2,
- "CBq5YXAqbO7HoJ03": 3
- },
- "flags": {
- "exportSource": {
- "world": "midgard-test",
- "system": "midgard5",
- "coreVersion": "0.7.9",
- "systemVersion": 0.02
- }
- },
- "img": "icons/svg/d20-grey.svg",
- "description": "Tabelle 4: Kritische Fehler bei Angriffen ",
- "results": [
- {
- "_id": "dIX62PrnwNTY929l",
- "flags": {},
- "type": 0,
- "text": "Keine besonderen Auswirkungen. ",
- "img": "icons/svg/d20-black.svg",
- "resultId": "",
- "weight": 10,
- "range": [
- 1,
- 10
- ],
- "drawn": false
- },
- {
- "_id": "IgEkc7L4KlW745gH",
- "flags": {},
- "type": 0,
- "text": "Der Angreifer verliert kurz das Gleichgewicht. Er braucht etwas Zeit, um wieder kampfbereit zu sein, und kann in der folgenden Runde nicht angreifen.",
- "img": "icons/svg/d20-black.svg",
- "resultId": "",
- "weight": 10,
- "range": [
- 11,
- 20
- ],
- "drawn": false
- },
- {
- "_id": "lXeIddddllhBc5aj",
- "flags": {},
- "type": 0,
- "text": "Der Angreifer lässt seine Waffe fallen. Sie fällt auf das Feld, auf dem er sich befi ndet. Fäuste, Pranken usw. werden leicht geprellt und können in der folgenden Runde nicht eingesetzt werden.",
- "img": "icons/svg/d20-black.svg",
- "resultId": "",
- "weight": 15,
- "range": [
- 21,
- 35
- ],
- "drawn": false
- },
- {
- "_id": "hNjE2KIIGCvgcBjf",
- "flags": {},
- "type": 0,
- "text": "Die Angriffswaffe wird zerstört. Bei magischen Waffen wird 1W6–1 ([[1d6-1]])gewürfelt; die Waffe wird nur zerstört, wenn das Ergebnis über dem höheren der beiden magischen Bonuswerte für Angriff und Schaden liegt. Bei Angriffen mit Fäusten, Zähnen usw. wird der betreffende Körperteil geprellt und kann 10 min lang nicht eingesetzt werden.",
- "img": "icons/svg/d20-black.svg",
- "resultId": "",
- "weight": 15,
- "range": [
- 36,
- 50
- ],
- "drawn": false
- },
- {
- "_id": "2mW1vM6xy0emVwDM",
- "flags": {},
- "type": 0,
- "text": "Der Angreifer verletzt sich selbst. Im Nahkampf und Handgemenge mit einer Waffe erleidet er durch seine Ungeschicklichkeit [[1d6–1]] schweren Schaden. Bei Angriffen mit der bloßen Hand und anderen natürlichen Waffen oder mit Wurfwaffen verliert der Angreifer [[1d6–1]] AP durch eine Muskel zerrung und kann eine Runde lang nicht angreifen. Bei einem Bogen- oder Armbrustschuss reißt die Sehne und verletzt den Schützen leicht ([[1d6–1]] AP Verlust). Sie kann in [[1d6+3]] Runden durch eine neue ersetzt werden.",
- "img": "icons/svg/d20-black.svg",
- "resultId": "",
- "weight": 5,
- "range": [
- 51,
- 55
- ],
- "drawn": false
- },
- {
- "_id": "bd5AxyNFZ2RQ7Aq0",
- "flags": {},
- "type": 0,
- "text": "Der Angreifer trifft aus Versehen die nächststehende befreundete Person. Er fügt ihr [[1d6–1]] schweren Schaden zu. Befi ndet sich kein Gefährte in Reichweite, hat der Fehler keine Folgen. Kommen mehrere Personen als Opfer in Frage, wird eine von ihnen ausgewürfelt.",
- "img": "icons/svg/d20-black.svg",
- "resultId": "",
- "weight": 5,
- "range": [
- 56,
- 60
- ],
- "drawn": false
- },
- {
- "_id": "CY9a5ajPDQGns8CN",
- "flags": {},
- "type": 0,
- "text": "Der Angreifer läuft in die Waffe des Gegners hinein. Der Angegriffene darf sofort außer der Reihe einen zusätzlichen EW:Angriff machen, der nicht abgewehrt werden darf.",
- "img": "icons/svg/d20-black.svg",
- "resultId": "",
- "weight": 10,
- "range": [
- 61,
- 70
- ],
- "drawn": false
- },
- {
- "_id": "pVHTa2JuXutMDar7",
- "flags": {},
- "type": 0,
- "text": "Der Angreifer verstaucht sich den Fuß. Seine Bewegungsweite verringert sich für [[2d6]] Runden um ein Drittel. Bei einem Schuss mit Bogen oder Armbrust schlägt die Sehne gegen den Arm des Abenteurers, der dadurch [[1d6–1]] AP verliert und eine Runde lang nicht schießen kann.",
- "img": "icons/svg/d20-black.svg",
- "resultId": "",
- "weight": 20,
- "range": [
- 71,
- 90
- ],
- "drawn": false
- },
- {
- "_id": "q4hhhMPXWJlmFMY7",
- "flags": {},
- "type": 0,
- "text": "Der Angreifer stolpert und stürzt zu Boden. Bei Armbrust- oder Bogenschuss reißt stattdessen die Sehne und verletzt den Schützen leicht [[1d6–1]] AP Verlust - s. 51-55). Im Handgemenge hat dieser Wurf dieselben Folgen wie 71-90.51-55
Der Angreifer trifft aus Versehen die nächststehende befreundete Person. Er fügt ihr [[1d6–1]] schweren Schaden zu. Befi ndet sich kein Gefährte in Reichweite, hat der Fehler keine Folgen. Kommen mehrere Personen als Opfer in Frage, wird eine von ihnen ausgewürfelt.
71-90
Der Angreifer verstaucht sich den Fuß.Seine Bewegungsweite verringert sich für [[2d6]] Runden um ein Drittel. Bei einem Schuss mit Bogen oder Armbrust schlägt die Sehne gegen den Arm des Abenteurers, der dadurch [[1d6–1]] AP verliert und eine Runde lang nicht schießen kann.
",
- "img": "icons/svg/d20-black.svg",
- "resultId": "",
- "weight": 9,
- "range": [
- 91,
- 99
- ],
- "drawn": false
- },
- {
- "_id": "huSeP6mv8OeNYJDj",
- "flags": {},
- "type": 0,
- "text": "Der Angreifer stürzt zu Boden und zerstört dabei seine Waffe . Bei einem Angriff mit natürlichen Waffen kann der betreffende Körperteil wie bei 36-50 10 min lang nicht eingesetzt werden. Bei einem Angriff mit Schusswaffen fällt der Abenteurer nicht hin.",
- "img": "icons/svg/d20-black.svg",
- "resultId": "",
- "weight": 1,
- "range": [
- 100,
- 100
- ],
- "drawn": false
- }
- ],
- "formula": "1d100",
- "replacement": true,
- "displayRoll": true,
- "_id": "sVgHbAxseIoeIMz8"
-}
\ No newline at end of file
+ "name": "Kritischer Fehler bei Angriffen",
+ "permission": {
+ "default": 2,
+ "CBq5YXAqbO7HoJ03": 3
+ },
+ "flags": {
+ "exportSource": {
+ "world": "midgard-test",
+ "system": "midgard5",
+ "coreVersion": "0.7.9",
+ "systemVersion": 0.02
+ }
+ },
+ "img": "icons/svg/d20-grey.svg",
+ "description": "Tabelle 4: Kritische Fehler bei Angriffen ",
+ "results": [
+ {
+ "_id": "dIX62PrnwNTY929l",
+ "flags": {},
+ "type": 0,
+ "text": "Keine besonderen Auswirkungen. ",
+ "img": "icons/svg/d20-black.svg",
+ "resultId": "",
+ "weight": 10,
+ "range": [1, 10],
+ "drawn": false
+ },
+ {
+ "_id": "IgEkc7L4KlW745gH",
+ "flags": {},
+ "type": 0,
+ "text": "Der Angreifer verliert kurz das Gleichgewicht. Er braucht etwas Zeit, um wieder kampfbereit zu sein, und kann in der folgenden Runde nicht angreifen.",
+ "img": "icons/svg/d20-black.svg",
+ "resultId": "",
+ "weight": 10,
+ "range": [11, 20],
+ "drawn": false
+ },
+ {
+ "_id": "lXeIddddllhBc5aj",
+ "flags": {},
+ "type": 0,
+ "text": "Der Angreifer lässt seine Waffe fallen. Sie fällt auf das Feld, auf dem er sich befi ndet. Fäuste, Pranken usw. werden leicht geprellt und können in der folgenden Runde nicht eingesetzt werden.",
+ "img": "icons/svg/d20-black.svg",
+ "resultId": "",
+ "weight": 15,
+ "range": [21, 35],
+ "drawn": false
+ },
+ {
+ "_id": "hNjE2KIIGCvgcBjf",
+ "flags": {},
+ "type": 0,
+ "text": "Die Angriffswaffe wird zerstört. Bei magischen Waffen wird 1W6–1 ([[1d6-1]])gewürfelt; die Waffe wird nur zerstört, wenn das Ergebnis über dem höheren der beiden magischen Bonuswerte für Angriff und Schaden liegt. Bei Angriffen mit Fäusten, Zähnen usw. wird der betreffende Körperteil geprellt und kann 10 min lang nicht eingesetzt werden.",
+ "img": "icons/svg/d20-black.svg",
+ "resultId": "",
+ "weight": 15,
+ "range": [36, 50],
+ "drawn": false
+ },
+ {
+ "_id": "2mW1vM6xy0emVwDM",
+ "flags": {},
+ "type": 0,
+ "text": "Der Angreifer verletzt sich selbst. Im Nahkampf und Handgemenge mit einer Waffe erleidet er durch seine Ungeschicklichkeit [[1d6–1]] schweren Schaden. Bei Angriffen mit der bloßen Hand und anderen natürlichen Waffen oder mit Wurfwaffen verliert der Angreifer [[1d6–1]] AP durch eine Muskel zerrung und kann eine Runde lang nicht angreifen. Bei einem Bogen- oder Armbrustschuss reißt die Sehne und verletzt den Schützen leicht ([[1d6–1]] AP Verlust). Sie kann in [[1d6+3]] Runden durch eine neue ersetzt werden.",
+ "img": "icons/svg/d20-black.svg",
+ "resultId": "",
+ "weight": 5,
+ "range": [51, 55],
+ "drawn": false
+ },
+ {
+ "_id": "bd5AxyNFZ2RQ7Aq0",
+ "flags": {},
+ "type": 0,
+ "text": "Der Angreifer trifft aus Versehen die nächststehende befreundete Person. Er fügt ihr [[1d6–1]] schweren Schaden zu. Befi ndet sich kein Gefährte in Reichweite, hat der Fehler keine Folgen. Kommen mehrere Personen als Opfer in Frage, wird eine von ihnen ausgewürfelt.",
+ "img": "icons/svg/d20-black.svg",
+ "resultId": "",
+ "weight": 5,
+ "range": [56, 60],
+ "drawn": false
+ },
+ {
+ "_id": "CY9a5ajPDQGns8CN",
+ "flags": {},
+ "type": 0,
+ "text": "Der Angreifer läuft in die Waffe des Gegners hinein. Der Angegriffene darf sofort außer der Reihe einen zusätzlichen EW:Angriff machen, der nicht abgewehrt werden darf.",
+ "img": "icons/svg/d20-black.svg",
+ "resultId": "",
+ "weight": 10,
+ "range": [61, 70],
+ "drawn": false
+ },
+ {
+ "_id": "pVHTa2JuXutMDar7",
+ "flags": {},
+ "type": 0,
+ "text": "Der Angreifer verstaucht sich den Fuß. Seine Bewegungsweite verringert sich für [[2d6]] Runden um ein Drittel. Bei einem Schuss mit Bogen oder Armbrust schlägt die Sehne gegen den Arm des Abenteurers, der dadurch [[1d6–1]] AP verliert und eine Runde lang nicht schießen kann.",
+ "img": "icons/svg/d20-black.svg",
+ "resultId": "",
+ "weight": 20,
+ "range": [71, 90],
+ "drawn": false
+ },
+ {
+ "_id": "q4hhhMPXWJlmFMY7",
+ "flags": {},
+ "type": 0,
+ "text": "Der Angreifer stolpert und stürzt zu Boden. Bei Armbrust- oder Bogenschuss reißt stattdessen die Sehne und verletzt den Schützen leicht [[1d6–1]] AP Verlust - s. 51-55). Im Handgemenge hat dieser Wurf dieselben Folgen wie 71-90.51-55
Der Angreifer trifft aus Versehen die nächststehende befreundete Person. Er fügt ihr [[1d6–1]] schweren Schaden zu. Befi ndet sich kein Gefährte in Reichweite, hat der Fehler keine Folgen. Kommen mehrere Personen als Opfer in Frage, wird eine von ihnen ausgewürfelt.
71-90
Der Angreifer verstaucht sich den Fuß.Seine Bewegungsweite verringert sich für [[2d6]] Runden um ein Drittel. Bei einem Schuss mit Bogen oder Armbrust schlägt die Sehne gegen den Arm des Abenteurers, der dadurch [[1d6–1]] AP verliert und eine Runde lang nicht schießen kann.
",
+ "img": "icons/svg/d20-black.svg",
+ "resultId": "",
+ "weight": 9,
+ "range": [91, 99],
+ "drawn": false
+ },
+ {
+ "_id": "huSeP6mv8OeNYJDj",
+ "flags": {},
+ "type": 0,
+ "text": "Der Angreifer stürzt zu Boden und zerstört dabei seine Waffe . Bei einem Angriff mit natürlichen Waffen kann der betreffende Körperteil wie bei 36-50 10 min lang nicht eingesetzt werden. Bei einem Angriff mit Schusswaffen fällt der Abenteurer nicht hin.",
+ "img": "icons/svg/d20-black.svg",
+ "resultId": "",
+ "weight": 1,
+ "range": [100, 100],
+ "drawn": false
+ }
+ ],
+ "formula": "1d100",
+ "replacement": true,
+ "displayRoll": true,
+ "_id": "sVgHbAxseIoeIMz8"
+}
diff --git a/packs/rolltables/tabellen-kritische-ereignisse/kritischer_fehler_bei_der_abwehr.json b/packs/rolltables/tabellen-kritische-ereignisse/kritischer_fehler_bei_der_abwehr.json
index a265bf4..2f7298b 100644
--- a/packs/rolltables/tabellen-kritische-ereignisse/kritischer_fehler_bei_der_abwehr.json
+++ b/packs/rolltables/tabellen-kritische-ereignisse/kritischer_fehler_bei_der_abwehr.json
@@ -1,177 +1,144 @@
{
- "name": "Kritischer Fehler bei der Abwehr",
- "permission": {
- "default": 2,
- "CBq5YXAqbO7HoJ03": 3
- },
- "flags": {
- "exportSource": {
- "world": "midgard-test",
- "system": "midgard5",
- "coreVersion": "0.7.9",
- "systemVersion": 0.02
- }
- },
- "img": "icons/svg/fire-shield.svg",
- "description": "Tabelle 5: Kritischer Fehler bei der Abwehr ",
- "results": [
- {
- "_id": "Xdzk7cvwwnI2i18M",
- "flags": {},
- "type": 0,
- "text": "Keine besonderen Auswirkungen. ",
- "img": "icons/svg/d20-black.svg",
- "resultId": "",
- "weight": 10,
- "range": [
- 1,
- 10
- ],
- "drawn": false
- },
- {
- "_id": "8xuz2YsB90Z0KbLs",
- "flags": {},
- "type": 0,
- "text": "Der Angegriffene verliert kurz das Gleichgewicht. Er braucht etwas Zeit, um wieder kampfbereit zu sein, und kann in der folgenden Runde nicht angreifen.",
- "img": "icons/svg/d20-black.svg",
- "resultId": "",
- "weight": 10,
- "range": [
- 11,
- 20
- ],
- "drawn": false
- },
- {
- "_id": "gpzhwQyLX429zUz0",
- "flags": {},
- "type": 0,
- "text": "Die Verteidigungswaffe ist zerstört. Benutzt der Abenteurer weder Schild noch Parierwaffe, hat dieser Wurf dieselben Folgen wie 81 - 90. Bei magischen Waffen wird 1W6–1 ([[1d6-1]]) gewürfelt; die Waffe wird nur zerstört, wenn das Ergebnis größer als ihr magischer Abwehrbonus ist.81-90
Der Verteidiger prallt unglücklich mit seinem Gegner zusammen (Nahkampf und Handgemenge) oder gegen ein Hindernis (Fernkampf) und ist kurzzeitig benommen. Im Nahkampf oder Handgemenge kann er in der folgenden Runde weder angreifen noch abwehren. Sein Gegner leidet unter denselben Folgen - aber nur, wenn ihm ein PW:Gewandtheit misslingt. Im Fernkampf kann der Angegriffene wie bei 61-70 dem nächsten Schuss nicht ausweichen und darf außerdem in dieser und der folgenden Runde nicht mehr angreifen.",
- "img": "icons/svg/d20-black.svg",
- "resultId": "",
- "weight": 10,
- "range": [
- 21,
- 30
- ],
- "drawn": false
- },
- {
- "_id": "Znrv6r6SHSBEclYd",
- "flags": {},
- "type": 0,
- "text": "Der Angegriffene lässt seine Verteidigungswaffe fallen. Die Waffe fällt ihm zu Füßen. Benutzt er weder Schild noch Parierwaffe, hat dieser Wurf dieselben Folgen wie 41-50.41-50
Der Verteidiger wird nach hinten gedrängt (Nahkampf), oder der Schwung seiner Ausweichbewegung reißt ihn mit (Fernkampf). Im Nahkampf bewegt sich der Angegriffene 1 m geradlinig vom Gegner weg, wenn ihn kein massives Hindernis daran hindert - selbst wenn er dadurch in ein Lagerfeuer oder einen Abgrund hineingerät. Der Angreifer kann sofort folgen und den Kontakt aufrechterhalten, wenn er will. Im Fernkampf bewegt sich der Angegriffene von seinem Standort aus um 1 m nach links (bei 1-2 mit [[1d6]]), nach rechts (bei 3-4), nach vorne (5) bzw. nach hinten (6), wenn ihn kein Hindernis daran hindert. Im Handgemenge hat der Wurf dieselben Folgen wie 51-60.51-60
Die Sicht des Angegriffenen wird behindert. Er kann in der folgenden Runde nicht angreifen, da er Blut oder Schweiß aus den Augen wischen oder eine verrutschte Kopfbedeckung zurechtrücken muss.",
- "img": "icons/svg/d20-black.svg",
- "resultId": "",
- "weight": 10,
- "range": [
- 31,
- 40
- ],
- "drawn": false
- },
- {
- "_id": "wLeOWz8B21WCkEwK",
- "flags": {},
- "type": 0,
- "text": "Der Verteidiger wird nach hinten gedrängt (Nahkampf), oder der Schwung seiner Ausweichbewegung reißt ihn mit (Fernkampf). Im Nahkampf bewegt sich der Angegriffene 1 m geradlinig vom Gegner weg, wenn ihn kein massives Hindernis daran hindert - selbst wenn er dadurch in ein Lagerfeuer oder einen Abgrund hineingerät. Der Angreifer kann sofort folgen und den Kontakt aufrechterhalten, wenn er will. Im Fernkampf bewegt sich der Angegriffene von seinem Standort aus um 1 m nach links (bei 1-2 mit [[1d6]]), nach rechts (bei 3-4), nach vorne (5) bzw. nach hinten (6), wenn ihn kein Hindernis daran hindert. Im Handgemenge hat der Wurf dieselben Folgen wie 51-60.51-60
Die Sicht des Angegriffenen wird behindert. Er kann in der folgenden Runde nicht angreifen, da er Blut oder Schweiß aus den Augen wischen oder eine verrutschte Kopfbedeckung zurechtrücken muss.",
- "img": "icons/svg/d20-black.svg",
- "resultId": "",
- "weight": 10,
- "range": [
- 41,
- 50
- ],
- "drawn": false
- },
- {
- "_id": "OK1TzYWgPDqvBF6K",
- "flags": {},
- "type": 0,
- "text": "Die Sicht des Angegriffenen wird behindert. Er kann in der folgenden Runde nicht angreifen, da er Blut oder Schweiß aus den Augen wischen oder eine verrutschte Kopfbedeckung zurechtrücken muss.",
- "img": "icons/svg/d20-black.svg",
- "resultId": "",
- "weight": 10,
- "range": [
- 51,
- 60
- ],
- "drawn": false
- },
- {
- "_id": "jmWy6vH4NYiGghPE",
- "flags": {},
- "type": 0,
- "text": "Der Verteidiger gibt sich eine Blöße. Im Nahkampf oder Handgemenge darf der Angreifer sofort außer der Reihe einen zusätzlichen EW:Angriff machen, der nicht abgewehrt werden darf. Im Fernkampf kann der Angegriffene dem nächsten Schuss oder Wurf (in der laufenden oder folgenden Runde, nicht aber später) nicht ausweichen und daher keinen WW:Abwehr würfeln.",
- "img": "icons/svg/d20-black.svg",
- "resultId": "",
- "weight": 10,
- "range": [
- 61,
- 70
- ],
- "drawn": false
- },
- {
- "_id": "o6r0hJ0iufMsINa1",
- "flags": {},
- "type": 0,
- "text": "Der Angegriffene verstaucht sich den Fuß. Die Bewegungsweite verringert sich für [[2d6]] Runden um ein Drittel.",
- "img": "icons/svg/d20-black.svg",
- "resultId": "",
- "weight": 10,
- "range": [
- 71,
- 80
- ],
- "drawn": false
- },
- {
- "_id": "azc8c9daJPxkmg1P",
- "flags": {},
- "type": 0,
- "text": "Der Verteidiger prallt unglücklich mit seinem Gegner zusammen (Nahkampf und Handgemenge) oder gegen ein Hindernis (Fernkampf) und ist kurzzeitig benommen. Im Nahkampf oder Handgemenge kann er in der folgenden Runde weder angreifen noch abwehren. Sein Gegner leidet unter denselben Folgen - aber nur, wenn ihm ein PW:Gewandtheit misslingt. Im Fernkampf kann der Angegriffene wie bei 61-70 dem nächsten Schuss nicht ausweichen und darf außerdem in dieser und der folgenden Runde nicht mehr angreifen.61-70
Im Fernkampf kann der Angegriffene dem nächsten Schuss oder Wurf (in der laufenden oder folgenden Runde, nicht aber später) nicht ausweichen und daher keinen WW:Abwehr würfeln.",
- "img": "icons/svg/d20-black.svg",
- "resultId": "",
- "weight": 10,
- "range": [
- 81,
- 90
- ],
- "drawn": false
- },
- {
- "_id": "fT5NKtySSqN8Yzlu",
- "flags": {},
- "type": 0,
- "text": "Der Angegriffene rutscht aus und stürzt zu Boden. Im Handgemenge hat dieser Wurf dieselben Folgen wie 61-70.61-70
Im Nahkampf oder Handgemenge darf der Angreifer sofort außer der Reihe einen zusätzlichen EW:Angriff machen, der nicht abgewehrt werden darf.",
- "img": "icons/svg/d20-black.svg",
- "resultId": "",
- "weight": 9,
- "range": [
- 91,
- 99
- ],
- "drawn": false
- },
- {
- "_id": "gxzElw6oBZTjj15Z",
- "flags": {},
- "type": 0,
- "text": "Der Angegriffene stürzt und verliert das Bewusstsein. Er kommt nach [[1d6]] Runden wieder zu sich.",
- "img": "icons/svg/d20-black.svg",
- "resultId": "",
- "weight": 1,
- "range": [
- 100,
- 100
- ],
- "drawn": false
- }
- ],
- "formula": "1d100",
- "replacement": true,
- "displayRoll": true,
- "_id": "XKbuKI8F08WdFfWV"
-}
\ No newline at end of file
+ "name": "Kritischer Fehler bei der Abwehr",
+ "permission": {
+ "default": 2,
+ "CBq5YXAqbO7HoJ03": 3
+ },
+ "flags": {
+ "exportSource": {
+ "world": "midgard-test",
+ "system": "midgard5",
+ "coreVersion": "0.7.9",
+ "systemVersion": 0.02
+ }
+ },
+ "img": "icons/svg/fire-shield.svg",
+ "description": "Tabelle 5: Kritischer Fehler bei der Abwehr ",
+ "results": [
+ {
+ "_id": "Xdzk7cvwwnI2i18M",
+ "flags": {},
+ "type": 0,
+ "text": "Keine besonderen Auswirkungen. ",
+ "img": "icons/svg/d20-black.svg",
+ "resultId": "",
+ "weight": 10,
+ "range": [1, 10],
+ "drawn": false
+ },
+ {
+ "_id": "8xuz2YsB90Z0KbLs",
+ "flags": {},
+ "type": 0,
+ "text": "Der Angegriffene verliert kurz das Gleichgewicht. Er braucht etwas Zeit, um wieder kampfbereit zu sein, und kann in der folgenden Runde nicht angreifen.",
+ "img": "icons/svg/d20-black.svg",
+ "resultId": "",
+ "weight": 10,
+ "range": [11, 20],
+ "drawn": false
+ },
+ {
+ "_id": "gpzhwQyLX429zUz0",
+ "flags": {},
+ "type": 0,
+ "text": "Die Verteidigungswaffe ist zerstört. Benutzt der Abenteurer weder Schild noch Parierwaffe, hat dieser Wurf dieselben Folgen wie 81 - 90. Bei magischen Waffen wird 1W6–1 ([[1d6-1]]) gewürfelt; die Waffe wird nur zerstört, wenn das Ergebnis größer als ihr magischer Abwehrbonus ist.81-90
Der Verteidiger prallt unglücklich mit seinem Gegner zusammen (Nahkampf und Handgemenge) oder gegen ein Hindernis (Fernkampf) und ist kurzzeitig benommen. Im Nahkampf oder Handgemenge kann er in der folgenden Runde weder angreifen noch abwehren. Sein Gegner leidet unter denselben Folgen - aber nur, wenn ihm ein PW:Gewandtheit misslingt. Im Fernkampf kann der Angegriffene wie bei 61-70 dem nächsten Schuss nicht ausweichen und darf außerdem in dieser und der folgenden Runde nicht mehr angreifen.",
+ "img": "icons/svg/d20-black.svg",
+ "resultId": "",
+ "weight": 10,
+ "range": [21, 30],
+ "drawn": false
+ },
+ {
+ "_id": "Znrv6r6SHSBEclYd",
+ "flags": {},
+ "type": 0,
+ "text": "Der Angegriffene lässt seine Verteidigungswaffe fallen. Die Waffe fällt ihm zu Füßen. Benutzt er weder Schild noch Parierwaffe, hat dieser Wurf dieselben Folgen wie 41-50.41-50
Der Verteidiger wird nach hinten gedrängt (Nahkampf), oder der Schwung seiner Ausweichbewegung reißt ihn mit (Fernkampf). Im Nahkampf bewegt sich der Angegriffene 1 m geradlinig vom Gegner weg, wenn ihn kein massives Hindernis daran hindert - selbst wenn er dadurch in ein Lagerfeuer oder einen Abgrund hineingerät. Der Angreifer kann sofort folgen und den Kontakt aufrechterhalten, wenn er will. Im Fernkampf bewegt sich der Angegriffene von seinem Standort aus um 1 m nach links (bei 1-2 mit [[1d6]]), nach rechts (bei 3-4), nach vorne (5) bzw. nach hinten (6), wenn ihn kein Hindernis daran hindert. Im Handgemenge hat der Wurf dieselben Folgen wie 51-60.51-60
Die Sicht des Angegriffenen wird behindert. Er kann in der folgenden Runde nicht angreifen, da er Blut oder Schweiß aus den Augen wischen oder eine verrutschte Kopfbedeckung zurechtrücken muss.",
+ "img": "icons/svg/d20-black.svg",
+ "resultId": "",
+ "weight": 10,
+ "range": [31, 40],
+ "drawn": false
+ },
+ {
+ "_id": "wLeOWz8B21WCkEwK",
+ "flags": {},
+ "type": 0,
+ "text": "Der Verteidiger wird nach hinten gedrängt (Nahkampf), oder der Schwung seiner Ausweichbewegung reißt ihn mit (Fernkampf). Im Nahkampf bewegt sich der Angegriffene 1 m geradlinig vom Gegner weg, wenn ihn kein massives Hindernis daran hindert - selbst wenn er dadurch in ein Lagerfeuer oder einen Abgrund hineingerät. Der Angreifer kann sofort folgen und den Kontakt aufrechterhalten, wenn er will. Im Fernkampf bewegt sich der Angegriffene von seinem Standort aus um 1 m nach links (bei 1-2 mit [[1d6]]), nach rechts (bei 3-4), nach vorne (5) bzw. nach hinten (6), wenn ihn kein Hindernis daran hindert. Im Handgemenge hat der Wurf dieselben Folgen wie 51-60.51-60
Die Sicht des Angegriffenen wird behindert. Er kann in der folgenden Runde nicht angreifen, da er Blut oder Schweiß aus den Augen wischen oder eine verrutschte Kopfbedeckung zurechtrücken muss.",
+ "img": "icons/svg/d20-black.svg",
+ "resultId": "",
+ "weight": 10,
+ "range": [41, 50],
+ "drawn": false
+ },
+ {
+ "_id": "OK1TzYWgPDqvBF6K",
+ "flags": {},
+ "type": 0,
+ "text": "Die Sicht des Angegriffenen wird behindert. Er kann in der folgenden Runde nicht angreifen, da er Blut oder Schweiß aus den Augen wischen oder eine verrutschte Kopfbedeckung zurechtrücken muss.",
+ "img": "icons/svg/d20-black.svg",
+ "resultId": "",
+ "weight": 10,
+ "range": [51, 60],
+ "drawn": false
+ },
+ {
+ "_id": "jmWy6vH4NYiGghPE",
+ "flags": {},
+ "type": 0,
+ "text": "Der Verteidiger gibt sich eine Blöße. Im Nahkampf oder Handgemenge darf der Angreifer sofort außer der Reihe einen zusätzlichen EW:Angriff machen, der nicht abgewehrt werden darf. Im Fernkampf kann der Angegriffene dem nächsten Schuss oder Wurf (in der laufenden oder folgenden Runde, nicht aber später) nicht ausweichen und daher keinen WW:Abwehr würfeln.",
+ "img": "icons/svg/d20-black.svg",
+ "resultId": "",
+ "weight": 10,
+ "range": [61, 70],
+ "drawn": false
+ },
+ {
+ "_id": "o6r0hJ0iufMsINa1",
+ "flags": {},
+ "type": 0,
+ "text": "Der Angegriffene verstaucht sich den Fuß. Die Bewegungsweite verringert sich für [[2d6]] Runden um ein Drittel.",
+ "img": "icons/svg/d20-black.svg",
+ "resultId": "",
+ "weight": 10,
+ "range": [71, 80],
+ "drawn": false
+ },
+ {
+ "_id": "azc8c9daJPxkmg1P",
+ "flags": {},
+ "type": 0,
+ "text": "Der Verteidiger prallt unglücklich mit seinem Gegner zusammen (Nahkampf und Handgemenge) oder gegen ein Hindernis (Fernkampf) und ist kurzzeitig benommen. Im Nahkampf oder Handgemenge kann er in der folgenden Runde weder angreifen noch abwehren. Sein Gegner leidet unter denselben Folgen - aber nur, wenn ihm ein PW:Gewandtheit misslingt. Im Fernkampf kann der Angegriffene wie bei 61-70 dem nächsten Schuss nicht ausweichen und darf außerdem in dieser und der folgenden Runde nicht mehr angreifen.61-70
Im Fernkampf kann der Angegriffene dem nächsten Schuss oder Wurf (in der laufenden oder folgenden Runde, nicht aber später) nicht ausweichen und daher keinen WW:Abwehr würfeln.",
+ "img": "icons/svg/d20-black.svg",
+ "resultId": "",
+ "weight": 10,
+ "range": [81, 90],
+ "drawn": false
+ },
+ {
+ "_id": "fT5NKtySSqN8Yzlu",
+ "flags": {},
+ "type": 0,
+ "text": "Der Angegriffene rutscht aus und stürzt zu Boden. Im Handgemenge hat dieser Wurf dieselben Folgen wie 61-70.61-70
Im Nahkampf oder Handgemenge darf der Angreifer sofort außer der Reihe einen zusätzlichen EW:Angriff machen, der nicht abgewehrt werden darf.",
+ "img": "icons/svg/d20-black.svg",
+ "resultId": "",
+ "weight": 9,
+ "range": [91, 99],
+ "drawn": false
+ },
+ {
+ "_id": "gxzElw6oBZTjj15Z",
+ "flags": {},
+ "type": 0,
+ "text": "Der Angegriffene stürzt und verliert das Bewusstsein. Er kommt nach [[1d6]] Runden wieder zu sich.",
+ "img": "icons/svg/d20-black.svg",
+ "resultId": "",
+ "weight": 1,
+ "range": [100, 100],
+ "drawn": false
+ }
+ ],
+ "formula": "1d100",
+ "replacement": true,
+ "displayRoll": true,
+ "_id": "XKbuKI8F08WdFfWV"
+}
diff --git a/packs/rolltables/tabellen-kritische-ereignisse/kritischer_schaden.json b/packs/rolltables/tabellen-kritische-ereignisse/kritischer_schaden.json
index d35c8d9..980a563 100644
--- a/packs/rolltables/tabellen-kritische-ereignisse/kritischer_schaden.json
+++ b/packs/rolltables/tabellen-kritische-ereignisse/kritischer_schaden.json
@@ -1,261 +1,210 @@
{
- "name": "Kritischer Schaden",
- "permission": {
- "default": 2,
- "CBq5YXAqbO7HoJ03": 3
- },
- "flags": {
- "exportSource": {
- "world": "midgard-test",
- "system": "midgard5",
- "coreVersion": "0.7.9",
- "systemVersion": 0.02
- }
- },
- "img": "icons/svg/d20-highlight.svg",
- "description": "Tabelle 7: Kritischer Schaden Die Folgen schwerer Verletzungen werden auf S. 63 (Kodex) beschrieben.\nEin Treffer hat besonders schwerwiegende Folgen (mit * markiert), wenn die Lebenspunkteverluste ein Drittel des LP-Maximums übersteigen. \nKostet ein kritischer Treffer das Opfer einschließlich der Zusatzschäden keine LP, richtet er keine längerfristigen Schädenan. Gliedmaßen (+) sind nur geprellt und nach 30 min wieder einsatzbereit. Ein Kopf- oder Wirbelsäulentreffer (++) macht nur wegen Schmerzen 30 min lang handlungsunfähig. Treffer im Gesicht/am Auge haben keine besonderen Auswirkungen. ",
- "results": [
- {
- "_id": "YXyhoVz5EAMuc05m",
- "flags": {},
- "type": 0,
- "text": "normaler schwerer Schaden ",
- "img": "icons/svg/d20-black.svg",
- "resultId": "",
- "weight": 10,
- "range": [
- 1,
- 10
- ],
- "drawn": false
- },
- {
- "_id": "jwBN8gCTqMgaPuc4",
- "flags": {},
- "type": 0,
- "text": "kurzer SchockDas Opfer kann durch den Schock der Verwundung eine Runde lang nicht angreifen. ",
- "img": "icons/svg/d20-black.svg",
- "resultId": "",
- "weight": 10,
- "range": [
- 11,
- 20
- ],
- "drawn": false
- },
- {
- "_id": "g1zQk3AHDdlq3sqH",
- "flags": {},
- "type": 0,
- "text": "Rumpftreffer mit Rippenbrüchen [[1d3]] Rippen des Opfers brechen.@UUID[Compendium.midgard5.verletzungen.Item.PJ0tqjZXQ5opcY16]{Rippen}",
- "img": "icons/svg/d20-black.svg",
- "resultId": "",
- "weight": 10,
- "range": [
- 21,
- 30
- ],
- "drawn": false
- },
- {
- "_id": "XdF7xn83ChS4Qrzf",
- "flags": {},
- "type": 0,
- "text": "Rumpftreffer mit Gefahr innerer Verletzungen Das Opfer verliert zusätzlich zum normalen Schaden [[1d6]] LP und AP.* : Schwere innere Verletzungen@UUID[Compendium.midgard5.verletzungen.Item.PJ0tqjZXQ5opcY13]{Innere Verletzungen}",
- "img": "icons/svg/d20-black.svg",
- "resultId": "",
- "weight": 5,
- "range": [
- 31,
- 35
- ],
- "drawn": false
- },
- {
- "_id": "UjqhkUyUaBZ7n6CC",
- "flags": {},
- "type": 0,
- "text": "schwere Verletzung der Wirbelsäule ++ Nur ein wuchtiger Hieb, z.B. mit einer Schlagwaffe, einer zweihändigen Hiebwaffe, einem Morgenstern, einem Kampfstab oder mit einer Pranke, richtet diese Art von kritischem Schaden an. Treffer mit anderen Waffen verursachen normalen schweren Schaden.",
- "img": "icons/svg/d20-black.svg",
- "resultId": "",
- "weight": 5,
- "range": [
- 36,
- 40
- ],
- "drawn": false
- },
- {
- "_id": "W7yzr5lC0z5NDt77",
- "flags": {},
- "type": 0,
- "text": "schwere Verletzung am rechten Arm + * : Mit 20% wird der Arm abgetrennt (bei einer Waffe mit Schneide) oder dauerhaft verkrüppelt. Mit Armschutz führt auch der Treffer mit einer scharfen Waffe nicht zum Abtrennen, sondern nur zur Verkrüppelung des Armes. Treffer mit Stich-, Wurf- oder Schusswaffen haben keine derart schwerwiegenden Auswirkungen.@UUID[Compendium.midgard5.verletzungen.Item.PJ0tqjZXQ5opcYz8]{Arm}",
- "img": "icons/svg/d20-black.svg",
- "resultId": "",
- "weight": 7,
- "range": [
- 41,
- 47
- ],
- "drawn": false
- },
- {
- "_id": "1dFkXxy7VhtSbahw",
- "flags": {},
- "type": 0,
- "text": "schwere Verletzung am linken Arm + * : Mit 20% wird der Arm abgetrennt (bei einer Waffe mit Schneide) oder dauerhaft verkrüppelt. Mit Armschutz führt auch der Treffer mit einer scharfen Waffe nicht zum Abtrennen, sondern nur zur Verkrüppelung des Armes. Treffer mit Stich-, Wurf- oder Schusswaffen haben keine derart schwerwiegenden Auswirkungen.@UUID[Compendium.midgard5.verletzungen.Item.PJ0tqjZXQ5opcYz8]{Arm}",
- "img": "icons/svg/d20-black.svg",
- "resultId": "",
- "weight": 8,
- "range": [
- 48,
- 55
- ],
- "drawn": false
- },
- {
- "_id": "CiAwKT1ZhOGKplBr",
- "flags": {},
- "type": 0,
- "text": "schwere Verletzung am rechten Bein + * : Mit 20% wird das Bein abgetrennt (ohne Beinschutz bei einer Waffe mit Schneide) oder dauerhaft verkrüppelt. Treffer mit Stich-, Wurf- oder Schusswaffen haben keine derart schwerwiegenden Auswirkungen.@UUID[Compendium.midgard5.verletzungen.Item.PJ0tqjZXQ5opcYz9]{Bein}",
- "img": "icons/svg/d20-black.svg",
- "resultId": "",
- "weight": 9,
- "range": [
- 56,
- 64
- ],
- "drawn": false
- },
- {
- "_id": "PZa6plWsSiQFmu5c",
- "flags": {},
- "type": 0,
- "text": "schwere Verletzung am linken Bein + * : Mit 20% wird das Bein abgetrennt (ohne Beinschutz bei einer Waffe mit Schneide) oder dauerhaft verkrüppelt. Treffer mit Stich-, Wurf- oder Schusswaffen haben keine derart schwerwiegenden Auswirkungen.@UUID[Compendium.midgard5.verletzungen.Item.PJ0tqjZXQ5opcYz9]{Bein}",
- "img": "icons/svg/d20-black.svg",
- "resultId": "",
- "weight": 9,
- "range": [
- 65,
- 73
- ],
- "drawn": false
- },
- {
- "_id": "5xXKfpkaOap9WV0o",
- "flags": {},
- "type": 0,
- "text": "schwerer Kopftreffer ++ Helmlose Opfer verlieren zusätzlich zum normalen Schaden [[1d3]] LP und AP.",
- "img": "icons/svg/d20-black.svg",
- "resultId": "",
- "weight": 7,
- "range": [
- 74,
- 80
- ],
- "drawn": false
- },
- {
- "_id": "5OTWkWQxchPs6SQI",
- "flags": {},
- "type": 0,
- "text": "Treffer im Gesicht Das Aussehen des Getroffenen sinkt durch eine entstellende Narbe dauerhaft um ein Zehntel (mindestens aber um 1). Der Träger eines Helms mit Visier ist vor dieser Art von Schaden sicher.",
- "img": "icons/svg/d20-black.svg",
- "resultId": "",
- "weight": 5,
- "range": [
- 81,
- 85
- ],
- "drawn": false
- },
- {
- "_id": "GaZZENfKk81MI1IK",
- "flags": {},
- "type": 0,
- "text": "Kopftreffer mit Hörschaden <++> Helmlose Opfer verlieren zusätzlich zum normalen Schaden [[1d3]] LP und AP. Zusätzlich schwere Verletzung am Ohr. Helmträger sind vor dieser Art von Schaden sicher.@UUID[Compendium.midgard5.verletzungen.Item.PJ0tqjZXQ5opcY15]{Ohr}",
- "img": "icons/svg/d20-black.svg",
- "resultId": "",
- "weight": 4,
- "range": [
- 86,
- 89
- ],
- "drawn": false
- },
- {
- "_id": "OsfxiUi4dg0RM9XV",
- "flags": {},
- "type": 0,
- "text": "Augenverletzung Der Träger eines Helms mit Visier ist vor dieser Art von Schaden sicher.@UUID[Compendium.midgard5.verletzungen.Item.PJ0tqjZXQ5opcY14]{Auge}",
- "img": "icons/svg/d20-black.svg",
- "resultId": "",
- "weight": 4,
- "range": [
- 90,
- 93
- ],
- "drawn": false
- },
- {
- "_id": "TGtUlGPANVjZLgZH",
- "flags": {},
- "type": 0,
- "text": "Halstreffer * : Eine spitze oder scharfe Waffe verletzt die Halsschlagader. Eine stumpfe Waffe verursacht eine schwere Halswirbelverletzung.@UUID[Compendium.midgard5.kampfzustaende.Item.PJ0tqjZXQ5opcYz5]{Blutend}",
- "img": "icons/svg/d20-black.svg",
- "resultId": "",
- "weight": 3,
- "range": [
- 94,
- 96
- ],
- "drawn": false
- },
- {
- "_id": "98WnvS1A35Vr0rOv",
- "flags": {},
- "type": 0,
- "text": "schwere Schädelverletzung ++ Helmlose Opfer verlieren zusätzlich zum normalen Schaden [[1d6]] LP und AP. Fällt das Opfer ins Koma, sinkt seine Intelligenz durch Hirnschäden dauerhaft um ein Zehntel (mindestens aber um 1).",
- "img": "icons/svg/d20-black.svg",
- "resultId": "",
- "weight": 1,
- "range": [
- 97,
- 97
- ],
- "drawn": false
- },
- {
- "_id": "8g1FJIsxKFVWvyxe",
- "flags": {},
- "type": 0,
- "text": "Augenverlust Bei einem Treffer mit einer scharfen oder spitzen Waffe oder einer Schusswaffe verliert das Opfer ein Auge. Der Träger eines Helms mit Visier ist vor dieser Art von Schaden sicher.@UUID[Compendium.midgard5.verletzungen.Item.PJ0tqjZXQ5opcY14]{Auge}",
- "img": "icons/svg/d20-black.svg",
- "resultId": "",
- "weight": 2,
- "range": [
- 98,
- 99
- ],
- "drawn": false
- },
- {
- "_id": "U1SXJI4yzfzcQM01",
- "flags": {},
- "type": 0,
- "text": "tödlicher Treffer Ein Treffer ins Herz, an der Kehle usw. tötet den Getroffenen augenblicklich.",
- "img": "icons/svg/d20-black.svg",
- "resultId": "",
- "weight": 1,
- "range": [
- 100,
- 100
- ],
- "drawn": false
- }
- ],
- "formula": "1d100",
- "replacement": true,
- "displayRoll": true,
- "_id": "cQX6GAYWErokE8ks"
-}
\ No newline at end of file
+ "name": "Kritischer Schaden",
+ "permission": {
+ "default": 2,
+ "CBq5YXAqbO7HoJ03": 3
+ },
+ "flags": {
+ "exportSource": {
+ "world": "midgard-test",
+ "system": "midgard5",
+ "coreVersion": "0.7.9",
+ "systemVersion": 0.02
+ }
+ },
+ "img": "icons/svg/d20-highlight.svg",
+ "description": "Tabelle 7: Kritischer Schaden Die Folgen schwerer Verletzungen werden auf S. 63 (Kodex) beschrieben.\nEin Treffer hat besonders schwerwiegende Folgen (mit * markiert), wenn die Lebenspunkteverluste ein Drittel des LP-Maximums übersteigen. \nKostet ein kritischer Treffer das Opfer einschließlich der Zusatzschäden keine LP, richtet er keine längerfristigen Schädenan. Gliedmaßen (+) sind nur geprellt und nach 30 min wieder einsatzbereit. Ein Kopf- oder Wirbelsäulentreffer (++) macht nur wegen Schmerzen 30 min lang handlungsunfähig. Treffer im Gesicht/am Auge haben keine besonderen Auswirkungen. ",
+ "results": [
+ {
+ "_id": "YXyhoVz5EAMuc05m",
+ "flags": {},
+ "type": 0,
+ "text": "normaler schwerer Schaden ",
+ "img": "icons/svg/d20-black.svg",
+ "resultId": "",
+ "weight": 10,
+ "range": [1, 10],
+ "drawn": false
+ },
+ {
+ "_id": "jwBN8gCTqMgaPuc4",
+ "flags": {},
+ "type": 0,
+ "text": "kurzer SchockDas Opfer kann durch den Schock der Verwundung eine Runde lang nicht angreifen. ",
+ "img": "icons/svg/d20-black.svg",
+ "resultId": "",
+ "weight": 10,
+ "range": [11, 20],
+ "drawn": false
+ },
+ {
+ "_id": "g1zQk3AHDdlq3sqH",
+ "flags": {},
+ "type": 0,
+ "text": "Rumpftreffer mit Rippenbrüchen [[1d3]] Rippen des Opfers brechen.@UUID[Compendium.midgard5.verletzungen.Item.PJ0tqjZXQ5opcY16]{Rippen}",
+ "img": "icons/svg/d20-black.svg",
+ "resultId": "",
+ "weight": 10,
+ "range": [21, 30],
+ "drawn": false
+ },
+ {
+ "_id": "XdF7xn83ChS4Qrzf",
+ "flags": {},
+ "type": 0,
+ "text": "Rumpftreffer mit Gefahr innerer Verletzungen Das Opfer verliert zusätzlich zum normalen Schaden [[1d6]] LP und AP.* : Schwere innere Verletzungen@UUID[Compendium.midgard5.verletzungen.Item.PJ0tqjZXQ5opcY13]{Innere Verletzungen}",
+ "img": "icons/svg/d20-black.svg",
+ "resultId": "",
+ "weight": 5,
+ "range": [31, 35],
+ "drawn": false
+ },
+ {
+ "_id": "UjqhkUyUaBZ7n6CC",
+ "flags": {},
+ "type": 0,
+ "text": "schwere Verletzung der Wirbelsäule ++ Nur ein wuchtiger Hieb, z.B. mit einer Schlagwaffe, einer zweihändigen Hiebwaffe, einem Morgenstern, einem Kampfstab oder mit einer Pranke, richtet diese Art von kritischem Schaden an. Treffer mit anderen Waffen verursachen normalen schweren Schaden.",
+ "img": "icons/svg/d20-black.svg",
+ "resultId": "",
+ "weight": 5,
+ "range": [36, 40],
+ "drawn": false
+ },
+ {
+ "_id": "W7yzr5lC0z5NDt77",
+ "flags": {},
+ "type": 0,
+ "text": "schwere Verletzung am rechten Arm + * : Mit 20% wird der Arm abgetrennt (bei einer Waffe mit Schneide) oder dauerhaft verkrüppelt. Mit Armschutz führt auch der Treffer mit einer scharfen Waffe nicht zum Abtrennen, sondern nur zur Verkrüppelung des Armes. Treffer mit Stich-, Wurf- oder Schusswaffen haben keine derart schwerwiegenden Auswirkungen.@UUID[Compendium.midgard5.verletzungen.Item.PJ0tqjZXQ5opcYz8]{Arm}",
+ "img": "icons/svg/d20-black.svg",
+ "resultId": "",
+ "weight": 7,
+ "range": [41, 47],
+ "drawn": false
+ },
+ {
+ "_id": "1dFkXxy7VhtSbahw",
+ "flags": {},
+ "type": 0,
+ "text": "schwere Verletzung am linken Arm + * : Mit 20% wird der Arm abgetrennt (bei einer Waffe mit Schneide) oder dauerhaft verkrüppelt. Mit Armschutz führt auch der Treffer mit einer scharfen Waffe nicht zum Abtrennen, sondern nur zur Verkrüppelung des Armes. Treffer mit Stich-, Wurf- oder Schusswaffen haben keine derart schwerwiegenden Auswirkungen.@UUID[Compendium.midgard5.verletzungen.Item.PJ0tqjZXQ5opcYz8]{Arm}",
+ "img": "icons/svg/d20-black.svg",
+ "resultId": "",
+ "weight": 8,
+ "range": [48, 55],
+ "drawn": false
+ },
+ {
+ "_id": "CiAwKT1ZhOGKplBr",
+ "flags": {},
+ "type": 0,
+ "text": "schwere Verletzung am rechten Bein + * : Mit 20% wird das Bein abgetrennt (ohne Beinschutz bei einer Waffe mit Schneide) oder dauerhaft verkrüppelt. Treffer mit Stich-, Wurf- oder Schusswaffen haben keine derart schwerwiegenden Auswirkungen.@UUID[Compendium.midgard5.verletzungen.Item.PJ0tqjZXQ5opcYz9]{Bein}",
+ "img": "icons/svg/d20-black.svg",
+ "resultId": "",
+ "weight": 9,
+ "range": [56, 64],
+ "drawn": false
+ },
+ {
+ "_id": "PZa6plWsSiQFmu5c",
+ "flags": {},
+ "type": 0,
+ "text": "schwere Verletzung am linken Bein + * : Mit 20% wird das Bein abgetrennt (ohne Beinschutz bei einer Waffe mit Schneide) oder dauerhaft verkrüppelt. Treffer mit Stich-, Wurf- oder Schusswaffen haben keine derart schwerwiegenden Auswirkungen.@UUID[Compendium.midgard5.verletzungen.Item.PJ0tqjZXQ5opcYz9]{Bein}",
+ "img": "icons/svg/d20-black.svg",
+ "resultId": "",
+ "weight": 9,
+ "range": [65, 73],
+ "drawn": false
+ },
+ {
+ "_id": "5xXKfpkaOap9WV0o",
+ "flags": {},
+ "type": 0,
+ "text": "schwerer Kopftreffer ++ Helmlose Opfer verlieren zusätzlich zum normalen Schaden [[1d3]] LP und AP.",
+ "img": "icons/svg/d20-black.svg",
+ "resultId": "",
+ "weight": 7,
+ "range": [74, 80],
+ "drawn": false
+ },
+ {
+ "_id": "5OTWkWQxchPs6SQI",
+ "flags": {},
+ "type": 0,
+ "text": "Treffer im Gesicht Das Aussehen des Getroffenen sinkt durch eine entstellende Narbe dauerhaft um ein Zehntel (mindestens aber um 1). Der Träger eines Helms mit Visier ist vor dieser Art von Schaden sicher.",
+ "img": "icons/svg/d20-black.svg",
+ "resultId": "",
+ "weight": 5,
+ "range": [81, 85],
+ "drawn": false
+ },
+ {
+ "_id": "GaZZENfKk81MI1IK",
+ "flags": {},
+ "type": 0,
+ "text": "Kopftreffer mit Hörschaden <++> Helmlose Opfer verlieren zusätzlich zum normalen Schaden [[1d3]] LP und AP. Zusätzlich schwere Verletzung am Ohr. Helmträger sind vor dieser Art von Schaden sicher.@UUID[Compendium.midgard5.verletzungen.Item.PJ0tqjZXQ5opcY15]{Ohr}",
+ "img": "icons/svg/d20-black.svg",
+ "resultId": "",
+ "weight": 4,
+ "range": [86, 89],
+ "drawn": false
+ },
+ {
+ "_id": "OsfxiUi4dg0RM9XV",
+ "flags": {},
+ "type": 0,
+ "text": "Augenverletzung Der Träger eines Helms mit Visier ist vor dieser Art von Schaden sicher.@UUID[Compendium.midgard5.verletzungen.Item.PJ0tqjZXQ5opcY14]{Auge}",
+ "img": "icons/svg/d20-black.svg",
+ "resultId": "",
+ "weight": 4,
+ "range": [90, 93],
+ "drawn": false
+ },
+ {
+ "_id": "TGtUlGPANVjZLgZH",
+ "flags": {},
+ "type": 0,
+ "text": "Halstreffer * : Eine spitze oder scharfe Waffe verletzt die Halsschlagader. Eine stumpfe Waffe verursacht eine schwere Halswirbelverletzung.@UUID[Compendium.midgard5.kampfzustaende.Item.PJ0tqjZXQ5opcYz5]{Blutend}",
+ "img": "icons/svg/d20-black.svg",
+ "resultId": "",
+ "weight": 3,
+ "range": [94, 96],
+ "drawn": false
+ },
+ {
+ "_id": "98WnvS1A35Vr0rOv",
+ "flags": {},
+ "type": 0,
+ "text": "schwere Schädelverletzung ++ Helmlose Opfer verlieren zusätzlich zum normalen Schaden [[1d6]] LP und AP. Fällt das Opfer ins Koma, sinkt seine Intelligenz durch Hirnschäden dauerhaft um ein Zehntel (mindestens aber um 1).",
+ "img": "icons/svg/d20-black.svg",
+ "resultId": "",
+ "weight": 1,
+ "range": [97, 97],
+ "drawn": false
+ },
+ {
+ "_id": "8g1FJIsxKFVWvyxe",
+ "flags": {},
+ "type": 0,
+ "text": "Augenverlust Bei einem Treffer mit einer scharfen oder spitzen Waffe oder einer Schusswaffe verliert das Opfer ein Auge. Der Träger eines Helms mit Visier ist vor dieser Art von Schaden sicher.@UUID[Compendium.midgard5.verletzungen.Item.PJ0tqjZXQ5opcY14]{Auge}",
+ "img": "icons/svg/d20-black.svg",
+ "resultId": "",
+ "weight": 2,
+ "range": [98, 99],
+ "drawn": false
+ },
+ {
+ "_id": "U1SXJI4yzfzcQM01",
+ "flags": {},
+ "type": 0,
+ "text": "tödlicher Treffer Ein Treffer ins Herz, an der Kehle usw. tötet den Getroffenen augenblicklich.",
+ "img": "icons/svg/d20-black.svg",
+ "resultId": "",
+ "weight": 1,
+ "range": [100, 100],
+ "drawn": false
+ }
+ ],
+ "formula": "1d100",
+ "replacement": true,
+ "displayRoll": true,
+ "_id": "cQX6GAYWErokE8ks"
+}
diff --git a/source/Globals.ts b/source/Globals.ts
index ef93cf7..ddc62ab 100644
--- a/source/Globals.ts
+++ b/source/Globals.ts
@@ -1,9 +1,9 @@
-import assert from "assert"
+import assert from "assert";
export default {
- name: "midgard5",
- isModule: false, // If you are developing a system rather than a module, change this to false
-}
+ name: "midgard5",
+ isModule: false, // If you are developing a system rather than a module, change this to false
+};
// Pop some fairly universal types that we might use
diff --git a/source/PreloadTemplates.ts b/source/PreloadTemplates.ts
index b2f2d19..95a73ee 100644
--- a/source/PreloadTemplates.ts
+++ b/source/PreloadTemplates.ts
@@ -1,25 +1,27 @@
import Globals from "./Globals";
-const preloadTemplates = async (): Promise[]> => {
- const rootPath = `${Globals.isModule ? "modules" : "systems"}/${Globals.name}/templates/`;
- // Place relative paths in array below, e.g.:
- // const templates = [ rootPath + "actor/actor-sheet.hbs" ]
- // This would map to our local folder of /Assets/Templates/Actor/actor-sheet.hbs
- const templates: Array = [
- "sheets/character/description.hbs",
- "sheets/character/attribute.hbs",
- "sheets/character/base_values.hbs",
- "sheets/character/main.hbs",
- "sheets/character/skills.hbs",
- "sheets/character/gear.hbs",
- "sheets/character/spells.hbs",
- "sheets/character/combat.hbs",
- "sheets/character/effects.hbs",
- "sheets/partial/mod.hbs",
- "sheets/item/rolls.hbs",
- "chat/roll-m5.hbs",
- ];
- return loadTemplates(templates.map((s) => rootPath + s));
+const preloadTemplates = async (): Promise<
+ Handlebars.TemplateDelegate[]
+> => {
+ const rootPath = `${Globals.isModule ? "modules" : "systems"}/${Globals.name}/templates/`;
+ // Place relative paths in array below, e.g.:
+ // const templates = [ rootPath + "actor/actor-sheet.hbs" ]
+ // This would map to our local folder of /Assets/Templates/Actor/actor-sheet.hbs
+ const templates: Array = [
+ "sheets/character/description.hbs",
+ "sheets/character/attribute.hbs",
+ "sheets/character/base_values.hbs",
+ "sheets/character/main.hbs",
+ "sheets/character/skills.hbs",
+ "sheets/character/gear.hbs",
+ "sheets/character/spells.hbs",
+ "sheets/character/combat.hbs",
+ "sheets/character/effects.hbs",
+ "sheets/partial/mod.hbs",
+ "sheets/item/rolls.hbs",
+ "chat/roll-m5.hbs",
+ ];
+ return loadTemplates(templates.map((s) => rootPath + s));
};
export default preloadTemplates;
diff --git a/source/index.ts b/source/index.ts
index e11f94a..33acea2 100644
--- a/source/index.ts
+++ b/source/index.ts
@@ -1,276 +1,296 @@
-import Logger from "./utils/Logger";
-import M5CharacterSheet from "./module/sheets/M5CharacterSheet";
-import preloadTemplates from "./PreloadTemplates";
-import { M5Character } from "./module/actors/M5Character";
-import { M5ItemMod, M5ModOperation, M5Skill, M5TimeUnit } from "./module/M5Base";
-import { M5ItemSheet } from "./module/sheets/M5ItemSheet";
-import { M5Item } from "./module/items/M5Item";
+import Logger from './utils/Logger';
+import M5CharacterSheet from './module/sheets/M5CharacterSheet';
+import preloadTemplates from './PreloadTemplates';
+import { M5Character } from './module/actors/M5Character';
+import { M5ItemMod, M5ModOperation, M5Skill, M5TimeUnit } from './module/M5Base';
+import { M5ItemSheet } from './module/sheets/M5ItemSheet';
+import { M5Item } from './module/items/M5Item';
-Hooks.once("init", async () => {
- Logger.log("M5 | Initialisierung Midgard 5");
+Hooks.once('init', async () => {
+ Logger.log('M5 | Initialisierung Midgard 5');
- Handlebars.registerHelper("times", (n: number, block) => {
- var accum = "";
- for (let i = 0; i < n; ++i) accum += block.fn(i);
- return accum;
- });
+ Handlebars.registerHelper('times', (n: number, block) => {
+ var accum = '';
+ for (let i = 0; i < n; ++i) accum += block.fn(i);
+ return accum;
+ });
- Handlebars.registerHelper("array", (arr: any[], index: number) => {
- return arr[index];
- });
+ Handlebars.registerHelper('array', (arr: any[], index: number) => {
+ return arr[index];
+ });
- Handlebars.registerHelper("m5concat", (...values) => {
- const options = values.pop();
- const join = options.hash?.join || "";
- //return new Handlebars.SafeString(values.join(join));
- return values.map((val) => val.toString()).join(join);
- });
+ Handlebars.registerHelper('m5concat', (...values) => {
+ const options = values.pop();
+ const join = options.hash?.join || '';
+ //return new Handlebars.SafeString(values.join(join));
+ return values.map(val => val.toString()).join(join);
+ });
- Handlebars.registerHelper("add", (...values) => {
- const options = values.pop();
- return values.reduce((prev, cur) => prev + cur);
- });
+ Handlebars.registerHelper('add', (...values) => {
+ const options = values.pop();
+ return values.reduce((prev, cur) => prev + cur);
+ });
- Handlebars.registerHelper("localizeMidgard", (str: string) => {
- const template = Handlebars.compile("{{localize value}}");
- return template({
- value: "midgard5." + str,
- });
- });
+ Handlebars.registerHelper('localizeMidgard', (str: string) => {
+ const template = Handlebars.compile('{{localize value}}');
+ return template({
+ value: 'midgard5.' + str,
+ });
+ });
- Handlebars.registerHelper("skillBonus", (actorId: string, skill: M5Skill) => {
- const actor = (game as Game).actors.get(actorId) as M5Character;
- return actor.skillBonus(skill).toString();
- });
+ Handlebars.registerHelper('skillBonus', (actorId: string, skill: M5Skill) => {
+ const actor = (game as Game).actors.get(actorId) as M5Character;
+ return actor.skillBonus(skill).toString();
+ });
- Handlebars.registerHelper("skillEw", (actorId: string, skill: M5Skill) => {
- const actor = (game as Game).actors.get(actorId) as M5Character;
- return actor.skillEw(skill).toString();
- });
+ Handlebars.registerHelper('skillEw', (actorId: string, skill: M5Skill) => {
+ const actor = (game as Game).actors.get(actorId) as M5Character;
+ return actor.skillEw(skill).toString();
+ });
- Handlebars.registerHelper("skill", (skillId: string) => {
- return (game as Game).items.get(skillId);
- });
+ Handlebars.registerHelper('skill', (skillId: string) => {
+ return (game as Game).items.get(skillId);
+ });
- Handlebars.registerHelper("itemValue", (id: string, path: string) => {
- let obj = (game as Game).items.get(id);
- path.split(".").forEach((p) => (obj = obj[p]));
- return `${obj}`;
- });
+ Handlebars.registerHelper('itemValue', (id: string, path: string) => {
+ let obj = (game as Game).items.get(id);
+ path.split('.').forEach(p => (obj = obj[p]));
+ return `${obj}`;
+ });
- Handlebars.registerHelper("actorItemValue", (actorId: any, itemId: string, path: string, token?: boolean) => {
- //console.log("actorItemValue", actorId, itemId, path)
- const actor = (game as Game).actors.get(actorId);
- let obj = actor.items.get(itemId)?.system;
- path.split(".").forEach((p) => {
- if (obj) obj = obj[p];
- });
- return `${obj}`;
- });
+ Handlebars.registerHelper('actorItemValue', (actorId: any, itemId: string, path: string, token?: boolean) => {
+ //console.log("actorItemValue", actorId, itemId, path)
+ const actor = (game as Game).actors.get(actorId);
+ let obj = actor.items.get(itemId)?.system;
+ path.split('.').forEach(p => {
+ if (obj) obj = obj[p];
+ });
+ return `${obj}`;
+ });
- Handlebars.registerHelper("icon", (relpath: string) => {
- return `systems/midgard5/assets/icons/${relpath}`;
- });
+ Handlebars.registerHelper('icon', (relpath: string) => {
+ return `systems/midgard5/assets/icons/${relpath}`;
+ });
- Handlebars.registerHelper("isSkillInList", (skillName: string, list: any) => {
- for (let key in list) {
- if (list[key]?.label?.toLowerCase() === skillName?.toLowerCase()) {
- return true;
- }
- }
- return false;
- });
+ Handlebars.registerHelper('isSkillInList', (skillName: string, list: any) => {
+ for (let key in list) {
+ if (list[key]?.label?.toLowerCase() === skillName?.toLowerCase()) {
+ return true;
+ }
+ }
+ return false;
+ });
- Handlebars.registerHelper("stripHtml", function (param) {
- var regex = /(<([^>]+)>)/gi;
- return param.replace(regex, "");
- });
+ Handlebars.registerHelper('stripHtml', function (param) {
+ var regex = /(<([^>]+)>)/gi;
+ return param.replace(regex, '');
+ });
- Handlebars.registerHelper("contains", (label: string, contains: string) => {
- return label.toLowerCase().includes(contains.toLowerCase());
- });
+ Handlebars.registerHelper('contains', (label: string, contains: string) => {
+ return label.toLowerCase().includes(contains.toLowerCase());
+ });
- Handlebars.registerHelper("count", (object: any) => {
- var length = 0;
- for (var key in object) {
- if (object.hasOwnProperty(key)) {
- ++length;
- }
- }
- return length;
- });
+ Handlebars.registerHelper('count', (object: any) => {
+ var length = 0;
+ for (var key in object) {
+ if (object.hasOwnProperty(key)) {
+ ++length;
+ }
+ }
+ return length;
+ });
- // Default Sheet für Items definieren und das Standardsheet deaktivieren
- Items.unregisterSheet("core", ItemSheet);
- Items.registerSheet("midgard5", M5ItemSheet, { makeDefault: true });
+ // Default Sheet für Items definieren und das Standardsheet deaktivieren
+ Items.unregisterSheet('core', ItemSheet);
+ Items.registerSheet('midgard5', M5ItemSheet, { makeDefault: true });
- // Default Sheet für Actors definieren und das Standardsheet deaktivieren
- Actors.unregisterSheet("core", ActorSheet);
- Actors.registerSheet("midgard5", M5CharacterSheet, { makeDefault: true });
+ // Default Sheet für Actors definieren und das Standardsheet deaktivieren
+ Actors.unregisterSheet('core', ActorSheet);
+ Actors.registerSheet('midgard5', M5CharacterSheet, { makeDefault: true });
- CONFIG.Actor.documentClass = M5Character;
- CONFIG.Item.documentClass = M5Item;
- //RegisterSettings();
- await preloadTemplates();
+ CONFIG.Actor.documentClass = M5Character;
+ CONFIG.Item.documentClass = M5Item;
+ //RegisterSettings();
+ await preloadTemplates();
});
-Hooks.once("setup", () => {
- Logger.log("Template module is being setup.");
+Hooks.once('setup', () => {
+ Logger.log('Template module is being setup.');
});
-Hooks.on("getChatLogEntryContext", function (html, options) {
- options.push(
- {
- name: "LP & AP Schaden",
- icon: ' ',
- condition: (li) => {
- const damageRolls = li.find(".damage").length;
+Hooks.on('getChatLogEntryContext', function (html, options) {
+ options.push(
+ {
+ name: 'LP & AP Schaden',
+ icon: ' ',
- // All must be true to show the reroll dialogue
- return (game["user"].character || game["canvas"].tokens.controlled) && damageRolls > 0;
- },
- callback: (li) => applyDamage(li, 2),
- },
- {
- name: "AP Schaden",
- icon: ' ',
- condition: (li) => {
- const damageRolls = li.find(".damage").length;
+ condition: li => {
+ const damageRolls = li.find('.damage').length;
- // All must be true to show the reroll dialogue
- return (game["user"].character || game["canvas"].tokens.controlled) && damageRolls > 0;
- },
- callback: (li) => applyDamage(li, 1),
- },
- {
- name: "LP & AP Heilen",
- icon: ' ',
- condition: (li) => {
- const damageRolls = li.find(".heal").length;
+ // All must be true to show the reroll dialogue
+ return (game['user'].character || game['canvas'].tokens.controlled) && damageRolls > 0;
+ },
+ callback: li => applyDamage(li, 2),
+ },
+ {
+ name: 'AP Schaden',
+ icon: ' ',
+ condition: li => {
+ const damageRolls = li.find('.damage').length;
- // All must be true to show the reroll dialogue
- return (game["user"].character || game["canvas"].tokens.controlled) && damageRolls > 0;
- },
- callback: (li) => applyDamage(li, -1),
- },
- {
- name: "AP Heilen",
- icon: ' ',
- condition: (li) => {
- const damageRolls = li.find(".heal").length;
+ // All must be true to show the reroll dialogue
+ return (game['user'].character || game['canvas'].tokens.controlled) && damageRolls > 0;
+ },
+ callback: li => applyDamage(li, 1),
+ },
+ {
+ name: 'LP & AP Heilen',
+ icon: ' ',
+ condition: li => {
+ const damageRolls = li.find('.heal').length;
- // All must be true to show the reroll dialogue
- return (game["user"].character || game["canvas"].tokens.controlled) && damageRolls > 0;
- },
- callback: (li) => applyDamage(li, -2),
- }
- );
+ // All must be true to show the reroll dialogue
+ return (game['user'].character || game['canvas'].tokens.controlled) && damageRolls > 0;
+ },
+ callback: li => applyDamage(li, -1),
+ },
+ {
+ name: 'AP Heilen',
+ icon: ' ',
+ condition: li => {
+ const damageRolls = li.find('.heal').length;
+
+ // All must be true to show the reroll dialogue
+ return (game['user'].character || game['canvas'].tokens.controlled) && damageRolls > 0;
+ },
+ callback: li => applyDamage(li, -2),
+ }
+ );
});
-Hooks.on("updateCombat", function (combat: Combat, updateData: { round: number; turn: number }, updateOptions: { advanceTime: number; direction: number }) {
- if (combat.round % 2 === 0 && combat.turn !== null) {
- const tokenId = combat.current.tokenId;
- const actorId = combat.combatant["actorId"];
- let currentToken = game["actors"].tokens[tokenId];
- if (!currentToken) {
- currentToken = game["actors"].get(actorId);
- }
- let activeEffects = currentToken.items.filter((x) => x.type === "effect" && x.system.equipped) || [];
- activeEffects.forEach((effect) => {
- if (effect.system?.duration?.time > 0) {
- if (effect.system.duration.unit === M5TimeUnit.ROUND) {
- effect.system.duration.time -= 1;
- }
- }
- if (effect.system?.duration.time === 0 && effect.system.duration.unit !== M5TimeUnit.LIMITLESS) {
- effect.system.equipped = false;
- }
- for (const key in effect.system.mods) {
- if (effect.system.mods[key].operation === M5ModOperation.SUBTRACT) {
- switch (effect.system.mods[key].id) {
- case "lp":
- currentToken["system"].lp.value -= effect.system.mods[key].value;
- break;
- case "ap":
- currentToken["system"].ap.value -= effect.system.mods[key].value;
- break;
- }
- } else if (effect.system.mods[key].operation === M5ModOperation.ADD) {
- switch (effect.system.mods[key].id) {
- case "lp":
- currentToken["system"].lp.value += limitHeal(effect.system.mods[key].value, currentToken["system"].lp.value, currentToken["system"].lp.max);
- break;
- case "ap":
- currentToken["system"].ap.value += limitHeal(effect.system.mods[key].value, currentToken["system"].ap.value, currentToken["system"].ap.max);
- break;
- }
- }
- }
- });
- currentToken.render();
- }
+Hooks.on(
+ 'updateCombat',
+ function (
+ combat: Combat,
+ updateData: { round: number; turn: number },
+ updateOptions: { advanceTime: number; direction: number }
+ ) {
+ if (combat.round % 2 === 0 && combat.turn !== null) {
+ const tokenId = combat.current.tokenId;
+ const actorId = combat.combatant['actorId'];
+ let currentToken = game['actors'].tokens[tokenId];
+ if (!currentToken) {
+ currentToken = game['actors'].get(actorId);
+ }
+ let activeEffects = currentToken.items.filter(x => x.type === 'effect' && x.system.equipped) || [];
+ activeEffects.forEach(effect => {
+ if (effect.system?.duration?.time > 0) {
+ if (effect.system.duration.unit === M5TimeUnit.ROUND) {
+ effect.system.duration.time -= 1;
+ }
+ }
+ if (effect.system?.duration.time === 0 && effect.system.duration.unit !== M5TimeUnit.LIMITLESS) {
+ effect.system.equipped = false;
+ }
+ for (const key in effect.system.mods) {
+ if (effect.system.mods[key].operation === M5ModOperation.SUBTRACT) {
+ switch (effect.system.mods[key].id) {
+ case 'lp':
+ currentToken['system'].lp.value -= effect.system.mods[key].value;
+ break;
+ case 'ap':
+ currentToken['system'].ap.value -= effect.system.mods[key].value;
+ break;
+ }
+ } else if (effect.system.mods[key].operation === M5ModOperation.ADD) {
+ switch (effect.system.mods[key].id) {
+ case 'lp':
+ currentToken['system'].lp.value += limitHeal(
+ effect.system.mods[key].value,
+ currentToken['system'].lp.value,
+ currentToken['system'].lp.max
+ );
+ break;
+ case 'ap':
+ currentToken['system'].ap.value += limitHeal(
+ effect.system.mods[key].value,
+ currentToken['system'].ap.value,
+ currentToken['system'].ap.max
+ );
+ break;
+ }
+ }
+ }
+ });
+ currentToken.render();
+ }
+ }
+);
+
+Hooks.on('renderCombatTracker', (combatTracker, html, context) => {
+ if (context.combat === null) {
+ html.find('h3.encounter-title')[0].innerHTML = game['i18n'].localize('midgard5.no-encounter');
+ } else if (Math.ceil(context.round / 2) === 0) {
+ html.find('h3.encounter-title')[0].innerHTML = game['i18n'].localize('midgard5.encounter-not-started');
+ } else {
+ html.find('h3.encounter-title')[0].innerHTML =
+ (context.round % 2 == 1
+ ? game['i18n'].localize('midgard5.phase-movement')
+ : game['i18n'].localize('midgard5.phase-action')) +
+ ' ' +
+ Math.ceil(context.round / 2);
+ }
});
-Hooks.on("renderCombatTracker", (combatTracker, html, context) => {
- if (context.combat === null) {
- html.find("h3.encounter-title")[0].innerHTML = game["i18n"].localize("midgard5.no-encounter");
- } else if (Math.ceil(context.round / 2) === 0) {
- html.find("h3.encounter-title")[0].innerHTML = game["i18n"].localize("midgard5.encounter-not-started");
- } else {
- html.find("h3.encounter-title")[0].innerHTML =
- (context.round % 2 == 1 ? game["i18n"].localize("midgard5.phase-movement") : game["i18n"].localize("midgard5.phase-action")) + " " + Math.ceil(context.round / 2);
- }
-});
-
-Hooks.once("ready", () => {
- Logger.ok("Template module is now ready.");
+Hooks.once('ready', () => {
+ Logger.ok('Template module is now ready.');
});
async function applyDamage(roll, direction) {
- console.log(roll, direction);
- const damageValue = Array.from(roll.find(".apply") as HTMLElement[])
- .map((x) => Math.max(0, Number(x.innerText)))
- .reduce((prev, curr) => prev + curr, 0);
- const controlledTokens = game["canvas"].tokens.controlled;
- const actor = game["user"].character;
+ console.log(roll, direction);
+ const damageValue = Array.from(roll.find('.apply') as HTMLElement[])
+ .map(x => Math.max(0, Number(x.innerText)))
+ .reduce((prev, curr) => prev + curr, 0);
+ const controlledTokens = game['canvas'].tokens.controlled;
+ const actor = game['user'].character;
- if (controlledTokens) {
- controlledTokens.forEach((controlledToken) => {
- let token = controlledToken.document.delta.syntheticActor;
- switch (direction) {
- case 2:
- token["system"].lp.value -= Math.max(0, damageValue - token["system"].calc.stats.lpProtection.value);
- case 1:
- token["system"].ap.value -= Math.max(0, damageValue - token["system"].calc.stats.apProtection.value);
- break;
- case -1:
- token["system"].lp.value += limitHeal(damageValue, token["system"].lp.value, token["system"].lp.max);
- case -2:
- token["system"].ap.value += limitHeal(damageValue, token["system"].ap.value, token["system"].ap.max);
- }
- token.render();
- });
- } else {
- switch (direction) {
- case 2:
- actor["system"].lp.value -= Math.max(0, damageValue - actor["system"].calc.stats.lpProtection.value);
- case 1:
- actor["system"].ap.value -= Math.max(0, damageValue - actor["system"].calc.stats.apProtection.value);
- break;
- case -1:
- actor["system"].lp.value += limitHeal(damageValue, actor["system"].lp.value, actor["system"].lp.max);
- case -2:
- actor["system"].ap.value += limitHeal(damageValue, actor["system"].ap.value, actor["system"].ap.max);
- }
- actor.render();
- }
+ if (controlledTokens) {
+ controlledTokens.forEach(controlledToken => {
+ let token = controlledToken.document.delta.syntheticActor;
+ switch (direction) {
+ case 2:
+ token['system'].lp.value -= Math.max(0, damageValue - token['system'].calc.stats.lpProtection.value);
+ case 1:
+ token['system'].ap.value -= Math.max(0, damageValue - token['system'].calc.stats.apProtection.value);
+ break;
+ case -1:
+ token['system'].lp.value += limitHeal(damageValue, token['system'].lp.value, token['system'].lp.max);
+ case -2:
+ token['system'].ap.value += limitHeal(damageValue, token['system'].ap.value, token['system'].ap.max);
+ }
+ token.render();
+ });
+ } else {
+ switch (direction) {
+ case 2:
+ actor['system'].lp.value -= Math.max(0, damageValue - actor['system'].calc.stats.lpProtection.value);
+ case 1:
+ actor['system'].ap.value -= Math.max(0, damageValue - actor['system'].calc.stats.apProtection.value);
+ break;
+ case -1:
+ actor['system'].lp.value += limitHeal(damageValue, actor['system'].lp.value, actor['system'].lp.max);
+ case -2:
+ actor['system'].ap.value += limitHeal(damageValue, actor['system'].ap.value, actor['system'].ap.max);
+ }
+ actor.render();
+ }
}
function limitHeal(heal: number, current: number, max: number): number {
- if (current === max) {
- return 0;
- } else if (heal + current > max) {
- return max - current;
- }
- return heal;
+ if (current === max) {
+ return 0;
+ } else if (heal + current > max) {
+ return max - current;
+ }
+ return heal;
}
diff --git a/source/module/M5Base.ts b/source/module/M5Base.ts
index 586b84f..76409c4 100644
--- a/source/module/M5Base.ts
+++ b/source/module/M5Base.ts
@@ -1,236 +1,236 @@
-import { BooleanField } from "@league-of-foundry-developers/foundry-vtt-types/src/foundry/common/data/fields.mjs";
+import { BooleanField } from '@league-of-foundry-developers/foundry-vtt-types/src/foundry/common/data/fields.mjs';
export interface M5Skill {
- fw: number;
- attribute: string;
- pp: number;
+ fw: number;
+ attribute: string;
+ pp: number;
}
export interface M5SkillUnlearned extends M5Skill {
- initial: number;
+ initial: number;
}
export interface M5SkillLearned extends M5Skill {
- skill: string;
- type: string;
+ skill: string;
+ type: string;
}
export interface M5SkillCalculated extends M5Skill {
- label: string;
- calc: any;
+ label: string;
+ calc: any;
}
export interface M5Attribute {
- value: number;
- bonus: number;
+ value: number;
+ bonus: number;
}
export interface M5RollData {
- c: any;
- i: any;
- iType: string;
- rolls: {};
- res: {
- label: string;
- };
+ c: any;
+ i: any;
+ iType: string;
+ rolls: {};
+ res: {
+ label: string;
+ };
}
export interface M5RollTemplate {
- formula: string;
- label: string;
- enabled: boolean;
+ formula: string;
+ label: string;
+ enabled: boolean;
}
export interface M5RollResult extends M5RollTemplate {
- total: number;
- totalStr: string;
- result: string;
- dice: {};
- css: string;
+ total: number;
+ totalStr: string;
+ result: string;
+ dice: {};
+ css: string;
}
export enum M5ItemType {
- SKILL = "skill",
- ITEM = "item",
- WEAPON = "weapon",
- DEFENSIVE_WEAPON = "defensiveWeapon",
- ARMOR = "armor",
- CONTAINER = "container",
- SPELL = "spell",
- KAMPFKUNST = "kampfkunst",
- EFFECT = "effect",
+ SKILL = 'skill',
+ ITEM = 'item',
+ WEAPON = 'weapon',
+ DEFENSIVE_WEAPON = 'defensiveWeapon',
+ ARMOR = 'armor',
+ CONTAINER = 'container',
+ SPELL = 'spell',
+ KAMPFKUNST = 'kampfkunst',
+ EFFECT = 'effect',
}
export enum M5SkillType {
- INNATE = "innate",
- GENERAL = "general",
- LANGUAGE = "language",
- COMBAT = "combat",
+ INNATE = 'innate',
+ GENERAL = 'general',
+ LANGUAGE = 'language',
+ COMBAT = 'combat',
}
export enum M5EwResult {
- TBD = "",
- FUMBLE = "roll-ew-result-fumble",
- CRITICAL = "roll-ew-result-critical",
- HIGH = "roll-ew-result-high",
- FAIL = "roll-ew-result-fail",
- PASS = "roll-ew-result-pass",
+ TBD = '',
+ FUMBLE = 'roll-ew-result-fumble',
+ CRITICAL = 'roll-ew-result-critical',
+ HIGH = 'roll-ew-result-high',
+ FAIL = 'roll-ew-result-fail',
+ PASS = 'roll-ew-result-pass',
}
export enum M5Attributes {
- ST = "st",
- GW = "gw",
- GS = "gs",
- KO = "ko",
- IN = "in",
- ZT = "zt",
- AU = "au",
- PA = "pa",
- WK = "wk",
+ ST = 'st',
+ GW = 'gw',
+ GS = 'gs',
+ KO = 'ko',
+ IN = 'in',
+ ZT = 'zt',
+ AU = 'au',
+ PA = 'pa',
+ WK = 'wk',
}
export enum M5Stats {
- DEFENSE = "defenseBonus",
- ATTACK = "attackBonus",
- DAMAGE = "damageBonus",
- MOVEMENT = "movement",
- RESISTANCE_MIND = "resistanceMind",
- RESISTANCE_BODY = "resistanceBody",
- SPELL_CASTING = "spellCasting",
- BRAWL = "brawl",
- POISON_RESISTANCE = "poisonResistance",
- LP = "lp",
- AP = "ap",
- PROTECTION_LP = "lpProtection",
- PROTECTION_AP = "apProtection",
- PERCEPTION = "perception",
- DRINKING = "drinking",
- HOARD = "hoard",
- HOARD_NEXT = "hoardNext",
- HOARD_MIN = "hoardMin",
- WEALTH = "wealth",
- LOAD = "load",
- HEAVY_LOAD = "heavyLoad",
- LOAD_MAX = "loadMax",
- THRUST_LOAD = "thrustLoad",
- ENCUMBRANCE = "encumbrance",
+ DEFENSE = 'defenseBonus',
+ ATTACK = 'attackBonus',
+ DAMAGE = 'damageBonus',
+ MOVEMENT = 'movement',
+ RESISTANCE_MIND = 'resistanceMind',
+ RESISTANCE_BODY = 'resistanceBody',
+ SPELL_CASTING = 'spellCasting',
+ BRAWL = 'brawl',
+ POISON_RESISTANCE = 'poisonResistance',
+ LP = 'lp',
+ AP = 'ap',
+ PROTECTION_LP = 'lpProtection',
+ PROTECTION_AP = 'apProtection',
+ PERCEPTION = 'perception',
+ DRINKING = 'drinking',
+ HOARD = 'hoard',
+ HOARD_NEXT = 'hoardNext',
+ HOARD_MIN = 'hoardMin',
+ WEALTH = 'wealth',
+ LOAD = 'load',
+ HEAVY_LOAD = 'heavyLoad',
+ LOAD_MAX = 'loadMax',
+ THRUST_LOAD = 'thrustLoad',
+ ENCUMBRANCE = 'encumbrance',
}
export enum M5ModType {
- ATTRIBUTE = "attribute",
- STAT = "stat",
- SKILL = "skill",
+ ATTRIBUTE = 'attribute',
+ STAT = 'stat',
+ SKILL = 'skill',
}
export enum M5ModOperation {
- ADD_100 = "add100",
- ROLL = "roll",
- ADD = "add",
- SET = "set",
- FIXED = "fixed",
- MULTIPLY = "multiply",
- SUBTRACT = "subtract",
- DIVISION = "division",
+ ADD_100 = 'add100',
+ ROLL = 'roll',
+ ADD = 'add',
+ SET = 'set',
+ FIXED = 'fixed',
+ MULTIPLY = 'multiply',
+ SUBTRACT = 'subtract',
+ DIVISION = 'division',
}
export enum M5TimeUnit {
- ROUND = "round",
- MINUTE = "minute",
- HOUR = "hour",
- LIMITLESS = "limitless",
+ ROUND = 'round',
+ MINUTE = 'minute',
+ HOUR = 'hour',
+ LIMITLESS = 'limitless',
}
export interface M5ItemMod {
- type: M5ModType;
- id: string;
- operation: M5ModOperation;
- value: number;
+ type: M5ModType;
+ id: string;
+ operation: M5ModOperation;
+ value: number;
}
export interface M5ModPair {
- mod: M5ItemMod;
- source: string;
+ mod: M5ItemMod;
+ source: string;
}
export interface M5ModSource {
- item: string;
- operation: M5ModOperation;
- value: number;
+ item: string;
+ operation: M5ModOperation;
+ value: number;
}
export interface M5ModResult {
- mods: Array;
- value: number;
+ mods: Array;
+ value: number;
}
export interface M5AttributeCalculated extends M5ModResult {
- bonus: number;
+ bonus: number;
}
export interface M5CharacterCalculatedData {
- level: number;
- attributes: {
- st: M5AttributeCalculated;
- gs: M5AttributeCalculated;
- gw: M5AttributeCalculated;
- ko: M5AttributeCalculated;
- in: M5AttributeCalculated;
- zt: M5AttributeCalculated;
- au: M5AttributeCalculated;
- pa: M5AttributeCalculated;
- wk: M5AttributeCalculated;
- };
- stats: {
- lp: M5ModResult;
- ap: M5ModResult;
- lpProtection: M5ModResult;
- apProtection: M5ModResult;
- defense: M5ModResult;
- damageBonus: M5ModResult;
- attackBonus: M5ModResult;
- defenseBonus: M5ModResult;
- movement: M5ModResult;
- resistanceMind: M5ModResult;
- resistanceBody: M5ModResult;
- spellCasting: M5ModResult;
- brawl: M5ModResult;
- brawlFw: number;
- poisonResistance: M5ModResult;
- enduranceBonus: number;
- perception: M5ModResult;
- perceptionFW: number;
- drinking: M5ModResult;
- drinkingFW: number;
- hoard: number;
- hoardNext: number;
- hoardMin: number;
- wealth: number;
- load: number;
- heavyLoad: number;
- loadMax: number;
- thrustLoad: number;
- encumbrance: number;
- };
- skillMods: {};
- skills: {
- innate: {};
- general: {};
- combat: {};
- language: {};
- custom: {};
- };
- gear: {
- weapons: {};
- defensiveWeapons: {};
- armor: {};
- items: {};
- containers: {};
- effects: {};
- };
- spells: {};
- kampfkuenste: {};
+ level: number;
+ attributes: {
+ st: M5AttributeCalculated;
+ gs: M5AttributeCalculated;
+ gw: M5AttributeCalculated;
+ ko: M5AttributeCalculated;
+ in: M5AttributeCalculated;
+ zt: M5AttributeCalculated;
+ au: M5AttributeCalculated;
+ pa: M5AttributeCalculated;
+ wk: M5AttributeCalculated;
+ };
+ stats: {
+ lp: M5ModResult;
+ ap: M5ModResult;
+ lpProtection: M5ModResult;
+ apProtection: M5ModResult;
+ defense: M5ModResult;
+ damageBonus: M5ModResult;
+ attackBonus: M5ModResult;
+ defenseBonus: M5ModResult;
+ movement: M5ModResult;
+ resistanceMind: M5ModResult;
+ resistanceBody: M5ModResult;
+ spellCasting: M5ModResult;
+ brawl: M5ModResult;
+ brawlFw: number;
+ poisonResistance: M5ModResult;
+ enduranceBonus: number;
+ perception: M5ModResult;
+ perceptionFW: number;
+ drinking: M5ModResult;
+ drinkingFW: number;
+ hoard: number;
+ hoardNext: number;
+ hoardMin: number;
+ wealth: number;
+ load: number;
+ heavyLoad: number;
+ loadMax: number;
+ thrustLoad: number;
+ encumbrance: number;
+ };
+ skillMods: {};
+ skills: {
+ innate: {};
+ general: {};
+ combat: {};
+ language: {};
+ custom: {};
+ };
+ gear: {
+ weapons: {};
+ defensiveWeapons: {};
+ armor: {};
+ items: {};
+ containers: {};
+ effects: {};
+ };
+ spells: {};
+ kampfkuenste: {};
}
export function enumKeys(obj: O): K[] {
- return Object.keys(obj).filter((k) => Number.isNaN(+k)) as K[];
+ return Object.keys(obj).filter(k => Number.isNaN(+k)) as K[];
}
diff --git a/source/module/actors/M5Character.ts b/source/module/actors/M5Character.ts
index aacb4e6..bc15ec3 100644
--- a/source/module/actors/M5Character.ts
+++ b/source/module/actors/M5Character.ts
@@ -1,76 +1,109 @@
import { M5Item } from "../items/M5Item";
-import { M5Attribute, M5CharacterCalculatedData, M5ItemMod, M5ItemType, M5ModOperation, M5ModResult, M5ModType, M5RollData, M5Skill, M5SkillCalculated, M5SkillLearned, M5SkillType } from "../M5Base";
+import {
+ M5Attribute,
+ M5CharacterCalculatedData,
+ M5ItemMod,
+ M5ItemType,
+ M5ModOperation,
+ M5ModResult,
+ M5RollData,
+ M5Skill,
+ M5SkillCalculated,
+ M5SkillLearned,
+ M5SkillType,
+} from "../M5Base";
import M5ModAggregate from "./M5ModAggregate";
export class M5Character extends Actor {
- // constructor(
- // data: ConstructorParameters[0],
- // context?: ConstructorParameters[1]
- // ) {
- // super(data, context)
- // this.prepareDerivedData()
- // }
+ // constructor(
+ // data: ConstructorParameters[0],
+ // context?: ConstructorParameters[1]
+ // ) {
+ // super(data, context)
+ // this.prepareDerivedData()
+ // }
- static attributeMinMax(attribute: M5Attribute) {
- return Math.min(100, Math.max(0, attribute.value + attribute.bonus));
- }
+ static attributeMinMax(attribute: M5Attribute) {
+ return Math.min(100, Math.max(0, attribute.value + attribute.bonus));
+ }
- static attributeBonus(attribute: M5Attribute) {
- const value = this.attributeMinMax(attribute);
- if (value > 95) return 2;
- if (value > 80) return 1;
- if (value > 20) return 0;
- if (value > 5) return -1;
- return -2;
- }
-
- static loadValue(attribute: M5Attribute) {
- const value = this.attributeMinMax(attribute);
- if (value > 99) return 35;
- if (value > 95) return 30;
- if (value > 80) return 25;
- if (value > 60) return 20;
- if (value > 30) return 15;
- if (value > 10) return 10;
- if (value > 0) return 5;
- return 0;
- }
-
- static heavyLoadValue(attribute: M5Attribute) {
- const value = this.attributeMinMax(attribute);
- if (value > 99) return 50;
- if (value > 95) return 45;
- if (value > 80) return 40;
- if (value > 60) return 35;
- if (value > 30) return 30;
- if (value > 10) return 25;
- if (value > 0) return 20;
- return 0;
- }
-
- static maxLoadValue(attribute: M5Attribute) {
- const value = this.attributeMinMax(attribute);
- if (value > 99) return 90;
- if (value > 95) return 80;
- if (value > 80) return 75;
- if (value > 60) return 70;
- if (value > 30) return 60;
- if (value > 10) return 50;
- if (value > 0) return 40;
- return 0;
- }
-
- static thrustLoadValue(attribute: M5Attribute) {
- const value = this.attributeMinMax(attribute);
- if (value > 99) return 200;
- if (value > 95) return 170;
- if (value > 80) return 150;
- if (value > 60) return 140;
- if (value > 30) return 120;
- if (value > 10) return 70;
- if (value > 0) return 50;
- return 0;
- }
+ static attributeBonus(attribute: M5Attribute) {
+ const value = this.attributeMinMax(attribute);
+ if (value > 95) return 2;
+ if (value > 80) return 1;
+ if (value > 20) return 0;
+ if (value > 5) return -1;
+ return -2;
+ }
+ derivedData(
+ skip: {
+ mods?: boolean;
+ skills?: boolean;
+ weapons?: boolean;
+ defensiveWeapons?: boolean;
+ armor?: boolean;
+ items?: boolean;
+ containers?: boolean;
+ spells?: boolean;
+ effects?: boolean;
+ kampfkuenste?: boolean;
+ } = {},
+ ): M5CharacterCalculatedData {
+ let ret: M5CharacterCalculatedData = {
+ level: 0,
+ attributes: {
+ st: { value: 0, bonus: 0, mods: [] },
+ gs: { value: 0, bonus: 0, mods: [] },
+ gw: { value: 0, bonus: 0, mods: [] },
+ ko: { value: 0, bonus: 0, mods: [] },
+ in: { value: 0, bonus: 0, mods: [] },
+ zt: { value: 0, bonus: 0, mods: [] },
+ au: { value: 0, bonus: 0, mods: [] },
+ pa: { value: 0, bonus: 0, mods: [] },
+ wk: { value: 0, bonus: 0, mods: [] },
+ },
+ stats: {
+ lp: { value: 0, mods: [] },
+ ap: { value: 0, mods: [] },
+ lpProtection: { value: 0, mods: [] },
+ apProtection: { value: 0, mods: [] },
+ defense: { value: 0, mods: [] },
+ damageBonus: { value: 0, mods: [] },
+ attackBonus: { value: 0, mods: [] },
+ defenseBonus: { value: 0, mods: [] },
+ movement: { value: 0, mods: [] },
+ resistanceMind: { value: 0, mods: [] },
+ resistanceBody: { value: 0, mods: [] },
+ spellCasting: { value: 0, mods: [] },
+ brawl: { value: 0, mods: [] },
+ brawlFw: 0,
+ poisonResistance: { value: 0, mods: [] },
+ enduranceBonus: 0,
+ perception: { value: 0, mods: [] },
+ perceptionFW: 0,
+ drinking: { value: 0, mods: [] },
+ drinkingFW: 0,
+ hoard: 0,
+ },
+ skillMods: {},
+ skills: {
+ innate: {},
+ general: {},
+ combat: {},
+ language: {},
+ custom: {},
+ },
+ gear: {
+ weapons: {},
+ defensiveWeapons: {},
+ armor: {},
+ items: {},
+ containers: {},
+ effects: {},
+ },
+ spells: {},
+ kampfkuenste: {},
+ } as M5CharacterCalculatedData;
derivedData(
skip: {
mods?: boolean;
@@ -144,33 +177,37 @@ export class M5Character extends Actor {
kampfkuenste: {},
} as M5CharacterCalculatedData;
- const context = this as any;
- if (!context) return null;
+ const context = this as any;
+ if (!context) return null;
- const data = (this as any).system;
- if (!data) return null;
+ const data = (this as any).system;
+ if (!data) return null;
- ret.level = M5Character.levelFromExp(data.info.race === "Zwerg" ? Math.min(data.calc.stats?.hoard * 2 || 0, data.es) : data.es);
+ ret.level = M5Character.levelFromExp(
+ data.info.race === "Zwerg"
+ ? Math.min(data.calc.stats?.hoard * 2 || 0, data.es)
+ : data.es,
+ );
- ret.attributes.st.value = M5Character.attributeMinMax(data.attributes.st); // TODO item effects
- ret.attributes.gs.value = M5Character.attributeMinMax(data.attributes.gs);
- ret.attributes.gw.value = M5Character.attributeMinMax(data.attributes.gw);
- ret.attributes.ko.value = M5Character.attributeMinMax(data.attributes.ko);
- ret.attributes.in.value = M5Character.attributeMinMax(data.attributes.in);
- ret.attributes.zt.value = M5Character.attributeMinMax(data.attributes.zt);
- ret.attributes.au.value = M5Character.attributeMinMax(data.attributes.au);
- ret.attributes.pa.value = M5Character.attributeMinMax(data.attributes.pa);
- ret.attributes.wk.value = M5Character.attributeMinMax(data.attributes.wk);
+ ret.attributes.st.value = M5Character.attributeMinMax(data.attributes.st); // TODO item effects
+ ret.attributes.gs.value = M5Character.attributeMinMax(data.attributes.gs);
+ ret.attributes.gw.value = M5Character.attributeMinMax(data.attributes.gw);
+ ret.attributes.ko.value = M5Character.attributeMinMax(data.attributes.ko);
+ ret.attributes.in.value = M5Character.attributeMinMax(data.attributes.in);
+ ret.attributes.zt.value = M5Character.attributeMinMax(data.attributes.zt);
+ ret.attributes.au.value = M5Character.attributeMinMax(data.attributes.au);
+ ret.attributes.pa.value = M5Character.attributeMinMax(data.attributes.pa);
+ ret.attributes.wk.value = M5Character.attributeMinMax(data.attributes.wk);
- ret.attributes.st.bonus = M5Character.attributeBonus(data.attributes.st);
- ret.attributes.gs.bonus = M5Character.attributeBonus(data.attributes.gs);
- ret.attributes.gw.bonus = M5Character.attributeBonus(data.attributes.gw);
- ret.attributes.ko.bonus = M5Character.attributeBonus(data.attributes.ko);
- ret.attributes.in.bonus = M5Character.attributeBonus(data.attributes.in);
- ret.attributes.zt.bonus = M5Character.attributeBonus(data.attributes.zt);
- ret.attributes.au.bonus = M5Character.attributeBonus(data.attributes.au);
- ret.attributes.pa.bonus = M5Character.attributeBonus(data.attributes.pa);
- ret.attributes.wk.bonus = M5Character.attributeBonus(data.attributes.wk);
+ ret.attributes.st.bonus = M5Character.attributeBonus(data.attributes.st);
+ ret.attributes.gs.bonus = M5Character.attributeBonus(data.attributes.gs);
+ ret.attributes.gw.bonus = M5Character.attributeBonus(data.attributes.gw);
+ ret.attributes.ko.bonus = M5Character.attributeBonus(data.attributes.ko);
+ ret.attributes.in.bonus = M5Character.attributeBonus(data.attributes.in);
+ ret.attributes.zt.bonus = M5Character.attributeBonus(data.attributes.zt);
+ ret.attributes.au.bonus = M5Character.attributeBonus(data.attributes.au);
+ ret.attributes.pa.bonus = M5Character.attributeBonus(data.attributes.pa);
+ ret.attributes.wk.bonus = M5Character.attributeBonus(data.attributes.wk);
ret.stats.lp = this.modResult(data.lp);
ret.stats.ap = this.modResult(data.ap);
@@ -206,66 +243,164 @@ export class M5Character extends Actor {
ret.stats.thrustLoad = M5Character.thrustLoadValue(data.attributes.st);
ret.stats.encumbrance = 0;
- if (!skip?.mods) {
- const aggregate = new M5ModAggregate(data, ret);
+ if (!skip?.mods) {
+ const aggregate = new M5ModAggregate(data, ret);
- context.items
- ?.filter((item) => (item.type === "item" || item.type === "effect" || item.type === "armor" || item.type === "container") && item.system.equipped)
- .forEach((item) => {
- const mods = item.system.mods;
- //console.log("Actor item mods", mods)
- Object.keys(mods).forEach((modIndex) => {
- const mod = mods[modIndex] as M5ItemMod;
- aggregate.push(mod, item.name);
- });
- });
+ context.items
+ ?.filter(
+ (item) =>
+ (item.type === "item" ||
+ item.type === "effect" ||
+ item.type === "armor" ||
+ item.type === "container") &&
+ item.system.equipped,
+ )
+ .forEach((item) => {
+ const mods = item.system.mods;
+ //console.log("Actor item mods", mods)
+ Object.keys(mods).forEach((modIndex) => {
+ const mod = mods[modIndex] as M5ItemMod;
+ aggregate.push(mod, item.name);
+ });
+ });
- ret.skillMods = aggregate.calculate();
- }
+ ret.skillMods = aggregate.calculate();
+ }
- if (!skip?.containers) {
- context.items
- ?.filter((item) => item.type === "container")
- .forEach((item) => {
- item.prepareDerivedData();
+ if (!skip?.items) {
+ context.items
+ ?.filter((item) => item.type === "item")
+ .sort((a, b) => a?.sort - b?.sort)
+ .forEach((item) => {
+ item.prepareDerivedData();
- let label = item.name;
- if (item.system.magic) {
- label += "*";
- }
+ let label = item.name;
+ if (item.system.magic) {
+ label += "*";
+ }
+ if (item.system.valuable) {
+ ret.stats.wealth += this.calculateValue(
+ item.system.value * item.system.quantity,
+ item.system.currency,
+ );
+ }
+ if (item.system.hoarded) {
+ ret.stats.hoard += this.calculateValue(
+ item.system.value * item.system.quantity,
+ item.system.currency,
+ );
+ }
- let icon = item.img;
- let rollable = false;
+ let icon = item.img;
+ let rollable = false;
- for (let key in item.system.rolls.formulas) {
- rollable = item.system.rolls.formulas[key]?.enabled;
- if (rollable) {
- break;
- }
- }
- ret.gear.containers[item.id] = {
- label: label,
- icon: icon,
- magic: item.system.magic,
- valuable: item.system?.valuable,
- hoarded: item.system?.hoarded,
- calc: item.system.calc,
- equipped: item.system?.equipped,
- weight: item.system.weight || 0,
- value: item.system.value || 0,
- currency: item.system.currency || "",
- quantity: item.system.quantity || 0,
- rollExist: rollable,
- };
- });
- }
+ for (let key in item.system.rolls.formulas) {
+ rollable = item.system.rolls.formulas[key]?.enabled;
+ if (rollable) {
+ break;
+ }
+ }
- if (!skip?.items) {
- context.items
- ?.filter((item) => item.type === "item")
- .forEach((item) => {
- item.prepareDerivedData();
+ ret.gear.items[item.id] = {
+ label: label,
+ icon: icon,
+ magic: item.system.magic,
+ calc: item.system.calc,
+ equipped: item.system?.equipped,
+ valuable: item.system?.valuable,
+ hoarded: item.system?.hoarded,
+ weight: item.system.weight || 0,
+ containerId: item.system.containerId || "",
+ value: item.system.value || 0,
+ currency: item.system.currency || "",
+ quantity: item.system.quantity || 0,
+ rollExist: rollable,
+ };
+ });
+ }
+ if (!skip?.containers) {
+ context.items
+ ?.filter((item) => item.type === "container")
+ .sort((a, b) => a?.sort - b?.sort)
+ .forEach((item) => {
+ item.prepareDerivedData();
+
+ let label = item.name;
+ if (item.system.magic) {
+ label += "*";
+ }
+ let icon = item.img;
+ let rollable = false;
+
+ for (let key in item.system.rolls.formulas) {
+ rollable = item.system.rolls.formulas[key]?.enabled;
+ if (rollable) {
+ break;
+ }
+ }
+ ret.gear.containers[item.id] = {
+ label: label,
+ icon: icon,
+ magic: item.system.magic,
+ valuable: item.system?.valuable,
+ hoarded: item.system?.hoarded,
+ calc: item.system.calc,
+ equipped: item.system?.equipped,
+ weight: item.system.weight || 0,
+ value: item.system.value || 0,
+ currency: item.system.currency || "",
+ quantity: item.system.quantity || 0,
+ rollExist: rollable,
+ };
+ });
+ }
+
+ if (!skip?.items) {
+ context.items
+ ?.filter((item) => item.type === "effect")
+ .sort((a, b) => a?.sort - b?.sort)
+ .forEach((item) => {
+ item.prepareDerivedData();
+
+ let label = item.name;
+ if (item.system.magic) {
+ label += "*";
+ }
+
+ ret.gear.effects[item.id] = {
+ label: label,
+ magic: item.system.magic,
+ calc: item.system.calc,
+ equipped: item.system?.equipped || false,
+ duration: item.system?.duration || { time: 0, unit: "" },
+ };
+ });
+ }
+
+ if (!skip?.skills) {
+ context.items
+ ?.filter((item) => item.type === "skill")
+ .sort((a, b) => a?.sort - b?.sort)
+ .forEach((item) => {
+ item.prepareDerivedData();
+ const skillMap = ret.skills[item.system.type];
+ skillMap[item.id] = {
+ label: item.name,
+ fw: item.system.fw,
+ attribute: item.system.attribute,
+ pp: item.system.pp,
+ calc: item.system.calc,
+ } as M5SkillCalculated;
+ });
+ }
+
+ if (!skip?.weapons) {
+ context.items
+ ?.filter((item) => item.type === "weapon")
+ .sort((a, b) => a?.sort - b?.sort)
+ .forEach((item) => {
+ item.prepareDerivedData();
let label = item.name;
if (item.system.magic) {
label += "*";
@@ -316,6 +451,7 @@ export class M5Character extends Actor {
context.items
?.filter((item) => item.type === "weapon")
+ .sort((a, b) => a?.sort - b?.sort)
.forEach((item) => {
item.prepareDerivedData();
@@ -345,27 +481,29 @@ export class M5Character extends Actor {
ret.stats.encumbrance += item.system.weight || 0;
}
- ret.gear.weapons[item.id] = {
- label: label,
- skillId: item.system.skillId,
- magic: item.system.magic,
- valuable: item.system?.valuable,
- hoarded: item.system?.hoarded,
- value: item.system.value || 0,
- currency: item.system.currency || "",
- calc: item.system.calc,
- special: item.system.special,
- damageBase: item.system.damageBase,
- equipped: item.system?.equipped,
- weight: item.system.weight || 0,
- containerId: item.system.containerId || "",
- };
- });
+ ret.gear.weapons[item.id] = {
+ label: label,
+ skillId: item.system.skillId,
+ magic: item.system.magic,
+ valuable: item.system?.valuable,
+ hoarded: item.system?.hoarded,
+ value: item.system.value || 0,
+ currency: item.system.currency || "",
+ calc: item.system.calc,
+ special: item.system.special,
+ damageBase: item.system.damageBase,
+ equipped: item.system?.equipped,
+ containerId: item.system.containerId || "",
+ };
+ });
+ }
- context.items
- ?.filter((item) => item.type === "defensiveWeapon")
- .forEach((item) => {
- item.prepareDerivedData();
+ if (!skip?.defensiveWeapons) {
+ context.items
+ ?.filter((item) => item.type === "defensiveWeapon")
+ .sort((a, b) => a?.sort - b?.sort)
+ .forEach((item) => {
+ item.prepareDerivedData();
let label = item.name;
if (item.system.magic) {
@@ -402,10 +540,12 @@ export class M5Character extends Actor {
};
});
- context.items
- ?.filter((item) => item.type === "armor")
- .forEach((item) => {
- item.prepareDerivedData();
+ if (!skip?.armor) {
+ context.items
+ ?.filter((item) => item.type === "armor")
+ .sort((a, b) => a?.sort - b?.sort)
+ .forEach((item) => {
+ item.prepareDerivedData();
let label = item.name;
if (item.system.magic) {
@@ -534,144 +674,164 @@ export class M5Character extends Actor {
});
}
- if (!skip?.spells) {
- context.items
- ?.filter((item) => item.type === "spell")
- .forEach((item) => {
- item.prepareDerivedData();
+ if (!skip?.spells) {
+ context.items
+ ?.filter((item) => item.type === "spell")
+ .sort((a, b) => a?.sort - b?.sort)
+ .forEach((item) => {
+ item.prepareDerivedData();
- ret.spells[item.id] = {
- label: item.name,
- process: "midgard5.spell-process-" + item.system.process,
- calc: item.system.calc,
- };
- });
- }
+ ret.spells[item.id] = {
+ label: item.name,
+ process: "midgard5.spell-process-" + item.system.process,
+ calc: item.system.calc,
+ };
+ });
+ }
- if (!skip?.kampfkuenste) {
- context.items
- ?.filter((item) => item.type === "kampfkunst")
- .forEach((item) => {
- item.prepareDerivedData();
+ if (!skip?.kampfkuenste) {
+ context.items
+ ?.filter((item) => item.type === "kampfkunst")
+ .sort((a, b) => a?.sort - b?.sort)
+ .forEach((item) => {
+ item.prepareDerivedData();
- ret.kampfkuenste[item.id] = {
- label: item.name,
- isKido: item.system.isKido,
- type: item.system.type,
- variante: item.system.variante,
- calc: item.system.calc,
- };
- });
- }
+ ret.kampfkuenste[item.id] = {
+ label: item.name,
+ isKido: item.system.isKido,
+ type: item.system.type,
+ variante: item.system.variante,
+ calc: item.system.calc,
+ };
+ });
+ }
- return ret;
- }
+ return ret;
+ }
- raceBonus(race: string) {
- switch (race) {
- case "Elf":
- return 2;
- case "Gnom":
- return 4;
- case "Halbling":
- return 4;
- case "Zwerg":
- return 3;
- default:
- return 0;
- }
- }
+ raceBonus(race: string) {
+ switch (race) {
+ case "Elf":
+ return 2;
+ case "Gnom":
+ return 4;
+ case "Halbling":
+ return 4;
+ case "Zwerg":
+ return 3;
+ default:
+ return 0;
+ }
+ }
- prepareDerivedData() {
- console.log("M5Character", "prepareDerivedData");
- const data = (this as any).system;
- data.calc = this.derivedData({});
- }
+ prepareDerivedData() {
+ console.log("M5Character", "prepareDerivedData");
+ const data = (this as any).system;
+ data.calc = this.derivedData({});
+ }
- override getRollData(): any {
- return {
- c: (this as any).system,
- i: null,
- iType: null,
- rolls: {},
- res: {},
- } as M5RollData;
- }
+ override getRollData(): any {
+ return {
+ c: (this as any).system,
+ i: null,
+ iType: null,
+ rolls: {},
+ res: {},
+ } as M5RollData;
+ }
- static readonly levelThreshold: Array = [
- 0, 100, 250, 500, 750, 1000, 1250, 1500, 1750, 2000, 2500, 3000, 3500, 4000, 4500, 5000, 6000, 7000, 8000, 9000, 10000, 12500, 15000, 17500, 20000, 22500, 25000, 30000, 35000, 40000,
- 45000, 50000, 55000, 60000, 65000, 70000, 75000, 80000, 85000, 90000, 95000, 100000, 105000, 110000, 115000, 120000, 125000, 130000, 135000, 140000, 145000, 150000, 155000, 160000,
- 165000, 170000, 175000, 180000, 185000, 190000, 195000, 200000, 205000, 210000, 215000, 220000, 225000, 230000, 235000, 240000, 245000, 250000, 255000, 260000, 265000, 270000, 275000,
- 280000,
- ];
- static levelFromExp(exp: number): number {
- const ret = M5Character.levelThreshold.findIndex((val) => val > exp);
- return ret === -1 ? M5Character.levelThreshold.length : ret;
- }
+ static readonly levelThreshold: Array = [
+ 0, 100, 250, 500, 750, 1000, 1250, 1500, 1750, 2000, 2500, 3000, 3500, 4000,
+ 4500, 5000, 6000, 7000, 8000, 9000, 10000, 12500, 15000, 17500, 20000,
+ 22500, 25000, 30000, 35000, 40000, 45000, 50000, 55000, 60000, 65000, 70000,
+ 75000, 80000, 85000, 90000, 95000, 100000, 105000, 110000, 115000, 120000,
+ 125000, 130000, 135000, 140000, 145000, 150000, 155000, 160000, 165000,
+ 170000, 175000, 180000, 185000, 190000, 195000, 200000, 205000, 210000,
+ 215000, 220000, 225000, 230000, 235000, 240000, 245000, 250000, 255000,
+ 260000, 265000, 270000, 275000, 280000,
+ ];
+ static levelFromExp(exp: number): number {
+ const ret = M5Character.levelThreshold.findIndex((val) => val > exp);
+ return ret === -1 ? M5Character.levelThreshold.length : ret;
+ }
- static readonly defenseThreshold: Array<[number, number]> = [
- [30, 18],
- [25, 17],
- [20, 16],
- [15, 15],
- [10, 14],
- [5, 13],
- [2, 12],
- [1, 11],
- ];
- static defenseFromLevel(lvl: number): number {
- const ret = M5Character.defenseThreshold.find((val) => val[0] <= lvl);
- return ret ? ret[1] : M5Character.defenseThreshold[M5Character.defenseThreshold.length - 1][1];
- }
+ static readonly defenseThreshold: Array<[number, number]> = [
+ [30, 18],
+ [25, 17],
+ [20, 16],
+ [15, 15],
+ [10, 14],
+ [5, 13],
+ [2, 12],
+ [1, 11],
+ ];
+ static defenseFromLevel(lvl: number): number {
+ const ret = M5Character.defenseThreshold.find((val) => val[0] <= lvl);
+ return ret
+ ? ret[1]
+ : M5Character.defenseThreshold[
+ M5Character.defenseThreshold.length - 1
+ ][1];
+ }
- static readonly spellCastingThreshold: Array<[number, number]> = [
- [20, 18],
- [15, 17],
- [10, 16],
- [8, 15],
- [6, 14],
- [4, 13],
- [2, 12],
- [1, 11],
- ];
- static spellCastingFromLevel(lvl: number): number {
- const ret = M5Character.spellCastingThreshold.find((val) => val[0] <= lvl);
- return ret ? ret[1] : M5Character.spellCastingThreshold[M5Character.spellCastingThreshold.length - 1][1];
- }
+ static readonly spellCastingThreshold: Array<[number, number]> = [
+ [20, 18],
+ [15, 17],
+ [10, 16],
+ [8, 15],
+ [6, 14],
+ [4, 13],
+ [2, 12],
+ [1, 11],
+ ];
+ static spellCastingFromLevel(lvl: number): number {
+ const ret = M5Character.spellCastingThreshold.find((val) => val[0] <= lvl);
+ return ret
+ ? ret[1]
+ : M5Character.spellCastingThreshold[
+ M5Character.spellCastingThreshold.length - 1
+ ][1];
+ }
- skillBonus(skill: M5Skill, skillName?: string) {
- const data = (this as any).system;
- return data.calc?.attributes[skill.attribute]?.bonus ?? 0;
- }
+ skillBonus(skill: M5Skill, skillName?: string) {
+ const data = (this as any).system;
+ return data.calc?.attributes[skill.attribute]?.bonus ?? 0;
+ }
- skillEw(skill: M5Skill, skillName?: string) {
- const bonus = this.skillBonus(skill, skillName);
- return skill.fw + bonus;
- }
+ skillEw(skill: M5Skill, skillName?: string) {
+ const bonus = this.skillBonus(skill, skillName);
+ return skill.fw + bonus;
+ }
- attribute(name: string): M5Attribute {
- const data = (this as any).system;
- return data?.attributes[name];
- }
+ attribute(name: string): M5Attribute {
+ const data = (this as any).system;
+ return data?.attributes[name];
+ }
- async createSkill(skillName: string): Promise {
- const itemData = {
- name: skillName,
- type: "skill",
- };
+ createSkill(skillName: string): Promise {
+ const itemData = {
+ name: skillName,
+ type: "skill",
+ };
- return (this as any).createEmbeddedDocuments("Item", [itemData]).then((docs) => {
- const item = docs[0];
- return item;
- });
- }
+ return (this as any)
+ .createEmbeddedDocuments("Item", [itemData])
+ .then((docs) => {
+ const item = docs[0];
+ return item;
+ });
+ }
- createItem(itemName: string, itemType: M5ItemType, options?: any): Promise {
- const itemData = {
- name: itemName,
- type: itemType,
- data: options,
- };
+ createItem(
+ itemName: string,
+ itemType: M5ItemType,
+ options?: any,
+ ): Promise {
+ const itemData = {
+ name: itemName,
+ type: itemType,
+ data: options,
+ };
return (this as any).createEmbeddedDocuments("Item", [itemData]).then((docs) => {
const item = docs[0];
@@ -693,34 +853,34 @@ export class M5Character extends Actor {
});
}
- getItem(itemId: string): any {
- if (!(this as any).items) return null;
- return (this as any).getEmbeddedDocument("Item", itemId);
- }
+ getItem(itemId: string): any {
+ if (!(this as any).items) return null;
+ return (this as any).getEmbeddedDocument("Item", itemId);
+ }
- private calculateValue(value: number, currency: string): number {
- switch (currency) {
- case "gold":
- return value;
- case "silver":
- return parseFloat((value / 10).toPrecision(3));
- case "copper":
- return parseFloat((value / 100).toPrecision(3));
- default:
- return 0;
- }
- }
+ private calculateValue(value: number, currency: string): number {
+ switch (currency) {
+ case "gold":
+ return value;
+ case "silver":
+ return parseFloat((value / 10).toPrecision(3));
+ case "copper":
+ return parseFloat((value / 100).toPrecision(3));
+ default:
+ return 0;
+ }
+ }
- private modResult(value: number): M5ModResult {
- return {
- value: value,
- mods: [
- {
- item: (game as Game).i18n.localize("TYPES.Actor.character"),
- operation: M5ModOperation.SET,
- value: value,
- },
- ],
- };
- }
+ private modResult(value: number): M5ModResult {
+ return {
+ value: value,
+ mods: [
+ {
+ item: (game as Game).i18n.localize("TYPES.Actor.character"),
+ operation: M5ModOperation.SET,
+ value: value,
+ },
+ ],
+ };
+ }
}
diff --git a/source/module/actors/M5ModAggregate.ts b/source/module/actors/M5ModAggregate.ts
index 63350eb..6bbcad5 100644
--- a/source/module/actors/M5ModAggregate.ts
+++ b/source/module/actors/M5ModAggregate.ts
@@ -1,172 +1,453 @@
-import { M5Attribute, M5AttributeCalculated, M5Attributes, M5CharacterCalculatedData, M5ItemMod, M5ModOperation, M5ModResult, M5ModSource, M5ModType, M5Stats, M5ModPair } from "../M5Base";
+import {
+ M5Attribute,
+ M5AttributeCalculated,
+ M5Attributes,
+ M5CharacterCalculatedData,
+ M5ItemMod,
+ M5ModOperation,
+ M5ModResult,
+ M5ModSource,
+ M5ModType,
+ M5Stats,
+ M5ModPair,
+} from '../M5Base';
export default class M5ModAggregate {
- private attributes = new Map>();
- private stats = new Map>();
- private skills = new Map>();
+ private attributes = new Map>();
+ private stats = new Map>();
+ private skills = new Map>();
- constructor(public data: any, public calc: M5CharacterCalculatedData) {
- const characterString = (game as Game).i18n.localize("TYPES.Actor.character");
+ constructor(
+ public data: any,
+ public calc: M5CharacterCalculatedData
+ ) {
+ const characterString = (game as Game).i18n.localize('TYPES.Actor.character');
- this.push({ type: M5ModType.ATTRIBUTE, id: M5Attributes.ST, operation: M5ModOperation.SET, value: data.attributes.st.value }, characterString);
- this.push({ type: M5ModType.ATTRIBUTE, id: M5Attributes.GS, operation: M5ModOperation.SET, value: data.attributes.gs.value }, characterString);
- this.push({ type: M5ModType.ATTRIBUTE, id: M5Attributes.GW, operation: M5ModOperation.SET, value: data.attributes.gw.value }, characterString);
- this.push({ type: M5ModType.ATTRIBUTE, id: M5Attributes.KO, operation: M5ModOperation.SET, value: data.attributes.ko.value }, characterString);
- this.push({ type: M5ModType.ATTRIBUTE, id: M5Attributes.IN, operation: M5ModOperation.SET, value: data.attributes.in.value }, characterString);
- this.push({ type: M5ModType.ATTRIBUTE, id: M5Attributes.ZT, operation: M5ModOperation.SET, value: data.attributes.zt.value }, characterString);
- this.push({ type: M5ModType.ATTRIBUTE, id: M5Attributes.AU, operation: M5ModOperation.SET, value: data.attributes.au.value }, characterString);
- this.push({ type: M5ModType.ATTRIBUTE, id: M5Attributes.PA, operation: M5ModOperation.SET, value: data.attributes.pa.value }, characterString);
- this.push({ type: M5ModType.ATTRIBUTE, id: M5Attributes.WK, operation: M5ModOperation.SET, value: data.attributes.wk.value }, characterString);
+ this.push(
+ {
+ type: M5ModType.ATTRIBUTE,
+ id: M5Attributes.ST,
+ operation: M5ModOperation.SET,
+ value: data.attributes.st.value,
+ },
+ characterString
+ );
+ this.push(
+ {
+ type: M5ModType.ATTRIBUTE,
+ id: M5Attributes.GS,
+ operation: M5ModOperation.SET,
+ value: data.attributes.gs.value,
+ },
+ characterString
+ );
+ this.push(
+ {
+ type: M5ModType.ATTRIBUTE,
+ id: M5Attributes.GW,
+ operation: M5ModOperation.SET,
+ value: data.attributes.gw.value,
+ },
+ characterString
+ );
+ this.push(
+ {
+ type: M5ModType.ATTRIBUTE,
+ id: M5Attributes.KO,
+ operation: M5ModOperation.SET,
+ value: data.attributes.ko.value,
+ },
+ characterString
+ );
+ this.push(
+ {
+ type: M5ModType.ATTRIBUTE,
+ id: M5Attributes.IN,
+ operation: M5ModOperation.SET,
+ value: data.attributes.in.value,
+ },
+ characterString
+ );
+ this.push(
+ {
+ type: M5ModType.ATTRIBUTE,
+ id: M5Attributes.ZT,
+ operation: M5ModOperation.SET,
+ value: data.attributes.zt.value,
+ },
+ characterString
+ );
+ this.push(
+ {
+ type: M5ModType.ATTRIBUTE,
+ id: M5Attributes.AU,
+ operation: M5ModOperation.SET,
+ value: data.attributes.au.value,
+ },
+ characterString
+ );
+ this.push(
+ {
+ type: M5ModType.ATTRIBUTE,
+ id: M5Attributes.PA,
+ operation: M5ModOperation.SET,
+ value: data.attributes.pa.value,
+ },
+ characterString
+ );
+ this.push(
+ {
+ type: M5ModType.ATTRIBUTE,
+ id: M5Attributes.WK,
+ operation: M5ModOperation.SET,
+ value: data.attributes.wk.value,
+ },
+ characterString
+ );
- this.push({ type: M5ModType.ATTRIBUTE, id: M5Attributes.ST, operation: M5ModOperation.ADD_100, value: data.attributes.st.bonus }, characterString);
- this.push({ type: M5ModType.ATTRIBUTE, id: M5Attributes.GS, operation: M5ModOperation.ADD_100, value: data.attributes.gs.bonus }, characterString);
- this.push({ type: M5ModType.ATTRIBUTE, id: M5Attributes.GW, operation: M5ModOperation.ADD_100, value: data.attributes.gw.bonus }, characterString);
- this.push({ type: M5ModType.ATTRIBUTE, id: M5Attributes.KO, operation: M5ModOperation.ADD_100, value: data.attributes.ko.bonus }, characterString);
- this.push({ type: M5ModType.ATTRIBUTE, id: M5Attributes.IN, operation: M5ModOperation.ADD_100, value: data.attributes.in.bonus }, characterString);
- this.push({ type: M5ModType.ATTRIBUTE, id: M5Attributes.ZT, operation: M5ModOperation.ADD_100, value: data.attributes.zt.bonus }, characterString);
- this.push({ type: M5ModType.ATTRIBUTE, id: M5Attributes.AU, operation: M5ModOperation.ADD_100, value: data.attributes.au.bonus }, characterString);
- this.push({ type: M5ModType.ATTRIBUTE, id: M5Attributes.PA, operation: M5ModOperation.ADD_100, value: data.attributes.pa.bonus }, characterString);
- this.push({ type: M5ModType.ATTRIBUTE, id: M5Attributes.WK, operation: M5ModOperation.ADD_100, value: data.attributes.wk.bonus }, characterString);
+ this.push(
+ {
+ type: M5ModType.ATTRIBUTE,
+ id: M5Attributes.ST,
+ operation: M5ModOperation.ADD_100,
+ value: data.attributes.st.bonus,
+ },
+ characterString
+ );
+ this.push(
+ {
+ type: M5ModType.ATTRIBUTE,
+ id: M5Attributes.GS,
+ operation: M5ModOperation.ADD_100,
+ value: data.attributes.gs.bonus,
+ },
+ characterString
+ );
+ this.push(
+ {
+ type: M5ModType.ATTRIBUTE,
+ id: M5Attributes.GW,
+ operation: M5ModOperation.ADD_100,
+ value: data.attributes.gw.bonus,
+ },
+ characterString
+ );
+ this.push(
+ {
+ type: M5ModType.ATTRIBUTE,
+ id: M5Attributes.KO,
+ operation: M5ModOperation.ADD_100,
+ value: data.attributes.ko.bonus,
+ },
+ characterString
+ );
+ this.push(
+ {
+ type: M5ModType.ATTRIBUTE,
+ id: M5Attributes.IN,
+ operation: M5ModOperation.ADD_100,
+ value: data.attributes.in.bonus,
+ },
+ characterString
+ );
+ this.push(
+ {
+ type: M5ModType.ATTRIBUTE,
+ id: M5Attributes.ZT,
+ operation: M5ModOperation.ADD_100,
+ value: data.attributes.zt.bonus,
+ },
+ characterString
+ );
+ this.push(
+ {
+ type: M5ModType.ATTRIBUTE,
+ id: M5Attributes.AU,
+ operation: M5ModOperation.ADD_100,
+ value: data.attributes.au.bonus,
+ },
+ characterString
+ );
+ this.push(
+ {
+ type: M5ModType.ATTRIBUTE,
+ id: M5Attributes.PA,
+ operation: M5ModOperation.ADD_100,
+ value: data.attributes.pa.bonus,
+ },
+ characterString
+ );
+ this.push(
+ {
+ type: M5ModType.ATTRIBUTE,
+ id: M5Attributes.WK,
+ operation: M5ModOperation.ADD_100,
+ value: data.attributes.wk.bonus,
+ },
+ characterString
+ );
- this.push({ type: M5ModType.STAT, id: M5Stats.DEFENSE, operation: M5ModOperation.SET, value: calc.stats.defenseBonus.value }, characterString);
- this.push({ type: M5ModType.STAT, id: M5Stats.ATTACK, operation: M5ModOperation.SET, value: calc.stats.attackBonus.value }, characterString);
- this.push({ type: M5ModType.STAT, id: M5Stats.DAMAGE, operation: M5ModOperation.SET, value: calc.stats.damageBonus.value }, characterString);
- this.push({ type: M5ModType.STAT, id: M5Stats.MOVEMENT, operation: M5ModOperation.SET, value: calc.stats.movement.value }, characterString);
- this.push({ type: M5ModType.STAT, id: M5Stats.RESISTANCE_MIND, operation: M5ModOperation.SET, value: calc.stats.resistanceMind.value }, characterString);
- this.push({ type: M5ModType.STAT, id: M5Stats.RESISTANCE_BODY, operation: M5ModOperation.SET, value: calc.stats.resistanceBody.value }, characterString);
- this.push({ type: M5ModType.STAT, id: M5Stats.SPELL_CASTING, operation: M5ModOperation.SET, value: calc.stats.spellCasting.value }, characterString);
- this.push({ type: M5ModType.STAT, id: M5Stats.BRAWL, operation: M5ModOperation.SET, value: calc.stats.brawl.value }, characterString);
- this.push({ type: M5ModType.STAT, id: M5Stats.POISON_RESISTANCE, operation: M5ModOperation.SET, value: calc.stats.poisonResistance.value }, characterString);
- this.push({ type: M5ModType.STAT, id: M5Stats.LP, operation: M5ModOperation.SET, value: calc.stats.lp.value }, characterString);
- this.push({ type: M5ModType.STAT, id: M5Stats.AP, operation: M5ModOperation.SET, value: calc.stats.ap.value }, characterString);
- this.push({ type: M5ModType.STAT, id: M5Stats.PROTECTION_LP, operation: M5ModOperation.SET, value: calc.stats.lpProtection.value }, characterString);
- this.push({ type: M5ModType.STAT, id: M5Stats.PROTECTION_AP, operation: M5ModOperation.SET, value: calc.stats.apProtection.value }, characterString);
- this.push({ type: M5ModType.STAT, id: M5Stats.PERCEPTION, operation: M5ModOperation.SET, value: calc.stats.perception.value }, characterString);
- this.push({ type: M5ModType.STAT, id: M5Stats.DRINKING, operation: M5ModOperation.SET, value: calc.stats.drinking.value }, characterString);
- }
+ this.push(
+ {
+ type: M5ModType.STAT,
+ id: M5Stats.DEFENSE,
+ operation: M5ModOperation.SET,
+ value: calc.stats.defenseBonus.value,
+ },
+ characterString
+ );
+ this.push(
+ {
+ type: M5ModType.STAT,
+ id: M5Stats.ATTACK,
+ operation: M5ModOperation.SET,
+ value: calc.stats.attackBonus.value,
+ },
+ characterString
+ );
+ this.push(
+ {
+ type: M5ModType.STAT,
+ id: M5Stats.DAMAGE,
+ operation: M5ModOperation.SET,
+ value: calc.stats.damageBonus.value,
+ },
+ characterString
+ );
+ this.push(
+ {
+ type: M5ModType.STAT,
+ id: M5Stats.MOVEMENT,
+ operation: M5ModOperation.SET,
+ value: calc.stats.movement.value,
+ },
+ characterString
+ );
+ this.push(
+ {
+ type: M5ModType.STAT,
+ id: M5Stats.RESISTANCE_MIND,
+ operation: M5ModOperation.SET,
+ value: calc.stats.resistanceMind.value,
+ },
+ characterString
+ );
+ this.push(
+ {
+ type: M5ModType.STAT,
+ id: M5Stats.RESISTANCE_BODY,
+ operation: M5ModOperation.SET,
+ value: calc.stats.resistanceBody.value,
+ },
+ characterString
+ );
+ this.push(
+ {
+ type: M5ModType.STAT,
+ id: M5Stats.SPELL_CASTING,
+ operation: M5ModOperation.SET,
+ value: calc.stats.spellCasting.value,
+ },
+ characterString
+ );
+ this.push(
+ {
+ type: M5ModType.STAT,
+ id: M5Stats.BRAWL,
+ operation: M5ModOperation.SET,
+ value: calc.stats.brawl.value,
+ },
+ characterString
+ );
+ this.push(
+ {
+ type: M5ModType.STAT,
+ id: M5Stats.POISON_RESISTANCE,
+ operation: M5ModOperation.SET,
+ value: calc.stats.poisonResistance.value,
+ },
+ characterString
+ );
+ this.push(
+ {
+ type: M5ModType.STAT,
+ id: M5Stats.LP,
+ operation: M5ModOperation.SET,
+ value: calc.stats.lp.value,
+ },
+ characterString
+ );
+ this.push(
+ {
+ type: M5ModType.STAT,
+ id: M5Stats.AP,
+ operation: M5ModOperation.SET,
+ value: calc.stats.ap.value,
+ },
+ characterString
+ );
+ this.push(
+ {
+ type: M5ModType.STAT,
+ id: M5Stats.PROTECTION_LP,
+ operation: M5ModOperation.SET,
+ value: calc.stats.lpProtection.value,
+ },
+ characterString
+ );
+ this.push(
+ {
+ type: M5ModType.STAT,
+ id: M5Stats.PROTECTION_AP,
+ operation: M5ModOperation.SET,
+ value: calc.stats.apProtection.value,
+ },
+ characterString
+ );
+ this.push(
+ {
+ type: M5ModType.STAT,
+ id: M5Stats.PERCEPTION,
+ operation: M5ModOperation.SET,
+ value: calc.stats.perception.value,
+ },
+ characterString
+ );
+ this.push(
+ {
+ type: M5ModType.STAT,
+ id: M5Stats.DRINKING,
+ operation: M5ModOperation.SET,
+ value: calc.stats.drinking.value,
+ },
+ characterString
+ );
+ }
- push(mod: M5ItemMod, source: string) {
- if (!mod?.id || mod.id === "") return;
+ push(mod: M5ItemMod, source: string) {
+ if (!mod?.id || mod.id === '') return;
- let map: Map> = null;
- if (mod.type === M5ModType.ATTRIBUTE) map = this.attributes;
- else if (mod.type === M5ModType.STAT) map = this.stats;
- else if (mod.type === M5ModType.SKILL) map = this.skills;
+ let map: Map> = null;
+ if (mod.type === M5ModType.ATTRIBUTE) map = this.attributes;
+ else if (mod.type === M5ModType.STAT) map = this.stats;
+ else if (mod.type === M5ModType.SKILL) map = this.skills;
- if (map) {
- const pair: M5ModPair = {
- mod: mod,
- source: source,
- };
+ if (map) {
+ const pair: M5ModPair = {
+ mod: mod,
+ source: source,
+ };
- if (map.has(mod.id)) map.get(mod.id).push(pair);
- else map.set(mod.id, [pair]);
- }
- }
+ if (map.has(mod.id)) map.get(mod.id).push(pair);
+ else map.set(mod.id, [pair]);
+ }
+ }
- calculate() {
- const calc = this.calc;
+ calculate() {
+ const calc = this.calc;
- this.attributes.forEach((pairs, id) => {
- const res = M5ModAggregate.processPairs(pairs);
- calc.attributes[id] = {
- value: res.value,
- bonus: M5ModAggregate.attributeBonus(res.value),
- mods: res.mods,
- } as M5AttributeCalculated;
- //console.log("calc.attributes." + id, calc.attributes[id])
- });
+ this.attributes.forEach((pairs, id) => {
+ const res = M5ModAggregate.processPairs(pairs);
+ calc.attributes[id] = {
+ value: res.value,
+ bonus: M5ModAggregate.attributeBonus(res.value),
+ mods: res.mods,
+ } as M5AttributeCalculated;
+ //console.log("calc.attributes." + id, calc.attributes[id])
+ });
- this.stats.forEach((pairs, id) => {
- const res = M5ModAggregate.processPairs(pairs);
- calc.stats[id] = res;
- });
+ this.stats.forEach((pairs, id) => {
+ const res = M5ModAggregate.processPairs(pairs);
+ calc.stats[id] = res;
+ });
- const ret = {};
- this.skills.forEach((pairs, id) => {
- ret[id] = pairs;
- });
+ const ret = {};
+ this.skills.forEach((pairs, id) => {
+ ret[id] = pairs;
+ });
- return ret;
- }
+ return ret;
+ }
- static pairAsSource(pair: M5ModPair): M5ModSource {
- return {
- operation: pair.mod.operation,
- value: pair.mod.value,
- item: pair.source,
- };
- }
+ static pairAsSource(pair: M5ModPair): M5ModSource {
+ return {
+ operation: pair.mod.operation,
+ value: pair.mod.value,
+ item: pair.source,
+ };
+ }
- static processPairs(arr: Array): M5ModResult {
- let ret: M5ModResult = {
- mods: [],
- value: 0,
- };
+ static processPairs(arr: Array): M5ModResult {
+ let ret: M5ModResult = {
+ mods: [],
+ value: 0,
+ };
- let mods = arr.filter((pair) => pair.mod.operation === M5ModOperation.FIXED).sort((a, b) => b.mod.value - a.mod.value);
- let pair = mods.length === 0 ? null : mods[0];
+ let mods = arr
+ .filter(pair => pair.mod.operation === M5ModOperation.FIXED)
+ .sort((a, b) => b.mod.value - a.mod.value);
+ let pair = mods.length === 0 ? null : mods[0];
- if (pair) {
- ret.mods.push(this.pairAsSource(pair));
- ret.value = pair.mod.value;
- } else {
- mods = arr.filter((pair) => pair.mod.operation === M5ModOperation.SET).sort((a, b) => b.mod.value - a.mod.value);
- if (mods.length !== 0) {
- ret.mods.push(this.pairAsSource(mods[0]));
- ret.value = mods[0].mod.value;
- }
+ if (pair) {
+ ret.mods.push(this.pairAsSource(pair));
+ ret.value = pair.mod.value;
+ } else {
+ mods = arr.filter(pair => pair.mod.operation === M5ModOperation.SET).sort((a, b) => b.mod.value - a.mod.value);
+ if (mods.length !== 0) {
+ ret.mods.push(this.pairAsSource(mods[0]));
+ ret.value = mods[0].mod.value;
+ }
- mods = arr.filter((pair) => pair.mod.operation === M5ModOperation.ADD_100);
- if (mods.length !== 0) {
- ret.mods = ret.mods.concat(mods.map(this.pairAsSource));
- const bonus = mods.map((p) => p.mod.value).reduce((a, b) => a + b, 0);
- ret.value = Math.min(100, Math.max(0, ret.value + bonus));
- }
+ mods = arr.filter(pair => pair.mod.operation === M5ModOperation.ADD_100);
+ if (mods.length !== 0) {
+ ret.mods = ret.mods.concat(mods.map(this.pairAsSource));
+ const bonus = mods.map(p => p.mod.value).reduce((a, b) => a + b, 0);
+ ret.value = Math.min(100, Math.max(0, ret.value + bonus));
+ }
- mods = arr.filter((pair) => pair.mod.operation === M5ModOperation.ADD);
- if (mods.length !== 0) {
- ret.mods = ret.mods.concat(mods.map(this.pairAsSource));
- const bonus = mods.map((p) => p.mod.value).reduce((a, b) => a + b, 0);
- ret.value = Math.max(0, ret.value + bonus);
- }
+ mods = arr.filter(pair => pair.mod.operation === M5ModOperation.ADD);
+ if (mods.length !== 0) {
+ ret.mods = ret.mods.concat(mods.map(this.pairAsSource));
+ const bonus = mods.map(p => p.mod.value).reduce((a, b) => a + b, 0);
+ ret.value = Math.max(0, ret.value + bonus);
+ }
- mods = arr.filter((pair) => pair.mod.operation === M5ModOperation.SUBTRACT);
- if (mods.length !== 0) {
- ret.mods = ret.mods.concat(mods.map(this.pairAsSource));
- const bonus = mods.map((p) => p.mod.value).reduce((a, b) => a + b, 0);
- ret.value = ret.value - bonus;
- }
+ mods = arr.filter(pair => pair.mod.operation === M5ModOperation.SUBTRACT);
+ if (mods.length !== 0) {
+ ret.mods = ret.mods.concat(mods.map(this.pairAsSource));
+ const bonus = mods.map(p => p.mod.value).reduce((a, b) => a + b, 0);
+ ret.value = ret.value - bonus;
+ }
- mods = arr.filter((pair) => pair.mod.operation === M5ModOperation.MULTIPLY);
- if (mods.length !== 0) {
- ret.mods = ret.mods.concat(mods.map(this.pairAsSource));
- const bonus = mods.map((p) => p.mod.value).reduce((a, b) => a * b, 1);
- ret.value = Math.max(0, ret.value * bonus);
- }
+ mods = arr.filter(pair => pair.mod.operation === M5ModOperation.MULTIPLY);
+ if (mods.length !== 0) {
+ ret.mods = ret.mods.concat(mods.map(this.pairAsSource));
+ const bonus = mods.map(p => p.mod.value).reduce((a, b) => a * b, 1);
+ ret.value = Math.max(0, ret.value * bonus);
+ }
- mods = arr.filter((pair) => pair.mod.operation === M5ModOperation.DIVISION);
- if (mods.length !== 0) {
- ret.mods = ret.mods.concat(mods.map(this.pairAsSource));
- const bonus = mods.map((p) => p.mod.value).reduce((a, b) => a * b, 1);
- ret.value = Math.max(0, Math.floor(ret.value / bonus));
- }
- }
+ mods = arr.filter(pair => pair.mod.operation === M5ModOperation.DIVISION);
+ if (mods.length !== 0) {
+ ret.mods = ret.mods.concat(mods.map(this.pairAsSource));
+ const bonus = mods.map(p => p.mod.value).reduce((a, b) => a * b, 1);
+ ret.value = Math.max(0, Math.floor(ret.value / bonus));
+ }
+ }
- return ret;
- }
+ return ret;
+ }
- static attributeMinMax(attribute: M5Attribute) {
- return Math.min(100, Math.max(0, attribute.value + attribute.bonus));
- }
+ static attributeMinMax(attribute: M5Attribute) {
+ return Math.min(100, Math.max(0, attribute.value + attribute.bonus));
+ }
- static attributeBonus(value: number) {
- if (value > 95) return 2;
- if (value > 80) return 1;
- if (value > 20) return 0;
- if (value > 5) return -1;
- return -2;
- }
+ static attributeBonus(value: number) {
+ if (value > 95) return 2;
+ if (value > 80) return 1;
+ if (value > 20) return 0;
+ if (value > 5) return -1;
+ return -2;
+ }
- //static modToString(mod: M5ItemMod): string { }
+ //static modToString(mod: M5ItemMod): string { }
}
diff --git a/source/module/items/M5Item.ts b/source/module/items/M5Item.ts
index 85c6e9b..d1537c2 100644
--- a/source/module/items/M5Item.ts
+++ b/source/module/items/M5Item.ts
@@ -1,350 +1,440 @@
-import { M5Character } from "../actors/M5Character";
-import M5ModAggregate from "../actors/M5ModAggregate";
-import { enumKeys, M5Attributes, M5ModOperation, M5ModPair, M5ModType, M5RollData, M5RollResult, M5Stats } from "../M5Base";
-import { M5Roll } from "../rolls/M5Roll";
+import { M5Character } from '../actors/M5Character';
+import M5ModAggregate from '../actors/M5ModAggregate';
+import {
+ enumKeys,
+ M5Attributes,
+ M5ModOperation,
+ M5ModPair,
+ M5ModType,
+ M5RollData,
+ M5RollResult,
+ M5Stats,
+} from '../M5Base';
+import { M5Roll } from '../rolls/M5Roll';
export class M5Item extends Item {
- static readonly SKILL = "skill";
+ static readonly SKILL = 'skill';
- prepareDerivedData() {
- const itemId: string = (this as any).id;
- const itemType: string = (this as any).type;
- const actor = this.actor as any;
- const character = actor as M5Character;
- const itemData = (this as any).system;
- const calc = itemData.calc;
+ prepareDerivedData() {
+ const itemId: string = (this as any).id;
+ const itemType: string = (this as any).type;
+ const actor = this.actor as any;
+ const character = actor as M5Character;
+ const itemData = (this as any).system;
+ const calc = itemData.calc;
- if (itemType === "item") {
- calc.containers = null;
+ if (itemType === 'item') {
+ calc.containers = null;
- if (actor) {
- const actorCalc = actor.derivedData({ containers: false, items: true, spells: true, effects: true, kampfkuenste: true, encumbrance: true });
- if (actorCalc) {
- calc.containers = actorCalc.gear.containers;
- }
- const container = character.getItem(itemData.containerId);
- //console.log("M5Item.prepareDerivedData:containers", itemData, container?.system)
- if (container) {
- container.prepareDerivedData();
- const containerData = container.system;
- }
- }
- } else if (itemType === "skill") {
- calc.fw = itemData.fw;
- calc.bonus = 0;
+ if (actor) {
+ const actorCalc = actor.derivedData({
+ weapons: true,
+ defensiveWeapons: true,
+ armor: true,
+ items: true,
+ spells: true,
+ effects: true,
+ kampfkuenste: true,
+ });
+ if (actorCalc) {
+ calc.containers = actorCalc.gear.containers;
+ }
+ const container = character.getItem(itemData.containerId);
+ //console.log("M5Item.prepareDerivedData:containers", itemData, container?.system)
+ if (container) {
+ container.prepareDerivedData();
+ const containerData = container.system;
+ }
+ }
+ } else if (itemType === 'skill') {
+ calc.fw = itemData.fw;
+ calc.bonus = 0;
- let pairs: Array = [
- {
- source: (this as any).name,
- mod: {
- type: M5ModType.SKILL,
- id: itemId,
- operation: M5ModOperation.SET,
- value: itemData.fw,
- },
- },
- ];
+ let pairs: Array = [
+ {
+ source: (this as any).name,
+ mod: {
+ type: M5ModType.SKILL,
+ id: itemId,
+ operation: M5ModOperation.SET,
+ value: itemData.fw,
+ },
+ },
+ ];
- if (character) {
- const actorCalc = character.derivedData({
- skills: true,
- items: true,
- spells: true,
- effects: true,
- kampfkuenste: true,
- encumbrance: true,
- });
- if (actorCalc?.skillMods && Object.keys(actorCalc.skillMods).indexOf(itemId) !== -1) {
- pairs = pairs.concat(actorCalc.skillMods[itemId]);
- }
+ if (character) {
+ const actorCalc = character.derivedData({
+ skills: true,
+ weapons: true,
+ defensiveWeapons: true,
+ armor: true,
+ items: true,
+ spells: true,
+ effects: true,
+ kampfkuenste: true,
+ });
+ if (actorCalc?.skillMods && Object.keys(actorCalc.skillMods).indexOf(itemId) !== -1) {
+ pairs = pairs.concat(actorCalc.skillMods[itemId]);
+ }
- if (itemData?.attribute && itemData.attribute !== "") {
- pairs.push({
- source: (this as any).name,
- mod: {
- type: M5ModType.SKILL,
- id: itemId,
- operation: M5ModOperation.ADD,
- value: actorCalc.attributes[itemData.attribute].bonus,
- },
- });
- }
- }
+ if (itemData?.attribute && itemData.attribute !== '') {
+ pairs.push({
+ source: (this as any).name,
+ mod: {
+ type: M5ModType.SKILL,
+ id: itemId,
+ operation: M5ModOperation.ADD,
+ value: actorCalc.attributes[itemData.attribute].bonus,
+ },
+ });
+ }
+ }
- const res = M5ModAggregate.processPairs(pairs);
- res.mods.forEach((mod) => {
- if ([M5ModOperation.SET, M5ModOperation.FIXED].includes(mod.operation)) calc.fw = mod.value;
- else if ([M5ModOperation.SUBTRACT].includes(mod.operation)) calc.bonus -= mod.value;
- else if ([M5ModOperation.ADD].includes(mod.operation)) calc.bonus += mod.value;
- });
+ const res = M5ModAggregate.processPairs(pairs);
+ res.mods.forEach(mod => {
+ if ([M5ModOperation.SET, M5ModOperation.FIXED].includes(mod.operation)) calc.fw = mod.value;
+ else if ([M5ModOperation.SUBTRACT].includes(mod.operation)) calc.bonus -= mod.value;
+ else if ([M5ModOperation.ADD].includes(mod.operation)) calc.bonus += mod.value;
+ });
- calc.ew = calc.fw + calc.bonus;
- calc.sources = res.mods;
- } else if (itemType === "weapon") {
- calc.fw = 0;
- calc.bonus = 0;
- calc.special = itemData.special ? 2 : 0;
- calc.ew = calc.special + itemData.stats.attackBonus;
- calc.combatSkills = null;
- calc.containers = null;
+ calc.ew = calc.fw + calc.bonus;
+ calc.sources = res.mods;
+ } else if (itemType === 'weapon') {
+ calc.fw = 0;
+ calc.bonus = 0;
+ calc.special = itemData.special ? 2 : 0;
+ calc.ew = calc.special + itemData.stats.attackBonus;
+ calc.combatSkills = null;
+ calc.containers = null;
- if (actor) {
- const actorCalc = character.derivedData({ items: true, spells: true, effects: true, kampfkuenste: true, encumbrance: true });
- if (actorCalc) {
- calc.ew += actorCalc.stats.attackBonus.value;
- calc.combatSkills = actorCalc.skills.combat;
- calc.containers = actorCalc.gear.containers;
- }
- const container = character.getItem(itemData.containerId);
- //console.log("M5Item.prepareDerivedData:containers", itemData, container?.system)
- if (container) {
- container.prepareDerivedData();
- const containerData = container.system;
- }
+ if (actor) {
+ const actorCalc = character.derivedData({
+ weapons: true,
+ defensiveWeapons: true,
+ armor: true,
+ items: true,
+ spells: true,
+ effects: true,
+ kampfkuenste: true,
+ });
+ if (actorCalc) {
+ calc.ew += actorCalc.stats.attackBonus.value;
+ calc.combatSkills = actorCalc.skills.combat;
+ calc.containers = actorCalc.gear.containers;
+ }
+ const container = character.getItem(itemData.containerId);
+ //console.log("M5Item.prepareDerivedData:containers", itemData, container?.system)
+ if (container) {
+ container.prepareDerivedData();
+ const containerData = container.system;
+ }
- const skill = character.getItem(itemData.skillId);
- //console.log("M5Item.prepareDerivedData:weapon", itemData, skill?.system)
- if (skill) {
- skill.prepareDerivedData();
- const skillData = skill.system;
- calc.ew += skillData.calc.ew;
- calc.bonus += skillData.calc.bonus;
- calc.fw += skillData.fw;
- } else {
- calc.ew += 4;
- calc.fw += 4;
- }
- }
- } else if (itemType === "defensiveWeapon") {
- calc.fw = 0;
- calc.bonus = 0;
- calc.special = itemData.special ? 2 : 0;
- calc.ew = calc.special + itemData.stats.defenseBonus;
- calc.combatSkills = null;
- calc.containers = null;
+ const skill = character.getItem(itemData.skillId);
+ //console.log("M5Item.prepareDerivedData:weapon", itemData, skill?.system)
+ if (skill) {
+ skill.prepareDerivedData();
+ const skillData = skill.system;
+ calc.ew += skillData.calc.ew;
+ calc.bonus += skillData.calc.bonus;
+ calc.fw += skillData.fw;
+ }
+ }
+ } else if (itemType === 'defensiveWeapon') {
+ calc.fw = 0;
+ calc.bonus = 0;
+ calc.special = itemData.special ? 2 : 0;
+ calc.ew = calc.special + itemData.stats.defenseBonus;
+ calc.combatSkills = null;
+ calc.containers = null;
- if (actor) {
- const actorCalc = character.derivedData({ items: true, spells: true, effects: true, kampfkuenste: true, encumbrance: true });
- if (actorCalc) {
- calc.ew += actorCalc.stats.defense.value + actorCalc.stats.defenseBonus.value;
- calc.combatSkills = actorCalc.skills.combat;
- calc.containers = actorCalc.gear.containers;
- }
+ if (actor) {
+ const actorCalc = character.derivedData({
+ weapons: true,
+ defensiveWeapons: true,
+ armor: true,
+ items: true,
+ spells: true,
+ effects: true,
+ kampfkuenste: true,
+ });
+ if (actorCalc) {
+ calc.ew += actorCalc.stats.defense.value + actorCalc.stats.defenseBonus.value;
+ calc.combatSkills = actorCalc.skills.combat;
+ calc.containers = actorCalc.gear.containers;
+ }
- const container = character.getItem(itemData.containerId);
- //console.log("M5Item.prepareDerivedData:containers", itemData, container?.system)
- if (container) {
- container.prepareDerivedData();
- const containerData = container.system;
- }
+ const container = character.getItem(itemData.containerId);
+ //console.log("M5Item.prepareDerivedData:containers", itemData, container?.system)
+ if (container) {
+ container.prepareDerivedData();
+ const containerData = container.system;
+ }
- const skill = character.getItem(itemData.skillId);
- //console.log("M5Item.prepareDerivedData:weapon", itemData, skill?.system)
- if (skill) {
- skill.prepareDerivedData();
- const skillData = skill.system;
- calc.ew += skillData.calc.ew;
- calc.bonus += skillData.calc.bonus;
- calc.fw += skillData.fw;
- }
- }
- } else if (itemType === "armor") {
- itemData.mods[0] = { type: "stat", id: "defenseBonus", operation: "add", value: itemData.stats.defenseBonus };
- itemData.mods[1] = { type: "stat", id: "attackBonus", operation: "add", value: itemData.stats.attackBonus };
- itemData.mods[2] = { type: "stat", id: "movement", operation: "add", value: itemData.stats.movementBonus };
- itemData.mods[3] = { type: "attribute", id: "gw", operation: "add100", value: itemData.attributeMod.gw };
- itemData.mods[4] = { type: "stat", id: "lpProtection", operation: "set", value: itemData.lpProtection };
- itemData.mods[5] = { type: "stat", id: "apProtection", operation: "set", value: itemData.apProtection };
- calc.containers = null;
- if (actor) {
- const actorCalc = actor.derivedData({ items: true, spells: true, effects: true, kampfkuenste: true, encumbrance: true });
- if (actorCalc) {
- calc.containers = actorCalc.gear.containers;
- }
- const container = character.getItem(itemData.containerId);
- //console.log("M5Item.prepareDerivedData:containers", itemData, container?.system)
- if (container) {
- container.prepareDerivedData();
- const containerData = container.system;
- }
- }
- } else if (itemType === "spell") {
- calc.fw = 0;
- if (actor) {
- const actorCalc = character.derivedData({ items: true, spells: true, effects: true, kampfkuenste: true, encumbrance: true });
- if (actorCalc) {
- calc.ew = actorCalc.stats.spellCasting.value;
- }
- }
- } else if (itemType === "kampfkunst") {
- calc.fw = 0;
- calc.bonus = 0;
- calc.ew = 0;
- calc.generalSkills = null;
+ const skill = character.getItem(itemData.skillId);
+ //console.log("M5Item.prepareDerivedData:weapon", itemData, skill?.system)
+ if (skill) {
+ skill.prepareDerivedData();
+ const skillData = skill.system;
+ calc.ew += skillData.calc.ew;
+ calc.bonus += skillData.calc.bonus;
+ calc.fw += skillData.fw;
+ }
+ }
+ } else if (itemType === 'armor') {
+ itemData.mods[0] = {
+ type: 'stat',
+ id: 'defenseBonus',
+ operation: 'add',
+ value: itemData.stats.defenseBonus,
+ };
+ itemData.mods[1] = {
+ type: 'stat',
+ id: 'attackBonus',
+ operation: 'add',
+ value: itemData.stats.attackBonus,
+ };
+ itemData.mods[2] = {
+ type: 'stat',
+ id: 'movement',
+ operation: 'add',
+ value: itemData.stats.movementBonus,
+ };
+ itemData.mods[3] = {
+ type: 'attribute',
+ id: 'gw',
+ operation: 'add100',
+ value: itemData.attributeMod.gw,
+ };
+ itemData.mods[4] = {
+ type: 'stat',
+ id: 'lpProtection',
+ operation: 'set',
+ value: itemData.lpProtection,
+ };
+ itemData.mods[5] = {
+ type: 'stat',
+ id: 'apProtection',
+ operation: 'set',
+ value: itemData.apProtection,
+ };
+ calc.containers = null;
+ if (actor) {
+ const actorCalc = actor.derivedData({
+ weapons: true,
+ defensiveWeapons: true,
+ armor: true,
+ items: true,
+ spells: true,
+ effects: true,
+ kampfkuenste: true,
+ });
+ if (actorCalc) {
+ calc.containers = actorCalc.gear.containers;
+ }
+ const container = character.getItem(itemData.containerId);
+ //console.log("M5Item.prepareDerivedData:containers", itemData, container?.system)
+ if (container) {
+ container.prepareDerivedData();
+ const containerData = container.system;
+ }
+ }
+ } else if (itemType === 'spell') {
+ calc.fw = 0;
+ if (actor) {
+ const actorCalc = character.derivedData({
+ weapons: true,
+ defensiveWeapons: true,
+ armor: true,
+ items: true,
+ spells: true,
+ effects: true,
+ kampfkuenste: true,
+ });
+ if (actorCalc) {
+ calc.ew = actorCalc.stats.spellCasting.value;
+ }
+ }
+ } else if (itemType === 'kampfkunst') {
+ calc.fw = 0;
+ calc.bonus = 0;
+ calc.ew = 0;
+ calc.generalSkills = null;
- if (actor) {
- const actorCalc = character.derivedData({ items: true, spells: true, effects: true, kampfkuenste: true, encumbrance: true });
- if (actorCalc) {
- calc.generalSkills = actorCalc.skills.general;
- }
+ if (actor) {
+ const actorCalc = character.derivedData({
+ weapons: true,
+ defensiveWeapons: true,
+ armor: true,
+ items: true,
+ spells: true,
+ effects: true,
+ kampfkuenste: true,
+ });
+ if (actorCalc) {
+ calc.generalSkills = actorCalc.skills.general;
+ }
- const skill = character.getItem(itemData.skillId);
- if (skill) {
- skill.prepareDerivedData();
- const skillData = skill.system;
- calc.ew = skillData.calc.ew;
- calc.fw = skillData.fw + calc.bonus;
- itemData.rolls.formulas[0].label = skill.name;
- }
- }
- }
- if (itemData?.mods) {
- calc.mods = {};
- for (let modKey in itemData.mods) {
- if (itemData.mods[modKey].type === M5ModType.SKILL && itemData.mods[modKey].id?.includes("midgard5")) {
- itemData.mods[modKey].id = actor?.items.find((x) => x.name === game["i18n"].localize(itemData.mods[modKey].id))?.id;
- }
- }
+ const skill = character.getItem(itemData.skillId);
+ if (skill) {
+ skill.prepareDerivedData();
+ const skillData = skill.system;
+ calc.ew = skillData.calc.ew;
+ calc.fw = skillData.fw + calc.bonus;
+ itemData.rolls.formulas[0].label = skill.name;
+ }
+ }
+ }
+ if (itemData?.mods) {
+ calc.mods = {};
+ for (let modKey in itemData.mods) {
+ if (itemData.mods[modKey].type === M5ModType.SKILL && itemData.mods[modKey].id?.includes('midgard5')) {
+ itemData.mods[modKey].id = actor?.items.find(
+ x => x.name === game['i18n'].localize(itemData.mods[modKey].id)
+ )?.id;
+ }
+ }
- Object.keys(itemData?.mods).forEach((key) => {
- const mod = itemData.mods[key];
- const modCalc = {};
- switch (mod.type) {
- case M5ModType.ATTRIBUTE: {
- for (const key of enumKeys(M5Attributes)) {
- const val: string = M5Attributes[key];
- modCalc[val] = (game as Game).i18n.localize(`midgard5.actor-${val}-long`);
- }
- break;
- }
- case M5ModType.STAT: {
- for (const key of enumKeys(M5Stats)) {
- const val: string = M5Stats[key];
- modCalc[val] = (game as Game).i18n.localize(`midgard5.mod-stat-${val}`);
- }
- break;
- }
- case M5ModType.SKILL: {
- if (character) {
- const actorCalc = character.derivedData({
- items: true,
- spells: true,
- effects: true,
- kampfkuenste: true,
- encumbrance: true,
- });
- if (actorCalc) {
- let category = (game as Game).i18n.localize("midgard5.skill");
- Object.keys(actorCalc.skills.general).forEach((skillId) => {
- const skill = character.getItem(skillId);
- if (skill) modCalc[skillId] = `${category}: ${skill.name}`;
- });
+ Object.keys(itemData?.mods).forEach(key => {
+ const mod = itemData.mods[key];
+ const modCalc = {};
+ switch (mod.type) {
+ case M5ModType.ATTRIBUTE: {
+ for (const key of enumKeys(M5Attributes)) {
+ const val: string = M5Attributes[key];
+ modCalc[val] = (game as Game).i18n.localize(`midgard5.actor-${val}-long`);
+ }
+ break;
+ }
+ case M5ModType.STAT: {
+ for (const key of enumKeys(M5Stats)) {
+ const val: string = M5Stats[key];
+ modCalc[val] = (game as Game).i18n.localize(`midgard5.mod-stat-${val}`);
+ }
+ break;
+ }
+ case M5ModType.SKILL: {
+ if (character) {
+ const actorCalc = character.derivedData({
+ weapons: true,
+ defensiveWeapons: true,
+ armor: true,
+ items: true,
+ spells: true,
+ effects: true,
+ kampfkuenste: true,
+ });
+ if (actorCalc) {
+ let category = (game as Game).i18n.localize('midgard5.skill');
+ Object.keys(actorCalc.skills.general).forEach(skillId => {
+ const skill = character.getItem(skillId);
+ if (skill) modCalc[skillId] = `${category}: ${skill.name}`;
+ });
- category = (game as Game).i18n.localize("midgard5.language");
- Object.keys(actorCalc.skills.language).forEach((skillId) => {
- const skill = character.getItem(skillId);
- if (skill) modCalc[skillId] = `${category}: ${skill.name}`;
- });
+ category = (game as Game).i18n.localize('midgard5.language');
+ Object.keys(actorCalc.skills.language).forEach(skillId => {
+ const skill = character.getItem(skillId);
+ if (skill) modCalc[skillId] = `${category}: ${skill.name}`;
+ });
- category = (game as Game).i18n.localize("midgard5.weapon-skill");
- Object.keys(actorCalc.skills.combat).forEach((skillId) => {
- const skill = character.getItem(skillId);
- if (skill) modCalc[skillId] = `${category}: ${skill.name}`;
- });
+ category = (game as Game).i18n.localize('midgard5.weapon-skill');
+ Object.keys(actorCalc.skills.combat).forEach(skillId => {
+ const skill = character.getItem(skillId);
+ if (skill) modCalc[skillId] = `${category}: ${skill.name}`;
+ });
- category = (game as Game).i18n.localize("midgard5.innate-ability");
- Object.keys(actorCalc.skills.innate).forEach((skillId) => {
- const skill = character.getItem(skillId);
- if (skill) modCalc[skillId] = `${category}: ${skill.name}`;
- });
- }
- }
- break;
- }
- }
+ category = (game as Game).i18n.localize('midgard5.innate-ability');
+ Object.keys(actorCalc.skills.innate).forEach(skillId => {
+ const skill = character.getItem(skillId);
+ if (skill) modCalc[skillId] = `${category}: ${skill.name}`;
+ });
+ }
+ }
+ break;
+ }
+ }
- calc.mods[key] = modCalc;
- });
- }
- }
+ calc.mods[key] = modCalc;
+ });
+ }
+ }
- getRollData() {
- const actor = this.actor as any;
- const item = this as any;
+ getRollData() {
+ const actor = this.actor as any;
+ const item = this as any;
- let ret: M5RollData = actor?.getRollData() ?? {
- c: null,
- i: null,
- iType: null,
- rolls: {},
- res: {},
- };
+ let ret: M5RollData = actor?.getRollData() ?? {
+ c: null,
+ i: null,
+ iType: null,
+ rolls: {},
+ res: {},
+ };
- ret.i = item.system;
- ret.iType = item.type;
- return ret;
- }
+ ret.i = item.system;
+ ret.iType = item.type;
+ return ret;
+ }
- async roll() {
- const item = this as any;
+ async roll() {
+ const item = this as any;
- // Initialize chat data.
- const speaker = ChatMessage.getSpeaker({ actor: this.actor });
- const rollMode = (game as Game).settings.get("core", "rollMode");
- const label = `[${item.type}] ${item.name}`;
+ // Initialize chat data.
+ const speaker = ChatMessage.getSpeaker({ actor: this.actor });
+ const rollMode = (game as Game).settings.get('core', 'rollMode');
+ const label = `[${item.type}] ${item.name}`;
- // If there's no roll data, send a chat message.
- const formulaNames = item.system.rolls?.formulas ? Object.keys(item.system.rolls.formulas) : [];
- if (formulaNames.length > 0) {
- const rollData = this.getRollData();
- formulaNames.forEach((formulaName) => {
- const formula = item.system.rolls.formulas[formulaName];
- if (formula) {
- rollData.rolls[formulaName] = {
- formula: formula.formula,
- label: formula.label,
- enabled: formula.enabled,
- result: "",
- total: 0,
- totalStr: "",
- dice: {},
- } as M5RollResult;
- }
- });
+ // If there's no roll data, send a chat message.
+ const formulaNames = item.system.rolls?.formulas ? Object.keys(item.system.rolls.formulas) : [];
+ if (formulaNames.length > 0) {
+ const rollData = this.getRollData();
+ formulaNames.forEach(formulaName => {
+ const formula = item.system.rolls.formulas[formulaName];
+ if (formula) {
+ rollData.rolls[formulaName] = {
+ formula: formula.formula,
+ label: formula.label,
+ enabled: formula.enabled,
+ result: '',
+ total: 0,
+ totalStr: '',
+ dice: {},
+ } as M5RollResult;
+ }
+ });
- if (item.type === "spell" || item.type === "kampfkunst") {
- if (this.actor["system"].ap.value >= item.system.ap) {
- this.actor["system"].ap.value -= item.system.ap;
- }
- }
+ if (item.type === 'spell' || item.type === 'kampfkunst') {
+ if (this.actor['system'].ap.value >= item.system.ap) {
+ this.actor['system'].ap.value -= item.system.ap;
+ }
+ }
- const roll = new M5Roll(rollData, this.actor, item.name);
- return roll.toMessage();
- } else {
- ChatMessage.create({
- speaker: speaker,
- rollMode: rollMode,
- flavor: label,
- content: item.system.description ?? "",
- });
- return null;
- }
- }
+ const roll = new M5Roll(rollData, this.actor, item.name);
+ return roll.toMessage();
+ } else {
+ ChatMessage.create({
+ speaker: speaker,
+ rollMode: rollMode,
+ flavor: label,
+ content: item.system.description ?? '',
+ });
+ return null;
+ }
+ }
- getItem(itemId: string): any {
- return (this as any).getEmbeddedDocument("Item", itemId);
- }
+ getItem(itemId: string): any {
+ return (this as any).getEmbeddedDocument('Item', itemId);
+ }
- // migrateSystemData(): any {
- // const item = (this as any)
- // const data = item.system
+ // migrateSystemData(): any {
+ // const item = (this as any)
+ // const data = item.system
- // if (item.type === "spell") {
- // if (typeof data.ap !== "string") {
- // data.ap = Number.isFinite(data.ap) ? "" + data.ap : ""
- // }
- // }
+ // if (item.type === "spell") {
+ // if (typeof data.ap !== "string") {
+ // data.ap = Number.isFinite(data.ap) ? "" + data.ap : ""
+ // }
+ // }
- // return super.migrateSystemData()
- // }
+ // return super.migrateSystemData()
+ // }
}
diff --git a/source/module/rolls/M5Roll.ts b/source/module/rolls/M5Roll.ts
index 9a5f316..8d199ea 100644
--- a/source/module/rolls/M5Roll.ts
+++ b/source/module/rolls/M5Roll.ts
@@ -1,322 +1,329 @@
-import { Evaluated } from "@league-of-foundry-developers/foundry-vtt-types/src/foundry/client/dice/roll";
-import { M5Character } from "../actors/M5Character";
-import { M5EwResult, M5ModOperation, M5ModType, M5RollData, M5RollResult, M5SkillUnlearned, M5Stats } from "../M5Base";
-import { stat } from "fs";
+import { Evaluated } from '@league-of-foundry-developers/foundry-vtt-types/src/foundry/client/dice/roll';
+import { M5Character } from '../actors/M5Character';
+import { M5EwResult, M5ModOperation, M5ModType, M5RollData, M5RollResult, M5SkillUnlearned, M5Stats } from '../M5Base';
+import { stat } from 'fs';
export class M5Roll {
- // extends Roll
- static readonly TEMPLATE_PATH = "systems/midgard5/templates/chat/roll-m5.hbs";
+ // extends Roll
+ static readonly TEMPLATE_PATH = 'systems/midgard5/templates/chat/roll-m5.hbs';
- public _evaluated: boolean = false;
- public _total: number = 0;
- public pool: PoolTerm = null;
+ public _evaluated: boolean = false;
+ public _total: number = 0;
+ public pool: PoolTerm = null;
- constructor(public data: M5RollData, public actor: any, public label: string) {
- //super(null)
- //this.data = rollData
- }
+ constructor(
+ public data: M5RollData,
+ public actor: any,
+ public label: string
+ ) {
+ //super(null)
+ //this.data = rollData
+ }
- // @ts-ignore
- //override evaluate(options?: InexactPartial): Evaluated> | Promise>> {
- evaluate() {
- const indexMap = new Map();
- const rollNames = Object.keys(this.data.rolls);
- const rolls = rollNames
- .filter((rollName) => this.data.rolls[rollName].enabled)
- .map((rollName, index) => {
- indexMap.set(index, rollName);
- const formula = this.data.rolls[rollName];
- const roll = new Roll(formula.formula, this.data);
- return roll;
- });
+ // @ts-ignore
+ //override evaluate(options?: InexactPartial): Evaluated> | Promise>> {
+ evaluate() {
+ const indexMap = new Map();
+ const rollNames = Object.keys(this.data.rolls);
+ const rolls = rollNames
+ .filter(rollName => this.data.rolls[rollName].enabled)
+ .map((rollName, index) => {
+ indexMap.set(index, rollName);
+ const formula = this.data.rolls[rollName];
+ const roll = new Roll(formula.formula, this.data);
+ return roll;
+ });
- this.pool = PoolTerm.fromRolls(rolls);
- console.log("evaluate", this._evaluated, this.pool);
- return this.pool.evaluate({ async: true }).then((results) => {
- this._total = 0;
+ this.pool = PoolTerm.fromRolls(rolls);
+ console.log('evaluate', this._evaluated, this.pool);
+ return this.pool.evaluate({ async: true }).then(results => {
+ this._total = 0;
- results.rolls.forEach((roll, index) => {
- const rollIndex = indexMap.get(index);
- const rollResult = this.data.rolls[rollIndex] as M5RollResult;
+ results.rolls.forEach((roll, index) => {
+ const rollIndex = indexMap.get(index);
+ const rollResult = this.data.rolls[rollIndex] as M5RollResult;
- rollResult.result = roll.result;
- rollResult.total = roll.total;
- rollResult.totalStr = roll.total.toString();
+ rollResult.result = roll.result;
+ rollResult.total = roll.total;
+ rollResult.totalStr = roll.total.toString();
- this._total += roll.total;
+ this._total += roll.total;
- let rowRes = M5EwResult.TBD;
- let face100 = -1;
+ let rowRes = M5EwResult.TBD;
+ let face100 = -1;
- roll.dice.forEach((d, dIndex) => {
- rollResult.dice[dIndex.toString()] = d.total;
+ roll.dice.forEach((d, dIndex) => {
+ rollResult.dice[dIndex.toString()] = d.total;
- if (rowRes === M5EwResult.TBD && dIndex === 0) {
- if (d.faces === 20) {
- //if (rollResult.type === "ew") {
- if (d.total === 1) rowRes = M5EwResult.FUMBLE;
- else if (d.total === 20) rowRes = M5EwResult.CRITICAL;
- else if (d.total >= 16) rowRes = M5EwResult.HIGH;
- } else if (d.faces === 100) {
- face100 = d.total as number;
- }
- }
- });
+ if (rowRes === M5EwResult.TBD && dIndex === 0) {
+ if (d.faces === 20) {
+ //if (rollResult.type === "ew") {
+ if (d.total === 1) rowRes = M5EwResult.FUMBLE;
+ else if (d.total === 20) rowRes = M5EwResult.CRITICAL;
+ else if (d.total >= 16) rowRes = M5EwResult.HIGH;
+ } else if (d.faces === 100) {
+ face100 = d.total as number;
+ }
+ }
+ });
- const parseResult = M5Roll.parseDiceSides(rollResult.formula);
- //console.log("evaluate roll", parseResult)
- if (parseResult?.sides === 20) {
- if (roll.total < 20) {
- if (rowRes === M5EwResult.TBD || rowRes === M5EwResult.HIGH) rowRes = M5EwResult.FAIL;
- } else {
- if (rowRes === M5EwResult.TBD) rowRes = M5EwResult.PASS;
- }
- } else if (face100 >= 0) {
- const threshold100 = roll.total + face100;
- const threshold = Math.floor(threshold100 / 10);
- if (face100 === 100) {
- if (rowRes === M5EwResult.TBD) rowRes = M5EwResult.FUMBLE;
- } else if (roll.total < 0) {
- if (rowRes === M5EwResult.TBD) rowRes = M5EwResult.FAIL;
- } else if (face100 <= threshold) {
- if (rowRes === M5EwResult.TBD) rowRes = M5EwResult.CRITICAL;
- } else {
- if (rowRes === M5EwResult.TBD) rowRes = M5EwResult.PASS;
- }
- }
- rollResult.css = rowRes;
- });
+ const parseResult = M5Roll.parseDiceSides(rollResult.formula);
+ //console.log("evaluate roll", parseResult)
+ if (parseResult?.sides === 20) {
+ if (roll.total < 20) {
+ if (rowRes === M5EwResult.TBD || rowRes === M5EwResult.HIGH) rowRes = M5EwResult.FAIL;
+ } else {
+ if (rowRes === M5EwResult.TBD) rowRes = M5EwResult.PASS;
+ }
+ } else if (face100 >= 0) {
+ const threshold100 = roll.total + face100;
+ const threshold = Math.floor(threshold100 / 10);
+ if (face100 === 100) {
+ if (rowRes === M5EwResult.TBD) rowRes = M5EwResult.FUMBLE;
+ } else if (roll.total < 0) {
+ if (rowRes === M5EwResult.TBD) rowRes = M5EwResult.FAIL;
+ } else if (face100 <= threshold) {
+ if (rowRes === M5EwResult.TBD) rowRes = M5EwResult.CRITICAL;
+ } else {
+ if (rowRes === M5EwResult.TBD) rowRes = M5EwResult.PASS;
+ }
+ }
+ rollResult.css = rowRes;
+ });
- this.data.res.label = this.label;
+ this.data.res.label = this.label;
- this._evaluated = true;
- return this;
- });
- }
+ this._evaluated = true;
+ return this;
+ });
+ }
- async render(): Promise {
- return renderTemplate(M5Roll.TEMPLATE_PATH, this.data);
- }
+ async render(): Promise {
+ return renderTemplate(M5Roll.TEMPLATE_PATH, this.data);
+ }
- async toMessage() {
- if (!this._evaluated) await this.evaluate();
+ async toMessage() {
+ if (!this._evaluated) await this.evaluate();
- const rMode = (game as Game).settings.get("core", "rollMode");
+ const rMode = (game as Game).settings.get('core', 'rollMode');
- const chatData = {
- type: CONST.CHAT_MESSAGE_TYPES.ROLL,
- content: await this.render(),
- speaker: ChatMessage.getSpeaker({ actor: this.actor }),
- sound: CONFIG.sounds.dice,
- roll: Roll.fromTerms([this.pool]),
- };
+ const chatData = {
+ type: CONST.CHAT_MESSAGE_TYPES.ROLL,
+ content: await this.render(),
+ speaker: ChatMessage.getSpeaker({ actor: this.actor }),
+ sound: CONFIG.sounds.dice,
+ roll: Roll.fromTerms([this.pool]),
+ };
- ChatMessage.applyRollMode(chatData, rMode);
- return ChatMessage.create(chatData);
- }
+ ChatMessage.applyRollMode(chatData, rMode);
+ return ChatMessage.create(chatData);
+ }
- static fromAttributeValue(actor: any, attributeKey: string, attributeValue: number) {
- const rollData = actor.getRollData() as M5RollData;
- const itemData = actor.items.filter((x) => x.type === "effect").map((y) => y.system.mods);
- rollData.c = 0;
- for (let effectKey in itemData) {
- for (let modkey in itemData[effectKey])
- if (itemData[effectKey][modkey].type === M5ModType.ATTRIBUTE && itemData[effectKey][modkey].operation === M5ModOperation.ROLL) {
- rollData.c += itemData[effectKey][modkey].value;
- }
- }
+ static fromAttributeValue(actor: any, attributeKey: string, attributeValue: number) {
+ const rollData = actor.getRollData() as M5RollData;
+ const itemData = actor.items.filter(x => x.type === 'effect').map(y => y.system.mods);
+ rollData.c = 0;
+ for (let effectKey in itemData) {
+ for (let modkey in itemData[effectKey])
+ if (
+ itemData[effectKey][modkey].type === M5ModType.ATTRIBUTE &&
+ itemData[effectKey][modkey].operation === M5ModOperation.ROLL
+ ) {
+ rollData.c += itemData[effectKey][modkey].value;
+ }
+ }
- rollData.i = attributeValue;
- rollData.rolls["0"] = {
- formula: "@i - 1d100 - @c",
- enabled: true,
- label: (game as Game).i18n.localize("midgard5.pw"),
- result: "",
- total: 0,
- totalStr: "",
- dice: {},
- css: "",
- } as M5RollResult;
+ rollData.i = attributeValue;
+ rollData.rolls['0'] = {
+ formula: '@i - 1d100 - @c',
+ enabled: true,
+ label: (game as Game).i18n.localize('midgard5.pw'),
+ result: '',
+ total: 0,
+ totalStr: '',
+ dice: {},
+ css: '',
+ } as M5RollResult;
- return new M5Roll(rollData, actor, (game as Game).i18n.localize(`midgard5.actor-${attributeKey}-long`));
- }
+ return new M5Roll(rollData, actor, (game as Game).i18n.localize(`midgard5.actor-${attributeKey}-long`));
+ }
- static fromUnlearnedSkill(actor: any, skill: M5SkillUnlearned, skillName: string) {
- const rollData = actor.getRollData() as M5RollData;
- rollData.i = {
- fw: skill.fw,
- bonus: actor.system.calc?.attributes[skill.attribute]?.bonus ?? 0,
- };
- rollData.iType = "skill";
+ static fromUnlearnedSkill(actor: any, skill: M5SkillUnlearned, skillName: string) {
+ const rollData = actor.getRollData() as M5RollData;
+ rollData.i = {
+ fw: skill.fw,
+ bonus: actor.system.calc?.attributes[skill.attribute]?.bonus ?? 0,
+ };
+ rollData.iType = 'skill';
- rollData.rolls["0"] = {
- formula: "1d20 + @i.fw + @i.bonus",
- enabled: true,
- label: (game as Game).i18n.localize("midgard5.pw"),
- result: "",
- total: 0,
- totalStr: "",
- dice: {},
- css: "",
- } as M5RollResult;
+ rollData.rolls['0'] = {
+ formula: '1d20 + @i.fw + @i.bonus',
+ enabled: true,
+ label: (game as Game).i18n.localize('midgard5.pw'),
+ result: '',
+ total: 0,
+ totalStr: '',
+ dice: {},
+ css: '',
+ } as M5RollResult;
- return new M5Roll(rollData, actor, (game as Game).i18n.localize(`midgard5.${skillName}`));
- }
+ return new M5Roll(rollData, actor, (game as Game).i18n.localize(`midgard5.${skillName}`));
+ }
- static brawl(actor: any) {
- const rollData = actor.getRollData() as M5RollData;
- rollData.i = {
- attackBonus: 0,
- damageBonus: 0,
- };
+ static brawl(actor: any) {
+ const rollData = actor.getRollData() as M5RollData;
+ rollData.i = {
+ attackBonus: 0,
+ damageBonus: 0,
+ };
- rollData.rolls["0"] = {
- formula: "1d20 + @c.calc.stats.brawlFw",
- enabled: true,
- label: (game as Game).i18n.localize("midgard5.attack"),
- result: "",
- total: 0,
- totalStr: "",
- dice: {},
- css: "",
- } as M5RollResult;
+ rollData.rolls['0'] = {
+ formula: '1d20 + @c.calc.stats.brawlFw',
+ enabled: true,
+ label: (game as Game).i18n.localize('midgard5.attack'),
+ result: '',
+ total: 0,
+ totalStr: '',
+ dice: {},
+ css: '',
+ } as M5RollResult;
- rollData.rolls["1"] = {
- formula: "1d6 - 4 + @c.calc.stats.damageBonus.value",
- enabled: true,
- label: (game as Game).i18n.localize("midgard5.damage"),
- result: "",
- total: 0,
- totalStr: "",
- dice: {},
- css: "",
- } as M5RollResult;
+ rollData.rolls['1'] = {
+ formula: '1d6 - 4 + @c.calc.stats.damageBonus.value',
+ enabled: true,
+ label: (game as Game).i18n.localize('midgard5.damage'),
+ result: '',
+ total: 0,
+ totalStr: '',
+ dice: {},
+ css: '',
+ } as M5RollResult;
- return new M5Roll(rollData, actor, (game as Game).i18n.localize("midgard5.brawl"));
- }
+ return new M5Roll(rollData, actor, (game as Game).i18n.localize('midgard5.brawl'));
+ }
- static perception(actor: any) {
- const rollData = actor.getRollData() as M5RollData;
+ static perception(actor: any) {
+ const rollData = actor.getRollData() as M5RollData;
- rollData.rolls["0"] = {
- formula: "1d20 + @c.calc.stats.perception.value + @c.calc.stats.perceptionFW",
- enabled: true,
- label: (game as Game).i18n.localize("midgard5.perception"),
- result: "",
- total: 0,
- totalStr: "",
- dice: {},
- css: "",
- } as M5RollResult;
+ rollData.rolls['0'] = {
+ formula: '1d20 + @c.calc.stats.perception.value + @c.calc.stats.perceptionFW',
+ enabled: true,
+ label: (game as Game).i18n.localize('midgard5.perception'),
+ result: '',
+ total: 0,
+ totalStr: '',
+ dice: {},
+ css: '',
+ } as M5RollResult;
- return new M5Roll(rollData, actor, (game as Game).i18n.localize("midgard5.perception"));
- }
+ return new M5Roll(rollData, actor, (game as Game).i18n.localize('midgard5.perception'));
+ }
- static drinking(actor: any) {
- const rollData = actor.getRollData() as M5RollData;
+ static drinking(actor: any) {
+ const rollData = actor.getRollData() as M5RollData;
- rollData.rolls["0"] = {
- formula: "1d20 + @c.calc.stats.drinking.value + @c.calc.stats.drinkingFW",
- enabled: true,
- label: (game as Game).i18n.localize("midgard5.drinking"),
- result: "",
- total: 0,
- totalStr: "",
- dice: {},
- css: "",
- } as M5RollResult;
+ rollData.rolls['0'] = {
+ formula: '1d20 + @c.calc.stats.drinking.value + @c.calc.stats.drinkingFW',
+ enabled: true,
+ label: (game as Game).i18n.localize('midgard5.drinking'),
+ result: '',
+ total: 0,
+ totalStr: '',
+ dice: {},
+ css: '',
+ } as M5RollResult;
- return new M5Roll(rollData, actor, (game as Game).i18n.localize("midgard5.drinking"));
- }
+ return new M5Roll(rollData, actor, (game as Game).i18n.localize('midgard5.drinking'));
+ }
- static defense(actor: any) {
- const rollData = actor.getRollData() as M5RollData;
- rollData.i = {
- defenseBonus: 0,
- };
+ static defense(actor: any) {
+ const rollData = actor.getRollData() as M5RollData;
+ rollData.i = {
+ defenseBonus: 0,
+ };
- rollData.rolls["0"] = {
- formula: "1d20 + @c.calc.stats.defense.value + @c.calc.stats.defenseBonus.value",
- enabled: true,
- label: (game as Game).i18n.localize("midgard5.defense"),
- result: "",
- total: 0,
- totalStr: "",
- dice: {},
- css: "",
- } as M5RollResult;
+ rollData.rolls['0'] = {
+ formula: '1d20 + @c.calc.stats.defense.value + @c.calc.stats.defenseBonus.value',
+ enabled: true,
+ label: (game as Game).i18n.localize('midgard5.defense'),
+ result: '',
+ total: 0,
+ totalStr: '',
+ dice: {},
+ css: '',
+ } as M5RollResult;
- return new M5Roll(rollData, actor, (game as Game).i18n.localize("midgard5.defense"));
- }
+ return new M5Roll(rollData, actor, (game as Game).i18n.localize('midgard5.defense'));
+ }
- static resistanceMind(actor: any) {
- const rollData = actor.getRollData() as M5RollData;
- rollData.i = {
- defenseBonus: 0,
- };
+ static resistanceMind(actor: any) {
+ const rollData = actor.getRollData() as M5RollData;
+ rollData.i = {
+ defenseBonus: 0,
+ };
- rollData.rolls["0"] = {
- formula: "1d20 + @c.calc.stats.resistanceMind.value",
- enabled: true,
- label: (game as Game).i18n.localize("midgard5.resistanceMind"),
- result: "",
- total: 0,
- totalStr: "",
- dice: {},
- css: "",
- } as M5RollResult;
+ rollData.rolls['0'] = {
+ formula: '1d20 + @c.calc.stats.resistanceMind.value',
+ enabled: true,
+ label: (game as Game).i18n.localize('midgard5.resistanceMind'),
+ result: '',
+ total: 0,
+ totalStr: '',
+ dice: {},
+ css: '',
+ } as M5RollResult;
- return new M5Roll(rollData, actor, (game as Game).i18n.localize("midgard5.resistanceMind"));
- }
+ return new M5Roll(rollData, actor, (game as Game).i18n.localize('midgard5.resistanceMind'));
+ }
- static resistanceBody(actor: any) {
- const rollData = actor.getRollData() as M5RollData;
- rollData.i = {
- defenseBonus: 0,
- };
+ static resistanceBody(actor: any) {
+ const rollData = actor.getRollData() as M5RollData;
+ rollData.i = {
+ defenseBonus: 0,
+ };
- rollData.rolls["0"] = {
- formula: "1d20 + @c.calc.stats.resistanceBody.value",
- enabled: true,
- label: (game as Game).i18n.localize("midgard5.resistanceBody"),
- result: "",
- total: 0,
- totalStr: "",
- dice: {},
- css: "",
- } as M5RollResult;
+ rollData.rolls['0'] = {
+ formula: '1d20 + @c.calc.stats.resistanceBody.value',
+ enabled: true,
+ label: (game as Game).i18n.localize('midgard5.resistanceBody'),
+ result: '',
+ total: 0,
+ totalStr: '',
+ dice: {},
+ css: '',
+ } as M5RollResult;
- return new M5Roll(rollData, actor, (game as Game).i18n.localize("midgard5.resistanceBody"));
- }
+ return new M5Roll(rollData, actor, (game as Game).i18n.localize('midgard5.resistanceBody'));
+ }
- static parseDiceSides(formula: string): FormulaParseResult {
- const ewMatcher: RegExp = /\d*[dD]20/g;
- const pwMatcher: RegExp = /(\d+)\s*\-\s*\d*[dD]100/g;
+ static parseDiceSides(formula: string): FormulaParseResult {
+ const ewMatcher: RegExp = /\d*[dD]20/g;
+ const pwMatcher: RegExp = /(\d+)\s*\-\s*\d*[dD]100/g;
- let res = formula.match(ewMatcher);
- if (res && !!res[0]) {
- return {
- sides: 20,
- type: "ew",
- threshold: null,
- };
- }
+ let res = formula.match(ewMatcher);
+ if (res && !!res[0]) {
+ return {
+ sides: 20,
+ type: 'ew',
+ threshold: null,
+ };
+ }
- res = formula.match(pwMatcher);
- if (res && !!res[1]) {
- return {
- sides: 100,
- type: "pw",
- threshold: parseInt(res[1]),
- };
- }
+ res = formula.match(pwMatcher);
+ if (res && !!res[1]) {
+ return {
+ sides: 100,
+ type: 'pw',
+ threshold: parseInt(res[1]),
+ };
+ }
- return null;
- }
+ return null;
+ }
}
interface FormulaParseResult {
- sides: number;
- type: string;
- threshold: number;
+ sides: number;
+ type: string;
+ threshold: number;
}
diff --git a/source/module/sheets/M5CharacterSheet.ts b/source/module/sheets/M5CharacterSheet.ts
index 1e9af95..1383448 100644
--- a/source/module/sheets/M5CharacterSheet.ts
+++ b/source/module/sheets/M5CharacterSheet.ts
@@ -1,484 +1,475 @@
-import Logger from "../../utils/Logger";
-import { M5Character } from "../actors/M5Character";
-import { M5Item } from "../items/M5Item";
-import { M5ItemType, M5SkillLearned, M5SkillType, M5SkillUnlearned } from "../M5Base";
-import { M5Roll } from "../rolls/M5Roll";
+import Logger from '../../utils/Logger';
+import { M5Character } from '../actors/M5Character';
+import { M5Item } from '../items/M5Item';
+import { M5ItemType, M5SkillLearned, M5SkillType, M5SkillUnlearned } from '../M5Base';
+import { M5Roll } from '../rolls/M5Roll';
export default class M5CharacterSheet extends ActorSheet {
- static get defaultOptions() {
- return mergeObject(super.defaultOptions, {
- template: "systems/midgard5/templates/sheets/character/main.hbs",
- width: 1000,
- height: 800,
- classes: ["midgard5", "sheet", "character"],
- tabs: [{ navSelector: ".sheet-navigation", contentSelector: ".sheet-content", initial: "base_values" }],
- });
- }
-
- // get template() {
- // return "systems/midgard5/templates/character_sheet/main.hbs"
- // }Options extends ActorSheet.Options = ActorSheet.Options, Data extends object = ActorSheet.Data
-
- override getData(options?: Partial): ActorSheet.Data | Promise> {
- const actor = this.actor as M5Character;
- //console.log("Sheet getData", (actor as any).data)
- return Promise.resolve(super.getData(options)).then((context) => {
- actor.prepareDerivedData();
-
- context.actor = (actor as any).toObject(false);
- context.data = (actor as any).system;
-
- //console.log("Sheet Promise", context.actor, context.data)
- return context;
- });
- }
-
- override setPosition(options = {}) {
- const position = super.setPosition(options);
- const fillerWidth = this.element.find(".attributes .filler:first").width();
- this.element.find(".attributes .attribute-filler-fixed").width(fillerWidth);
- return position;
- }
-
- override activateListeners(html: JQuery) {
- super.activateListeners(html);
-
- html.find(".update-lp").on("click", async (event) => {
- const valueStr = event.target.dataset["value"];
- const value = parseInt(valueStr);
- this.actor.update({
- data: {
- lp: {
- value: value + 1,
- },
- },
- });
- });
-
- html.find(".update-ap").on("click", async (event) => {
- const valueStr = event.target.dataset["value"];
- const value = parseInt(valueStr);
- this.actor.update({
- data: {
- ap: {
- value: value + 1,
- },
- },
- });
- });
-
- html.find(".roll-attribute-button").on("click", async (event) => {
- let elem = event.target;
- let attributeStr = elem.dataset["attribute"];
- while (!attributeStr) {
- elem = elem.parentElement;
- if (!elem) return;
- attributeStr = elem.dataset["attribute"];
- }
- const attributeValue = parseInt(elem.dataset["value"]);
-
- const roll = M5Roll.fromAttributeValue(this.actor, attributeStr, attributeValue);
- //console.log("roll-attribute-button", parent, attributeStr, attributeValue, roll)
- await roll.toMessage();
- });
-
- html.find(".edit-item").on("click", async (event) => {
- let row = event.target.parentElement;
- let itemId = row.dataset["item"];
- while (!itemId) {
- row = row.parentElement;
- if (!row) return;
- itemId = row.dataset["item"];
- }
-
- const context = this.actor as any;
- const item = context.items.get(itemId);
- console.log("edit-item", item);
- item.sheet.render(true);
- });
-
- html.find(".quantity-increase").on("click", async (event) => {
- let row = event.target.parentElement;
- let itemId = row.dataset["item"];
- while (!itemId) {
- row = row.parentElement;
- if (!row) return;
- itemId = row.dataset["item"];
- }
-
- const context = this.actor as any;
- const item = context.items.get(itemId);
- if (!item.system.quantity) {
- item.system.quantity = 0;
- }
- item.update({
- data: {
- quantity: item.system.quantity + 1,
- },
- });
- this.render();
- });
-
- html.find(".quantity-decrease").on("click", async (event) => {
- let row = event.target.parentElement;
- let itemId = row.dataset["item"];
- while (!itemId) {
- row = row.parentElement;
- if (!row) return;
- itemId = row.dataset["item"];
- }
-
- const context = this.actor as any;
- const item = context.items.get(itemId);
- if (item.system.quantity > 0) {
- item.update({
- data: {
- quantity: item.system.quantity - 1,
- },
- });
- }
- this.render();
- });
-
- html.find(".roll-consumable-item").on("click", async (event) => {
- let row = event.target.parentElement;
- let itemId = row.dataset["item"];
- while (!itemId) {
- row = row.parentElement;
- if (!row) return;
- itemId = row.dataset["item"];
- }
-
- const context = this.actor as any;
- const item = context.items.get(itemId);
- if (item.system.quantity > 0) {
- item.update({
- data: {
- quantity: item.system.quantity - 1,
- },
- });
- }
-
- await item.roll();
- this.render();
- });
-
- html.find(".item-delete").on("click", async (event) => {
- let row = event.target.parentElement;
- let itemId = row.dataset["item"];
- while (!itemId) {
- row = row.parentElement;
- if (!row) return;
- itemId = row.dataset["item"];
- }
-
- const context = this.actor as any;
- const item = context.items.get(itemId);
- item.delete();
- this.render(false);
- });
-
- html.find(".roll-learned-button").on("click", async (event) => {
- const row = event.target.parentElement.parentElement;
- let skillId = row.dataset["item"];
-
- const actor = this.actor as any;
- const item = actor.items.get(skillId) as M5Item;
- await item.roll();
- });
-
- html.find(".roll-general-button").on("click", async (event) => {
- const row = event.target.parentElement.parentElement;
- let skillName = row.dataset["skill"];
-
- const data = this.actor.system;
- const unlearnedSkill = data.skills.general[skillName] as M5SkillUnlearned;
-
- const roll = M5Roll.fromUnlearnedSkill(this.actor, unlearnedSkill, skillName);
- await roll.toMessage();
- });
-
- html.find(".learn-button").on("click", async (event) => {
- const row = event.target.parentElement.parentElement;
- let skillName = row.dataset["skill"];
-
- const data = this.actor.system;
- const unlearnedSkill = data.skills.general[skillName] as M5SkillUnlearned;
-
- const character = this.actor as M5Character;
- character.createSkill((game as Game).i18n.localize("midgard5." + skillName)).then((skill) => {
- const item = skill as any;
- item.update({
- data: {
- fw: unlearnedSkill.initial,
- attribute: unlearnedSkill.attribute,
- skill: skillName,
- type: "general",
- },
- });
- });
- });
-
- html.find(".roll-weapon-button").on("click", async (event) => {
- const row = event.target.parentElement.parentElement;
- let itemId = row.dataset["item"];
-
- const context = this.actor as any;
- const item = context.items.get(itemId) as M5Item;
- await item.roll();
- this.render();
- });
-
- html.find(".roll-brawl-button").on("click", async (event) => {
- const roll = M5Roll.brawl(this.actor);
- await roll.toMessage();
- });
-
- html.find(".roll-perception-button").on("click", async (event) => {
- const roll = M5Roll.perception(this.actor);
- await roll.toMessage();
- });
-
- html.find(".roll-drinking-button").on("click", async (event) => {
- const roll = M5Roll.drinking(this.actor);
- await roll.toMessage();
- });
-
- html.find(".roll-defense-button").on("click", async (event) => {
- const roll = M5Roll.defense(this.actor);
- await roll.toMessage();
- });
-
- html.find(".roll-resistanceMind-button").on("click", async (event) => {
- const roll = M5Roll.resistanceMind(this.actor);
- await roll.toMessage();
- });
-
- html.find(".roll-resistanceBody-button").on("click", async (event) => {
- const roll = M5Roll.resistanceBody(this.actor);
- await roll.toMessage();
- });
-
- html.find(".change-equipped").on("click", async (event) => {
- let row = event.target.parentElement;
- let itemId = row.dataset["item"];
- while (!itemId) {
- row = row.parentElement;
- if (!row) return;
- itemId = row.dataset["item"];
- }
-
- const context = this.actor as any;
- const item = context.items.get(itemId);
- item.update({
- data: {
- equipped: !item.system.equipped,
- },
- });
- this.render();
- });
-
- html.find(".add-item").on("click", async (event) => {
- const data = this.actor.system;
-
- const character = this.actor as M5Character;
- character.createItem((game as Game).i18n.localize("TYPES.Item.item"), M5ItemType.ITEM, { quantity: 1 });
- });
-
- html.find(".add-weapon").on("click", async (event) => {
- const data = this.actor.system;
-
- const character = this.actor as M5Character;
- character.createItem((game as Game).i18n.localize("TYPES.Item.weapon"), M5ItemType.WEAPON);
- });
-
- html.find(".add-defensiveWeapon").on("click", async (event) => {
- const data = this.actor.system;
-
- const character = this.actor as M5Character;
- character.createItem((game as Game).i18n.localize("TYPES.Item.defensiveWeapon"), M5ItemType.DEFENSIVE_WEAPON);
- });
-
- html.find(".add-armor").on("click", async (event) => {
- const data = this.actor.system;
-
- const character = this.actor as M5Character;
- character.createItem((game as Game).i18n.localize("TYPES.Item.armor"), M5ItemType.ARMOR);
- });
-
- html.find(".add-container").on("click", async (event) => {
- const data = this.actor.system;
-
- const character = this.actor as M5Character;
- character.createItem((game as Game).i18n.localize("TYPES.Item.container"), M5ItemType.CONTAINER, { quantity: 1 });
- });
-
- html.find(".add-innate-skill").on("click", async (event) => {
- const data = this.actor.system;
-
- const character = this.actor as M5Character;
- character.createItem((game as Game).i18n.localize("TYPES.Item.innate-ability"), M5ItemType.SKILL, { type: M5SkillType.INNATE });
- });
-
- html.find(".add-general-skill").on("click", async (event) => {
- const data = this.actor.system;
-
- const character = this.actor as M5Character;
- character.createItem((game as Game).i18n.localize("TYPES.Item.skill"), M5ItemType.SKILL, { type: M5SkillType.GENERAL });
- });
-
- html.find(".add-combat-skill").on("click", async (event) => {
- const data = this.actor.system;
-
- const character = this.actor as M5Character;
- character.createItem((game as Game).i18n.localize("TYPES.Item.weapon-skill"), M5ItemType.SKILL, { type: M5SkillType.COMBAT });
- });
-
- html.find(".add-language-skill").on("click", async (event) => {
- const data = this.actor.system;
-
- const character = this.actor as M5Character;
- character.createItem((game as Game).i18n.localize("TYPES.Item.language"), M5ItemType.SKILL, { type: M5SkillType.LANGUAGE });
- });
-
- html.find(".add-spell").on("click", async (event) => {
- const data = this.actor.system;
-
- const character = this.actor as M5Character;
- character.createItem((game as Game).i18n.localize("TYPES.Item.spell"), M5ItemType.SPELL, { process: "none" });
- });
-
- html.find(".add-kampfkunst").on("click", async (event) => {
- const data = this.actor.system;
-
- const character = this.actor as M5Character;
- character.createItem((game as Game).i18n.localize("TYPES.Item.kampfkunst"), M5ItemType.KAMPFKUNST, {
- type: "angriff",
- variante: "anstuermen",
- });
- });
-
- html.find(".add-effect").on("click", async (event) => {
- const data = this.actor.system;
-
- const character = this.actor as M5Character;
- character.createItem((game as Game).i18n.localize("TYPES.Item.effect"), M5ItemType.EFFECT);
- });
-
- html.find(".join-combat").on("click", async (event) => {
- if (!!game["combat"]) {
- let combatant = game["combat"].getCombatantByActor(this.actor._id);
- if (!combatant) {
- await game["combat"].createEmbeddedDocuments("Combatant", [{ actorId: this.actor._id }]);
- combatant = game["combat"].getCombatantByActor(this.actor._id);
- }
-
- const initiatives = {
- _id: combatant._id,
- initiative: this.actor.system.calc.attributes.gw.value,
- };
-
- await game["combat"].updateEmbeddedDocuments("Combatant", [initiatives]);
- }
- });
-
- html.find(".ranged-combat").on("click", async (event) => {
- if (!!game["combat"]) {
- let combatant = game["combat"].getCombatantByActor(this.actor._id);
- if (!combatant) {
- await game["combat"].createEmbeddedDocuments("Combatant", [{ actorId: this.actor._id }]);
- combatant = game["combat"].getCombatantByActor(this.actor._id);
- }
-
- const initiatives = {
- _id: combatant._id,
- initiative: 0.01 * this.actor.system.calc.attributes.gw.value,
- };
-
- await game["combat"].updateEmbeddedDocuments("Combatant", [initiatives]);
- }
- });
-
- html.find(".spell-combat").on("click", async (event) => {
- if (!!game["combat"]) {
- let combatant = game["combat"].getCombatantByActor(this.actor._id);
- if (!combatant) {
- await game["combat"].createEmbeddedDocuments("Combatant", [{ actorId: this.actor._id }]);
- combatant = game["combat"].getCombatantByActor(this.actor._id);
- }
-
- const initiatives = {
- _id: combatant._id,
- initiative: 0.001 * this.actor.system.calc.attributes.gw.value,
- };
-
- await game["combat"].updateEmbeddedDocuments("Combatant", [initiatives]);
- }
- });
-
- // Drag & Drop
- const dragDrop = new DragDrop({
- dragSelector: ".items-list .item",
- dropSelector: ".sheet-body",
- permissions: { dragstart: this._canDragStart.bind(this), drop: this._canDragDrop.bind(this) },
- callbacks: { dragstart: this._onTransferItemDragStart.bind(this), drop: this._onTransferItemDrop.bind(this) },
- });
- dragDrop.bind(html[0]);
- }
-
- _canDragStart(selector) {
- return this.options.editable && this.actor.isOwner;
- }
-
- _canDragDrop(selector) {
- return true;
- }
-
- _onTransferItemDragStart(event) {
- const li = event.currentTarget;
- $(event.currentTarget).attr("data-item-actorid", this.actor.id);
- const item = this.actor.items.get(li.dataset.itemId);
-
- // limit transfer on personal weapons/armour/gear
- if (["skill", "item", "weapon", "defensiveWeapon", "armor", "spell", "effect", "kampfkunst", "container"].includes(item.type)) {
- const dragData = {
- type: "Transfer",
- actorId: this.actor.id,
- data: item.toObject(false),
- tokenId: null,
- };
-
- if (this.actor.isToken) dragData.tokenId = this.actor.token.id;
-
- event.dataTransfer.setData("text/plain", JSON.stringify(dragData));
- } else {
- return false;
- }
- }
-
- async _onTransferItemDrop(event) {
- // Try to extract the data
- let data = null;
- try {
- data = JSON.parse(event.dataTransfer.getData("text/plain"));
- if (data.type !== "Transfer") return false;
- } catch (err) {
- return false;
- }
-
- if (!data.data) return false;
-
- if (data.actorId === this.actor.id) return false;
-
- try {
- this.actor.createEmbeddedDocuments("Item", [duplicate(data.data)]); // Create a new Item
- const actor = (game as any).actors.get(data.actorId);
- await actor.items.get(data.data._id)?.delete(); // Delete originating item from other actor
- } catch (e) {
- console.error("Error transfering item between actors", e);
- return false;
- }
-
- return true;
- }
+ static get defaultOptions() {
+ return mergeObject(super.defaultOptions, {
+ template: 'systems/midgard5/templates/sheets/character/main.hbs',
+ width: 1000,
+ height: 800,
+ classes: ['midgard5', 'sheet', 'character'],
+ tabs: [
+ {
+ navSelector: '.sheet-navigation',
+ contentSelector: '.sheet-content',
+ initial: 'base_values',
+ },
+ ],
+ });
+ }
+
+ // get template() {
+ // return "systems/midgard5/templates/character_sheet/main.hbs"
+ // }Options extends ActorSheet.Options = ActorSheet.Options, Data extends object = ActorSheet.Data
+
+ override getData(
+ options?: Partial
+ ): ActorSheet.Data | Promise> {
+ const actor = this.actor as M5Character;
+ //console.log("Sheet getData", (actor as any).data)
+ return Promise.resolve(super.getData(options)).then(context => {
+ actor.prepareDerivedData();
+
+ context.actor = (actor as any).toObject(false);
+ context.data = (actor as any).system;
+
+ //console.log("Sheet Promise", context.actor, context.data)
+ return context;
+ });
+ }
+
+ override setPosition(options = {}) {
+ const position = super.setPosition(options);
+ const fillerWidth = this.element.find('.attributes .filler:first').width();
+ this.element.find('.attributes .attribute-filler-fixed').width(fillerWidth);
+ return position;
+ }
+
+ override activateListeners(html: JQuery) {
+ super.activateListeners(html);
+
+ html.find('.update-lp').on('click', async event => {
+ const valueStr = event.target.dataset['value'];
+ const value = parseInt(valueStr);
+ this.actor.update({
+ data: {
+ lp: {
+ value: value + 1,
+ },
+ },
+ });
+ });
+
+ html.find('.update-ap').on('click', async event => {
+ const valueStr = event.target.dataset['value'];
+ const value = parseInt(valueStr);
+ this.actor.update({
+ data: {
+ ap: {
+ value: value + 1,
+ },
+ },
+ });
+ });
+
+ html.find('.roll-attribute-button').on('click', async event => {
+ let target = event.target.closest('[data-attribute]') as HTMLElement;
+ let attributeValue = target ? parseInt(target.dataset.value) : null;
+ let attributeStr = target ? target.dataset.attribute : null;
+
+ const roll = M5Roll.fromAttributeValue(this.actor, attributeStr, attributeValue);
+ await roll.toMessage();
+ });
+
+ html.find('.edit-item').on('click', async event => {
+ let target = event.target.closest('[data-item-id]') as HTMLElement;
+ let itemId = target ? target.dataset.itemId : null;
+
+ const context = this.actor as any;
+ const item = context.items.get(itemId);
+ console.log('edit-item', item);
+ item.sheet.render(true);
+ });
+
+ html.find('.quantity-increase').on('click', async event => {
+ let target = event.target.closest('[data-item-id]') as HTMLElement;
+ let itemId = target ? target.dataset.itemId : null;
+
+ const context = this.actor as any;
+ const item = context.items.get(itemId);
+ if (!item.system.quantity) {
+ item.system.quantity = 0;
+ }
+ item.update({
+ data: {
+ quantity: item.system.quantity + 1,
+ },
+ });
+ this.render();
+ });
+
+ html.find('.quantity-decrease').on('click', async event => {
+ let target = event.target.closest('[data-item-id]') as HTMLElement;
+ let itemId = target ? target.dataset.itemId : null;
+
+ const context = this.actor as any;
+ const item = context.items.get(itemId);
+ if (item.system.quantity > 0) {
+ item.update({
+ data: {
+ quantity: item.system.quantity - 1,
+ },
+ });
+ }
+ this.render();
+ });
+
+ html.find('.roll-consumable-item').on('click', async event => {
+ let target = event.target.closest('[data-item-id]') as HTMLElement;
+ let itemId = target ? target.dataset.itemId : null;
+
+ const context = this.actor as any;
+ const item = context.items.get(itemId);
+ if (item.system.quantity > 0) {
+ item.update({
+ data: {
+ quantity: item.system.quantity - 1,
+ },
+ });
+ }
+
+ await item.roll();
+ this.render();
+ });
+
+ html.find('.item-delete').on('click', async event => {
+ let target = event.target.closest('[data-item-id]') as HTMLElement;
+ let itemId = target ? target.dataset.itemId : null;
+
+ const context = this.actor as any;
+ const item = context.items.get(itemId);
+ item.delete();
+ this.render(false);
+ });
+
+ html.find('.roll-learned-button').on('click', async event => {
+ let target = event.target.closest('[data-item-id]') as HTMLElement;
+ let skillId = target ? target.dataset.itemId : null;
+
+ const actor = this.actor as any;
+ const item = actor.items.get(skillId) as M5Item;
+ await item.roll();
+ });
+
+ html.find('.roll-general-button').on('click', async event => {
+ let target = event.target.closest('[data-skill]') as HTMLElement;
+ let skillName = target ? target.dataset.itemId : null;
+
+ const data = this.actor.system;
+ const unlearnedSkill = data.skills.general[skillName] as M5SkillUnlearned;
+
+ const roll = M5Roll.fromUnlearnedSkill(this.actor, unlearnedSkill, skillName);
+ await roll.toMessage();
+ });
+
+ html.find('.learn-button').on('click', async event => {
+ let target = event.target.closest('[data-skill]') as HTMLElement;
+ let skillName = target ? target.dataset.itemId : null;
+
+ const data = this.actor.system;
+ const unlearnedSkill = data.skills.general[skillName] as M5SkillUnlearned;
+
+ const character = this.actor as M5Character;
+ character.createSkill((game as Game).i18n.localize('midgard5.' + skillName)).then(skill => {
+ const item = skill as any;
+ item.update({
+ data: {
+ fw: unlearnedSkill.initial,
+ attribute: unlearnedSkill.attribute,
+ skill: skillName,
+ type: 'general',
+ },
+ });
+ });
+ });
+
+ html.find('.roll-weapon-button').on('click', async event => {
+ let target = event.target.closest('[data-item-id]') as HTMLElement;
+ let itemId = target ? target.dataset.itemId : null;
+
+ const context = this.actor as any;
+ const item = context.items.get(itemId) as M5Item;
+ await item.roll();
+ this.render();
+ });
+
+ html.find('.roll-brawl-button').on('click', async event => {
+ const roll = M5Roll.brawl(this.actor);
+ await roll.toMessage();
+ });
+
+ html.find('.roll-perception-button').on('click', async event => {
+ const roll = M5Roll.perception(this.actor);
+ await roll.toMessage();
+ });
+
+ html.find('.roll-drinking-button').on('click', async event => {
+ const roll = M5Roll.drinking(this.actor);
+ await roll.toMessage();
+ });
+
+ html.find('.roll-defense-button').on('click', async event => {
+ const roll = M5Roll.defense(this.actor);
+ await roll.toMessage();
+ });
+
+ html.find('.roll-resistanceMind-button').on('click', async event => {
+ const roll = M5Roll.resistanceMind(this.actor);
+ await roll.toMessage();
+ });
+
+ html.find('.roll-resistanceBody-button').on('click', async event => {
+ const roll = M5Roll.resistanceBody(this.actor);
+ await roll.toMessage();
+ });
+
+ html.find('.change-equipped').on('click', async event => {
+ let target = event.target.closest('[data-item-id]') as HTMLElement;
+ let itemId = target ? target.dataset.itemId : null;
+
+ const context = this.actor as any;
+ const item = context.items.get(itemId);
+ item.update({
+ data: {
+ equipped: !item.system.equipped,
+ },
+ });
+
+ this.render();
+ });
+
+ html.find('.add-item').on('click', async event => {
+ const data = this.actor.system;
+
+ const character = this.actor as M5Character;
+ character.createItem((game as Game).i18n.localize('TYPES.Item.item'), M5ItemType.ITEM, { quantity: 1 });
+ });
+
+ html.find('.add-weapon').on('click', async event => {
+ const data = this.actor.system;
+
+ const character = this.actor as M5Character;
+ character.createItem((game as Game).i18n.localize('TYPES.Item.weapon'), M5ItemType.WEAPON);
+ });
+
+ html.find('.add-defensiveWeapon').on('click', async event => {
+ const data = this.actor.system;
+
+ const character = this.actor as M5Character;
+ character.createItem((game as Game).i18n.localize('TYPES.Item.defensiveWeapon'), M5ItemType.DEFENSIVE_WEAPON);
+ });
+
+ html.find('.add-armor').on('click', async event => {
+ const data = this.actor.system;
+
+ const character = this.actor as M5Character;
+ character.createItem((game as Game).i18n.localize('TYPES.Item.armor'), M5ItemType.ARMOR);
+ });
+
+ html.find('.add-container').on('click', async event => {
+ const data = this.actor.system;
+
+ const character = this.actor as M5Character;
+ character.createItem((game as Game).i18n.localize('TYPES.Item.container'), M5ItemType.CONTAINER, { quantity: 1 });
+ });
+
+ html.find('.add-innate-skill').on('click', async event => {
+ const data = this.actor.system;
+
+ const character = this.actor as M5Character;
+ character.createItem((game as Game).i18n.localize('midgard5.innate-ability'), M5ItemType.SKILL, {
+ type: M5SkillType.INNATE,
+ });
+ });
+
+ html.find('.add-general-skill').on('click', async event => {
+ const data = this.actor.system;
+
+ const character = this.actor as M5Character;
+ character.createItem((game as Game).i18n.localize('TYPES.Item.skill'), M5ItemType.SKILL, {
+ type: M5SkillType.GENERAL,
+ });
+ });
+
+ html.find('.add-combat-skill').on('click', async event => {
+ const data = this.actor.system;
+
+ const character = this.actor as M5Character;
+ character.createItem((game as Game).i18n.localize('midgard5.weapon-skill'), M5ItemType.SKILL, {
+ type: M5SkillType.COMBAT,
+ });
+ });
+
+ html.find('.add-language-skill').on('click', async event => {
+ const data = this.actor.system;
+
+ const character = this.actor as M5Character;
+ character.createItem((game as Game).i18n.localize('midgard5.language'), M5ItemType.SKILL, {
+ type: M5SkillType.LANGUAGE,
+ });
+ });
+
+ html.find('.add-spell').on('click', async event => {
+ const data = this.actor.system;
+
+ const character = this.actor as M5Character;
+ character.createItem((game as Game).i18n.localize('TYPES.Item.spell'), M5ItemType.SPELL, { process: 'none' });
+ });
+
+ html.find('.add-kampfkunst').on('click', async event => {
+ const data = this.actor.system;
+
+ const character = this.actor as M5Character;
+ character.createItem((game as Game).i18n.localize('TYPES.Item.kampfkunst'), M5ItemType.KAMPFKUNST, {
+ type: 'angriff',
+ variante: 'anstuermen',
+ });
+ });
+
+ html.find('.add-effect').on('click', async event => {
+ const data = this.actor.system;
+
+ const character = this.actor as M5Character;
+ character.createItem((game as Game).i18n.localize('TYPES.Item.effect'), M5ItemType.EFFECT);
+ });
+
+ html.find('.join-combat').on('click', async event => {
+ if (!!game['combat']) {
+ let combatant = game['combat'].getCombatantByActor(this.actor._id);
+ if (!combatant) {
+ await game['combat'].createEmbeddedDocuments('Combatant', [{ actorId: this.actor._id }]);
+ combatant = game['combat'].getCombatantByActor(this.actor._id);
+ }
+
+ const initiatives = {
+ _id: combatant._id,
+ initiative: this.actor.system.calc.attributes.gw.value,
+ };
+
+ await game['combat'].updateEmbeddedDocuments('Combatant', [initiatives]);
+ }
+ });
+
+ html.find('.ranged-combat').on('click', async event => {
+ if (!!game['combat']) {
+ let combatant = game['combat'].getCombatantByActor(this.actor._id);
+ if (!combatant) {
+ await game['combat'].createEmbeddedDocuments('Combatant', [{ actorId: this.actor._id }]);
+ combatant = game['combat'].getCombatantByActor(this.actor._id);
+ }
+
+ const initiatives = {
+ _id: combatant._id,
+ initiative: 0.01 * this.actor.system.calc.attributes.gw.value,
+ };
+
+ await game['combat'].updateEmbeddedDocuments('Combatant', [initiatives]);
+ }
+ });
+
+ html.find('.spell-combat').on('click', async event => {
+ if (!!game['combat']) {
+ let combatant = game['combat'].getCombatantByActor(this.actor._id);
+ if (!combatant) {
+ await game['combat'].createEmbeddedDocuments('Combatant', [{ actorId: this.actor._id }]);
+ combatant = game['combat'].getCombatantByActor(this.actor._id);
+ }
+
+ const initiatives = {
+ _id: combatant._id,
+ initiative: 0.001 * this.actor.system.calc.attributes.gw.value,
+ };
+
+ await game['combat'].updateEmbeddedDocuments('Combatant', [initiatives]);
+ }
+ });
+
+ // Drag & Drop
+ const dragDrop = new DragDrop({
+ dragSelector: '.items-list .item',
+ dropSelector: null,
+ permissions: {
+ dragstart: this._canDragStart.bind(this),
+ drop: this._canDragDrop.bind(this),
+ },
+ callbacks: {
+ dragstart: this._onTransferItemDragStart.bind(this),
+ drop: this._onTransferItemDrop.bind(this),
+ },
+ });
+ dragDrop.bind(html[0]);
+ }
+
+ _canDragStart(selector) {
+ return this.options.editable && this.actor.isOwner;
+ }
+
+ _canDragDrop(selector) {
+ return true;
+ }
+
+ _onTransferItemDragStart(event) {
+ const li = event.target;
+ $(event.target).attr('data-item-actorid', this.actor.id);
+ const item = this.actor.items.get(li.dataset.itemId);
+ console.log(item);
+
+ const dragData = {
+ type: 'Transfer',
+ actorId: this.actor.id,
+ data: item.toObject(false),
+ tokenId: null,
+ };
+
+ if (this.actor.isToken) dragData.tokenId = this.actor.token.id;
+
+ event.dataTransfer.setData('text/plain', JSON.stringify(dragData));
+ }
+
+ async _onTransferItemDrop(event) {
+ // Try to extract the data
+ let data = null;
+ try {
+ data = JSON.parse(event.dataTransfer.getData('text/plain'));
+ if (data.type !== 'Transfer') return false;
+ } catch (err) {
+ return false;
+ }
+
+ if (!data.data) return false;
+
+ if (data.actorId === this.actor.id) {
+ return this._onSortItem(event, data.data);
+ }
+
+ // limit transfer on personal weapons/armour/gear
+ if (['item', 'weapon', 'defensiveWeapon', 'armor', 'container'].includes(data.data.type)) {
+ try {
+ this.actor.createEmbeddedDocuments('Item', [duplicate(data.data)]); // Create a new Item
+ const actor = (game as any).actors.get(data.actorId);
+ await actor.items.get(data.data._id)?.delete(); // Delete originating item from other actor
+ } catch (e) {
+ console.error('Error transfering item between actors', e);
+ return false;
+ }
+ } else {
+ ui.notifications.warn('Nur Gegenstände können übertragen werden.');
+ return false;
+ }
+
+ return true;
+ }
}
diff --git a/source/module/sheets/M5ItemSheet.ts b/source/module/sheets/M5ItemSheet.ts
index 1a1c073..908811b 100644
--- a/source/module/sheets/M5ItemSheet.ts
+++ b/source/module/sheets/M5ItemSheet.ts
@@ -1,195 +1,222 @@
-import { M5Item } from "../items/M5Item"
-import { M5Attributes, M5ItemMod, M5ModOperation, M5ModType, M5RollTemplate } from "../M5Base"
+import { M5Item } from "../items/M5Item";
+import {
+ M5Attributes,
+ M5ItemMod,
+ M5ModOperation,
+ M5ModType,
+ M5RollTemplate,
+} from "../M5Base";
export class M5ItemSheet extends ItemSheet {
-
- static get defaultOptions() {
- return mergeObject(super.defaultOptions, {
- width: 640,
- height: 480,
- classes: ["midgard5", "sheet", "item"]
- })
- }
+ static get defaultOptions() {
+ return mergeObject(super.defaultOptions, {
+ width: 640,
+ height: 480,
+ classes: ["midgard5", "sheet", "item"],
+ });
+ }
- get template() {
- //console.log("M5ItemSheet", this.item.data.type)
- const path = "systems/midgard5/templates/sheets/item"
- return `${path}/${this.item.type}.hbs`
- }
+ get template() {
+ //console.log("M5ItemSheet", this.item.data.type)
+ const path = "systems/midgard5/templates/sheets/item";
+ return `${path}/${this.item.type}.hbs`;
+ }
- override getData(options?: Partial): ItemSheet.Data | Promise> {
- const item = this.item as M5Item
- return Promise.resolve(super.getData()).then(value => {
- item.prepareDerivedData()
- const context = value as any
+ override getData(
+ options?: Partial,
+ ):
+ | ItemSheet.Data
+ | Promise> {
+ const item = this.item as M5Item;
+ return Promise.resolve(super.getData()).then((value) => {
+ item.prepareDerivedData();
+ const context = value as any;
- // Use a safe clone of the item data for further operations.
- const itemData = context.item
+ // Use a safe clone of the item data for further operations.
+ const itemData = context.item;
- // Retrieve the roll data for TinyMCE editors.
- context.rollData = {}
- let actor = this.object?.parent ?? null
- if (actor) {
- context.rollData = actor.getRollData()
- }
-
- context.data = itemData.system
- context.flags = itemData.flags
-
- return context
- })
- }
+ // Retrieve the roll data for TinyMCE editors.
+ context.rollData = {};
+ let actor = this.object?.parent ?? null;
+ if (actor) {
+ context.rollData = actor.getRollData();
+ }
- override activateListeners(html: JQuery) {
- super.activateListeners(html)
+ context.data = itemData.system;
+ context.flags = itemData.flags;
- html.find(".add-mod").on("click", async (event) => {
- const context = this.object
- const mods = context.system.mods
- const modIndex = Object.keys(mods).length
- mods[modIndex.toString()] = {
- type: M5ModType.ATTRIBUTE,
- id: M5Attributes.ST,
- operation: M5ModOperation.ADD,
- value: 0
- } as M5ItemMod
- this.object.update({
- data: {
- mods: mods
- }
- })
- })
+ return context;
+ });
+ }
- html.find(".item-delete").on("click", async (event) => {
- let row = event.target.parentElement
- let itemId = row.dataset["item"]
- while (!itemId) {
- row = row.parentElement
- if (!row)
- return
- itemId = row.dataset["item"]
- }
+ override activateListeners(html: JQuery) {
+ super.activateListeners(html);
- const context = this.item
- const item = context.items.get(itemId)
- item.delete()
- this.render(false)
- })
+ html.find(".add-mod").on("click", async (event) => {
+ const context = this.object;
+ const mods = context.system.mods;
+ const modIndex = Object.keys(mods).length;
+ mods[modIndex.toString()] = {
+ type: M5ModType.ATTRIBUTE,
+ id: M5Attributes.ST,
+ operation: M5ModOperation.ADD,
+ value: 0,
+ } as M5ItemMod;
+ this.object.update({
+ data: {
+ mods: mods,
+ },
+ });
+ });
- html.find(".roll-delete").on("click", async (event) => {
- //console.log("roll-delete", this.item.data.data.rolls.formulas)
+ html.find(".item-delete").on("click", async (event) => {
+ let row = event.target.parentElement;
+ let itemId = row.dataset["item"];
+ while (!itemId) {
+ row = row.parentElement;
+ if (!row) return;
+ itemId = row.dataset["item"];
+ }
- let row = event.target.parentElement
- let rollIndex = row.dataset["roll"]
- while (!rollIndex) {
- row = row.parentElement
- if (!row)
- return
- rollIndex = row.dataset["roll"]
- }
+ const context = this.item;
+ const item = context.items.get(itemId);
+ item.delete();
+ this.render(false);
+ });
- const rolls = this.item.system.rolls.formulas
- rolls[rollIndex] = null
+ html.find(".mod-delete").on("click", async (event) => {
+ let row = event.target.parentElement;
+ let itemId = row.dataset["mod"];
+ while (!itemId) {
+ row = row.parentElement;
+ if (!row) return;
+ itemId = row.dataset["mod"];
+ }
+ const context = this.item;
+ delete context.system.mods[itemId];
+ this.render(false);
+ });
- this.item.update({
- data: {
- rolls: {
- formulas: rolls
- }
- }
- })
- this.render(false)
- })
+ html.find(".roll-delete").on("click", async (event) => {
+ //console.log("roll-delete", this.item.data.data.rolls.formulas)
- html.find(".roll-create").on("click", async (event) => {
- const rolls = this.item.system.rolls.formulas
+ let row = event.target.parentElement;
+ let rollIndex = row.dataset["roll"];
+ while (!rollIndex) {
+ row = row.parentElement;
+ if (!row) return;
+ rollIndex = row.dataset["roll"];
+ }
- const indeces = Object.keys(rolls).map(index => parseInt(index)).sort().reverse()
- const index = (indeces.find(index => !!rolls[index.toString()]) ?? -1) + 1
- console.log("roll-create", rolls, indeces, index)
+ const rolls = this.item.system.rolls.formulas;
+ rolls[rollIndex] = null;
- rolls[index.toString()] = {
- formula: "1d6",
- label: (game as Game).i18n.localize("midgard5.roll"),
- enabled: true
- } as M5RollTemplate
+ this.item.update({
+ data: {
+ rolls: {
+ formulas: rolls,
+ },
+ },
+ });
+ this.render(false);
+ });
- this.item.update({
- data: {
- rolls: {
- formulas: rolls
- }
- }
- })
- this.render(false)
- })
+ html.find(".roll-create").on("click", async (event) => {
+ const rolls = this.item.system.rolls.formulas;
- // Drag & Drop
- if (["item"].includes(this.object.type)) {
- const itemToItemAssociation = new DragDrop({
- dragSelector: ".item",
- dropSelector: null,
- permissions: { dragstart: this._canDragStart.bind(this), drop: this._canDragDrop.bind(this) },
- callbacks: { drop: this._onDropItem.bind(this) },
- })
- itemToItemAssociation.bind(html[0])
- }
- }
+ const indeces = Object.keys(rolls)
+ .map((index) => parseInt(index))
+ .sort()
+ .reverse();
+ const index =
+ (indeces.find((index) => !!rolls[index.toString()]) ?? -1) + 1;
+ console.log("roll-create", rolls, indeces, index);
- _canDragStart(selector) {
- console.log("M5ItemSheet._canDragStart", selector)
- return this.options.editable && this.object.isOwner
- }
+ rolls[index.toString()] = {
+ formula: "1d6",
+ label: (game as Game).i18n.localize("midgard5.roll"),
+ enabled: true,
+ } as M5RollTemplate;
- _canDragDrop(selector) {
- console.log("M5ItemSheet._canDragDrop", selector)
- return true
- }
+ this.item.update({
+ data: {
+ rolls: {
+ formulas: rolls,
+ },
+ },
+ });
+ this.render(false);
+ });
- async _onDropItem(event) {
- let data
- const obj = this.object
- const li = event.currentTarget
+ // Drag & Drop
+ if (["item"].includes(this.object.type)) {
+ const itemToItemAssociation = new DragDrop({
+ dragSelector: ".item",
+ dropSelector: ".item-list",
+ permissions: {
+ dragstart: this._canDragStart.bind(this),
+ drop: this._canDragDrop.bind(this),
+ },
+ callbacks: { drop: this._onDropItem.bind(this) },
+ });
+ itemToItemAssociation.bind(html[0]);
+ }
+ }
- try {
- data = JSON.parse(event.dataTransfer.getData("text/plain"))
- if (data.type !== "Item")
- return false
- } catch (err) {
- return false
- }
+ _canDragStart(selector) {
+ console.log("M5ItemSheet._canDragStart", selector);
+ return this.options.editable && this.object.isOwner;
+ }
- // Case 1 - Import from a Compendium pack
- let itemObject
- if (data.pack) {
- const compendiumObject = await (this as any).importItemFromCollection(data.pack, data.id)
- itemObject = compendiumObject.data
- }
+ _canDragDrop(selector) {
+ console.log("M5ItemSheet._canDragDrop", selector);
+ return true;
+ }
- // Case 2 - Import from World entity
- else {
- const originalItem = await (game as Game).items.get(data.id)
- itemObject = duplicate(originalItem)
- if (!itemObject)
- return
- }
+ async _onDropItem(event) {
+ let data;
+ const obj = this.object;
+ const li = event.currentTarget;
- if ((itemObject.type === "mod")) {
- let mods = obj?.system?.mods
- if (!mods)
- mods = []
+ try {
+ data = JSON.parse(event.dataTransfer.getData("text/plain"));
+ if (data.type !== "Item") return false;
+ } catch (err) {
+ return false;
+ }
- itemObject.id = randomID()
- console.log("M5ItemSheet._onDropItem", itemObject)
- mods.push(itemObject)
+ // Case 1 - Import from a Compendium pack
+ let itemObject;
+ if (data.pack) {
+ const compendiumObject = await (this as any).importItemFromCollection(
+ data.pack,
+ data.id,
+ );
+ itemObject = compendiumObject.data;
+ }
- obj.update({
- data: {
- mods: mods
- }
- })
- }
- }
+ // Case 2 - Import from World entity
+ else {
+ const originalItem = await (game as Game).items.get(data.id);
+ itemObject = duplicate(originalItem);
+ if (!itemObject) return;
+ }
- async _onDragItemStart(event) { }
+ if (itemObject.type === "mod") {
+ let mods = obj?.system?.mods;
+ if (!mods) mods = [];
+
+ itemObject.id = randomID();
+ console.log("M5ItemSheet._onDropItem", itemObject);
+ mods.push(itemObject);
+
+ obj.update({
+ data: {
+ mods: mods,
+ },
+ });
+ }
+ }
+
+ async _onDragItemStart(event) {}
}
diff --git a/source/style/Character-sheet.less b/source/style/Character-sheet.less
index dd4dda2..c668725 100644
--- a/source/style/Character-sheet.less
+++ b/source/style/Character-sheet.less
@@ -3,357 +3,366 @@
@attributeBorderColor: rgba(0, 0, 0, 0.5);
.midgard5 {
- .flexbox {
- display: flex;
- flex-direction: row;
- flex-wrap: wrap;
- }
+ .flexbox {
+ display: flex;
+ flex-direction: row;
+ flex-wrap: wrap;
+ }
- .flexcolumn {
- flex-wrap: wrap;
- }
+ .flexcolumn {
+ flex-wrap: wrap;
+ flex-direction: column;
+ }
- .flexcolumn-1 {
- flex: 100%;
- flex-wrap: wrap;
- }
+ .flexcolumn-1 {
+ flex-basis: 100%;
+ flex-wrap: wrap;
+ }
- .flexcolumn-2 {
- flex: 50%;
- flex-wrap: wrap;
- }
+ .flexcolumn-2 {
+ flex-basis: 50%;
+ flex-wrap: wrap;
+ }
- .flexcolumn-3 {
- flex: 33%;
- flex-wrap: wrap;
- }
+ .flexcolumn-3 {
+ flex-basis: 33%;
+ flex-wrap: wrap;
+ }
- .flexcolumn-4 {
- flex: 25%;
- flex-wrap: wrap;
- }
+ .flexcolumn-4 {
+ flex-basis: 25%;
+ flex-wrap: wrap;
+ }
- .flexcolumn-5 {
- flex: 20%;
- flex-wrap: wrap;
- }
+ .flexcolumn-5 {
+ flex-basis: 20%;
+ flex-wrap: wrap;
+ }
- .flexpart {
- gap: 0;
- padding: 0;
- margin: 5px;
- background-color: beige;
- border: 2px solid black;
- }
+ .flexpart {
+ gap: 0;
+ padding: 0;
+ margin: 2px;
+ background-color: beige;
+ border-collapse: separate;
+ border-radius: 10px;
+ border: 2px solid black;
+ }
- .flexpart-header {
- font-weight: bold;
- font-size: large;
- text-align: center;
- color: black;
- }
+ .flexpart-header {
+ font-weight: bold;
+ font-size: large;
+ text-align: center;
+ color: black;
+ }
- .flexpart-icon {
- height: 2rem;
- float: left;
- border: 0px solid transparent;
- }
+ .flexpart-icon {
+ height: 2rem;
+ float: left;
+ border: 0px solid transparent;
+ }
- .flexrow {
- align-items: center;
- }
+ .flexrow {
+ align-items: center;
+ }
- h3 {
- padding: 0.5rem 0.5rem 0.5rem 0.5rem;
- text-align: left;
- font-weight: bold;
- background-color: dimgray;
- color: white;
- }
+ h3 {
+ padding: 0.5rem 0.5rem 0.5rem 0.5rem;
+ margin-top: 0.5rem;
+ margin-bottom: 0;
+ text-align: left;
+ font-weight: bold;
+ background-color: #eeede0;
+ color: black;
+ border-collapse: separate;
+ border: 2px solid black;
+ border-radius: 10px;
+ }
- .profile-img {
- display: block;
- margin-left: auto;
- margin-right: auto;
- height: 100%;
- width: auto;
- border: 0px solid black;
- }
+ .profile-img {
+ display: block;
+ margin-left: auto;
+ margin-right: auto;
+ height: 100%;
+ width: auto;
+ border: 0px solid black;
+ }
- .sheet.character {
- form {
- display: flex;
- flex-direction: column;
- }
+ .sheet.character {
+ form {
+ display: flex;
+ flex-direction: column;
+ }
- .sheet-content {
- height: 100%;
- display: flex;
- flex-direction: column;
+ .sheet-content {
+ height: 100%;
+ display: flex;
+ flex-direction: column;
- .editor {
- height: 100%;
- }
- }
+ .editor {
+ height: 100%;
+ }
+ }
- .description {
- flex: 0 0 100%;
- margin: 0;
- }
- }
+ .description {
+ flex: 0 0 100%;
+ margin: 0;
+ }
+ }
- .sheet-navigation {
- margin: 4px 0;
- background-color: lightgrey;
- border-top: 2px solid black;
- border-bottom: 2px solid black;
- }
+ .sheet-navigation {
+ margin: 4px 0;
+ background-color: lightgrey;
+ border-top: 2px solid black;
+ border-bottom: 2px solid black;
+ }
- .sheet-navigation .item {
- padding: 8px 12px 8px 12px;
- color: black;
- font-weight: bold;
- font-size: large;
- }
+ .sheet-navigation .item {
+ padding: 8px 12px 8px 12px;
+ color: black;
+ font-weight: bold;
+ font-size: large;
+ }
- .sheet-navigation .active {
- background-color: darkgrey;
- }
+ .sheet-navigation .active {
+ background-color: darkgrey;
+ }
- .level-display {
- text-align: right;
- font-weight: bold;
- }
+ .level-display {
+ text-align: right;
+ font-weight: bold;
+ }
- table {
- background-color: beige;
- border: 0px solid transparent;
- &.bordered {
- border-collapse: separate;
- border: 2px solid black;
- border-radius: 10px;
- font-size: larger;
- font-weight: bolder;
- }
- }
+ table {
+ background-color: beige;
+ border: 0px solid transparent;
+ &.bordered {
+ border-collapse: separate;
+ border: 2px solid black;
+ border-radius: 10px;
+ font-size: larger;
+ font-weight: bolder;
+ }
+ }
- td,
- th {
- padding: 0 0.5rem 0 0.5rem;
- text-align: left;
+ td,
+ th {
+ padding: 0 0.5rem 0 0.5rem;
+ text-align: left;
- &.center {
- text-align: center;
- }
+ &.center {
+ text-align: center;
+ }
- &.fixed-value {
- width: 3rem;
- text-align: center;
- }
+ &.fixed-value {
+ width: 3rem;
+ text-align: center;
+ }
- &.attribute {
- text-align: center;
- font-weight: bold;
- }
+ &.attribute {
+ text-align: center;
+ font-weight: bold;
+ }
- &.attribute-value {
- background: url(/icons/svg/d20-grey.svg) no-repeat;
- background-size: 50px 50px;
- background-position: center;
- color: black;
- text-align: center;
- font-weight: bold;
- height: 50px;
- width: 50px;
- }
+ &.attribute-value {
+ background: url(/icons/svg/d20-grey.svg) no-repeat;
+ background-size: 50px 50px;
+ background-position: center;
+ color: black;
+ text-align: center;
+ font-weight: bold;
+ height: 50px;
+ width: 50px;
+ }
- &.title {
- padding: 0.5rem 0.5rem 0.5rem 0.5rem;
- text-align: left;
- font-weight: bold;
- }
+ &.title {
+ padding: 0.5rem 0.5rem 0.5rem 0.5rem;
+ text-align: left;
+ font-weight: bold;
+ }
- &.highlight {
- font-weight: bold;
- font-style: italic;
- }
- }
+ &.highlight {
+ font-weight: bold;
+ font-style: italic;
+ }
+ }
- .table-icon {
- height: 1rem;
- width: 1rem;
- float: left;
- border: 0px solid transparent;
- }
+ .table-icon {
+ height: 1rem;
+ width: 1rem;
+ float: left;
+ border: 0px solid transparent;
+ }
- input {
- border: 0px solid black;
- }
+ input {
+ border: 0px solid black;
+ }
- input.skill {
- width: 5rem;
- }
+ input.skill {
+ width: 5rem;
+ }
- input.fixed {
- width: 5rem;
- }
+ input.fixed {
+ width: 5rem;
+ }
- input.checkbox {
- width: 1rem;
- height: 1rem;
- }
+ input.checkbox {
+ width: 1rem;
+ height: 1rem;
+ }
- .new-skill {
- font-style: italic;
- background: rgba(0, 0, 0, 0.3);
- color: rgba(255, 255, 255);
- }
+ .new-skill {
+ font-style: italic;
+ background: rgba(0, 0, 0, 0.3);
+ color: rgba(255, 255, 255);
+ }
- .roll-button {
- background: url(/icons/svg/d20-black.svg) no-repeat;
- background-size: 1rem 1rem;
- border: #000000 solid 0px;
- width: 1rem;
- height: 1rem;
- }
+ .roll-button {
+ background: url(/icons/svg/d20-black.svg) no-repeat;
+ background-size: 1rem 1rem;
+ border: #000000 solid 0px;
+ width: 1rem;
+ height: 1rem;
+ }
- .wide-button {
- margin: 0.25rem 0;
- }
+ .wide-button {
+ margin: 0.25rem 0;
+ }
- .learn-button {
- padding: 0;
- margin: 0;
- height: 1rem;
- width: 4rem;
- background: rgba(255, 255, 255, 0.5);
- font-size: smaller;
- text-align: center;
- line-height: 0.8rem;
- }
+ .learn-button {
+ padding: 0;
+ margin: 0;
+ height: 1rem;
+ width: 4rem;
+ background: rgba(255, 255, 255, 0.5);
+ font-size: smaller;
+ text-align: center;
+ line-height: 0.8rem;
+ }
- span.spell-process {
- color: rgb(93, 93, 93);
- font-style: italic;
- }
+ span.spell-process {
+ color: rgb(93, 93, 93);
+ font-style: italic;
+ }
- .filler {
- flex: 1 1 auto;
- }
+ .filler {
+ flex: 1 1 auto;
+ }
- .health-bar {
- height: 1rem;
- background-color: rgba(0, 0, 0, 0.8);
- display: flex;
- flex-direction: row;
- gap: 1px;
- padding: 1px;
- //align-items: stretch;
+ .health-bar {
+ height: 1rem;
+ background-color: rgba(0, 0, 0, 0.8);
+ display: flex;
+ flex-direction: row;
+ gap: 1px;
+ padding: 1px;
+ //align-items: stretch;
- input {
- flex: 0 0 2rem;
- text-align: center;
- height: 100%;
- background-color: rgba(109, 108, 102, 1);
- color: rgba(255, 255, 255, 1);
- font-weight: bold;
- border-radius: 0;
- }
+ input,
+ .max-value {
+ flex: 0 0 2rem;
+ text-align: center;
+ height: 100%;
+ background-color: rgba(109, 108, 102, 1);
+ color: rgba(255, 255, 255, 1);
+ font-weight: bold;
+ border-radius: 0;
+ }
- .lp-bar-item-empty,
- .ap-bar-item-empty {
- flex-grow: 1;
- background-color: white;
- }
+ .lp-bar-item-empty,
+ .ap-bar-item-empty {
+ flex-grow: 1;
+ background-color: white;
+ }
- .lp-bar-item {
- flex-grow: 1;
- background-color: lightgreen;
- }
+ .lp-bar-item {
+ flex-grow: 1;
+ background-color: lightgreen;
+ }
- .ap-bar-item {
- flex-grow: 1;
- background-color: lightblue;
- }
+ .ap-bar-item {
+ flex-grow: 1;
+ background-color: lightblue;
+ }
- .negative-bar-item {
- flex-grow: 1;
- background-color: red;
- }
- }
+ .negative-bar-item {
+ flex-grow: 1;
+ background-color: red;
+ }
+ }
- .biography {
- margin: 0.5rem 0.5rem 0.5rem 0.5rem;
- height: 180px;
- background-color: #eaead7;
- .editor {
- height: 100%;
- width: 100%;
- }
- }
+ .biography {
+ margin: 0.5rem 0.5rem 0.5rem 0.5rem;
+ height: 180px;
+ background-color: #eaead7;
+ .editor {
+ height: 100%;
+ width: 100%;
+ }
+ }
- .attributes {
- padding: 0.5rem 0.5rem 0.5rem 0.5rem;
- display: flex;
- flex-direction: row;
- margin-bottom: 0.5rem;
- background-color: beige;
- flex-wrap: wrap;
- justify-content: center;
+ .attributes {
+ padding: 0.5rem 0.5rem 0.5rem 0.5rem;
+ display: flex;
+ flex-direction: row;
+ margin-bottom: 0.5rem;
+ background-color: beige;
+ flex-wrap: wrap;
+ justify-content: center;
- .attribute {
- flex: 0 0 6rem;
- margin: 0;
- border: 1px solid @attributeBorderColor;
- //border-bottom: none;
- border-radius: 10;
+ .attribute {
+ flex: 0 0 6rem;
+ margin: 0;
+ border: 1px solid @attributeBorderColor;
+ //border-bottom: none;
+ border-radius: 10;
- display: flex;
- flex-direction: column;
+ display: flex;
+ flex-direction: column;
- .attribute-header {
- display: flex;
- align-items: center;
- text-align: center;
- justify-content: center;
+ .attribute-header {
+ display: flex;
+ align-items: center;
+ text-align: center;
+ justify-content: center;
- font-weight: bold;
- background-color: @attributeBorderColor;
- color: rgba(255, 255, 255, 1);
+ font-weight: bold;
+ background-color: @attributeBorderColor;
+ color: rgba(255, 255, 255, 1);
- //font-size: 1.0rem;
- height: 2.5rem;
- }
+ //font-size: 1.0rem;
+ height: 2.5rem;
+ }
- .attribute-main {
- padding: 0.2rem;
+ .attribute-main {
+ padding: 0.2rem;
- .attribute-main-value {
- text-align: center;
- vertical-align: middle;
- font-size: 2rem;
- }
+ .attribute-main-value {
+ text-align: center;
+ vertical-align: middle;
+ font-size: 2rem;
+ }
- .attribute-main-bonus {
- text-align: center;
- vertical-align: middle;
- font-size: 1rem;
- }
- }
+ .attribute-main-bonus {
+ text-align: center;
+ vertical-align: middle;
+ font-size: 1rem;
+ }
+ }
- .attribute-footer {
- display: flex;
- flex-direction: row;
- gap: 0.3rem;
- padding: 0.3rem;
- background-color: @attributeBorderColor;
+ .attribute-footer {
+ display: flex;
+ flex-direction: row;
+ gap: 0.3rem;
+ padding: 0.3rem;
+ background-color: @attributeBorderColor;
- input {
- flex-grow: 1;
- text-align: center;
- background-color: rgba(255, 255, 255, 0.8);
- }
- }
- }
- }
+ input {
+ flex-grow: 1;
+ text-align: center;
+ background-color: rgba(255, 255, 255, 0.8);
+ }
+ }
+ }
+ }
}
diff --git a/source/style/item-sheet.less b/source/style/item-sheet.less
index 57133d6..87a62fa 100644
--- a/source/style/item-sheet.less
+++ b/source/style/item-sheet.less
@@ -1,58 +1,59 @@
// main: midgard5.less
-.midgard5.sheet.item {
- form {
- display: flex;
- flex-direction: column;
- }
- .sheet-content {
- height: 100%;
- display: flex;
- flex-direction: column;
- .editor {
- height: 100%;
- }
- }
- .item-img {
- height: 64px;
- width: 64px;
- }
+.midgard5.sheet.item {
+ form {
+ display: flex;
+ flex-direction: column;
+ }
+ .sheet-content {
+ height: 100%;
+ display: flex;
+ flex-direction: column;
+ .editor {
+ height: 100%;
+ }
+ }
+ .item-img {
+ height: 64px;
+ width: 64px;
+ }
- td, th {
- padding: 0 0.5rem 0 0.5rem;
+ td,
+ th {
+ padding: 0 0.5rem 0 0.5rem;
- &.center {
- text-align: center;
- }
+ &.center {
+ text-align: center;
+ }
- &.fixed-value {
- width: 3rem;
- text-align: center;
- }
- }
+ &.fixed-value {
+ width: 3rem;
+ text-align: center;
+ }
+ }
- table.rolls-table {
- .col-enabled {
- width: 3rem;
- text-align: center;
- }
+ table.rolls-table {
+ .col-enabled {
+ width: 3rem;
+ text-align: center;
+ }
- .col-create {
- width: 3rem;
- text-align: center;
-
- button {
- background: rgba(255, 255, 255, 0.5);
- }
- }
+ .col-create {
+ width: 3rem;
+ text-align: center;
- .col-delete {
- width: 3rem;
- text-align: center;
- }
+ button {
+ background: rgba(255, 255, 255, 0.5);
+ }
+ }
- .col-label {
- width: 6rem;
- }
- }
+ .col-delete {
+ width: 3rem;
+ text-align: center;
+ }
+
+ .col-label {
+ width: 6rem;
+ }
+ }
}
diff --git a/source/style/roll.less b/source/style/roll.less
index eb75e84..d6a0dd6 100644
--- a/source/style/roll.less
+++ b/source/style/roll.less
@@ -1,84 +1,84 @@
.m5-roll {
- .roll-title {
- text-align: center;
- vertical-align: middle;
- padding: 0.3rem 0 0.1rem 0;
- font-weight: bold;
- font-size: 1.3rem;
- }
+ .roll-title {
+ text-align: center;
+ vertical-align: middle;
+ padding: 0.3rem 0 0.1rem 0;
+ font-weight: bold;
+ font-size: 1.3rem;
+ }
- .roll-description-header {
- text-align: start;
- vertical-align: middle;
- padding: 0.3rem 0 0.1rem 0;
- font-weight: bold;
- font-size: 1.2rem;
- }
+ .roll-description-header {
+ text-align: start;
+ vertical-align: middle;
+ padding: 0.3rem 0 0.1rem 0;
+ font-weight: bold;
+ font-size: 1.2rem;
+ }
- .roll-spell-details {
- text-align: right;
- padding-right: 1rem;
- font-weight: bold;
- }
+ .roll-spell-details {
+ text-align: right;
+ padding-right: 1rem;
+ font-weight: bold;
+ }
- .roll-result {
- text-align: right;
- padding-right: 1rem;
- font-weight: bold;
+ .roll-result {
+ text-align: right;
+ padding-right: 1rem;
+ font-weight: bold;
- display: flex;
- flex-direction: row;
+ display: flex;
+ flex-direction: row;
- .roll-total {
- width: 100%;
- }
+ .roll-total {
+ width: 100%;
+ }
- .roll-detail {
- width: 100%;
- margin-left: -100%;
- }
- }
+ .roll-detail {
+ width: 100%;
+ margin-left: -100%;
+ }
+ }
- .roll-row:not(:hover) {
- .roll-total {
- visibility: visible;
- }
- .roll-detail {
- visibility: hidden;
- }
- }
+ .roll-row:not(:hover) {
+ .roll-total {
+ visibility: visible;
+ }
+ .roll-detail {
+ visibility: hidden;
+ }
+ }
- .roll-row:hover {
- .roll-total {
- visibility: hidden;
- }
- .roll-detail {
- visibility: visible;
- }
- }
+ .roll-row:hover {
+ .roll-total {
+ visibility: hidden;
+ }
+ .roll-detail {
+ visibility: visible;
+ }
+ }
- .roll-ew-result-fumble {
- background-color: rgb(202, 54, 54, 0.5);
- color: rgb(255, 255, 255);
- }
+ .roll-ew-result-fumble {
+ background-color: rgb(202, 54, 54, 0.5);
+ color: rgb(255, 255, 255);
+ }
- .roll-ew-result-critical {
- background-color: rgb(202, 197, 54, 0.5);
- color: rgb(0, 0, 0);
- }
+ .roll-ew-result-critical {
+ background-color: rgb(202, 197, 54, 0.5);
+ color: rgb(0, 0, 0);
+ }
- .roll-ew-result-high {
- background-color: rgb(54, 138, 202, 0.5);
- color: rgb(255, 255, 255);
- }
+ .roll-ew-result-high {
+ background-color: rgb(54, 138, 202, 0.5);
+ color: rgb(255, 255, 255);
+ }
- .roll-ew-result-fail {
- background-color: rgb(117, 63, 131, 0.5);
- color: rgb(255, 255, 255);
- }
+ .roll-ew-result-fail {
+ background-color: rgb(117, 63, 131, 0.5);
+ color: rgb(255, 255, 255);
+ }
- .roll-ew-result-pass {
- background-color: rgb(54, 202, 88, 0.5);
- color: rgb(0, 0, 0);
- }
+ .roll-ew-result-pass {
+ background-color: rgb(54, 202, 88, 0.5);
+ color: rgb(0, 0, 0);
+ }
}
diff --git a/source/system.json b/source/system.json
index 829b8ca..7f7cb5e 100644
--- a/source/system.json
+++ b/source/system.json
@@ -1,165 +1,150 @@
{
- "id": "midgard5",
- "name": "midgard5",
- "title": "Midgard 5. Edition",
- "description": "The German RPG Midgard 5. Edition",
- "version": "2.4.0",
- "compatibility": {
- "minimum": "10",
- "verified": "11",
- "maximum": "11"
- },
- "authors": [
- {"name": "Byroks"},
- {"name": "Le-Frique"},
- {"name": "Oskaloq"}
- ],
- "scripts": ["bundle.js"],
- "styles": ["bundle.css"],
- "packs": [
- {
- "name": "blaupause-spielfiguren",
- "label": "Blaupausen für Spielfiguren",
- "system": "midgard5",
- "path": "./packs/actors/blaupause-spielfiguren.db",
- "type": "Actor"
- },
- {
- "name": "makros-standardwurfel",
- "label": "Standardwürfel",
- "system": "midgard5",
- "path": "./packs/macros/makros-standardwurfel.db",
- "type": "Macro"
- },
- {
- "name": "makros-kritische-ereignisse",
- "label": "Makros Kritische Ereignisse",
- "system": "midgard5",
- "path": "./packs/macros/makros-kritische-ereignisse.db",
- "type": "Macro"
- },
- {
- "name": "tabellen-kritische-ereignisse",
- "label": "Tabellen Kritische Ereignisse",
- "system": "midgard5",
- "path": "./packs/rolltables/tabellen-kritische-ereignisse.db",
- "type": "RollTable"
- },
- {
- "name": "ausruestung",
- "label": "Ausrüstung",
- "system": "midgard5",
- "path": "./packs/items/ausruestung.db",
- "type": "Item"
- },
- {
- "name": "fertigkeiten",
- "label": "Fertigkeiten",
- "system": "midgard5",
- "path": "./packs/items/fertigkeiten.db",
- "type": "Item"
- },
- {
- "name": "kampf",
- "label": "Kampf",
- "system": "midgard5",
- "path": "./packs/items/kampf.db",
- "type": "Item"
- },
- {
- "name": "kampfzustaende",
- "label": "Kampfzustände",
- "system": "midgard5",
- "path": "./packs/items/kampfzustaende.db",
- "type": "Item"
- },
- {
- "name": "verletzungen",
- "label": "Verletzungen",
- "system": "midgard5",
- "path": "./packs/items/verletzungen.db",
- "type": "Item"
- },
- {
- "name": "ruestkammer",
- "label": "Rüstkammer",
- "system": "midgard5",
- "path": "./packs/items/ruestkammer.db",
- "type": "Item"
- },
- {
- "name": "waffenkammer",
- "label": "Waffenkammer",
- "system": "midgard5",
- "path": "./packs/items/waffenkammer.db",
- "type": "Item"
- },
- {
- "name": "zauberwirkungen",
- "label": "Zauberwirkungen",
- "system": "midgard5",
- "path": "./packs/items/zauberwirkungen.db",
- "type": "Item"
- }
- ],
- "packFolders": [
- {
- "name": "Midgard 5",
- "sorting": "a",
- "color": "#0000FF",
- "packs": [
- "blaupause-spielfiguren",
- "tabellen-kritische-ereignisse",
- "makros-kritische-ereignisse",
- "makros-standardwurfel"
- ],
- "folders": [
- {
- "name": "Ausrüstung",
- "sorting": "a",
- "color": "#008000",
- "packs": [
- "ausruestung",
- "ruestkammer",
- "waffenkammer"
- ]
- },
- {
- "name": "Effekte",
- "sorting": "a",
- "color": "#800080",
- "packs": [
- "kampfzustaende",
- "verletzungen",
- "zauberwirkungen"
- ]
- },
- {
- "name": "Fähigkeiten",
- "sorting": "a",
- "color": "#800000",
- "packs": [
- "fertigkeiten",
- "kampf"
- ]
- }
- ]
- }
- ],
- "languages": [
- {
- "lang": "de",
- "name": "Deutsch",
- "path": "lang/de.json"
- }
- ],
- "gridDistance": 1,
- "gridUnits": "m",
- "primaryTokenAttribute": "lp",
- "secondaryTokenAttribute": "ap",
- "url": "https://git.byroks.de/MidgardVTT-Entwicklung/foundry-vtt-system-midgard5",
- "manifest": "https://git.byroks.de/MidgardVTT-Entwicklung/foundry-vtt-system-midgard5/releases/download/v2.4.0/system.json",
- "download": "https://git.byroks.de/MidgardVTT-Entwicklung/foundry-vtt-system-midgard5/releases/download/v2.4.0/midgard5-v2.4.0.zip",
- "initiative": "@c.calc.attributes.gw.value",
- "license": "LICENSE.txt"
-}
\ No newline at end of file
+ "id": "midgard5",
+ "name": "midgard5",
+ "title": "Midgard 5. Edition",
+ "description": "The German RPG Midgard 5. Edition",
+ "version": "2.4.2",
+ "compatibility": {
+ "minimum": "10",
+ "verified": "11",
+ "maximum": "11"
+ },
+ "authors": [{ "name": "Byroks" }, { "name": "Le-Frique" }, { "name": "Oskaloq" }],
+ "scripts": ["bundle.js"],
+ "styles": ["bundle.css"],
+ "packs": [
+ {
+ "name": "blaupause-spielfiguren",
+ "label": "Blaupausen für Spielfiguren",
+ "system": "midgard5",
+ "path": "./packs/actors/blaupause-spielfiguren.db",
+ "type": "Actor"
+ },
+ {
+ "name": "makros-standardwurfel",
+ "label": "Standardwürfel",
+ "system": "midgard5",
+ "path": "./packs/macros/makros-standardwurfel.db",
+ "type": "Macro"
+ },
+ {
+ "name": "makros-kritische-ereignisse",
+ "label": "Makros Kritische Ereignisse",
+ "system": "midgard5",
+ "path": "./packs/macros/makros-kritische-ereignisse.db",
+ "type": "Macro"
+ },
+ {
+ "name": "tabellen-kritische-ereignisse",
+ "label": "Tabellen Kritische Ereignisse",
+ "system": "midgard5",
+ "path": "./packs/rolltables/tabellen-kritische-ereignisse.db",
+ "type": "RollTable"
+ },
+ {
+ "name": "ausruestung",
+ "label": "Ausrüstung",
+ "system": "midgard5",
+ "path": "./packs/items/ausruestung.db",
+ "type": "Item"
+ },
+ {
+ "name": "fertigkeiten",
+ "label": "Fertigkeiten",
+ "system": "midgard5",
+ "path": "./packs/items/fertigkeiten.db",
+ "type": "Item"
+ },
+ {
+ "name": "kampf",
+ "label": "Kampf",
+ "system": "midgard5",
+ "path": "./packs/items/kampf.db",
+ "type": "Item"
+ },
+ {
+ "name": "kampfzustaende",
+ "label": "Kampfzustände",
+ "system": "midgard5",
+ "path": "./packs/items/kampfzustaende.db",
+ "type": "Item"
+ },
+ {
+ "name": "verletzungen",
+ "label": "Verletzungen",
+ "system": "midgard5",
+ "path": "./packs/items/verletzungen.db",
+ "type": "Item"
+ },
+ {
+ "name": "ruestkammer",
+ "label": "Rüstkammer",
+ "system": "midgard5",
+ "path": "./packs/items/ruestkammer.db",
+ "type": "Item"
+ },
+ {
+ "name": "waffenkammer",
+ "label": "Waffenkammer",
+ "system": "midgard5",
+ "path": "./packs/items/waffenkammer.db",
+ "type": "Item"
+ },
+ {
+ "name": "zauberwirkungen",
+ "label": "Zauberwirkungen",
+ "system": "midgard5",
+ "path": "./packs/items/zauberwirkungen.db",
+ "type": "Item"
+ }
+ ],
+ "packFolders": [
+ {
+ "name": "Midgard 5",
+ "sorting": "a",
+ "color": "#0000FF",
+ "packs": [
+ "blaupause-spielfiguren",
+ "tabellen-kritische-ereignisse",
+ "makros-kritische-ereignisse",
+ "makros-standardwurfel"
+ ],
+ "folders": [
+ {
+ "name": "Ausrüstung",
+ "sorting": "a",
+ "color": "#008000",
+ "packs": ["ausruestung", "ruestkammer", "waffenkammer"]
+ },
+ {
+ "name": "Effekte",
+ "sorting": "a",
+ "color": "#800080",
+ "packs": ["kampfzustaende", "verletzungen", "zauberwirkungen"]
+ },
+ {
+ "name": "Fähigkeiten",
+ "sorting": "a",
+ "color": "#800000",
+ "packs": ["fertigkeiten", "kampf"]
+ }
+ ]
+ }
+ ],
+ "languages": [
+ {
+ "lang": "de",
+ "name": "Deutsch",
+ "path": "lang/de.json"
+ }
+ ],
+ "gridDistance": 1,
+ "gridUnits": "m",
+ "primaryTokenAttribute": "lp",
+ "secondaryTokenAttribute": "ap",
+ "url": "https://git.byroks.de/MidgardVTT-Entwicklung/foundry-vtt-system-midgard5",
+ "manifest": "https://git.byroks.de/MidgardVTT-Entwicklung/foundry-vtt-system-midgard5/releases/download/v2.4.2/system.json",
+ "download": "https://git.byroks.de/MidgardVTT-Entwicklung/foundry-vtt-system-midgard5/releases/download/v2.4.2/midgard5-v2.4.2.zip",
+ "initiative": "@c.calc.attributes.gw.value",
+ "license": "LICENSE.txt"
+}
diff --git a/source/template.json b/source/template.json
index 5dd1d3b..533c5bc 100644
--- a/source/template.json
+++ b/source/template.json
@@ -1,442 +1,698 @@
{
- "Actor": {
- "types": ["character"],
- "templates": {
- "characterDescription": {
- "info": {
- "description": "",
- "background": "",
- "class": "",
- "race": "",
- "magicUsing": false,
- "showAllItems": false,
- "gender": "",
- "weight": "",
- "height": "",
- "shape": "",
- "age": "",
- "caste": "",
- "occupation": "",
- "origin": "",
- "faith": "",
- "gold": 0,
- "silver": 0,
- "copper": 0
- }
- },
- "characterBars": {
- "lp": {
- "value": 15,
- "min": 0,
- "max": 15
- },
- "ap": {
- "value": 20,
- "min": 0,
- "max": 20
- }
- },
- "characterHeader": {
- "es": 0,
- "ep": 0,
- "gg": 0,
- "sg": 0,
- "gp": 0
- },
- "attributes": {
- "attributes": {
- "st": { "value": 50, "bonus": 0 },
- "gs": { "value": 50, "bonus": 0 },
- "gw": { "value": 50, "bonus": 0 },
- "ko": { "value": 50, "bonus": 0 },
- "in": { "value": 50, "bonus": 0 },
- "zt": { "value": 50, "bonus": 0 },
- "au": { "value": 50, "bonus": 0 },
- "pa": { "value": 50, "bonus": 0 },
- "wk": { "value": 50, "bonus": 0 }
- }
- },
- "skills": {
- "skills": {
- "general": {
- "abrichten": { "fw": 0, "attribute": "pa", "initial": 8, "pp": 0 },
- "akrobatik": { "fw": 6, "attribute": "gw", "initial": 8, "pp": 0 },
- "alchimie": { "fw": 0, "attribute": "in", "initial": 8, "pp": 0 },
- "anfuehren": { "fw": 6, "attribute": "pa", "initial": 8, "pp": 0 },
- "askese": { "fw": 0, "attribute": "wk", "initial": 8, "pp": 0 },
- "astrologie": { "fw": 0, "attribute": "in", "initial": 8, "pp": 0 },
- "athletik": { "fw": 0, "attribute": "st", "initial": 8, "pp": 0 },
- "balancieren": { "fw": 6, "attribute": "gw", "initial": 8, "pp": 0 },
- "beidhaendigerKampf": { "fw": 0, "attribute": "gs", "initial": 8, "pp": 0 },
- "beredsamkeit": { "fw": 3, "attribute": "pa", "initial": 8, "pp": 0 },
- "bergreiten": { "fw": 0, "attribute": "gw", "initial": 12, "pp": 0 },
- "betaeuben": { "fw": 6, "attribute": "gs", "initial": 8, "pp": 0 },
- "betaeubungsgriff": { "fw": 0, "attribute": "in", "initial": 8, "pp": 0 },
- "bootfahren": { "fw": 3, "attribute": "gs", "initial": 8, "pp": 0 },
- "dickhaeuterLenken": { "fw": 0, "attribute": "gs", "initial": 8, "pp": 0 },
- "ersteHilfe": { "fw": 0, "attribute": "gs", "initial": 8, "pp": 0 },
- "etikette": { "fw": 0, "attribute": "in", "initial": 8, "pp": 0 },
- "fallenEntdecken": { "fw": 0, "attribute": "in", "initial": 8, "pp": 0 },
- "fallenmechanik": { "fw": 0, "attribute": "gs", "initial": 8, "pp": 0 },
- "faelschen": { "fw": 0, "attribute": "gs", "initial": 12, "pp": 0 },
- "fangen": { "fw": 6, "attribute": "gs", "initial": 8, "pp": 0 },
- "fechten": { "fw": 0, "attribute": "gs", "initial": 8, "pp": 0 },
- "feueralchimie": { "fw": 0, "attribute": "gs", "initial": 8, "pp": 0 },
- "gassenwissen": { "fw": 0, "attribute": "in", "initial": 8, "pp": 0 },
- "gaukeln": { "fw": 0, "attribute": "gs", "initial": 12, "pp": 0 },
- "gelaendelauf": { "fw": 6, "attribute": "gw", "initial": 8, "pp": 0 },
- "geraetekunde": { "fw": 0, "attribute": "in", "initial": 8, "pp": 0 },
- "geschaeftssinn": { "fw": 0, "attribute": "in", "initial": 8, "pp": 0 },
- "gluecksspiel": { "fw": 0, "attribute": "gs", "initial": 12, "pp": 0 },
- "heilkunde": { "fw": 0, "attribute": "in", "initial": 8, "pp": 0 },
- "kampfInVollruestung": { "fw": 0, "attribute": "st", "initial": 5, "pp": 0 },
- "kampfInSchlachtreihe": { "fw": 0, "attribute": "gs", "initial": 8, "pp": 0 },
- "kampfkunst": { "fw": 0, "attribute": "gw", "initial": 8, "pp": 0 },
- "kido": { "fw": 0, "attribute": "zt", "initial": 8, "pp": 0 },
- "klettern": { "fw": 6, "attribute": "st", "initial": 8, "pp": 0 },
- "landeskunde": { "fw": 6, "attribute": "in", "initial": 8, "pp": 0 },
- "laufen": { "fw": 0, "attribute": "ko", "initial": 8, "pp": 0 },
- "lesenVonZauberschrift": { "fw": 0, "attribute": "in", "initial": 8, "pp": 0 },
- "lesenVonZauberrunen": { "fw": 0, "attribute": "in", "initial": 8, "pp": 0 },
- "meditieren": { "fw": 0, "attribute": "wk", "initial": 8, "pp": 0 },
- "menschenkenntnis": { "fw": 3, "attribute": "in", "initial": 8, "pp": 0 },
- "meucheln": { "fw": 0, "attribute": "gs", "initial": 8, "pp": 0 },
- "musizieren": { "fw": 0, "attribute": "gs", "initial": 12, "pp": 0 },
- "ninjutsu": { "fw": 0, "attribute": "gw", "initial": 8, "pp": 0 },
- "naturkunde": { "fw": 0, "attribute": "in", "initial": 8, "pp": 0 },
- "orakelkunst": { "fw": 0, "attribute": "in", "initial": 8, "pp": 0 },
- "pflanzenkunde": { "fw": 0, "attribute": "in", "initial": 8, "pp": 0 },
- "raunen": { "fw": 0, "attribute": "zt", "initial": 8, "pp": 0 },
- "reiten": { "fw": 6, "attribute": "gw", "initial": 12, "pp": 0 },
- "reiterkampf": { "fw": 0, "attribute": "gw", "initial": 8, "pp": 0 },
- "rutengehen": { "fw": 0, "attribute": "in", "initial": 8, "pp": 0 },
- "scharfschiessen": { "fw": 0, "attribute": "gs", "initial": 8, "pp": 0 },
- "schiesskunst": { "fw": 0, "attribute": "gs", "initial": 8, "pp": 0 },
- "schmerzErtragen": { "fw": 0, "attribute": "wk", "initial": 8, "pp": 0 },
- "selbstkontrolle": { "fw": 0, "attribute": "wk", "initial": 12, "pp": 0 },
- "speerfechten": { "fw": 0, "attribute": "gs", "initial": 5, "pp": 0 },
- "schleichen": { "fw": 3, "attribute": "gw", "initial": 8, "pp": 0 },
- "schloesserOeffnen": { "fw": 0, "attribute": "gs", "initial": 8, "pp": 0 },
- "schwimmen": { "fw": 3, "attribute": "gw", "initial": 8, "pp": 0 },
- "singen": { "fw": 0, "attribute": "pa", "initial": 8, "pp": 0 },
- "seilkunst": { "fw": 3, "attribute": "gs", "initial": 8, "pp": 0 },
- "skifahren": { "fw": 6, "attribute": "gw", "initial": 12, "pp": 0 },
- "spinnengang": { "fw": 0, "attribute": "gw", "initial": 8, "pp": 0 },
- "spurensuche": { "fw": 0, "attribute": "in", "initial": 8, "pp": 0 },
- "stehlen": { "fw": 3, "attribute": "gs", "initial": 8, "pp": 0 },
- "tarnen": { "fw": 3, "attribute": "gw", "initial": 8, "pp": 0 },
- "thaumagraphie": { "fw": 0, "attribute": "zt", "initial": 8, "pp": 0 },
- "thaumalogie": { "fw": 0, "attribute": "in", "initial": 8, "pp": 0 },
- "taitschi": { "fw": 0, "attribute": "wk", "initial": 8, "pp": 0 },
- "tauchen": { "fw": 6, "attribute": "ko", "initial": 8, "pp": 0 },
- "tanzen": { "fw": 6, "attribute": "ko", "initial": 8, "pp": 0 },
- "tierkunde": { "fw": 0, "attribute": "in", "initial": 8, "pp": 0 },
- "ueberleben": { "fw": 6, "attribute": "in", "initial": 8, "pp": 0 },
- "verfuehren": { "fw": 3, "attribute": "pa", "initial": 8, "pp": 0 },
- "verhoeren": { "fw": 3, "attribute": "pa", "initial": 8, "pp": 0 },
- "verstellen": { "fw": 3, "attribute": "pa", "initial": 8, "pp": 0 },
- "volkstanz": { "fw": 3, "attribute": "gw", "initial": 8, "pp": 0 },
- "wagenlenken": { "fw": 3, "attribute": "gs", "initial": 8, "pp": 0 },
- "wahrsagen": { "fw": 0, "attribute": "zt", "initial": 8, "pp": 0 },
- "wasserkampf": { "fw": 0, "attribute": "gw", "initial": 8, "pp": 0 },
- "zauberkunde": { "fw": 0, "attribute": "in", "initial": 8, "pp": 0 }
- }
- }
- },
- "gear": {
- "gear": {
- }
- }
- },
- "character": {
- "templates": ["characterBars", "attributes", "characterDescription", "characterHeader", "skills", "gear"],
- "calc": {}
- }
- },
- "Item": {
- "types": ["skill", "weapon", "defensiveWeapon", "armor", "spell", "kampfkunst", "item", "effect", "container"],
- "templates": {
- "itemDescription": {
- "description": ""
- },
- "stats": {
- "stats": {
- "damageBonus": 0,
- "attackBonus": 0,
- "defenseBonus": 0,
- "movementBonus": 0,
- "resistanceMind": 0,
- "resistanceBody": 0,
- "spellBonus": 0
- }
- },
- "attributeSelection": {
- "attributes": {
- "st": { "short": "midgard5.actor-st", "long": "midgard5.actor-st-long" },
- "gs": { "short": "midgard5.actor-gs", "long": "midgard5.actor-gs-long" },
- "gw": { "short": "midgard5.actor-gw", "long": "midgard5.actor-gw-long" },
- "ko": { "short": "midgard5.actor-ko", "long": "midgard5.actor-ko-long" },
- "in": { "short": "midgard5.actor-in", "long": "midgard5.actor-in-long" },
- "zt": { "short": "midgard5.actor-zt", "long": "midgard5.actor-zt-long" },
- "au": { "short": "midgard5.actor-au", "long": "midgard5.actor-au-long" },
- "pa": { "short": "midgard5.actor-pa", "long": "midgard5.actor-pa-long" },
- "wk": { "short": "midgard5.actor-wk", "long": "midgard5.actor-wk-long" }
- }
- },
- "attributeMod": {
- "attributeMod": {
- "st": 0,
- "gs": 0,
- "gw": 0,
- "ko": 0,
- "in": 0,
- "zt": 0,
- "au": 0,
- "pa": 0,
- "wk": 0
- }
- },
- "rollable": {
- "rolls": {
- "formulas": {},
- "output": ""
- }
- },
- "equippable": {
- "equippable": false,
- "equipped": false
- },
- "valuable": {
- "valuable": false,
- "item-wealth": true
- },
- "hoarded": {
- "hoarded": false,
- "inHoard": true
- },
- "physical": {
- "value": 0,
- "weight": 0,
- "containerId": "",
- "magic": false
- },
- "durationSelection": {
- "durationSelection": {
- "round": "midgard5.time-round",
- "minute": "midgard5.time-minute",
- "hour": "midgard5.time-hour",
- "limitless": "midgard5.time-limitless"
- }
- },
- "spellSelection": {
- "spellProcessSelection": {
- "none": "midgard5.spell-process-none",
- "beherrschen": "midgard5.spell-process-beherrschen",
- "bewegen": "midgard5.spell-process-bewegen",
- "erkennen": "midgard5.spell-process-erkennen",
- "erschaffen": "midgard5.spell-process-erschaffen",
- "formen": "midgard5.spell-process-formen",
- "veraendern": "midgard5.spell-process-veraendern",
- "zerstoeren": "midgard5.spell-process-zerstoeren",
- "wundertat": "midgard5.spell-process-wundertat",
- "dweomer": "midgard5.spell-process-dweomer",
- "zauberlied": "midgard5.spell-process-zauberlied",
- "salz": "midgard5.spell-process-salz",
- "thaumagraphie": "midgard5.spell-process-thaumagraphie",
- "beschwoeren": "midgard5.spell-process-beschwoeren",
- "nekromantie": "midgard5.spell-process-nekromantie",
- "thaumatherapie": "midgard5.spell-process-thaumatherapie",
- "zaubermittel": "midgard5.spell-process-zaubermittel",
- "zauberschutz": "midgard5.spell-process-zauberschutz"
- },
- "spellTypeSelection": {
- "gedanke": "midgard5.spell-type-gedanke",
- "geste": "midgard5.spell-type-geste",
- "wort": "midgard5.spell-type-wort"
- },
- "spellTargetSelection": {
- "umgebung": "midgard5.spell-target-umgebung",
- "geist": "midgard5.spell-target-geist",
- "koerper": "midgard5.spell-target-koerper"
- }
- },
- "kampfkunstSelection": {
- "kampfkunstTypeSelection": {
- "angriff": "midgard5.kampfkunst-type-angriff",
- "verteidigung": "midgard5.kampfkunst-type-verteidigung",
- "finte": "midgard5.kampfkunst-type-finte",
- "geist": "midgard5.kampfkunst-type-geist",
- "schießkunst": "midgard5.kampfkunst-type-schießkunst",
- "fechten": "midgard5.kampfkunst-type-fechten"
- },
- "kidoTypeSelection": {
- "angriff": "midgard5.kido-type-angriff",
- "verteidigung": "midgard5.kido-type-verteidigung",
- "finte": "midgard5.kido-type-finte",
- "leib": "midgard5.kido-type-leib"
- },
- "kampfkunstVarianteSelection": {
- "anstuermen": "midgard5.kampfkunst-variante-anstuermen",
- "attackieren": "midgard5.kampfkunst-variante-attackieren",
- "entwaffnen": "midgard5.kampfkunst-variante-entwaffnen"
- },
- "kidoVarianteSelection": {
- "none": "midgard5.spell-process-none",
- "anspringen": "midgard5.kido-variante-anspringen",
- "attackieren": "midgard5.kido-variante-attackieren",
- "entwaffnen": "midgard5.kido-variante-entwaffnen",
- "werfen": "midgard5.kido-variante-werfen",
- "ausweichen": "midgard5.kido-variante-ausweichen",
- "blockieren": "midgard5.kido-variante-blockieren",
- "bewegen": "midgard5.kido-variante-bewegen",
- "kontrollieren": "midgard5.kido-variante-kontrollieren"
- }
- }
- },
- "skill": {
- "templates": ["itemDescription", "attributeSelection"],
- "fw": 0,
- "attribute": "st",
- "skill": "",
- "type": "general",
- "rolls": {
- "formulas": {
- "0": {
- "formula": "1d20 + @i.calc.fw + @i.calc.bonus",
- "label": "EW",
- "enabled": true
- }
- },
- "output": ""
- },
- "pp": 0,
- "calc": {}
- },
- "item": {
- "templates": ["itemDescription", "equippable", "physical","valuable","hoarded"],
- "rolls": {
- "formulas": {},
- "output": ""
- },
- "mods": {},
- "calc": {}
- },
- "container": {
- "templates": ["itemDescription", "equippable", "physical"],
- "rolls": {
- "formulas": {},
- "output": ""
- },
- "mods": {},
- "calc": {}
- },
- "effect": {
- "templates": ["itemDescription", "equippable", "physical", "durationSelection"],
- "rolls": {
- "formulas": {},
- "output": ""
- },
- "mods": {},
- "calc": {}
- },
- "weapon": {
- "templates": ["itemDescription", "stats", "equippable", "physical","valuable","hoarded"],
- "special": false,
- "ranged": false,
- "valuable": false,
- "hoarded": false,
- "skillId": "",
- "damageBase": "1d6",
- "rolls": {
- "formulas": {
- "0": {
- "formula": "1d20 + @i.calc.fw + @i.calc.bonus + @i.calc.special + @c.calc.stats.attackBonus.value + @i.stats.attackBonus",
- "label": "Angriff",
- "enabled": true
- },
- "1": {
- "formula": "@i.damageBase + @i.stats.damageBonus + @c.calc.stats.damageBonus.value",
- "label": "Schaden",
- "enabled": true
- }
- },
- "output": ""
- },
- "calc": {}
- },
- "defensiveWeapon": {
- "templates": ["itemDescription", "stats", "equippable", "physical","valuable","hoarded"],
- "special": false,
- "valuable": false,
- "hoarded": false,
- "skillId": "",
- "rolls": {
- "formulas": {
- "0": {
- "formula": "1d20 + @i.calc.fw + @i.calc.bonus + @i.calc.special + @c.calc.stats.defense.value + @c.calc.stats.defenseBonus.value + @i.stats.defenseBonus",
- "label": "Abwehr",
- "enabled": true
- }
- },
- "output": ""
- },
- "calc": {}
- },
- "armor": {
- "templates": ["itemDescription", "stats", "equippable", "attributeMod", "physical","valuable","hoarded"],
- "lpProtection": 0,
- "apProtection": 0,
- "valuable": false,
- "hoarded": false,
- "rolls": {
- "formulas": {},
- "output": ""
- },
- "calc": {},
- "mods": {}
- },
- "spell": {
- "templates": ["itemDescription", "spellSelection"],
- "bonus": 0,
- "type": "",
- "process": "",
- "ap": "",
- "castDuration": "",
- "range": "",
- "effectTarget": "",
- "effectArea": "",
- "effectDuration": "",
- "origin": "",
- "rolls": {
- "formulas": {
- "0": {
- "formula": "1d20 + @c.calc.stats.spellCasting.value + @i.bonus",
- "label": "Zaubern",
- "enabled": true
- }
- },
- "output": ""
- },
- "calc": {}
- },
- "kampfkunst": {
- "templates": ["itemDescription", "kampfkunstSelection"],
- "bonus": 0,
- "type": "",
- "variante": "",
- "isKido": false,
- "ap": "",
- "rolls": {
- "formulas": {
- "0": {
- "formula": "1d20 + @i.calc.ew + @i.bonus",
- "label": "Kampfkunst",
- "enabled": true
- }
- },
- "output": ""
- },
- "calc": {}
- }
- }
+ "Actor": {
+ "types": ["character"],
+ "templates": {
+ "characterDescription": {
+ "info": {
+ "description": "",
+ "background": "",
+ "class": "",
+ "race": "",
+ "magicUsing": false,
+ "showAllItems": false,
+ "gender": "",
+ "weight": "",
+ "height": "",
+ "shape": "",
+ "age": "",
+ "caste": "",
+ "occupation": "",
+ "origin": "",
+ "faith": "",
+ "gold": 0,
+ "silver": 0,
+ "copper": 0
+ }
+ },
+ "characterBars": {
+ "lp": {
+ "value": 15,
+ "min": 0,
+ "max": 15
+ },
+ "ap": {
+ "value": 20,
+ "min": 0,
+ "max": 20
+ }
+ },
+ "characterHeader": {
+ "es": 0,
+ "ep": 0,
+ "gg": 0,
+ "sg": 0,
+ "gp": 0
+ },
+ "attributes": {
+ "attributes": {
+ "st": { "value": 50, "bonus": 0 },
+ "gs": { "value": 50, "bonus": 0 },
+ "gw": { "value": 50, "bonus": 0 },
+ "ko": { "value": 50, "bonus": 0 },
+ "in": { "value": 50, "bonus": 0 },
+ "zt": { "value": 50, "bonus": 0 },
+ "au": { "value": 50, "bonus": 0 },
+ "pa": { "value": 50, "bonus": 0 },
+ "wk": { "value": 50, "bonus": 0 }
+ }
+ },
+ "skills": {
+ "skills": {
+ "general": {
+ "abrichten": { "fw": 0, "attribute": "pa", "initial": 8, "pp": 0 },
+ "akrobatik": { "fw": 6, "attribute": "gw", "initial": 8, "pp": 0 },
+ "alchimie": { "fw": 0, "attribute": "in", "initial": 8, "pp": 0 },
+ "anfuehren": { "fw": 6, "attribute": "pa", "initial": 8, "pp": 0 },
+ "askese": { "fw": 0, "attribute": "wk", "initial": 8, "pp": 0 },
+ "astrologie": { "fw": 0, "attribute": "in", "initial": 8, "pp": 0 },
+ "athletik": { "fw": 0, "attribute": "st", "initial": 8, "pp": 0 },
+ "balancieren": {
+ "fw": 6,
+ "attribute": "gw",
+ "initial": 8,
+ "pp": 0
+ },
+ "beidhaendigerKampf": {
+ "fw": 0,
+ "attribute": "gs",
+ "initial": 8,
+ "pp": 0
+ },
+ "beredsamkeit": {
+ "fw": 3,
+ "attribute": "pa",
+ "initial": 8,
+ "pp": 0
+ },
+ "bergreiten": {
+ "fw": 0,
+ "attribute": "gw",
+ "initial": 12,
+ "pp": 0
+ },
+ "betaeuben": { "fw": 6, "attribute": "gs", "initial": 8, "pp": 0 },
+ "betaeubungsgriff": {
+ "fw": 0,
+ "attribute": "in",
+ "initial": 8,
+ "pp": 0
+ },
+ "bootfahren": { "fw": 3, "attribute": "gs", "initial": 8, "pp": 0 },
+ "dickhaeuterLenken": {
+ "fw": 0,
+ "attribute": "gs",
+ "initial": 8,
+ "pp": 0
+ },
+ "ersteHilfe": { "fw": 0, "attribute": "gs", "initial": 8, "pp": 0 },
+ "etikette": { "fw": 0, "attribute": "in", "initial": 8, "pp": 0 },
+ "fallenEntdecken": {
+ "fw": 0,
+ "attribute": "in",
+ "initial": 8,
+ "pp": 0
+ },
+ "fallenmechanik": {
+ "fw": 0,
+ "attribute": "gs",
+ "initial": 8,
+ "pp": 0
+ },
+ "faelschen": { "fw": 0, "attribute": "gs", "initial": 12, "pp": 0 },
+ "fangen": { "fw": 6, "attribute": "gs", "initial": 8, "pp": 0 },
+ "fechten": { "fw": 0, "attribute": "gs", "initial": 8, "pp": 0 },
+ "feueralchimie": {
+ "fw": 0,
+ "attribute": "gs",
+ "initial": 8,
+ "pp": 0
+ },
+ "gassenwissen": {
+ "fw": 0,
+ "attribute": "in",
+ "initial": 8,
+ "pp": 0
+ },
+ "gaukeln": { "fw": 0, "attribute": "gs", "initial": 12, "pp": 0 },
+ "gelaendelauf": {
+ "fw": 6,
+ "attribute": "gw",
+ "initial": 8,
+ "pp": 0
+ },
+ "geraetekunde": {
+ "fw": 0,
+ "attribute": "in",
+ "initial": 8,
+ "pp": 0
+ },
+ "geschaeftssinn": {
+ "fw": 0,
+ "attribute": "in",
+ "initial": 8,
+ "pp": 0
+ },
+ "gluecksspiel": {
+ "fw": 0,
+ "attribute": "gs",
+ "initial": 12,
+ "pp": 0
+ },
+ "heilkunde": { "fw": 0, "attribute": "in", "initial": 8, "pp": 0 },
+ "kampfInVollruestung": {
+ "fw": 0,
+ "attribute": "st",
+ "initial": 5,
+ "pp": 0
+ },
+ "kampfInSchlachtreihe": {
+ "fw": 0,
+ "attribute": "gs",
+ "initial": 8,
+ "pp": 0
+ },
+ "kampfkunst": { "fw": 0, "attribute": "gw", "initial": 8, "pp": 0 },
+ "kido": { "fw": 0, "attribute": "zt", "initial": 8, "pp": 0 },
+ "klettern": { "fw": 6, "attribute": "st", "initial": 8, "pp": 0 },
+ "landeskunde": {
+ "fw": 6,
+ "attribute": "in",
+ "initial": 8,
+ "pp": 0
+ },
+ "laufen": { "fw": 0, "attribute": "ko", "initial": 8, "pp": 0 },
+ "lesenVonZauberschrift": {
+ "fw": 0,
+ "attribute": "in",
+ "initial": 8,
+ "pp": 0
+ },
+ "lesenVonZauberrunen": {
+ "fw": 0,
+ "attribute": "in",
+ "initial": 8,
+ "pp": 0
+ },
+ "meditieren": { "fw": 0, "attribute": "wk", "initial": 8, "pp": 0 },
+ "menschenkenntnis": {
+ "fw": 3,
+ "attribute": "in",
+ "initial": 8,
+ "pp": 0
+ },
+ "meucheln": { "fw": 0, "attribute": "gs", "initial": 8, "pp": 0 },
+ "musizieren": {
+ "fw": 0,
+ "attribute": "gs",
+ "initial": 12,
+ "pp": 0
+ },
+ "ninjutsu": { "fw": 0, "attribute": "gw", "initial": 8, "pp": 0 },
+ "naturkunde": { "fw": 0, "attribute": "in", "initial": 8, "pp": 0 },
+ "orakelkunst": {
+ "fw": 0,
+ "attribute": "in",
+ "initial": 8,
+ "pp": 0
+ },
+ "pflanzenkunde": {
+ "fw": 0,
+ "attribute": "in",
+ "initial": 8,
+ "pp": 0
+ },
+ "raunen": { "fw": 0, "attribute": "zt", "initial": 8, "pp": 0 },
+ "reiten": { "fw": 6, "attribute": "gw", "initial": 12, "pp": 0 },
+ "reiterkampf": {
+ "fw": 0,
+ "attribute": "gw",
+ "initial": 8,
+ "pp": 0
+ },
+ "rutengehen": { "fw": 0, "attribute": "in", "initial": 8, "pp": 0 },
+ "scharfschiessen": {
+ "fw": 0,
+ "attribute": "gs",
+ "initial": 8,
+ "pp": 0
+ },
+ "schiesskunst": {
+ "fw": 0,
+ "attribute": "gs",
+ "initial": 8,
+ "pp": 0
+ },
+ "schmerzErtragen": {
+ "fw": 0,
+ "attribute": "wk",
+ "initial": 8,
+ "pp": 0
+ },
+ "selbstkontrolle": {
+ "fw": 0,
+ "attribute": "wk",
+ "initial": 12,
+ "pp": 0
+ },
+ "speerfechten": {
+ "fw": 0,
+ "attribute": "gs",
+ "initial": 5,
+ "pp": 0
+ },
+ "schleichen": { "fw": 3, "attribute": "gw", "initial": 8, "pp": 0 },
+ "schloesserOeffnen": {
+ "fw": 0,
+ "attribute": "gs",
+ "initial": 8,
+ "pp": 0
+ },
+ "schwimmen": { "fw": 3, "attribute": "gw", "initial": 8, "pp": 0 },
+ "singen": { "fw": 0, "attribute": "pa", "initial": 8, "pp": 0 },
+ "seilkunst": { "fw": 3, "attribute": "gs", "initial": 8, "pp": 0 },
+ "skifahren": { "fw": 6, "attribute": "gw", "initial": 12, "pp": 0 },
+ "spinnengang": {
+ "fw": 0,
+ "attribute": "gw",
+ "initial": 8,
+ "pp": 0
+ },
+ "spurensuche": {
+ "fw": 0,
+ "attribute": "in",
+ "initial": 8,
+ "pp": 0
+ },
+ "stehlen": { "fw": 3, "attribute": "gs", "initial": 8, "pp": 0 },
+ "tarnen": { "fw": 3, "attribute": "gw", "initial": 8, "pp": 0 },
+ "thaumagraphie": {
+ "fw": 0,
+ "attribute": "zt",
+ "initial": 8,
+ "pp": 0
+ },
+ "thaumalogie": {
+ "fw": 0,
+ "attribute": "in",
+ "initial": 8,
+ "pp": 0
+ },
+ "taitschi": { "fw": 0, "attribute": "wk", "initial": 8, "pp": 0 },
+ "tauchen": { "fw": 6, "attribute": "ko", "initial": 8, "pp": 0 },
+ "tanzen": { "fw": 6, "attribute": "ko", "initial": 8, "pp": 0 },
+ "tierkunde": { "fw": 0, "attribute": "in", "initial": 8, "pp": 0 },
+ "ueberleben": { "fw": 6, "attribute": "in", "initial": 8, "pp": 0 },
+ "verfuehren": { "fw": 3, "attribute": "pa", "initial": 8, "pp": 0 },
+ "verhoeren": { "fw": 3, "attribute": "pa", "initial": 8, "pp": 0 },
+ "verstellen": { "fw": 3, "attribute": "pa", "initial": 8, "pp": 0 },
+ "volkstanz": { "fw": 3, "attribute": "gw", "initial": 8, "pp": 0 },
+ "wagenlenken": {
+ "fw": 3,
+ "attribute": "gs",
+ "initial": 8,
+ "pp": 0
+ },
+ "wahrsagen": { "fw": 0, "attribute": "zt", "initial": 8, "pp": 0 },
+ "wasserkampf": {
+ "fw": 0,
+ "attribute": "gw",
+ "initial": 8,
+ "pp": 0
+ },
+ "zauberkunde": { "fw": 0, "attribute": "in", "initial": 8, "pp": 0 }
+ }
+ }
+ },
+ "gear": {
+ "gear": {}
+ }
+ },
+ "character": {
+ "templates": [
+ "characterBars",
+ "attributes",
+ "characterDescription",
+ "characterHeader",
+ "skills",
+ "gear"
+ ],
+ "calc": {}
+ }
+ },
+ "Item": {
+ "types": [
+ "skill",
+ "weapon",
+ "defensiveWeapon",
+ "armor",
+ "spell",
+ "kampfkunst",
+ "item",
+ "effect",
+ "container"
+ ],
+ "templates": {
+ "itemDescription": {
+ "description": ""
+ },
+ "stats": {
+ "stats": {
+ "damageBonus": 0,
+ "attackBonus": 0,
+ "defenseBonus": 0,
+ "movementBonus": 0,
+ "resistanceMind": 0,
+ "resistanceBody": 0,
+ "spellBonus": 0
+ }
+ },
+ "attributeSelection": {
+ "attributes": {
+ "st": {
+ "short": "midgard5.actor-st",
+ "long": "midgard5.actor-st-long"
+ },
+ "gs": {
+ "short": "midgard5.actor-gs",
+ "long": "midgard5.actor-gs-long"
+ },
+ "gw": {
+ "short": "midgard5.actor-gw",
+ "long": "midgard5.actor-gw-long"
+ },
+ "ko": {
+ "short": "midgard5.actor-ko",
+ "long": "midgard5.actor-ko-long"
+ },
+ "in": {
+ "short": "midgard5.actor-in",
+ "long": "midgard5.actor-in-long"
+ },
+ "zt": {
+ "short": "midgard5.actor-zt",
+ "long": "midgard5.actor-zt-long"
+ },
+ "au": {
+ "short": "midgard5.actor-au",
+ "long": "midgard5.actor-au-long"
+ },
+ "pa": {
+ "short": "midgard5.actor-pa",
+ "long": "midgard5.actor-pa-long"
+ },
+ "wk": {
+ "short": "midgard5.actor-wk",
+ "long": "midgard5.actor-wk-long"
+ }
+ }
+ },
+ "attributeMod": {
+ "attributeMod": {
+ "st": 0,
+ "gs": 0,
+ "gw": 0,
+ "ko": 0,
+ "in": 0,
+ "zt": 0,
+ "au": 0,
+ "pa": 0,
+ "wk": 0
+ }
+ },
+ "rollable": {
+ "rolls": {
+ "formulas": {},
+ "output": ""
+ }
+ },
+ "equippable": {
+ "equippable": false,
+ "equipped": false
+ },
+ "valuable": {
+ "valuable": false,
+ "item-wealth": true
+ },
+ "hoarded": {
+ "hoarded": false,
+ "inHoard": true
+ },
+ "physical": {
+ "value": 0,
+ "weight": 0,
+ "containerId": "",
+ "magic": false
+ },
+ "durationSelection": {
+ "durationSelection": {
+ "round": "midgard5.time-round",
+ "minute": "midgard5.time-minute",
+ "hour": "midgard5.time-hour",
+ "limitless": "midgard5.time-limitless"
+ }
+ },
+ "spellSelection": {
+ "spellProcessSelection": {
+ "none": "midgard5.spell-process-none",
+ "beherrschen": "midgard5.spell-process-beherrschen",
+ "bewegen": "midgard5.spell-process-bewegen",
+ "erkennen": "midgard5.spell-process-erkennen",
+ "erschaffen": "midgard5.spell-process-erschaffen",
+ "formen": "midgard5.spell-process-formen",
+ "veraendern": "midgard5.spell-process-veraendern",
+ "zerstoeren": "midgard5.spell-process-zerstoeren",
+ "wundertat": "midgard5.spell-process-wundertat",
+ "dweomer": "midgard5.spell-process-dweomer",
+ "zauberlied": "midgard5.spell-process-zauberlied",
+ "salz": "midgard5.spell-process-salz",
+ "thaumagraphie": "midgard5.spell-process-thaumagraphie",
+ "beschwoeren": "midgard5.spell-process-beschwoeren",
+ "nekromantie": "midgard5.spell-process-nekromantie",
+ "thaumatherapie": "midgard5.spell-process-thaumatherapie",
+ "zaubermittel": "midgard5.spell-process-zaubermittel",
+ "zauberschutz": "midgard5.spell-process-zauberschutz"
+ },
+ "spellTypeSelection": {
+ "gedanke": "midgard5.spell-type-gedanke",
+ "geste": "midgard5.spell-type-geste",
+ "wort": "midgard5.spell-type-wort"
+ },
+ "spellTargetSelection": {
+ "umgebung": "midgard5.spell-target-umgebung",
+ "geist": "midgard5.spell-target-geist",
+ "koerper": "midgard5.spell-target-koerper"
+ }
+ },
+ "kampfkunstSelection": {
+ "kampfkunstTypeSelection": {
+ "angriff": "midgard5.kampfkunst-type-angriff",
+ "verteidigung": "midgard5.kampfkunst-type-verteidigung",
+ "finte": "midgard5.kampfkunst-type-finte",
+ "geist": "midgard5.kampfkunst-type-geist",
+ "schießkunst": "midgard5.kampfkunst-type-schießkunst",
+ "fechten": "midgard5.kampfkunst-type-fechten"
+ },
+ "kidoTypeSelection": {
+ "angriff": "midgard5.kido-type-angriff",
+ "verteidigung": "midgard5.kido-type-verteidigung",
+ "finte": "midgard5.kido-type-finte",
+ "leib": "midgard5.kido-type-leib"
+ },
+ "kampfkunstVarianteSelection": {
+ "anstuermen": "midgard5.kampfkunst-variante-anstuermen",
+ "attackieren": "midgard5.kampfkunst-variante-attackieren",
+ "entwaffnen": "midgard5.kampfkunst-variante-entwaffnen"
+ },
+ "kidoVarianteSelection": {
+ "none": "midgard5.spell-process-none",
+ "anspringen": "midgard5.kido-variante-anspringen",
+ "attackieren": "midgard5.kido-variante-attackieren",
+ "entwaffnen": "midgard5.kido-variante-entwaffnen",
+ "werfen": "midgard5.kido-variante-werfen",
+ "ausweichen": "midgard5.kido-variante-ausweichen",
+ "blockieren": "midgard5.kido-variante-blockieren",
+ "bewegen": "midgard5.kido-variante-bewegen",
+ "kontrollieren": "midgard5.kido-variante-kontrollieren"
+ }
+ }
+ },
+ "skill": {
+ "templates": ["itemDescription", "attributeSelection"],
+ "fw": 0,
+ "attribute": "st",
+ "skill": "",
+ "type": "general",
+ "rolls": {
+ "formulas": {
+ "0": {
+ "formula": "1d20 + @i.calc.fw + @i.calc.bonus",
+ "label": "EW",
+ "enabled": true
+ }
+ },
+ "output": ""
+ },
+ "pp": 0,
+ "calc": {}
+ },
+ "item": {
+ "templates": [
+ "itemDescription",
+ "equippable",
+ "physical",
+ "valuable",
+ "hoarded"
+ ],
+ "rolls": {
+ "formulas": {},
+ "output": ""
+ },
+ "mods": {},
+ "calc": {}
+ },
+ "container": {
+ "templates": ["itemDescription", "equippable", "physical"],
+ "rolls": {
+ "formulas": {},
+ "output": ""
+ },
+ "mods": {},
+ "calc": {}
+ },
+ "effect": {
+ "templates": [
+ "itemDescription",
+ "equippable",
+ "physical",
+ "durationSelection"
+ ],
+ "rolls": {
+ "formulas": {},
+ "output": ""
+ },
+ "mods": {},
+ "calc": {}
+ },
+ "weapon": {
+ "templates": [
+ "itemDescription",
+ "stats",
+ "equippable",
+ "physical",
+ "valuable",
+ "hoarded"
+ ],
+ "special": false,
+ "ranged": false,
+ "valuable": false,
+ "hoarded": false,
+ "skillId": "",
+ "damageBase": "1d6",
+ "rolls": {
+ "formulas": {
+ "0": {
+ "formula": "1d20 + @i.calc.fw + @i.calc.bonus + @i.calc.special + @c.calc.stats.attackBonus.value + @i.stats.attackBonus",
+ "label": "Angriff",
+ "enabled": true
+ },
+ "1": {
+ "formula": "@i.damageBase + @i.stats.damageBonus + @c.calc.stats.damageBonus.value",
+ "label": "Schaden",
+ "enabled": true
+ }
+ },
+ "output": ""
+ },
+ "calc": {}
+ },
+ "defensiveWeapon": {
+ "templates": [
+ "itemDescription",
+ "stats",
+ "equippable",
+ "physical",
+ "valuable",
+ "hoarded"
+ ],
+ "special": false,
+ "valuable": false,
+ "hoarded": false,
+ "skillId": "",
+ "rolls": {
+ "formulas": {
+ "0": {
+ "formula": "1d20 + @i.calc.fw + @i.calc.bonus + @i.calc.special + @c.calc.stats.defense.value + @c.calc.stats.defenseBonus.value + @i.stats.defenseBonus",
+ "label": "Abwehr",
+ "enabled": true
+ }
+ },
+ "output": ""
+ },
+ "calc": {}
+ },
+ "armor": {
+ "templates": [
+ "itemDescription",
+ "stats",
+ "equippable",
+ "attributeMod",
+ "physical",
+ "valuable",
+ "hoarded"
+ ],
+ "lpProtection": 0,
+ "apProtection": 0,
+ "valuable": false,
+ "hoarded": false,
+ "rolls": {
+ "formulas": {},
+ "output": ""
+ },
+ "calc": {},
+ "mods": {}
+ },
+ "spell": {
+ "templates": ["itemDescription", "spellSelection"],
+ "bonus": 0,
+ "type": "",
+ "process": "",
+ "ap": "",
+ "castDuration": "",
+ "range": "",
+ "effectTarget": "",
+ "effectArea": "",
+ "effectDuration": "",
+ "origin": "",
+ "rolls": {
+ "formulas": {
+ "0": {
+ "formula": "1d20 + @c.calc.stats.spellCasting.value + @i.bonus",
+ "label": "Zaubern",
+ "enabled": true
+ }
+ },
+ "output": ""
+ },
+ "calc": {}
+ },
+ "kampfkunst": {
+ "templates": ["itemDescription", "kampfkunstSelection"],
+ "bonus": 0,
+ "type": "",
+ "variante": "",
+ "isKido": false,
+ "ap": "",
+ "rolls": {
+ "formulas": {
+ "0": {
+ "formula": "1d20 + @i.calc.ew + @i.bonus",
+ "label": "Kampfkunst",
+ "enabled": true
+ }
+ },
+ "output": ""
+ },
+ "calc": {}
+ }
+ }
}
diff --git a/source/utils/Logger.ts b/source/utils/Logger.ts
index e9dca56..ff3e35f 100644
--- a/source/utils/Logger.ts
+++ b/source/utils/Logger.ts
@@ -2,46 +2,49 @@ import Globals from "../Globals";
import Color from "color";
class Logger {
- // static class
- private constructor() {}
+ // static class
+ private constructor() {}
- private static GetCurrentTime(): string {
- return `[${(new Date().toLocaleTimeString())}] `;
- }
+ private static GetCurrentTime(): string {
+ return `[${new Date().toLocaleTimeString()}] `;
+ }
- static log(str: string, colour: Color = Color("white"), bold = false): void {
- const time = ToConsole(Logger.GetCurrentTime(), Color("gray"), false)
- const moduleName = ToConsole(Globals.name + " ", Color("cyan"), true);
- const text = ToConsole(str, colour, bold);
- console.log(time.str + moduleName.str + text.str, ...time.params.concat(moduleName.params, text.params));
- }
+ static log(str: string, colour: Color = Color("white"), bold = false): void {
+ const time = ToConsole(Logger.GetCurrentTime(), Color("gray"), false);
+ const moduleName = ToConsole(Globals.name + " ", Color("cyan"), true);
+ const text = ToConsole(str, colour, bold);
+ console.log(
+ time.str + moduleName.str + text.str,
+ ...time.params.concat(moduleName.params, text.params),
+ );
+ }
- static err(str: string): void {
- Logger.log(str, Color("orange"));
- }
+ static err(str: string): void {
+ Logger.log(str, Color("orange"));
+ }
- static warn(str: string): void {
- Logger.log(str, Color("yellow"));
- }
+ static warn(str: string): void {
+ Logger.log(str, Color("yellow"));
+ }
- static ok(str: string): void {
- Logger.log(str, Color("green"));
- }
+ static ok(str: string): void {
+ Logger.log(str, Color("green"));
+ }
}
interface ConsoleColour {
- str: string,
- params: Array;
+ str: string;
+ params: Array;
}
const ToConsole = (str: string, col: Color, bold: boolean): ConsoleColour => {
- return {
- str: `%c` + str + `%c`,
- params: [
- "color: " + col.hex() + ";" + (bold ? "font-weight: bold;" : ""),
- "color: unset; font-weight: unset;"
- ]
- }
+ return {
+ str: `%c` + str + `%c`,
+ params: [
+ "color: " + col.hex() + ";" + (bold ? "font-weight: bold;" : ""),
+ "color: unset; font-weight: unset;",
+ ],
+ };
};
-export default Logger;
\ No newline at end of file
+export default Logger;
diff --git a/source/utils/Module.ts b/source/utils/Module.ts
index 4c0cff4..02c8902 100644
--- a/source/utils/Module.ts
+++ b/source/utils/Module.ts
@@ -1,8 +1,10 @@
-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 Globals from "../Globals";
export const getModuleInformation = async (): Promise => {
- const systemOrModule = Globals.isModule ? "module" : "system"
- const module = await fetch(systemOrModule + "s/" + Globals.name + "/" + systemOrModule + ".json")
- return await module.json();
-};
\ No newline at end of file
+ const systemOrModule = Globals.isModule ? "module" : "system";
+ const module = await fetch(
+ systemOrModule + "s/" + Globals.name + "/" + systemOrModule + ".json",
+ );
+ return await module.json();
+};
diff --git a/templates/sheets/character/combat.hbs b/templates/sheets/character/combat.hbs
index a6705fb..71beaf7 100644
--- a/templates/sheets/character/combat.hbs
+++ b/templates/sheets/character/combat.hbs
@@ -51,7 +51,7 @@
{{#each data.calc.gear.weapons as |item itemId|}}
{{#if item.equipped}}
-
+
{{item.label}}{{#if item.special}}(*){{/if}}
{{item.calc.ew}}
{{item.damageBase}}
@@ -67,7 +67,7 @@
{{/if}}
{{/each}}
-
+
{{localize "midgard5.brawl"}}
{{data.calc.stats.brawlFw}}
1d6 -4
@@ -87,9 +87,9 @@
-
+
{{#each data.calc.kampfkuenste as |item itemId|}}
-
+
{{item.label}}
{{#if item.isKido}}
@@ -176,7 +176,7 @@
{{#each data.calc.gear.defensiveWeapons as |item itemId|}}
{{#if item.equipped}}
-
+
{{item.label}}
{{item.calc.ew}}
{{item.defenseBonus}}
@@ -205,7 +205,7 @@
{{#each data.calc.gear.armor as |item itemId|}}
{{#if item.equipped}}
-
+
{{item.label}}
{{lpProtection}}
diff --git a/templates/sheets/character/description.hbs b/templates/sheets/character/description.hbs
index b8dd005..192434c 100644
--- a/templates/sheets/character/description.hbs
+++ b/templates/sheets/character/description.hbs
@@ -1,50 +1,70 @@
-
-
+
+
-
-
-
-
-
{{editor content=data.info.description target="data.info.description" button=true owner=owner editable=editable}}
-
-
+
+
+
+
+
{{editor
+ content=data.info.description
+ target='data.info.description'
+ button=true
+ owner=owner
+ editable=editable
+ }}
+
+
-
-
-
-
-
{{editor content=data.info.background target="data.info.background" button=true owner=owner editable=editable}}
-
-
+
+
+
+
+
{{editor
+ content=data.info.background
+ target='data.info.background'
+ button=true
+ owner=owner
+ editable=editable
+ }}
+
+
\ No newline at end of file
diff --git a/templates/sheets/character/effects.hbs b/templates/sheets/character/effects.hbs
index d87114f..699d1e4 100644
--- a/templates/sheets/character/effects.hbs
+++ b/templates/sheets/character/effects.hbs
@@ -6,9 +6,9 @@
-
+
{{#each data.calc.gear.effects as |item itemId|}}
-
+
{{item.label}}
{{#if item.equipped}}
diff --git a/templates/sheets/character/gear.hbs b/templates/sheets/character/gear.hbs
index d5ef84b..3c20459 100644
--- a/templates/sheets/character/gear.hbs
+++ b/templates/sheets/character/gear.hbs
@@ -46,7 +46,7 @@
{{#each data.calc.gear.containers as |item itemId|}}
-
+
{{item.label}}
@@ -99,7 +99,7 @@
{{#each ../data.calc.gear.items as |item itemId|}}
{{#if (eq item.containerId containerId)}}
-
+
{{item.label}}
@@ -132,7 +132,7 @@
{{/each}}
{{#each ../data.calc.gear.weapons as |item itemId|}}
{{#if (eq item.containerId containerId)}}
-
+
{{item.label}}
@@ -161,7 +161,7 @@
{{/each}}
{{#each ../data.calc.gear.defensiveWeapons as |item itemId|}}
{{#if (eq item.containerId containerId)}}
-
+
{{item.label}}
@@ -190,7 +190,7 @@
{{/each}}
{{#each ../data.calc.gear.armor as |item itemId|}}
{{#if (eq item.containerId containerId)}}
-
+
{{item.label}}
@@ -245,12 +245,10 @@
-
-
-
+
{{#each data.calc.gear.items as |item itemId|}}
{{#if (or ../data.info.showAllItems (eq item.containerId ""))}}
-
+
{{item.label}}
@@ -300,9 +298,10 @@
-
+
{{#each data.calc.gear.weapons as |item itemId|}}
-
+ {{#if (or ../data.info.showAllItems (eq item.containerId ""))}}
+
{{item.label}}
{{#unless (or (eq item.value 0) (eq item.currency ""))}}
@@ -342,9 +341,10 @@
-
+
{{#each data.calc.gear.defensiveWeapons as |item itemId|}}
-
+ {{#if (or ../data.info.showAllItems (eq item.containerId ""))}}
+
{{item.label}}
{{#unless (or (eq item.value 0) (eq item.currency ""))}}
@@ -384,9 +384,10 @@
-
+
{{#each data.calc.gear.armor as |item itemId|}}
-
+ {{#if (or ../data.info.showAllItems (eq item.containerId ""))}}
+
{{item.label}}
{{#unless (or (eq item.value 0) (eq item.currency ""))}}
diff --git a/templates/sheets/character/skills.hbs b/templates/sheets/character/skills.hbs
index 15f9c72..7715363 100644
--- a/templates/sheets/character/skills.hbs
+++ b/templates/sheets/character/skills.hbs
@@ -14,9 +14,9 @@
-
+
{{#each data.calc.skills.innate as |skill skillId|}}
-
+
{{skill.label}}
{{skill.fw}}
{{skill.calc.bonus}}
@@ -25,7 +25,7 @@
{{/each}}
-
+
{{localize "midgard5.perception"}}
{{data.calc.stats.perceptionFW}}
{{data.calc.stats.perception.value}}
@@ -33,7 +33,7 @@
-
+
{{localize "midgard5.drinking"}}
{{data.calc.stats.drinkingFW}}
{{data.calc.stats.drinking.value}}
@@ -59,9 +59,9 @@
-
+
{{#each data.calc.skills.general as |skill skillId|}}
-
+
{{skill.label}}
{{skill.fw}}
{{skill.calc.bonus}}
@@ -89,9 +89,9 @@
-
+
{{#each data.calc.skills.combat as |skill skillId|}}
-
+
{{skill.label}}
{{skill.fw}}
{{skill.calc.bonus}}
@@ -119,9 +119,9 @@
-
+
{{#each data.calc.skills.language as |skill skillId|}}
-
+
{{skill.label}}
{{skill.fw}}
{{skill.calc.bonus}}
@@ -151,10 +151,10 @@
-
+
{{#each data.skills.general as |skill key|}}
{{#unless (isSkillInList (localizeMidgard key) ../actor.system.calc.skills.general) }}
-
+
{{localize "midgard5.learn"}}
{{localizeMidgard key}}
{{skill.fw}}
diff --git a/templates/sheets/character/spells.hbs b/templates/sheets/character/spells.hbs
index aef25db..90d636a 100644
--- a/templates/sheets/character/spells.hbs
+++ b/templates/sheets/character/spells.hbs
@@ -7,9 +7,9 @@
-
+
{{#each data.calc.spells as |item itemId|}}
-
+
{{item.label}}
{{localize item.process}}
diff --git a/templates/sheets/partial/mod.hbs b/templates/sheets/partial/mod.hbs
index 03701a2..1d5c5e6 100644
--- a/templates/sheets/partial/mod.hbs
+++ b/templates/sheets/partial/mod.hbs
@@ -4,12 +4,13 @@
Mods
+
+
{{#each mods as |mod modId|}}
-
+
{{#select mod.type}}
@@ -51,6 +52,7 @@
+
{{/each}}
diff --git a/tsconfig.json b/tsconfig.json
index 983632f..097e712 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -1,91 +1,97 @@
{
- "compilerOptions": {
- /* Visit https://aka.ms/tsconfig.json to read more about this file */
- /* Projects */
- // "incremental": true, /* Enable incremental compilation */
- // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */
- // "tsBuildInfoFile": "./", /* Specify the folder for .tsbuildinfo incremental compilation files. */
- // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects */
- // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */
- // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */
- /* Language and Environment */
- "target": "ES2017" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */,
- "lib": ["DOM", "ES6", "ES2017"] /* Specify a set of bundled library declaration files that describe the target runtime environment. */,
- // "experimentalDecorators": true, /* Enable experimental support for TC39 stage 2 draft decorators. */
- // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */
- // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */
- // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */
- /* Modules */
- "module": "commonjs" /* Specify what module code is generated. */,
- "rootDir": "./source" /* Specify the root folder within your source files. */,
- "moduleResolution": "node" /* Specify how TypeScript looks up a file from a given module specifier. */,
- // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */
- // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */
- // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */
- // "typeRoots": [], /* Specify multiple folders that act like `./node_modules/@types`. */
- "types": ["@league-of-foundry-developers/foundry-vtt-types"] /* Specify type package names to be included without being referenced in a source file. */,
- // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */
- "resolveJsonModule": true /* Enable importing .json files */,
- // "noResolve": true, /* Disallow `import`s, `require`s or ``s from expanding the number of files TypeScript should add to a project. */
- /* JavaScript Support */
- // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the `checkJS` option to get errors from these files. */
- // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */
- // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from `node_modules`. Only applicable with `allowJs`. */
- /* Emit */
- // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */
- // "declarationMap": true, /* Create sourcemaps for d.ts files. */
- // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */
- // "sourceMap": true, /* Create source map files for emitted JavaScript files. */
- // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If `declaration` is true, also designates a file that bundles all .d.ts output. */
- // "outDir": "./", /* Specify an output folder for all emitted files. */
- // "removeComments": true, /* Disable emitting comments. */
- "noEmit": true /* Disable emitting files from a compilation. */,
- // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */
- // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types */
- // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */
- // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */
- // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */
- // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */
- // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */
- // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */
- // "newLine": "crlf", /* Set the newline character for emitting files. */
- // "stripInternal": true, /* Disable emitting declarations that have `@internal` in their JSDoc comments. */
- // "noEmitHelpers": true, /* Disable generating custom helper functions like `__extends` in compiled output. */
- // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */
- // "preserveConstEnums": true, /* Disable erasing `const enum` declarations in generated code. */
- // "declarationDir": "./", /* Specify the output directory for generated declaration files. */
- /* Interop Constraints */
- // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */
- // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */
- "esModuleInterop": true /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables `allowSyntheticDefaultImports` for type compatibility. */,
- // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */
- //"forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */
- /* Type Checking */
- //"strict": true, /* Enable all strict type-checking options. */
- //"noImplicitAny": false, /* Enable error reporting for expressions and declarations with an implied `any` type.. */
- //"strictNullChecks": false, /* When type checking, take into account `null` and `undefined`. */
- // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */
- // "strictBindCallApply": true, /* Check that the arguments for `bind`, `call`, and `apply` methods match the original function. */
- // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */
- //"noImplicitThis": true, /* Enable error reporting when `this` is given the type `any`. */
- // "useUnknownInCatchVariables": true, /* Type catch clause variables as 'unknown' instead of 'any'. */
- // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */
- // "noUnusedLocals": true, /* Enable error reporting when a local variables aren't read. */
- // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read */
- // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */
- // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */
- // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */
- // "noUncheckedIndexedAccess": true, /* Include 'undefined' in index signature results */
- // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */
- // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type */
- // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */
- // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */
- /* Completeness */
- // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */
- "skipLibCheck": true /* Skip type checking all .d.ts files. */
- },
- //"include": [
- // "./Source/**/*.ts"
- //]
- "exclude": ["gulpfile.ts"]
+ "compilerOptions": {
+ /* Visit https://aka.ms/tsconfig.json to read more about this file */
+ /* Projects */
+ // "incremental": true, /* Enable incremental compilation */
+ // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */
+ // "tsBuildInfoFile": "./", /* Specify the folder for .tsbuildinfo incremental compilation files. */
+ // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects */
+ // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */
+ // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */
+ /* Language and Environment */
+ "target": "ES2017" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */,
+ "lib": [
+ "DOM",
+ "ES6",
+ "ES2017"
+ ] /* Specify a set of bundled library declaration files that describe the target runtime environment. */,
+ // "experimentalDecorators": true, /* Enable experimental support for TC39 stage 2 draft decorators. */
+ // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */
+ // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */
+ // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */
+ /* Modules */
+ "module": "commonjs" /* Specify what module code is generated. */,
+ "rootDir": "./source" /* Specify the root folder within your source files. */,
+ "moduleResolution": "node" /* Specify how TypeScript looks up a file from a given module specifier. */,
+ // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */
+ // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */
+ // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */
+ // "typeRoots": [], /* Specify multiple folders that act like `./node_modules/@types`. */
+ "types": [
+ "@league-of-foundry-developers/foundry-vtt-types"
+ ] /* Specify type package names to be included without being referenced in a source file. */,
+ // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */
+ "resolveJsonModule": true /* Enable importing .json files */,
+ // "noResolve": true, /* Disallow `import`s, `require`s or ``s from expanding the number of files TypeScript should add to a project. */
+ /* JavaScript Support */
+ // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the `checkJS` option to get errors from these files. */
+ // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */
+ // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from `node_modules`. Only applicable with `allowJs`. */
+ /* Emit */
+ // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */
+ // "declarationMap": true, /* Create sourcemaps for d.ts files. */
+ // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */
+ // "sourceMap": true, /* Create source map files for emitted JavaScript files. */
+ // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If `declaration` is true, also designates a file that bundles all .d.ts output. */
+ // "outDir": "./", /* Specify an output folder for all emitted files. */
+ // "removeComments": true, /* Disable emitting comments. */
+ "noEmit": true /* Disable emitting files from a compilation. */,
+ // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */
+ // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types */
+ // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */
+ // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */
+ // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */
+ // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */
+ // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */
+ // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */
+ // "newLine": "crlf", /* Set the newline character for emitting files. */
+ // "stripInternal": true, /* Disable emitting declarations that have `@internal` in their JSDoc comments. */
+ // "noEmitHelpers": true, /* Disable generating custom helper functions like `__extends` in compiled output. */
+ // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */
+ // "preserveConstEnums": true, /* Disable erasing `const enum` declarations in generated code. */
+ // "declarationDir": "./", /* Specify the output directory for generated declaration files. */
+ /* Interop Constraints */
+ // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */
+ // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */
+ "esModuleInterop": true /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables `allowSyntheticDefaultImports` for type compatibility. */,
+ // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */
+ //"forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */
+ /* Type Checking */
+ //"strict": true, /* Enable all strict type-checking options. */
+ //"noImplicitAny": false, /* Enable error reporting for expressions and declarations with an implied `any` type.. */
+ //"strictNullChecks": false, /* When type checking, take into account `null` and `undefined`. */
+ // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */
+ // "strictBindCallApply": true, /* Check that the arguments for `bind`, `call`, and `apply` methods match the original function. */
+ // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */
+ //"noImplicitThis": true, /* Enable error reporting when `this` is given the type `any`. */
+ // "useUnknownInCatchVariables": true, /* Type catch clause variables as 'unknown' instead of 'any'. */
+ // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */
+ // "noUnusedLocals": true, /* Enable error reporting when a local variables aren't read. */
+ // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read */
+ // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */
+ // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */
+ // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */
+ // "noUncheckedIndexedAccess": true, /* Include 'undefined' in index signature results */
+ // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */
+ // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type */
+ // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */
+ // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */
+ /* Completeness */
+ // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */
+ "skipLibCheck": true /* Skip type checking all .d.ts files. */
+ },
+ //"include": [
+ // "./Source/**/*.ts"
+ //]
+ "exclude": ["gulpfile.ts"]
}