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.
Files changed (256) hide show
  1. package/README.md +2 -2
  2. package/dist/board-game-engine.cjs +5509 -5613
  3. package/dist/board-game-engine.js +5509 -5613
  4. package/dist/board-game-engine.min.js +22 -22
  5. package/dist/board-game-engine.mjs +5508 -5611
  6. package/e2e/fixtures/bge-checkers.html +2 -1
  7. package/e2e/fixtures/bge-minimal.html +2 -1
  8. package/e2e/fixtures/bge-ttt.html +2 -1
  9. package/examples/index.html +1 -1
  10. package/package.json +4 -10
  11. package/playwright-report/index.html +1 -1
  12. package/scripts/build.mjs +2 -2
  13. package/src/client/client.js +224 -0
  14. package/src/game-factory/bank/bank-slot.js +69 -0
  15. package/src/game-factory/bank/bank.js +114 -0
  16. package/src/game-factory/{board.ts → board.js} +1 -1
  17. package/src/game-factory/condition/condition-factory.js +52 -0
  18. package/src/game-factory/condition/condition.js +39 -0
  19. package/src/game-factory/condition/{contains-condition.ts → contains-condition.js} +4 -5
  20. package/src/game-factory/condition/{contains-same-condition.ts → contains-same-condition.js} +5 -8
  21. package/src/game-factory/condition/{evaluate-condition.ts → evaluate-condition.js} +3 -4
  22. package/src/game-factory/condition/every-condition.js +25 -0
  23. package/src/game-factory/condition/has-line-condition.js +14 -0
  24. package/src/game-factory/condition/in-line-condition.js +19 -0
  25. package/src/game-factory/condition/is-condition.js +23 -0
  26. package/src/game-factory/condition/is-full-condition.js +9 -0
  27. package/src/game-factory/condition/{no-possible-moves-condition.ts → no-possible-moves-condition.js} +2 -3
  28. package/src/game-factory/condition/{not-condition.ts → not-condition.js} +2 -3
  29. package/src/game-factory/condition/{or-condition.ts → or-condition.js} +2 -3
  30. package/src/game-factory/condition/position-condition.js +12 -0
  31. package/src/game-factory/condition/{some-condition.ts → some-condition.js} +3 -5
  32. package/src/game-factory/condition/would-condition.js +94 -0
  33. package/src/game-factory/entity.js +29 -0
  34. package/src/game-factory/expand-game-rules.js +271 -0
  35. package/src/game-factory/game-factory.js +240 -0
  36. package/{dist/game-factory/move/end-turn.d.ts → src/game-factory/move/end-turn.js} +4 -2
  37. package/src/game-factory/move/for-each.js +18 -0
  38. package/src/game-factory/move/move-entity.js +16 -0
  39. package/src/game-factory/move/move-factory.js +89 -0
  40. package/src/game-factory/move/move.js +131 -0
  41. package/src/game-factory/move/pass-turn.js +10 -0
  42. package/{dist/game-factory/move/pass.d.ts → src/game-factory/move/pass.js} +4 -2
  43. package/src/game-factory/move/place-new.js +33 -0
  44. package/src/game-factory/move/remove-entity.js +7 -0
  45. package/src/game-factory/move/set-active-players.js +23 -0
  46. package/src/game-factory/move/set-state.js +11 -0
  47. package/src/game-factory/move/shuffle.js +7 -0
  48. package/src/game-factory/move/take-from.js +7 -0
  49. package/src/game-factory/space/space.js +30 -0
  50. package/src/game-factory/space-group/grid.js +43 -0
  51. package/src/game-factory/space-group/space-group.js +29 -0
  52. package/src/index.js +2 -0
  53. package/src/utils/{any-valid-moves.ts → any-valid-moves.js} +49 -54
  54. package/src/utils/check-conditions.js +28 -0
  55. package/src/utils/create-payload.js +16 -0
  56. package/src/utils/deserialize-bgio-arguments.js +8 -0
  57. package/src/utils/do-moves.js +18 -0
  58. package/src/utils/entity-matches.js +20 -0
  59. package/src/utils/find-met-condition.js +22 -0
  60. package/src/utils/get-current-moves.js +12 -0
  61. package/src/utils/get-scenario-results.js +23 -0
  62. package/src/utils/get-steps.js +29 -0
  63. package/src/utils/get.js +25 -0
  64. package/src/utils/{grid-contains-sequence.ts → grid-contains-sequence.js} +33 -71
  65. package/src/utils/json-transformer.js +12 -0
  66. package/src/utils/prepare-payload.js +17 -0
  67. package/src/utils/resolve-entity.js +9 -0
  68. package/src/utils/resolve-expression.js +10 -0
  69. package/src/utils/resolve-properties.js +149 -0
  70. package/src/utils/simulate-move.js +25 -0
  71. package/.github/workflows/ci.yml +0 -33
  72. package/dist/client/client.d.ts +0 -76
  73. package/dist/client/client.d.ts.map +0 -1
  74. package/dist/game-factory/bank/bank-slot.d.ts +0 -30
  75. package/dist/game-factory/bank/bank-slot.d.ts.map +0 -1
  76. package/dist/game-factory/bank/bank.d.ts +0 -34
  77. package/dist/game-factory/bank/bank.d.ts.map +0 -1
  78. package/dist/game-factory/board.d.ts +0 -4
  79. package/dist/game-factory/board.d.ts.map +0 -1
  80. package/dist/game-factory/condition/condition-factory.d.ts +0 -4
  81. package/dist/game-factory/condition/condition-factory.d.ts.map +0 -1
  82. package/dist/game-factory/condition/condition.d.ts +0 -13
  83. package/dist/game-factory/condition/condition.d.ts.map +0 -1
  84. package/dist/game-factory/condition/contains-condition.d.ts +0 -8
  85. package/dist/game-factory/condition/contains-condition.d.ts.map +0 -1
  86. package/dist/game-factory/condition/contains-same-condition.d.ts +0 -7
  87. package/dist/game-factory/condition/contains-same-condition.d.ts.map +0 -1
  88. package/dist/game-factory/condition/evaluate-condition.d.ts +0 -8
  89. package/dist/game-factory/condition/evaluate-condition.d.ts.map +0 -1
  90. package/dist/game-factory/condition/every-condition.d.ts +0 -12
  91. package/dist/game-factory/condition/every-condition.d.ts.map +0 -1
  92. package/dist/game-factory/condition/has-line-condition.d.ts +0 -8
  93. package/dist/game-factory/condition/has-line-condition.d.ts.map +0 -1
  94. package/dist/game-factory/condition/in-line-condition.d.ts +0 -8
  95. package/dist/game-factory/condition/in-line-condition.d.ts.map +0 -1
  96. package/dist/game-factory/condition/is-condition.d.ts +0 -8
  97. package/dist/game-factory/condition/is-condition.d.ts.map +0 -1
  98. package/dist/game-factory/condition/is-full-condition.d.ts +0 -7
  99. package/dist/game-factory/condition/is-full-condition.d.ts.map +0 -1
  100. package/dist/game-factory/condition/no-possible-moves-condition.d.ts +0 -7
  101. package/dist/game-factory/condition/no-possible-moves-condition.d.ts.map +0 -1
  102. package/dist/game-factory/condition/not-condition.d.ts +0 -7
  103. package/dist/game-factory/condition/not-condition.d.ts.map +0 -1
  104. package/dist/game-factory/condition/or-condition.d.ts +0 -7
  105. package/dist/game-factory/condition/or-condition.d.ts.map +0 -1
  106. package/dist/game-factory/condition/position-condition.d.ts +0 -7
  107. package/dist/game-factory/condition/position-condition.d.ts.map +0 -1
  108. package/dist/game-factory/condition/some-condition.d.ts +0 -8
  109. package/dist/game-factory/condition/some-condition.d.ts.map +0 -1
  110. package/dist/game-factory/condition/would-condition.d.ts +0 -8
  111. package/dist/game-factory/condition/would-condition.d.ts.map +0 -1
  112. package/dist/game-factory/entity.d.ts +0 -13
  113. package/dist/game-factory/entity.d.ts.map +0 -1
  114. package/dist/game-factory/expand-game-rules.d.ts +0 -3
  115. package/dist/game-factory/expand-game-rules.d.ts.map +0 -1
  116. package/dist/game-factory/game-factory.d.ts +0 -10
  117. package/dist/game-factory/game-factory.d.ts.map +0 -1
  118. package/dist/game-factory/move/end-turn.d.ts.map +0 -1
  119. package/dist/game-factory/move/for-each.d.ts +0 -5
  120. package/dist/game-factory/move/for-each.d.ts.map +0 -1
  121. package/dist/game-factory/move/index.d.ts +0 -6
  122. package/dist/game-factory/move/index.d.ts.map +0 -1
  123. package/dist/game-factory/move/move-entity.d.ts +0 -7
  124. package/dist/game-factory/move/move-entity.d.ts.map +0 -1
  125. package/dist/game-factory/move/move-factory.d.ts +0 -18
  126. package/dist/game-factory/move/move-factory.d.ts.map +0 -1
  127. package/dist/game-factory/move/move.d.ts +0 -54
  128. package/dist/game-factory/move/move.d.ts.map +0 -1
  129. package/dist/game-factory/move/pass-turn.d.ts +0 -5
  130. package/dist/game-factory/move/pass-turn.d.ts.map +0 -1
  131. package/dist/game-factory/move/pass.d.ts.map +0 -1
  132. package/dist/game-factory/move/place-new.d.ts +0 -5
  133. package/dist/game-factory/move/place-new.d.ts.map +0 -1
  134. package/dist/game-factory/move/remove-entity.d.ts +0 -5
  135. package/dist/game-factory/move/remove-entity.d.ts.map +0 -1
  136. package/dist/game-factory/move/set-active-players.d.ts +0 -5
  137. package/dist/game-factory/move/set-active-players.d.ts.map +0 -1
  138. package/dist/game-factory/move/set-state.d.ts +0 -5
  139. package/dist/game-factory/move/set-state.d.ts.map +0 -1
  140. package/dist/game-factory/move/shuffle.d.ts +0 -5
  141. package/dist/game-factory/move/shuffle.d.ts.map +0 -1
  142. package/dist/game-factory/move/take-from.d.ts +0 -11
  143. package/dist/game-factory/move/take-from.d.ts.map +0 -1
  144. package/dist/game-factory/space/space.d.ts +0 -10
  145. package/dist/game-factory/space/space.d.ts.map +0 -1
  146. package/dist/game-factory/space-group/grid.d.ts +0 -15
  147. package/dist/game-factory/space-group/grid.d.ts.map +0 -1
  148. package/dist/game-factory/space-group/space-group.d.ts +0 -20
  149. package/dist/game-factory/space-group/space-group.d.ts.map +0 -1
  150. package/dist/index.d.ts +0 -6
  151. package/dist/index.d.ts.map +0 -1
  152. package/dist/registry.d.ts +0 -17
  153. package/dist/registry.d.ts.map +0 -1
  154. package/dist/types/bagel-types.d.ts +0 -339
  155. package/dist/types/bagel-types.d.ts.map +0 -1
  156. package/dist/types/index.d.ts +0 -3
  157. package/dist/types/index.d.ts.map +0 -1
  158. package/dist/types/rule-with-conditions.d.ts +0 -9
  159. package/dist/types/rule-with-conditions.d.ts.map +0 -1
  160. package/dist/utils/any-valid-moves.d.ts +0 -2
  161. package/dist/utils/any-valid-moves.d.ts.map +0 -1
  162. package/dist/utils/bgio-resolve-types.d.ts +0 -25
  163. package/dist/utils/bgio-resolve-types.d.ts.map +0 -1
  164. package/dist/utils/check-conditions.d.ts +0 -7
  165. package/dist/utils/check-conditions.d.ts.map +0 -1
  166. package/dist/utils/create-payload.d.ts +0 -5
  167. package/dist/utils/create-payload.d.ts.map +0 -1
  168. package/dist/utils/deserialize-bgio-arguments.d.ts +0 -3
  169. package/dist/utils/deserialize-bgio-arguments.d.ts.map +0 -1
  170. package/dist/utils/do-moves.d.ts +0 -8
  171. package/dist/utils/do-moves.d.ts.map +0 -1
  172. package/dist/utils/entity-matches.d.ts +0 -6
  173. package/dist/utils/entity-matches.d.ts.map +0 -1
  174. package/dist/utils/find-met-condition.d.ts +0 -6
  175. package/dist/utils/find-met-condition.d.ts.map +0 -1
  176. package/dist/utils/get-current-moves.d.ts +0 -24
  177. package/dist/utils/get-current-moves.d.ts.map +0 -1
  178. package/dist/utils/get-scenario-results.d.ts +0 -3
  179. package/dist/utils/get-scenario-results.d.ts.map +0 -1
  180. package/dist/utils/get-steps.d.ts +0 -13
  181. package/dist/utils/get-steps.d.ts.map +0 -1
  182. package/dist/utils/get.d.ts +0 -7
  183. package/dist/utils/get.d.ts.map +0 -1
  184. package/dist/utils/grid-contains-sequence.d.ts +0 -27
  185. package/dist/utils/grid-contains-sequence.d.ts.map +0 -1
  186. package/dist/utils/json-transformer.d.ts +0 -8
  187. package/dist/utils/json-transformer.d.ts.map +0 -1
  188. package/dist/utils/prepare-payload.d.ts +0 -2
  189. package/dist/utils/prepare-payload.d.ts.map +0 -1
  190. package/dist/utils/resolve-entity.d.ts +0 -3
  191. package/dist/utils/resolve-entity.d.ts.map +0 -1
  192. package/dist/utils/resolve-expression.d.ts +0 -6
  193. package/dist/utils/resolve-expression.d.ts.map +0 -1
  194. package/dist/utils/resolve-properties.d.ts +0 -4
  195. package/dist/utils/resolve-properties.d.ts.map +0 -1
  196. package/dist/utils/simulate-move.d.ts +0 -16
  197. package/dist/utils/simulate-move.d.ts.map +0 -1
  198. package/src/client/client.ts +0 -305
  199. package/src/game-factory/bank/bank-slot.ts +0 -81
  200. package/src/game-factory/bank/bank.ts +0 -125
  201. package/src/game-factory/condition/condition-factory.ts +0 -59
  202. package/src/game-factory/condition/condition.ts +0 -50
  203. package/src/game-factory/condition/every-condition.ts +0 -27
  204. package/src/game-factory/condition/has-line-condition.ts +0 -15
  205. package/src/game-factory/condition/in-line-condition.ts +0 -25
  206. package/src/game-factory/condition/is-condition.ts +0 -24
  207. package/src/game-factory/condition/is-full-condition.ts +0 -10
  208. package/src/game-factory/condition/position-condition.ts +0 -13
  209. package/src/game-factory/condition/would-condition.ts +0 -104
  210. package/src/game-factory/entity.ts +0 -37
  211. package/src/game-factory/expand-game-rules.ts +0 -263
  212. package/src/game-factory/game-factory.ts +0 -263
  213. package/src/game-factory/move/end-turn.ts +0 -7
  214. package/src/game-factory/move/for-each.ts +0 -20
  215. package/src/game-factory/move/move-entity.ts +0 -18
  216. package/src/game-factory/move/move-factory.ts +0 -107
  217. package/src/game-factory/move/move.ts +0 -147
  218. package/src/game-factory/move/pass-turn.ts +0 -15
  219. package/src/game-factory/move/pass.ts +0 -7
  220. package/src/game-factory/move/place-new.ts +0 -42
  221. package/src/game-factory/move/remove-entity.ts +0 -11
  222. package/src/game-factory/move/set-active-players.ts +0 -26
  223. package/src/game-factory/move/set-state.ts +0 -14
  224. package/src/game-factory/move/shuffle.ts +0 -9
  225. package/src/game-factory/move/take-from.ts +0 -12
  226. package/src/game-factory/space/space.ts +0 -36
  227. package/src/game-factory/space-group/grid.ts +0 -48
  228. package/src/game-factory/space-group/space-group.ts +0 -44
  229. package/src/index.ts +0 -5
  230. package/src/types/bagel-types.ts +0 -449
  231. package/src/types/boardgame-io-core.d.ts +0 -7
  232. package/src/types/index.ts +0 -70
  233. package/src/types/rule-with-conditions.ts +0 -9
  234. package/src/utils/bgio-resolve-types.ts +0 -27
  235. package/src/utils/check-conditions.ts +0 -28
  236. package/src/utils/create-payload.ts +0 -19
  237. package/src/utils/deserialize-bgio-arguments.ts +0 -10
  238. package/src/utils/do-moves.ts +0 -22
  239. package/src/utils/entity-matches.ts +0 -30
  240. package/src/utils/expr-eval.d.ts +0 -6
  241. package/src/utils/find-met-condition.ts +0 -23
  242. package/src/utils/get-current-moves.ts +0 -39
  243. package/src/utils/get-scenario-results.ts +0 -30
  244. package/src/utils/get-steps.ts +0 -38
  245. package/src/utils/get.ts +0 -28
  246. package/src/utils/json-transformer.ts +0 -17
  247. package/src/utils/prepare-payload.ts +0 -20
  248. package/src/utils/resolve-entity.ts +0 -15
  249. package/src/utils/resolve-expression.ts +0 -16
  250. package/src/utils/resolve-properties.ts +0 -172
  251. package/src/utils/simulate-move.ts +0 -32
  252. package/src/wackson.d.ts +0 -4
  253. package/tsconfig.build.json +0 -14
  254. package/tsconfig.json +0 -21
  255. /package/src/game-factory/move/{index.ts → index.js} +0 -0
  256. /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
+ }
@@ -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
@@ -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,4 +0,0 @@
1
- import Space from "./space/space.js";
2
- export default class Board extends Space {
3
- }
4
- //# sourceMappingURL=board.d.ts.map
@@ -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,4 +0,0 @@
1
- import type { Condition as ConditionRule } from "../../types/bagel-types.js";
2
- import type ConditionBase from "./condition.js";
3
- export default function conditionFactory(rule: ConditionRule): ConditionBase | undefined;
4
- //# sourceMappingURL=condition-factory.d.ts.map
@@ -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"}