Merge branch 'main' into feature/attribute-rolls

# Conflicts:
#	src/module/sheets/characterSheet.mjs
#	src/style/styles.scss
#	src/templates/actor/actor-character-sheet.hbs
feature/attribute-rolls
paranoidSpectre 2025-10-05 19:48:48 +02:00
commit ced57dbbcb
1191 changed files with 24042 additions and 2999 deletions

View File

@ -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:

View File

@ -1,8 +1,8 @@
name: Release Job
run-name: ${{gitea.actor}} is releasing a package
on:
on:
release:
types: [published]
types: [ published ]
jobs:
build:

12
.idea/DSA41.iml 100644
View File

@ -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>

View File

@ -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>

View File

@ -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

View File

@ -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"
}

View File

@ -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
)

View File

@ -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?`)

View File

@ -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"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 340 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 647 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 642 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 582 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 607 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 596 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 740 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 662 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 503 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 563 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 511 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 551 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 508 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 590 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 484 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 440 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 568 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 504 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 645 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 534 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 669 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 482 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 480 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 562 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 584 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 554 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 472 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 517 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 561 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 570 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 563 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 627 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 601 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 579 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 555 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 548 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 487 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 579 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 541 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 521 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 596 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 664 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 567 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 571 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 523 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 507 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 531 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 538 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 600 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 630 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 613 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 509 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 472 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 495 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 485 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 504 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 584 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 561 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 602 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 564 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 531 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 517 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 607 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 548 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 528 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 512 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 424 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 627 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 509 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 499 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 508 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 508 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 513 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 514 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 580 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 551 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 605 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 583 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 475 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 485 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 582 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 570 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 657 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 597 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 666 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 602 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 558 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 542 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 527 B

Some files were not shown because too many files have changed in this diff Show More