Merge branch 'main' into main
No files matched your search
@@ -1,28 +1,29 @@
|
||||
import * as gulp from "gulp";
|
||||
import fs from "fs-extra";
|
||||
import * as path from "path";
|
||||
import archiver from "archiver";
|
||||
import stringify from "json-stringify-pretty-compact";
|
||||
import * as gulp from "gulp"
|
||||
import fs from "fs-extra"
|
||||
import * as path from "path"
|
||||
import archiver from "archiver"
|
||||
import stringify from "json-stringify-pretty-compact"
|
||||
|
||||
const sourcemaps = require("gulp-sourcemaps");
|
||||
const uglify = require("gulp-uglify");
|
||||
const concat = require("gulp-concat");
|
||||
const buffer = require("vinyl-buffer");
|
||||
const source = require("vinyl-source-stream");
|
||||
const through = require("through2");
|
||||
const jsonminify = require("gulp-jsonminify");
|
||||
const merge2 = require("merge2");
|
||||
const sourcemaps = require('gulp-sourcemaps')
|
||||
const uglify = require('gulp-uglify')
|
||||
const concat = require("gulp-concat")
|
||||
const buffer = require('vinyl-buffer')
|
||||
const source = require('vinyl-source-stream')
|
||||
const through = require('through2')
|
||||
const jsonminify = require('gulp-jsonminify')
|
||||
const merge2 = require('merge2')
|
||||
|
||||
const git = require("gulp-git-streamed");
|
||||
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);
|
||||
let str = fs.readFileSync(path).toString()
|
||||
return JSON.parse(str)
|
||||
}
|
||||
catch {
|
||||
throw Error("Unable to load " + path)
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
import {
|
||||
createLiteral,
|
||||
@@ -37,36 +38,36 @@ import {
|
||||
TransformerFactory,
|
||||
visitEachChild,
|
||||
visitNode,
|
||||
} from "typescript";
|
||||
import less from "gulp-less";
|
||||
} from "typescript"
|
||||
import less from "gulp-less"
|
||||
|
||||
import Logger from "./source/utils/Logger";
|
||||
import { ModuleData } from "@league-of-foundry-developers/foundry-vtt-types/src/foundry/common/packages.mjs";
|
||||
import browserify from "browserify";
|
||||
const tsify = require("tsify");
|
||||
import Logger from "./source/utils/Logger"
|
||||
import {ModuleData} from "@league-of-foundry-developers/foundry-vtt-types/src/foundry/common/packages.mjs"
|
||||
import browserify from "browserify"
|
||||
const tsify = require("tsify")
|
||||
|
||||
const ts = require("gulp-typescript");
|
||||
const ts = require("gulp-typescript")
|
||||
|
||||
const argv = require("yargs").argv;
|
||||
const argv = require("yargs").argv
|
||||
|
||||
let distPath = "dist";
|
||||
let distPath = "dist"
|
||||
|
||||
function getConfig() {
|
||||
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;
|
||||
config = loadJson(configPath)
|
||||
return config
|
||||
} else {
|
||||
return;
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
interface Manifest {
|
||||
root: string;
|
||||
file: ModuleData;
|
||||
name: string;
|
||||
root: string
|
||||
file: ModuleData
|
||||
name: string
|
||||
}
|
||||
|
||||
const getManifest = (): Manifest | null => {
|
||||
@@ -74,214 +75,237 @@ const getManifest = (): Manifest | null => {
|
||||
root: "",
|
||||
// @ts-ignore
|
||||
file: {},
|
||||
name: "",
|
||||
};
|
||||
name: ""
|
||||
}
|
||||
|
||||
if (fs.existsSync("source")) {
|
||||
json.root = "source";
|
||||
json.root = "source"
|
||||
} else {
|
||||
json.root = distPath;
|
||||
json.root = distPath
|
||||
}
|
||||
|
||||
const modulePath = path.join(json.root, "module.json");
|
||||
const systemPath = path.join(json.root, "system.json");
|
||||
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";
|
||||
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";
|
||||
json.file = loadJson(systemPath) as ModuleData
|
||||
json.name = "system.json"
|
||||
} else {
|
||||
return null;
|
||||
return null
|
||||
}
|
||||
|
||||
return json;
|
||||
};
|
||||
return json
|
||||
}
|
||||
|
||||
const createTransformer = (): TransformerFactory<any> => {
|
||||
/**
|
||||
* @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;
|
||||
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<any> => {
|
||||
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);
|
||||
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);
|
||||
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 visitEachChild(node, visitor, context)
|
||||
}
|
||||
|
||||
return visitNode(node, visitor);
|
||||
};
|
||||
};
|
||||
};
|
||||
return visitNode(node, visitor)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const tsConfig = ts.createProject("tsconfig.json", {
|
||||
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)
|
||||
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("./"));
|
||||
};
|
||||
.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")
|
||||
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));
|
||||
};
|
||||
.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) => {
|
||||
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,
|
||||
});
|
||||
});
|
||||
});
|
||||
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<string>) => void) => {
|
||||
let results: Array<string> = [];
|
||||
let results: Array<string> = []
|
||||
fs.readdir(dir, (err, list) => {
|
||||
if (err) return callback(err, results);
|
||||
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);
|
||||
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);
|
||||
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 modulePath = path.join("source", "module.json")
|
||||
if (fs.existsSync(modulePath))
|
||||
await fs.copyFile(modulePath, path.join(distPath, "module.json"))
|
||||
|
||||
if (!fs.existsSync(path.resolve(__dirname, "assets"))) return Promise.resolve();
|
||||
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()
|
||||
|
||||
const filter = (src: string, dest: string): boolean => {
|
||||
Logger.ok("Copying file: " + dest);
|
||||
return true;
|
||||
};
|
||||
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, "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();
|
||||
fs.copySync(path.resolve(__dirname, "templates"), path.resolve(__dirname, distPath + "/templates"), { overwrite: true, filter })
|
||||
return Promise.resolve()
|
||||
} catch (err) {
|
||||
await Promise.reject(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 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 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));
|
||||
await getFiles(path.resolve(distPath))
|
||||
for(const file of files) {
|
||||
if (file.endsWith("bundle.js") || file.endsWith(".css") || file.endsWith("module.json")) continue;
|
||||
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)
|
||||
}
|
||||
|
||||
/********************/
|
||||
/* CLEAN */
|
||||
@@ -292,64 +316,67 @@ const buildWatch = () => {
|
||||
* while ignoring source files
|
||||
*/
|
||||
const clean = async () => {
|
||||
if (!fs.existsSync(distPath)) fs.mkdirSync(distPath);
|
||||
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();
|
||||
fs.rmSync(distPath, { recursive: true, force: true })
|
||||
fs.mkdirSync(distPath)
|
||||
return Promise.resolve()
|
||||
} catch (err) {
|
||||
await Promise.reject(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 ?? "midgard5e";
|
||||
distPath = path.join(dp, "Data", "systems", name);
|
||||
};
|
||||
|
||||
const linkUserData = async () => {
|
||||
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`);
|
||||
const name = getManifest()!.file.name ?? "midgard5"
|
||||
distPath = path.join(dp, "Data", "systems", name)
|
||||
}
|
||||
|
||||
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");
|
||||
const linkUserData = async () => {
|
||||
const name = getManifest()!.file.name
|
||||
|
||||
linkDir = path.join(dataPath, "Data", destDir, name as string);
|
||||
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("FOUNDRY_PATH not defined in environment");
|
||||
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")
|
||||
}
|
||||
|
||||
//if (argv.clean || argv.c) {
|
||||
Logger.warn(`Removing build in ${linkDir}`);
|
||||
fs.rmSync(linkDir, { recursive: true, force: true });
|
||||
fs.mkdirSync(linkDir);
|
||||
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();
|
||||
return Promise.resolve()
|
||||
} catch (err) {
|
||||
await Promise.reject(err);
|
||||
await Promise.reject(err)
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/*********************/
|
||||
/* PACKAGE */
|
||||
@@ -359,47 +386,48 @@ const linkUserData = async () => {
|
||||
* Package build
|
||||
*/
|
||||
async function packageBuild() {
|
||||
const manifest = getManifest();
|
||||
const manifest = getManifest()
|
||||
if (manifest === null) {
|
||||
Logger.err("Manifest file could not be loaded.");
|
||||
throw Error();
|
||||
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;
|
||||
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);
|
||||
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(path.join(distPath, zipName));
|
||||
const zip = archiver("zip", { zlib: { level: 9 } });
|
||||
const zipName = `${manifest.file.name}-v${manifest.file.version}.zip`
|
||||
const zipFile = fs.createWriteStream(path.join(distPath, 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);
|
||||
});
|
||||
Logger.ok(zip.pointer() + " total bytes")
|
||||
Logger.ok(`Zip file ${zipName} has been written`)
|
||||
return resolve(true)
|
||||
})
|
||||
|
||||
zip.on("error", (err) => {
|
||||
throw err;
|
||||
});
|
||||
throw err
|
||||
})
|
||||
|
||||
zip.pipe(zipFile);
|
||||
zip.pipe(zipFile)
|
||||
|
||||
zip.directory(path.join(process.cwd(), distPath), false);
|
||||
return zip.finalize();
|
||||
zip.directory(path.join(process.cwd(), distPath), false)
|
||||
return zip.finalize()
|
||||
} catch (err) {
|
||||
return reject(err);
|
||||
return reject(err)
|
||||
}
|
||||
});
|
||||
})
|
||||
}
|
||||
|
||||
/*********************/
|
||||
@@ -410,114 +438,116 @@ async function packageBuild() {
|
||||
* Update version and URLs in the manifest JSON
|
||||
*/
|
||||
const updateManifest = (cb: any) => {
|
||||
const packageJson = loadJson("package.json");
|
||||
const packageJson = loadJson("package.json")
|
||||
const config = getConfig(),
|
||||
manifest = getManifest(),
|
||||
rawURL = config.rawURL,
|
||||
repoURL = config.repository,
|
||||
manifestRoot = manifest!.root;
|
||||
manifestRoot = manifest!.root
|
||||
|
||||
if (!config) cb(Error("foundryconfig.json not found"));
|
||||
if (!config)
|
||||
cb(Error("foundryconfig.json not found"))
|
||||
if (manifest === null) {
|
||||
cb(Error("Manifest JSON not found"));
|
||||
return;
|
||||
cb(Error("Manifest JSON not found"))
|
||||
return
|
||||
}
|
||||
if (!rawURL || !repoURL) cb(Error("Repository URLs not configured in foundryconfig.json"));
|
||||
if (!rawURL || !repoURL)
|
||||
cb(Error("Repository URLs not configured in foundryconfig.json"))
|
||||
|
||||
try {
|
||||
const version = argv.update || argv.u;
|
||||
const version = argv.update || argv.u
|
||||
|
||||
/* 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"));
|
||||
cb(Error("Missing version number"))
|
||||
}
|
||||
|
||||
if (versionMatch.test(version)) {
|
||||
targetVersion = 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);
|
||||
console.log(substring, Number(major) + 1, Number(minor) + 1, Number(patch) + 1)
|
||||
if (version === "major") {
|
||||
return `${Number(major) + 1}.0.0`;
|
||||
return `${Number(major) + 1}.0.0`
|
||||
} else if (version === "minor") {
|
||||
return `${major}.${Number(minor) + 1}.0`;
|
||||
return `${major}.${Number(minor) + 1}.0`
|
||||
} else if (version === "patch") {
|
||||
return `${major}.${minor}.${Number(patch) + 1}`;
|
||||
return `${major}.${minor}.${Number(patch) + 1}`
|
||||
} else {
|
||||
return "";
|
||||
return ""
|
||||
}
|
||||
});
|
||||
})
|
||||
}
|
||||
|
||||
if (targetVersion === "") {
|
||||
return cb(Error("Error: Incorrect version arguments."));
|
||||
return cb(Error("Error: Incorrect version arguments."))
|
||||
}
|
||||
|
||||
if (targetVersion === currentVersion) {
|
||||
return cb(Error("Error: Target version is identical to current version."));
|
||||
return cb(Error("Error: Target version is identical to current version."))
|
||||
}
|
||||
|
||||
Logger.ok(`Updating version number to '${targetVersion}'`);
|
||||
Logger.ok(`Updating version number to '${targetVersion}'`)
|
||||
|
||||
packageJson.version = targetVersion;
|
||||
manifest.file.version = targetVersion;
|
||||
packageJson.version = targetVersion
|
||||
manifest.file.version = targetVersion
|
||||
|
||||
/* Update URLs */
|
||||
|
||||
const result = `${rawURL}/v${manifest.file.version}/${distPath}/${manifest.file.name}-v${manifest.file.version}.zip`;
|
||||
const result = `${rawURL}/v${manifest.file.version}/${distPath}/${manifest.file.name}-v${manifest.file.version}.zip`
|
||||
|
||||
manifest.file.url = repoURL;
|
||||
manifest.file.manifest = `${rawURL}/master/${manifestRoot}/${manifest.name}`;
|
||||
manifest.file.download = result;
|
||||
manifest.file.url = repoURL
|
||||
manifest.file.manifest = `${rawURL}/master/${manifestRoot}/${manifest.name}`
|
||||
manifest.file.download = result
|
||||
|
||||
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();
|
||||
return cb()
|
||||
} catch (err) {
|
||||
return cb(err);
|
||||
return cb(err)
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
const gitTaskManifest = (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([`package.json`, `source/module.json`])
|
||||
return gulp.src([`package.json`, `source/module.json`])
|
||||
.pipe(git.add({ args: "--no-all -f" }))
|
||||
.pipe(git.commit(`v${manifest.file.version}`, { args: "-a", disableAppendPaths: true }));
|
||||
};
|
||||
.pipe(git.commit(`v${manifest.file.version}`, { args: "-a", disableAppendPaths: true }))
|
||||
}
|
||||
|
||||
const gitTaskBuild = (cb: gulp.TaskFunctionCallback) => {
|
||||
const 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(`${distPath}/${manifest.file.name}-v${manifest.file.version}.zip`)
|
||||
.pipe(git.checkout(`v${manifest.file.version}`, { args: "-b" }))
|
||||
return gulp.src(`${distPath}/${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 }));
|
||||
};
|
||||
.pipe(git.commit(`v${manifest.file.version}`, { args: "-a", disableAppendPaths: true }))
|
||||
}
|
||||
|
||||
const execBuild = gulp.parallel(buildTS, buildLess, buildPacks, copyFiles);
|
||||
const execBuild = gulp.parallel(buildTS, buildLess, buildPacks, copyFiles)
|
||||
|
||||
exports.build = gulp.series(clean, execBuild, bundleModule);
|
||||
exports.buildTarget = gulp.series(setTargetDir, clean, execBuild, bundleModule);
|
||||
exports.watch = buildWatch;
|
||||
exports.watchTarget = gulp.series(setTargetDir, buildWatch);
|
||||
exports.clean = clean;
|
||||
exports.link = linkUserData;
|
||||
exports.package = packageBuild;
|
||||
exports.update = updateManifest;
|
||||
exports.build = gulp.series(clean, execBuild, bundleModule)
|
||||
exports.buildTarget = gulp.series(setTargetDir, clean, execBuild, bundleModule)
|
||||
exports.watch = buildWatch
|
||||
exports.watchTarget = gulp.series(setTargetDir, buildWatch)
|
||||
exports.clean = clean
|
||||
exports.link = linkUserData
|
||||
exports.package = packageBuild
|
||||
exports.update = updateManifest
|
||||
//exports.publish = gulp.series(clean, updateManifest, execBuild, bundleModule, packageBuild, gitTaskManifest, gitTaskBuild)
|
||||
@@ -1 +0,0 @@
|
||||
<svg style="height: 512px; width: 512px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M0 0h512v512H0z" fill="#000" fill-opacity="1"></path><g class="" style="" transform="translate(0,0)"><path d="M274.663 63.02L90.792 80.26l154.193 19.273c5.063-13.339 12.952-24.341 22.541-31.828a52.072 52.072 0 0 1 7.137-4.683zm19.832 12.803c-5.092.166-10.492 2.296-15.879 6.502-7.835 6.118-15.009 16.575-18.83 29.688-3.821 13.112-3.477 26.099-.289 35.927 3.188 9.829 8.73 16.071 15.633 18.395 6.903 2.324 14.766.596 22.601-5.522 7.835-6.117 15.01-16.574 18.83-29.687 3.822-13.113 3.48-26.1.292-35.928-3.189-9.828-8.73-16.07-15.633-18.394a19.017 19.017 0 0 0-6.725-.98zm166.85 9.485c-24.113 13.949-46.193 20.298-87.233 17.252L340.48 228.452c-.675 2.682-.318 6 1.922 10.87 2.243 4.876 6.355 10.89 11.836 17.607 9.99 12.242 24.527 27.16 39.573 44.238 14.56-5.5 28.23-12.828 38.972-20.19 11.841-8.113 20.234-16.95 21.965-19.939l42.027-118.22c-16.748-14.613-29.471-33.974-35.43-57.51zm-288.07 51.261L23.652 158.331l89.309 12.988 2.158-5.052zm286.265 2.325l16.941 6.078-39.123 109.037-37.212 19.181-8.247-15.998 30.913-15.933zm-259.842 4.394l-70.586 36.043-29.222 68.422 19.218 8.809 24.905-57.764 59.299-22.973-14.702 75.955-.963 1.477c-32.725 50.18-71.654 93.41-118.464 134.28L42.722 432.98l17.021 7.245 31.875-43.989 1.38-.906c45.476-29.872 75.93-62.333 112.255-94.492l4.533-4.012 5.426 2.686c23.365 11.571 42.934 24.117 62.107 37.705l8.924 6.324-69.006 65.643 24.649 39.794 17.67-10.308-20.078-28.477 8.224-5.004c29.884-18.186 49.986-39.43 71.938-66.039-23.653-35.6-42.006-49.433-71.592-71.267l9.908-7.227c34.703-25.312 38.132-54.476 41.61-79.449-9.203 4.441-19.498 5.772-29.473 2.414-13.488-4.54-22.924-16.472-27.465-30.473-.17-.522-.321-1.054-.479-1.584zm116.62 45.04c-1.355 7.027-3.324 14.17-6.092 21.349l14.056 9.666 5.938-22.223zm-174.243 97.476l-126.85 17.953 99.67 14.105a598.987 598.987 0 0 0 27.18-32.058zm91.781 82.73l-95.892 21.432 59.406 13.277z" fill="#fff" fill-opacity="1"></path></g></svg>
|
||||
|
Before Width: | Height: | Size: 2.0 KiB |
@@ -1 +0,0 @@
|
||||
<svg style="height: 512px; width: 512px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M0 0h512v512H0z" fill="#000" fill-opacity="1"></path><g class="" style="" transform="translate(0,0)"><path d="M214.475 29.258L161.77 81.96c16.936 20.538 28.36 42.014 27.927 65.403-.452 24.518-14.472 48.98-43.79 73.528l5.99 17.694c71.606-19.315 130.42-50.42 170.478-101.428l-107.9-107.898zm-57.424 77.54L21.24 211.07v51.764l149.748-115.11c.008-.236.02-.472.026-.706.24-13-4.75-26.334-13.96-40.22zm276.18 3.19l-36.34 84.352 70.038-48.074-33.7-36.278zm-97.543 40.48c-42.955 53.685-105.04 86.063-177.787 105.852l14.08 41.59c18.005.184 38.99-3.06 60.754-9.574.94-1.584 1.904-3.157 2.924-4.705 23.146-35.122 66.755-62.113 114.967-66.79 8.404-8.93 16.06-18.51 22.73-28.705l-37.668-37.666zm29.745 84.34c-47.143 0-92.654 26.458-114.168 59.106-10.757 16.324-15.532 33.768-12.805 50.416 2.726 16.648 12.827 33.23 34.772 48.188l6.118 4.168c13.21 6.097 27.513 9.598 40.26 10.794l-38.04 5.555-20.562 43.145c11.34 9.924 24.012 17.9 37.492 23.927l10.53-45.236 18.202 4.24-11.09 47.646c13.566 4.21 27.673 6.614 41.858 7.203v-52.015h18.688v51.74c13.787-.973 27.45-3.665 40.56-8.07l-10.443-46.578 18.236-4.09 9.77 43.57c11.56-5.517 22.482-12.496 32.422-20.94l-21.39-44.884-35.71-5.213c10.606-.995 22.29-3.588 33.524-7.94l12.13-5.782c24.48-15.652 35.938-32.698 39.337-49.32 3.44-16.818-1.263-34.156-12.35-50.5-22.174-32.69-70.172-59.13-117.34-59.13zm-50.62 84.174c19.09 0 34.567 15.475 34.567 34.565 0 19.09-15.48 34.566-34.567 34.566-19.09 0-34.565-15.476-34.565-34.566 0-19.09 15.474-34.565 34.565-34.565zm105.547 0c19.09 0 34.564 15.476 34.564 34.565 0 19.09-15.476 34.566-34.565 34.566-19.09 0-34.565-15.476-34.565-34.566 0-19.09 15.474-34.565 34.564-34.565zm-233.737 3.747l-108.115.26 24.996 43.334 83.12-43.595zm23.623 15.715l-56.36 83.56 44.692 15.724 11.668-99.285zm107.7 9.703c-5.715 0-10.147 4.433-10.147 10.147 0 5.715 4.432 10.146 10.145 10.146 5.714 0 10.147-4.43 10.147-10.145s-4.43-10.147-10.147-10.147zm99.28 0c-5.715 0-10.146 4.432-10.146 10.147 0 5.714 4.433 10.146 10.147 10.146 5.713 0 10.146-4.43 10.146-10.145 0-5.714-4.432-10.147-10.146-10.147zm-49.835 14.297l23.046 53.694c-11.686 7.06-33.125 7.013-44.42 1.95l21.375-55.645z" fill="#fff" fill-opacity="1"></path></g></svg>
|
||||
|
Before Width: | Height: | Size: 2.2 KiB |
@@ -1 +0,0 @@
|
||||
<svg style="height: 512px; width: 512px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M0 0h512v512H0z" fill="#000" fill-opacity="1"></path><g class="" style="" transform="translate(0,0)"><path d="M45.906 23.625v9.344c0 102.68 10.49 205.087 41.125 288.155 30.637 83.068 82.364 147.415 163.75 169.78l2.22.626 2.22-.5C344.49 472 396.864 407.39 425.593 323.47c28.728-83.92 35.25-187.777 35.25-290.5v-9.345H45.906zM64.72 42.313H442.06c-.413 98.8-7.497 197.342-34.125 275.125-27.21 79.487-73.39 136.637-154.375 154.78-73.28-21.03-119.914-78.696-149-157.562-28.475-77.212-39.206-174.13-39.843-272.344zm18.81 18.75c.807 84.13 12.486 172.823 39.314 244.812 7.825 20.998 16.874 40.495 27.25 58.063l45.844-38.438-40.75-75.063-5.47-10.062 10.97-3.344s38.865-11.786 60.406-18.25l20.437-7.25-94.843-150.468H83.53zm160.25 0l45.782 91.5 132.407-43.157c.69-16.205 1.053-32.366 1.155-48.344H243.78zm177.157 68.343L298.031 169.47l24.908 49.78 25.875 48.72 53.28-1.845c10.245-42.834 16.03-89.664 18.844-136.72zM310.908 236.47l-30.75 10.374 67.25 145.187c17.813-23.2 31.737-51.6 42.624-83.686 2.578-7.595 4.966-15.39 7.19-23.344l-53.626 1.844-5.844.22-2.75-5.158-24.094-45.437zm-99.22 4.686c-13.133 3.972-27.346 8.262-34.625 10.47L216 323.28l3.625 6.72-5.844 4.906-53.56 44.906c24.67 35.91 55.887 61.828 94.655 73.125 30.34-6.91 55.36-21.496 76.03-42.062L211.69 241.155z" fill="#fff" fill-opacity="1"></path></g></svg>
|
||||
|
Before Width: | Height: | Size: 1.4 KiB |
@@ -1 +0,0 @@
|
||||
<svg style="height: 512px; width: 512px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M0 0h512v512H0z" fill="#000" fill-opacity="1"></path><g class="" style="" transform="translate(0,0)"><path d="M246.8 35.58l25.5 52.5 24.8-22.9-50.3-29.6zm109.1 13.41l-10.3 9.51 52.9 57.3 10.3-9.5-52.9-57.31zm-30.3 14.37l-57.3 52.94 66.5 72 57.3-53-66.5-71.94zM181.8 93.33l-19.5 49.17L196 187l-14.2-93.67zM75.81 127l-32.42 13.8 94.41 52.1L75.81 127zm186.09 8.9l-16.2 15-32 44.1 62.7-18.2-33.6 70.7 32.4-17.8 39.6-36.6-52.9-57.2zm232.1 2.4c-3.1.8-6.1 1.6-9.2 2.3-25.7 5.9-51.9 8.5-74.5 2.3l-69.4 64.2c4.5 23-.2 48.9-8.1 74.1-8.7 27.5-21.6 54.1-32.9 75.4 60.6 17.3 133-11.2 187.1-61.1 2.4-2.2 4.7-4.5 7-6.7V138.3zM76.71 232.6l-18.78 37.6 72.57-21.6-53.79-16zm117.19 48l-24 51.8-21-34.4-47.2 196H182l37.2-154.6-25.7 29.5.4-88.3z" fill="#fff" fill-opacity="1"></path></g></svg>
|
||||
|
Before Width: | Height: | Size: 880 B |
@@ -1 +0,0 @@
|
||||
<svg style="height: 512px; width: 512px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M0 0h512v512H0z" fill="#000" fill-opacity="1"></path><g class="" style="" transform="translate(0,0)"><path d="M279.775 17.137c-18.823-.262-38.412 6.822-51.54 20.02l-5.858 5.89-6.535-5.127c-35.796-28.083-78.147-22.538-98.727 10.39l-3.465 5.547-6.398-1.357c-27.027-5.737-53.6 4.882-69.373 23.047-15.776 18.165-21.16 42.634-5.937 68.43l3.68 6.234-5.12 5.122c-7.12 7.122-9.71 16.235-8.956 26.824.753 10.59 5.242 22.277 12.04 31.98 6.8 9.705 15.853 17.3 24.67 20.634 8.82 3.333 16.93 3.112 25.68-2.877l6.626-4.538 5.48 5.868c18.752 20.07 63.427 19.456 81.504-9.315l4.967-7.906 7.91 4.96c9.652 6.05 21.095 6.628 32.078 3.243 10.983-3.384 21.017-10.924 26.445-19.56l8.34-13.272 7.707 13.648c5.984 10.6 21.754 20.7 39.238 24.517 17.485 3.818 35.716 1.47 46.955-7.793l7.116-5.863 5.96 7.036c13.405 15.834 34.384 19.713 51.292 15.234 8.453-2.24 15.61-6.562 20.1-11.894 4.49-5.332 6.64-11.394 5.548-19.36l-1.412-10.292 10.386-.317c14.28-.435 23.67-5.757 30.195-13.635 6.527-7.877 9.99-18.775 9.966-30.103-.05-22.658-12.994-45.11-39.104-48.66l-9.843-1.34 1.936-9.743c1.49-7.49-1.057-16.514-7.54-25.764-6.485-9.25-16.708-18.272-28.37-24.904-11.662-6.634-24.726-10.866-36.596-11.388-11.87-.522-22.266 2.385-30.62 9.863l-7.743 6.934-6.072-8.437c-10.336-14.36-27.786-21.715-46.61-21.976zm-23.13 207.613c-7.79 7.932-17.737 13.957-28.64 17.316-12.57 3.874-26.675 4.027-39.61-1.3-13.607 16.66-33.646 25.044-53.58 25.658.803 2.694 2.022 5.36 3.65 7.885 4.48 6.947 11.786 12.436 20.377 14.188 8.59 1.752 18.766.2 30.504-8.578l9.133-6.828 4.9 10.295c1.805 3.793 10.955 9.652 22.417 10.94 11.462 1.286 23.836-1.518 30.982-8.206l7.2-6.737 6.34 7.55c7.687 9.153 18.164 11.31 28.223 9.768 10.06-1.54 18.25-8.15 19.394-10.936l4.225-10.297 9.41 5.943c9.343 5.9 17.365 6.48 24.47 4.494 7.103-1.987 13.382-6.983 17.39-13.273 3.672-5.763 5.297-12.387 4.51-18.327-7.83-2.86-15.302-7.21-21.903-13.22-16.45 9.763-37.038 10.807-55.794 6.712-16.836-3.676-32.71-11.465-43.6-23.045zm5.767 80.373c-7.74 4.837-16.592 7.306-25.443 8.002v41.938c-39.484 1.013-74.942 4.618-102.22 10.093-16.214 3.255-29.515 7.07-39.53 11.844-5.01 2.387-9.234 4.994-12.69 8.406-3.454 3.412-6.343 8.197-6.343 13.75 0 5.553 2.866 10.328 6.313 13.75 3.447 3.422 7.682 6.03 12.688 8.438 10.01 4.818 23.314 8.72 39.53 12.03 20.218 4.13 44.93 7.244 72.438 9-15.85 21.005-36.292 38.707-56.937 50.438H364.5c-20.393-12.03-39.75-29.664-54.72-50.312 28.51-1.726 54.114-4.872 74.94-9.125 16.215-3.312 29.52-7.213 39.53-12.03 5.006-2.41 9.24-5.016 12.688-8.44 3.446-3.42 6.28-8.196 6.28-13.75 0-5.55-2.857-10.337-6.312-13.75-3.455-3.41-7.68-6.018-12.687-8.405-10.017-4.773-23.32-8.59-39.533-11.844-27.645-5.55-63.688-9.17-103.812-10.125v-40.776c-6.473-1.61-12.817-4.55-18.463-9.13zm19.12 68.596c38.834.986 73.608 4.558 99.468 9.75 15.31 3.072 27.538 6.774 35.156 10.405 3.81 1.815 6.438 3.64 7.625 4.813.298.293.28.317.408.468-.13.156-.123.188-.438.5-1.196 1.187-3.814 3.04-7.625 4.875-7.622 3.67-19.85 7.406-35.156 10.533-22.08 4.51-50.67 7.833-82.72 9.343-8.816-16.007-14.824-33.213-16.72-50.687zm-45.157.06c-1.88 17.484-8.158 34.644-17.28 50.533-31.217-1.555-59.056-4.838-80.657-9.25-15.308-3.127-27.534-6.863-35.157-10.532-3.81-1.833-6.428-3.686-7.624-4.874-.32-.318-.31-.344-.437-.5.126-.15.134-.17.436-.47 1.188-1.17 3.785-2.996 7.594-4.81 7.62-3.632 19.846-7.334 35.156-10.407 25.525-5.125 59.738-8.648 97.97-9.69z" fill="#fff" fill-opacity="1"></path></g></svg>
|
||||
|
Before Width: | Height: | Size: 3.4 KiB |
@@ -1 +0,0 @@
|
||||
<svg style="height: 512px; width: 512px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M0 0h512v512H0z" fill="#000" fill-opacity="1"></path><g class="" style="" transform="translate(0,0)"><path d="M375.483 251.243l-109.98 51.138.213 183.381L477.01 266.346l-86.993-21.81zm-12.736 108.626l-5.947 14.699-48.604-8.955 5.007-12.832a141.306 141.306 0 0 0 13.51-11.358 167.184 167.184 0 0 0 16.566-17.517 170.478 170.478 0 0 0 12.606-17.958 115.607 115.607 0 0 0 9.514-17.97l14.068 2.51q-9.37 22.334-30.361 44.43-13.296 13.64-20.645 18.636zM121.603 244.334l-84.71 21.763L246.474 486V302.38l-109.946-51.137zm19.147 50.852a28.72 28.72 0 0 1 24.273 6.802 53.052 53.052 0 0 1 11.226 14.188l-13.081 2.676a28.542 28.542 0 0 0-5.388-7.374q-5.185-4.876-11.262-3.853l-.487.095a6.458 6.458 0 0 0-5.162 4.448c-.856 2.378-.238 5.554 1.796 9.371q4.08 7.6 10.81 9.027a23.785 23.785 0 0 0 8.563-.203l1.867-.344 5.791 10.822q-6.398 1.427-8.23 3.282-3.21 3.14.429 9.93a17.042 17.042 0 0 0 6.089 6.696 10.406 10.406 0 0 0 7.385 1.534l.416-.083q4.757-.964 5.079-4.757c.261-2.57-.655-5.744-2.748-9.514l12.38-2.545a49.247 49.247 0 0 1 4.103 11.226 19.956 19.956 0 0 1-.642 9.383 11.702 11.702 0 0 1-3.96 5.411 19.575 19.575 0 0 1-8.027 3.235l-1.19.214a27.971 27.971 0 0 1-17.494-2.7 32.193 32.193 0 0 1-14.128-14.092q-3.627-6.79-2.604-12.19a8.396 8.396 0 0 1 2.521-4.947h-.071q-1.844.31-7.04-2.497a32.11 32.11 0 0 1-12.916-13.593q-5.245-9.764-3.282-18.398 1.962-8.634 13.676-11zM27.19 248.865l108.78-116.309a7.135 7.135 0 0 1 1.427 0h.154q3.14.345 2.842 3.71a19.36 19.36 0 0 1-3.294 8.1 39.376 39.376 0 0 1-9.728 10.405q-3.912 2.938-15.044 9.514-12.796 7.505-19.55 14.77a92.535 92.535 0 0 0-11.513 14.486l32.907 3.758 8.182-12.963-20.967-2.378a36.415 36.415 0 0 1 4.757-3.83q2.379-1.605 8.444-5.125l6.422-3.747a92.975 92.975 0 0 0 12.903-8.776 61.472 61.472 0 0 0 12.51-14.414q6.84-10.846 6.494-17.957c-.19-3.949-2.105-6.434-5.684-7.505l79.798-85.161-102.097 179.576-5.708 10.06zm367.238-71.974q-3.817-5.458-3.758-8.515c0-2.033 1.19-3.199 3.568-3.448h.57a11.892 11.892 0 0 1 6.91 2.247 29.85 29.85 0 0 1 7.837 8.051q3.687 5.28 3.71 8.397c0 2.093-1.188 3.258-3.496 3.567h-.594a11.75 11.75 0 0 1-6.957-2.378 29.79 29.79 0 0 1-7.79-7.885zm-109.41-141.52l83.948 89.634h-1.189c-.38 0-.975 0-1.463.107q-7.825.892-8.324 6.862-.5 5.97 5.03 13.747a53.778 53.778 0 0 0 6.375 7.374 37.901 37.901 0 0 0 10.144 6.897q-2.117 2.89-.702 7.98a37.283 37.283 0 0 0 5.613 11.096 55.122 55.122 0 0 0 15.223 14.806q8.098 5.268 16.066 4.935.81 0 1.618-.13 8.776-.988 9.228-7.873a16.114 16.114 0 0 0-.463-4.853l58.689 62.686-91.572-22.941-6.1-10.703zm98.22 104.927l2.45 2.617c.451.57.903 1.189 1.355 1.784 1.808 2.592 2.723 4.757 2.723 6.529 0 1.771-1.034 2.782-3.127 3.02h-.512a10.346 10.346 0 0 1-6.077-1.95 22.596 22.596 0 0 1-6.184-6.137c-1.974-2.83-2.937-5.102-2.878-6.814.06-1.713 1.118-2.7 3.187-2.937h.524a10.263 10.263 0 0 1 6.005 1.879 19.147 19.147 0 0 1 2.533 2.01zM255.987 26L137.456 231.026l118.532 55.05 118.604-55.05zm-1.19 208.463q-17.529 0-24.58-12.273-7.053-12.273-7.053-34.988 0-22.714 7.052-35.047 7.052-12.332 24.582-12.344 17.53 0 24.582 12.332 7.052 12.333 7.052 35.047 0 22.715-7.052 34.988-7.053 12.273-24.582 12.285zm10.538-71.807q2.497 7.968 2.497 24.546 0 15.817-2.497 24.201-2.498 8.384-10.537 8.325-8.04 0-10.632-8.325-2.593-8.324-2.593-24.2 0-16.579 2.593-24.547t10.632-7.968q8.015-.012 10.513 7.956z" fill="#fff" fill-opacity="1"></path></g></svg>
|
||||
|
Before Width: | Height: | Size: 3.4 KiB |
@@ -1 +0,0 @@
|
||||
<svg style="height: 512px; width: 512px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><polygon points="384,477.7,256,426.67,128,477.7,108.2,341.33,0,256,108.2,170.67,128,34.3,256,85.33,384,34.3,403.8,170.67,512,256,403.8,341.33" fill="#ac2929" fill-opacity="1"></polygon><g class="" style="" transform="translate(0,0)"><path d="M375.483 251.243l-109.98 51.138.213 183.381L477.01 266.346l-86.993-21.81zm-12.736 108.626l-5.947 14.699-48.604-8.955 5.007-12.832a141.306 141.306 0 0 0 13.51-11.358 167.184 167.184 0 0 0 16.566-17.517 170.478 170.478 0 0 0 12.606-17.958 115.607 115.607 0 0 0 9.514-17.97l14.068 2.51q-9.37 22.334-30.361 44.43-13.296 13.64-20.645 18.636zM121.603 244.334l-84.71 21.763L246.474 486V302.38l-109.946-51.137zm19.147 50.852a28.72 28.72 0 0 1 24.273 6.802 53.052 53.052 0 0 1 11.226 14.188l-13.081 2.676a28.542 28.542 0 0 0-5.388-7.374q-5.185-4.876-11.262-3.853l-.487.095a6.458 6.458 0 0 0-5.162 4.448c-.856 2.378-.238 5.554 1.796 9.371q4.08 7.6 10.81 9.027a23.785 23.785 0 0 0 8.563-.203l1.867-.344 5.791 10.822q-6.398 1.427-8.23 3.282-3.21 3.14.429 9.93a17.042 17.042 0 0 0 6.089 6.696 10.406 10.406 0 0 0 7.385 1.534l.416-.083q4.757-.964 5.079-4.757c.261-2.57-.655-5.744-2.748-9.514l12.38-2.545a49.247 49.247 0 0 1 4.103 11.226 19.956 19.956 0 0 1-.642 9.383 11.702 11.702 0 0 1-3.96 5.411 19.575 19.575 0 0 1-8.027 3.235l-1.19.214a27.971 27.971 0 0 1-17.494-2.7 32.193 32.193 0 0 1-14.128-14.092q-3.627-6.79-2.604-12.19a8.396 8.396 0 0 1 2.521-4.947h-.071q-1.844.31-7.04-2.497a32.11 32.11 0 0 1-12.916-13.593q-5.245-9.764-3.282-18.398 1.962-8.634 13.676-11zM27.19 248.865l108.78-116.309a7.135 7.135 0 0 1 1.427 0h.154q3.14.345 2.842 3.71a19.36 19.36 0 0 1-3.294 8.1 39.376 39.376 0 0 1-9.728 10.405q-3.912 2.938-15.044 9.514-12.796 7.505-19.55 14.77a92.535 92.535 0 0 0-11.513 14.486l32.907 3.758 8.182-12.963-20.967-2.378a36.415 36.415 0 0 1 4.757-3.83q2.379-1.605 8.444-5.125l6.422-3.747a92.975 92.975 0 0 0 12.903-8.776 61.472 61.472 0 0 0 12.51-14.414q6.84-10.846 6.494-17.957c-.19-3.949-2.105-6.434-5.684-7.505l79.798-85.161-102.097 179.576-5.708 10.06zm367.238-71.974q-3.817-5.458-3.758-8.515c0-2.033 1.19-3.199 3.568-3.448h.57a11.892 11.892 0 0 1 6.91 2.247 29.85 29.85 0 0 1 7.837 8.051q3.687 5.28 3.71 8.397c0 2.093-1.188 3.258-3.496 3.567h-.594a11.75 11.75 0 0 1-6.957-2.378 29.79 29.79 0 0 1-7.79-7.885zm-109.41-141.52l83.948 89.634h-1.189c-.38 0-.975 0-1.463.107q-7.825.892-8.324 6.862-.5 5.97 5.03 13.747a53.778 53.778 0 0 0 6.375 7.374 37.901 37.901 0 0 0 10.144 6.897q-2.117 2.89-.702 7.98a37.283 37.283 0 0 0 5.613 11.096 55.122 55.122 0 0 0 15.223 14.806q8.098 5.268 16.066 4.935.81 0 1.618-.13 8.776-.988 9.228-7.873a16.114 16.114 0 0 0-.463-4.853l58.689 62.686-91.572-22.941-6.1-10.703zm98.22 104.927l2.45 2.617c.451.57.903 1.189 1.355 1.784 1.808 2.592 2.723 4.757 2.723 6.529 0 1.771-1.034 2.782-3.127 3.02h-.512a10.346 10.346 0 0 1-6.077-1.95 22.596 22.596 0 0 1-6.184-6.137c-1.974-2.83-2.937-5.102-2.878-6.814.06-1.713 1.118-2.7 3.187-2.937h.524a10.263 10.263 0 0 1 6.005 1.879 19.147 19.147 0 0 1 2.533 2.01zM255.987 26L137.456 231.026l118.532 55.05 118.604-55.05zm-1.19 208.463q-17.529 0-24.58-12.273-7.053-12.273-7.053-34.988 0-22.714 7.052-35.047 7.052-12.332 24.582-12.344 17.53 0 24.582 12.332 7.052 12.333 7.052 35.047 0 22.715-7.052 34.988-7.053 12.273-24.582 12.285zm10.538-71.807q2.497 7.968 2.497 24.546 0 15.817-2.497 24.201-2.498 8.384-10.537 8.325-8.04 0-10.632-8.325-2.593-8.324-2.593-24.2 0-16.579 2.593-24.547t10.632-7.968q8.015-.012 10.513 7.956z" fill="#fff" fill-opacity="1"></path></g></svg>
|
||||
|
Before Width: | Height: | Size: 3.5 KiB |
@@ -1 +0,0 @@
|
||||
<svg style="height: 512px; width: 512px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M0 0h512v512H0z" fill="#000" fill-opacity="1"></path><g class="" style="" transform="translate(0,0)"><path d="M248 20.3L72.33 132.6 248 128.8zm16 0v108.5l175.7 3.8zm51.4 58.9c6.1 3.5 8.2 7.2 15.1 4.2 10.7.8 22.3 5.8 27.6 15.7 4.7 4.5 1.5 12.6-5.2 12.6-9.7.1-19.7-6.1-14.6-8.3 4.7-2 14.7.9 10-5.5-3.6-4.5-11-7.8-16.3-5.9-1.6 6.8-9.4 4-12-.7-2.3-5.8-9.1-8.2-15-7.9-6.1 2.7 1.6 8.8 5.3 9.9 7.9 2.2.2 7.5-4.1 5.1-4.2-2.4-15-9.6-13.5-18.3 5.8-7.39 15.8-4.62 22.7-.9zm-108.5-3.5c5.5.5 12.3 3 10.2 9.9-4.3 7-9.8 13.1-18.1 14.8-6.5 3.4-14.9 4.4-21.6 1.9-3.7-2.3-13.5-9.3-14.9-3.4-2.1 14.8.7 13.1-11.1 17.8V92.3c9.9-3.9 21.1-4.5 30.3 1.3 8 4.2 19.4 1.5 24.2-5.7 1.4-6.5-8.1-4.6-12.2-3.4-2.7-8.2 7.9-7.5 13.2-8.8zm35 69.2L55.39 149l71.21 192.9zm28.2 0l115.3 197L456.6 149zm-14.1 7.5L138.9 352.6h234.2zm133.3 21.1c13.9 8.3 21.5 26.2 22.1 43-1.3 13.6-.7 19.8-15.2 21.4-14.5 1.6-23.9-19.2-29.7-32.6-3.4-9.9-5.8-24 1.7-31.3 6.1-4.8 15-4.1 21.1-.5zm-223.7 16.1c2.1 4-.5 11.4-4.8 12.1-4.9.7-3.8-9.3-9.4-11.6-6.9-2.3-13.6 5.6-15 11.6 10.4-4 20.3 7.1 20.3 17-.4 11.7-7.9 24.8-19.7 28.1h-5.6c-12.7-.7-18.3-15.8-14.2-26.6 4.4-15.8 10.8-33.9 27.2-40.6 8.5-3.9 19 3.2 21.2 10zm213.9-8.4c-7.1-.1-4.4 10-3.3 14.5 3.5 11.5 7.3 26.6 18.9 30 6.8-1.2 4.4-12.8 3.7-16.5-4.7-10.9-7.1-23.3-19.3-28zM52 186v173.2l61.9-5.7zm408 0l-61.9 167.5 61.9 5.7zm-117.9.7l28.5 63.5-10 4.4-20-43.3c-6.1 3-13 8.9-14.6-1.4-1.3-3.9 8.5-5.1 8.1-11.9-.3-6.9 2.2-12.2 8-11.3zm-212 27.4c-2.4 5.1-4.1 10.3-2.7 15.9 1.7 8.8 13.5 6.4 15.6-.8 2.7-5 3.9-11.7-.5-15.7-4.1-3.4-8.9-2.8-12.4.6zm328.4 41.6c-.1 18.6 1.1 39.2-9.7 55.3-.9 1.2-2.2 1.9-3.7 2.5-5.8-4.1-3-11.3 1.2-15.5 1 7.3 5.5-2.9 6.6-5.6 1.3-3.2 3.6-17.7-1-10.2.7 4-6.8 13.1-9.3 8.1-5-14.4 0-30.5 7-43.5 5.7-6.2 9.9 4.4 8.9 8.9zM59.93 245.5c.59.1 1.34 1 2.48 3.6v61.1c-7.3-7-4.47-18-4.45-26.4 0-8.4 1.65-16.3-1.28-23.2-4.62-1.7-5.79-17-3.17-12.7 4.41 4.8 4.66-2.7 6.42-2.4zm178.77 7.6c8.1 4.5 13.8 14.4 10.8 23.6-2.1 15.2-27 21.1-30.4 29.7-1.2 3 25.4 1.6 30.2 1.6.5 4 1.5 10.7-3.8 11.7-14.5-1.2-29.9-.6-45.1-.6.4-11.2 7.4-21.3 17-26.8 6.9-4.9 15.4-9.3 18.1-17.9 1.8-4.5-.6-9.3-4.6-11.5-4.2-2.9-11-2.3-13.2 2.7-2 3.8-4.4 9.1-8.7 9.6-2.9.4-9 .5-7.2-4.9 1.4-5.6 3.4-11.5 8.2-15.2 8.8-6.3 19.9-6.7 28.7-2zm53.3-1.4c6.8 2.2 12 7.9 14.3 14.6 6.1 14.7 5.5 33.1-4.4 45.9-4.5 4.8-10.2 9.1-17 9.1-12.5-.1-22.4-11.1-24.8-22.8-3.1-13.4-1.8-28.7 6.9-39.8 6.8-7.6 16-10.3 25-7zm156.1 8.1c-1.6 5.9-3.3 13.4-.7 19.3 5.1-2 5.4-9.6 6.6-14.5.9-6.1-3.5-12.6-5.9-4.8zm-176.2 21.1c.6 10.5 1.7 22.8 9.7 28.2 4.9 1.8 9.7-2.2 11.1-6.7 1.9-6.3 2.3-12.9 2.4-19.4-.2-7.1-1.5-15-6.7-20.1-12.2-4.4-15.3 10.9-16.5 18zM434 266.8V328l-4.4 6.7v-42.3c-4.6 7.5-9.1 9.1-6.1-.9 6.1-7.1 4.8-17.4 10.5-24.7zM83.85 279c.8 3.6 5.12 17.8 2.04 14.8-1.97-1.3-3.62-4.9-3.41-6.1-1.55-3-2.96-6.1-4.21-9.2-2.95 4-3.96 8.3-3.14 13.4.2-1.6 1.18-2.3 3.39-.7 7.84 12.6 12.17 29.1 7.29 43.5l-2.22 1.1c-10.36-5.8-11.4-19.4-13.43-30-1.55-12.3-.79-24.7 2.3-36.7 5.2-3.8 9.16 5.4 11.39 9.9zm-7.05 20.2c-4.06 4.7-2.26 12.8-.38 18.4 1.11 5.5 6.92 10.2 6.06 1.6.69-11.1-2.33-12.7-5.68-20zm66.4 69.4L256 491.7l112.8-123.1zm-21.4.3l-53.84 4.9 64.24 41.1c-2.6-2.7-4.9-5.7-7.1-8.8-5.2-6.9-10.5-13.6-18.9-16.6-8.75-6.5-4.2-5.3 2.9-2.6-1-1.8-.7-2.6.1-2.6 2.2-.2 8.4 4.2 9.8 6.3l24.7 31.6 65.1 41.7zm268.4 0l-42.4 46.3c6.4-3.1 11.3-8.5 17-12.4 2.4-1.4 3.7-1.9 4.3-1.9 2.1 0-5.4 7.1-7.7 10.3-9.4 9.8-16 23-28.6 29.1l18.9-24.5c-2.3 1.3-6 3.2-8.2 4.1l-40.3 44 74.5-47.6c5.4-6.7 1.9-5.6-5.7-.9l-11.4 6c11.4-13.7 30.8-28.3 40-35.6 9.2-7.3 15.9-9.8 8.2-1.5l-12.6 16c10-7.6.9 3.9-4.5 5.5-.7 1-1.4 2-2.2 2.9l54.5-34.9zM236 385.8v43.4h-13.4v-30c-5-1.4-10.4 1.7-15.3-.3-3.8-2.9 1-6.8 4.5-5.9 3.3-.1 7.6.2 9.3-3.2 4.4-4.5 9.6-4.4 14.9-4zm29 .5c12.1 1.2 24.2.6 36.6.6 1.5 3 .8 7.8-3.3 7.9-7.7.3-21-1.6-25.9.6-8.2 10.5 5.7 3.8 11.4 5.2 7 1.1 15 2.9 19.1 9.2 2.1 3.1 2.7 7.3.7 10.7-5.8 6.8-17 11.5-25.3 10.9-7.3-.6-15.6-1.1-20.6-7.1-6.4-10.6 10.5-6.7 12.2-3.2 6 5.3 20.3 1.9 20.7-4.7.6-4.2-2.1-6.3-6.9-7.8-4.8-1.5-12.6 1-17.3 1.8-4.7.8-9.6.5-9-4.4.8-4.2 2.7-8.1 2.7-12.5.1-3 1.7-7 4.9-7.2zm133.5 5c-.2-.2-7 5.8-9.9 8.1l-15.8 13.1c10.6-6.5 19.3-12 25.7-21.2zm-247 14.2c2.4 0 7.5 4.6 9.4 7l26.1 31.1c-7.7-2.1-13.3-7.1-17.6-13.7-6.5-7.3-11.3-16.6-21.2-19.6-9-5-5.2-6.4 2.1-2.2-.3-1.9.2-2.6 1.2-2.6z" fill="#fff" fill-opacity="1"></path></g></svg>
|
||||
|
Before Width: | Height: | Size: 4.3 KiB |
@@ -1 +0,0 @@
|
||||
<svg style="height: 512px; width: 512px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M0 0h512v512H0z" fill="#000" fill-opacity="1"></path><g class="" style="" transform="translate(0,0)"><path d="M255.703 44.764c-6.176 0-12.353 1.384-17.137 4.152l-152.752 88.36c-9.57 5.535-9.57 14.29 0 19.826l152.752 88.359c9.57 5.536 24.703 5.536 34.272 0l152.754-88.36c9.57-5.534 9.57-14.289 0-19.824L272.838 48.916c-4.785-2.77-10.96-4.152-17.135-4.152zm-23.39 39.847l23.8 14.875-46.263 27.76 19.427 12.14a38.645 38.645 0 0 1 4.75-4.702c1.743-1.527 3.752-2.974 6.03-4.34 12.953-7.772 26.878-11.423 41.771-10.95 14.838.439 29.095 4.933 42.776 13.483 13.568 8.48 20.256 17.485 20.06 27.012-.148 9.498-7.198 18.43-21.148 26.8-6.026 3.616-12.705 6.767-20.037 9.45-7.23 2.689-15.166 4.908-23.805 6.658l-25.483-15.928c9.714-1.02 18.138-2.469 25.272-4.346 7.182-1.905 13.075-4.238 17.678-7 6.643-3.985 9.956-8.308 9.94-12.968-.026-4.724-3.318-9.137-9.878-13.237-6.616-4.135-13.752-6.24-21.408-6.316-7.609-.105-14.734 1.834-21.377 5.82-3.938 2.363-7.521 5.268-10.748 8.715-3.283 3.412-6.225 7.444-8.826 12.096l-70.645-44.153 68.113-40.869zm203.554 89.203c-1.938.074-4.218.858-6.955 2.413l-146.935 84.847c-9.57 5.527-17.14 18.638-17.14 29.69v157.699c0 11.05 7.57 15.419 17.14 9.89l146.937-84.843c9.57-5.527 17.137-18.636 17.137-29.688v-157.7c-2.497-8.048-5.23-12.495-10.184-12.308zm-359.763.48c-6.227 0-10.033 5.325-10.155 11.825v157.697c0 11.052 7.57 24.163 17.14 29.69l146.93 84.848c9.57 5.526 17.141 1.156 17.141-9.895v-157.7c0-11.051-7.57-24.159-17.14-29.687L83.09 176.225c-2.567-1.338-4.911-1.93-6.986-1.93zM393.4 233.587v24.264c-4.264-.079-8.281.397-12.052 1.43-3.771.973-7.454 2.538-11.045 4.693-7.722 4.633-13.737 11.055-18.047 19.267-4.31 8.154-6.825 17.955-7.543 29.405 2.963-4.65 6.174-8.715 9.63-12.196 3.458-3.54 7.228-6.535 11.313-8.986 10.28-6.168 18.565-7.211 24.85-3.129 6.33 4.055 9.494 12.442 9.494 25.16 0 14.066-3.524 27.462-10.572 40.19-7.049 12.668-16.498 22.558-28.35 29.67-13.064 7.838-23.188 8.17-30.371.992-7.138-7.263-10.707-21.474-10.707-42.631 0-21.685 4.175-41.216 12.525-58.592 8.395-17.462 19.889-30.57 34.479-39.324 4.624-2.775 9.112-5 13.467-6.676 4.354-1.675 8.665-2.854 12.93-3.537zm-242.789 13.582l27.635 16.58v85.809L192 357.809v25.414l-13.754-8.252v24.777l-23.502-14.102V360.87L112 335.223v-30.06l38.611-57.995zm4.133 31.355l-27.248 40.582 27.248 16.35v-56.932zm212.596 35.182c-1.706.057-3.703.773-5.992 2.147-4.535 2.72-7.947 6.701-10.237 11.943-2.244 5.156-3.367 11.572-3.367 19.25 0 7.678 1.123 12.777 3.367 15.299 2.29 2.436 5.702 2.295 10.237-.426 4.579-2.748 7.99-6.701 10.234-11.857 2.29-5.242 3.436-11.702 3.436-19.38 0-7.677-1.146-12.733-3.436-15.17-1.122-1.26-2.536-1.862-4.242-1.806z" fill="#fff" fill-opacity="1"></path></g></svg>
|
||||
|
Before Width: | Height: | Size: 2.7 KiB |
|
Before Width: | Height: | Size: 9.5 MiB |
|
Before Width: | Height: | Size: 6.4 MiB |
@@ -1,259 +0,0 @@
|
||||
.midgard5 .flexrow {
|
||||
align-items: center;
|
||||
}
|
||||
.midgard5 h3 {
|
||||
margin-top: 1rem;
|
||||
}
|
||||
.midgard5 .sheet.character form {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
.midgard5 .sheet.character .sheet-content {
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
.midgard5 .sheet.character .sheet-content .editor {
|
||||
height: 100%;
|
||||
}
|
||||
.midgard5 .sheet.character .profile-img {
|
||||
height: 64px;
|
||||
width: 64px;
|
||||
}
|
||||
.midgard5 .sheet.character .description {
|
||||
flex: 0 0 100%;
|
||||
margin: 0;
|
||||
}
|
||||
.midgard5 .level-display {
|
||||
text-align: right;
|
||||
font-weight: bold;
|
||||
}
|
||||
.midgard5 td,
|
||||
.midgard5 th {
|
||||
padding: 0 0.5rem 0 0.5rem;
|
||||
}
|
||||
.midgard5 td.center,
|
||||
.midgard5 th.center {
|
||||
text-align: center;
|
||||
}
|
||||
.midgard5 td.fixed-value,
|
||||
.midgard5 th.fixed-value {
|
||||
width: 3rem;
|
||||
text-align: center;
|
||||
}
|
||||
.midgard5 input.skill {
|
||||
width: 5rem;
|
||||
}
|
||||
.midgard5 input.fixed {
|
||||
width: 5rem;
|
||||
}
|
||||
.midgard5 .new-skill {
|
||||
font-style: italic;
|
||||
background: rgba(0, 0, 0, 0.3);
|
||||
color: rgba(255, 255, 255);
|
||||
}
|
||||
.midgard5 .new-skill button {
|
||||
background: rgba(255, 255, 255, 0.5);
|
||||
}
|
||||
.midgard5 button.roll-button {
|
||||
background: url(/icons/svg/d20-black.svg) no-repeat;
|
||||
background-size: 24px 24px;
|
||||
width: 26px;
|
||||
height: 26px;
|
||||
}
|
||||
.midgard5 span.spell-process {
|
||||
color: #5d5d5d;
|
||||
font-style: italic;
|
||||
}
|
||||
.midgard5 .filler {
|
||||
flex: 1 1 auto;
|
||||
}
|
||||
.midgard5 .health-bar {
|
||||
height: 2rem;
|
||||
background-color: rgba(0, 0, 0, 0.8);
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
gap: 1px;
|
||||
padding: 1px;
|
||||
}
|
||||
.midgard5 .health-bar input {
|
||||
flex: 0 0 3rem;
|
||||
text-align: center;
|
||||
height: 100%;
|
||||
background-color: #6d6c66;
|
||||
color: #ffffff;
|
||||
font-weight: bold;
|
||||
border-radius: 0;
|
||||
}
|
||||
.midgard5 .health-bar .lp-bar-item-empty,
|
||||
.midgard5 .health-bar .ap-bar-item-empty {
|
||||
flex-grow: 1;
|
||||
background-color: #c9c9c9;
|
||||
}
|
||||
.midgard5 .health-bar .lp-bar-item {
|
||||
flex-grow: 1;
|
||||
background-color: #39ea8b;
|
||||
}
|
||||
.midgard5 .health-bar .ap-bar-item {
|
||||
flex-grow: 1;
|
||||
background-color: #39a3ea;
|
||||
}
|
||||
.midgard5 .health-bar .negative-bar-item {
|
||||
flex-grow: 1;
|
||||
background-color: #ea3939;
|
||||
}
|
||||
.midgard5 .attributes {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
margin-bottom: 0.5rem;
|
||||
}
|
||||
.midgard5 .attributes .attribute {
|
||||
flex: 0 0 7rem;
|
||||
margin: 0;
|
||||
border: 1px solid rgba(0, 0, 0, 0.5);
|
||||
border-radius: 10;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
.midgard5 .attributes .attribute .attribute-header {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
text-align: center;
|
||||
justify-content: center;
|
||||
font-weight: bold;
|
||||
background-color: rgba(0, 0, 0, 0.5);
|
||||
color: #ffffff;
|
||||
height: 2.5rem;
|
||||
}
|
||||
.midgard5 .attributes .attribute .attribute-main {
|
||||
padding: 0.2rem;
|
||||
}
|
||||
.midgard5 .attributes .attribute .attribute-main .attribute-main-value {
|
||||
text-align: center;
|
||||
vertical-align: middle;
|
||||
font-size: 2rem;
|
||||
}
|
||||
.midgard5 .attributes .attribute .attribute-main .attribute-main-bonus {
|
||||
text-align: center;
|
||||
vertical-align: middle;
|
||||
font-size: 1rem;
|
||||
}
|
||||
.midgard5 .attributes .attribute .attribute-footer {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
gap: 0.3rem;
|
||||
padding: 0.3rem;
|
||||
background-color: rgba(0, 0, 0, 0.5);
|
||||
}
|
||||
.midgard5 .attributes .attribute .attribute-footer input {
|
||||
flex-grow: 1;
|
||||
text-align: center;
|
||||
background-color: rgba(255, 255, 255, 0.8);
|
||||
}
|
||||
|
||||
.midgard5.sheet.item form {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
.midgard5.sheet.item .sheet-content {
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
.midgard5.sheet.item .sheet-content .editor {
|
||||
height: 100%;
|
||||
}
|
||||
.midgard5.sheet.item .item-img {
|
||||
height: 64px;
|
||||
width: 64px;
|
||||
}
|
||||
.midgard5.sheet.item td,
|
||||
.midgard5.sheet.item th {
|
||||
padding: 0 0.5rem 0 0.5rem;
|
||||
}
|
||||
.midgard5.sheet.item td.center,
|
||||
.midgard5.sheet.item th.center {
|
||||
text-align: center;
|
||||
}
|
||||
.midgard5.sheet.item td.fixed-value,
|
||||
.midgard5.sheet.item th.fixed-value {
|
||||
width: 3rem;
|
||||
text-align: center;
|
||||
}
|
||||
.midgard5.sheet.item table.rolls-table .col-enabled {
|
||||
width: 3rem;
|
||||
text-align: center;
|
||||
}
|
||||
.midgard5.sheet.item table.rolls-table .col-create {
|
||||
width: 3rem;
|
||||
text-align: center;
|
||||
}
|
||||
.midgard5.sheet.item table.rolls-table .col-create button {
|
||||
background: rgba(255, 255, 255, 0.5);
|
||||
}
|
||||
.midgard5.sheet.item table.rolls-table .col-delete {
|
||||
width: 3rem;
|
||||
text-align: center;
|
||||
}
|
||||
.midgard5.sheet.item table.rolls-table .col-label {
|
||||
width: 6rem;
|
||||
}
|
||||
|
||||
.m5-roll .roll-title {
|
||||
text-align: center;
|
||||
vertical-align: middle;
|
||||
padding: 0.3rem 0 0.1rem 0;
|
||||
font-weight: bold;
|
||||
font-size: 1.3rem;
|
||||
}
|
||||
.m5-roll .roll-spell-details {
|
||||
text-align: right;
|
||||
padding-right: 1rem;
|
||||
font-weight: bold;
|
||||
}
|
||||
.m5-roll .roll-result {
|
||||
text-align: right;
|
||||
padding-right: 1rem;
|
||||
font-weight: bold;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
}
|
||||
.m5-roll .roll-result .roll-total {
|
||||
width: 100%;
|
||||
}
|
||||
.m5-roll .roll-result .roll-detail {
|
||||
width: 100%;
|
||||
margin-left: -100%;
|
||||
}
|
||||
.m5-roll .roll-row:not( :hover ) .roll-total {
|
||||
visibility: visible;
|
||||
}
|
||||
.m5-roll .roll-row:not( :hover ) .roll-detail {
|
||||
visibility: hidden;
|
||||
}
|
||||
.m5-roll .roll-row:hover .roll-total {
|
||||
visibility: hidden;
|
||||
}
|
||||
.m5-roll .roll-row:hover .roll-detail {
|
||||
visibility: visible;
|
||||
}
|
||||
.m5-roll .roll-ew-result-fumble {
|
||||
background-color: #ca3636;
|
||||
color: #ffffff;
|
||||
}
|
||||
.m5-roll .roll-ew-result-critical {
|
||||
background-color: #cac536;
|
||||
color: #000000;
|
||||
}
|
||||
.m5-roll .roll-ew-result-high {
|
||||
background-color: #368aca;
|
||||
color: #ffffff;
|
||||
}
|
||||
.m5-roll .roll-ew-result-fail {
|
||||
background-color: #753f83;
|
||||
color: #ffffff;
|
||||
}
|
||||
.m5-roll .roll-ew-result-pass {
|
||||
background-color: #36ca58;
|
||||
color: #000000;
|
||||
}
|
||||
@@ -1,2 +0,0 @@
|
||||
!function r(s,n,o){function l(t,e){if(!n[t]){if(!s[t]){var a="function"==typeof require&&require;if(!e&&a)return a(t,!0);if(i)return i(t,!0);throw(e=new Error("Cannot find module '"+t+"'")).code="MODULE_NOT_FOUND",e}a=n[t]={exports:{}},s[t][0].call(a.exports,function(e){return l(s[t][1][e]||e)},a,a.exports,r,s,n,o)}return n[t].exports}for(var i="function"==typeof require&&require,e=0;e<o.length;e++)l(o[e]);return l}({1:[function(e,t,a){var r,l=e("color-name"),i={};for(r in l)l.hasOwnProperty(r)&&(i[l[r]]=r);var s,n=t.exports={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};for(s in n)if(n.hasOwnProperty(s)){if(!("channels"in n[s]))throw new Error("missing channels property: "+s);if(!("labels"in n[s]))throw new Error("missing channel labels property: "+s);if(n[s].labels.length!==n[s].channels)throw new Error("channel and label counts mismatch: "+s);var o=n[s].channels,u=n[s].labels;delete n[s].channels,delete n[s].labels,Object.defineProperty(n[s],"channels",{value:o}),Object.defineProperty(n[s],"labels",{value:u})}n.rgb.hsl=function(e){var t,a=e[0]/255,r=e[1]/255,e=e[2]/255,s=Math.min(a,r,e),n=Math.max(a,r,e),o=n-s;return n===s?t=0:a===n?t=(r-e)/o:r===n?t=2+(e-a)/o:e===n&&(t=4+(a-r)/o),(t=Math.min(60*t,360))<0&&(t+=360),e=(s+n)/2,[t,100*(n===s?0:e<=.5?o/(n+s):o/(2-n-s)),100*e]},n.rgb.hsv=function(e){function t(e){return(u-e)/6/c+.5}var a,r,s,n,o,l=e[0]/255,i=e[1]/255,e=e[2]/255,u=Math.max(l,i,e),c=u-Math.min(l,i,e);return 0==c?n=o=0:(o=c/u,a=t(l),r=t(i),s=t(e),l===u?n=s-r:i===u?n=1/3+a-s:e===u&&(n=2/3+r-a),n<0?n+=1:1<n&&--n),[360*n,100*o,100*u]},n.rgb.hwb=function(e){var t=e[0],a=e[1],r=e[2];return[n.rgb.hsl(e)[0],100*(1/255*Math.min(t,Math.min(a,r))),100*(1-1/255*Math.max(t,Math.max(a,r)))]},n.rgb.cmyk=function(e){var t=e[0]/255,a=e[1]/255,e=e[2]/255,r=Math.min(1-t,1-a,1-e);return[100*((1-t-r)/(1-r)||0),100*((1-a-r)/(1-r)||0),100*((1-e-r)/(1-r)||0),100*r]},n.rgb.keyword=function(e){var t=i[e];if(t)return t;var a,r,s,n,o=1/0;for(r in l)l.hasOwnProperty(r)&&(n=l[r],s=e,n=n,(s=Math.pow(s[0]-n[0],2)+Math.pow(s[1]-n[1],2)+Math.pow(s[2]-n[2],2))<o)&&(o=s,a=r);return a},n.keyword.rgb=function(e){return l[e]},n.rgb.xyz=function(e){var t=e[0]/255,a=e[1]/255,e=e[2]/255;return[100*(.4124*(t=.04045<t?Math.pow((.055+t)/1.055,2.4):t/12.92)+.3576*(a=.04045<a?Math.pow((.055+a)/1.055,2.4):a/12.92)+.1805*(e=.04045<e?Math.pow((.055+e)/1.055,2.4):e/12.92)),100*(.2126*t+.7152*a+.0722*e),100*(.0193*t+.1192*a+.9505*e)]},n.rgb.lab=function(e){var e=n.rgb.xyz(e),t=e[0],a=e[1],e=e[2];return a/=100,e/=108.883,t=.008856<(t/=95.047)?Math.pow(t,1/3):7.787*t+16/116,[116*(a=.008856<a?Math.pow(a,1/3):7.787*a+16/116)-16,500*(t-a),200*(a-(.008856<e?Math.pow(e,1/3):7.787*e+16/116))]},n.hsl.rgb=function(e){var t,a,r=e[0]/360,s=e[1]/100,e=e[2]/100;if(0==s)return[a=255*e,a,a];for(var n,o=2*e-(n=e<.5?e*(1+s):e+s-e*s),l=[0,0,0],i=0;i<3;i++)(t=r+1/3*-(i-1))<0&&t++,1<t&&t--,l[i]=255*(a=6*t<1?o+6*(n-o)*t:2*t<1?n:3*t<2?o+(n-o)*(2/3-t)*6:o);return l},n.hsl.hsv=function(e){var t=e[0],a=e[1]/100,e=e[2]/100,r=a,s=Math.max(e,.01);return a*=(e*=2)<=1?e:2-e,r*=s<=1?s:2-s,[t,100*(0==e?2*r/(s+r):2*a/(e+a)),100*((e+a)/2)]},n.hsv.rgb=function(e){var t=e[0]/60,a=e[1]/100,r=e[2]/100,e=Math.floor(t)%6,t=t-Math.floor(t),s=255*r*(1-a),n=255*r*(1-a*t),o=255*r*(1-a*(1-t));switch(r*=255,e){case 0:return[r,o,s];case 1:return[n,r,s];case 2:return[s,r,o];case 3:return[s,n,r];case 4:return[o,s,r];case 5:return[r,s,n]}},n.hsv.hsl=function(e){var t=e[0],a=e[1]/100,e=e[2]/100,r=Math.max(e,.01),e=(2-a)*e,s=(2-a)*r,a=a*r;return[t,100*((a/=s<=1?s:2-s)||0),100*(e/=2)]},n.hwb.rgb=function(e){var t,a,r,s,n,o=e[0]/360,l=e[1]/100,e=e[2]/100,i=l+e;switch(1<i&&(l/=i,e/=i),o=6*o-(i=Math.floor(6*o)),a=l+(o=0!=(1&i)?1-o:o)*((t=1-e)-l),i){default:case 6:case 0:r=t,s=a,n=l;break;case 1:r=a,s=t,n=l;break;case 2:r=l,s=t,n=a;break;case 3:r=l,s=a,n=t;break;case 4:r=a,s=l,n=t;break;case 5:r=t,s=l,n=a}return[255*r,255*s,255*n]},n.cmyk.rgb=function(e){var t=e[0]/100,a=e[1]/100,r=e[2]/100,e=e[3]/100;return[255*(1-Math.min(1,t*(1-e)+e)),255*(1-Math.min(1,a*(1-e)+e)),255*(1-Math.min(1,r*(1-e)+e))]},n.xyz.rgb=function(e){var t=e[0]/100,a=e[1]/100,e=e[2]/100,r=3.2406*t+-1.5372*a+-.4986*e,s=-.9689*t+1.8758*a+.0415*e,t=.0557*t+-.204*a+1.057*e;return r=.0031308<r?1.055*Math.pow(r,1/2.4)-.055:12.92*r,s=.0031308<s?1.055*Math.pow(s,1/2.4)-.055:12.92*s,t=.0031308<t?1.055*Math.pow(t,1/2.4)-.055:12.92*t,[255*Math.min(Math.max(0,r),1),255*Math.min(Math.max(0,s),1),255*Math.min(Math.max(0,t),1)]},n.xyz.lab=function(e){var t=e[0],a=e[1],e=e[2];return a/=100,eLine truncated
|
||||
//# sourceMappingURL=bundle.js.map
|
||||
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"bundle.js","sources":["dist/bundle.js"],"sourcesContent":["(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){\n/* MIT license */\nvar cssKeywords = require('color-name');\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\nvar reverseKeywords = {};\nfor (var key in cssKeywords) {\n\tif (cssKeywords.hasOwnProperty(key)) {\n\t\treverseKeywords[cssKeywords[key]] = key;\n\t}\n}\n\nvar convert = module.exports = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']}\n};\n\n// hide .channels and .labels properties\nfor (var model in convert) {\n\tif (convert.hasOwnProperty(model)) {\n\t\tif (!('channels' in convert[model])) {\n\t\t\tthrow new Error('missing channels property: ' + model);\n\t\t}\n\n\t\tif (!('labels' in convert[model])) {\n\t\t\tthrow new Error('missing channel labels property: ' + model);\n\t\t}\n\n\t\tif (convert[model].labels.length !== convert[model].channels) {\n\t\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t\t}\n\n\t\tvar channels = convert[model].channels;\n\t\tvar labels = convert[model].labels;\n\t\tdelete convert[model].channels;\n\t\tdelete convert[model].labels;\n\t\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\t\tObject.defineProperty(convert[model], 'labels', {value: labels});\n\t}\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar min = Math.min(r, g, b);\n\tvar max = Math.max(r, g, b);\n\tvar delta = max - min;\n\tvar h;\n\tvar s;\n\tvar l;\n\n\tif (max === min) {\n\t\th = 0;\n\t} else if (r === max) {\n\t\th = (g - b) / delta;\n\t} else if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t} else if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tl = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tvar rdif;\n\tvar gdif;\n\tvar bdif;\n\tvar h;\n\tvar s;\n\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar v = Math.max(r, g, b);\n\tvar diff = v - Math.min(r, g, b);\n\tvar diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = s = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tif (r === v) {\n\t\t\th = bdif - gdif;\n\t\t} else if (g === v) {\n\t\t\th = (1 / 3) + rdif - bdif;\n\t\t} else if (b === v) {\n\t\t\th = (2 / 3) + gdif - rdif;\n\t\t}\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tvar r = rgb[0];\n\tvar g = rgb[1];\n\tvar b = rgb[2];\n\tvar h = convert.rgb.hsl(rgb)[0];\n\tvar w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar c;\n\tvar m;\n\tvar y;\n\tvar k;\n\n\tk = Math.min(1 - r, 1 - g, 1 - b);\n\tc = (1 - r - k) / (1 - k) || 0;\n\tm = (1 - g - k) / (1 - k) || 0;\n\ty = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\n/**\n * See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n * */\nfunction comparativeDistance(x, y) {\n\treturn (\n\t\tMath.pow(x[0] - y[0], 2) +\n\t\tMath.pow(x[1] - y[1], 2) +\n\t\tMath.pow(x[2] - y[2], 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tvar reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tLine truncated
|
||||
@@ -1,232 +0,0 @@
|
||||
{
|
||||
"ACTOR.TypeCharacter": "Charakter",
|
||||
"ACTOR.TypeNpc": "Kreatur / Nichtspielerfigur",
|
||||
"ACTOR.TypeVehicle": "Transportmittel / Pferd etc.",
|
||||
|
||||
"ITEM.TypeItem": "Gegenstand",
|
||||
"ITEM.TypeWeapon": "Waffe",
|
||||
"ITEM.TypeDefensiveWeapon": "Verteidigungswaffe",
|
||||
"ITEM.TypeArmor": "Rüstung",
|
||||
"ITEM.TypeSpell": "Zauber",
|
||||
|
||||
"midgard5.doRoll": "Würfeln",
|
||||
"midgard5.learn": "Lernen",
|
||||
|
||||
"midgard5.label": "Bezeichnung",
|
||||
"midgard5.description": "Beschreibung",
|
||||
"midgard5.attribute": "Leiteigenschaft",
|
||||
"midgard5.skill": "Fertigkeit",
|
||||
"midgard5.skill-value": "Fertigkeitswert",
|
||||
"midgard5.fw": "FW",
|
||||
"midgard5.bonus": "Bonus",
|
||||
"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.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.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.class": "Klasse",
|
||||
"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.exp-overall": "Erfahrungsschatz",
|
||||
"midgard5.exp-available": "Erfahrungspunkte",
|
||||
"midgard5.grace": "Göttliche Gnade",
|
||||
"midgard5.destiny": "Schicksalsgunst",
|
||||
"midgard5.luckPoints": "Glückspunkte",
|
||||
|
||||
"midgard5.akrobatik": "Akrobatik",
|
||||
"midgard5.alchimie": "Alchimie",
|
||||
"midgard5.anfuehren": "Anführen",
|
||||
"midgard5.athletik": "Athletik",
|
||||
"midgard5.balancieren": "Balancieren",
|
||||
"midgard5.beidhaendigerKampf": "Beidhändiger Kampf",
|
||||
"midgard5.beredsamkeit": "Beredsamkeit",
|
||||
"midgard5.betaeuben": "Betäuben",
|
||||
"midgard5.bootfahren": "Bootfahren",
|
||||
"midgard5.ersteHilfe": "Erste Hilfe",
|
||||
"midgard5.etikette": "Etikette",
|
||||
"midgard5.fallenEntdecken": "Fallen entdecken",
|
||||
"midgard5.fallenmechanik": "Fallenmechanik",
|
||||
"midgard5.faelschen": "Fälschen",
|
||||
"midgard5.fechten": "Fechten",
|
||||
"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.klettern": "Klettern",
|
||||
"midgard5.landeskunde": "Landeskunde",
|
||||
"midgard5.laufen": "Laufen",
|
||||
"midgard5.lesenVonZauberschrift": "Lesen von Zauberschrift",
|
||||
"midgard5.meditieren": "Meditieren",
|
||||
"midgard5.menschenkenntnis": "Menschenkenntnis",
|
||||
"midgard5.meucheln": "Meucheln",
|
||||
"midgard5.musizieren": "Musizieren",
|
||||
"midgard5.naturkunde": "Naturkunde",
|
||||
"midgard5.pflanzenkunde": "Pflanzenkunde",
|
||||
"midgard5.reiten": "Reiten",
|
||||
"midgard5.reiterkampf": "Reiterkampf",
|
||||
"midgard5.scharfschiessen": "Scharfschießen",
|
||||
"midgard5.schleichen": "Schleichen",
|
||||
"midgard5.schloesserOeffnen": "Schlösser öffnen",
|
||||
"midgard5.schwimmen": "Schwimmen",
|
||||
"midgard5.seilkunst": "Seilkunst",
|
||||
"midgard5.spurensuche": "Spurensuche",
|
||||
"midgard5.stehlen": "Stehlen",
|
||||
"midgard5.tarnen": "Tarnen",
|
||||
"midgard5.tauchen": "Tauchen",
|
||||
"midgard5.tierkunde": "Tierkunde",
|
||||
"midgard5.ueberleben": "Überleben",
|
||||
"midgard5.verfuehren": "Verführen",
|
||||
"midgard5.verhoeren": "Verhören",
|
||||
"midgard5.verstellen": "Verstellen",
|
||||
"midgard5.wagenlenken": "Wagenlenken",
|
||||
"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": "Giftresistenz",
|
||||
"midgard5.enduranceBonus": "Ausdauerbonus",
|
||||
|
||||
"midgard5.new-skill": "Neue Fertigkeit",
|
||||
"midgard5.special": "Spezial",
|
||||
"midgard5.learned-skill": "Gelernte Fertigkeit",
|
||||
"midgard5.language": "Sprache",
|
||||
"midgard5.weapon-skill": "Waffenfertigkeit",
|
||||
"midgard5.unlearned-skill": "Ungelernte Fertigkeit",
|
||||
"midgard5.innate-ability": "Angeborene Fähigkeit",
|
||||
|
||||
"midgard5.base-damage": "Grundschaden",
|
||||
"midgard5.defensive-weapon": "Verteidigungswaffe",
|
||||
"midgard5.no-skill": "Keine Fertigkeit",
|
||||
"midgard5.magic": "magisch",
|
||||
"midgard5.rangedWeapon": "Schusswaffe",
|
||||
"midgard5.assignItemToCharacter": "Füge Gegenstand einem Charakter hinzu, um Fähigkeit auwählen zu können",
|
||||
|
||||
"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-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-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.mod-operation-add100": "Addieren (max 100)",
|
||||
"midgard5.mod-operation-add": "Addieren",
|
||||
"midgard5.mod-operation-set": "Basiswert",
|
||||
"midgard5.mod-operation-fixed": "Fester Wert",
|
||||
|
||||
"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": "Giftresistenz",
|
||||
"midgard5.mod-stat-lp": "Lebenspunkte",
|
||||
"midgard5.mod-stat-ap": "Ausdauerpunkte",
|
||||
|
||||
"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"
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
{"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":{}},"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},"items":[],"effects":[],"flags":{"core":{"sourceId":"Actor.25UihsoT43jms4Rx"}},"_stats":{"systemId":"midgard5e","systemVersion":"1.1.0","coreVersion":"10.291","createdTime":1681861642287,"modifiedTime":1681862257893,"lastModifiedBy":"Fphp3NQlJ6KWctyq"},"folder":null,"sort":0,"ownership":{"default":0,"Fphp3NQlJ6KWctyq":3},"_id":"k21WA0JziDJ7yJ1U"}
|
||||
@@ -1,10 +0,0 @@
|
||||
{"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"}
|
||||
{"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"}
|
||||
{"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"}
|
||||
{"name":"Gegenstand","type":"item","img":"icons/svg/item-bag.svg","system":{"description":"","equippable":false,"equipped":true,"value":0,"magic":false,"rolls":{"formulas":{},"output":""},"mods":{},"calc":{}},"effects":[],"flags":{"core":{"sourceId":"Item.8GrWgO1jjysZPnxc"}},"_stats":{"systemId":"midgard5e","systemVersion":"1.1.0","coreVersion":"10.291","createdTime":1681862229001,"modifiedTime":1681862253981,"lastModifiedBy":"Fphp3NQlJ6KWctyq"},"folder":null,"sort":0,"ownership":{"default":0,"Fphp3NQlJ6KWctyq":3},"_id":"ERcxMh7hWiv42rfx"}
|
||||
{"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},"equippable":false,"equipped":true,"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":"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"}
|
||||
{"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"}
|
||||
{"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"}
|
||||
{"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"}
|
||||
{"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"}
|
||||
@@ -1,5 +0,0 @@
|
||||
{"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/midgard5e/assets/icons/macro/kriterfolgabwehr.svg","actorIds":[],"_id":"qWyrwvh7g9CbTKg9"}
|
||||
{"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/midgard5e/assets/icons/macro/kritfehlerangriff.svg","actorIds":[],"_id":"798kmgnTkpfP89Z9"}
|
||||
{"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/midgard5e/assets/icons/macro/kritfehlerabwehr.svg","actorIds":[],"_id":"W7rYb00B6rtabV05"}
|
||||
{"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/midgard5e/assets/icons/macro/kriterfolgangriff.svg","actorIds":[],"_id":"48DUqxdpHDCGKOHp"}
|
||||
{"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/midgard5e/assets/icons/macro/kritfehlerzauber.svg","actorIds":[],"_id":"XtzGuyYRyX8wVi1e"}
|
||||
@@ -1,4 +0,0 @@
|
||||
{"name":"1W10","permission":{"default":2,"CBq5YXAqbO7HoJ03":3},"type":"chat","flags":{"core":{"sourceId":"Macro.TqmUKpMpY4GhiTML"}},"scope":"global","command":"/r 1d10","author":"CBq5YXAqbO7HoJ03","img":"systems/midgard5e/assets/icons/wurfel/w10.svg","actorIds":[],"_id":"YWsPRUpZpgLBKIB3"}
|
||||
{"name":"1W100","permission":{"default":2,"CBq5YXAqbO7HoJ03":3},"type":"chat","flags":{"core":{"sourceId":"Macro.S01PfXnvLPeuKOH8"}},"scope":"global","command":"/r 1d100","author":"CBq5YXAqbO7HoJ03","img":"systems/midgard5e/assets/icons/wurfel/w100.svg","actorIds":[],"_id":"pXZIfqDIX9VKYonr"}
|
||||
{"name":"1W20","permission":{"default":2,"CBq5YXAqbO7HoJ03":3},"type":"chat","flags":{"core":{"sourceId":"Macro.mj9nIEgk0UDz8tbH"}},"scope":"global","command":"/r 1d20","author":"CBq5YXAqbO7HoJ03","img":"systems/midgard5e/assets/icons/wurfel/w20.svg","actorIds":[],"_id":"qBoxslCQXxR22xKc"}
|
||||
{"name":"1W6","permission":{"default":2,"CBq5YXAqbO7HoJ03":3},"type":"chat","flags":{"core":{"sourceId":"Macro.QBhV6De80g1wH6ot"}},"scope":"global","command":"/r 1d6","author":"CBq5YXAqbO7HoJ03","img":"systems/midgard5e/assets/icons/wurfel/w6.svg","actorIds":[],"_id":"5tpfRgbM5sTL9gur"}
|
||||
@@ -1,5 +0,0 @@
|
||||
{"name":"Kritischer Erfolg bei der Abwehr","permission":{"default":2,"CBq5YXAqbO7HoJ03":3},"flags":{},"img":"icons/svg/holy-shield.svg","description":"<h2>Tabelle 6: Kritischer Erfolg bei der Abwehr</h2>","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"}
|
||||
{"name":"Kritischer Fehler bei Angriffen","permission":{"default":2,"CBq5YXAqbO7HoJ03":3},"flags":{"exportSource":{"world":"midgard-test","system":"midgard5e","coreVersion":"0.7.9","systemVersion":0.02}},"img":"icons/svg/d20-grey.svg","description":"<h2>Tabelle 4: Kritische Fehler bei Angriffen</h2>","results":[{"_id":"dIX62PrnwNTY929l","flags":{},"type":0,"text":"<h3>Keine besonderen Auswirkungen.</h3>","img":"icons/svg/d20-black.svg","resultId":"","weight":10,"range":[1,10],"drawn":false},{"_id":"IgEkc7L4KlW745gH","flags":{},"type":0,"text":"<h3>Der Angreifer verliert kurz das Gleichgewicht.</h3>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":"<h3>Der Angreifer lässt seine Waffe fallen.</h3>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":"<h3>Die Angriffswaffe wird zerstört.</h3>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":"<h3>Der Angreifer verletzt sich selbst.</h3>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":"<h3>Der Angreifer trifft aus Versehen die nächststehende befreundete Person.</h3>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":"<h3>Der Angreifer läuft in die Waffe des Gegners hinein.</h3>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":"<h3>Der Angreifer verstaucht sich den Fuß.</h3>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":"<h3>Der Angreifer stolpert und stürzt zu Boden.</h3>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.<p>51-55</p><p>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. </p><p>71-90</p><p>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.</p>","img":"icons/svg/d20-black.svg","resultId":"","weight":9,"range":[91,99],"drawn":false},{"_id":"huSeP6mv8OeNYJDj","flags":{},"type":0,"text":"<h3>Der Angreifer stürzt zu Boden und zerstört dabei seine Waffe</h3>. 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":"sVgHbAxseIoeLine truncated
|
||||
{"name":"Kritischer Fehler bei der Abwehr","permission":{"default":2,"CBq5YXAqbO7HoJ03":3},"flags":{"exportSource":{"world":"midgard-test","system":"midgard5e","coreVersion":"0.7.9","systemVersion":0.02}},"img":"icons/svg/fire-shield.svg","description":"<h2>Tabelle 5: Kritischer Fehler bei der Abwehr</h2>","results":[{"_id":"Xdzk7cvwwnI2i18M","flags":{},"type":0,"text":"<h3>Keine besonderen Auswirkungen.</h3>","img":"icons/svg/d20-black.svg","resultId":"","weight":10,"range":[1,10],"drawn":false},{"_id":"8xuz2YsB90Z0KbLs","flags":{},"type":0,"text":"<h3>Der Angegriffene verliert kurz das Gleichgewicht.</h3>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":"<h3>Die Verteidigungswaffe ist zerstört.</h3>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.<p>81-90</p>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":"<h3>Der Angegriffene lässt seine Verteidigungswaffe fallen.</h3>Die Waffe fällt ihm zu Füßen. Benutzt er weder Schild noch Parierwaffe, hat dieser Wurf dieselben Folgen wie 41-50.<p>41-50</p>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.<p>51-60</p>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":"<h3>Der Verteidiger wird nach hinten gedrängt (Nahkampf), oder der Schwung seiner Ausweichbewegung reißt ihn mit (Fernkampf).</h3>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.<p>51-60</p>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":"<h3>Die Sicht des Angegriffenen wird behindert.</h3>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":"<h3>Der Verteidiger gibt sich eine Blöße.</h3>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":"<h3>Der Angegriffene verstaucht sich den Fuß.</h3>DieLine truncated
|
||||
{"name":"Kritischer Schaden","permission":{"default":2,"CBq5YXAqbO7HoJ03":3},"flags":{"exportSource":{"world":"midgard-test","system":"midgard5e","coreVersion":"0.7.9","systemVersion":0.02}},"img":"icons/svg/d20-highlight.svg","description":"<h2>Tabelle 7: Kritischer Schaden</h2><h3>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.</h3>","results":[{"_id":"YXyhoVz5EAMuc05m","flags":{},"type":0,"text":"<h3>normaler schwerer Schaden</h3>","img":"icons/svg/d20-black.svg","resultId":"","weight":10,"range":[1,10],"drawn":false},{"_id":"jwBN8gCTqMgaPuc4","flags":{},"type":0,"text":"<h3>kurzer SchockDas Opfer kann durch den Schock der Verwundung eine Runde lang nicht angreifen.</h3>","img":"icons/svg/d20-black.svg","resultId":"","weight":10,"range":[11,20],"drawn":false},{"_id":"g1zQk3AHDdlq3sqH","flags":{},"type":0,"text":"<h3>Rumpftreffer mit Rippenbrüchen</h3>[[1d3]] Rippen des Opfers brechen.","img":"icons/svg/d20-black.svg","resultId":"","weight":10,"range":[21,30],"drawn":false},{"_id":"XdF7xn83ChS4Qrzf","flags":{},"type":0,"text":"<h3>Rumpftreffer mit Gefahr innerer Verletzungen</h3>Das Opfer verliert zusätzlich zum normalen Schaden [[1d6]] LP und AP.<br /><b>*</b>: Schwere innere Verletzungen","img":"icons/svg/d20-black.svg","resultId":"","weight":5,"range":[31,35],"drawn":false},{"_id":"UjqhkUyUaBZ7n6CC","flags":{},"type":0,"text":"<h3>schwere Verletzung der Wirbelsäule <b>++</b></h3>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":"<h3>schwere Verletzung am rechten Arm <b>+</b></h3><b>*</b>: 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.","img":"icons/svg/d20-black.svg","resultId":"","weight":7,"range":[41,47],"drawn":false},{"_id":"1dFkXxy7VhtSbahw","flags":{},"type":0,"text":"<h3>schwere Verletzung am linken Arm <b>+</b></h3><b>*</b>: 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.","img":"icons/svg/d20-black.svg","resultId":"","weight":8,"range":[48,55],"drawn":false},{"_id":"CiAwKT1ZhOGKplBr","flags":{},"type":0,"text":"<h3>schwere Verletzung am rechten Bein <b>+</b></h3><b>*</b>: 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.","img":"icons/svg/d20-black.svg","resultId":"","weight":9,"range":[56,64],"drawn":false},{"_id":"PZa6plWsSiQFmu5c","flags":{},"type":0,"text":"<h3>schwere Verletzung am linken Bein <b>+</b></h3><b>*</b>: 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.","img":"icons/svg/d20-black.svg","resultId":"","weight":9,"range":[65,73],"drawn":false},{"_id":"5xXKfpkaOap9WV0o","flags":{},"type":0,"text":"<h3>schwerer Kopftreffer <b>++</b></h3>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":"<h3>Treffer im Gesicht</h3>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":"<h3>Kopftreffer mit Hörschaden <b><++></b></h3>Helmlose Opfer verlieren zusätzlich zum normalen Schaden [[1d3]] LP und AP. Zusätzlich schwere Verletzung am Ohr. Helmträger sind vor Line truncated
|
||||
{"name":"Kritische Fehler beim Zaubern","permission":{"default":2,"CBq5YXAqbO7HoJ03":3},"flags":{"exportSource":{"world":"midgard-test","system":"midgard5e","coreVersion":"0.7.9","systemVersion":0.02}},"img":"icons/svg/book.svg","description":"<h2>Tabelle 1: Kritische Fehler Beim Zaubern</h2><h3><b>*</b>: 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.</br>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.</h3>","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":"<h3><b>*</b> Der Zauberer verspricht sich oder kann seine Gedanken nicht zusammenhalten.</h3>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":"<h3>Der Zauberer unterschätzt das Ausmaß des Flusses arkaner Energie.</h3>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":"<h3><b>*</b> Der Zauberer irrt sich bei der Festlegung des Effekts.</h3>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":"<h3><b>*</b> Der Zauberer irrt sich bei der Auswahl des Opfers/ des Wirkungsbereichs.</h3>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":"<h3>Der Zauberer wird geschwächt.</h3>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":"<h3>Es kommt zu einer magischen Stauung.</h3>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":"<h3>Der Zauberer erleidet eine schwere Bewusstseinsstörung.</h3>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":"<h3><b>*</b>Der Zauberer verzaubert sich selbst.</h3>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 gLine truncated
|
||||
@@ -1,2 +0,0 @@
|
||||
{"name":"Midgard V1 (alte Farbkarte)","permission":{"default":0,"CBq5YXAqbO7HoJ03":3},"flags":{"core":{"sourceId":"Scene.npNUPVkNbxd93do8"}},"description":"","navigation":false,"navOrder":null,"navName":"","active":false,"initial":{"x":1782,"y":1118,"scale":1.01},"img":"systems/midgard5e/assets/maps/midgard_v1.png","thumb":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAABkCAYAAAA8AQ3AAAAgAElEQVR4XkS9B5xlVZX2/T/7hJurbuXqqs45EFuiKEEFZRCMg2NAHXXU9xtlHHX09RsFRcGE+dUZR51BRV/BiFlQBJEWELrpbhro3F2hK9e9FW46Ye/vt/a57Se2v2761jnn7rPXWs96nmdtnfxnT1Z81Szf1PE9bq6+lbAZAQ5ojZFfBhztgNEYAJVA7IJ8zJVfBvsh7eB48ntAK+xvHPmDQ9mFn+6/hp78KTa8N6FSzfDY7jxNB5RjUI5DPuvy3OcukMklgIdD/LfnwDg4jsFoA8rgGIfjz5apzHmgwZV7Y8j1hAxsbMmjYoxCOZrqTJYgB/mOEKNjFuezlDpCisWY+W97zD/l8ZarfsJeNmFMDHEiXwWlPEwszyDXijnj/C4KPVmydg0gcQxN7eOaBB1HTOy5B5pVCv2XMnn00xR7dnPZhufwygvfR+C6NOIc+dooK397I1/6dpU3vtBhsgoP7G1x4ytd6qHD7T92+OerEu7Z3cHywgI71yqePKmom4Tz1ub4y+EW73p5hhOz3azIzPDVe2Pee53h9l9GvOulAV/+cci7rgy45V6XueuGOHrfDJkVWeJyBzw1C4Usyc4h9GAP/lIZ3ASTGBw0cbSSQu4aCisdotYMSazoGNqAXwxI5iYJx0/g1qokKzZiNu3EuDliWfvxSTYvP8upjvWE61aRVZr6zDJX7/0P1uvjTKleNjWfJLj2rTBxkLNG/4c4yfG2lffRWjFAgkOCISN7xZF3C45SeBhieasJKDfBNS64isAxhAZcu7c0iTZM7X6A+omv4VZrxKWN0NxInMvhFZ5E6SpBFKESQxQ4aKUwiUPkauKij/HlOi6Oq+xe9jyHUn4J2e1x7Nq18b0QrRVh7KK1wXe13VuOckhiB2M0id2joI2L0Z6Nl0S2jzaszi9yq6/p1C06dt7AQw+OsnVFC91/JnlZ36Nf4qZj6zlRy+CpBZR2qXsunmnQnUyjCUhU0caEK4GnQnwd2tCLPIdW/p0MvvDNFDyPpoEAaGqDRhFpzaFdMyxU6jbOlApAeTiOgjDGyfgkUQMdaeQLOPK9bKDLN5f4dNoxIC9G8oDByOdcib0ER7sY+4+8PvkJuYaDXF4+Z9qfl5TixPL59vWUBJmLk6RxbW9jXz64rouRxWvnkY/3/IivNF7FlM5UncztI5WcaZU/VPo2H5t+A3HoYFT7hpIg7BexYSt5A6M0juNKxNoHw9WYuraJQwIZ+dl2UMvDaaPpCAw/2fNyVpTHWfeeiJHJIu/fNUCry6cpP1f32KhqfPSKKfycxFViX7ZJFPlsaDeEUpKF0jWT+zz09DXU1l4HGXAi2V6KjvEfcdbgLuLYoViUjAo2B2nwA9lgaXA6sSZRULkjYP6pDG+6+ufs1eswcWRfiP0GkoMTuWeMl1XsvKQHLxPgoe06esYhks8oQ71WZ3TXB1Gxi4nW0MjexXBHg96cy+Xn3shZQxexTJbJw3dRvv+/+NkPDR95uWZ6zuVX+0P+6SqXJ48VOD7l4mfqbBnq5NDoIoutkK1ln8mmw4i/icW5JV7+shX85L4K2zcOsFhdYL15loePOfzTVT7f+WWTizYpFpY1R1uKPXMJI6vKxPkiFPLo/RMk56zGXbEKwgAtayoFSGvcJEv3+hvp27ESbTwS7RCNP0s0fhxXJyTFAeJI42w8A53J2/dswoQ3PPS/+bvs/XyueDOPn3UdHhGbd9/Dbd5n6aHCWFLgzr90csHFw6zJTHNG7iD3zF/BF8/9FnU3S+yAvziHmjqOCRzcjl7cYjdBxiU8+gxmYAhVKBFoecMalS3araaNsklLG8PEX56kOrHbJiWdq4EzDk6dbBKCrqFdjY8EsGyIBExA7GeIg4QkIwlAkqQPvsZ1IFuIUSZCI4HTssEoaxAZSWAG30uDW6IylrWJJXFlJH5Rrvyda9dUyyYzCSvyi9w8vJW+2UOEXS/mt3fcx7+9ewj3zDczfvwo3/rDd/mFHsJpLpMxCbEuEXuSkFqUwwqJ65CYPJ6jMW6NfBLaAu4mCu05NILn0X/ZJ/BKeVsAJH205NXKo2jF9Ng8J/cu2OdV8myS6RxJOAIyfLSOcHSCTuIUlKQRkAIRiWebiCVJuxi7fhKDfvuT6edtrkr/x+Yd48mipgnfJjlJTElin1sZD+2q9l3krWr71FIA0qTp2Oex+cVx+ETXj/hi7WVMR0HVyX1xvOI3lsof6vgeHzv1eslD6UPKw8p/bRltJyxZf9+1G8Mkgr48i3bQkg01jiQ4ubXv4MiFtMEoQzmj+dHjr2C4e4zV79E8c7LA6/cNUfd8nKxUsoBtxHxiyyjjI13kMj6tRDHcW+PM7RM2WaULKWuefrmHJ96EvvitGNlUWtnNHDz+RfTIg1QWuylmfaQUKy8kimN8VWfNxoThgXn73STpzN6RYWG/zw3X/oKn4nXoKLbVXes4/YxOMMahoxPOPr8PL3AsIowdxwa0kR0aJ8wePMHs9Acp5i/GxCuZXvoKeT9ioLNBzlXEFAmbLktxSBhqzHRE7lSCNxCwVAnxPZcgcCgVHDILMeu7Y67sTWBO41UMWy7dRjJ8Hid3H+LgsSart69lsC+PzwJ7JosM9pToqI2ysf5HZsYjSt2GqTmHo4nH5zpWMzdhcPpz6IyPG0p17ba12m7EFMegTUSu9ErWX/B8TCsinBwjmTpE4pUwG86kVV5pq6NNMBqb8L0k5jX3fZBXdP+W2zo/xx73TAr1CrnqDC9kF6/07uZPCxs5NRVx+dXbOGf6JyyHLv/a9Q2ObbrUrq0tgpUp3Cd+jc4XCXpWEI09S9bPYVxDrDM4niaX1ND9G/HOeB6u4xArRVYLskkYe/hPLFR/ZYNZ0IcJM+CGKCPh27TozNVpcvbimNh1iVzwlEuj2EbtyhPYRsaL8QSEuBJnhjhMMI4EnRRqB1+18DwXqWUSIIkkDWMIw6z9ve8buzd0JKsKnhOyNT/Pu8OYyzbP8fu9Q+w7tY6XnTXDxi3D1Buazzw2z89DlyBsIoBPOzkMDXCXKUahYDx8R1vEpUxM4sdkE88mj0h5xJnz6b38dvxCHuU61KUG2dbI2A5gsQ6HHpoiboU40r247t/QkuN5NnwdLQVekowgnhQc2ITlSS4QoJImaFkTR768rJcgI0lGEpeOstdxPWWxsaArez25pMRRIrGUoihFYD8v1xLEqpSya2s7OhJcX6XJ1HZwio8XfsQXmq9gNnKrTv7z45VM0ih/qPR9bp56DbFFTnKxBGWrhNxXsp9cTHarAM60lZCncZr2A2hPPi+LJIEgiUp2texGhy6WuHv3a1nVNcaq9xoOnyzyjr09VHyX0M1CNma7m/DNC0YplBy0XNs4cltcZaGWXR+5rl091+GhU2/GnPeWNIO3kV/w129xTsfd7d0mCyS9mySttEN1fflohCswXmlm7sxQ3Rfwppf8gr3Oans/C++lhQiyKeJKQjp7PM54Tq9tF9JWBCLj0Gg2Gf3zF4iak6xYcyO5lQOESzMc2XcTkT5i76uIyKC5/v6En201mCWHurQyrovK+DiVGD8XUFvho4ISfmsFHSrHhmyTK/0JLomeprM/oWPbVYzplcwv93LPl/6HMy7eyMWXrMIsTRM0pxi84AWc/Pnd9JU0XiZDsTFOM/Q5GTr8IezkMV3mQNBBrd6La7K0LGaHliDPsINC/98xPDyInjhMIpunMo0zvJVkwzlESy3iygROoYCq11GBtGoKZ2qe5x34CuuiZ5kafi1xJuHdHXfguor9CzuZjhscXzB4zUmu2ZllRXyY/6z/E786/4PEjk/oKDJatmiMaSzgOwp3dgTT0YMbhcSNEEfX8AIfT6p7qQfTNZAmDtsRaurLy0z9+evEziGc2CdSiX1+WzyVtJICKBQ6E6NCbQNetkPL1UQ5KcBxu51zUL4UrIAgMASBRLFDFEVpACPvPsbGuvySoma3uEFpRTNWtvBKsUcQhBR14+KrkHetXsMVmX7CiRFOLfi0llvsuO5VBPPPUHBH+Mne3Xx1vkyh2aLlBTg6IOssomzwGYwbkjgeGb1IMVZEfgs/lvjwqPk+YfBihi77ALlSESOJQxpaSSwOtOKEVuww8cws08dqdu3cTBYt7XecYGyLJvHebglts5Qmov+/pZHIl+dwbYFxBJy4HiaSzJikaE2uodP1lmeQYmNxmmWXNEoAjp8WSdspyRUFsUYJRtp0i8aSdPlsnmtTTY7iU30/5vbKy5jGrzqZL45VclGt/OHyd7l54s20YuGuDEqQVTtZKV+RWEiY9qUpHE45LqcpV0+ho01ktjRJ0hNIl3aKXU6dux99DSt7J1jzHs3IyU4mRj2Mn8JW3XRtEKzb1rKbRZC8IE/bMrs2LdrrNBpQ6pD+znDyVAdLCxm0o/BNiPZdsn7E4KBwWBpBpLHWFtkUSw16O1tpIm23t46rmb/TY25vwJuuvId93maQKiBw21ZTFy1/1iHlXp/nXDCQvpdE22WR2j3+8O9YSj6JcgZZvfXLZHt7bDCM7jvA2MmPEalJlHEpJh2sHu9gtPcohe7IVpqlSNGse7iRbDyHxF/Bi+PNvKP3EdaWplGtFp60axkLine truncated
|
||||
{"name":"Midgard V2 (neue Farbkarte)","permission":{"default":0,"CBq5YXAqbO7HoJ03":3},"flags":{"core":{"sourceId":"Scene.RTqvlO0wmmbETbvI"}},"description":"","navigation":false,"navOrder":null,"navName":"","active":false,"initial":{"x":1813,"y":1224,"scale":0.95},"img":"systems/midgard5e/assets/maps/midgard_v2.png","thumb":"data:image/png;base64,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 truncated
|
||||
@@ -1,73 +0,0 @@
|
||||
{
|
||||
"id": "midgard5e",
|
||||
"title": "Midgard 5. Edition",
|
||||
"description": "The German RPG Midgard 5. Edition",
|
||||
"version": "1.2.3",
|
||||
"compatibility": {
|
||||
"minimum": "10",
|
||||
"verified": "10"
|
||||
},
|
||||
"authors": [{ "name": "Byroks" }],
|
||||
"scripts": ["bundle.js"],
|
||||
"styles": ["bundle.css"],
|
||||
"packs": [
|
||||
{
|
||||
"name": "blaupause-spielfiguren",
|
||||
"label": "Blaupausen für Spielfiguren",
|
||||
"system": "midgard5e",
|
||||
"path": "./packs/actors/blaupause-spielfiguren.db",
|
||||
"type": "Actor"
|
||||
},
|
||||
{
|
||||
"name": "blaupause-gegenstaende",
|
||||
"label": "Blaupausen für Gegenstände",
|
||||
"system": "midgard5e",
|
||||
"path": "./packs/items/blaupause-gegenstaende.db",
|
||||
"type": "Item"
|
||||
},
|
||||
{
|
||||
"name": "tabellen-kritische-ereignisse",
|
||||
"label": "Tabellen Kritische Ereignisse",
|
||||
"system": "midgard5e",
|
||||
"path": "./packs/rolltables/tabellen-kritische-ereignisse.db",
|
||||
"type": "RollTable"
|
||||
},
|
||||
{
|
||||
"name": "makros-kritische-ereignisse",
|
||||
"label": "Makros Kritische Ereignisse",
|
||||
"system": "midgard5e",
|
||||
"path": "./packs/macros/makros-kritische-ereignisse.db",
|
||||
"type": "Macro"
|
||||
},
|
||||
{
|
||||
"name": "makros-standardwurfel",
|
||||
"label": "Standardwürfel",
|
||||
"system": "midgard5e",
|
||||
"path": "./packs/macros/makros-standardwurfel.db",
|
||||
"type": "Macro"
|
||||
},
|
||||
{
|
||||
"name": "scenes-midgard-karten",
|
||||
"label": "Midgard-Karten",
|
||||
"system": "midgard5e",
|
||||
"path": "./packs/scenes/scenes-midgard-karten.db",
|
||||
"type": "Scene"
|
||||
}
|
||||
],
|
||||
"languages": [
|
||||
{
|
||||
"lang": "de",
|
||||
"name": "Deutsch",
|
||||
"path": "lang/de.json"
|
||||
}
|
||||
],
|
||||
"gridDistance": 1,
|
||||
"gridUnits": "m",
|
||||
"primaryTokenAttribute": "lp",
|
||||
"secondaryTokenAttribute": "ap",
|
||||
"url": "https://github.com/Byroks/foundry-vtt-system-midgard5",
|
||||
"manifest": "https://github.com/Byroks/foundry-vtt-system-midgard5/releases/download/v1.2.2/system.json",
|
||||
"download": "https://github.com/Byroks/foundry-vtt-system-midgard5/releases/download/v1.2.2/midgard5-v1.2.2.zip",
|
||||
"initiative": "@calc.attributes.gw.value",
|
||||
"license": "LICENSE.txt"
|
||||
}
|
||||
@@ -1,309 +0,0 @@
|
||||
{
|
||||
"Actor": {
|
||||
"types": ["character"],
|
||||
"templates": {
|
||||
"characterDescription": {
|
||||
"info": {
|
||||
"description": "",
|
||||
"class": "",
|
||||
"race": "",
|
||||
"magicUsing": false,
|
||||
"gender": "",
|
||||
"weight": "",
|
||||
"height": "",
|
||||
"shape": "",
|
||||
"age": "",
|
||||
"caste": "",
|
||||
"occupation": "",
|
||||
"origin": "",
|
||||
"faith": ""
|
||||
}
|
||||
},
|
||||
"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": 2
|
||||
},
|
||||
"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": {
|
||||
"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 }
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"character": {
|
||||
"templates": ["characterBars", "attributes", "characterDescription", "characterHeader", "skills"],
|
||||
"calc": {}
|
||||
}
|
||||
},
|
||||
"Item": {
|
||||
"types": ["skill", "weapon", "defensiveWeapon", "armor", "spell", "item"],
|
||||
"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": true
|
||||
},
|
||||
"physical": {
|
||||
"value": 0,
|
||||
"magic": false
|
||||
},
|
||||
"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"
|
||||
}
|
||||
}
|
||||
},
|
||||
"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"],
|
||||
"rolls": {
|
||||
"formulas": {},
|
||||
"output": ""
|
||||
},
|
||||
"mods": {},
|
||||
"calc": {}
|
||||
},
|
||||
"weapon": {
|
||||
"templates": ["itemDescription", "stats", "equippable", "physical"],
|
||||
"special": 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",
|
||||
"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"],
|
||||
"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": {}
|
||||
},
|
||||
"armor": {
|
||||
"templates": ["itemDescription", "stats", "equippable", "attributeMod", "physical"],
|
||||
"lpProtection": 0,
|
||||
"apProtection": 0,
|
||||
"rolls": {
|
||||
"formulas": {},
|
||||
"output": ""
|
||||
},
|
||||
"calc": {}
|
||||
},
|
||||
"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": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,60 +0,0 @@
|
||||
<div class="dice-roll m5-roll">
|
||||
<div class="flexcol">
|
||||
<h3 class="roll-title">{{res.label}}</h3>
|
||||
|
||||
<table>
|
||||
<tbody>
|
||||
{{#if (eq iType "spell")}}
|
||||
<tr>
|
||||
<td>{{localize "midgard5.actor-ap"}}</td>
|
||||
<td class="roll-spell-details">{{i.ap}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{localize "midgard5.spell-castDuration"}}</td>
|
||||
<td class="roll-spell-details">{{i.castDuration}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{localize "midgard5.spell-range"}}</td>
|
||||
<td class="roll-spell-details">{{i.range}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{localize "midgard5.spell-effectTarget"}}</td>
|
||||
<td class="roll-spell-details">{{localize (m5concat "midgard5.spell-target-" i.effectTarget)}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{localize "midgard5.spell-effectArea"}}</td>
|
||||
<td class="roll-spell-details">{{i.effectArea}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{localize "midgard5.spell-effectDuration"}}</td>
|
||||
<td class="roll-spell-details">{{i.effectDuration}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{localize "midgard5.spell-origin"}}</td>
|
||||
<td class="roll-spell-details">{{i.origin}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{localize "midgard5.spell-type"}}</td>
|
||||
<td class="roll-spell-details">{{localize (m5concat "midgard5.spell-type-" i.type)}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{localize "midgard5.spell-process"}}</td>
|
||||
<td class="roll-spell-details">{{localize (m5concat "midgard5.spell-process-" i.process)}}</td>
|
||||
</tr>
|
||||
{{/if}}
|
||||
|
||||
{{#each rolls as |roll index|}}
|
||||
{{#if roll.enabled}}
|
||||
<tr class="roll-row {{roll.css}}">
|
||||
<td>{{roll.label}}</td>
|
||||
<td class="roll-result">
|
||||
<span class="roll-total">{{roll.totalStr}}</span>
|
||||
<span class="roll-detail">{{roll.result}}</span>
|
||||
</td>
|
||||
</tr>
|
||||
{{/if}}
|
||||
{{/each}}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1,13 +0,0 @@
|
||||
<div class="attribute" data-attribute="{{attributeId}}" data-value="{{calc.value}}">
|
||||
<div class="attribute-header">{{localize (m5concat "midgard5.actor-" attributeId "-long")}}</div>
|
||||
|
||||
<div class="attribute-main roll-attribute-button">
|
||||
<div class="attribute-main-value">{{calc.value}}</div>
|
||||
<div class="attribute-main-bonus">{{calc.bonus}}</div>
|
||||
</div>
|
||||
|
||||
<div class="attribute-footer">
|
||||
<input class="attribute-footer-value" name="data.attributes.{{attributeId}}.value" value="{{attribute.value}}" type="text" data-dtype="Number" />
|
||||
<input class="attribute-footer-bonus" name="data.attributes.{{attributeId}}.bonus" value="{{attribute.bonus}}" type="text" data-dtype="Number" />
|
||||
</div>
|
||||
</div>
|
||||
@@ -1,169 +0,0 @@
|
||||
|
||||
<h3>{{localize "midgard5.actor-lp"}}</h3>
|
||||
<div>
|
||||
<div class="health-bar">
|
||||
<input name="data.lp.value" type="text" value="{{data.lp.value}}" data-dtype="Number" />
|
||||
{{#times data.lp.max}}
|
||||
{{#if (lt this ../data.lp.value)}}
|
||||
<div class="lp-bar-item update-lp" data-value="{{this}}"></div>
|
||||
{{else}}
|
||||
<div class="lp-bar-item-empty update-lp" data-value="{{this}}"></div>
|
||||
{{/if}}
|
||||
{{/times}}
|
||||
<input name="data.lp.max" type="text" value="{{data.lp.max}}" data-dtype="Number" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h3>{{localize "midgard5.actor-ap"}}</h3>
|
||||
<div>
|
||||
<div class="health-bar">
|
||||
<input name="data.ap.value" type="text" value="{{data.ap.value}}" data-dtype="Number" />
|
||||
{{#times data.ap.max}}
|
||||
{{#if (lt this ../data.ap.value)}}
|
||||
<div class="ap-bar-item update-ap" data-value="{{this}}"></div>
|
||||
{{else}}
|
||||
<div class="ap-bar-item-empty update-ap" data-value="{{this}}"></div>
|
||||
{{/if}}
|
||||
{{/times}}
|
||||
<input name="data.ap.max" type="text" value="{{data.ap.max}}" data-dtype="Number" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h3>Eigenschaften</h3>
|
||||
<div class="flexrow">
|
||||
<span class="flex0">{{localize "midgard5.class"}}</span>
|
||||
<input class="flex3" name="data.info.class" type="text" value="{{data.info.class}}" data-dtype="String" />
|
||||
<input id="data.info.magicUsing" type="checkbox" name="data.info.magicUsing" {{checked data.info.magicUsing}}>
|
||||
<label class="flex0" for="data.info.magicUsing">{{localize "midgard5.magicUsing"}}</label>
|
||||
<span class="level-display">Grad {{data.calc.level}}</span>
|
||||
</div>
|
||||
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>{{localize "midgard5.grace"}}</td>
|
||||
<td><input name="data.gg" type="text" value="{{data.gg}}" data-dtype="Number" /></td>
|
||||
<td>{{localize "midgard5.exp-overall"}}</td>
|
||||
<td><input name="data.es" type="text" value="{{data.es}}" data-dtype="Number" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{localize "midgard5.destiny"}}</td>
|
||||
<td><input name="data.sg" type="text" value="{{data.sg}}" data-dtype="Number" /></td>
|
||||
<td>{{localize "midgard5.exp-available"}}</td>
|
||||
<td><input name="data.ep" type="text" value="{{data.ep}}" data-dtype="Number" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{localize "midgard5.luckPoints"}}</td>
|
||||
<td><input name="data.gp" type="text" value="{{data.gp}}" data-dtype="Number" /></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<h3>Leiteigenschaften</h3>
|
||||
|
||||
<div class="attributes">
|
||||
{{> "systems/midgard5e/templates/sheets/character/attribute.hbs" attributeId="st" attribute=data.attributes.st calc=data.calc.attributes.st}}
|
||||
<div class="filler"></div>
|
||||
{{> "systems/midgard5e/templates/sheets/character/attribute.hbs" attributeId="gs" attribute=data.attributes.gs calc=data.calc.attributes.gs}}
|
||||
<div class="filler"></div>
|
||||
{{> "systems/midgard5e/templates/sheets/character/attribute.hbs" attributeId="gw" attribute=data.attributes.gw calc=data.calc.attributes.gw}}
|
||||
<div class="filler"></div>
|
||||
{{> "systems/midgard5e/templates/sheets/character/attribute.hbs" attributeId="ko" attribute=data.attributes.ko calc=data.calc.attributes.ko}}
|
||||
<div class="filler"></div>
|
||||
{{> "systems/midgard5e/templates/sheets/character/attribute.hbs" attributeId="in" attribute=data.attributes.in calc=data.calc.attributes.in}}
|
||||
</div>
|
||||
|
||||
<div class="attributes">
|
||||
<div class="filler"></div>
|
||||
{{> "systems/midgard5e/templates/sheets/character/attribute.hbs" attributeId="zt" attribute=data.attributes.zt calc=data.calc.attributes.zt}}
|
||||
<div class="attribute-filler-fixed"></div>
|
||||
{{> "systems/midgard5e/templates/sheets/character/attribute.hbs" attributeId="au" attribute=data.attributes.au calc=data.calc.attributes.au}}
|
||||
<div class="attribute-filler-fixed"></div>
|
||||
{{> "systems/midgard5e/templates/sheets/character/attribute.hbs" attributeId="pa" attribute=data.attributes.pa calc=data.calc.attributes.pa}}
|
||||
<div class="attribute-filler-fixed"></div>
|
||||
{{> "systems/midgard5e/templates/sheets/character/attribute.hbs" attributeId="wk" attribute=data.attributes.wk calc=data.calc.attributes.wk}}
|
||||
<div class="filler"></div>
|
||||
</div>
|
||||
|
||||
<h3>Berechnete Werte</h3>
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>{{localize "midgard5.brawl"}}</td>
|
||||
<td class="fixed-value">{{data.calc.stats.brawl.value}}</td>
|
||||
<td>{{localize "midgard5.enduranceBonus"}}</td>
|
||||
<td class="fixed-value">{{data.calc.stats.enduranceBonus}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{localize "midgard5.defense"}}</td>
|
||||
<td class="fixed-value">{{data.calc.stats.defense.value}}</td>
|
||||
<td>{{localize "midgard5.defenseBonus"}}</td>
|
||||
<td class="fixed-value">{{data.calc.stats.defenseBonus.value}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{localize "midgard5.damageBonus"}}</td>
|
||||
<td class="fixed-value">{{data.calc.stats.damageBonus.value}}</td>
|
||||
<td>{{localize "midgard5.attackBonus"}}</td>
|
||||
<td class="fixed-value">{{data.calc.stats.attackBonus.value}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{localize "midgard5.spellCasting"}}</td>
|
||||
<td class="fixed-value">{{data.calc.stats.spellCasting.value}}</td>
|
||||
<td>{{localize "midgard5.poisonResistance"}}</td>
|
||||
<td class="fixed-value">{{data.calc.stats.poisonResistance.value}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{localize "midgard5.resistanceMind"}}</td>
|
||||
<td class="fixed-value">{{data.calc.stats.resistanceMind.value}}</td>
|
||||
<td>{{localize "midgard5.resistanceBody"}}</td>
|
||||
<td class="fixed-value">{{data.calc.stats.resistanceBody.value}}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<h3>Beschreibung</h3>
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>{{localize "midgard5.race"}}</td>
|
||||
<td>
|
||||
<input list="races" type="search" name="data.info.race" value="{{data.info.race}}" />
|
||||
<datalist id="races">
|
||||
<option value="Mensch">
|
||||
<option value="Elf">
|
||||
<option value="Gnom">
|
||||
<option value="Halbling">
|
||||
<option value="Zwerg">
|
||||
</datalist>
|
||||
</td>
|
||||
<td>{{localize "midgard5.gender"}}</td>
|
||||
<td><input name="data.info.gender" type="text" value="{{data.info.gender}}" data-dtype="String" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{localize "midgard5.weight"}}</td>
|
||||
<td><input name="data.info.weight" type="text" value="{{data.info.weight}}" data-dtype="String" /></td>
|
||||
<td>{{localize "midgard5.height"}}</td>
|
||||
<td><input name="data.info.height" type="text" value="{{data.info.height}}" data-dtype="String" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{localize "midgard5.shape"}}</td>
|
||||
<td><input name="data.info.shape" type="text" value="{{data.info.shape}}" data-dtype="String" /></td>
|
||||
<td>{{localize "midgard5.age"}}</td>
|
||||
<td><input name="data.info.age" type="text" value="{{data.info.age}}" data-dtype="String" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{localize "midgard5.caste"}}</td>
|
||||
<td><input name="data.info.caste" type="text" value="{{data.info.caste}}" data-dtype="String" /></td>
|
||||
<td>{{localize "midgard5.occupation"}}</td>
|
||||
<td><input name="data.info.occupation" type="text" value="{{data.info.occupation}}" data-dtype="String" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{localize "midgard5.origin"}}</td>
|
||||
<td><input name="data.info.origin" type="text" value="{{data.info.origin}}" data-dtype="String" /></td>
|
||||
<td>{{localize "midgard5.faith"}}</td>
|
||||
<td><input name="data.info.faith" type="text" value="{{data.info.faith}}" data-dtype="String" /></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
{{editor content=data.description target="data.description" button=true owner=owner editable=editable}}
|
||||
@@ -1,115 +0,0 @@
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{{localize "ITEM.TypeWeapon"}}</th>
|
||||
<th class="fixed-value">{{localize "midgard5.ew"}}</th>
|
||||
<th class="fixed-value"></th>
|
||||
<th class="fixed-value"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{#each data.calc.gear.weapons as |item itemId|}}
|
||||
<tr data-item="{{itemId}}">
|
||||
<td class="padding edit-item">{{item.label}}</td>
|
||||
<td class="fixed-value">{{item.calc.ew}}</td>
|
||||
<td class="fixed-value"><button class="roll-button roll-weapon-button"></button></td>
|
||||
<td class="fixed-value"><a class="item-delete" title="Delete Item"><i class="fas fa-trash"></i></a></td>
|
||||
</tr>
|
||||
{{/each}}
|
||||
|
||||
<tr data-item="{{itemId}}">
|
||||
<td class="padding edit-item">{{localize "midgard5.brawl"}}</td>
|
||||
<td class="center">{{data.calc.stats.brawlEw}}</td>
|
||||
<td class="fixed-value"><button class="roll-button roll-brawl-button"></button></td>
|
||||
<td class="fixed-value"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{{localize "ITEM.TypeDefensiveWeapon"}}</th>
|
||||
<th class="fixed-value">{{localize "midgard5.ew"}}</th>
|
||||
<th class="fixed-value"></th>
|
||||
<th class="fixed-value"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{#each data.calc.gear.defensiveWeapons as |item itemId|}}
|
||||
<tr data-item="{{itemId}}">
|
||||
<td class="padding edit-item">{{item.label}}</td>
|
||||
<td class="fixed-value">{{item.calc.ew}}</td>
|
||||
<td class="fixed-value"><button class="roll-button roll-weapon-button"></button></td>
|
||||
<td class="fixed-value"><a class="item-delete" title="Delete Item"><i class="fas fa-trash"></i></a></td>
|
||||
</tr>
|
||||
{{/each}}
|
||||
|
||||
<tr data-item="{{itemId}}">
|
||||
<td class="padding edit-item">{{localize "midgard5.defense"}}</td>
|
||||
<td class="center">{{add data.calc.stats.defense.value data.calc.stats.defenseBonus.value}}</td>
|
||||
<td class="fixed-value"><button class="roll-button roll-defense-button"></button></td>
|
||||
<td class="fixed-value"></td>
|
||||
</tr>
|
||||
|
||||
<tr data-item="{{itemId}}">
|
||||
<td class="padding edit-item">{{localize "midgard5.resistanceMind"}}</td>
|
||||
<td class="center">{{data.calc.stats.resistanceMind.value}}</td>
|
||||
<td class="fixed-value"><button class="roll-button roll-resistanceMind-button"></button></td>
|
||||
<td class="fixed-value"></td>
|
||||
</tr>
|
||||
|
||||
<tr data-item="{{itemId}}">
|
||||
<td class="padding edit-item">{{localize "midgard5.resistanceBody"}}</td>
|
||||
<td class="center">{{data.calc.stats.resistanceBody.value}}</td>
|
||||
<td class="fixed-value"><button class="roll-button roll-resistanceBody-button"></button></td>
|
||||
<td class="fixed-value"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{{localize "ITEM.TypeArmor"}}</th>
|
||||
<th class="fixed-value">{{localize "midgard5.actor-lp-short"}}</th>
|
||||
<th class="fixed-value">{{localize "midgard5.actor-ap-short"}}</th>
|
||||
<th class="fixed-value">{{localize "midgard5.attackBonus-short"}}</th>
|
||||
<th class="fixed-value">{{localize "midgard5.defenseBonus-short"}}</th>
|
||||
<th class="fixed-value">B</th>
|
||||
<th class="fixed-value">Gw</th>
|
||||
<th class="fixed-value"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{#each data.calc.gear.armor as |item itemId|}}
|
||||
<tr data-item="{{itemId}}">
|
||||
<td class="padding edit-item">{{item.label}}</td>
|
||||
<td class="fixed-value">{{actorItemValue ../actor._id itemId "lpProtection"}}</td>
|
||||
<td class="fixed-value">{{actorItemValue ../actor._id itemId "apProtection"}}</td>
|
||||
<td class="fixed-value">{{actorItemValue ../actor._id itemId "stats.attackBonus"}}</td>
|
||||
<td class="fixed-value">{{actorItemValue ../actor._id itemId "stats.defenseBonus"}}</td>
|
||||
<td class="fixed-value">{{actorItemValue ../actor._id itemId "stats.movementBonus"}}</td>
|
||||
<td class="fixed-value">{{actorItemValue ../actor._id itemId "attributeMod.gw"}}</td>
|
||||
<td class="fixed-value"><a class="item-delete" title="Delete Item"><i class="fas fa-trash"></i></a></td>
|
||||
</tr>
|
||||
{{/each}}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{{localize "ITEM.TypeItem"}}</th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{#each data.calc.gear.items as |item itemId|}}
|
||||
<tr data-item="{{itemId}}">
|
||||
<td class="padding edit-item">{{item.label}}</td>
|
||||
<td class="fixed-value"><a class="item-delete" title="Delete Item"><i class="fas fa-trash"></i></a></td>
|
||||
</tr>
|
||||
{{/each}}
|
||||
</tbody>
|
||||
</table>
|
||||
@@ -1,34 +0,0 @@
|
||||
<form class="actor-sheet {{cssClass}}" autocomplete="off">
|
||||
<header class="sheet-header">
|
||||
<img class="profile-img" src="{{actor.img}}" data-edit="img" title="{{actor.name}}" />
|
||||
<h1 class="charname"><input name="name" type="text" value="{{actor.name}}" placeholder="Name" /></h1>
|
||||
</header>
|
||||
|
||||
{{!-- Character Sheet Navigation --}}
|
||||
<nav class="sheet-navigation tabs" data-group="primary">
|
||||
<a class="item active" data-tab="base_values">{{ localize "midgard5.base_values" }}</a>
|
||||
<a class="item" data-tab="skills">{{ localize "midgard5.skills" }}</a>
|
||||
<a class="item" data-tab="gear">{{ localize "midgard5.gear" }}</a>
|
||||
<a class="item" data-tab="spells">{{ localize "midgard5.spells" }}</a>
|
||||
</nav>
|
||||
|
||||
<section class="sheet-content">
|
||||
|
||||
<div class="tab base_values flexcol" data-group="primary" data-tab="base_values">
|
||||
{{> "systems/midgard5e/templates/sheets/character/base_values.hbs"}}
|
||||
</div>
|
||||
|
||||
<div class="tab base_values flexcol" data-group="primary" data-tab="skills">
|
||||
{{> "systems/midgard5e/templates/sheets/character/skills.hbs"}}
|
||||
</div>
|
||||
|
||||
<div class="tab base_values flexcol" data-group="primary" data-tab="gear">
|
||||
{{> "systems/midgard5e/templates/sheets/character/gear.hbs"}}
|
||||
</div>
|
||||
|
||||
<div class="tab base_values flexcol" data-group="primary" data-tab="spells">
|
||||
{{> "systems/midgard5e/templates/sheets/character/spells.hbs"}}
|
||||
</div>
|
||||
|
||||
</section>
|
||||
</form>
|
||||
@@ -1,136 +0,0 @@
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{{localize "midgard5.learned-skill"}}</th>
|
||||
<th>{{localize "midgard5.fw"}}</th>
|
||||
<th>{{localize "midgard5.bonus"}}</th>
|
||||
<th>{{localize "midgard5.ew"}}</th>
|
||||
<th>{{localize "midgard5.pp-short"}}</th>
|
||||
<th></th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{#each data.calc.skills.general as |skill skillId|}}
|
||||
<tr data-item="{{skillId}}">
|
||||
<td class="padding edit-item">{{skill.label}}</td>
|
||||
<td class="fixed-value">{{skill.fw}}</td>
|
||||
<td class="fixed-value">{{skill.calc.bonus}}</td>
|
||||
<td class="fixed-value">{{skill.calc.ew}}</td>
|
||||
<td class="fixed-value">{{skill.pp}}</td>
|
||||
<td class="fixed-value"><button class="roll-button roll-learned-button"></button></td>
|
||||
<td class="fixed-value"><a class="item-delete" title="Delete Item"><i class="fas fa-trash"></i></a></td>
|
||||
</tr>
|
||||
{{/each}}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{{localize "midgard5.language"}}</th>
|
||||
<th>{{localize "midgard5.fw"}}</th>
|
||||
<th>{{localize "midgard5.bonus"}}</th>
|
||||
<th>{{localize "midgard5.ew"}}</th>
|
||||
<th>{{localize "midgard5.pp-short"}}</th>
|
||||
<th></th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{#each data.calc.skills.language as |skill skillId|}}
|
||||
<tr data-item="{{skillId}}">
|
||||
<td class="padding edit-item">{{skill.label}}</td>
|
||||
<td class="fixed-value">{{skill.fw}}</td>
|
||||
<td class="fixed-value">{{skill.calc.bonus}}</td>
|
||||
<td class="fixed-value">{{skill.calc.ew}}</td>
|
||||
<td class="fixed-value">{{skill.pp}}</td>
|
||||
<td class="fixed-value"><button class="roll-button roll-learned-button"></button></td>
|
||||
<td class="fixed-value"><a class="item-delete" title="Delete Item"><i class="fas fa-trash"></i></a></td>
|
||||
</tr>
|
||||
{{/each}}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{{localize "midgard5.innate-ability"}}</th>
|
||||
<th>{{localize "midgard5.fw"}}</th>
|
||||
<th>{{localize "midgard5.bonus"}}</th>
|
||||
<th>{{localize "midgard5.ew"}}</th>
|
||||
<th></th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{#each data.calc.skills.innate as |skill skillId|}}
|
||||
<tr data-item="{{skillId}}">
|
||||
<td class="padding edit-item">{{skill.label}}</td>
|
||||
<td class="fixed-value">{{skill.fw}}</td>
|
||||
<td class="fixed-value">{{skill.calc.bonus}}</td>
|
||||
<td class="fixed-value">{{skill.calc.ew}}</td>
|
||||
<td class="fixed-value"><button class="roll-button roll-learned-button"></button></td>
|
||||
<td class="fixed-value"><a class="item-delete" title="Delete Item"><i class="fas fa-trash"></i></a></td>
|
||||
</tr>
|
||||
{{/each}}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{{localize "midgard5.weapon-skill"}}</th>
|
||||
<th>{{localize "midgard5.fw"}}</th>
|
||||
<th>{{localize "midgard5.bonus"}}</th>
|
||||
<th>{{localize "midgard5.ew"}}</th>
|
||||
<th>{{localize "midgard5.pp-short"}}</th>
|
||||
<th></th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{#each data.calc.skills.combat as |skill skillId|}}
|
||||
<tr data-item="{{skillId}}">
|
||||
<td class="padding edit-item">{{skill.label}}</td>
|
||||
<td class="fixed-value">{{skill.fw}}</td>
|
||||
<td class="fixed-value">{{skill.calc.bonus}}</td>
|
||||
<td class="fixed-value">{{skill.calc.ew}}</td>
|
||||
<td class="fixed-value">{{skill.pp}}</td>
|
||||
<td class="fixed-value"><button class="roll-button roll-learned-button"></button></td>
|
||||
<td class="fixed-value"><a class="item-delete" title="Delete Item"><i class="fas fa-trash"></i></a></td>
|
||||
</tr>
|
||||
{{/each}}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th></th>
|
||||
<th>{{localize "midgard5.unlearned-skill"}}</th>
|
||||
<th>{{localize "midgard5.fw"}}</th>
|
||||
<th>{{localize "midgard5.bonus"}}</th>
|
||||
<th>{{localize "midgard5.ew"}}</th>
|
||||
<th>{{localize "midgard5.pp-short"}}</th>
|
||||
<th></th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{#each data.skills.general as |skill key|}}
|
||||
{{#unless (isSkillInList (localizeMidgard key) ../actor.system.calc.skills.general) }}
|
||||
<tr data-skill="{{key}}">
|
||||
<td><button class="learn-button">{{localize "midgard5.learn"}}</button></td>
|
||||
<td class="padding">{{localizeMidgard key}}</td>
|
||||
<td class="fixed-value">{{skill.fw}}</td>
|
||||
<td class="fixed-value">{{skillBonus ../actor._id skill}}</td>
|
||||
<td class="fixed-value">{{skillEw ../actor._id skill}}</td>
|
||||
<td class="fixed-value"><input name="data.skills.general.{{key}}.pp" type="text" value="{{skill.pp}}" data-dtype="Number" /></td>
|
||||
<td class="fixed-value"><button class="roll-button roll-general-button"></button></td>
|
||||
<td class="fixed-value"></td>
|
||||
</tr>
|
||||
{{/unless}}
|
||||
{{/each}}
|
||||
</tbody>
|
||||
</table>
|
||||
@@ -1,23 +0,0 @@
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{{localize "ITEM.TypeSpell"}}</th>
|
||||
<th>{{localize "midgard5.ew"}}</th>
|
||||
<th></th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{#each data.calc.spells as |item itemId|}}
|
||||
<tr data-item="{{itemId}}">
|
||||
<td class="padding edit-item">
|
||||
<span>{{item.label}}</span>
|
||||
<span class="spell-process">{{localize item.process}}</span>
|
||||
</td>
|
||||
<td class="fixed-value">{{item.calc.ew}}</td>
|
||||
<td class="fixed-value"><button class="roll-button roll-weapon-button" /></td>
|
||||
<td class="fixed-value"><a class="item-delete" title="Delete Item"><i class="fas fa-trash"></i></a></td>
|
||||
</tr>
|
||||
{{/each}}
|
||||
</tbody>
|
||||
</table>
|
||||
@@ -1,37 +0,0 @@
|
||||
<form class="item-sheet {{cssClass}}" autocomplete="off">
|
||||
<header class="sheet-header">
|
||||
<img class="item-img" src="{{item.img}}" data-edit="img" title="{{item.name}}" />
|
||||
<h1><input name="name" type="text" value="{{item.name}}" placeholder="Name" /></h1>
|
||||
</header>
|
||||
<div class="sheet-content">
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>{{localize "midgard5.actor-lp"}}</td>
|
||||
<td><input name="data.lpProtection" type="text" value="{{data.lpProtection}}" data-dtype="Number" /></td>
|
||||
|
||||
<td>{{localize "midgard5.actor-ap"}}</td>
|
||||
<td><input name="data.apProtection" type="text" value="{{data.apProtection}}" data-dtype="Number" /></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>{{localize "midgard5.attackBonus"}}</td>
|
||||
<td><input name="data.stats.attackBonus" type="text" value="{{data.stats.attackBonus}}" data-dtype="Number" /></td>
|
||||
|
||||
<td>{{localize "midgard5.defenseBonus"}}</td>
|
||||
<td><input name="data.stats.defenseBonus" type="text" value="{{data.stats.defenseBonus}}" data-dtype="Number" /></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>{{localize "midgard5.movementRange"}}</td>
|
||||
<td><input name="data.stats.movementBonus" type="text" value="{{data.stats.movementBonus}}" data-dtype="Number" /></td>
|
||||
|
||||
<td>{{localize "midgard5.actor-gw-long"}}</td>
|
||||
<td><input name="data.attributeMod.gw" type="text" value="{{data.attributeMod.gw}}" data-dtype="Number" /></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
{{editor content=data.description target="data.description" button=true owner=owner editable=editable}}
|
||||
</div>
|
||||
</form>
|
||||
@@ -1,51 +0,0 @@
|
||||
<form class="item-sheet {{cssClass}}" autocomplete="off">
|
||||
<header class="sheet-header">
|
||||
<img class="item-img" src="{{item.img}}" data-edit="img" title="{{item.name}}" />
|
||||
<h1><input name="name" type="text" value="{{item.name}}" placeholder="Name" /></h1>
|
||||
</header>
|
||||
<div class="sheet-content">
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td colspan=4>
|
||||
<div class="flexrow">
|
||||
<span>
|
||||
<input id="data.magic" type="checkbox" name="data.magic" {{checked data.magic}}>
|
||||
<label for="data.magic">{{localize "midgard5.magic"}}</label>
|
||||
</span>
|
||||
|
||||
<span>
|
||||
<input id="data.special" type="checkbox" name="data.special" {{checked data.special}}>
|
||||
<label for="data.special">{{localize "midgard5.special"}}</label>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{localize "midgard5.defenseBonus"}}</td>
|
||||
<td><input name="data.stats.defenseBonus" type="text" value="{{data.stats.defenseBonus}}" data-dtype="Number" /></td>
|
||||
|
||||
<td>{{localize "midgard5.weapon-skill"}}</td>
|
||||
<td>
|
||||
{{#if data.calc.combatSkills}}
|
||||
<select class="select-skill" name="data.skillId" data-type="String">
|
||||
{{#select data.skillId}}
|
||||
<option value="">{{localize "midgard5.no-skill"}}</option>
|
||||
{{#each data.calc.combatSkills as |skill key|}}
|
||||
<option value="{{key}}">{{skill.label}}</option>
|
||||
{{/each}}
|
||||
{{/select}}
|
||||
</select>
|
||||
{{else}}
|
||||
<span>Assign item to character to select weapon skill</span>
|
||||
{{/if}}
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
{{> "systems/midgard5e/templates/sheets/item/rolls.hbs"}}
|
||||
|
||||
{{editor content=data.description target="data.description" button=true owner=owner editable=editable}}
|
||||
</div>
|
||||
</form>
|
||||
@@ -1,78 +0,0 @@
|
||||
<form class="item-sheet {{cssClass}} m5item-item" autocomplete="off">
|
||||
<header class="sheet-header">
|
||||
<img class="item-img" src="{{item.img}}" data-edit="img" title="{{item.name}}" />
|
||||
<h1><input name="name" type="text" value="{{item.name}}" placeholder="Name" /></h1>
|
||||
</header>
|
||||
<div class="sheet-content">
|
||||
<table>
|
||||
<tr>
|
||||
<td>
|
||||
<input id="data.magic" type="checkbox" name="data.magic" {{checked data.magic}}>
|
||||
<label for="data.magic">{{localize "midgard5.magic"}}</label>
|
||||
</td>
|
||||
<td>
|
||||
<div class="flexrow">
|
||||
<span>{{localize "midgard5.item-value"}}</span>
|
||||
<input name="data.value" type="text" value="{{data.value}}" data-dtype="Number" />
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Mods</th>
|
||||
<th></th>
|
||||
<th></th>
|
||||
<th><button class="add-mod">+</button></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{#each data.mods as |mod modId|}}
|
||||
<tr>
|
||||
<td>
|
||||
<select class="select-mod-type" name="data.mods.{{modId}}.type" data-type="String">
|
||||
{{#select mod.type}}
|
||||
<option value="attribute">{{localize "midgard5.attribute"}}</option>
|
||||
<option value="stat">{{localize "midgard5.bonus"}}</option>
|
||||
<option value="skill">{{localize "midgard5.skill"}}</option>
|
||||
{{/select}}
|
||||
</select>
|
||||
</td>
|
||||
|
||||
<td>
|
||||
<select class="select-id" name="data.mods.{{modId}}.id" data-type="String">
|
||||
{{#select mod.id}}
|
||||
<option value="">{{localize "midgard5.no-skill"}}</option>
|
||||
{{#each (lookup ../data.calc.mods modId) as |name key|}}
|
||||
<option value="{{key}}">{{name}}</option>
|
||||
{{/each}}
|
||||
{{/select}}
|
||||
</select>
|
||||
</td>
|
||||
|
||||
<td>
|
||||
<select class="select-mod-operation" name="data.mods.{{modId}}.operation" data-type="String">
|
||||
{{#select mod.operation}}
|
||||
{{#if (eq mod.type "attribute")}}
|
||||
<option value="add100">{{localize "midgard5.mod-operation-add100"}}</option>
|
||||
{{/if}}
|
||||
<option value="add">{{localize "midgard5.mod-operation-add"}}</option>
|
||||
<option value="set">{{localize "midgard5.mod-operation-set"}}</option>
|
||||
<option value="fixed">{{localize "midgard5.mod-operation-fixed"}}</option>
|
||||
{{/select}}
|
||||
</select>
|
||||
</td>
|
||||
|
||||
<td>
|
||||
<input name="data.mods.{{modId}}.value" type="text" value="{{mod.value}}" data-dtype="Number" />
|
||||
</td>
|
||||
</tr>
|
||||
{{/each}}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
{{editor content=data.description target="data.description" button=true owner=owner editable=editable}}
|
||||
</div>
|
||||
</form>
|
||||
@@ -1,61 +0,0 @@
|
||||
<form class="item-sheet {{cssClass}}" autocomplete="off">
|
||||
<header class="sheet-header">
|
||||
<img class="item-img" src="{{item.img}}" data-edit="img" title="{{item.name}}" />
|
||||
<h1><input name="name" type="text" value="{{item.name}}" placeholder="Name" /></h1>
|
||||
</header>
|
||||
<div class="sheet-content">
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>{{localize "midgard5.mod-type"}}</td>
|
||||
<td>
|
||||
<select class="select-mod-type" name="data.type" data-type="String">
|
||||
{{#select data.type}}
|
||||
<option value="attribute">{{localize "midgard5.attribute"}}</option>
|
||||
<option value="stat">{{localize "midgard5.bonus"}}</option>
|
||||
<option value="skill">{{localize "midgard5.skill"}}</option>
|
||||
{{/select}}
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>{{localize "midgard5.mod-id"}}</td>
|
||||
<td>
|
||||
<select class="select-id" name="data.id" data-type="String">
|
||||
{{#select data.id}}
|
||||
<option value="">{{localize "midgard5.no-skill"}}</option>
|
||||
{{#each data.calc.ids as |name key|}}
|
||||
<option value="{{key}}">{{name}}</option>
|
||||
{{/each}}
|
||||
{{/select}}
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>{{localize "midgard5.mod-operation"}}</td>
|
||||
<td>
|
||||
<select class="select-mod-operation" name="data.operation" data-type="String">
|
||||
{{#select data.operation}}
|
||||
{{#if (eq data.type "attribute")}}
|
||||
<option value="add100">{{localize "midgard5.mod-operation-add100"}}</option>
|
||||
{{/if}}
|
||||
<option value="add">{{localize "midgard5.mod-operation-add"}}</option>
|
||||
<option value="set">{{localize "midgard5.mod-operation-set"}}</option>
|
||||
<option value="fixed">{{localize "midgard5.mod-operation-fixed"}}</option>
|
||||
{{/select}}
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>{{localize "midgard5.mod-value"}}</td>
|
||||
<td><input name="data.value" type="text" value="{{data.value}}" data-dtype="Number" /></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
{{editor content=data.description target="data.description" button=true owner=owner editable=editable}}
|
||||
</div>
|
||||
</form>
|
||||
@@ -1,22 +0,0 @@
|
||||
<table class="rolls-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="col-enabled"></th>
|
||||
<th class="col-label">{{localize "midgard5.label"}}</th>
|
||||
<th class="col-formula">{{localize "midgard5.formula"}}</th>
|
||||
<th class="col-delete"><button class="roll-create">+</button></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{#each data.rolls.formulas as |roll rollIndex|}}
|
||||
{{#if roll}}
|
||||
<tr data-roll="{{rollIndex}}">
|
||||
<td><input type="checkbox" name="data.rolls.formulas.{{rollIndex}}.enabled" {{checked roll.enabled}} /></td>
|
||||
<td><input type="text" name="data.rolls.formulas.{{rollIndex}}.label" value="{{roll.label}}" data-dtype="String" /></td>
|
||||
<td><input type="text" name="data.rolls.formulas.{{rollIndex}}.formula" value="{{roll.formula}}" data-dtype="String" /></td>
|
||||
<td class="fixed-value"><a class="roll-delete" title="Delete Roll"><i class="fas fa-trash"></i></a></td>
|
||||
</tr>
|
||||
{{/if}}
|
||||
{{/each}}
|
||||
</tbody>
|
||||
</table>
|
||||
@@ -1,41 +0,0 @@
|
||||
<form class="item-sheet {{cssClass}}" autocomplete="off">
|
||||
<header class="sheet-header">
|
||||
<img class="item-img" src="{{item.img}}" data-edit="img" title="{{item.name}}" />
|
||||
<h1><input name="name" type="text" value="{{item.name}}" placeholder="Name" /></h1>
|
||||
</header>
|
||||
<div class="sheet-content">
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>{{localize "midgard5.skill-value"}}</td>
|
||||
<td><input name="data.fw" type="text" value="{{data.fw}}" data-dtype="Number" /></td>
|
||||
</tr>
|
||||
|
||||
{{#unless (eq data.type "combat")}}
|
||||
<tr>
|
||||
<td>{{localize "midgard5.attribute"}}</td>
|
||||
<td>
|
||||
<select class="select-attribute" name="data.attribute" data-type="String">
|
||||
{{#select data.attribute}}
|
||||
<option value="">{{localize "midgard5.no-skill"}}</option>
|
||||
{{#each data.attributes as |attribute key|}}
|
||||
<option value="{{key}}">{{localize attribute.long}}</option>
|
||||
{{/each}}
|
||||
{{/select}}
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
{{/unless}}
|
||||
|
||||
<tr>
|
||||
<td>{{localize "midgard5.pp"}}</td>
|
||||
<td><input name="data.pp" type="text" value="{{data.pp}}" data-dtype="Number" /></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
{{> "systems/midgard5e/templates/sheets/item/rolls.hbs"}}
|
||||
|
||||
{{editor content=data.description target="data.description" button=true owner=owner editable=editable}}
|
||||
</div>
|
||||
</form>
|
||||
@@ -1,70 +0,0 @@
|
||||
<form class="item-sheet {{cssClass}}" autocomplete="off">
|
||||
<header class="sheet-header">
|
||||
<img class="item-img" src="{{item.img}}" data-edit="img" title="{{item.name}}" />
|
||||
<h1><input name="name" type="text" value="{{item.name}}" placeholder="Name" /></h1>
|
||||
</header>
|
||||
<div class="sheet-content">
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>{{localize "midgard5.bonus"}}</td>
|
||||
<td><input name="data.bonus" type="text" value="{{data.bonus}}" data-dtype="Number" /></td>
|
||||
<td>{{localize "midgard5.actor-ap"}}</td>
|
||||
<td><input name="data.ap" type="text" value="{{data.ap}}" data-dtype="String" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{localize "midgard5.spell-castDuration"}}</td>
|
||||
<td><input name="data.castDuration" type="text" value="{{data.castDuration}}" data-dtype="String" /></td>
|
||||
<td>{{localize "midgard5.spell-range"}}</td>
|
||||
<td><input name="data.range" type="text" value="{{data.range}}" data-dtype="String" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{localize "midgard5.spell-effectTarget"}}</td>
|
||||
<td>
|
||||
<select class="select-effectTarget" name="data.effectTarget" data-type="String">
|
||||
{{#select data.effectTarget}}
|
||||
{{#each data.spellTargetSelection as |label key|}}
|
||||
<option value="{{key}}">{{localize label}}</option>
|
||||
{{/each}}
|
||||
{{/select}}
|
||||
</select>
|
||||
</td>
|
||||
<td>{{localize "midgard5.spell-effectArea"}}</td>
|
||||
<td><input name="data.effectArea" type="text" value="{{data.effectArea}}" data-dtype="String" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{localize "midgard5.spell-effectDuration"}}</td>
|
||||
<td><input name="data.effectDuration" type="text" value="{{data.effectDuration}}" data-dtype="String" /></td>
|
||||
<td>{{localize "midgard5.spell-origin"}}</td>
|
||||
<td><input name="data.origin" type="text" value="{{data.origin}}" data-dtype="String" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{localize "midgard5.spell-type"}}</td>
|
||||
<td>
|
||||
<select class="select-type" name="data.type" data-type="String">
|
||||
{{#select data.type}}
|
||||
{{#each data.spellTypeSelection as |label key|}}
|
||||
<option value="{{key}}">{{localize label}}</option>
|
||||
{{/each}}
|
||||
{{/select}}
|
||||
</select>
|
||||
</td>
|
||||
<td>{{localize "midgard5.spell-process"}}</td>
|
||||
<td>
|
||||
<select class="select-process" name="data.process" data-type="String">
|
||||
{{#select data.process}}
|
||||
{{#each data.spellProcessSelection as |label key|}}
|
||||
<option value="{{key}}">{{localize label}}</option>
|
||||
{{/each}}
|
||||
{{/select}}
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
{{> "systems/midgard5e/templates/sheets/item/rolls.hbs"}}
|
||||
|
||||
{{editor content=data.description target="data.description" button=true owner=owner editable=editable}}
|
||||
</div>
|
||||
</form>
|
||||
@@ -1,68 +0,0 @@
|
||||
<form class="item-sheet {{cssClass}}" autocomplete="off">
|
||||
<header class="sheet-header">
|
||||
<img class="item-img" src="{{item.img}}" data-edit="img" title="{{item.name}}" />
|
||||
<h1><input name="name" type="text" value="{{item.name}}" placeholder="Name" /></h1>
|
||||
</header>
|
||||
<div class="sheet-content">
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td colspan=4>
|
||||
<div class="flexrow">
|
||||
<span>
|
||||
<input id="data.magic" type="checkbox" name="data.magic" {{checked data.magic}}>
|
||||
<label for="data.magic">{{localize "midgard5.magic"}}</label>
|
||||
</span>
|
||||
|
||||
<span>
|
||||
<input id="data.ranged" type="checkbox" name="data.ranged" {{checked data.ranged}}>
|
||||
<label for="data.ranged">{{localize "midgard5.rangedWeapon"}}</label>
|
||||
</span>
|
||||
|
||||
<span>
|
||||
<input id="data.special" type="checkbox" name="data.special" {{checked data.special}}>
|
||||
<label for="data.special">{{localize "midgard5.special"}}</label>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{localize "midgard5.base-damage"}}</td>
|
||||
<td>
|
||||
{{#if data.defensive}}
|
||||
<span>Not available for defensive weapons</span>
|
||||
{{else}}
|
||||
<input name="data.damageBase" type="text" value="{{data.damageBase}}" data-dtype="String" />
|
||||
{{/if}}
|
||||
</td>
|
||||
|
||||
<td>{{localize "midgard5.weapon-skill"}}</td>
|
||||
<td>
|
||||
{{#if data.calc.combatSkills}}
|
||||
<select class="select-skill" name="data.skillId" data-type="String">
|
||||
{{#select data.skillId}}
|
||||
<option value="">{{localize "midgard5.no-skill"}}</option>
|
||||
{{#each data.calc.combatSkills as |skill key|}}
|
||||
<option value="{{key}}">{{skill.label}}</option>
|
||||
{{/each}}
|
||||
{{/select}}
|
||||
</select>
|
||||
{{else}}
|
||||
<span>{{localize "midgard5.assignItemToCharacter"}}</span>
|
||||
{{/if}}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{localize "midgard5.attackBonus"}}</td>
|
||||
<td><input name="data.stats.attackBonus" type="text" value="{{data.stats.attackBonus}}" data-dtype="Number" /></td>
|
||||
<td>{{localize "midgard5.damageBonus"}}</td>
|
||||
<td><input name="data.stats.damageBonus" type="text" value="{{data.stats.damageBonus}}" data-dtype="Number" /></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
{{> "systems/midgard5e/templates/sheets/item/rolls.hbs"}}
|
||||
|
||||
{{editor content=data.description target="data.description" button=true owner=owner editable=editable}}
|
||||
</div>
|
||||
</form>
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "foundry-system-midgard5",
|
||||
"version": "1.2.3",
|
||||
"version": "1.2.2",
|
||||
"description": "",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
|
||||
@@ -455,7 +455,7 @@
|
||||
}
|
||||
},
|
||||
"_stats": {
|
||||
"systemId": "midgard5e",
|
||||
"systemId": "midgard5",
|
||||
"systemVersion": "1.1.0",
|
||||
"coreVersion": "10.291",
|
||||
"createdTime": 1681861642287,
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
}
|
||||
},
|
||||
"_stats": {
|
||||
"systemId": "midgard5e",
|
||||
"systemId": "midgard5",
|
||||
"systemVersion": "1.1.0",
|
||||
"coreVersion": "10.291",
|
||||
"createdTime": 1681862229001,
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
"scope": "global",
|
||||
"command": "await game.tables.getName(\"Kritischer Fehler beim Zaubern\").draw()",
|
||||
"author": "CBq5YXAqbO7HoJ03",
|
||||
"img": "systems/midgard5e/assets/icons/macro/kritfehlerzauber.svg",
|
||||
"img": "systems/midgard5/assets/icons/macro/kritfehlerzauber.svg",
|
||||
"actorIds": [],
|
||||
"_id": "XtzGuyYRyX8wVi1e"
|
||||
}
|
||||
@@ -13,7 +13,7 @@
|
||||
"scope": "global",
|
||||
"command": "await game.tables.getName(\"Kritischer Erfolg bei der Abwehr\").draw()",
|
||||
"author": "CBq5YXAqbO7HoJ03",
|
||||
"img": "systems/midgard5e/assets/icons/macro/kriterfolgabwehr.svg",
|
||||
"img": "systems/midgard5/assets/icons/macro/kriterfolgabwehr.svg",
|
||||
"actorIds": [],
|
||||
"_id": "qWyrwvh7g9CbTKg9"
|
||||
}
|
||||
@@ -13,7 +13,7 @@
|
||||
"scope": "global",
|
||||
"command": "await game.tables.getName(\"Kritischer Fehler bei Angriffen\").draw()",
|
||||
"author": "CBq5YXAqbO7HoJ03",
|
||||
"img": "systems/midgard5e/assets/icons/macro/kritfehlerangriff.svg",
|
||||
"img": "systems/midgard5/assets/icons/macro/kritfehlerangriff.svg",
|
||||
"actorIds": [],
|
||||
"_id": "798kmgnTkpfP89Z9"
|
||||
}
|
||||
@@ -13,7 +13,7 @@
|
||||
"scope": "global",
|
||||
"command": "await game.tables.getName(\"Kritischer Fehler bei der Abwehr\").draw()",
|
||||
"author": "CBq5YXAqbO7HoJ03",
|
||||
"img": "systems/midgard5e/assets/icons/macro/kritfehlerabwehr.svg",
|
||||
"img": "systems/midgard5/assets/icons/macro/kritfehlerabwehr.svg",
|
||||
"actorIds": [],
|
||||
"_id": "W7rYb00B6rtabV05"
|
||||
}
|
||||
@@ -13,7 +13,7 @@
|
||||
"scope": "global",
|
||||
"command": "await game.tables.getName(\"Kritischer Schaden\").draw()",
|
||||
"author": "CBq5YXAqbO7HoJ03",
|
||||
"img": "systems/midgard5e/assets/icons/macro/kriterfolgangriff.svg",
|
||||
"img": "systems/midgard5/assets/icons/macro/kriterfolgangriff.svg",
|
||||
"actorIds": [],
|
||||
"_id": "48DUqxdpHDCGKOHp"
|
||||
}
|
||||
@@ -13,7 +13,7 @@
|
||||
"scope": "global",
|
||||
"command": "/r 1d10",
|
||||
"author": "CBq5YXAqbO7HoJ03",
|
||||
"img": "systems/midgard5e/assets/icons/wurfel/w10.svg",
|
||||
"img": "systems/midgard5/assets/icons/wurfel/w10.svg",
|
||||
"actorIds": [],
|
||||
"_id": "YWsPRUpZpgLBKIB3"
|
||||
}
|
||||
@@ -13,7 +13,7 @@
|
||||
"scope": "global",
|
||||
"command": "/r 1d100",
|
||||
"author": "CBq5YXAqbO7HoJ03",
|
||||
"img": "systems/midgard5e/assets/icons/wurfel/w100.svg",
|
||||
"img": "systems/midgard5/assets/icons/wurfel/w100.svg",
|
||||
"actorIds": [],
|
||||
"_id": "pXZIfqDIX9VKYonr"
|
||||
}
|
||||
@@ -13,7 +13,7 @@
|
||||
"scope": "global",
|
||||
"command": "/r 1d20",
|
||||
"author": "CBq5YXAqbO7HoJ03",
|
||||
"img": "systems/midgard5e/assets/icons/wurfel/w20.svg",
|
||||
"img": "systems/midgard5/assets/icons/wurfel/w20.svg",
|
||||
"actorIds": [],
|
||||
"_id": "qBoxslCQXxR22xKc"
|
||||
}
|
||||
@@ -13,7 +13,7 @@
|
||||
"scope": "global",
|
||||
"command": "/r 1d6",
|
||||
"author": "CBq5YXAqbO7HoJ03",
|
||||
"img": "systems/midgard5e/assets/icons/wurfel/w6.svg",
|
||||
"img": "systems/midgard5/assets/icons/wurfel/w6.svg",
|
||||
"actorIds": [],
|
||||
"_id": "5tpfRgbM5sTL9gur"
|
||||
}
|
||||
@@ -7,7 +7,7 @@
|
||||
"flags": {
|
||||
"exportSource": {
|
||||
"world": "midgard-test",
|
||||
"system": "midgard5e",
|
||||
"system": "midgard5",
|
||||
"coreVersion": "0.7.9",
|
||||
"systemVersion": 0.02
|
||||
}
|
||||
@@ -23,7 +23,10 @@
|
||||
"img": "icons/svg/d20-black.svg",
|
||||
"resultId": "",
|
||||
"weight": 10,
|
||||
"range": [1, 10],
|
||||
"range": [
|
||||
1,
|
||||
10
|
||||
],
|
||||
"drawn": false
|
||||
},
|
||||
{
|
||||
@@ -34,7 +37,10 @@
|
||||
"img": "icons/svg/d20-black.svg",
|
||||
"resultId": "",
|
||||
"weight": 20,
|
||||
"range": [11, 30],
|
||||
"range": [
|
||||
11,
|
||||
30
|
||||
],
|
||||
"drawn": false
|
||||
},
|
||||
{
|
||||
@@ -45,7 +51,10 @@
|
||||
"img": "icons/svg/d20-black.svg",
|
||||
"resultId": "",
|
||||
"weight": 20,
|
||||
"range": [31, 50],
|
||||
"range": [
|
||||
31,
|
||||
50
|
||||
],
|
||||
"drawn": false
|
||||
},
|
||||
{
|
||||
@@ -56,7 +65,10 @@
|
||||
"img": "icons/svg/d20-black.svg",
|
||||
"resultId": "",
|
||||
"weight": 10,
|
||||
"range": [51, 60],
|
||||
"range": [
|
||||
51,
|
||||
60
|
||||
],
|
||||
"drawn": false
|
||||
},
|
||||
{
|
||||
@@ -67,7 +79,10 @@
|
||||
"img": "icons/svg/d20-black.svg",
|
||||
"resultId": "",
|
||||
"weight": 10,
|
||||
"range": [61, 70],
|
||||
"range": [
|
||||
61,
|
||||
70
|
||||
],
|
||||
"drawn": false
|
||||
},
|
||||
{
|
||||
@@ -78,7 +93,10 @@
|
||||
"img": "icons/svg/d20-black.svg",
|
||||
"resultId": "",
|
||||
"weight": 10,
|
||||
"range": [71, 80],
|
||||
"range": [
|
||||
71,
|
||||
80
|
||||
],
|
||||
"drawn": false
|
||||
},
|
||||
{
|
||||
@@ -89,7 +107,10 @@
|
||||
"img": "icons/svg/d20-black.svg",
|
||||
"resultId": "",
|
||||
"weight": 10,
|
||||
"range": [81, 90],
|
||||
"range": [
|
||||
81,
|
||||
90
|
||||
],
|
||||
"drawn": false
|
||||
},
|
||||
{
|
||||
@@ -100,7 +121,10 @@
|
||||
"img": "icons/svg/d20-black.svg",
|
||||
"resultId": "",
|
||||
"weight": 5,
|
||||
"range": [91, 95],
|
||||
"range": [
|
||||
91,
|
||||
95
|
||||
],
|
||||
"drawn": false
|
||||
},
|
||||
{
|
||||
@@ -111,7 +135,10 @@
|
||||
"img": "icons/svg/d20-black.svg",
|
||||
"resultId": "",
|
||||
"weight": 4,
|
||||
"range": [96, 99],
|
||||
"range": [
|
||||
96,
|
||||
99
|
||||
],
|
||||
"drawn": false
|
||||
},
|
||||
{
|
||||
@@ -122,7 +149,10 @@
|
||||
"img": "icons/svg/d20-black.svg",
|
||||
"resultId": "",
|
||||
"weight": 1,
|
||||
"range": [100, 100],
|
||||
"range": [
|
||||
100,
|
||||
100
|
||||
],
|
||||
"drawn": false
|
||||
}
|
||||
],
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
"flags": {
|
||||
"exportSource": {
|
||||
"world": "midgard-test",
|
||||
"system": "midgard5e",
|
||||
"system": "midgard5",
|
||||
"coreVersion": "0.7.9",
|
||||
"systemVersion": 0.02
|
||||
}
|
||||
@@ -23,7 +23,10 @@
|
||||
"img": "icons/svg/d20-black.svg",
|
||||
"resultId": "",
|
||||
"weight": 10,
|
||||
"range": [1, 10],
|
||||
"range": [
|
||||
1,
|
||||
10
|
||||
],
|
||||
"drawn": false
|
||||
},
|
||||
{
|
||||
@@ -34,7 +37,10 @@
|
||||
"img": "icons/svg/d20-black.svg",
|
||||
"resultId": "",
|
||||
"weight": 10,
|
||||
"range": [11, 20],
|
||||
"range": [
|
||||
11,
|
||||
20
|
||||
],
|
||||
"drawn": false
|
||||
},
|
||||
{
|
||||
@@ -45,7 +51,10 @@
|
||||
"img": "icons/svg/d20-black.svg",
|
||||
"resultId": "",
|
||||
"weight": 15,
|
||||
"range": [21, 35],
|
||||
"range": [
|
||||
21,
|
||||
35
|
||||
],
|
||||
"drawn": false
|
||||
},
|
||||
{
|
||||
@@ -56,7 +65,10 @@
|
||||
"img": "icons/svg/d20-black.svg",
|
||||
"resultId": "",
|
||||
"weight": 15,
|
||||
"range": [36, 50],
|
||||
"range": [
|
||||
36,
|
||||
50
|
||||
],
|
||||
"drawn": false
|
||||
},
|
||||
{
|
||||
@@ -67,7 +79,10 @@
|
||||
"img": "icons/svg/d20-black.svg",
|
||||
"resultId": "",
|
||||
"weight": 5,
|
||||
"range": [51, 55],
|
||||
"range": [
|
||||
51,
|
||||
55
|
||||
],
|
||||
"drawn": false
|
||||
},
|
||||
{
|
||||
@@ -78,7 +93,10 @@
|
||||
"img": "icons/svg/d20-black.svg",
|
||||
"resultId": "",
|
||||
"weight": 5,
|
||||
"range": [56, 60],
|
||||
"range": [
|
||||
56,
|
||||
60
|
||||
],
|
||||
"drawn": false
|
||||
},
|
||||
{
|
||||
@@ -89,7 +107,10 @@
|
||||
"img": "icons/svg/d20-black.svg",
|
||||
"resultId": "",
|
||||
"weight": 10,
|
||||
"range": [61, 70],
|
||||
"range": [
|
||||
61,
|
||||
70
|
||||
],
|
||||
"drawn": false
|
||||
},
|
||||
{
|
||||
@@ -100,7 +121,10 @@
|
||||
"img": "icons/svg/d20-black.svg",
|
||||
"resultId": "",
|
||||
"weight": 20,
|
||||
"range": [71, 90],
|
||||
"range": [
|
||||
71,
|
||||
90
|
||||
],
|
||||
"drawn": false
|
||||
},
|
||||
{
|
||||
@@ -111,7 +135,10 @@
|
||||
"img": "icons/svg/d20-black.svg",
|
||||
"resultId": "",
|
||||
"weight": 9,
|
||||
"range": [91, 99],
|
||||
"range": [
|
||||
91,
|
||||
99
|
||||
],
|
||||
"drawn": false
|
||||
},
|
||||
{
|
||||
@@ -122,7 +149,10 @@
|
||||
"img": "icons/svg/d20-black.svg",
|
||||
"resultId": "",
|
||||
"weight": 1,
|
||||
"range": [100, 100],
|
||||
"range": [
|
||||
100,
|
||||
100
|
||||
],
|
||||
"drawn": false
|
||||
}
|
||||
],
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
"flags": {
|
||||
"exportSource": {
|
||||
"world": "midgard-test",
|
||||
"system": "midgard5e",
|
||||
"system": "midgard5",
|
||||
"coreVersion": "0.7.9",
|
||||
"systemVersion": 0.02
|
||||
}
|
||||
@@ -23,7 +23,10 @@
|
||||
"img": "icons/svg/d20-black.svg",
|
||||
"resultId": "",
|
||||
"weight": 10,
|
||||
"range": [1, 10],
|
||||
"range": [
|
||||
1,
|
||||
10
|
||||
],
|
||||
"drawn": false
|
||||
},
|
||||
{
|
||||
@@ -34,7 +37,10 @@
|
||||
"img": "icons/svg/d20-black.svg",
|
||||
"resultId": "",
|
||||
"weight": 10,
|
||||
"range": [11, 20],
|
||||
"range": [
|
||||
11,
|
||||
20
|
||||
],
|
||||
"drawn": false
|
||||
},
|
||||
{
|
||||
@@ -45,7 +51,10 @@
|
||||
"img": "icons/svg/d20-black.svg",
|
||||
"resultId": "",
|
||||
"weight": 10,
|
||||
"range": [21, 30],
|
||||
"range": [
|
||||
21,
|
||||
30
|
||||
],
|
||||
"drawn": false
|
||||
},
|
||||
{
|
||||
@@ -56,7 +65,10 @@
|
||||
"img": "icons/svg/d20-black.svg",
|
||||
"resultId": "",
|
||||
"weight": 10,
|
||||
"range": [31, 40],
|
||||
"range": [
|
||||
31,
|
||||
40
|
||||
],
|
||||
"drawn": false
|
||||
},
|
||||
{
|
||||
@@ -67,7 +79,10 @@
|
||||
"img": "icons/svg/d20-black.svg",
|
||||
"resultId": "",
|
||||
"weight": 10,
|
||||
"range": [41, 50],
|
||||
"range": [
|
||||
41,
|
||||
50
|
||||
],
|
||||
"drawn": false
|
||||
},
|
||||
{
|
||||
@@ -78,7 +93,10 @@
|
||||
"img": "icons/svg/d20-black.svg",
|
||||
"resultId": "",
|
||||
"weight": 10,
|
||||
"range": [51, 60],
|
||||
"range": [
|
||||
51,
|
||||
60
|
||||
],
|
||||
"drawn": false
|
||||
},
|
||||
{
|
||||
@@ -89,7 +107,10 @@
|
||||
"img": "icons/svg/d20-black.svg",
|
||||
"resultId": "",
|
||||
"weight": 10,
|
||||
"range": [61, 70],
|
||||
"range": [
|
||||
61,
|
||||
70
|
||||
],
|
||||
"drawn": false
|
||||
},
|
||||
{
|
||||
@@ -100,7 +121,10 @@
|
||||
"img": "icons/svg/d20-black.svg",
|
||||
"resultId": "",
|
||||
"weight": 10,
|
||||
"range": [71, 80],
|
||||
"range": [
|
||||
71,
|
||||
80
|
||||
],
|
||||
"drawn": false
|
||||
},
|
||||
{
|
||||
@@ -111,7 +135,10 @@
|
||||
"img": "icons/svg/d20-black.svg",
|
||||
"resultId": "",
|
||||
"weight": 10,
|
||||
"range": [81, 90],
|
||||
"range": [
|
||||
81,
|
||||
90
|
||||
],
|
||||
"drawn": false
|
||||
},
|
||||
{
|
||||
@@ -122,7 +149,10 @@
|
||||
"img": "icons/svg/d20-black.svg",
|
||||
"resultId": "",
|
||||
"weight": 9,
|
||||
"range": [91, 99],
|
||||
"range": [
|
||||
91,
|
||||
99
|
||||
],
|
||||
"drawn": false
|
||||
},
|
||||
{
|
||||
@@ -133,7 +163,10 @@
|
||||
"img": "icons/svg/d20-black.svg",
|
||||
"resultId": "",
|
||||
"weight": 1,
|
||||
"range": [100, 100],
|
||||
"range": [
|
||||
100,
|
||||
100
|
||||
],
|
||||
"drawn": false
|
||||
}
|
||||
],
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
"flags": {
|
||||
"exportSource": {
|
||||
"world": "midgard-test",
|
||||
"system": "midgard5e",
|
||||
"system": "midgard5",
|
||||
"coreVersion": "0.7.9",
|
||||
"systemVersion": 0.02
|
||||
}
|
||||
@@ -23,7 +23,10 @@
|
||||
"img": "icons/svg/d20-black.svg",
|
||||
"resultId": "",
|
||||
"weight": 10,
|
||||
"range": [1, 10],
|
||||
"range": [
|
||||
1,
|
||||
10
|
||||
],
|
||||
"drawn": false
|
||||
},
|
||||
{
|
||||
@@ -34,7 +37,10 @@
|
||||
"img": "icons/svg/d20-black.svg",
|
||||
"resultId": "",
|
||||
"weight": 10,
|
||||
"range": [11, 20],
|
||||
"range": [
|
||||
11,
|
||||
20
|
||||
],
|
||||
"drawn": false
|
||||
},
|
||||
{
|
||||
@@ -45,7 +51,10 @@
|
||||
"img": "icons/svg/d20-black.svg",
|
||||
"resultId": "",
|
||||
"weight": 10,
|
||||
"range": [21, 30],
|
||||
"range": [
|
||||
21,
|
||||
30
|
||||
],
|
||||
"drawn": false
|
||||
},
|
||||
{
|
||||
@@ -56,7 +65,10 @@
|
||||
"img": "icons/svg/d20-black.svg",
|
||||
"resultId": "",
|
||||
"weight": 5,
|
||||
"range": [31, 35],
|
||||
"range": [
|
||||
31,
|
||||
35
|
||||
],
|
||||
"drawn": false
|
||||
},
|
||||
{
|
||||
@@ -67,7 +79,10 @@
|
||||
"img": "icons/svg/d20-black.svg",
|
||||
"resultId": "",
|
||||
"weight": 5,
|
||||
"range": [36, 40],
|
||||
"range": [
|
||||
36,
|
||||
40
|
||||
],
|
||||
"drawn": false
|
||||
},
|
||||
{
|
||||
@@ -78,7 +93,10 @@
|
||||
"img": "icons/svg/d20-black.svg",
|
||||
"resultId": "",
|
||||
"weight": 7,
|
||||
"range": [41, 47],
|
||||
"range": [
|
||||
41,
|
||||
47
|
||||
],
|
||||
"drawn": false
|
||||
},
|
||||
{
|
||||
@@ -89,7 +107,10 @@
|
||||
"img": "icons/svg/d20-black.svg",
|
||||
"resultId": "",
|
||||
"weight": 8,
|
||||
"range": [48, 55],
|
||||
"range": [
|
||||
48,
|
||||
55
|
||||
],
|
||||
"drawn": false
|
||||
},
|
||||
{
|
||||
@@ -100,7 +121,10 @@
|
||||
"img": "icons/svg/d20-black.svg",
|
||||
"resultId": "",
|
||||
"weight": 9,
|
||||
"range": [56, 64],
|
||||
"range": [
|
||||
56,
|
||||
64
|
||||
],
|
||||
"drawn": false
|
||||
},
|
||||
{
|
||||
@@ -111,7 +135,10 @@
|
||||
"img": "icons/svg/d20-black.svg",
|
||||
"resultId": "",
|
||||
"weight": 9,
|
||||
"range": [65, 73],
|
||||
"range": [
|
||||
65,
|
||||
73
|
||||
],
|
||||
"drawn": false
|
||||
},
|
||||
{
|
||||
@@ -122,7 +149,10 @@
|
||||
"img": "icons/svg/d20-black.svg",
|
||||
"resultId": "",
|
||||
"weight": 7,
|
||||
"range": [74, 80],
|
||||
"range": [
|
||||
74,
|
||||
80
|
||||
],
|
||||
"drawn": false
|
||||
},
|
||||
{
|
||||
@@ -133,7 +163,10 @@
|
||||
"img": "icons/svg/d20-black.svg",
|
||||
"resultId": "",
|
||||
"weight": 5,
|
||||
"range": [81, 85],
|
||||
"range": [
|
||||
81,
|
||||
85
|
||||
],
|
||||
"drawn": false
|
||||
},
|
||||
{
|
||||
@@ -144,7 +177,10 @@
|
||||
"img": "icons/svg/d20-black.svg",
|
||||
"resultId": "",
|
||||
"weight": 4,
|
||||
"range": [86, 89],
|
||||
"range": [
|
||||
86,
|
||||
89
|
||||
],
|
||||
"drawn": false
|
||||
},
|
||||
{
|
||||
@@ -155,7 +191,10 @@
|
||||
"img": "icons/svg/d20-black.svg",
|
||||
"resultId": "",
|
||||
"weight": 4,
|
||||
"range": [90, 93],
|
||||
"range": [
|
||||
90,
|
||||
93
|
||||
],
|
||||
"drawn": false
|
||||
},
|
||||
{
|
||||
@@ -166,7 +205,10 @@
|
||||
"img": "icons/svg/d20-black.svg",
|
||||
"resultId": "",
|
||||
"weight": 3,
|
||||
"range": [94, 96],
|
||||
"range": [
|
||||
94,
|
||||
96
|
||||
],
|
||||
"drawn": false
|
||||
},
|
||||
{
|
||||
@@ -177,7 +219,10 @@
|
||||
"img": "icons/svg/d20-black.svg",
|
||||
"resultId": "",
|
||||
"weight": 1,
|
||||
"range": [97, 97],
|
||||
"range": [
|
||||
97,
|
||||
97
|
||||
],
|
||||
"drawn": false
|
||||
},
|
||||
{
|
||||
@@ -188,7 +233,10 @@
|
||||
"img": "icons/svg/d20-black.svg",
|
||||
"resultId": "",
|
||||
"weight": 2,
|
||||
"range": [98, 99],
|
||||
"range": [
|
||||
98,
|
||||
99
|
||||
],
|
||||
"drawn": false
|
||||
},
|
||||
{
|
||||
@@ -199,7 +247,10 @@
|
||||
"img": "icons/svg/d20-black.svg",
|
||||
"resultId": "",
|
||||
"weight": 1,
|
||||
"range": [100, 100],
|
||||
"range": [
|
||||
100,
|
||||
100
|
||||
],
|
||||
"drawn": false
|
||||
}
|
||||
],
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
"y": 1118,
|
||||
"scale": 1.01
|
||||
},
|
||||
"img": "systems/midgard5e/assets/maps/midgard_v1.png",
|
||||
"img": "systems/midgard5/assets/maps/midgard_v1.png",
|
||||
"thumb": "data:image/png;base64,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 truncated
|
||||
"width": 2492,
|
||||
"height": 1621,
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
"y": 1224,
|
||||
"scale": 0.95
|
||||
},
|
||||
"img": "systems/midgard5e/assets/maps/midgard_v2.png",
|
||||
"img": "systems/midgard5/assets/maps/midgard_v2.png",
|
||||
"thumb": "data:image/png;base64,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 truncated
|
||||
"width": 2245,
|
||||
"height": 1477,
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import assert from "assert";
|
||||
import assert from "assert"
|
||||
|
||||
export default {
|
||||
name: "midgard5e",
|
||||
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
|
||||
|
||||
|
||||
@@ -69,7 +69,7 @@ Hooks.once("init", async () => {
|
||||
});
|
||||
|
||||
Handlebars.registerHelper("icon", (relpath: string) => {
|
||||
return `systems/midgard5e/assets/icons/${relpath}`;
|
||||
return `systems/midgard5/assets/icons/${relpath}`;
|
||||
});
|
||||
|
||||
Handlebars.registerHelper("isSkillInList", (skillName: string, list: any) => {
|
||||
|
||||
@@ -4,7 +4,7 @@ import { M5EwResult, M5RollData, M5RollResult, M5SkillUnlearned } from "../M5Bas
|
||||
|
||||
export class M5Roll {
|
||||
// extends Roll<M5RollData>
|
||||
static readonly TEMPLATE_PATH = "systems/midgard5e/templates/chat/roll-m5.hbs";
|
||||
static readonly TEMPLATE_PATH = "systems/midgard5/templates/chat/roll-m5.hbs";
|
||||
|
||||
public _evaluated: boolean = false;
|
||||
public _total: number = 0;
|
||||
|
||||
@@ -7,7 +7,7 @@ import { M5Roll } from "../rolls/M5Roll";
|
||||
export default class M5CharacterSheet extends ActorSheet {
|
||||
static get defaultOptions() {
|
||||
return mergeObject(super.defaultOptions, {
|
||||
template: "systems/midgard5e/templates/sheets/character/main.hbs",
|
||||
template: "systems/midgard5/templates/sheets/character/main.hbs",
|
||||
width: 800,
|
||||
height: 800,
|
||||
classes: ["midgard5", "sheet", "character"],
|
||||
|
||||
@@ -1,128 +1,128 @@
|
||||
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"],
|
||||
});
|
||||
classes: ["midgard5", "sheet", "item"]
|
||||
})
|
||||
}
|
||||
|
||||
get template() {
|
||||
//console.log("M5ItemSheet", this.item.data.type)
|
||||
const path = "systems/midgard5e/templates/sheets/item";
|
||||
return `${path}/${this.item.type}.hbs`;
|
||||
const path = "systems/midgard5/templates/sheets/item"
|
||||
return `${path}/${this.item.type}.hbs`
|
||||
}
|
||||
|
||||
override getData(options?: Partial<ItemSheet.Options>): ItemSheet.Data<ItemSheet.Options> | Promise<ItemSheet.Data<ItemSheet.Options>> {
|
||||
const item = this.item as M5Item;
|
||||
return Promise.resolve(super.getData()).then((value) => {
|
||||
item.prepareDerivedData();
|
||||
const context = value as any;
|
||||
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;
|
||||
const itemData = context.item
|
||||
|
||||
// Retrieve the roll data for TinyMCE editors.
|
||||
context.rollData = {};
|
||||
let actor = this.object?.parent ?? null;
|
||||
context.rollData = {}
|
||||
let actor = this.object?.parent ?? null
|
||||
if (actor) {
|
||||
context.rollData = actor.getRollData();
|
||||
context.rollData = actor.getRollData()
|
||||
}
|
||||
|
||||
context.data = itemData.system;
|
||||
context.flags = itemData.flags;
|
||||
context.data = itemData.system
|
||||
context.flags = itemData.flags
|
||||
|
||||
return context;
|
||||
});
|
||||
return context
|
||||
})
|
||||
}
|
||||
|
||||
override activateListeners(html: JQuery) {
|
||||
super.activateListeners(html);
|
||||
super.activateListeners(html)
|
||||
|
||||
html.find(".add-mod").on("click", async (event) => {
|
||||
const context = this.object;
|
||||
const mods = context.system.mods;
|
||||
const modIndex = Object.keys(mods).length;
|
||||
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;
|
||||
value: 0
|
||||
} as M5ItemMod
|
||||
this.object.update({
|
||||
data: {
|
||||
mods: mods,
|
||||
},
|
||||
});
|
||||
});
|
||||
mods: mods
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
html.find(".item-delete").on("click", async (event) => {
|
||||
let row = event.target.parentElement;
|
||||
let itemId = row.dataset["item"];
|
||||
let row = event.target.parentElement
|
||||
let itemId = row.dataset["item"]
|
||||
while (!itemId) {
|
||||
row = row.parentElement;
|
||||
if (!row) return;
|
||||
itemId = row.dataset["item"];
|
||||
row = row.parentElement
|
||||
if (!row)
|
||||
return
|
||||
itemId = row.dataset["item"]
|
||||
}
|
||||
|
||||
const context = this.item;
|
||||
const item = context.items.get(itemId);
|
||||
item.delete();
|
||||
this.render(false);
|
||||
});
|
||||
const context = this.item
|
||||
const item = context.items.get(itemId)
|
||||
item.delete()
|
||||
this.render(false)
|
||||
})
|
||||
|
||||
html.find(".roll-delete").on("click", async (event) => {
|
||||
//console.log("roll-delete", this.item.data.data.rolls.formulas)
|
||||
|
||||
let row = event.target.parentElement;
|
||||
let rollIndex = row.dataset["roll"];
|
||||
let row = event.target.parentElement
|
||||
let rollIndex = row.dataset["roll"]
|
||||
while (!rollIndex) {
|
||||
row = row.parentElement;
|
||||
if (!row) return;
|
||||
rollIndex = row.dataset["roll"];
|
||||
row = row.parentElement
|
||||
if (!row)
|
||||
return
|
||||
rollIndex = row.dataset["roll"]
|
||||
}
|
||||
|
||||
const rolls = this.item.system.rolls.formulas;
|
||||
rolls[rollIndex] = null;
|
||||
const rolls = this.item.system.rolls.formulas
|
||||
rolls[rollIndex] = null
|
||||
|
||||
this.item.update({
|
||||
data: {
|
||||
rolls: {
|
||||
formulas: rolls,
|
||||
},
|
||||
},
|
||||
});
|
||||
this.render(false);
|
||||
});
|
||||
formulas: rolls
|
||||
}
|
||||
}
|
||||
})
|
||||
this.render(false)
|
||||
})
|
||||
|
||||
html.find(".roll-create").on("click", async (event) => {
|
||||
const rolls = this.item.system.rolls.formulas;
|
||||
const rolls = this.item.system.rolls.formulas
|
||||
|
||||
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 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)
|
||||
|
||||
rolls[index.toString()] = {
|
||||
formula: "1d6",
|
||||
label: (game as Game).i18n.localize("midgard5.roll"),
|
||||
enabled: true,
|
||||
} as M5RollTemplate;
|
||||
enabled: true
|
||||
} as M5RollTemplate
|
||||
|
||||
this.item.update({
|
||||
data: {
|
||||
rolls: {
|
||||
formulas: rolls,
|
||||
},
|
||||
},
|
||||
});
|
||||
this.render(false);
|
||||
});
|
||||
formulas: rolls
|
||||
}
|
||||
}
|
||||
})
|
||||
this.render(false)
|
||||
})
|
||||
|
||||
// Drag & Drop
|
||||
if (["item"].includes(this.object.type)) {
|
||||
@@ -131,60 +131,63 @@ export class M5ItemSheet extends ItemSheet {
|
||||
dropSelector: null,
|
||||
permissions: { dragstart: this._canDragStart.bind(this), drop: this._canDragDrop.bind(this) },
|
||||
callbacks: { drop: this._onDropItem.bind(this) },
|
||||
});
|
||||
itemToItemAssociation.bind(html[0]);
|
||||
})
|
||||
itemToItemAssociation.bind(html[0])
|
||||
}
|
||||
}
|
||||
|
||||
_canDragStart(selector) {
|
||||
console.log("M5ItemSheet._canDragStart", selector);
|
||||
return this.options.editable && this.object.isOwner;
|
||||
console.log("M5ItemSheet._canDragStart", selector)
|
||||
return this.options.editable && this.object.isOwner
|
||||
}
|
||||
|
||||
_canDragDrop(selector) {
|
||||
console.log("M5ItemSheet._canDragDrop", selector);
|
||||
return true;
|
||||
console.log("M5ItemSheet._canDragDrop", selector)
|
||||
return true
|
||||
}
|
||||
|
||||
async _onDropItem(event) {
|
||||
let data;
|
||||
const obj = this.object;
|
||||
const li = event.currentTarget;
|
||||
let data
|
||||
const obj = this.object
|
||||
const li = event.currentTarget
|
||||
|
||||
try {
|
||||
data = JSON.parse(event.dataTransfer.getData("text/plain"));
|
||||
if (data.type !== "Item") return false;
|
||||
data = JSON.parse(event.dataTransfer.getData("text/plain"))
|
||||
if (data.type !== "Item")
|
||||
return false
|
||||
} catch (err) {
|
||||
return false;
|
||||
return false
|
||||
}
|
||||
|
||||
// Case 1 - Import from a Compendium pack
|
||||
let itemObject;
|
||||
let itemObject
|
||||
if (data.pack) {
|
||||
const compendiumObject = await (this as any).importItemFromCollection(data.pack, data.id);
|
||||
itemObject = compendiumObject.data;
|
||||
const compendiumObject = await (this as any).importItemFromCollection(data.pack, data.id)
|
||||
itemObject = compendiumObject.data
|
||||
}
|
||||
|
||||
// Case 2 - Import from World entity
|
||||
else {
|
||||
const originalItem = await (game as Game).items.get(data.id);
|
||||
itemObject = duplicate(originalItem);
|
||||
if (!itemObject) return;
|
||||
const originalItem = await (game as Game).items.get(data.id)
|
||||
itemObject = duplicate(originalItem)
|
||||
if (!itemObject)
|
||||
return
|
||||
}
|
||||
|
||||
if (itemObject.type === "mod") {
|
||||
let mods = obj?.system?.mods;
|
||||
if (!mods) mods = [];
|
||||
if ((itemObject.type === "mod")) {
|
||||
let mods = obj?.system?.mods
|
||||
if (!mods)
|
||||
mods = []
|
||||
|
||||
itemObject.id = randomID();
|
||||
console.log("M5ItemSheet._onDropItem", itemObject);
|
||||
mods.push(itemObject);
|
||||
itemObject.id = randomID()
|
||||
console.log("M5ItemSheet._onDropItem", itemObject)
|
||||
mods.push(itemObject)
|
||||
|
||||
obj.update({
|
||||
data: {
|
||||
mods: mods,
|
||||
},
|
||||
});
|
||||
mods: mods
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"id": "midgard5e",
|
||||
"id": "midgard5",
|
||||
"title": "Midgard 5. Edition",
|
||||
"description": "The German RPG Midgard 5. Edition",
|
||||
"version": "1.2.3",
|
||||
"version": "1.2.2",
|
||||
"compatibility": {
|
||||
"minimum": "10",
|
||||
"verified": "10"
|
||||
@@ -14,28 +14,28 @@
|
||||
{
|
||||
"name": "blaupause-spielfiguren",
|
||||
"label": "Blaupausen für Spielfiguren",
|
||||
"system": "midgard5e",
|
||||
"system": "midgard5",
|
||||
"path": "./packs/actors/blaupause-spielfiguren.db",
|
||||
"type": "Actor"
|
||||
},
|
||||
{
|
||||
"name": "blaupause-gegenstaende",
|
||||
"label": "Blaupausen für Gegenstände",
|
||||
"system": "midgard5e",
|
||||
"system": "midgard5",
|
||||
"path": "./packs/items/blaupause-gegenstaende.db",
|
||||
"type": "Item"
|
||||
},
|
||||
{
|
||||
"name": "tabellen-kritische-ereignisse",
|
||||
"label": "Tabellen Kritische Ereignisse",
|
||||
"system": "midgard5e",
|
||||
"system": "midgard5",
|
||||
"path": "./packs/rolltables/tabellen-kritische-ereignisse.db",
|
||||
"type": "RollTable"
|
||||
},
|
||||
{
|
||||
"name": "makros-kritische-ereignisse",
|
||||
"label": "Makros Kritische Ereignisse",
|
||||
"system": "midgard5e",
|
||||
"system": "midgard5",
|
||||
"path": "./packs/macros/makros-kritische-ereignisse.db",
|
||||
"type": "Macro"
|
||||
},
|
||||
@@ -63,14 +63,14 @@
|
||||
{
|
||||
"name": "makros-standardwurfel",
|
||||
"label": "Standardwürfel",
|
||||
"system": "midgard5e",
|
||||
"system": "midgard5",
|
||||
"path": "./packs/macros/makros-standardwurfel.db",
|
||||
"type": "Macro"
|
||||
},
|
||||
{
|
||||
"name": "scenes-midgard-karten",
|
||||
"label": "Midgard-Karten",
|
||||
"system": "midgard5e",
|
||||
"system": "midgard5",
|
||||
"path": "./packs/scenes/scenes-midgard-karten.db",
|
||||
"type": "Scene"
|
||||
}
|
||||
|
||||
@@ -64,26 +64,26 @@
|
||||
<h3>Leiteigenschaften</h3>
|
||||
|
||||
<div class="attributes">
|
||||
{{> "systems/midgard5e/templates/sheets/character/attribute.hbs" attributeId="st" attribute=data.attributes.st calc=data.calc.attributes.st}}
|
||||
{{> "systems/midgard5/templates/sheets/character/attribute.hbs" attributeId="st" attribute=data.attributes.st calc=data.calc.attributes.st}}
|
||||
<div class="filler"></div>
|
||||
{{> "systems/midgard5e/templates/sheets/character/attribute.hbs" attributeId="gs" attribute=data.attributes.gs calc=data.calc.attributes.gs}}
|
||||
{{> "systems/midgard5/templates/sheets/character/attribute.hbs" attributeId="gs" attribute=data.attributes.gs calc=data.calc.attributes.gs}}
|
||||
<div class="filler"></div>
|
||||
{{> "systems/midgard5e/templates/sheets/character/attribute.hbs" attributeId="gw" attribute=data.attributes.gw calc=data.calc.attributes.gw}}
|
||||
{{> "systems/midgard5/templates/sheets/character/attribute.hbs" attributeId="gw" attribute=data.attributes.gw calc=data.calc.attributes.gw}}
|
||||
<div class="filler"></div>
|
||||
{{> "systems/midgard5e/templates/sheets/character/attribute.hbs" attributeId="ko" attribute=data.attributes.ko calc=data.calc.attributes.ko}}
|
||||
{{> "systems/midgard5/templates/sheets/character/attribute.hbs" attributeId="ko" attribute=data.attributes.ko calc=data.calc.attributes.ko}}
|
||||
<div class="filler"></div>
|
||||
{{> "systems/midgard5e/templates/sheets/character/attribute.hbs" attributeId="in" attribute=data.attributes.in calc=data.calc.attributes.in}}
|
||||
{{> "systems/midgard5/templates/sheets/character/attribute.hbs" attributeId="in" attribute=data.attributes.in calc=data.calc.attributes.in}}
|
||||
</div>
|
||||
|
||||
<div class="attributes">
|
||||
<div class="filler"></div>
|
||||
{{> "systems/midgard5e/templates/sheets/character/attribute.hbs" attributeId="zt" attribute=data.attributes.zt calc=data.calc.attributes.zt}}
|
||||
{{> "systems/midgard5/templates/sheets/character/attribute.hbs" attributeId="zt" attribute=data.attributes.zt calc=data.calc.attributes.zt}}
|
||||
<div class="attribute-filler-fixed"></div>
|
||||
{{> "systems/midgard5e/templates/sheets/character/attribute.hbs" attributeId="au" attribute=data.attributes.au calc=data.calc.attributes.au}}
|
||||
{{> "systems/midgard5/templates/sheets/character/attribute.hbs" attributeId="au" attribute=data.attributes.au calc=data.calc.attributes.au}}
|
||||
<div class="attribute-filler-fixed"></div>
|
||||
{{> "systems/midgard5e/templates/sheets/character/attribute.hbs" attributeId="pa" attribute=data.attributes.pa calc=data.calc.attributes.pa}}
|
||||
{{> "systems/midgard5/templates/sheets/character/attribute.hbs" attributeId="pa" attribute=data.attributes.pa calc=data.calc.attributes.pa}}
|
||||
<div class="attribute-filler-fixed"></div>
|
||||
{{> "systems/midgard5e/templates/sheets/character/attribute.hbs" attributeId="wk" attribute=data.attributes.wk calc=data.calc.attributes.wk}}
|
||||
{{> "systems/midgard5/templates/sheets/character/attribute.hbs" attributeId="wk" attribute=data.attributes.wk calc=data.calc.attributes.wk}}
|
||||
<div class="attribute-filler-fixed"></div>
|
||||
{{> "systems/midgard5/templates/sheets/character/attribute.hbs" attributeId="GiT" attribute=data.stats.poisonResistance calc=data.calc.stats.poisonResistance}}
|
||||
<div class="filler"></div>
|
||||
|
||||
@@ -15,19 +15,19 @@
|
||||
<section class="sheet-content">
|
||||
|
||||
<div class="tab base_values flexcol" data-group="primary" data-tab="base_values">
|
||||
{{> "systems/midgard5e/templates/sheets/character/base_values.hbs"}}
|
||||
{{> "systems/midgard5/templates/sheets/character/base_values.hbs"}}
|
||||
</div>
|
||||
|
||||
<div class="tab base_values flexcol" data-group="primary" data-tab="skills">
|
||||
{{> "systems/midgard5e/templates/sheets/character/skills.hbs"}}
|
||||
{{> "systems/midgard5/templates/sheets/character/skills.hbs"}}
|
||||
</div>
|
||||
|
||||
<div class="tab base_values flexcol" data-group="primary" data-tab="gear">
|
||||
{{> "systems/midgard5e/templates/sheets/character/gear.hbs"}}
|
||||
{{> "systems/midgard5/templates/sheets/character/gear.hbs"}}
|
||||
</div>
|
||||
|
||||
<div class="tab base_values flexcol" data-group="primary" data-tab="spells">
|
||||
{{> "systems/midgard5e/templates/sheets/character/spells.hbs"}}
|
||||
{{> "systems/midgard5/templates/sheets/character/spells.hbs"}}
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
{{> "systems/midgard5e/templates/sheets/item/rolls.hbs"}}
|
||||
{{> "systems/midgard5/templates/sheets/item/rolls.hbs"}}
|
||||
|
||||
{{editor content=data.description target="data.description" button=true owner=owner editable=editable}}
|
||||
</div>
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
{{> "systems/midgard5e/templates/sheets/item/rolls.hbs"}}
|
||||
{{> "systems/midgard5/templates/sheets/item/rolls.hbs"}}
|
||||
|
||||
{{editor content=data.description target="data.description" button=true owner=owner editable=editable}}
|
||||
</div>
|
||||
|
||||
@@ -63,7 +63,7 @@
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
{{> "systems/midgard5e/templates/sheets/item/rolls.hbs"}}
|
||||
{{> "systems/midgard5/templates/sheets/item/rolls.hbs"}}
|
||||
|
||||
{{editor content=data.description target="data.description" button=true owner=owner editable=editable}}
|
||||
</div>
|
||||
|
||||
@@ -61,7 +61,7 @@
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
{{> "systems/midgard5e/templates/sheets/item/rolls.hbs"}}
|
||||
{{> "systems/midgard5/templates/sheets/item/rolls.hbs"}}
|
||||
|
||||
{{editor content=data.description target="data.description" button=true owner=owner editable=editable}}
|
||||
</div>
|
||||
|
||||