Compare commits
No commits in common. "ea436f3e4ae09a46b994b87e2f57b95b5f3c3916" and "02a5478cd1ee43e6913d391ef051a9a8582ad12e" have entirely different histories.
ea436f3e4a
...
02a5478cd1
|
|
@ -6,17 +6,11 @@ import * as dartSass from 'sass';
|
||||||
import gulpSass from 'gulp-sass';
|
import gulpSass from 'gulp-sass';
|
||||||
const sass = gulpSass(dartSass);
|
const sass = gulpSass(dartSass);
|
||||||
|
|
||||||
import { deleteAsync } from 'del';
|
|
||||||
|
|
||||||
import { readdirSync } from 'node:fs';
|
import { readdirSync } from 'node:fs';
|
||||||
import { join } from 'node:path';
|
import { join } from 'node:path';
|
||||||
|
|
||||||
import { compilePack } from '@foundryvtt/foundryvtt-cli';
|
import { compilePack } from '@foundryvtt/foundryvtt-cli';
|
||||||
|
|
||||||
function cleanDist() {
|
|
||||||
return deleteAsync(['dist/**']);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function buildStyles() {
|
function buildStyles() {
|
||||||
return src('src/style/**/*.scss')
|
return src('src/style/**/*.scss')
|
||||||
|
|
@ -50,7 +44,7 @@ function buildDB() {
|
||||||
const src = join(PACK_SRC, folder.name);
|
const src = join(PACK_SRC, folder.name);
|
||||||
const dest = join(PACK_DEST, folder.name);
|
const dest = join(PACK_DEST, folder.name);
|
||||||
console.info(`Compiling pack ${folder.name}`);
|
console.info(`Compiling pack ${folder.name}`);
|
||||||
await compilePack(src, dest, { recursive: true, log: true, nedb: false });
|
await compilePack(src, dest, { recursive: true, log: true });
|
||||||
|
|
||||||
}
|
}
|
||||||
resolve()
|
resolve()
|
||||||
|
|
@ -59,7 +53,6 @@ function buildDB() {
|
||||||
|
|
||||||
|
|
||||||
export default series(
|
export default series(
|
||||||
cleanDist,
|
|
||||||
copySource,
|
copySource,
|
||||||
buildStyles,
|
buildStyles,
|
||||||
buildDB,
|
buildDB,
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,6 @@
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@foundryvtt/foundryvtt-cli": "^3.0.0",
|
"@foundryvtt/foundryvtt-cli": "^3.0.0",
|
||||||
"cb": "^0.1.1",
|
"cb": "^0.1.1",
|
||||||
"del": "^8.0.1",
|
|
||||||
"gulp": "^5.0.1",
|
"gulp": "^5.0.1",
|
||||||
"gulp-replace": "^1.1.4",
|
"gulp-replace": "^1.1.4",
|
||||||
"gulp-sass": "^6.0.1",
|
"gulp-sass": "^6.0.1",
|
||||||
|
|
@ -190,41 +189,6 @@
|
||||||
"lodash.merge": "^4.6.2"
|
"lodash.merge": "^4.6.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@nodelib/fs.scandir": {
|
|
||||||
"version": "2.1.5",
|
|
||||||
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
|
|
||||||
"integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
|
|
||||||
"dev": true,
|
|
||||||
"dependencies": {
|
|
||||||
"@nodelib/fs.stat": "2.0.5",
|
|
||||||
"run-parallel": "^1.1.9"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">= 8"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@nodelib/fs.stat": {
|
|
||||||
"version": "2.0.5",
|
|
||||||
"resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
|
|
||||||
"integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
|
|
||||||
"dev": true,
|
|
||||||
"engines": {
|
|
||||||
"node": ">= 8"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@nodelib/fs.walk": {
|
|
||||||
"version": "1.2.8",
|
|
||||||
"resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
|
|
||||||
"integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
|
|
||||||
"dev": true,
|
|
||||||
"dependencies": {
|
|
||||||
"@nodelib/fs.scandir": "2.1.5",
|
|
||||||
"fastq": "^1.6.0"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">= 8"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@npmcli/fs": {
|
"node_modules/@npmcli/fs": {
|
||||||
"version": "2.1.2",
|
"version": "2.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz",
|
||||||
|
|
@ -567,18 +531,6 @@
|
||||||
"util": "^0.12.5"
|
"util": "^0.12.5"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@sindresorhus/merge-streams": {
|
|
||||||
"version": "2.3.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz",
|
|
||||||
"integrity": "sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==",
|
|
||||||
"dev": true,
|
|
||||||
"engines": {
|
|
||||||
"node": ">=18"
|
|
||||||
},
|
|
||||||
"funding": {
|
|
||||||
"url": "https://github.com/sponsors/sindresorhus"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@tootallnate/once": {
|
"node_modules/@tootallnate/once": {
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz",
|
||||||
|
|
@ -1581,39 +1533,6 @@
|
||||||
"url": "https://github.com/sponsors/ljharb"
|
"url": "https://github.com/sponsors/ljharb"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/del": {
|
|
||||||
"version": "8.0.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/del/-/del-8.0.1.tgz",
|
|
||||||
"integrity": "sha512-gPqh0mKTPvaUZGAuHbrBUYKZWBNAeHG7TU3QH5EhVwPMyKvmfJaNXhcD2jTcXsJRRcffuho4vaYweu80dRrMGA==",
|
|
||||||
"dev": true,
|
|
||||||
"dependencies": {
|
|
||||||
"globby": "^14.0.2",
|
|
||||||
"is-glob": "^4.0.3",
|
|
||||||
"is-path-cwd": "^3.0.0",
|
|
||||||
"is-path-inside": "^4.0.0",
|
|
||||||
"p-map": "^7.0.2",
|
|
||||||
"presentable-error": "^0.0.1",
|
|
||||||
"slash": "^5.1.0"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=18"
|
|
||||||
},
|
|
||||||
"funding": {
|
|
||||||
"url": "https://github.com/sponsors/sindresorhus"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/del/node_modules/p-map": {
|
|
||||||
"version": "7.0.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.3.tgz",
|
|
||||||
"integrity": "sha512-VkndIv2fIB99swvQoA65bm+fsmt6UNdGeIB0oxBs+WhAhdh08QA04JXpI7rbB9r08/nkbysKoya9rtDERYOYMA==",
|
|
||||||
"dev": true,
|
|
||||||
"engines": {
|
|
||||||
"node": ">=18"
|
|
||||||
},
|
|
||||||
"funding": {
|
|
||||||
"url": "https://github.com/sponsors/sindresorhus"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/delegates": {
|
"node_modules/delegates": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
|
||||||
|
|
@ -1827,34 +1746,6 @@
|
||||||
"integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==",
|
"integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/fast-glob": {
|
|
||||||
"version": "3.3.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz",
|
|
||||||
"integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==",
|
|
||||||
"dev": true,
|
|
||||||
"dependencies": {
|
|
||||||
"@nodelib/fs.stat": "^2.0.2",
|
|
||||||
"@nodelib/fs.walk": "^1.2.3",
|
|
||||||
"glob-parent": "^5.1.2",
|
|
||||||
"merge2": "^1.3.0",
|
|
||||||
"micromatch": "^4.0.8"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=8.6.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/fast-glob/node_modules/glob-parent": {
|
|
||||||
"version": "5.1.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
|
|
||||||
"integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
|
|
||||||
"dev": true,
|
|
||||||
"dependencies": {
|
|
||||||
"is-glob": "^4.0.1"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">= 6"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/fast-levenshtein": {
|
"node_modules/fast-levenshtein": {
|
||||||
"version": "3.0.0",
|
"version": "3.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-3.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-3.0.0.tgz",
|
||||||
|
|
@ -2287,26 +2178,6 @@
|
||||||
"which": "bin/which"
|
"which": "bin/which"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/globby": {
|
|
||||||
"version": "14.1.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/globby/-/globby-14.1.0.tgz",
|
|
||||||
"integrity": "sha512-0Ia46fDOaT7k4og1PDW4YbodWWr3scS2vAr2lTbsplOt2WkKp0vQbkI9wKis/T5LV/dqPjO3bpS/z6GTJB82LA==",
|
|
||||||
"dev": true,
|
|
||||||
"dependencies": {
|
|
||||||
"@sindresorhus/merge-streams": "^2.1.0",
|
|
||||||
"fast-glob": "^3.3.3",
|
|
||||||
"ignore": "^7.0.3",
|
|
||||||
"path-type": "^6.0.0",
|
|
||||||
"slash": "^5.1.0",
|
|
||||||
"unicorn-magic": "^0.3.0"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=18"
|
|
||||||
},
|
|
||||||
"funding": {
|
|
||||||
"url": "https://github.com/sponsors/sindresorhus"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/globule": {
|
"node_modules/globule": {
|
||||||
"version": "1.3.4",
|
"version": "1.3.4",
|
||||||
"resolved": "https://registry.npmjs.org/globule/-/globule-1.3.4.tgz",
|
"resolved": "https://registry.npmjs.org/globule/-/globule-1.3.4.tgz",
|
||||||
|
|
@ -2698,15 +2569,6 @@
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"node_modules/ignore": {
|
|
||||||
"version": "7.0.5",
|
|
||||||
"resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz",
|
|
||||||
"integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==",
|
|
||||||
"dev": true,
|
|
||||||
"engines": {
|
|
||||||
"node": ">= 4"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/immediate": {
|
"node_modules/immediate": {
|
||||||
"version": "3.0.6",
|
"version": "3.0.6",
|
||||||
"resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz",
|
"resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz",
|
||||||
|
|
@ -2975,30 +2837,6 @@
|
||||||
"node": ">=0.12.0"
|
"node": ">=0.12.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/is-path-cwd": {
|
|
||||||
"version": "3.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-3.0.0.tgz",
|
|
||||||
"integrity": "sha512-kyiNFFLU0Ampr6SDZitD/DwUo4Zs1nSdnygUBqsu3LooL00Qvb5j+UnvApUn/TTj1J3OuE6BTdQ5rudKmU2ZaA==",
|
|
||||||
"dev": true,
|
|
||||||
"engines": {
|
|
||||||
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
|
|
||||||
},
|
|
||||||
"funding": {
|
|
||||||
"url": "https://github.com/sponsors/sindresorhus"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/is-path-inside": {
|
|
||||||
"version": "4.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-4.0.0.tgz",
|
|
||||||
"integrity": "sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==",
|
|
||||||
"dev": true,
|
|
||||||
"engines": {
|
|
||||||
"node": ">=12"
|
|
||||||
},
|
|
||||||
"funding": {
|
|
||||||
"url": "https://github.com/sponsors/sindresorhus"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/is-plain-obj": {
|
"node_modules/is-plain-obj": {
|
||||||
"version": "1.1.0",
|
"version": "1.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
|
||||||
|
|
@ -3381,15 +3219,6 @@
|
||||||
"integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
|
"integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/merge2": {
|
|
||||||
"version": "1.4.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
|
|
||||||
"integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
|
|
||||||
"dev": true,
|
|
||||||
"engines": {
|
|
||||||
"node": ">= 8"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/micromatch": {
|
"node_modules/micromatch": {
|
||||||
"version": "4.0.8",
|
"version": "4.0.8",
|
||||||
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
|
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
|
||||||
|
|
@ -4219,18 +4048,6 @@
|
||||||
"node": ">=0.10.0"
|
"node": ">=0.10.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/path-type": {
|
|
||||||
"version": "6.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/path-type/-/path-type-6.0.0.tgz",
|
|
||||||
"integrity": "sha512-Vj7sf++t5pBD637NSfkxpHSMfWaeig5+DKWLhcqIYx6mWQz5hdJTGDVMQiJcw1ZYkhs7AazKDGpRVji1LJCZUQ==",
|
|
||||||
"dev": true,
|
|
||||||
"engines": {
|
|
||||||
"node": ">=18"
|
|
||||||
},
|
|
||||||
"funding": {
|
|
||||||
"url": "https://github.com/sponsors/sindresorhus"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/picocolors": {
|
"node_modules/picocolors": {
|
||||||
"version": "1.1.1",
|
"version": "1.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
|
||||||
|
|
@ -4339,18 +4156,6 @@
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"peer": true
|
"peer": true
|
||||||
},
|
},
|
||||||
"node_modules/presentable-error": {
|
|
||||||
"version": "0.0.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/presentable-error/-/presentable-error-0.0.1.tgz",
|
|
||||||
"integrity": "sha512-E6rsNU1QNJgB3sjj7OANinGncFKuK+164sLXw1/CqBjj/EkXSoSdHCtWQGBNlREIGLnL7IEUEGa08YFVUbrhVg==",
|
|
||||||
"dev": true,
|
|
||||||
"engines": {
|
|
||||||
"node": ">=16"
|
|
||||||
},
|
|
||||||
"funding": {
|
|
||||||
"url": "https://github.com/sponsors/sindresorhus"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/process-nextick-args": {
|
"node_modules/process-nextick-args": {
|
||||||
"version": "2.0.1",
|
"version": "2.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
|
||||||
|
|
@ -4687,29 +4492,6 @@
|
||||||
"url": "https://github.com/sponsors/isaacs"
|
"url": "https://github.com/sponsors/isaacs"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/run-parallel": {
|
|
||||||
"version": "1.2.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
|
|
||||||
"integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
|
|
||||||
"dev": true,
|
|
||||||
"funding": [
|
|
||||||
{
|
|
||||||
"type": "github",
|
|
||||||
"url": "https://github.com/sponsors/feross"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "patreon",
|
|
||||||
"url": "https://www.patreon.com/feross"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "consulting",
|
|
||||||
"url": "https://feross.org/support"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"dependencies": {
|
|
||||||
"queue-microtask": "^1.2.2"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/rxjs": {
|
"node_modules/rxjs": {
|
||||||
"version": "7.8.2",
|
"version": "7.8.2",
|
||||||
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz",
|
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz",
|
||||||
|
|
@ -5331,18 +5113,6 @@
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"peer": true
|
"peer": true
|
||||||
},
|
},
|
||||||
"node_modules/slash": {
|
|
||||||
"version": "5.1.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz",
|
|
||||||
"integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==",
|
|
||||||
"dev": true,
|
|
||||||
"engines": {
|
|
||||||
"node": ">=14.16"
|
|
||||||
},
|
|
||||||
"funding": {
|
|
||||||
"url": "https://github.com/sponsors/sindresorhus"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/smart-buffer": {
|
"node_modules/smart-buffer": {
|
||||||
"version": "4.2.0",
|
"version": "4.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz",
|
||||||
|
|
@ -5803,18 +5573,6 @@
|
||||||
"integrity": "sha512-goOacqME2GYyOZZfb5Lgtu+1IDmAlAEu5xnD3+xTzS10hT0vzpf0SPjkXwAw9Jm+4n/mQGDP3LO8CPbYROeBfQ==",
|
"integrity": "sha512-goOacqME2GYyOZZfb5Lgtu+1IDmAlAEu5xnD3+xTzS10hT0vzpf0SPjkXwAw9Jm+4n/mQGDP3LO8CPbYROeBfQ==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/unicorn-magic": {
|
|
||||||
"version": "0.3.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.3.0.tgz",
|
|
||||||
"integrity": "sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==",
|
|
||||||
"dev": true,
|
|
||||||
"engines": {
|
|
||||||
"node": ">=18"
|
|
||||||
},
|
|
||||||
"funding": {
|
|
||||||
"url": "https://github.com/sponsors/sindresorhus"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/unique-filename": {
|
"node_modules/unique-filename": {
|
||||||
"version": "2.0.1",
|
"version": "2.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz",
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,6 @@
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@foundryvtt/foundryvtt-cli": "^3.0.0",
|
"@foundryvtt/foundryvtt-cli": "^3.0.0",
|
||||||
"cb": "^0.1.1",
|
"cb": "^0.1.1",
|
||||||
"del": "^8.0.1",
|
|
||||||
"gulp": "^5.0.1",
|
"gulp": "^5.0.1",
|
||||||
"gulp-replace": "^1.1.4",
|
"gulp-replace": "^1.1.4",
|
||||||
"gulp-sass": "^6.0.1",
|
"gulp-sass": "^6.0.1",
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,18 @@
|
||||||
|
import { compilePack } from '@foundryvtt/foundryvtt-cli';
|
||||||
|
import { promises as fs } from 'fs';
|
||||||
|
|
||||||
|
const MODULE_ID = process.cwd();
|
||||||
|
const yaml = true;
|
||||||
|
const log = true;
|
||||||
|
const folders = true;
|
||||||
|
|
||||||
|
const packs = await fs.readdir('./src/packs/_source');
|
||||||
|
for (const pack of packs) {
|
||||||
|
if (pack === '.gitattributes') continue;
|
||||||
|
console.log('Packing ' + pack);
|
||||||
|
await compilePack(
|
||||||
|
`${MODULE_ID}/src/packs/${pack}`,
|
||||||
|
`${MODULE_ID}/dist/packs/${pack}`,
|
||||||
|
{ yaml, log, recursive: folders }
|
||||||
|
);
|
||||||
|
}
|
||||||
16
src/main.mjs
16
src/main.mjs
|
|
@ -1,14 +1,14 @@
|
||||||
import { PlayerCharacterDataModel } from "./module/character/character.mjs";
|
import { PlayerCharacterDataModel } from "./module/character/character.mjs";
|
||||||
import { SkillSheet } from "./module/sheets/skillSheet.mjs";
|
import { DsaActor } from "./module/Actors/dsa-actor.mjs";
|
||||||
import { SpellSheet } from "./module/sheets/spellSheet.mjs";
|
import { Skill } from "./module/Items/skill.mjs"
|
||||||
import { SkillDataModel } from "./module/data/skill.mjs";
|
import { SkillSheet } from "./module/Items/skillSheet.mjs";
|
||||||
import { SpellDataModel } from "./module/data/spell.mjs";
|
import { Spell } from "./module/Items/spell.mjs";
|
||||||
import { Character } from "./module/documents/character.mjs";
|
import { SpellSheet } from "./module/Items/spellSheet.mjs";
|
||||||
|
|
||||||
Hooks.once("init", () => {
|
Hooks.once("init", () => {
|
||||||
|
|
||||||
// Configure custom Document implementations.
|
// Configure custom Document implementations.
|
||||||
CONFIG.Actor.documentClass = Character;
|
CONFIG.Actor.documentClass = DsaActor;
|
||||||
|
|
||||||
// Configure System Data Models.
|
// Configure System Data Models.
|
||||||
CONFIG.Actor.dataModels = {
|
CONFIG.Actor.dataModels = {
|
||||||
|
|
@ -16,8 +16,8 @@ Hooks.once("init", () => {
|
||||||
};
|
};
|
||||||
|
|
||||||
CONFIG.Item.dataModels = {
|
CONFIG.Item.dataModels = {
|
||||||
skill: SkillDataModel,
|
skills: Skill,
|
||||||
spell: SpellDataModel
|
spells: Spell
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log("DSA 4.1 is ready for development!")
|
console.log("DSA 4.1 is ready for development!")
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
export class DsaActor extends Actor {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -1,8 +1,6 @@
|
||||||
import BaseItem from "./base-item.mjs";
|
|
||||||
|
|
||||||
const { BooleanField, ArrayField, NumberField, SchemaField, StringField, HTMLField } = foundry.data.fields;
|
const { BooleanField, ArrayField, NumberField, SchemaField, StringField, HTMLField } = foundry.data.fields;
|
||||||
|
|
||||||
export class SkillDataModel extends BaseItem {
|
export class Skill extends Item {
|
||||||
|
|
||||||
static defineSchema() {
|
static defineSchema() {
|
||||||
return {
|
return {
|
||||||
|
|
@ -10,12 +8,12 @@ export class SkillDataModel extends BaseItem {
|
||||||
gruppe: new StringField({ required: true }),
|
gruppe: new StringField({ required: true }),
|
||||||
probe: new ArrayField(new StringField(), { exact: 3 }), // References one of the eight attributes by name
|
probe: new ArrayField(new StringField(), { exact: 3 }), // References one of the eight attributes by name
|
||||||
voraussetzung: new SchemaField({
|
voraussetzung: new SchemaField({
|
||||||
talent: new StringField({ model: SkillDataModel }),
|
talent: new StringField({ model: Skill }),
|
||||||
wert: new NumberField({}),
|
wert: new NumberField(),
|
||||||
}), // Required skills at a given level
|
}), // Required skills at a given level
|
||||||
talent: new HTMLField({ required: true }),
|
talent: new HTMLField(),
|
||||||
behinderung: new NumberField({ required: false}), // BE-X
|
behinderung: new NumberField(), // BE-X
|
||||||
komplexität: new NumberField({ required: false }), // In case of languages
|
komplexität: new NumberField(), // In case of languages
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
|
|
@ -35,5 +33,4 @@ export class SkillDataModel extends BaseItem {
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
async roll() { }
|
async roll() { }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
export class SkillSheet extends foundry.appv1.sheets.ItemSheet {
|
export class SkillSheet extends ItemSheet {
|
||||||
/**@override */
|
/**@override */
|
||||||
static get defaultOptions() {
|
static get defaultOptions() {
|
||||||
return foundry.utils.mergeObject(super.defaultOptions, {
|
return foundry.utils.mergeObject(super.defaultOptions, {
|
||||||
|
|
@ -1,20 +1,17 @@
|
||||||
import BaseItem from "./base-item.mjs";
|
|
||||||
|
|
||||||
const { BooleanField, NumberField, SchemaField, ArrayField, StringField, HTMLField } = foundry.data.fields;
|
const { BooleanField, NumberField, SchemaField, ArrayField, StringField, HTMLField } = foundry.data.fields;
|
||||||
|
|
||||||
export class SpellDataModel extends BaseItem {
|
export class Spell extends Item {
|
||||||
|
|
||||||
static defineSchema() {
|
static defineSchema() {
|
||||||
return {
|
return {
|
||||||
seite: new NumberField(),
|
seite: new NumberField(),
|
||||||
name: new StringField({ required: true }),
|
name: new StringField({ required: true }),
|
||||||
probe: new ArrayField( new StringField(), { required: true, exact: 3 }),
|
probe: new ArrayField({ required: true, exact: 3 }),
|
||||||
probeMod: new StringField(),
|
probeMod: new StringField(),
|
||||||
technik: new StringField(),
|
technik: new StringField(),
|
||||||
zauberdauer: new StringField(),
|
zauberdauer: new StringField(),
|
||||||
wirkung: new StringField(),
|
wirkung: new StringField(),
|
||||||
kosten: new StringField(),
|
kosten: new StringField(),
|
||||||
zielobjekt: new StringField(),
|
|
||||||
reichweite: new StringField({ required: true }),
|
reichweite: new StringField({ required: true }),
|
||||||
wirkungsdauer: new StringField({ required: true }),
|
wirkungsdauer: new StringField({ required: true }),
|
||||||
modifikationen: new StringField({ required: true }),
|
modifikationen: new StringField({ required: true }),
|
||||||
|
|
@ -45,5 +42,4 @@ export class SpellDataModel extends BaseItem {
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
async roll() { }
|
async roll() { }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
export class SpellSheet extends foundry.appv1.sheets.ItemSheet {
|
export class SpellSheet extends ItemSheet {
|
||||||
/**@override */
|
/**@override */
|
||||||
static get defaultOptions() {
|
static get defaultOptions() {
|
||||||
return foundry.utils.mergeObject(super.defaultOptions, {
|
return foundry.utils.mergeObject(super.defaultOptions, {
|
||||||
|
|
@ -1,11 +1,11 @@
|
||||||
import { Skill } from "./Items/skill.mjs";
|
import { Skill } from "../Items/skill.mjs";
|
||||||
import { Spell } from "./Items/spell.mjs";
|
import { Spell } from "../Items/spell.mjs";
|
||||||
|
|
||||||
const {
|
const {
|
||||||
SchemaField, NumberField, StringField, ArrayField, BooleanField, EmbeddedCollectionField,
|
SchemaField, NumberField, StringField, ArrayField, BooleanField, EmbeddedCollectionField,
|
||||||
} = foundry.data.fields;
|
} = foundry.data.fields;
|
||||||
|
|
||||||
export class PlayerCharacterDataModel extends foundry.abstract.TypeDataModel {
|
export class PlayerCharacterDataModel extends Actor {
|
||||||
|
|
||||||
static defineSchema() {
|
static defineSchema() {
|
||||||
return {
|
return {
|
||||||
|
|
@ -1,21 +0,0 @@
|
||||||
export default class BaseItem extends foundry.abstract.TypeDataModel {
|
|
||||||
|
|
||||||
/** @inheritDoc */
|
|
||||||
async importFromCompendium(pack, id, updateData={}, options={}) {
|
|
||||||
console.log(`called ${pack} ${id} `);
|
|
||||||
const created = await super.importFromCompendium(pack, id, updateData, options);
|
|
||||||
|
|
||||||
const item = await pack.getDocument(id);
|
|
||||||
const contents = await item.system.contents;
|
|
||||||
if ( contents ) {
|
|
||||||
const fromOptions = foundry.utils.mergeObject({ clearSort: false }, options);
|
|
||||||
const toCreate = await BaseItem.createWithContents(contents, {
|
|
||||||
container: created, keepId: options.keepId, transformAll: item => this.fromCompendium(item, fromOptions)
|
|
||||||
});
|
|
||||||
await BaseItem.createDocuments(toCreate, {fromCompendium: true, keepId: true});
|
|
||||||
}
|
|
||||||
|
|
||||||
return created;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,9 +0,0 @@
|
||||||
export class Character extends Item {
|
|
||||||
/**
|
|
||||||
* Augment the basic Item data model with additional dynamic data.
|
|
||||||
*/
|
|
||||||
prepareData() {
|
|
||||||
super.prepareData();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
import { BaseItem } from "./base-item.mjs";
|
|
||||||
|
|
||||||
export class Skill extends BaseItem {
|
|
||||||
/**
|
|
||||||
* Augment the basic Item data model with additional dynamic data.
|
|
||||||
*/
|
|
||||||
prepareData() {
|
|
||||||
super.prepareData();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
import { BaseItem } from "./base-item.mjs";
|
|
||||||
|
|
||||||
export class Spell extends BaseItem {
|
|
||||||
/**
|
|
||||||
* Augment the basic Item data model with additional dynamic data.
|
|
||||||
*/
|
|
||||||
prepareData() {
|
|
||||||
super.prepareData();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,22 +1,19 @@
|
||||||
{
|
{
|
||||||
"_id": "oMOnOMtQmZJBRney",
|
"_id": "oMOnOMtQmZJBRney",
|
||||||
"_key": "!items!oMOnOMtQmZJBRney",
|
"_key": "'!talents!oMOnOMtQmZJBRney'",
|
||||||
"type": "Skill",
|
|
||||||
"name": "Betören",
|
"name": "Betören",
|
||||||
"system": {
|
"gruppe": "Gesellschaft",
|
||||||
"gruppe": "Gesellschaft",
|
"probe": [
|
||||||
"probe": [
|
"IN",
|
||||||
"IN",
|
"CH",
|
||||||
"CH",
|
"CH"
|
||||||
"CH"
|
],
|
||||||
],
|
"voraussetzung": [
|
||||||
"voraussetzung": [
|
{
|
||||||
{
|
"talent": "FQutitgTp9Lcko9C",
|
||||||
"talent": "FQutitgTp9Lcko9C",
|
"wert": 4
|
||||||
"wert": 4
|
}
|
||||||
}
|
],
|
||||||
],
|
"behinderung": "-2",
|
||||||
"behinderung": "-2",
|
"talent": "Die Ausstrahlung auf das andere Geschlecht der eigenen Spezies wird durch dieses Talent bewertet. Eine gelungene Talentprobe besagt, dass das ‘Opfer’ der Annäherungsversuche dem Helden gewogen ist. Was die betörte Persen harten Nüssen beiderlei Geschlechts kann der Meister die Betören-Probe mit Zuschlägen versehen. Will ein Held versuchen, ein Mitglied einer anderen Art (speziell zwischen Elfen und Zwergen) zu betören, dann sollte der Meister deutliche Probenzuschläge verlangen; weniger heftige Zuschläge sind für Betörungsversuche gegenüber dem eigenen Geschlecht erforderlich."
|
||||||
"talent": "Die Ausstrahlung auf das andere Geschlecht der eigenen Spezies wird durch dieses Talent bewertet. Eine gelungene Talentprobe besagt, dass das ‘Opfer’ der Annäherungsversuche dem Helden gewogen ist. Was die betörte Persen harten Nüssen beiderlei Geschlechts kann der Meister die Betören-Probe mit Zuschlägen versehen. Will ein Held versuchen, ein Mitglied einer anderen Art (speziell zwischen Elfen und Zwergen) zu betören, dann sollte der Meister deutliche Probenzuschläge verlangen; weniger heftige Zuschläge sind für Betörungsversuche gegenüber dem eigenen Geschlecht erforderlich."
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
@ -1,15 +0,0 @@
|
||||||
{
|
|
||||||
"_id": "FQutitgTp9Lcko9C",
|
|
||||||
"_key": "!items!FQutitgTp9Lcko9C",
|
|
||||||
"type": "Skill",
|
|
||||||
"name": "Menschenkenntnis",
|
|
||||||
"system": {
|
|
||||||
"gruppe": "Gesellschaft",
|
|
||||||
"probe": [
|
|
||||||
"KL",
|
|
||||||
"IN",
|
|
||||||
"CH"
|
|
||||||
],
|
|
||||||
"talent": "Eine Talentprobe hilft dem Helden, die wahren Absichten einer Meisterperson zu durchschauen. Die Zuverlässigkeit eines Bergführers kann auf diese Art ebenso über prüft werden wie die Ehrlichkeit eines Rosshändlers. Menschenkenntnis-Proben werden prinzipiell vom Meister verdeckt ausgeführt. Je nach Gelingen teilt der Meister dem Spieler mit, welche Gefühle die Person bei dem Helden auslöst – dies kann bei einer misslungenen Probe auch durchaus eine Fehleinschätzung sein. Um zu verhindern, dass der Held mit Hilfe einer einfachen Menschenkenntnis-Probe den zentralen Bösewicht eines Abenteuers schon bei der ersten Begegnung entlarvt, kann der Meister die Talentprobe mit einem geheimen Zuschlag belegen, der sich üblicherweise aus der Erfahrung der Meisterperson ergibt. Eine andere Möglichkeit ist eine vergleichende Probe gegen den Überreden-Wert desjenigen, der durchschaut werden soll. <br/> Um die Absichten eines Wesens aus einer fremden Spezies einzuschätzen, ist auf jeden Fall eine erschwerte Probe erforderlich; bei Personen aus anderen Kulturen (also solchen, zu denen man über kein passendes Kulturwissen verfügt) sind Zuschläge zumindest empfehlenswert."
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
"_id": "FQutitgTp9Lcko9C",
|
||||||
|
"_key": "!talents!FQutitgTp9Lcko9C",
|
||||||
|
"name": "Menschenkenntniss",
|
||||||
|
"gruppe": "Gesellschaft",
|
||||||
|
"probe": ["KL", "IN", "CH"],
|
||||||
|
"talent": "Eine Talentprobe hilft dem Helden, die wahren Absichten einer Meisterperson zu durchschauen. Die Zuverlässigkeit eines Bergführers kann auf diese Art ebenso über prüft werden wie die Ehrlichkeit eines Rosshändlers. Menschenkenntnis-Proben werden prinzipiell vom Meister verdeckt ausgeführt. Je nach Gelingen teilt der Meister dem Spieler mit, welche Gefühle die Person bei dem Helden auslöst – dies kann bei einer misslungenen Probe auch durchaus eine Fehleinschätzung sein. Um zu verhindern, dass der Held mit Hilfe einer einfachen Menschenkenntnis-Probe den zentralen Bösewicht eines Abenteuers schon bei der ersten Begegnung entlarvt, kann der Meister die Talentprobe mit einem geheimen Zuschlag belegen, der sich üblicherweise aus der Erfahrung der Meisterperson ergibt. Eine andere Möglichkeit ist eine vergleichende Probe gegen den Überreden-Wert desjenigen, der durchschaut werden soll. <br/> Um die Absichten eines Wesens aus einer fremden Spezies einzuschätzen, ist auf jeden Fall eine erschwerte Probe erforderlich; bei Personen aus anderen Kulturen (also solchen, zu denen man über kein passendes Kulturwissen verfügt) sind Zuschläge zumindest empfehlenswert."
|
||||||
|
}
|
||||||
|
|
@ -1,53 +1,50 @@
|
||||||
{
|
{
|
||||||
"_id": "sP8CV5VNEcY1Yh1Q",
|
"_id": "sP8CV5VNEcY1Yh1Q",
|
||||||
"_key": "!items!sP8CV5VNEcY1Yh1Q",
|
"_key": "!spells!sP8CV5VNEcY1Yh1Q",
|
||||||
"type":"Spell",
|
"seite": 11,
|
||||||
"name": "ABVENENUM REINE SPEISE",
|
"name": "ABVENENUM REINE SPEISE",
|
||||||
"system": {
|
"probe": ["KL", "KL", "FF"],
|
||||||
"seite": 11,
|
"probenMod": "+Mod.",
|
||||||
"probe": ["KL", "KL", "FF"],
|
"technik": "Der Elf spricht bha’sama venya bha’za yalza über die zu reinigende Nahrung.",
|
||||||
"probenMod": "+Mod.",
|
"zauberdauer": "mindestens 15 Aktionen",
|
||||||
"technik": "Der Elf spricht bha’sama venya bha’za yalza über die zu reinigende Nahrung.",
|
"wirkung": "Der Zauber reinigt Nahrungsmittel und Ge tränke von sämtlichen Giften und Krankheitskeimen; verdorbene Nahr ung wird frisch und genießbar. Die Zauberprobe ist um die doppelte Stufe des Giftes oder der beim Verzehr zu befürchtenden Krankheit erschwert. Verdorbene Nahrung kann je nach Zustand einen Zuschlag von 2 bis 12 Punkten auf die Probe bedeuten. Dieser Zauber versetzt Nahrung in einen Zustand, die dem Spruchanwender nicht gefährlich werden kann. Da es aber von dem Entwickler des Spruches abhängt, in welchem Zustand Nahrung als gefährlich angesehen werden muss und in welchem nicht, variiert die genaue Wirkung je nach Repräsentation recht erheblich. So wandelt die elfische Repräsentation selbst Wein in Traubensaft um, während die Achazform des Spruches manche für Menschen und Elfen giftige Mahlzeiten unverändert lässt. Gift, das sich nicht in Nahrung befindet, wird von dem Zauber nicht als solches erkannt, weswegen das Gift auf der Klinge eines Meuchlers oder in der Phiole eines Alchimisten nicht verändert wird. Wenn allerdings zum Beispiel in einer Pilzpfanne giftige Pilze enthalten sind, dann wirkt der Zauber sehr wohl.",
|
||||||
"zauberdauer": "mindestens 15 Aktionen",
|
"kosten": "4 AsP pro Mahlzeit, die für etwa 10 Personen reicht (Sch: 3 AsP)",
|
||||||
"wirkung": "Der Zauber reinigt Nahrungsmittel und Ge tränke von sämtlichen Giften und Krankheitskeimen; verdorbene Nahr ung wird frisch und genießbar. Die Zauberprobe ist um die doppelte Stufe des Giftes oder der beim Verzehr zu befürchtenden Krankheit erschwert. Verdorbene Nahrung kann je nach Zustand einen Zuschlag von 2 bis 12 Punkten auf die Probe bedeuten. Dieser Zauber versetzt Nahrung in einen Zustand, die dem Spruchanwender nicht gefährlich werden kann. Da es aber von dem Entwickler des Spruches abhängt, in welchem Zustand Nahrung als gefährlich angesehen werden muss und in welchem nicht, variiert die genaue Wirkung je nach Repräsentation recht erheblich. So wandelt die elfische Repräsentation selbst Wein in Traubensaft um, während die Achazform des Spruches manche für Menschen und Elfen giftige Mahlzeiten unverändert lässt. Gift, das sich nicht in Nahrung befindet, wird von dem Zauber nicht als solches erkannt, weswegen das Gift auf der Klinge eines Meuchlers oder in der Phiole eines Alchimisten nicht verändert wird. Wenn allerdings zum Beispiel in einer Pilzpfanne giftige Pilze enthalten sind, dann wirkt der Zauber sehr wohl.",
|
"zielobjekt": "Nahrungsmenge (mehrere Objekte) nach AsP-Aufwand",
|
||||||
"kosten": "4 AsP pro Mahlzeit, die für etwa 10 Personen reicht (Sch: 3 AsP)",
|
"reichweite": "1 Schritt",
|
||||||
"zielobjekt": "Nahrungsmenge (mehrere Objekte) nach AsP-Aufwand",
|
"wirkungsdauer": "augenblicklich",
|
||||||
"reichweite": "1 Schritt",
|
"modifikationen": "Zauberdauer, Reichweite",
|
||||||
"wirkungsdauer": "augenblicklich",
|
"varianten": [
|
||||||
"modifikationen": "Zauberdauer, Reichweite",
|
{
|
||||||
"varianten": [
|
"Schutz vor Übelkeit": [
|
||||||
{
|
{
|
||||||
"Schutz vor Übelkeit": [
|
"description": "Nahrung, die an sich nicht giftig ist, deren Genuss aber heftige Übelkeit erzeugt, wird in einen Zustand versetzt, der als harmlos gelten kann. So ist es zum Beispiel möglich, auch Meerwasser in Trinkwasser zu verwandeln. Horasische Sahnetorten werden jedoch nur von den wenigsten Repräsentationen in Mitleidenschaft gezogen.,"
|
||||||
{
|
},
|
||||||
"description": "Nahrung, die an sich nicht giftig ist, deren Genuss aber heftige Übelkeit erzeugt, wird in einen Zustand versetzt, der als harmlos gelten kann. So ist es zum Beispiel möglich, auch Meerwasser in Trinkwasser zu verwandeln. Horasische Sahnetorten werden jedoch nur von den wenigsten Repräsentationen in Mitleidenschaft gezogen.,"
|
{
|
||||||
},
|
"mod": 5
|
||||||
{
|
},
|
||||||
"mod": 5
|
{
|
||||||
},
|
"limit": null
|
||||||
{
|
}
|
||||||
"limit": null
|
]
|
||||||
}
|
},
|
||||||
]
|
{
|
||||||
},
|
"Schutz vor Vergiftung": [
|
||||||
{
|
{
|
||||||
"Schutz vor Vergiftung": [
|
"description": "Bewahrt die Nahrung für die nächsten ZfP* Stunden vor jeglicher in diesem Zeitraum geschehener Vergiftung und jedem Verschimmeln oder Verderben. Der Zaubernde muss sich hierbei selbst einen Aufschlag auf die Zauberprobe auferlegen, und zwar in Höhe der Stufe der Krankheit/des Giftes, gegen die der Schutz höchstens wirksam sein soll. Eine bereits vergiftete Speise wird dabei entgiftet.Vereinzelt existieren eingeschränkte Variationen dieses Spruches, die (bei geringerem Probenaufschlag und AsP-Aufwand) nur gegen gewisse Giftgruppen (Schlangengifte) oder gar nur gegen einzelne Gifte und Krankheiten wirken."
|
||||||
{
|
},
|
||||||
"description": "Bewahrt die Nahrung für die nächsten ZfP* Stunden vor jeglicher in diesem Zeitraum geschehener Vergiftung und jedem Verschimmeln oder Verderben. Der Zaubernde muss sich hierbei selbst einen Aufschlag auf die Zauberprobe auferlegen, und zwar in Höhe der Stufe der Krankheit/des Giftes, gegen die der Schutz höchstens wirksam sein soll. Eine bereits vergiftete Speise wird dabei entgiftet.Vereinzelt existieren eingeschränkte Variationen dieses Spruches, die (bei geringerem Probenaufschlag und AsP-Aufwand) nur gegen gewisse Giftgruppen (Schlangengifte) oder gar nur gegen einzelne Gifte und Krankheiten wirken."
|
{
|
||||||
},
|
"mod": 5
|
||||||
{
|
},
|
||||||
"mod": 5
|
{
|
||||||
},
|
"limit": null
|
||||||
{
|
}
|
||||||
"limit": null
|
]
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
}
|
"reversalis": "bewirkt das schlagartige Verfaulen und Verschimmeln von L ebensmitteln.",
|
||||||
],
|
"antimagie": "kann in einer Zone des OBJEKT ENTZAUBERN nur erschwert gesprochen wer den; lässt sich wegen der Wirkungsdauer augenblicklich nicht mittels Antimagie widerrufen.",
|
||||||
"reversalis": "bewirkt das schlagartige Verfaulen und Verschimmeln von L ebensmitteln.",
|
"merkmal": "Objekt",
|
||||||
"antimagie": "kann in einer Zone des OBJEKT ENTZAUBERN nur erschwert gesprochen wer den; lässt sich wegen der Wirkungsdauer augenblicklich nicht mittels Antimagie widerrufen.",
|
"komplexität": "C",
|
||||||
"merkmal": "Objekt",
|
"repräsentation": "Dru, Elf, Hex, Mag je 6; Geo5; Ach, Sch je 4",
|
||||||
"komplexität": "C",
|
"info": "Dieser ursprünglich von den W aldelfen stammende Spruch ist bei fast allen Zauberkundigen weit verbreitet. An allen Orten, an denen die lokalen Potentaten in ständiger Furcht vor Meuchlern und Giftmi-schern leben, werden Meisterinnen und Meister des ABVENENUM mit Kusshand in den Hofstaat aufgenommen (wenn sie nach einem Demonstrationszaubern den Genuss der vorher präparierten Narung überlebt haben)."
|
||||||
"repräsentation": "Dru, Elf, Hex, Mag je 6; Geo5; Ach, Sch je 4",
|
|
||||||
"info": "Dieser ursprünglich von den W aldelfen stammende Spruch ist bei fast allen Zauberkundigen weit verbreitet. An allen Orten, an denen die lokalen Potentaten in ständiger Furcht vor Meuchlern und Giftmi-schern leben, werden Meisterinnen und Meister des ABVENENUM mit Kusshand in den Hofstaat aufgenommen (wenn sie nach einem Demonstrationszaubern den Genuss der vorher präparierten Narung überlebt haben)."
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
@ -1,26 +1,23 @@
|
||||||
{
|
{
|
||||||
"_id": "rLMflzmxpe8JGTOA",
|
"_id": "rLMflzmxpe8JGTOA",
|
||||||
"_key": "!items!rLMflzmxpe8JGTOA",
|
"_key": "!spells!rLMflzmxpe8JGTOA",
|
||||||
"type":"Spell",
|
"seite": null,
|
||||||
"name": "IGNISPHAERO",
|
"name": "IGNISPHAERO",
|
||||||
"system": {
|
"probe": ["MU", "IN", "KO"],
|
||||||
"seite": null,
|
"probenMod": null,
|
||||||
"probe": ["MU", "IN", "KO"],
|
"technik": "Die Magierin hält beide Hände schalenförmig geöffnet in Armsänge von sich und spricht die Formel.",
|
||||||
"probenMod": null,
|
"zauberdauer": "7 aktionen",
|
||||||
"technik": "Die Magierin hält beide Hände schalenförmig geöffnet in Armsänge von sich und spricht die Formel.",
|
"wirkung": "Aus den geöffneten Händen der Magierin steigt eine Feuerkugel, die sie beliebig dirigieren und zur Explosion bringen kann. Verliert sie die Feuerkugel aus dem Blick oder durch äußere Einwirkung die Konzentration, so explodiert der Feuerball augenblicklich.Die Feuerkugel hat eine Maximalgeschwindigkeit von GS 15. <br/> Der angerichtete Schaden beträgt bis 1 Schritt Entfernung von der Explosion `5d6+@ZfP/2`. Dafür werden die Würfel für das Zentrum des Feuerballs geworfen; für jeden Schritt Entfernung sinkt der Schaden um 1 + den Würfel mit der niedrigsten Augenzahl. Von diesen TP wird jeweils der @RS der Opfer abgezogen. <br/> Bei mehr als 10 erlittenen TP sinkt der RS entsprechend dem IGNIFAXIUS-Zauber. Brennbare Objekte innerhalb des Wirkungsradius gehen ebenfalls im Flammen auf.",
|
||||||
"zauberdauer": "7 aktionen",
|
"kosten": "21 AsP plus `1d6` LeP plus 1 Punkt Erschöpfung",
|
||||||
"wirkung": "Aus den geöffneten Händen der Magierin steigt eine Feuerkugel, die sie beliebig dirigieren und zur Explosion bringen kann. Verliert sie die Feuerkugel aus dem Blick oder durch äußere Einwirkung die Konzentration, so explodiert der Feuerball augenblicklich.Die Feuerkugel hat eine Maximalgeschwindigkeit von GS 15. <br/> Der angerichtete Schaden beträgt bis 1 Schritt Entfernung von der Explosion `5d6+@ZfP/2`. Dafür werden die Würfel für das Zentrum des Feuerballs geworfen; für jeden Schritt Entfernung sinkt der Schaden um 1 + den Würfel mit der niedrigsten Augenzahl. Von diesen TP wird jeweils der @RS der Opfer abgezogen. <br/> Bei mehr als 10 erlittenen TP sinkt der RS entsprechend dem IGNIFAXIUS-Zauber. Brennbare Objekte innerhalb des Wirkungsradius gehen ebenfalls im Flammen auf.",
|
"modifikationen": null,
|
||||||
"kosten": "21 AsP plus `1d6` LeP plus 1 Punkt Erschöpfung",
|
"varianten": null,
|
||||||
"modifikationen": null,
|
"reversalis": null,
|
||||||
"varianten": null,
|
"antimagie": null,
|
||||||
"reversalis": null,
|
"zielobjekt": "zone",
|
||||||
"antimagie": null,
|
"reichweite": "49 Schritt",
|
||||||
"zielobjekt": "zone",
|
"wirkungsdauer": "augenblicklich",
|
||||||
"reichweite": "49 Schritt",
|
"merkmale": "Elementar (Feuer); Schaden; Telekinese",
|
||||||
"wirkungsdauer": "augenblicklich",
|
"komplexität": "D",
|
||||||
"merkmale": "Elementar (Feuer); Schaden; Telekinese",
|
"repräsentationen": "Mag 3; Ach 2; Geo 1",
|
||||||
"komplexität": "D",
|
"info": null
|
||||||
"repräsentationen": "Mag 3; Ach 2; Geo 1",
|
|
||||||
"info": null
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
@ -26,7 +26,7 @@
|
||||||
],
|
],
|
||||||
"packs": [
|
"packs": [
|
||||||
{
|
{
|
||||||
"name": "skills",
|
"name": "Skill",
|
||||||
"label": "Basistalente",
|
"label": "Basistalente",
|
||||||
"system": "DSA_4-1",
|
"system": "DSA_4-1",
|
||||||
"type": "Item",
|
"type": "Item",
|
||||||
|
|
@ -34,7 +34,7 @@
|
||||||
"private": false
|
"private": false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "spells",
|
"name": "Spells",
|
||||||
"label": "Basiszauber",
|
"label": "Basiszauber",
|
||||||
"system": "DSA_4-1",
|
"system": "DSA_4-1",
|
||||||
"type": "Item",
|
"type": "Item",
|
||||||
|
|
@ -60,7 +60,7 @@
|
||||||
"color": "#801020",
|
"color": "#801020",
|
||||||
"sorting": "m",
|
"sorting": "m",
|
||||||
"packs": [
|
"packs": [
|
||||||
"spells"
|
"Spells"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|
@ -79,19 +79,18 @@
|
||||||
"Skill": {
|
"Skill": {
|
||||||
"stringFields": [
|
"stringFields": [
|
||||||
"name",
|
"name",
|
||||||
"gruppe"
|
"gruppe",
|
||||||
],
|
"probe",
|
||||||
"arrayFields": [
|
"voraussetzung"
|
||||||
"probe"
|
|
||||||
],
|
],
|
||||||
"numberFields": [
|
"numberFields": [
|
||||||
"behinderung",
|
"handicapValue",
|
||||||
"komplexität"
|
"complexity"
|
||||||
],
|
],
|
||||||
"htmlFields": [
|
"htmlFields": [
|
||||||
"talent"
|
"text"
|
||||||
],
|
],
|
||||||
"schemaFields": [
|
"foreignDocumentField": [
|
||||||
"voraussetzung"
|
"voraussetzung"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|
@ -103,7 +102,6 @@
|
||||||
"zauberdauer",
|
"zauberdauer",
|
||||||
"wirkung",
|
"wirkung",
|
||||||
"kosten",
|
"kosten",
|
||||||
"zielobjekt",
|
|
||||||
"reichweite",
|
"reichweite",
|
||||||
"wirkungsdauer",
|
"wirkungsdauer",
|
||||||
"modifikationen",
|
"modifikationen",
|
||||||
|
|
@ -117,9 +115,6 @@
|
||||||
"numberFields": [
|
"numberFields": [
|
||||||
"seite"
|
"seite"
|
||||||
],
|
],
|
||||||
"schemaFields": [
|
|
||||||
"varianten"
|
|
||||||
],
|
|
||||||
"arrayFields": [
|
"arrayFields": [
|
||||||
"probe"
|
"probe"
|
||||||
]
|
]
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue