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';
|
||||
const sass = gulpSass(dartSass);
|
||||
|
||||
import { deleteAsync } from 'del';
|
||||
|
||||
import { readdirSync } from 'node:fs';
|
||||
import { join } from 'node:path';
|
||||
|
||||
import { compilePack } from '@foundryvtt/foundryvtt-cli';
|
||||
|
||||
function cleanDist() {
|
||||
return deleteAsync(['dist/**']);
|
||||
}
|
||||
|
||||
|
||||
function buildStyles() {
|
||||
return src('src/style/**/*.scss')
|
||||
|
|
@ -50,7 +44,7 @@ function buildDB() {
|
|||
const src = join(PACK_SRC, folder.name);
|
||||
const dest = join(PACK_DEST, 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()
|
||||
|
|
@ -59,7 +53,6 @@ function buildDB() {
|
|||
|
||||
|
||||
export default series(
|
||||
cleanDist,
|
||||
copySource,
|
||||
buildStyles,
|
||||
buildDB,
|
||||
|
|
|
|||
|
|
@ -13,7 +13,6 @@
|
|||
"devDependencies": {
|
||||
"@foundryvtt/foundryvtt-cli": "^3.0.0",
|
||||
"cb": "^0.1.1",
|
||||
"del": "^8.0.1",
|
||||
"gulp": "^5.0.1",
|
||||
"gulp-replace": "^1.1.4",
|
||||
"gulp-sass": "^6.0.1",
|
||||
|
|
@ -190,41 +189,6 @@
|
|||
"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": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz",
|
||||
|
|
@ -567,18 +531,6 @@
|
|||
"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": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz",
|
||||
|
|
@ -1581,39 +1533,6 @@
|
|||
"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": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
|
||||
|
|
@ -1827,34 +1746,6 @@
|
|||
"integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==",
|
||||
"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": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-3.0.0.tgz",
|
||||
|
|
@ -2287,26 +2178,6 @@
|
|||
"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": {
|
||||
"version": "1.3.4",
|
||||
"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": {
|
||||
"version": "3.0.6",
|
||||
"resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz",
|
||||
|
|
@ -2975,30 +2837,6 @@
|
|||
"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": {
|
||||
"version": "1.1.0",
|
||||
"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==",
|
||||
"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": {
|
||||
"version": "4.0.8",
|
||||
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
|
||||
|
|
@ -4219,18 +4048,6 @@
|
|||
"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": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
|
||||
|
|
@ -4339,18 +4156,6 @@
|
|||
"dev": 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": {
|
||||
"version": "2.0.1",
|
||||
"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"
|
||||
}
|
||||
},
|
||||
"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": {
|
||||
"version": "7.8.2",
|
||||
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz",
|
||||
|
|
@ -5331,18 +5113,6 @@
|
|||
"dev": 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": {
|
||||
"version": "4.2.0",
|
||||
"resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz",
|
||||
|
|
@ -5803,18 +5573,6 @@
|
|||
"integrity": "sha512-goOacqME2GYyOZZfb5Lgtu+1IDmAlAEu5xnD3+xTzS10hT0vzpf0SPjkXwAw9Jm+4n/mQGDP3LO8CPbYROeBfQ==",
|
||||
"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": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz",
|
||||
|
|
|
|||
|
|
@ -15,7 +15,6 @@
|
|||
"devDependencies": {
|
||||
"@foundryvtt/foundryvtt-cli": "^3.0.0",
|
||||
"cb": "^0.1.1",
|
||||
"del": "^8.0.1",
|
||||
"gulp": "^5.0.1",
|
||||
"gulp-replace": "^1.1.4",
|
||||
"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 { SkillSheet } from "./module/sheets/skillSheet.mjs";
|
||||
import { SpellSheet } from "./module/sheets/spellSheet.mjs";
|
||||
import { SkillDataModel } from "./module/data/skill.mjs";
|
||||
import { SpellDataModel } from "./module/data/spell.mjs";
|
||||
import { Character } from "./module/documents/character.mjs";
|
||||
import { DsaActor } from "./module/Actors/dsa-actor.mjs";
|
||||
import { Skill } from "./module/Items/skill.mjs"
|
||||
import { SkillSheet } from "./module/Items/skillSheet.mjs";
|
||||
import { Spell } from "./module/Items/spell.mjs";
|
||||
import { SpellSheet } from "./module/Items/spellSheet.mjs";
|
||||
|
||||
Hooks.once("init", () => {
|
||||
|
||||
// Configure custom Document implementations.
|
||||
CONFIG.Actor.documentClass = Character;
|
||||
CONFIG.Actor.documentClass = DsaActor;
|
||||
|
||||
// Configure System Data Models.
|
||||
CONFIG.Actor.dataModels = {
|
||||
|
|
@ -16,8 +16,8 @@ Hooks.once("init", () => {
|
|||
};
|
||||
|
||||
CONFIG.Item.dataModels = {
|
||||
skill: SkillDataModel,
|
||||
spell: SpellDataModel
|
||||
skills: Skill,
|
||||
spells: Spell
|
||||
}
|
||||
|
||||
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;
|
||||
|
||||
export class SkillDataModel extends BaseItem {
|
||||
export class Skill extends Item {
|
||||
|
||||
static defineSchema() {
|
||||
return {
|
||||
|
|
@ -10,12 +8,12 @@ export class SkillDataModel extends BaseItem {
|
|||
gruppe: new StringField({ required: true }),
|
||||
probe: new ArrayField(new StringField(), { exact: 3 }), // References one of the eight attributes by name
|
||||
voraussetzung: new SchemaField({
|
||||
talent: new StringField({ model: SkillDataModel }),
|
||||
wert: new NumberField({}),
|
||||
talent: new StringField({ model: Skill }),
|
||||
wert: new NumberField(),
|
||||
}), // Required skills at a given level
|
||||
talent: new HTMLField({ required: true }),
|
||||
behinderung: new NumberField({ required: false}), // BE-X
|
||||
komplexität: new NumberField({ required: false }), // In case of languages
|
||||
talent: new HTMLField(),
|
||||
behinderung: new NumberField(), // BE-X
|
||||
komplexität: new NumberField(), // In case of languages
|
||||
}
|
||||
}
|
||||
/**
|
||||
|
|
@ -35,5 +33,4 @@ export class SkillDataModel extends BaseItem {
|
|||
* @private
|
||||
*/
|
||||
async roll() { }
|
||||
|
||||
}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
export class SkillSheet extends foundry.appv1.sheets.ItemSheet {
|
||||
export class SkillSheet extends ItemSheet {
|
||||
/**@override */
|
||||
static get 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;
|
||||
|
||||
export class SpellDataModel extends BaseItem {
|
||||
export class Spell extends Item {
|
||||
|
||||
static defineSchema() {
|
||||
return {
|
||||
seite: new NumberField(),
|
||||
name: new StringField({ required: true }),
|
||||
probe: new ArrayField( new StringField(), { required: true, exact: 3 }),
|
||||
probe: new ArrayField({ required: true, exact: 3 }),
|
||||
probeMod: new StringField(),
|
||||
technik: new StringField(),
|
||||
zauberdauer: new StringField(),
|
||||
wirkung: new StringField(),
|
||||
kosten: new StringField(),
|
||||
zielobjekt: new StringField(),
|
||||
reichweite: new StringField({ required: true }),
|
||||
wirkungsdauer: new StringField({ required: true }),
|
||||
modifikationen: new StringField({ required: true }),
|
||||
|
|
@ -45,5 +42,4 @@ export class SpellDataModel extends BaseItem {
|
|||
* @private
|
||||
*/
|
||||
async roll() { }
|
||||
|
||||
}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
export class SpellSheet extends foundry.appv1.sheets.ItemSheet {
|
||||
export class SpellSheet extends ItemSheet {
|
||||
/**@override */
|
||||
static get defaultOptions() {
|
||||
return foundry.utils.mergeObject(super.defaultOptions, {
|
||||
|
|
@ -1,11 +1,11 @@
|
|||
import { Skill } from "./Items/skill.mjs";
|
||||
import { Spell } from "./Items/spell.mjs";
|
||||
import { Skill } from "../Items/skill.mjs";
|
||||
import { Spell } from "../Items/spell.mjs";
|
||||
|
||||
const {
|
||||
SchemaField, NumberField, StringField, ArrayField, BooleanField, EmbeddedCollectionField,
|
||||
} = foundry.data.fields;
|
||||
|
||||
export class PlayerCharacterDataModel extends foundry.abstract.TypeDataModel {
|
||||
export class PlayerCharacterDataModel extends Actor {
|
||||
|
||||
static defineSchema() {
|
||||
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,9 +1,7 @@
|
|||
{
|
||||
"_id": "oMOnOMtQmZJBRney",
|
||||
"_key": "!items!oMOnOMtQmZJBRney",
|
||||
"type": "Skill",
|
||||
"_key": "'!talents!oMOnOMtQmZJBRney'",
|
||||
"name": "Betören",
|
||||
"system": {
|
||||
"gruppe": "Gesellschaft",
|
||||
"probe": [
|
||||
"IN",
|
||||
|
|
@ -19,4 +17,3 @@
|
|||
"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."
|
||||
}
|
||||
}
|
||||
|
|
@ -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,10 +1,8 @@
|
|||
{
|
||||
"_id": "sP8CV5VNEcY1Yh1Q",
|
||||
"_key": "!items!sP8CV5VNEcY1Yh1Q",
|
||||
"type":"Spell",
|
||||
"name": "ABVENENUM REINE SPEISE",
|
||||
"system": {
|
||||
"_key": "!spells!sP8CV5VNEcY1Yh1Q",
|
||||
"seite": 11,
|
||||
"name": "ABVENENUM REINE SPEISE",
|
||||
"probe": ["KL", "KL", "FF"],
|
||||
"probenMod": "+Mod.",
|
||||
"technik": "Der Elf spricht bha’sama venya bha’za yalza über die zu reinigende Nahrung.",
|
||||
|
|
@ -50,4 +48,3 @@
|
|||
"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,10 +1,8 @@
|
|||
{
|
||||
"_id": "rLMflzmxpe8JGTOA",
|
||||
"_key": "!items!rLMflzmxpe8JGTOA",
|
||||
"type":"Spell",
|
||||
"name": "IGNISPHAERO",
|
||||
"system": {
|
||||
"_key": "!spells!rLMflzmxpe8JGTOA",
|
||||
"seite": null,
|
||||
"name": "IGNISPHAERO",
|
||||
"probe": ["MU", "IN", "KO"],
|
||||
"probenMod": null,
|
||||
"technik": "Die Magierin hält beide Hände schalenförmig geöffnet in Armsänge von sich und spricht die Formel.",
|
||||
|
|
@ -23,4 +21,3 @@
|
|||
"repräsentationen": "Mag 3; Ach 2; Geo 1",
|
||||
"info": null
|
||||
}
|
||||
}
|
||||
|
|
@ -26,7 +26,7 @@
|
|||
],
|
||||
"packs": [
|
||||
{
|
||||
"name": "skills",
|
||||
"name": "Skill",
|
||||
"label": "Basistalente",
|
||||
"system": "DSA_4-1",
|
||||
"type": "Item",
|
||||
|
|
@ -34,7 +34,7 @@
|
|||
"private": false
|
||||
},
|
||||
{
|
||||
"name": "spells",
|
||||
"name": "Spells",
|
||||
"label": "Basiszauber",
|
||||
"system": "DSA_4-1",
|
||||
"type": "Item",
|
||||
|
|
@ -60,7 +60,7 @@
|
|||
"color": "#801020",
|
||||
"sorting": "m",
|
||||
"packs": [
|
||||
"spells"
|
||||
"Spells"
|
||||
]
|
||||
}
|
||||
],
|
||||
|
|
@ -79,19 +79,18 @@
|
|||
"Skill": {
|
||||
"stringFields": [
|
||||
"name",
|
||||
"gruppe"
|
||||
],
|
||||
"arrayFields": [
|
||||
"probe"
|
||||
"gruppe",
|
||||
"probe",
|
||||
"voraussetzung"
|
||||
],
|
||||
"numberFields": [
|
||||
"behinderung",
|
||||
"komplexität"
|
||||
"handicapValue",
|
||||
"complexity"
|
||||
],
|
||||
"htmlFields": [
|
||||
"talent"
|
||||
"text"
|
||||
],
|
||||
"schemaFields": [
|
||||
"foreignDocumentField": [
|
||||
"voraussetzung"
|
||||
]
|
||||
},
|
||||
|
|
@ -103,7 +102,6 @@
|
|||
"zauberdauer",
|
||||
"wirkung",
|
||||
"kosten",
|
||||
"zielobjekt",
|
||||
"reichweite",
|
||||
"wirkungsdauer",
|
||||
"modifikationen",
|
||||
|
|
@ -117,9 +115,6 @@
|
|||
"numberFields": [
|
||||
"seite"
|
||||
],
|
||||
"schemaFields": [
|
||||
"varianten"
|
||||
],
|
||||
"arrayFields": [
|
||||
"probe"
|
||||
]
|
||||
|
|
|
|||
Loading…
Reference in New Issue