From 704798cc277a8e44b0592ae751508a56bafeae62 Mon Sep 17 00:00:00 2001 From: Johannes Loher Date: Mon, 10 Jul 2023 01:01:38 +0200 Subject: [PATCH] fix: use correct tick value for combatants joining later --- module.json | 78 +++++++++++----------- package.json | 112 ++++++++++++++++---------------- src/data/documents/combatant.js | 5 +- src/systems/ds4.js | 4 +- tools/bump-version.js | 4 +- 5 files changed, 100 insertions(+), 103 deletions(-) diff --git a/module.json b/module.json index fbd7f12..5bb21fb 100644 --- a/module.json +++ b/module.json @@ -1,44 +1,40 @@ { - "id": "tickwerk", - "title": "Tickwerk", - "description": "A tick based combat system for Foundry Virtual Tabletop", - "authors": [ - { - "name": "Johannes Loher", - "email": "johannes.loher@fg4f.de", - "discord": "ghost#2000", - "ko-fi": "ghostfvtt" - } - ], - "url": "https://git.f3l.de/dungeonslayers/tickwerk", - "license": "https://git.f3l.de/dungeonslayers/tickwerk/raw/tag/1.3.2/LICENSE.md", - "readme": "https://git.f3l.de/dungeonslayers/tickwerk/raw/tag/1.3.2/README.md", - "bugs": "https://git.f3l.de/dungeonslayers/tickwerk/issues", - "changelog": "https://git.f3l.de/dungeonslayers/tickwerk/releases/tag/1.3.2", - "version": "1.3.2", - "compatibility": { - "minimum": "10.290", - "verified": "10" + "id": "tickwerk", + "title": "Tickwerk", + "description": "A tick based combat system for Foundry Virtual Tabletop", + "authors": [ + { + "name": "Johannes Loher", + "email": "johannes.loher@fg4f.de", + "discord": "ghost#2000", + "ko-fi": "ghostfvtt" + } + ], + "url": "https://git.f3l.de/dungeonslayers/tickwerk", + "license": "https://git.f3l.de/dungeonslayers/tickwerk/raw/tag/1.3.2/LICENSE.md", + "readme": "https://git.f3l.de/dungeonslayers/tickwerk/raw/tag/1.3.2/README.md", + "bugs": "https://git.f3l.de/dungeonslayers/tickwerk/issues", + "changelog": "https://git.f3l.de/dungeonslayers/tickwerk/releases/tag/1.3.2", + "version": "1.3.2", + "compatibility": { + "minimum": "10.290", + "verified": "10" + }, + "esmodules": ["tickwerk.js"], + "styles": ["styles/tickwerk.css"], + "languages": [ + { + "lang": "en", + "name": "English", + "path": "lang/en.json" }, - "esmodules": [ - "tickwerk.js" - ], - "styles": [ - "styles/tickwerk.css" - ], - "languages": [ - { - "lang": "en", - "name": "English", - "path": "lang/en.json" - }, - { - "lang": "de", - "name": "Deutsch", - "path": "lang/de.json" - } - ], - "manifest": "https://git.f3l.de/api/packages/dungeonslayers/generic/tickwerk/latest/module.json", - "download": "https://git.f3l.de/dungeonslayers/tickwerk/releases/download/1.3.2/tickwerk.zip", - "manifestPlusVersion": "1.2.0" + { + "lang": "de", + "name": "Deutsch", + "path": "lang/de.json" + } + ], + "manifest": "https://git.f3l.de/api/packages/dungeonslayers/generic/tickwerk/latest/module.json", + "download": "https://git.f3l.de/dungeonslayers/tickwerk/releases/download/1.3.2/tickwerk.zip", + "manifestPlusVersion": "1.2.0" } diff --git a/package.json b/package.json index dc72ae5..e30de40 100644 --- a/package.json +++ b/package.json @@ -1,58 +1,58 @@ { - "private": true, - "name": "tickwerk", - "description": "A tick based combat system for Foundry Virtual Tabletop", - "version": "1.3.2", - "license": "https://git.f3l.de/dungeonslayers/tickwerk#licensing", - "homepage": "https://git.f3l.de/dungeonslayers/tickwerk", - "repository": { - "type": "git", - "url": "https://git.f3l.de/dungeonslayers/tickwerk" - }, - "bugs": { - "url": "https://git.f3l.de/dungeonslayers/tickwerk/issues" - }, - "contributors": [ - { - "name": "Johannes Loher", - "email": "johannes.loher@fg4f.de" - } - ], - "type": "module", - "scripts": { - "build": "run-s clean:files build:files", - "build:files": "rollup -c", - "watch": "rollup -c -w", - "link-package": "node ./tools/link-package.js", - "clean": "run-p clean:files clean:link", - "clean:files": "rimraf dist", - "clean:link": "node ./tools/link-package.js --clean", - "lint": "eslint --ext .js,.cjs,.mjs .", - "lint:fix": "eslint --ext .js,.cjs,.mjs --fix .", - "format": "prettier --write \"./**/*.(js|cjs|mjs|json|scss|yml)\"", - "bump-version": "node ./tools/bump-version.js", - "changelog": "conventional-changelog -p conventionalcommits -o CHANGELOG.md -r 2" - }, - "devDependencies": { - "@commitlint/cli": "17.6.5", - "@commitlint/config-conventional": "17.6.5", - "@guanghechen/rollup-plugin-copy": "5.0.1", - "@swc/core": "1.3.62", - "conventional-changelog-cli": "2.2.2", - "conventional-changelog-conventionalcommits": "5.0.0", - "eslint": "8.42.0", - "eslint-config-prettier": "8.8.0", - "eslint-plugin-prettier": "4.2.1", - "fs-extra": "11.1.1", - "npm-run-all": "4.1.5", - "prettier": "2.8.8", - "rimraf": "5.0.1", - "rollup": "3.23.0", - "rollup-plugin-styles": "4.0.0", - "rollup-plugin-swc3": "0.8.2", - "sass": "1.62.1", - "semver": "7.5.1", - "yargs": "17.7.2" - }, - "packageManager": "yarn@3.6.0" + "private": true, + "name": "tickwerk", + "description": "A tick based combat system for Foundry Virtual Tabletop", + "version": "1.3.2", + "license": "https://git.f3l.de/dungeonslayers/tickwerk#licensing", + "homepage": "https://git.f3l.de/dungeonslayers/tickwerk", + "repository": { + "type": "git", + "url": "https://git.f3l.de/dungeonslayers/tickwerk" + }, + "bugs": { + "url": "https://git.f3l.de/dungeonslayers/tickwerk/issues" + }, + "contributors": [ + { + "name": "Johannes Loher", + "email": "johannes.loher@fg4f.de" + } + ], + "type": "module", + "scripts": { + "build": "run-s clean:files build:files", + "build:files": "rollup -c", + "watch": "rollup -c -w", + "link-package": "node ./tools/link-package.js", + "clean": "run-p clean:files clean:link", + "clean:files": "rimraf dist", + "clean:link": "node ./tools/link-package.js --clean", + "lint": "eslint --ext .js,.cjs,.mjs .", + "lint:fix": "eslint --ext .js,.cjs,.mjs --fix .", + "format": "prettier --write \"./**/*.(js|cjs|mjs|json|scss|yml)\"", + "bump-version": "node ./tools/bump-version.js", + "changelog": "conventional-changelog -p conventionalcommits -o CHANGELOG.md -r 2" + }, + "devDependencies": { + "@commitlint/cli": "17.6.5", + "@commitlint/config-conventional": "17.6.5", + "@guanghechen/rollup-plugin-copy": "5.0.1", + "@swc/core": "1.3.62", + "conventional-changelog-cli": "2.2.2", + "conventional-changelog-conventionalcommits": "5.0.0", + "eslint": "8.42.0", + "eslint-config-prettier": "8.8.0", + "eslint-plugin-prettier": "4.2.1", + "fs-extra": "11.1.1", + "npm-run-all": "4.1.5", + "prettier": "2.8.8", + "rimraf": "5.0.1", + "rollup": "3.23.0", + "rollup-plugin-styles": "4.0.0", + "rollup-plugin-swc3": "0.8.2", + "sass": "1.62.1", + "semver": "7.5.1", + "yargs": "17.7.2" + }, + "packageManager": "yarn@3.6.0" } diff --git a/src/data/documents/combatant.js b/src/data/documents/combatant.js index c996194..f548cfe 100644 --- a/src/data/documents/combatant.js +++ b/src/data/documents/combatant.js @@ -42,7 +42,7 @@ const CombatantMixin = (BaseCombatant) => { */ toggleWaiting() { const update = { [`flags.${packageId}.waiting`]: !this.waiting }; - if (this.parent?.started && this.waiting) update.initiative = this.parent?.round; + if (this.parent?.started && this.waiting) update.initiative = this.parent?.tickValue; return this.update(update); } @@ -66,7 +66,8 @@ const CombatantMixin = (BaseCombatant) => { } await this.update({ initiative: this.initiative + ticks }); - const advanceTime = ticks * CONFIG.time.roundTime; + const tickTime = CONFIG.tickwerk?.tickTime; + const advanceTime = tickTime !== undefined ? ticks * tickTime : undefined; if (advanceTime !== 0) { await this.combat?.update(undefined, { diff: false, advanceTime }); } diff --git a/src/systems/ds4.js b/src/systems/ds4.js index c978e56..b9c01c7 100644 --- a/src/systems/ds4.js +++ b/src/systems/ds4.js @@ -7,7 +7,7 @@ import { getGame } from '../helpers'; export const registerDS4SpecificFunctionality = () => { if (CONFIG.tickwerk === undefined) CONFIG.tickwerk = {}; - foundry.utils.mergeObject(CONFIG.tickwerk, { getTiebreaker, getInitiativeFormula }); + foundry.utils.mergeObject(CONFIG.tickwerk, { getTiebreaker, getInitiativeFormula, tickTime: 0.5 }); registerRollItemSetting(); Hooks.on('ds4.rollItem', onRollItem); @@ -71,7 +71,7 @@ const getTiebreaker = async (combatant, combatants) => { const getInitiativeFormula = (combatant) => { const started = combatant.combat?.started ?? false; if (!started) return '-@combatValues.initiative.total'; - const tickValue = combatant.combat?.round ?? 0; + const tickValue = combatant.combat?.tickValue ?? 0; return `max(${tickValue} + 10 - @combatValues.initiative.total, ${tickValue})`; }; diff --git a/tools/bump-version.js b/tools/bump-version.js index b555f56..a520e84 100644 --- a/tools/bump-version.js +++ b/tools/bump-version.js @@ -81,7 +81,7 @@ function bumpVersion(release) { console.log(`Bumping version number to '${targetVersion}'`); packageJson.version = targetVersion; - fs.writeJSONSync('package.json', packageJson, { spaces: 4 }); + fs.writeJSONSync('package.json', packageJson, { spaces: 2 }); manifest.version = targetVersion; manifest.url = repositoryURL; manifest.manifest = getManifestUrl(getChannel(targetVersion)); @@ -90,7 +90,7 @@ function bumpVersion(release) { manifest.changelog = getChangelogURL(targetVersion); manifest.readme = getReadmeURL(targetVersion); manifest.license = getLicenseURL(targetVersion); - fs.writeJSONSync(manifestPath, manifest, { spaces: 4 }); + fs.writeJSONSync(manifestPath, manifest, { spaces: 2 }); } const argv = yargs(hideBin(process.argv)).usage('Usage: $0').option('release', { -- 2.45.2