Compare commits
No commits in common. "main" and "1.3.3" have entirely different histories.
22 changed files with 3640 additions and 3480 deletions
|
@ -4,96 +4,96 @@
|
||||||
|
|
||||||
name: Bug Report
|
name: Bug Report
|
||||||
about: File a bug report
|
about: File a bug report
|
||||||
labels: ['bug', 'to be confirmed']
|
labels: ["bug", "to be confirmed"]
|
||||||
body:
|
body:
|
||||||
- type: markdown
|
- type: markdown
|
||||||
attributes:
|
attributes:
|
||||||
value: |
|
value: |
|
||||||
Your issue may already have been reported! Please search on the [issue tracker](https://git.f3l.de/dungeonslayers/tickwerk/issues) before submitting a new one.
|
Your issue may already have been reported! Please search on the [issue tracker](https://git.f3l.de/dungeonslayers/tickwerk/issues) before submitting a new one.
|
||||||
|
|
||||||
Thanks for taking the time to fill out this bug report! In order to make it effective, please provide the following information.
|
Thanks for taking the time to fill out this bug report! In order to make it effective, please provide the following information.
|
||||||
- type: markdown
|
- type: markdown
|
||||||
attributes:
|
attributes:
|
||||||
value: |
|
value: |
|
||||||
## Issue Description
|
## Issue Description
|
||||||
- type: textarea
|
- type: textarea
|
||||||
id: expected
|
id: expected
|
||||||
attributes:
|
attributes:
|
||||||
label: Expected Behavior
|
label: Expected Behavior
|
||||||
description: What is the behavior that you expected?
|
description: What is the behavior that you expected?
|
||||||
validations:
|
validations:
|
||||||
required: true
|
required: true
|
||||||
- type: textarea
|
- type: textarea
|
||||||
id: current
|
id: current
|
||||||
attributes:
|
attributes:
|
||||||
label: Current Behavior
|
label: Current Behavior
|
||||||
description: What is the current behavior, i.e., what happens actually?
|
description: What is the current behavior, i.e., what happens actually?
|
||||||
validations:
|
validations:
|
||||||
required: true
|
required: true
|
||||||
- type: textarea
|
- type: textarea
|
||||||
id: steps
|
id: steps
|
||||||
attributes:
|
attributes:
|
||||||
label: Steps to Reproduce
|
label: Steps to Reproduce
|
||||||
description: What are the steps to reproduce the problem?
|
description: What are the steps to reproduce the problem?
|
||||||
placeholder: |
|
placeholder: |
|
||||||
1.
|
1.
|
||||||
2.
|
2.
|
||||||
3.
|
3.
|
||||||
4.
|
4.
|
||||||
validations:
|
validations:
|
||||||
required: true
|
required: true
|
||||||
- type: textarea
|
- type: textarea
|
||||||
id: context
|
id: context
|
||||||
attributes:
|
attributes:
|
||||||
label: Context
|
label: Context
|
||||||
description: Please provide any additional context that might be helpful, e.g. log messages, screenshots, videos, or exports of problematic scenes or worlds.
|
description: Please provide any additional context that might be helpful, e.g. log messages, screenshots, videos, or exports of problematic scenes or worlds.
|
||||||
validations:
|
validations:
|
||||||
required: false
|
required: false
|
||||||
- type: markdown
|
- type: markdown
|
||||||
attributes:
|
attributes:
|
||||||
value: |
|
value: |
|
||||||
## Environment Details
|
## Environment Details
|
||||||
- type: input
|
- type: input
|
||||||
id: version
|
id: version
|
||||||
attributes:
|
attributes:
|
||||||
label: Version
|
label: Version
|
||||||
description: Which version(s) of Tickwerk are you seeing the problem on?
|
description: Which version(s) of Tickwerk are you seeing the problem on?
|
||||||
validations:
|
validations:
|
||||||
required: true
|
required: true
|
||||||
- type: input
|
- type: input
|
||||||
id: foundry-version
|
id: foundry-version
|
||||||
attributes:
|
attributes:
|
||||||
label: Foundry VTT Version
|
label: Foundry VTT Version
|
||||||
description: Which version(s) and build of Foundry VTT are you seeing the problem on?
|
description: Which version(s) and build of Foundry VTT are you seeing the problem on?
|
||||||
validations:
|
validations:
|
||||||
required: true
|
required: true
|
||||||
- type: input
|
- type: input
|
||||||
id: os
|
id: os
|
||||||
attributes:
|
attributes:
|
||||||
label: Operating System
|
label: Operating System
|
||||||
description: Which operating system are you using? (Windows, OS X, Linux (which distro))
|
description: Which operating system are you using? (Windows, OS X, Linux (which distro))
|
||||||
placeholder: Windows
|
placeholder: Windows
|
||||||
validations:
|
validations:
|
||||||
required: true
|
required: true
|
||||||
- type: dropdown
|
- type: dropdown
|
||||||
id: browser
|
id: browser
|
||||||
attributes:
|
attributes:
|
||||||
label: Browser / App
|
label: Browser / App
|
||||||
description: Are you using a Browser or the native Electron application? (Select all that apply)
|
description: Are you using a Browser or the native Electron application? (Select all that apply)
|
||||||
multiple: true
|
multiple: true
|
||||||
options:
|
options:
|
||||||
- Native Electron App
|
- Native Electron App
|
||||||
- Chrome
|
- Chrome
|
||||||
- Firefox
|
- Firefox
|
||||||
- Microsoft Edge
|
- Microsoft Edge
|
||||||
- Safari
|
- Safari
|
||||||
- Other
|
- Other
|
||||||
validations:
|
validations:
|
||||||
required: true
|
required: true
|
||||||
- type: input
|
- type: input
|
||||||
id: modules
|
id: modules
|
||||||
attributes:
|
attributes:
|
||||||
label: Relevant Modules
|
label: Relevant Modules
|
||||||
description: Please list any other active modules (including their versions) that you think might be relevant.
|
description: Please list any other active modules (including their versions) that you think might be relevant.
|
||||||
validations:
|
validations:
|
||||||
required: false
|
required: false
|
||||||
|
|
|
@ -4,25 +4,25 @@
|
||||||
|
|
||||||
name: Feature Request
|
name: Feature Request
|
||||||
description: Submit a feature request
|
description: Submit a feature request
|
||||||
labels: ['feature']
|
labels: ["feature"]
|
||||||
body:
|
body:
|
||||||
- type: markdown
|
- type: markdown
|
||||||
attributes:
|
attributes:
|
||||||
value: |
|
value: |
|
||||||
Your issue may already have been reported! Please search on the [issue tracker](https://git.f3l.de/dungeonslayers/tickwerk/issues) before submitting a new one.
|
Your issue may already have been reported! Please search on the [issue tracker](https://git.f3l.de/dungeonslayers/tickwerk/issues) before submitting a new one.
|
||||||
|
|
||||||
In order to submit an effective feature request, please provide the following information.
|
In order to submit an effective feature request, please provide the following information.
|
||||||
- type: textarea
|
- type: textarea
|
||||||
id: description
|
id: description
|
||||||
attributes:
|
attributes:
|
||||||
label: Description
|
label: Description
|
||||||
description: Please describe the proposal in as much detail as you feel is necessary.
|
description: Please describe the proposal in as much detail as you feel is necessary.
|
||||||
validations:
|
validations:
|
||||||
required: true
|
required: true
|
||||||
- type: textarea
|
- type: textarea
|
||||||
id: context
|
id: context
|
||||||
attributes:
|
attributes:
|
||||||
label: Context
|
label: Context
|
||||||
description: Is there anything else you can add about the proposal? You might want to link to related issues here if you haven't already.
|
description: Is there anything else you can add about the proposal? You might want to link to related issues here if you haven't already.
|
||||||
validations:
|
validations:
|
||||||
required: false
|
required: false
|
||||||
|
|
2
.vscode/settings.json
vendored
2
.vscode/settings.json
vendored
|
@ -4,5 +4,5 @@
|
||||||
"**/.pnp.*": true
|
"**/.pnp.*": true
|
||||||
},
|
},
|
||||||
"eslint.nodePath": ".yarn/sdks",
|
"eslint.nodePath": ".yarn/sdks",
|
||||||
"prettier.prettierPath": ".yarn/sdks/prettier/index.js"
|
"prettier.prettierPath": ".yarn/sdks/prettier/index.js",
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,41 +5,41 @@
|
||||||
$schema: https://raw.githubusercontent.com/woodpecker-ci/woodpecker/master/pipeline/schema/schema.json
|
$schema: https://raw.githubusercontent.com/woodpecker-ci/woodpecker/master/pipeline/schema/schema.json
|
||||||
|
|
||||||
variables:
|
variables:
|
||||||
- &node_image node:lts
|
- &node_image node:lts
|
||||||
|
|
||||||
when:
|
when:
|
||||||
- event: push
|
- event: push
|
||||||
branch: ${CI_REPO_DEFAULT_BRANCH}
|
branch: ${CI_REPO_DEFAULT_BRANCH}
|
||||||
- event: pull_request
|
- event: pull_request
|
||||||
- event: tag
|
- event: tag
|
||||||
- event: manual
|
- event: manual
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
install:
|
install:
|
||||||
image: *node_image
|
image: *node_image
|
||||||
commands:
|
commands:
|
||||||
- yarn install --immutable
|
- yarn install --immutable
|
||||||
lint:
|
lint:
|
||||||
group: check
|
group: check
|
||||||
image: *node_image
|
image: *node_image
|
||||||
commands:
|
commands:
|
||||||
- yarn lint
|
- yarn lint
|
||||||
reuse:
|
reuse:
|
||||||
group: check
|
group: check
|
||||||
image: fsfe/reuse:latest
|
image: fsfe/reuse:latest
|
||||||
commands:
|
commands:
|
||||||
- reuse lint
|
- reuse lint
|
||||||
commitlint:
|
commitlint:
|
||||||
group: check
|
group: check
|
||||||
image: *node_image
|
image: *node_image
|
||||||
commands:
|
commands:
|
||||||
- git fetch
|
- git fetch
|
||||||
- yarn run commitlint --from origin/${CI_COMMIT_TARGET_BRANCH}
|
- yarn run commitlint --from origin/${CI_COMMIT_TARGET_BRANCH}
|
||||||
when:
|
when:
|
||||||
event: pull_request
|
event: pull_request
|
||||||
build:
|
build:
|
||||||
group: build
|
group: build
|
||||||
image: *node_image
|
image: *node_image
|
||||||
commands:
|
commands:
|
||||||
- export APPDATA=$(pwd)
|
- export APPDATA=$(pwd)
|
||||||
- yarn build
|
- yarn build
|
||||||
|
|
|
@ -77,15 +77,15 @@ steps:
|
||||||
- forge_token
|
- forge_token
|
||||||
publish-to-foundry-admin:
|
publish-to-foundry-admin:
|
||||||
group: publish
|
group: publish
|
||||||
image: johannesloher/foundry-publish:v2.4.1
|
image: johannesloher/foundry-publish
|
||||||
environment:
|
environment:
|
||||||
FVTT_DELETE_OBSOLETE_VERSIONS: 'true'
|
FVTT_DELETE_OBSOLETE_VERSIONS: 'true'
|
||||||
FVTT_USE_NEW_PACKAGE_ADMINISTRATION_INTERFACE: 'true'
|
|
||||||
commands:
|
commands:
|
||||||
- export FVTT_MANIFEST_PATH=${CI_REPO_NAME}/module.json
|
- export FVTT_MANIFEST_PATH=${CI_REPO_NAME}/module.json
|
||||||
- export FVTT_MANIFEST_URL=${CI_REPO_URL}/releases/download/${CI_COMMIT_TAG}/module.json
|
- export FVTT_MANIFEST_URL=${CI_REPO_URL}/releases/download/${CI_COMMIT_TAG}/module.json
|
||||||
- foundry-publish
|
- foundry-publish
|
||||||
secrets:
|
secrets:
|
||||||
|
- fvtt_package_id
|
||||||
- fvtt_username
|
- fvtt_username
|
||||||
- fvtt_password
|
- fvtt_password
|
||||||
when:
|
when:
|
||||||
|
|
|
@ -5,38 +5,37 @@
|
||||||
$schema: https://raw.githubusercontent.com/woodpecker-ci/woodpecker/master/pipeline/schema/schema.json
|
$schema: https://raw.githubusercontent.com/woodpecker-ci/woodpecker/master/pipeline/schema/schema.json
|
||||||
|
|
||||||
variables:
|
variables:
|
||||||
- &node_image node:lts
|
- &node_image node:lts
|
||||||
|
|
||||||
when:
|
when:
|
||||||
event: manual
|
event: manual
|
||||||
branch: ${CI_REPO_DEFAULT_BRANCH}
|
branch: ${CI_REPO_DEFAULT_BRANCH}
|
||||||
|
|
||||||
depends_on:
|
depends_on:
|
||||||
- checks
|
- checks
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
install:
|
install:
|
||||||
image: *node_image
|
image: *node_image
|
||||||
commands:
|
commands:
|
||||||
- yarn install --immutable
|
- yarn install --immutable
|
||||||
release:
|
release:
|
||||||
image: *node_image
|
image: *node_image
|
||||||
commands:
|
commands:
|
||||||
- apt-get update
|
- apt-get update
|
||||||
- apt-get install --yes jq
|
- apt-get install --yes jq
|
||||||
- export REPOSITORY_URL=$(echo "${CI_REPO_CLONE_URL}" | sed -e "s|://|://$${FORGE_TOKEN_NAME}:$${FORGE_TOKEN}@|g")
|
- export REPOSITORY_URL=$(echo "${CI_REPO_CLONE_URL}" | sed -e "s|://|://$${FORGE_TOKEN_NAME}:$${FORGE_TOKEN}@|g")
|
||||||
- git remote set-url origin $${REPOSITORY_URL}
|
- git remote set-url origin $${REPOSITORY_URL}
|
||||||
- git config user.name woodpecker[bot]
|
- git config user.name woodpecker[bot]
|
||||||
- git config user.email woodpecker[bot]@${CI_SYSTEM_HOST}
|
- git config user.email woodpecker[bot]@${CI_SYSTEM_HOST}
|
||||||
- yarn bump-version --release=${RELEASE_TYPE}
|
- yarn bump-version --release=${RELEASE_TYPE}
|
||||||
- export RELEASE_VERSION=$(jq -r '.version' < package.json)
|
- export RELEASE_VERSION=$(jq -r '.version' < package.json)
|
||||||
- yarn prettier --write package.json module.json
|
- git --no-pager diff
|
||||||
- git --no-pager diff
|
- git add package.json module.json
|
||||||
- git add package.json module.json
|
- 'git commit -m "chore(release): $${RELEASE_VERSION}"'
|
||||||
- 'git commit -m "chore(release): $${RELEASE_VERSION}"'
|
- git tag -f $${RELEASE_VERSION}
|
||||||
- git tag -f $${RELEASE_VERSION}
|
- git push origin ${CI_COMMIT_BRANCH}
|
||||||
- git push origin ${CI_COMMIT_BRANCH}
|
- git push origin $${RELEASE_VERSION}
|
||||||
- git push origin $${RELEASE_VERSION}
|
secrets:
|
||||||
secrets:
|
- forge_token_name
|
||||||
- forge_token_name
|
- forge_token
|
||||||
- forge_token
|
|
||||||
|
|
77
.yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs
vendored
Normal file
77
.yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs
vendored
Normal file
File diff suppressed because one or more lines are too long
874
.yarn/releases/yarn-3.6.0.cjs
vendored
Executable file
874
.yarn/releases/yarn-3.6.0.cjs
vendored
Executable file
File diff suppressed because one or more lines are too long
934
.yarn/releases/yarn-4.5.1.cjs
vendored
934
.yarn/releases/yarn-4.5.1.cjs
vendored
File diff suppressed because one or more lines are too long
20
.yarn/sdks/eslint/lib/unsupported-api.js
vendored
20
.yarn/sdks/eslint/lib/unsupported-api.js
vendored
|
@ -1,20 +0,0 @@
|
||||||
#!/usr/bin/env node
|
|
||||||
|
|
||||||
const {existsSync} = require(`fs`);
|
|
||||||
const {createRequire} = require(`module`);
|
|
||||||
const {resolve} = require(`path`);
|
|
||||||
|
|
||||||
const relPnpApiPath = "../../../../.pnp.cjs";
|
|
||||||
|
|
||||||
const absPnpApiPath = resolve(__dirname, relPnpApiPath);
|
|
||||||
const absRequire = createRequire(absPnpApiPath);
|
|
||||||
|
|
||||||
if (existsSync(absPnpApiPath)) {
|
|
||||||
if (!process.versions.pnp) {
|
|
||||||
// Setup the environment to be able to require eslint/use-at-your-own-risk
|
|
||||||
require(absPnpApiPath).setup();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Defer to the real eslint/use-at-your-own-risk your application uses
|
|
||||||
module.exports = absRequire(`eslint/use-at-your-own-risk`);
|
|
12
.yarn/sdks/eslint/package.json
vendored
12
.yarn/sdks/eslint/package.json
vendored
|
@ -1,14 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "eslint",
|
"name": "eslint",
|
||||||
"version": "8.52.0-sdk",
|
"version": "8.28.0-sdk",
|
||||||
"main": "./lib/api.js",
|
"main": "./lib/api.js",
|
||||||
"type": "commonjs",
|
"type": "commonjs"
|
||||||
"bin": {
|
|
||||||
"eslint": "./bin/eslint.js"
|
|
||||||
},
|
|
||||||
"exports": {
|
|
||||||
"./package.json": "./package.json",
|
|
||||||
".": "./lib/api.js",
|
|
||||||
"./use-at-your-own-risk": "./lib/unsupported-api.js"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
20
.yarn/sdks/prettier/bin-prettier.js
vendored
20
.yarn/sdks/prettier/bin-prettier.js
vendored
|
@ -1,20 +0,0 @@
|
||||||
#!/usr/bin/env node
|
|
||||||
|
|
||||||
const {existsSync} = require(`fs`);
|
|
||||||
const {createRequire} = require(`module`);
|
|
||||||
const {resolve} = require(`path`);
|
|
||||||
|
|
||||||
const relPnpApiPath = "../../../.pnp.cjs";
|
|
||||||
|
|
||||||
const absPnpApiPath = resolve(__dirname, relPnpApiPath);
|
|
||||||
const absRequire = createRequire(absPnpApiPath);
|
|
||||||
|
|
||||||
if (existsSync(absPnpApiPath)) {
|
|
||||||
if (!process.versions.pnp) {
|
|
||||||
// Setup the environment to be able to require prettier/bin-prettier.js
|
|
||||||
require(absPnpApiPath).setup();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Defer to the real prettier/bin-prettier.js your application uses
|
|
||||||
module.exports = absRequire(`prettier/bin-prettier.js`);
|
|
6
.yarn/sdks/prettier/index.js
vendored
Normal file → Executable file
6
.yarn/sdks/prettier/index.js
vendored
Normal file → Executable file
|
@ -11,10 +11,10 @@ const absRequire = createRequire(absPnpApiPath);
|
||||||
|
|
||||||
if (existsSync(absPnpApiPath)) {
|
if (existsSync(absPnpApiPath)) {
|
||||||
if (!process.versions.pnp) {
|
if (!process.versions.pnp) {
|
||||||
// Setup the environment to be able to require prettier
|
// Setup the environment to be able to require prettier/index.js
|
||||||
require(absPnpApiPath).setup();
|
require(absPnpApiPath).setup();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Defer to the real prettier your application uses
|
// Defer to the real prettier/index.js your application uses
|
||||||
module.exports = absRequire(`prettier`);
|
module.exports = absRequire(`prettier/index.js`);
|
||||||
|
|
5
.yarn/sdks/prettier/package.json
vendored
5
.yarn/sdks/prettier/package.json
vendored
|
@ -1,7 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "prettier",
|
"name": "prettier",
|
||||||
"version": "2.8.8-sdk",
|
"version": "2.8.0-sdk",
|
||||||
"main": "./index.js",
|
"main": "./index.js",
|
||||||
"type": "commonjs",
|
"type": "commonjs"
|
||||||
"bin": "./bin-prettier.js"
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
nodeLinker: pnp
|
nodeLinker: pnp
|
||||||
|
|
||||||
yarnPath: .yarn/releases/yarn-4.5.1.cjs
|
plugins:
|
||||||
|
- path: .yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs
|
||||||
|
spec: '@yarnpkg/plugin-interactive-tools'
|
||||||
|
|
||||||
enableGlobalCache: false
|
yarnPath: .yarn/releases/yarn-3.6.0.cjs
|
||||||
|
|
|
@ -1,8 +1,7 @@
|
||||||
{
|
{
|
||||||
"compilerOptions": {
|
"compilerOptions": {
|
||||||
"module": "es2022",
|
"module": "es2022",
|
||||||
"target": "ES2022",
|
"target": "ES2022"
|
||||||
"strict": true
|
|
||||||
},
|
},
|
||||||
"exclude": ["node_modules", "dist"],
|
"exclude": ["node_modules", "dist"],
|
||||||
"include": ["src", "client", "common"]
|
"include": ["src", "client", "common"]
|
||||||
|
|
30
module.json
30
module.json
|
@ -10,23 +10,22 @@
|
||||||
"ko-fi": "ghostfvtt"
|
"ko-fi": "ghostfvtt"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"license": "https://git.f3l.de/dungeonslayers/tickwerk/raw/tag/1.4.4/LICENSE.md",
|
"url": "https://git.f3l.de/dungeonslayers/tickwerk",
|
||||||
"readme": "https://git.f3l.de/dungeonslayers/tickwerk/raw/tag/1.4.4/README.md",
|
"license": "https://git.f3l.de/dungeonslayers/tickwerk/raw/tag/1.3.3/LICENSE.md",
|
||||||
|
"readme": "https://git.f3l.de/dungeonslayers/tickwerk/raw/tag/1.3.3/README.md",
|
||||||
"bugs": "https://git.f3l.de/dungeonslayers/tickwerk/issues",
|
"bugs": "https://git.f3l.de/dungeonslayers/tickwerk/issues",
|
||||||
"changelog": "https://git.f3l.de/dungeonslayers/tickwerk/releases/tag/1.4.4",
|
"changelog": "https://git.f3l.de/dungeonslayers/tickwerk/releases/tag/1.3.3",
|
||||||
"version": "1.4.4",
|
"version": "1.3.3",
|
||||||
"flags": {
|
|
||||||
"hotReload": {
|
|
||||||
"extensions": ["css", "hbs", "json"],
|
|
||||||
"paths": ["templates", "styles", "lang"]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"compatibility": {
|
"compatibility": {
|
||||||
"minimum": "10.290",
|
"minimum": "10.290",
|
||||||
"verified": "11"
|
"verified": "10"
|
||||||
},
|
},
|
||||||
"esmodules": ["tickwerk.js"],
|
"esmodules": [
|
||||||
"styles": ["styles/tickwerk.css"],
|
"tickwerk.js"
|
||||||
|
],
|
||||||
|
"styles": [
|
||||||
|
"styles/tickwerk.css"
|
||||||
|
],
|
||||||
"languages": [
|
"languages": [
|
||||||
{
|
{
|
||||||
"lang": "en",
|
"lang": "en",
|
||||||
|
@ -40,7 +39,6 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"manifest": "https://git.f3l.de/api/packages/dungeonslayers/generic/tickwerk/latest/module.json",
|
"manifest": "https://git.f3l.de/api/packages/dungeonslayers/generic/tickwerk/latest/module.json",
|
||||||
"download": "https://git.f3l.de/dungeonslayers/tickwerk/releases/download/1.4.4/tickwerk.zip",
|
"download": "https://git.f3l.de/dungeonslayers/tickwerk/releases/download/1.3.3/tickwerk.zip",
|
||||||
"manifestPlusVersion": "1.2.0",
|
"manifestPlusVersion": "1.2.0"
|
||||||
"url": "https://git.f3l.de/dungeonslayers/tickwerk"
|
|
||||||
}
|
}
|
||||||
|
|
32
package.json
32
package.json
|
@ -2,7 +2,7 @@
|
||||||
"private": true,
|
"private": true,
|
||||||
"name": "tickwerk",
|
"name": "tickwerk",
|
||||||
"description": "A tick based combat system for Foundry Virtual Tabletop",
|
"description": "A tick based combat system for Foundry Virtual Tabletop",
|
||||||
"version": "1.4.4",
|
"version": "1.3.3",
|
||||||
"license": "https://git.f3l.de/dungeonslayers/tickwerk#licensing",
|
"license": "https://git.f3l.de/dungeonslayers/tickwerk#licensing",
|
||||||
"homepage": "https://git.f3l.de/dungeonslayers/tickwerk",
|
"homepage": "https://git.f3l.de/dungeonslayers/tickwerk",
|
||||||
"repository": {
|
"repository": {
|
||||||
|
@ -29,30 +29,30 @@
|
||||||
"clean:link": "node ./tools/link-package.js --clean",
|
"clean:link": "node ./tools/link-package.js --clean",
|
||||||
"lint": "eslint --ext .js,.cjs,.mjs .",
|
"lint": "eslint --ext .js,.cjs,.mjs .",
|
||||||
"lint:fix": "eslint --ext .js,.cjs,.mjs --fix .",
|
"lint:fix": "eslint --ext .js,.cjs,.mjs --fix .",
|
||||||
"format": "prettier --write \"./**/*.(js|cjs|mjs|json|scss|yml|yaml)\"",
|
"format": "prettier --write \"./**/*.(js|cjs|mjs|json|scss|yml)\"",
|
||||||
"bump-version": "node ./tools/bump-version.js",
|
"bump-version": "node ./tools/bump-version.js",
|
||||||
"changelog": "conventional-changelog -p conventionalcommits -o CHANGELOG.md -r 2"
|
"changelog": "conventional-changelog -p conventionalcommits -o CHANGELOG.md -r 2"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@commitlint/cli": "19.5.0",
|
"@commitlint/cli": "17.6.5",
|
||||||
"@commitlint/config-conventional": "19.5.0",
|
"@commitlint/config-conventional": "17.6.5",
|
||||||
"@guanghechen/rollup-plugin-copy": "6.0.2",
|
"@guanghechen/rollup-plugin-copy": "5.0.1",
|
||||||
"@swc/core": "1.7.36",
|
"@swc/core": "1.3.62",
|
||||||
"conventional-changelog-cli": "5.0.0",
|
"conventional-changelog-cli": "2.2.2",
|
||||||
"conventional-changelog-conventionalcommits": "8.0.0",
|
"conventional-changelog-conventionalcommits": "5.0.0",
|
||||||
"eslint": "8.57.1",
|
"eslint": "8.42.0",
|
||||||
"eslint-config-prettier": "9.1.0",
|
"eslint-config-prettier": "8.8.0",
|
||||||
"eslint-plugin-prettier": "4.2.1",
|
"eslint-plugin-prettier": "4.2.1",
|
||||||
"fs-extra": "11.2.0",
|
"fs-extra": "11.1.1",
|
||||||
"npm-run-all": "4.1.5",
|
"npm-run-all": "4.1.5",
|
||||||
"prettier": "2.8.8",
|
"prettier": "2.8.8",
|
||||||
"rimraf": "6.0.1",
|
"rimraf": "5.0.1",
|
||||||
"rollup": "4.24.0",
|
"rollup": "3.23.0",
|
||||||
"rollup-plugin-styles": "4.0.0",
|
"rollup-plugin-styles": "4.0.0",
|
||||||
"rollup-plugin-swc3": "0.12.1",
|
"rollup-plugin-swc3": "0.8.2",
|
||||||
"sass": "1.62.1",
|
"sass": "1.62.1",
|
||||||
"semver": "7.6.3",
|
"semver": "7.5.1",
|
||||||
"yargs": "17.7.2"
|
"yargs": "17.7.2"
|
||||||
},
|
},
|
||||||
"packageManager": "yarn@4.5.1"
|
"packageManager": "yarn@3.6.0"
|
||||||
}
|
}
|
||||||
|
|
|
@ -112,16 +112,14 @@ const CombatantMixin = (BaseCombatant) => {
|
||||||
* @param {object} data The data of the creation / update
|
* @param {object} data The data of the creation / update
|
||||||
*/
|
*/
|
||||||
async #updateTiebreakerData(data) {
|
async #updateTiebreakerData(data) {
|
||||||
const waiting = data.flags?.[packageId]?.waiting;
|
if ('initiative' in data) {
|
||||||
if ('initiative' in data || waiting !== undefined) {
|
|
||||||
const newInitiative = data.initiative ?? this.initiative;
|
|
||||||
const combatantsWithSameTickValue =
|
const combatantsWithSameTickValue =
|
||||||
this.parent?.combatants.filter((combatant) => {
|
this.parent?.combatants.filter((combatant) => {
|
||||||
const otherInitiative =
|
const otherInitiative =
|
||||||
combatant._newInitiative !== undefined ? combatant._newInitiative : combatant.initiative;
|
combatant._newInitiative !== undefined ? combatant._newInitiative : combatant.initiative;
|
||||||
return otherInitiative === newInitiative && combatant !== this;
|
return otherInitiative === data.initiative;
|
||||||
}) ?? [];
|
}) ?? [];
|
||||||
const tiebreaker = await this.#getTiebreaker(combatantsWithSameTickValue, waiting);
|
const tiebreaker = await this.#getTiebreaker(combatantsWithSameTickValue);
|
||||||
foundry.utils.setProperty(data, `flags.${packageId}.tiebreaker`, tiebreaker);
|
foundry.utils.setProperty(data, `flags.${packageId}.tiebreaker`, tiebreaker);
|
||||||
this._newInitiative = data.initiative;
|
this._newInitiative = data.initiative;
|
||||||
this._newTiebreaker = tiebreaker;
|
this._newTiebreaker = tiebreaker;
|
||||||
|
@ -131,12 +129,11 @@ const CombatantMixin = (BaseCombatant) => {
|
||||||
/**
|
/**
|
||||||
* Get a tiebreaker between this combatant and the given other combatants.
|
* Get a tiebreaker between this combatant and the given other combatants.
|
||||||
* @param {TickwerkCombatant[]} combatants The other combatants among which to find a tiebreaker
|
* @param {TickwerkCombatant[]} combatants The other combatants among which to find a tiebreaker
|
||||||
* @param {boolean | undefined} waiting The change of the waiting state of the combatanmt
|
|
||||||
* @returns {Promise<number>} A promise that resolves to the tiebreaker
|
* @returns {Promise<number>} A promise that resolves to the tiebreaker
|
||||||
*/
|
*/
|
||||||
async #getTiebreaker(combatants, waiting) {
|
async #getTiebreaker(combatants) {
|
||||||
const getTiebreaker = CONFIG.tickwerk?.getTiebreaker ?? defaultGetTiebreaker;
|
const getTiebreaker = CONFIG.tickwerk?.getTiebreaker ?? defaultGetTiebreaker;
|
||||||
return getTiebreaker(this, combatants, waiting);
|
return getTiebreaker(this, combatants);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @override */
|
/** @override */
|
||||||
|
@ -182,14 +179,14 @@ const CombatantMixin = (BaseCombatant) => {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A function to get a tiebreaker for a combatant
|
* A function to get a tiebreaker for a combatant
|
||||||
* @typedef {(combatant: TickwerkCombatant, combatants: TickwerkCombatant[], waiting: boolean | undefined) => Promise<number>} GetTiebreaker
|
* @typedef {(combatant: TickwerkCombatant, combatants: TickwerkCombatant[]) => Promise<number>} GetTiebreaker
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Default implementation to get a tiebreaker for a combatant.
|
* Default implementation to get a tiebreaker for a combatant.
|
||||||
* @type {GetTiebreaker}
|
* @type {GetTiebreaker}
|
||||||
*/
|
*/
|
||||||
export const defaultGetTiebreaker = async (combatant, combatants) => {
|
const defaultGetTiebreaker = async (combatant, combatants) => {
|
||||||
if (combatants.length === 0) return 0;
|
if (combatants.length === 0) return 0;
|
||||||
const tiebreakers = combatants.map((combatant) => {
|
const tiebreakers = combatants.map((combatant) => {
|
||||||
return (
|
return (
|
||||||
|
|
|
@ -14,7 +14,7 @@ export const registerDS4SpecificFunctionality = () => {
|
||||||
};
|
};
|
||||||
|
|
||||||
/** @type {import("../data/documents/combatant").GetTiebreaker} */
|
/** @type {import("../data/documents/combatant").GetTiebreaker} */
|
||||||
const getTiebreaker = async (combatant, combatants, waiting) => {
|
const getTiebreaker = async (combatant, combatants) => {
|
||||||
if (combatants.length === 0) return 0;
|
if (combatants.length === 0) return 0;
|
||||||
|
|
||||||
/** @type {number[]} */
|
/** @type {number[]} */
|
||||||
|
@ -26,7 +26,7 @@ const getTiebreaker = async (combatant, combatants, waiting) => {
|
||||||
|
|
||||||
for (const other of combatants) {
|
for (const other of combatants) {
|
||||||
const tiebreaker = other._newTiebreaker ?? other.getFlag(packageId, 'tiebreaker') ?? 0;
|
const tiebreaker = other._newTiebreaker ?? other.getFlag(packageId, 'tiebreaker') ?? 0;
|
||||||
if (getInitiative(other) > getInitiative(combatant) || waiting === false) {
|
if (getInitiative(other) > getInitiative(combatant)) {
|
||||||
lowerBounds.push(tiebreaker);
|
lowerBounds.push(tiebreaker);
|
||||||
} else if (getInitiative(other) < getInitiative(combatant)) {
|
} else if (getInitiative(other) < getInitiative(combatant)) {
|
||||||
upperBounds.push(tiebreaker);
|
upperBounds.push(tiebreaker);
|
||||||
|
|
|
@ -10,7 +10,7 @@ import { hideBin } from 'yargs/helpers';
|
||||||
const packageType = 'module';
|
const packageType = 'module';
|
||||||
const repositoryOwner = process.env.CI_REPO_OWNER;
|
const repositoryOwner = process.env.CI_REPO_OWNER;
|
||||||
const repositoryName = process.env.CI_REPO_NAME;
|
const repositoryName = process.env.CI_REPO_NAME;
|
||||||
const repositoryURL = process.env.CI_REPO_URL;
|
const repositoryURL = process.env.CI_REPO_LINK;
|
||||||
const forgeURL = process.env.CI_FORGE_URL;
|
const forgeURL = process.env.CI_FORGE_URL;
|
||||||
|
|
||||||
const getManifestUrl = (channel) =>
|
const getManifestUrl = (channel) =>
|
||||||
|
|
Loading…
Reference in a new issue