Merge branch 'main' into feature/attribute-rolls
# Conflicts: # src/module/sheets/characterSheet.mjs # src/style/styles.scss # src/templates/actor/actor-character-sheet.hbsfeature/attribute-rolls
|
|
@ -1,8 +1,8 @@
|
|||
name: Pull Request Check
|
||||
run-name: ${{ gitea.actor }} is updating the pull request 🚀
|
||||
on:
|
||||
on:
|
||||
pull_request:
|
||||
types: [synchronize]
|
||||
types: [ synchronize ]
|
||||
|
||||
jobs:
|
||||
testing:
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
name: Release Job
|
||||
run-name: ${{gitea.actor}} is releasing a package
|
||||
on:
|
||||
on:
|
||||
release:
|
||||
types: [published]
|
||||
types: [ published ]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
|
|
|
|||
|
|
@ -0,0 +1,12 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="WEB_MODULE" version="4">
|
||||
<component name="NewModuleRootManager">
|
||||
<content url="file://$MODULE_DIR$">
|
||||
<excludeFolder url="file://$MODULE_DIR$/.tmp" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/temp" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/tmp" />
|
||||
</content>
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
</module>
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
<module fileurl="file://$PROJECT_DIR$/.idea/DSA41.iml" filepath="$PROJECT_DIR$/.idea/DSA41.iml" />
|
||||
</modules>
|
||||
</component>
|
||||
</project>
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
Modulentwicklung eines Systems was Das Schwarze Auge 4.1 in FoundryVTT abbildet.
|
||||
----
|
||||
|
||||
In diesem Repository findet die Codeentwicklung des Moduls statt.
|
||||
In diesem Repository findet die Codeentwicklung des Moduls statt.
|
||||
|
||||
## Weitere Resourcen
|
||||
|
||||
|
|
|
|||
19
glossar.json
|
|
@ -2,8 +2,23 @@
|
|||
"maxASP": "Gibt an um wieviel der ASP-Wert verändert wird",
|
||||
"maxLEP": "Gibt an um wieviel der LEP-Wert verändert wird",
|
||||
"maxAUP": "Gibt an um wieviel der AUP-Wert verändert wird",
|
||||
"maxMR": "Gibt den Modifikator für die maximale basis MR an",
|
||||
"regenerationASP": "Gibt an um wieviel die ASP-Regeneration verändert wird",
|
||||
"intRollRegeneration": "Gibt an wie hoch der Bonus ist beim Wurf auf die Initiative um in der Nacht mehr ASP zu regeneireren",
|
||||
"regenerationLEP": "Modifikator der n#chtlichen LEP-Regeneration",
|
||||
"inRollRegeneration": "Gibt an wie hoch der Bonus ist beim Wurf auf die Intuition um in der Nacht mehr ASP zu regeneireren",
|
||||
"koRollRegeneration": "Gibt an wie hoch der Bonus ist beim Wurf auf die Konstitution um in der Nacht mehr LEP zu regeneireren",
|
||||
"modGrosseMeditation": "Gibt die Modifikation an für den Wurf auf die große Meditation zum erhöhren des ASP-Grundwerts",
|
||||
"erschoepfungBonus": "Gibt den Bonus an ab wann ein Held erschöpft ist (normal ist KO, aber mit dem Bonus eben mehr oder weniger)"
|
||||
"erschoepfungBonus": "Gibt den Bonus an ab wann ein Held erschöpft ist (normal ist KO, aber mit dem Bonus eben mehr oder weniger)",
|
||||
"talentBonus": "Der Bonus der für den jeweiligen Wurf auf das Talent gegeben wird",
|
||||
"talente": "Eine Liste der Talente auf die der talentBonus zieht",
|
||||
"attributBonus": "Der Bonus der in der jeweiligen Situation auf das Attribut gegeben wird",
|
||||
"ritualBonus": "Ein Bonus der für ein spezielles Ritual gilt",
|
||||
"wundschwellenModifikator": "Wert um den die Wundschwelle verändert wird",
|
||||
"inBonus": "Ein Bonus der situativ für Intuition verwendet werden kann",
|
||||
"fkBonus": "Bonus der für Fernkampf-Proben benutzt wird",
|
||||
"zauberBonus": "Bonus für Zauberproben",
|
||||
"zauberPatzerMod": "Bei + benötigt man neben den zwei Zwanzigen eine 18,19 oder 20. Bei - benötigt man nicht 20-20-X sondern es reicht 19-20-X für den Patzer",
|
||||
"gsMod": "Veränderung der Geschwindigkeit um x",
|
||||
"ausweichMod": "Veränderung des Ausweichen-Wertes",
|
||||
"beVoraussetzung": "Voraussetzung, dass eine BE kleiner sein muss als der Wert"
|
||||
}
|
||||
86
gulpfile.mjs
|
|
@ -1,67 +1,73 @@
|
|||
import { src, dest, series } from 'gulp';
|
||||
import {dest, series, src} from 'gulp';
|
||||
import process from 'node:process';
|
||||
import replace from 'gulp-replace';
|
||||
|
||||
import * as dartSass from 'sass';
|
||||
import gulpSass from 'gulp-sass';
|
||||
import {deleteAsync} from 'del';
|
||||
|
||||
import {readdirSync} from 'node:fs';
|
||||
import {join} from 'node:path';
|
||||
|
||||
import {compilePack} from '@foundryvtt/foundryvtt-cli';
|
||||
|
||||
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/**']);
|
||||
return deleteAsync(['dist/**']);
|
||||
}
|
||||
|
||||
|
||||
function buildStyles() {
|
||||
return src('src/style/**/*.scss')
|
||||
.pipe(sass().on('error', sass.logError))
|
||||
.pipe(dest('dist/style/'))
|
||||
};
|
||||
return src('src/style/**/*.scss')
|
||||
.pipe(sass().on('error', sass.logError))
|
||||
.pipe(dest('dist/style/'))
|
||||
}
|
||||
|
||||
function copySource() {
|
||||
return src(['src/**/*', '!src/style/**/*.scss', '!src/packs/**/*'])
|
||||
.pipe(dest('dist/'));
|
||||
return src(['src/**/*', '!src/assets/**/*', '!src/style/**/*.scss', '!src/packs/**/*'])
|
||||
.pipe(dest('dist/'));
|
||||
}
|
||||
|
||||
function copyAssets() {
|
||||
return src(['src/assets/**/*'], {encoding: false})
|
||||
.pipe(dest('dist/assets/'))
|
||||
}
|
||||
|
||||
function updateManifestFile() {
|
||||
return src('dist/system.json')
|
||||
.pipe(replace('{{VERSION}}', process.env.VERSION))
|
||||
.pipe(dest('dist/'))
|
||||
return src('dist/system.json')
|
||||
.pipe(replace('{{VERSION}}', process.env.VERSION))
|
||||
.pipe(dest('dist/'))
|
||||
}
|
||||
|
||||
function buildDB() {
|
||||
// Determine which source folders to process
|
||||
// Determine which source folders to process
|
||||
|
||||
const PACK_SRC = "src/packs/_source"
|
||||
const PACK_DEST = "dist/packs/"
|
||||
|
||||
return new Promise(async (resolve, reject) => {
|
||||
const folders = readdirSync(PACK_SRC, { withFileTypes: true }).filter(file =>
|
||||
file.isDirectory()
|
||||
);
|
||||
const PACK_SRC = "src/packs/__source"
|
||||
const PACK_DEST = "dist/packs/"
|
||||
|
||||
for (const folder of folders) {
|
||||
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 });
|
||||
|
||||
}
|
||||
resolve()
|
||||
})
|
||||
return new Promise(async (resolve, reject) => {
|
||||
const folders = readdirSync(PACK_SRC, {withFileTypes: true}).filter(file =>
|
||||
file.isDirectory()
|
||||
);
|
||||
|
||||
for (const folder of folders) {
|
||||
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});
|
||||
|
||||
}
|
||||
resolve()
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
export default series(
|
||||
cleanDist,
|
||||
copySource,
|
||||
buildStyles,
|
||||
buildDB,
|
||||
updateManifestFile
|
||||
cleanDist,
|
||||
copySource,
|
||||
copyAssets,
|
||||
buildStyles,
|
||||
buildDB,
|
||||
updateManifestFile
|
||||
)
|
||||
|
|
|
|||
|
|
@ -1,13 +1,13 @@
|
|||
import { cpSync, existsSync } from 'node:fs';
|
||||
import { resolve, join } from 'node:path';
|
||||
import {cpSync, existsSync} from 'node:fs';
|
||||
import {join, resolve} from 'node:path';
|
||||
|
||||
const MODULE_ID = process.cwd();
|
||||
|
||||
const SRC = join(MODULE_ID, "/dist")
|
||||
const DEST = "/home/macniel/.local/share/FoundryVTT/Data/systems/DSA_4-1"
|
||||
|
||||
if ( existsSync(SRC)) {
|
||||
cpSync(SRC, resolve(DEST), { recursive: true })
|
||||
if (existsSync(SRC)) {
|
||||
cpSync(SRC, resolve(DEST), {recursive: true})
|
||||
console.log(`copied ${SRC} to ${DEST}`)
|
||||
} else {
|
||||
console.error(`Source ${SRC} does not exists. Forgot to compile?`)
|
||||
|
|
|
|||
58
package.json
|
|
@ -1,31 +1,31 @@
|
|||
{
|
||||
"name": "DSA41Module",
|
||||
"version": "0.0.1",
|
||||
"description": "Another DSA 4.1 System Module for FoundryVTT",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://git.macniel.online/macniel/foundry-dsa41-game.git"
|
||||
},
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"test": "true",
|
||||
"build": "gulp",
|
||||
"installToFoundry": "node installToFoundry.mjs"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@foundryvtt/foundryvtt-cli": "^3.0.0",
|
||||
"cb": "^0.1.1",
|
||||
"del": "^8.0.1",
|
||||
"fvtt-types": "npm:@league-of-foundry-developers/foundry-vtt-types@^13.346.0-beta.20250812191140",
|
||||
"gulp": "^5.0.1",
|
||||
"gulp-replace": "^1.1.4",
|
||||
"gulp-sass": "^6.0.1",
|
||||
"merge-stream": "^2.0.0",
|
||||
"nedb": "^1.8.0",
|
||||
"sass": "^1.93.2",
|
||||
"sass-build": "^1.1.6"
|
||||
},
|
||||
"dependencies": {
|
||||
"gulp-cli": "^3.1.0"
|
||||
}
|
||||
"name": "DSA41Module",
|
||||
"version": "0.0.1",
|
||||
"description": "Another DSA 4.1 System Module for FoundryVTT",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://git.macniel.online/macniel/foundry-dsa41-game.git"
|
||||
},
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"test": "true",
|
||||
"build": "gulp",
|
||||
"installToFoundry": "node installToFoundry.mjs"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@foundryvtt/foundryvtt-cli": "^3.0.0",
|
||||
"cb": "^0.1.1",
|
||||
"del": "^8.0.1",
|
||||
"fvtt-types": "npm:@league-of-foundry-developers/foundry-vtt-types@^13.346.0-beta.20250812191140",
|
||||
"gulp": "^5.0.1",
|
||||
"gulp-replace": "^1.1.4",
|
||||
"gulp-sass": "^6.0.1",
|
||||
"merge-stream": "^2.0.0",
|
||||
"nedb": "^1.8.0",
|
||||
"sass": "^1.93.2",
|
||||
"sass-build": "^1.1.6"
|
||||
},
|
||||
"dependencies": {
|
||||
"gulp-cli": "^3.1.0"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 340 KiB |
|
After Width: | Height: | Size: 647 B |
|
After Width: | Height: | Size: 642 B |
|
After Width: | Height: | Size: 582 B |
|
After Width: | Height: | Size: 607 B |
|
After Width: | Height: | Size: 596 B |
|
After Width: | Height: | Size: 740 B |
|
After Width: | Height: | Size: 662 B |
|
After Width: | Height: | Size: 503 B |
|
After Width: | Height: | Size: 563 B |
|
After Width: | Height: | Size: 511 B |
|
After Width: | Height: | Size: 551 B |
|
After Width: | Height: | Size: 508 B |
|
After Width: | Height: | Size: 590 B |
|
After Width: | Height: | Size: 484 B |
|
After Width: | Height: | Size: 440 B |
|
After Width: | Height: | Size: 568 B |
|
After Width: | Height: | Size: 504 B |
|
After Width: | Height: | Size: 645 B |
|
After Width: | Height: | Size: 534 B |
|
After Width: | Height: | Size: 669 B |
|
After Width: | Height: | Size: 482 B |
|
After Width: | Height: | Size: 480 B |
|
After Width: | Height: | Size: 562 B |
|
After Width: | Height: | Size: 584 B |
|
After Width: | Height: | Size: 554 B |
|
After Width: | Height: | Size: 472 B |
|
After Width: | Height: | Size: 517 B |
|
After Width: | Height: | Size: 561 B |
|
After Width: | Height: | Size: 570 B |
|
After Width: | Height: | Size: 563 B |
|
After Width: | Height: | Size: 627 B |
|
After Width: | Height: | Size: 601 B |
|
After Width: | Height: | Size: 579 B |
|
After Width: | Height: | Size: 555 B |
|
After Width: | Height: | Size: 548 B |
|
After Width: | Height: | Size: 487 B |
|
After Width: | Height: | Size: 579 B |
|
After Width: | Height: | Size: 541 B |
|
After Width: | Height: | Size: 521 B |
|
After Width: | Height: | Size: 596 B |
|
After Width: | Height: | Size: 664 B |
|
After Width: | Height: | Size: 567 B |
|
After Width: | Height: | Size: 571 B |
|
After Width: | Height: | Size: 523 B |
|
After Width: | Height: | Size: 507 B |
|
After Width: | Height: | Size: 531 B |
|
After Width: | Height: | Size: 538 B |
|
After Width: | Height: | Size: 600 B |
|
After Width: | Height: | Size: 630 B |
|
After Width: | Height: | Size: 613 B |
|
After Width: | Height: | Size: 509 B |
|
After Width: | Height: | Size: 472 B |
|
After Width: | Height: | Size: 495 B |
|
After Width: | Height: | Size: 485 B |
|
After Width: | Height: | Size: 504 B |
|
After Width: | Height: | Size: 584 B |
|
After Width: | Height: | Size: 561 B |
|
After Width: | Height: | Size: 602 B |
|
After Width: | Height: | Size: 564 B |
|
After Width: | Height: | Size: 531 B |
|
After Width: | Height: | Size: 517 B |
|
After Width: | Height: | Size: 607 B |
|
After Width: | Height: | Size: 548 B |
|
After Width: | Height: | Size: 528 B |
|
After Width: | Height: | Size: 512 B |
|
After Width: | Height: | Size: 424 B |
|
After Width: | Height: | Size: 627 B |
|
After Width: | Height: | Size: 509 B |
|
After Width: | Height: | Size: 499 B |
|
After Width: | Height: | Size: 508 B |
|
After Width: | Height: | Size: 508 B |
|
After Width: | Height: | Size: 513 B |
|
After Width: | Height: | Size: 514 B |
|
After Width: | Height: | Size: 580 B |
|
After Width: | Height: | Size: 551 B |
|
After Width: | Height: | Size: 605 B |
|
After Width: | Height: | Size: 583 B |
|
After Width: | Height: | Size: 475 B |
|
After Width: | Height: | Size: 485 B |
|
After Width: | Height: | Size: 582 B |
|
After Width: | Height: | Size: 570 B |
|
After Width: | Height: | Size: 657 B |
|
After Width: | Height: | Size: 597 B |
|
After Width: | Height: | Size: 666 B |
|
After Width: | Height: | Size: 602 B |
|
After Width: | Height: | Size: 558 B |
|
After Width: | Height: | Size: 542 B |
|
After Width: | Height: | Size: 527 B |