board-game-engine 2.1.0 → 2.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/board-game-engine.cjs +5509 -5613
- package/dist/board-game-engine.js +5509 -5613
- package/dist/board-game-engine.min.js +22 -22
- package/dist/board-game-engine.mjs +5508 -5611
- package/e2e/fixtures/bge-checkers.html +2 -1
- package/e2e/fixtures/bge-minimal.html +2 -1
- package/e2e/fixtures/bge-ttt.html +2 -1
- package/examples/index.html +1 -1
- package/package.json +4 -10
- package/playwright-report/index.html +1 -1
- package/scripts/build.mjs +2 -2
- package/src/client/client.js +224 -0
- package/src/game-factory/bank/bank-slot.js +69 -0
- package/src/game-factory/bank/bank.js +114 -0
- package/src/game-factory/{board.ts → board.js} +1 -1
- package/src/game-factory/condition/condition-factory.js +52 -0
- package/src/game-factory/condition/condition.js +39 -0
- package/src/game-factory/condition/{contains-condition.ts → contains-condition.js} +4 -5
- package/src/game-factory/condition/{contains-same-condition.ts → contains-same-condition.js} +5 -8
- package/src/game-factory/condition/{evaluate-condition.ts → evaluate-condition.js} +3 -4
- package/src/game-factory/condition/every-condition.js +25 -0
- package/src/game-factory/condition/has-line-condition.js +14 -0
- package/src/game-factory/condition/in-line-condition.js +19 -0
- package/src/game-factory/condition/is-condition.js +23 -0
- package/src/game-factory/condition/is-full-condition.js +9 -0
- package/src/game-factory/condition/{no-possible-moves-condition.ts → no-possible-moves-condition.js} +2 -3
- package/src/game-factory/condition/{not-condition.ts → not-condition.js} +2 -3
- package/src/game-factory/condition/{or-condition.ts → or-condition.js} +2 -3
- package/src/game-factory/condition/position-condition.js +12 -0
- package/src/game-factory/condition/{some-condition.ts → some-condition.js} +3 -5
- package/src/game-factory/condition/would-condition.js +94 -0
- package/src/game-factory/entity.js +29 -0
- package/src/game-factory/expand-game-rules.js +271 -0
- package/src/game-factory/game-factory.js +240 -0
- package/{dist/game-factory/move/end-turn.d.ts → src/game-factory/move/end-turn.js} +4 -2
- package/src/game-factory/move/for-each.js +18 -0
- package/src/game-factory/move/move-entity.js +16 -0
- package/src/game-factory/move/move-factory.js +89 -0
- package/src/game-factory/move/move.js +131 -0
- package/src/game-factory/move/pass-turn.js +10 -0
- package/{dist/game-factory/move/pass.d.ts → src/game-factory/move/pass.js} +4 -2
- package/src/game-factory/move/place-new.js +33 -0
- package/src/game-factory/move/remove-entity.js +7 -0
- package/src/game-factory/move/set-active-players.js +23 -0
- package/src/game-factory/move/set-state.js +11 -0
- package/src/game-factory/move/shuffle.js +7 -0
- package/src/game-factory/move/take-from.js +7 -0
- package/src/game-factory/space/space.js +30 -0
- package/src/game-factory/space-group/grid.js +43 -0
- package/src/game-factory/space-group/space-group.js +29 -0
- package/src/index.js +2 -0
- package/src/utils/{any-valid-moves.ts → any-valid-moves.js} +49 -54
- package/src/utils/check-conditions.js +28 -0
- package/src/utils/create-payload.js +16 -0
- package/src/utils/deserialize-bgio-arguments.js +8 -0
- package/src/utils/do-moves.js +18 -0
- package/src/utils/entity-matches.js +20 -0
- package/src/utils/find-met-condition.js +22 -0
- package/src/utils/get-current-moves.js +12 -0
- package/src/utils/get-scenario-results.js +23 -0
- package/src/utils/get-steps.js +29 -0
- package/src/utils/get.js +25 -0
- package/src/utils/{grid-contains-sequence.ts → grid-contains-sequence.js} +33 -71
- package/src/utils/json-transformer.js +12 -0
- package/src/utils/prepare-payload.js +17 -0
- package/src/utils/resolve-entity.js +9 -0
- package/src/utils/resolve-expression.js +10 -0
- package/src/utils/resolve-properties.js +149 -0
- package/src/utils/simulate-move.js +25 -0
- package/.github/workflows/ci.yml +0 -33
- package/dist/client/client.d.ts +0 -76
- package/dist/client/client.d.ts.map +0 -1
- package/dist/game-factory/bank/bank-slot.d.ts +0 -30
- package/dist/game-factory/bank/bank-slot.d.ts.map +0 -1
- package/dist/game-factory/bank/bank.d.ts +0 -34
- package/dist/game-factory/bank/bank.d.ts.map +0 -1
- package/dist/game-factory/board.d.ts +0 -4
- package/dist/game-factory/board.d.ts.map +0 -1
- package/dist/game-factory/condition/condition-factory.d.ts +0 -4
- package/dist/game-factory/condition/condition-factory.d.ts.map +0 -1
- package/dist/game-factory/condition/condition.d.ts +0 -13
- package/dist/game-factory/condition/condition.d.ts.map +0 -1
- package/dist/game-factory/condition/contains-condition.d.ts +0 -8
- package/dist/game-factory/condition/contains-condition.d.ts.map +0 -1
- package/dist/game-factory/condition/contains-same-condition.d.ts +0 -7
- package/dist/game-factory/condition/contains-same-condition.d.ts.map +0 -1
- package/dist/game-factory/condition/evaluate-condition.d.ts +0 -8
- package/dist/game-factory/condition/evaluate-condition.d.ts.map +0 -1
- package/dist/game-factory/condition/every-condition.d.ts +0 -12
- package/dist/game-factory/condition/every-condition.d.ts.map +0 -1
- package/dist/game-factory/condition/has-line-condition.d.ts +0 -8
- package/dist/game-factory/condition/has-line-condition.d.ts.map +0 -1
- package/dist/game-factory/condition/in-line-condition.d.ts +0 -8
- package/dist/game-factory/condition/in-line-condition.d.ts.map +0 -1
- package/dist/game-factory/condition/is-condition.d.ts +0 -8
- package/dist/game-factory/condition/is-condition.d.ts.map +0 -1
- package/dist/game-factory/condition/is-full-condition.d.ts +0 -7
- package/dist/game-factory/condition/is-full-condition.d.ts.map +0 -1
- package/dist/game-factory/condition/no-possible-moves-condition.d.ts +0 -7
- package/dist/game-factory/condition/no-possible-moves-condition.d.ts.map +0 -1
- package/dist/game-factory/condition/not-condition.d.ts +0 -7
- package/dist/game-factory/condition/not-condition.d.ts.map +0 -1
- package/dist/game-factory/condition/or-condition.d.ts +0 -7
- package/dist/game-factory/condition/or-condition.d.ts.map +0 -1
- package/dist/game-factory/condition/position-condition.d.ts +0 -7
- package/dist/game-factory/condition/position-condition.d.ts.map +0 -1
- package/dist/game-factory/condition/some-condition.d.ts +0 -8
- package/dist/game-factory/condition/some-condition.d.ts.map +0 -1
- package/dist/game-factory/condition/would-condition.d.ts +0 -8
- package/dist/game-factory/condition/would-condition.d.ts.map +0 -1
- package/dist/game-factory/entity.d.ts +0 -13
- package/dist/game-factory/entity.d.ts.map +0 -1
- package/dist/game-factory/expand-game-rules.d.ts +0 -3
- package/dist/game-factory/expand-game-rules.d.ts.map +0 -1
- package/dist/game-factory/game-factory.d.ts +0 -10
- package/dist/game-factory/game-factory.d.ts.map +0 -1
- package/dist/game-factory/move/end-turn.d.ts.map +0 -1
- package/dist/game-factory/move/for-each.d.ts +0 -5
- package/dist/game-factory/move/for-each.d.ts.map +0 -1
- package/dist/game-factory/move/index.d.ts +0 -6
- package/dist/game-factory/move/index.d.ts.map +0 -1
- package/dist/game-factory/move/move-entity.d.ts +0 -7
- package/dist/game-factory/move/move-entity.d.ts.map +0 -1
- package/dist/game-factory/move/move-factory.d.ts +0 -18
- package/dist/game-factory/move/move-factory.d.ts.map +0 -1
- package/dist/game-factory/move/move.d.ts +0 -54
- package/dist/game-factory/move/move.d.ts.map +0 -1
- package/dist/game-factory/move/pass-turn.d.ts +0 -5
- package/dist/game-factory/move/pass-turn.d.ts.map +0 -1
- package/dist/game-factory/move/pass.d.ts.map +0 -1
- package/dist/game-factory/move/place-new.d.ts +0 -5
- package/dist/game-factory/move/place-new.d.ts.map +0 -1
- package/dist/game-factory/move/remove-entity.d.ts +0 -5
- package/dist/game-factory/move/remove-entity.d.ts.map +0 -1
- package/dist/game-factory/move/set-active-players.d.ts +0 -5
- package/dist/game-factory/move/set-active-players.d.ts.map +0 -1
- package/dist/game-factory/move/set-state.d.ts +0 -5
- package/dist/game-factory/move/set-state.d.ts.map +0 -1
- package/dist/game-factory/move/shuffle.d.ts +0 -5
- package/dist/game-factory/move/shuffle.d.ts.map +0 -1
- package/dist/game-factory/move/take-from.d.ts +0 -11
- package/dist/game-factory/move/take-from.d.ts.map +0 -1
- package/dist/game-factory/space/space.d.ts +0 -10
- package/dist/game-factory/space/space.d.ts.map +0 -1
- package/dist/game-factory/space-group/grid.d.ts +0 -15
- package/dist/game-factory/space-group/grid.d.ts.map +0 -1
- package/dist/game-factory/space-group/space-group.d.ts +0 -20
- package/dist/game-factory/space-group/space-group.d.ts.map +0 -1
- package/dist/index.d.ts +0 -6
- package/dist/index.d.ts.map +0 -1
- package/dist/registry.d.ts +0 -17
- package/dist/registry.d.ts.map +0 -1
- package/dist/types/bagel-types.d.ts +0 -339
- package/dist/types/bagel-types.d.ts.map +0 -1
- package/dist/types/index.d.ts +0 -3
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/rule-with-conditions.d.ts +0 -9
- package/dist/types/rule-with-conditions.d.ts.map +0 -1
- package/dist/utils/any-valid-moves.d.ts +0 -2
- package/dist/utils/any-valid-moves.d.ts.map +0 -1
- package/dist/utils/bgio-resolve-types.d.ts +0 -25
- package/dist/utils/bgio-resolve-types.d.ts.map +0 -1
- package/dist/utils/check-conditions.d.ts +0 -7
- package/dist/utils/check-conditions.d.ts.map +0 -1
- package/dist/utils/create-payload.d.ts +0 -5
- package/dist/utils/create-payload.d.ts.map +0 -1
- package/dist/utils/deserialize-bgio-arguments.d.ts +0 -3
- package/dist/utils/deserialize-bgio-arguments.d.ts.map +0 -1
- package/dist/utils/do-moves.d.ts +0 -8
- package/dist/utils/do-moves.d.ts.map +0 -1
- package/dist/utils/entity-matches.d.ts +0 -6
- package/dist/utils/entity-matches.d.ts.map +0 -1
- package/dist/utils/find-met-condition.d.ts +0 -6
- package/dist/utils/find-met-condition.d.ts.map +0 -1
- package/dist/utils/get-current-moves.d.ts +0 -24
- package/dist/utils/get-current-moves.d.ts.map +0 -1
- package/dist/utils/get-scenario-results.d.ts +0 -3
- package/dist/utils/get-scenario-results.d.ts.map +0 -1
- package/dist/utils/get-steps.d.ts +0 -13
- package/dist/utils/get-steps.d.ts.map +0 -1
- package/dist/utils/get.d.ts +0 -7
- package/dist/utils/get.d.ts.map +0 -1
- package/dist/utils/grid-contains-sequence.d.ts +0 -27
- package/dist/utils/grid-contains-sequence.d.ts.map +0 -1
- package/dist/utils/json-transformer.d.ts +0 -8
- package/dist/utils/json-transformer.d.ts.map +0 -1
- package/dist/utils/prepare-payload.d.ts +0 -2
- package/dist/utils/prepare-payload.d.ts.map +0 -1
- package/dist/utils/resolve-entity.d.ts +0 -3
- package/dist/utils/resolve-entity.d.ts.map +0 -1
- package/dist/utils/resolve-expression.d.ts +0 -6
- package/dist/utils/resolve-expression.d.ts.map +0 -1
- package/dist/utils/resolve-properties.d.ts +0 -4
- package/dist/utils/resolve-properties.d.ts.map +0 -1
- package/dist/utils/simulate-move.d.ts +0 -16
- package/dist/utils/simulate-move.d.ts.map +0 -1
- package/src/client/client.ts +0 -305
- package/src/game-factory/bank/bank-slot.ts +0 -81
- package/src/game-factory/bank/bank.ts +0 -125
- package/src/game-factory/condition/condition-factory.ts +0 -59
- package/src/game-factory/condition/condition.ts +0 -50
- package/src/game-factory/condition/every-condition.ts +0 -27
- package/src/game-factory/condition/has-line-condition.ts +0 -15
- package/src/game-factory/condition/in-line-condition.ts +0 -25
- package/src/game-factory/condition/is-condition.ts +0 -24
- package/src/game-factory/condition/is-full-condition.ts +0 -10
- package/src/game-factory/condition/position-condition.ts +0 -13
- package/src/game-factory/condition/would-condition.ts +0 -104
- package/src/game-factory/entity.ts +0 -37
- package/src/game-factory/expand-game-rules.ts +0 -263
- package/src/game-factory/game-factory.ts +0 -263
- package/src/game-factory/move/end-turn.ts +0 -7
- package/src/game-factory/move/for-each.ts +0 -20
- package/src/game-factory/move/move-entity.ts +0 -18
- package/src/game-factory/move/move-factory.ts +0 -107
- package/src/game-factory/move/move.ts +0 -147
- package/src/game-factory/move/pass-turn.ts +0 -15
- package/src/game-factory/move/pass.ts +0 -7
- package/src/game-factory/move/place-new.ts +0 -42
- package/src/game-factory/move/remove-entity.ts +0 -11
- package/src/game-factory/move/set-active-players.ts +0 -26
- package/src/game-factory/move/set-state.ts +0 -14
- package/src/game-factory/move/shuffle.ts +0 -9
- package/src/game-factory/move/take-from.ts +0 -12
- package/src/game-factory/space/space.ts +0 -36
- package/src/game-factory/space-group/grid.ts +0 -48
- package/src/game-factory/space-group/space-group.ts +0 -44
- package/src/index.ts +0 -5
- package/src/types/bagel-types.ts +0 -449
- package/src/types/boardgame-io-core.d.ts +0 -7
- package/src/types/index.ts +0 -70
- package/src/types/rule-with-conditions.ts +0 -9
- package/src/utils/bgio-resolve-types.ts +0 -27
- package/src/utils/check-conditions.ts +0 -28
- package/src/utils/create-payload.ts +0 -19
- package/src/utils/deserialize-bgio-arguments.ts +0 -10
- package/src/utils/do-moves.ts +0 -22
- package/src/utils/entity-matches.ts +0 -30
- package/src/utils/expr-eval.d.ts +0 -6
- package/src/utils/find-met-condition.ts +0 -23
- package/src/utils/get-current-moves.ts +0 -39
- package/src/utils/get-scenario-results.ts +0 -30
- package/src/utils/get-steps.ts +0 -38
- package/src/utils/get.ts +0 -28
- package/src/utils/json-transformer.ts +0 -17
- package/src/utils/prepare-payload.ts +0 -20
- package/src/utils/resolve-entity.ts +0 -15
- package/src/utils/resolve-expression.ts +0 -16
- package/src/utils/resolve-properties.ts +0 -172
- package/src/utils/simulate-move.ts +0 -32
- package/src/wackson.d.ts +0 -4
- package/tsconfig.build.json +0 -14
- package/tsconfig.json +0 -21
- /package/src/game-factory/move/{index.ts → index.js} +0 -0
- /package/src/{registry.ts → registry.js} +0 -0
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { serialize } from "wackson";
|
|
2
|
+
import { registry } from "../registry.js"
|
|
3
|
+
|
|
4
|
+
// todo: remember why reducing to id was preferred?
|
|
5
|
+
export default function preparePayload (payload) {
|
|
6
|
+
if (payload?.arguments) {
|
|
7
|
+
const payloadCopy = { ...payload }
|
|
8
|
+
payloadCopy.arguments =
|
|
9
|
+
Object.entries(payloadCopy.arguments).reduce((acc, [key, argument]) => ({
|
|
10
|
+
...acc,
|
|
11
|
+
[key]: argument.abstract ? argument : argument.entityId
|
|
12
|
+
}), {})
|
|
13
|
+
return JSON.parse(serialize(payloadCopy, { deduplicateInstances: false, registry }))
|
|
14
|
+
} else {
|
|
15
|
+
return payload
|
|
16
|
+
}
|
|
17
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import isPlainObject from "lodash/isPlainObject.js";
|
|
2
|
+
|
|
3
|
+
const abstractTargetNames = ['state']
|
|
4
|
+
|
|
5
|
+
export default function resolveEntity (bgioArguments, target, context, targetName) {
|
|
6
|
+
return !abstractTargetNames.includes(targetName) && isPlainObject(target)
|
|
7
|
+
? bgioArguments.G.bank.find(bgioArguments, target, context)
|
|
8
|
+
: target
|
|
9
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Parser } from 'expr-eval'
|
|
2
|
+
import resolveProperties from "../utils/resolve-properties.js";
|
|
3
|
+
|
|
4
|
+
const parser = new Parser();
|
|
5
|
+
parser.functions.sum = array => array.reduce((acc, val) => acc + val, 0)
|
|
6
|
+
|
|
7
|
+
export default function resolveExpression (bgioArguments, rule, context) {
|
|
8
|
+
const args = resolveProperties(bgioArguments, rule.arguments, context)
|
|
9
|
+
return parser.evaluate(rule.expression, args)
|
|
10
|
+
}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
import isPlainObject from "lodash/isPlainObject.js";
|
|
2
|
+
import pick from "lodash/pick.js";
|
|
3
|
+
import get from "./get.js";
|
|
4
|
+
import resolveExpression from "./resolve-expression.js";
|
|
5
|
+
import resolveEntity from "./resolve-entity.js";
|
|
6
|
+
|
|
7
|
+
// some keys only contain things that will be the root of a later resolution
|
|
8
|
+
const resolutionTerminators = [
|
|
9
|
+
'conditions',
|
|
10
|
+
'move',
|
|
11
|
+
'then',
|
|
12
|
+
'mapping',
|
|
13
|
+
]
|
|
14
|
+
|
|
15
|
+
export default function resolveProperties (bgioArguments, obj, context, key) {
|
|
16
|
+
if (!isPlainObject(obj) && !Array.isArray(obj)) {
|
|
17
|
+
return obj
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
let resolvedProperties = Array.isArray(obj)
|
|
21
|
+
? [...obj]
|
|
22
|
+
: { ...obj }
|
|
23
|
+
|
|
24
|
+
Object.entries(obj).forEach(([key, value]) => {
|
|
25
|
+
if (!resolutionTerminators.includes(key)) {
|
|
26
|
+
resolvedProperties[key] = resolveProperties(bgioArguments, value, context, key)
|
|
27
|
+
}
|
|
28
|
+
})
|
|
29
|
+
|
|
30
|
+
const resolved = resolveProperty(bgioArguments, resolvedProperties, context)
|
|
31
|
+
|
|
32
|
+
const resolveAsEntity = resolved?.resolveAsEntity
|
|
33
|
+
|| key === 'target'
|
|
34
|
+
|| key === 'targets'
|
|
35
|
+
|
|
36
|
+
return resolveAsEntity
|
|
37
|
+
? resolveEntity(
|
|
38
|
+
bgioArguments,
|
|
39
|
+
resolved,
|
|
40
|
+
context,
|
|
41
|
+
key
|
|
42
|
+
)
|
|
43
|
+
: resolved
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
function resolveProperty (bgioArguments, value, context) {
|
|
47
|
+
if (value?.type === 'expression') {
|
|
48
|
+
return resolveExpression(
|
|
49
|
+
bgioArguments,
|
|
50
|
+
{
|
|
51
|
+
...value,
|
|
52
|
+
arguments: resolveProperties(bgioArguments, value.arguments, context, 'arguments')
|
|
53
|
+
},
|
|
54
|
+
context
|
|
55
|
+
)
|
|
56
|
+
} else if (value?.type === 'count') {
|
|
57
|
+
return bgioArguments.G.bank.findAll(
|
|
58
|
+
bgioArguments,
|
|
59
|
+
value,
|
|
60
|
+
context
|
|
61
|
+
).length
|
|
62
|
+
} else if (value?.type === 'contextPath') {
|
|
63
|
+
return get(context, value.path)
|
|
64
|
+
} else if (value?.type === 'ctxPath') {
|
|
65
|
+
return get(bgioArguments.ctx, value.path)
|
|
66
|
+
} else if (value?.type === 'gamePath') {
|
|
67
|
+
return get(bgioArguments.G, value.path)
|
|
68
|
+
} else if (value?.type === 'relativePath' || value?.type === 'RelativePath') {
|
|
69
|
+
const target = resolveProperties(bgioArguments, value.target, context, 'target')
|
|
70
|
+
return get(target.attributes, value.path) ?? null
|
|
71
|
+
} else if (value?.type === 'parent' || value?.type === 'Parent') {
|
|
72
|
+
const originalTarget = value.target
|
|
73
|
+
? resolveProperties(bgioArguments, value.target, context, 'target')
|
|
74
|
+
: context.originalTarget
|
|
75
|
+
return bgioArguments.G.bank.findParent(originalTarget) ?? null
|
|
76
|
+
} else if (value?.type === 'map') {
|
|
77
|
+
return getMappedTargets(
|
|
78
|
+
bgioArguments,
|
|
79
|
+
value.targets,
|
|
80
|
+
value.mapping,
|
|
81
|
+
context
|
|
82
|
+
).map(mappedTarget => mappedTarget.value)
|
|
83
|
+
} else if (value?.type === 'mapMax') {
|
|
84
|
+
const mappedTargets = getMappedTargets(
|
|
85
|
+
bgioArguments,
|
|
86
|
+
value.targets,
|
|
87
|
+
value.mapping,
|
|
88
|
+
context
|
|
89
|
+
)
|
|
90
|
+
let maxValue
|
|
91
|
+
const maxTargets = []
|
|
92
|
+
for (let i = 0, len = mappedTargets.length; i < len; i++) {
|
|
93
|
+
const { target, value: val } = mappedTargets[i]
|
|
94
|
+
if (maxValue === undefined || val > maxValue) {
|
|
95
|
+
maxValue = val
|
|
96
|
+
maxTargets.length = 0
|
|
97
|
+
maxTargets.push(target)
|
|
98
|
+
} else if (val === maxValue) {
|
|
99
|
+
maxTargets.push(target)
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
return maxTargets
|
|
103
|
+
} else if (value?.type === 'pick' || value?.type === 'Pick') {
|
|
104
|
+
const target = resolveProperties(bgioArguments, value.target, context, 'target')
|
|
105
|
+
return pick(
|
|
106
|
+
resolveProperties(
|
|
107
|
+
bgioArguments,
|
|
108
|
+
target.attributes,
|
|
109
|
+
context,
|
|
110
|
+
'attributes'
|
|
111
|
+
),
|
|
112
|
+
value.properties
|
|
113
|
+
)
|
|
114
|
+
} else if (value?.type === 'coordinates' || value?.type === 'Coordinates') {
|
|
115
|
+
const originalTarget = value.target
|
|
116
|
+
? resolveProperties(bgioArguments, value.target, context, 'target')
|
|
117
|
+
: context.originalTarget
|
|
118
|
+
const parent = bgioArguments.G.bank.findParent(originalTarget)
|
|
119
|
+
return parent.getCoordinates(originalTarget.rule.index)
|
|
120
|
+
} else if (value?.type === 'relativeCoordinates') {
|
|
121
|
+
const originalTarget = value.target
|
|
122
|
+
? resolveProperties(bgioArguments, value.target, context, 'target')
|
|
123
|
+
: context.originalTarget
|
|
124
|
+
const parent = bgioArguments.G.bank.findParent(originalTarget)
|
|
125
|
+
const oldCoordinates =
|
|
126
|
+
parent.getCoordinates(originalTarget.rule.index)
|
|
127
|
+
const newCoordinates =
|
|
128
|
+
parent.getRelativeCoordinates(
|
|
129
|
+
oldCoordinates,
|
|
130
|
+
resolveProperties(bgioArguments, value.location, context, 'location')
|
|
131
|
+
)
|
|
132
|
+
return (newCoordinates && parent.spaces[parent.getIndex(newCoordinates)]) ?? null
|
|
133
|
+
} else {
|
|
134
|
+
return value
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
function getMappedTargets (bgioArguments, targetsRule, mapping, context) {
|
|
139
|
+
targetsRule.resolveAsEntity = true
|
|
140
|
+
return resolveProperties(bgioArguments, targetsRule, context)?.map(target => ({
|
|
141
|
+
target,
|
|
142
|
+
value: resolveProperties(
|
|
143
|
+
bgioArguments,
|
|
144
|
+
mapping,
|
|
145
|
+
{ ...context, loopTarget: target },
|
|
146
|
+
)
|
|
147
|
+
})) ?? []
|
|
148
|
+
}
|
|
149
|
+
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { serialize, deserialize } from 'wackson'
|
|
2
|
+
import { registry } from '../registry.js'
|
|
3
|
+
|
|
4
|
+
export default function simulateMove (bgioArguments, payload, context) {
|
|
5
|
+
const simulatedG = deserialize(serialize(bgioArguments.G, { registry }), registry)
|
|
6
|
+
const newBgioArguments = {
|
|
7
|
+
...bgioArguments,
|
|
8
|
+
G: simulatedG,
|
|
9
|
+
}
|
|
10
|
+
const simulatedPayload = { ...payload, arguments: {} }
|
|
11
|
+
Object.entries(payload.arguments).forEach(([argName, arg]) => {
|
|
12
|
+
simulatedPayload.arguments[argName] = arg.abstract
|
|
13
|
+
? arg
|
|
14
|
+
: simulatedG.bank.locate(typeof arg === 'number' ? arg : arg.entityId)
|
|
15
|
+
})
|
|
16
|
+
|
|
17
|
+
context.moveInstance.doMove(
|
|
18
|
+
newBgioArguments,
|
|
19
|
+
simulatedPayload,
|
|
20
|
+
context,
|
|
21
|
+
{ skipCheck: true }
|
|
22
|
+
)
|
|
23
|
+
|
|
24
|
+
return simulatedG
|
|
25
|
+
}
|
package/.github/workflows/ci.yml
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
name: CI
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
push:
|
|
5
|
-
branches: [master, main]
|
|
6
|
-
pull_request:
|
|
7
|
-
branches: [master, main]
|
|
8
|
-
|
|
9
|
-
jobs:
|
|
10
|
-
build-and-test:
|
|
11
|
-
runs-on: ubuntu-latest
|
|
12
|
-
steps:
|
|
13
|
-
- uses: actions/checkout@v4
|
|
14
|
-
|
|
15
|
-
- uses: actions/setup-node@v4
|
|
16
|
-
with:
|
|
17
|
-
node-version: "20"
|
|
18
|
-
cache: npm
|
|
19
|
-
|
|
20
|
-
- name: Install dependencies
|
|
21
|
-
run: npm ci
|
|
22
|
-
|
|
23
|
-
- name: Typecheck
|
|
24
|
-
run: npm run typecheck
|
|
25
|
-
|
|
26
|
-
- name: Build
|
|
27
|
-
run: npm run build
|
|
28
|
-
|
|
29
|
-
- name: Install Playwright Firefox
|
|
30
|
-
run: npx playwright install firefox
|
|
31
|
-
|
|
32
|
-
- name: Test
|
|
33
|
-
run: npm test
|
package/dist/client/client.d.ts
DELETED
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import { Client as BoardgameIOClient } from "@mnbroatch/boardgame.io/client";
|
|
2
|
-
import { Debug } from "@mnbroatch/boardgame.io/debug";
|
|
3
|
-
import { SocketIO } from "@mnbroatch/boardgame.io/multiplayer";
|
|
4
|
-
import type { BoardGameEngineGame } from "../game-factory/game-factory.js";
|
|
5
|
-
import type { GameFactoryInput } from "../types/bagel-types.js";
|
|
6
|
-
export interface ClientOptions {
|
|
7
|
-
boardgameIOGame?: BoardGameEngineGame;
|
|
8
|
-
gameRules?: GameFactoryInput;
|
|
9
|
-
gameName?: string;
|
|
10
|
-
server?: string;
|
|
11
|
-
numPlayers?: number;
|
|
12
|
-
debug?: {
|
|
13
|
-
collapseOnLoad?: boolean;
|
|
14
|
-
impl?: typeof Debug;
|
|
15
|
-
};
|
|
16
|
-
matchID?: string;
|
|
17
|
-
playerID?: string | null;
|
|
18
|
-
credentials?: string;
|
|
19
|
-
multiplayer?: ReturnType<typeof SocketIO>;
|
|
20
|
-
onClientUpdate?: () => void;
|
|
21
|
-
}
|
|
22
|
-
interface MoveBuilder {
|
|
23
|
-
targets: unknown[];
|
|
24
|
-
stepIndex: number;
|
|
25
|
-
eliminatedMoves: string[];
|
|
26
|
-
}
|
|
27
|
-
export declare class Client {
|
|
28
|
-
options: ClientOptions;
|
|
29
|
-
game: BoardGameEngineGame;
|
|
30
|
-
client?: ReturnType<typeof BoardgameIOClient>;
|
|
31
|
-
moveBuilder?: MoveBuilder;
|
|
32
|
-
optimisticWinner?: unknown | null;
|
|
33
|
-
constructor(options: ClientOptions);
|
|
34
|
-
connect(): this | undefined;
|
|
35
|
-
update(): void;
|
|
36
|
-
getState(): {
|
|
37
|
-
state?: undefined;
|
|
38
|
-
gameover?: undefined;
|
|
39
|
-
moves?: undefined;
|
|
40
|
-
currentMoves?: undefined;
|
|
41
|
-
allClickable?: undefined;
|
|
42
|
-
_wrappedMoves?: undefined;
|
|
43
|
-
_possibleMoveMeta?: undefined;
|
|
44
|
-
} | {
|
|
45
|
-
state: import("@mnbroatch/boardgame.io").State<unknown> & {
|
|
46
|
-
isActive: boolean;
|
|
47
|
-
isConnected: boolean;
|
|
48
|
-
log: import("@mnbroatch/boardgame.io").LogEntry[];
|
|
49
|
-
};
|
|
50
|
-
gameover: any;
|
|
51
|
-
moves: Record<string, (...args: any[]) => void>;
|
|
52
|
-
currentMoves: Record<string, unknown> | never[];
|
|
53
|
-
allClickable?: undefined;
|
|
54
|
-
_wrappedMoves?: undefined;
|
|
55
|
-
_possibleMoveMeta?: undefined;
|
|
56
|
-
} | {
|
|
57
|
-
state: import("@mnbroatch/boardgame.io").State<unknown> & {
|
|
58
|
-
isActive: boolean;
|
|
59
|
-
isConnected: boolean;
|
|
60
|
-
log: import("@mnbroatch/boardgame.io").LogEntry[];
|
|
61
|
-
};
|
|
62
|
-
gameover: any;
|
|
63
|
-
allClickable: Set<unknown>;
|
|
64
|
-
_wrappedMoves: Record<string, unknown>;
|
|
65
|
-
_possibleMoveMeta: Record<string, {
|
|
66
|
-
clickableForMove: Set<unknown>;
|
|
67
|
-
}>;
|
|
68
|
-
moves?: undefined;
|
|
69
|
-
currentMoves?: undefined;
|
|
70
|
-
};
|
|
71
|
-
doStep(_target: unknown): void;
|
|
72
|
-
reset(): void;
|
|
73
|
-
undoStep(): void;
|
|
74
|
-
}
|
|
75
|
-
export {};
|
|
76
|
-
//# sourceMappingURL=client.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAC;AAG/D,OAAO,KAAK,EAAE,mBAAmB,EAAiB,MAAM,iCAAiC,CAAC;AAC1F,OAAO,KAAK,EAAa,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAY3E,MAAM,WAAW,aAAa;IAC5B,eAAe,CAAC,EAAE,mBAAmB,CAAC;IACtC,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE;QACN,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,IAAI,CAAC,EAAE,OAAO,KAAK,CAAC;KACrB,CAAC;IACF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC;IAC1C,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;CAC7B;AAED,UAAU,WAAW;IACnB,OAAO,EAAE,OAAO,EAAE,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,qBAAa,MAAM;IACjB,OAAO,EAAE,aAAa,CAAC;IACvB,IAAI,EAAE,mBAAmB,CAAC;IAC1B,MAAM,CAAC,EAAE,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC;IAC9C,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,gBAAgB,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;gBAErB,OAAO,EAAE,aAAa;IAWnC,OAAO;IAsCP,MAAM;IAIN,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BA8HoD,GAAG,CAAC,OAAO,CAAC;;;;;IAtFxE,MAAM,CAAE,OAAO,EAAE,OAAO;IAuDxB,KAAK;IAOL,QAAQ;CAWT"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import type { BgioResolveState } from "../../utils/bgio-resolve-types.js";
|
|
2
|
-
declare class BankSlot {
|
|
3
|
-
bank: {
|
|
4
|
-
createEntity: (rule: Record<string, unknown>) => unknown;
|
|
5
|
-
};
|
|
6
|
-
rule: Record<string, unknown> & {
|
|
7
|
-
count?: number | string;
|
|
8
|
-
name?: string;
|
|
9
|
-
};
|
|
10
|
-
pool: unknown[];
|
|
11
|
-
remaining: number;
|
|
12
|
-
constructor(rule: Record<string, unknown> & {
|
|
13
|
-
count?: number | string;
|
|
14
|
-
name?: string;
|
|
15
|
-
}, bank: BankSlot["bank"]);
|
|
16
|
-
getOne(bgioArguments: BgioResolveState, options: {
|
|
17
|
-
state?: unknown;
|
|
18
|
-
}, context: Record<string, unknown>): unknown;
|
|
19
|
-
getMultiple(bgioArguments: BgioResolveState, count?: number, options?: {
|
|
20
|
-
state?: unknown;
|
|
21
|
-
}, context?: Record<string, unknown>): unknown[];
|
|
22
|
-
returnToBank(entity: {
|
|
23
|
-
rule: {
|
|
24
|
-
state?: unknown;
|
|
25
|
-
};
|
|
26
|
-
state?: unknown;
|
|
27
|
-
}): void;
|
|
28
|
-
}
|
|
29
|
-
export default BankSlot;
|
|
30
|
-
//# sourceMappingURL=bank-slot.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bank-slot.d.ts","sourceRoot":"","sources":["../../../src/game-factory/bank/bank-slot.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAE1E,cAAM,QAAQ;IACZ,IAAI,EAAE;QAAE,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAA;KAAE,CAAC;IACnE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;QAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3E,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;gBAEL,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;QAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC;IAO/G,MAAM,CAAE,aAAa,EAAE,gBAAgB,EAAE,OAAO,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAIvG,WAAW,CACT,aAAa,EAAE,gBAAgB,EAC/B,KAAK,GAAE,MAAiB,EACxB,OAAO,GAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAO,EACjC,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;IA2CvC,YAAY,CAAE,MAAM,EAAE;QAAE,IAAI,EAAE;YAAE,KAAK,CAAC,EAAE,OAAO,CAAA;SAAE,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE;CAWrE;AAED,eAAe,QAAQ,CAAC"}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import type { RuleWithConditions } from "../../types/rule-with-conditions.js";
|
|
2
|
-
import BankSlot from "./bank-slot.js";
|
|
3
|
-
import type { BgioResolveState } from "../../utils/bgio-resolve-types.js";
|
|
4
|
-
declare class Bank {
|
|
5
|
-
currentEntityId: number;
|
|
6
|
-
tracker: Record<number, unknown>;
|
|
7
|
-
slots: InstanceType<typeof BankSlot>[];
|
|
8
|
-
constructor(entityRules: Record<string, unknown>[]);
|
|
9
|
-
createEntity(definition?: Record<string, unknown>, options?: Record<string, unknown>): unknown;
|
|
10
|
-
track(entity: {
|
|
11
|
-
entityId: number;
|
|
12
|
-
}): void;
|
|
13
|
-
locate(entityId: unknown): unknown;
|
|
14
|
-
findAll(bgioArguments: BgioResolveState, rule: RuleWithConditions, context: Record<string, unknown>): unknown[];
|
|
15
|
-
findOne(bgioArguments: BgioResolveState, rule: RuleWithConditions, context: Record<string, unknown>): unknown;
|
|
16
|
-
find(bgioArguments: BgioResolveState, rule: RuleWithConditions & {
|
|
17
|
-
matchMultiple?: boolean;
|
|
18
|
-
}, context: Record<string, unknown>): unknown;
|
|
19
|
-
findParent(entity: unknown): unknown;
|
|
20
|
-
getOne(bgioArguments: BgioResolveState, rule: RuleWithConditions & {
|
|
21
|
-
state?: unknown;
|
|
22
|
-
}, context: Record<string, unknown>): unknown;
|
|
23
|
-
getMultiple(bgioArguments: BgioResolveState, rule: RuleWithConditions & {
|
|
24
|
-
state?: unknown;
|
|
25
|
-
}, count: number, context: Record<string, unknown>): unknown[];
|
|
26
|
-
getSlot(bgioArguments: BgioResolveState, rule: RuleWithConditions, context: Record<string, unknown>): BankSlot | undefined;
|
|
27
|
-
getSlots(bgioArguments: BgioResolveState, rule: RuleWithConditions, context: Record<string, unknown>): BankSlot[];
|
|
28
|
-
returnToBank(bgioArguments: BgioResolveState, entity: {
|
|
29
|
-
entityId: number;
|
|
30
|
-
rule: Record<string, unknown>;
|
|
31
|
-
}): void;
|
|
32
|
-
}
|
|
33
|
-
export default Bank;
|
|
34
|
-
//# sourceMappingURL=bank.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bank.d.ts","sourceRoot":"","sources":["../../../src/game-factory/bank/bank.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAE9E,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAE1E,cAAM,IAAI;IACR,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,KAAK,EAAE,YAAY,CAAC,OAAO,QAAQ,CAAC,EAAE,CAAC;gBAE1B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE;IAMnD,YAAY,CAAE,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAmBzF,KAAK,CAAE,MAAM,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE;IAInC,MAAM,CAAE,QAAQ,EAAE,OAAO;IAIzB,OAAO,CAAE,aAAa,EAAE,gBAAgB,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAepG,OAAO,CAAE,aAAa,EAAE,gBAAgB,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAIpG,IAAI,CAAE,aAAa,EAAE,gBAAgB,EAAE,IAAI,EAAE,kBAAkB,GAAG;QAAE,aAAa,CAAC,EAAE,OAAO,CAAA;KAAE,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAM/H,UAAU,CAAE,MAAM,EAAE,OAAO;IAO3B,MAAM,CAAE,aAAa,EAAE,gBAAgB,EAAE,IAAI,EAAE,kBAAkB,GAAG;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAQzH,WAAW,CAAE,aAAa,EAAE,gBAAgB,EAAE,IAAI,EAAE,kBAAkB,GAAG;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAW7I,OAAO,CAAE,aAAa,EAAE,gBAAgB,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAUpG,QAAQ,CAAE,aAAa,EAAE,gBAAgB,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAUrG,YAAY,CAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE;CAK3G;AAED,eAAe,IAAI,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"board.d.ts","sourceRoot":"","sources":["../../src/game-factory/board.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,kBAAkB,CAAC;AAErC,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,KAAK;CAAG"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"condition-factory.d.ts","sourceRoot":"","sources":["../../../src/game-factory/condition/condition-factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC7E,OAAO,KAAK,aAAa,MAAM,gBAAgB,CAAC;AAkBhD,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAE,IAAI,EAAE,aAAa,GAAG,aAAa,GAAG,SAAS,CAuCxF"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
export default abstract class Condition {
|
|
2
|
-
rule: unknown;
|
|
3
|
-
constructor(rule: unknown);
|
|
4
|
-
check(bgioArguments: unknown, payload: Record<string, unknown>, context: Record<string, unknown>): {
|
|
5
|
-
conditionIsMet: boolean;
|
|
6
|
-
};
|
|
7
|
-
abstract checkCondition(bgioArguments: unknown, rule: unknown, conditionPayload: Record<string, unknown>, newContext: Record<string, unknown>): {
|
|
8
|
-
conditionIsMet: boolean;
|
|
9
|
-
[k: string]: unknown;
|
|
10
|
-
};
|
|
11
|
-
isMet(...args: unknown[]): boolean;
|
|
12
|
-
}
|
|
13
|
-
//# sourceMappingURL=condition.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"condition.d.ts","sourceRoot":"","sources":["../../../src/game-factory/condition/condition.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,SAAS;IACrC,IAAI,EAAE,OAAO,CAAC;gBAED,IAAI,EAAE,OAAO;IAI1B,KAAK,CAAE,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;IAyBjG,QAAQ,CAAC,cAAc,CACrB,aAAa,EAAE,OAAO,EACtB,IAAI,EAAE,OAAO,EACb,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACzC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC;QAAE,cAAc,EAAE,OAAO,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE;IAEpD,KAAK,CAAE,GAAG,IAAI,EAAE,OAAO,EAAE;CAO1B"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import Condition from "../condition/condition.js";
|
|
2
|
-
export default class ContainsCondition extends Condition {
|
|
3
|
-
checkCondition(bgioArguments: unknown, rule: unknown, payload: Record<string, unknown>, context: Record<string, unknown>): {
|
|
4
|
-
matches: unknown[];
|
|
5
|
-
conditionIsMet: boolean;
|
|
6
|
-
};
|
|
7
|
-
}
|
|
8
|
-
//# sourceMappingURL=contains-condition.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"contains-condition.d.ts","sourceRoot":"","sources":["../../../src/game-factory/condition/contains-condition.ts"],"names":[],"mappings":"AAEA,OAAO,SAAS,MAAM,2BAA2B,CAAC;AAGlD,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,SAAS;IACtD,cAAc,CAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;;CAe1H"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import Condition from "./condition.js";
|
|
2
|
-
export default class ContainsSame extends Condition {
|
|
3
|
-
checkCondition(bgioArguments: unknown, rule: unknown, conditionPayload: Record<string, unknown>, _newContext: Record<string, unknown>): {
|
|
4
|
-
conditionIsMet: boolean;
|
|
5
|
-
};
|
|
6
|
-
}
|
|
7
|
-
//# sourceMappingURL=contains-same-condition.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"contains-same-condition.d.ts","sourceRoot":"","sources":["../../../src/game-factory/condition/contains-same-condition.ts"],"names":[],"mappings":"AAEA,OAAO,SAAS,MAAM,gBAAgB,CAAC;AAEvC,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,SAAS;IACjD,cAAc,CAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;CAwBvI"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import Condition from "../condition/condition.js";
|
|
2
|
-
export default class Evaluate extends Condition {
|
|
3
|
-
checkCondition(bgioArguments: unknown, rule: unknown, payload: Record<string, unknown>, context: Record<string, unknown>): {
|
|
4
|
-
result: unknown;
|
|
5
|
-
conditionIsMet: boolean;
|
|
6
|
-
};
|
|
7
|
-
}
|
|
8
|
-
//# sourceMappingURL=evaluate-condition.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"evaluate-condition.d.ts","sourceRoot":"","sources":["../../../src/game-factory/condition/evaluate-condition.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,2BAA2B,CAAC;AAIlD,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,SAAS;IAC7C,cAAc,CAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;;CAY1H"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import Condition from "./condition.js";
|
|
2
|
-
export default class EveryCondition extends Condition {
|
|
3
|
-
checkCondition(bgioArguments: unknown, rule: unknown, conditionPayload: Record<string, unknown>, context: Record<string, unknown>): {
|
|
4
|
-
conditionIsMet: boolean;
|
|
5
|
-
results: {
|
|
6
|
-
results: unknown[];
|
|
7
|
-
failedAt: unknown;
|
|
8
|
-
conditionsAreMet: boolean;
|
|
9
|
-
}[];
|
|
10
|
-
};
|
|
11
|
-
}
|
|
12
|
-
//# sourceMappingURL=every-condition.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"every-condition.d.ts","sourceRoot":"","sources":["../../../src/game-factory/condition/every-condition.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,gBAAgB,CAAC;AAGvC,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,SAAS;IACnD,cAAc,CAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;;;;;;CAqBnI"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import Condition from "./condition.js";
|
|
2
|
-
export default class HasLineCondition extends Condition {
|
|
3
|
-
checkCondition(bgioArguments: unknown, rule: unknown, payload: Record<string, unknown>, context: Record<string, unknown>): {
|
|
4
|
-
matches: unknown[];
|
|
5
|
-
conditionIsMet: boolean;
|
|
6
|
-
};
|
|
7
|
-
}
|
|
8
|
-
//# sourceMappingURL=has-line-condition.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"has-line-condition.d.ts","sourceRoot":"","sources":["../../../src/game-factory/condition/has-line-condition.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,gBAAgB,CAAC;AAIvC,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,SAAS;IACrD,cAAc,CAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;;CAS1H"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import Condition from "./condition.js";
|
|
2
|
-
export default class InLineCondition extends Condition {
|
|
3
|
-
checkCondition(bgioArguments: unknown, rule: unknown, payload: Record<string, unknown>, context: Record<string, unknown>): {
|
|
4
|
-
matches: unknown[][];
|
|
5
|
-
conditionIsMet: boolean;
|
|
6
|
-
};
|
|
7
|
-
}
|
|
8
|
-
//# sourceMappingURL=in-line-condition.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"in-line-condition.d.ts","sourceRoot":"","sources":["../../../src/game-factory/condition/in-line-condition.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,gBAAgB,CAAC;AAKvC,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,SAAS;IACpD,cAAc,CAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;;CAkB1H"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import Condition from "./condition.js";
|
|
2
|
-
export default class Is extends Condition {
|
|
3
|
-
checkCondition(bgioArguments: unknown, rule: unknown, { target }: Record<string, unknown>, context: Record<string, unknown>): {
|
|
4
|
-
target: unknown;
|
|
5
|
-
conditionIsMet: boolean;
|
|
6
|
-
};
|
|
7
|
-
}
|
|
8
|
-
//# sourceMappingURL=is-condition.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"is-condition.d.ts","sourceRoot":"","sources":["../../../src/game-factory/condition/is-condition.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,gBAAgB,CAAC;AAIvC,MAAM,CAAC,OAAO,OAAO,EAAG,SAAQ,SAAS;IACvC,cAAc,CAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;;CAkB7H"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import Condition from "./condition.js";
|
|
2
|
-
export default class IsFull extends Condition {
|
|
3
|
-
checkCondition(_bgioArguments: unknown, _rule: unknown, payload: Record<string, unknown>, _context: Record<string, unknown>): {
|
|
4
|
-
conditionIsMet: boolean;
|
|
5
|
-
};
|
|
6
|
-
}
|
|
7
|
-
//# sourceMappingURL=is-full-condition.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"is-full-condition.d.ts","sourceRoot":"","sources":["../../../src/game-factory/condition/is-full-condition.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,gBAAgB,CAAC;AAEvC,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,SAAS;IAC3C,cAAc,CAAE,cAAc,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;CAM7H"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import Condition from "./condition.js";
|
|
2
|
-
export default class NoPossibleMoves extends Condition {
|
|
3
|
-
checkCondition(bgioArguments: unknown, _unused: unknown, _payload: unknown, context: Record<string, unknown>): {
|
|
4
|
-
conditionIsMet: boolean;
|
|
5
|
-
};
|
|
6
|
-
}
|
|
7
|
-
//# sourceMappingURL=no-possible-moves-condition.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"no-possible-moves-condition.d.ts","sourceRoot":"","sources":["../../../src/game-factory/condition/no-possible-moves-condition.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,gBAAgB,CAAC;AAKvC,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,SAAS;IACpD,cAAc,CAAE,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;CAQ9G"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import Condition from "./condition.js";
|
|
2
|
-
export default class NotCondition extends Condition {
|
|
3
|
-
checkCondition(bgioArguments: unknown, rule: unknown, payload: Record<string, unknown>, context: Record<string, unknown>): {
|
|
4
|
-
conditionIsMet: boolean;
|
|
5
|
-
};
|
|
6
|
-
}
|
|
7
|
-
//# sourceMappingURL=not-condition.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"not-condition.d.ts","sourceRoot":"","sources":["../../../src/game-factory/condition/not-condition.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,gBAAgB,CAAC;AAGvC,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,SAAS;IACjD,cAAc,CAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;CAS1H"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import Condition from "./condition.js";
|
|
2
|
-
export default class Or extends Condition {
|
|
3
|
-
checkCondition(bgioArguments: unknown, rule: unknown, payload: Record<string, unknown>, context: Record<string, unknown>): {
|
|
4
|
-
conditionIsMet: boolean;
|
|
5
|
-
};
|
|
6
|
-
}
|
|
7
|
-
//# sourceMappingURL=or-condition.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"or-condition.d.ts","sourceRoot":"","sources":["../../../src/game-factory/condition/or-condition.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,gBAAgB,CAAC;AAGvC,MAAM,CAAC,OAAO,OAAO,EAAG,SAAQ,SAAS;IACvC,cAAc,CAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;CAS1H"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import Condition from "./condition.js";
|
|
2
|
-
export default class Position extends Condition {
|
|
3
|
-
checkCondition(bgioArguments: unknown, rule: unknown, conditionPayload: Record<string, unknown>, _newContext: Record<string, unknown>): {
|
|
4
|
-
conditionIsMet: boolean;
|
|
5
|
-
};
|
|
6
|
-
}
|
|
7
|
-
//# sourceMappingURL=position-condition.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"position-condition.d.ts","sourceRoot":"","sources":["../../../src/game-factory/condition/position-condition.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,gBAAgB,CAAC;AAEvC,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,SAAS;IAC7C,cAAc,CAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;CASvI"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import Condition from "./condition.js";
|
|
2
|
-
export default class SomeCondition extends Condition {
|
|
3
|
-
checkCondition(bgioArguments: unknown, rule: unknown, conditionPayload: Record<string, unknown>, context: Record<string, unknown>): {
|
|
4
|
-
conditionIsMet: boolean;
|
|
5
|
-
result: unknown;
|
|
6
|
-
};
|
|
7
|
-
}
|
|
8
|
-
//# sourceMappingURL=some-condition.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"some-condition.d.ts","sourceRoot":"","sources":["../../../src/game-factory/condition/some-condition.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,gBAAgB,CAAC;AAGvC,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,SAAS;IAClD,cAAc,CAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;;CAoBnI"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import Condition from "./condition.js";
|
|
2
|
-
export default class WouldCondition extends Condition {
|
|
3
|
-
checkCondition(bgioArguments: unknown, rule: unknown, conditionPayload: Record<string, unknown>, context: Record<string, unknown>): {
|
|
4
|
-
results: unknown;
|
|
5
|
-
conditionIsMet: boolean;
|
|
6
|
-
};
|
|
7
|
-
}
|
|
8
|
-
//# sourceMappingURL=would-condition.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"would-condition.d.ts","sourceRoot":"","sources":["../../../src/game-factory/condition/would-condition.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,gBAAgB,CAAC;AAavC,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,SAAS;IACnD,cAAc,CACZ,aAAa,EAAE,OAAO,EACtB,IAAI,EAAE,OAAO,EACb,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACzC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;;CAqDnC"}
|