qpremake 1.5.3 → 1.6.3

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 (234) hide show
  1. package/README.md +5 -3
  2. package/package.json +2 -7
  3. package/lib/_localizationFiles/English.d.ts +0 -2
  4. package/lib/_localizationFiles/English.js +0 -307
  5. package/lib/_mods/parserModules/addSymbol.d.ts +0 -7
  6. package/lib/_mods/parserModules/addSymbol.js +0 -18
  7. package/lib/_mods/parserModules/expression.d.ts +0 -7
  8. package/lib/_mods/parserModules/expression.js +0 -45
  9. package/lib/_mods/parserModules/expression_parser.d.ts +0 -143
  10. package/lib/_mods/parserModules/expression_parser.js +0 -728
  11. package/lib/_mods/parserModules/img.d.ts +0 -8
  12. package/lib/_mods/parserModules/img.js +0 -42
  13. package/lib/_mods/parserModules/qpOriginal.d.ts +0 -5
  14. package/lib/_mods/parserModules/qpOriginal.js +0 -27
  15. package/lib/_mods/parserModules/sectionID.d.ts +0 -13
  16. package/lib/_mods/parserModules/sectionID.js +0 -56
  17. package/lib/_mods/parserModules/tags.d.ts +0 -9
  18. package/lib/_mods/parserModules/tags.js +0 -29
  19. package/lib/_mods/parserModules/uaddminus.d.ts +0 -9
  20. package/lib/_mods/parserModules/uaddminus.js +0 -42
  21. package/lib/_mods/parserModules/variantCheck.d.ts +0 -10
  22. package/lib/_mods/parserModules/variantCheck.js +0 -53
  23. package/lib/_queenSystem/handler/actionGenrator.d.ts +0 -994
  24. package/lib/_queenSystem/handler/actionGenrator.js +0 -646
  25. package/lib/_queenSystem/handler/actionInputGenerator.d.ts +0 -95
  26. package/lib/_queenSystem/handler/actionInputGenerator.js +0 -373
  27. package/lib/_queenSystem/handler/actionInputRequesterGenerator.d.ts +0 -92
  28. package/lib/_queenSystem/handler/actionInputRequesterGenerator.js +0 -341
  29. package/lib/_queenSystem/handler/cardHandler.d.ts +0 -20
  30. package/lib/_queenSystem/handler/cardHandler.js +0 -61
  31. package/lib/_queenSystem/handler/effectGenerator.d.ts +0 -1
  32. package/lib/_queenSystem/handler/effectGenerator.js +0 -127
  33. package/lib/_queenSystem/handler/localizationHandler.d.ts +0 -28
  34. package/lib/_queenSystem/handler/localizationHandler.js +0 -166
  35. package/lib/_queenSystem/handler/modHandler.d.ts +0 -10
  36. package/lib/_queenSystem/handler/modHandler.js +0 -36
  37. package/lib/_queenSystem/handler/oldDataProcessor.d.ts +0 -9
  38. package/lib/_queenSystem/handler/oldDataProcessor.js +0 -129
  39. package/lib/_queenSystem/handler/registryHandler.d.ts +0 -36
  40. package/lib/_queenSystem/handler/registryHandler.js +0 -63
  41. package/lib/_queenSystem/handler/zoneHandler.d.ts +0 -102
  42. package/lib/_queenSystem/handler/zoneHandler.js +0 -606
  43. package/lib/_queenSystem/loader/loader_card.d.ts +0 -20
  44. package/lib/_queenSystem/loader/loader_card.js +0 -124
  45. package/lib/_queenSystem/loader/loader_effect.d.ts +0 -27
  46. package/lib/_queenSystem/loader/loader_effect.js +0 -163
  47. package/lib/_queenSystem/loader/loader_handler.d.ts +0 -11
  48. package/lib/_queenSystem/loader/loader_handler.js +0 -24
  49. package/lib/_queenSystem/loader/loader_localization.d.ts +0 -11
  50. package/lib/_queenSystem/loader/loader_localization.js +0 -73
  51. package/lib/_queenSystem/loader/loader_mod.d.ts +0 -10
  52. package/lib/_queenSystem/loader/loader_mod.js +0 -72
  53. package/lib/_queenSystem/loader/loader_subtype.d.ts +0 -9
  54. package/lib/_queenSystem/loader/loader_subtype.js +0 -39
  55. package/lib/_queenSystem/loader/loader_type.d.ts +0 -9
  56. package/lib/_queenSystem/loader/loader_type.js +0 -39
  57. package/lib/_queenSystem/loader/loader_zone.d.ts +0 -14
  58. package/lib/_queenSystem/loader/loader_zone.js +0 -35
  59. package/lib/_queenSystem/queenSystem.d.ts +0 -127
  60. package/lib/_queenSystem/queenSystem.js +0 -996
  61. package/lib/_queenSystem/renderer/rendererInterface.d.ts +0 -27
  62. package/lib/_queenSystem/renderer/rendererInterface.js +0 -25
  63. package/lib/data/actionRegistry.d.ts +0 -56
  64. package/lib/data/actionRegistry.js +0 -60
  65. package/lib/data/cardRegistry.d.ts +0 -1162
  66. package/lib/data/cardRegistry.js +0 -716
  67. package/lib/data/deckRegistry.d.ts +0 -19
  68. package/lib/data/deckRegistry.js +0 -41
  69. package/lib/data/effectRegistry.d.ts +0 -465
  70. package/lib/data/effectRegistry.js +0 -151
  71. package/lib/data/effectTypeRegistry.d.ts +0 -14
  72. package/lib/data/effectTypeRegistry.js +0 -14
  73. package/lib/data/operatorRegistry.d.ts +0 -92
  74. package/lib/data/operatorRegistry.js +0 -82
  75. package/lib/data/rarityRegistry.d.ts +0 -28
  76. package/lib/data/rarityRegistry.js +0 -63
  77. package/lib/data/registryRegistry.d.ts +0 -10
  78. package/lib/data/registryRegistry.js +0 -14
  79. package/lib/data/subtypeRegistry.d.ts +0 -15
  80. package/lib/data/subtypeRegistry.js +0 -15
  81. package/lib/data/systemRegistry.d.ts +0 -253
  82. package/lib/data/systemRegistry.js +0 -56
  83. package/lib/data/zoneRegistry.d.ts +0 -43
  84. package/lib/data/zoneRegistry.js +0 -157
  85. package/lib/effectTextParser/index.d.ts +0 -42
  86. package/lib/effectTextParser/index.js +0 -316
  87. package/lib/global/index.d.ts +0 -8
  88. package/lib/global/index.js +0 -12
  89. package/lib/index.d.ts +0 -6335
  90. package/lib/index.js +0 -205
  91. package/lib/specificEffects/e_cond.d.ts +0 -11
  92. package/lib/specificEffects/e_cond.js +0 -36
  93. package/lib/specificEffects/e_fruit.d.ts +0 -3
  94. package/lib/specificEffects/e_fruit.js +0 -187
  95. package/lib/specificEffects/e_generic.d.ts +0 -191
  96. package/lib/specificEffects/e_generic.js +0 -662
  97. package/lib/specificEffects/e_generic_cardTargetting.d.ts +0 -38
  98. package/lib/specificEffects/e_generic_cardTargetting.js +0 -82
  99. package/lib/specificEffects/e_generic_noneTargetting.d.ts +0 -10
  100. package/lib/specificEffects/e_generic_noneTargetting.js +0 -26
  101. package/lib/specificEffects/e_status.d.ts +0 -80
  102. package/lib/specificEffects/e_status.js +0 -151
  103. package/lib/specificEffects/e_test.d.ts +0 -3
  104. package/lib/specificEffects/e_test.js +0 -21
  105. package/lib/types/abstract/gameComponents/API.d.ts +0 -19
  106. package/lib/types/abstract/gameComponents/API.js +0 -2
  107. package/lib/types/abstract/gameComponents/card.d.ts +0 -108
  108. package/lib/types/abstract/gameComponents/card.js +0 -771
  109. package/lib/types/abstract/gameComponents/effect.d.ts +0 -82
  110. package/lib/types/abstract/gameComponents/effect.js +0 -331
  111. package/lib/types/abstract/gameComponents/effectSubtype.d.ts +0 -22
  112. package/lib/types/abstract/gameComponents/effectSubtype.js +0 -40
  113. package/lib/types/abstract/gameComponents/effectType.d.ts +0 -11
  114. package/lib/types/abstract/gameComponents/effectType.js +0 -8
  115. package/lib/types/abstract/gameComponents/settings.d.ts +0 -80
  116. package/lib/types/abstract/gameComponents/settings.js +0 -72
  117. package/lib/types/abstract/gameComponents/zone.d.ts +0 -113
  118. package/lib/types/abstract/gameComponents/zone.js +0 -614
  119. package/lib/types/abstract/gameComponents/zone_gridBased.d.ts +0 -18
  120. package/lib/types/abstract/gameComponents/zone_gridBased.js +0 -58
  121. package/lib/types/abstract/gameComponents/zone_stackBased.d.ts +0 -13
  122. package/lib/types/abstract/gameComponents/zone_stackBased.js +0 -55
  123. package/lib/types/abstract/generics/node.d.ts +0 -23
  124. package/lib/types/abstract/generics/node.js +0 -46
  125. package/lib/types/abstract/generics/position.d.ts +0 -23
  126. package/lib/types/abstract/generics/position.js +0 -91
  127. package/lib/types/abstract/generics/tree.d.ts +0 -25
  128. package/lib/types/abstract/generics/tree.js +0 -153
  129. package/lib/types/abstract/generics/universalResponse.d.ts +0 -4
  130. package/lib/types/abstract/generics/universalResponse.js +0 -2
  131. package/lib/types/abstract/generics/wraper.d.ts +0 -21
  132. package/lib/types/abstract/generics/wraper.js +0 -56
  133. package/lib/types/abstract/parser/component.d.ts +0 -88
  134. package/lib/types/abstract/parser/component.js +0 -132
  135. package/lib/types/abstract/parser/index.d.ts +0 -6
  136. package/lib/types/abstract/parser/index.js +0 -28
  137. package/lib/types/abstract/parser/modPack.d.ts +0 -21
  138. package/lib/types/abstract/parser/modPack.js +0 -48
  139. package/lib/types/abstract/parser/moduleInputObject.d.ts +0 -12
  140. package/lib/types/abstract/parser/moduleInputObject.js +0 -21
  141. package/lib/types/abstract/parser/options.d.ts +0 -31
  142. package/lib/types/abstract/parser/options.js +0 -45
  143. package/lib/types/abstract/serializedGameComponents/Gamestate.d.ts +0 -46
  144. package/lib/types/abstract/serializedGameComponents/Gamestate.js +0 -70
  145. package/lib/types/abstract/serializedGameComponents/Localized.d.ts +0 -69
  146. package/lib/types/abstract/serializedGameComponents/Localized.js +0 -84
  147. package/lib/types/defaultZones/ability.d.ts +0 -10
  148. package/lib/types/defaultZones/ability.js +0 -22
  149. package/lib/types/defaultZones/deck.d.ts +0 -25
  150. package/lib/types/defaultZones/deck.js +0 -90
  151. package/lib/types/defaultZones/drop.d.ts +0 -5
  152. package/lib/types/defaultZones/drop.js +0 -13
  153. package/lib/types/defaultZones/field.d.ts +0 -11
  154. package/lib/types/defaultZones/field.js +0 -35
  155. package/lib/types/defaultZones/grave.d.ts +0 -8
  156. package/lib/types/defaultZones/grave.js +0 -21
  157. package/lib/types/defaultZones/hand.d.ts +0 -5
  158. package/lib/types/defaultZones/hand.js +0 -14
  159. package/lib/types/defaultZones/storage.d.ts +0 -9
  160. package/lib/types/defaultZones/storage.js +0 -21
  161. package/lib/types/defaultZones/system.d.ts +0 -12
  162. package/lib/types/defaultZones/system.js +0 -35
  163. package/lib/types/defaultZones/void.d.ts +0 -4
  164. package/lib/types/defaultZones/void.js +0 -10
  165. package/lib/types/effects/effectSubtypes/subtype_chained.d.ts +0 -10
  166. package/lib/types/effects/effectSubtypes/subtype_chained.js +0 -17
  167. package/lib/types/effects/effectSubtypes/subtype_delayed.d.ts +0 -9
  168. package/lib/types/effects/effectSubtypes/subtype_delayed.js +0 -16
  169. package/lib/types/effects/effectSubtypes/subtype_fieldLock.d.ts +0 -9
  170. package/lib/types/effects/effectSubtypes/subtype_fieldLock.js +0 -21
  171. package/lib/types/effects/effectSubtypes/subtype_graveLock.d.ts +0 -9
  172. package/lib/types/effects/effectSubtypes/subtype_graveLock.js +0 -21
  173. package/lib/types/effects/effectSubtypes/subtype_hand_or_fieldLock.d.ts +0 -9
  174. package/lib/types/effects/effectSubtypes/subtype_hand_or_fieldLock.js +0 -21
  175. package/lib/types/effects/effectSubtypes/subtype_hardUnique.d.ts +0 -9
  176. package/lib/types/effects/effectSubtypes/subtype_hardUnique.js +0 -15
  177. package/lib/types/effects/effectSubtypes/subtype_instant.d.ts +0 -8
  178. package/lib/types/effects/effectSubtypes/subtype_instant.js +0 -20
  179. package/lib/types/effects/effectSubtypes/subtype_once.d.ts +0 -12
  180. package/lib/types/effects/effectSubtypes/subtype_once.js +0 -27
  181. package/lib/types/effects/effectSubtypes/subtype_unique.d.ts +0 -9
  182. package/lib/types/effects/effectSubtypes/subtype_unique.js +0 -16
  183. package/lib/types/effects/effectTypes/initEffect.d.ts +0 -7
  184. package/lib/types/effects/effectTypes/initEffect.js +0 -23
  185. package/lib/types/effects/effectTypes/lockEffect.d.ts +0 -9
  186. package/lib/types/effects/effectTypes/lockEffect.js +0 -25
  187. package/lib/types/effects/effectTypes/manualEffect.d.ts +0 -9
  188. package/lib/types/effects/effectTypes/manualEffect.js +0 -18
  189. package/lib/types/effects/effectTypes/passiveEffect.d.ts +0 -9
  190. package/lib/types/effects/effectTypes/passiveEffect.js +0 -23
  191. package/lib/types/effects/effectTypes/triggerEffect.d.ts +0 -9
  192. package/lib/types/effects/effectTypes/triggerEffect.js +0 -28
  193. package/lib/types/errors/cannotLoad.d.ts +0 -5
  194. package/lib/types/errors/cannotLoad.js +0 -13
  195. package/lib/types/errors/cardNotExist.d.ts +0 -5
  196. package/lib/types/errors/cardNotExist.js +0 -13
  197. package/lib/types/errors/cardNotInApplicableZone.d.ts +0 -5
  198. package/lib/types/errors/cardNotInApplicableZone.js +0 -13
  199. package/lib/types/errors/effectCondNotMet.d.ts +0 -5
  200. package/lib/types/errors/effectCondNotMet.js +0 -13
  201. package/lib/types/errors/effectNotExist.d.ts +0 -5
  202. package/lib/types/errors/effectNotExist.js +0 -13
  203. package/lib/types/errors/error.d.ts +0 -17
  204. package/lib/types/errors/error.js +0 -42
  205. package/lib/types/errors/incorrectActionType.d.ts +0 -5
  206. package/lib/types/errors/incorrectActionType.js +0 -13
  207. package/lib/types/errors/index.d.ts +0 -16
  208. package/lib/types/errors/index.js +0 -36
  209. package/lib/types/errors/invalidOrderMap.d.ts +0 -6
  210. package/lib/types/errors/invalidOrderMap.js +0 -14
  211. package/lib/types/errors/invalidPosition.d.ts +0 -6
  212. package/lib/types/errors/invalidPosition.js +0 -13
  213. package/lib/types/errors/subTypeOverrideConflict.d.ts +0 -7
  214. package/lib/types/errors/subTypeOverrideConflict.js +0 -15
  215. package/lib/types/errors/unknownError.d.ts +0 -5
  216. package/lib/types/errors/unknownError.js +0 -13
  217. package/lib/types/errors/unregisteredAction.d.ts +0 -6
  218. package/lib/types/errors/unregisteredAction.js +0 -13
  219. package/lib/types/errors/wrongEffectIdx.d.ts +0 -5
  220. package/lib/types/errors/wrongEffectIdx.js +0 -14
  221. package/lib/types/errors/zoneAttrConflict.d.ts +0 -5
  222. package/lib/types/errors/zoneAttrConflict.js +0 -15
  223. package/lib/types/errors/zoneFull.d.ts +0 -5
  224. package/lib/types/errors/zoneFull.js +0 -13
  225. package/lib/types/errors/zoneNotExist.d.ts +0 -5
  226. package/lib/types/errors/zoneNotExist.js +0 -13
  227. package/lib/types/misc.d.ts +0 -97
  228. package/lib/types/misc.js +0 -8
  229. package/lib/types/mods/effectTextParserModule.d.ts +0 -16
  230. package/lib/types/mods/effectTextParserModule.js +0 -81
  231. package/lib/types/mods/gameModule.d.ts +0 -5
  232. package/lib/types/mods/gameModule.js +0 -8
  233. package/lib/utils/index.d.ts +0 -78
  234. package/lib/utils/index.js +0 -562
@@ -1,95 +0,0 @@
1
- import { dry_position, inputData_pos, inputData_standard, inputData_str, inputDataSpecific, inputType, type dry_card, type dry_effect, type dry_effectSubType, type dry_system, type dry_zone, type inputData, type inputData_bool, type inputData_card, type inputData_effect, type inputData_num, type inputData_player, type inputData_subtype, type inputData_zone } from "../../data/systemRegistry";
2
- import { Action } from "./actionGenrator";
3
- import { validSetFormat } from "../../data/systemRegistry";
4
- import { Tuple_any } from "../../types/misc";
5
- /**
6
- * Merge with signature example:
7
- * A has input [X, Y, Z, K]
8
- * B has input [X, Y, K, L, Z]
9
- *
10
- * Merging these will yield C having input [...A, ...exclude B from A, stop at first not match in B]
11
- * the previous example will results to [X, Y, Z, K, L, Z]
12
- * [X, Y, Z, K] from A
13
- * and [L, Z] from B after filling A's input into B as best as we can
14
- * well..not rlly but I do not want to recur try to apply every input every time we apply new inputs
15
- *
16
- * oh also apply returns, please make sure to overwrite the val after apply
17
- */
18
- export declare const inputFormRegistry: {
19
- readonly zone: (s: dry_system, z: dry_zone) => inputData_zone;
20
- readonly card: (s: dry_system, c: dry_card) => inputData_card;
21
- readonly effect: (s: dry_system, c: dry_card, e: dry_effect) => inputData_effect;
22
- readonly subtype: (s: dry_system, c: dry_card, e: dry_effect, st: dry_effectSubType) => inputData_subtype;
23
- readonly player: (s: dry_system, pid: number) => inputData_player;
24
- readonly pos: (s: dry_system, pos: dry_position) => inputData_pos;
25
- readonly num: (num: number) => inputData_num;
26
- readonly str: (str: string) => inputData_str;
27
- readonly bool: (bool: boolean) => inputData_bool;
28
- };
29
- export type inputRequester_finalized<T_accu extends Exclude<inputData[], []>> = {
30
- next: () => T_accu;
31
- };
32
- export declare class inputRequester<K extends inputType = inputType, //initial type, for inference, useless after constructor is called
33
- T extends inputData[] = [inputDataSpecific<K>], //inputs tuple yet to apply, [] means finished
34
- T_accumulate extends Exclude<inputData[], []> = T, //inputs tuple as a whole, inference at first
35
- T_data_last extends inputData = inputDataSpecific<K>, //last entry of the array, deprecated
36
- T_head extends inputData = T extends [infer head, ...any[]] ? head : inputData, //inference
37
- T_tail extends inputData[] = T extends [any, ...infer tail] ? tail : inputData[]> {
38
- protected __inner_res: inputData[];
39
- protected __func_arr: ((s: dry_system, prev: inputData[]) => Exclude<inputData[], []> | validSetFormat)[];
40
- protected __curr: validSetFormat | undefined;
41
- protected __queue: inputRequester<any, inputData[], inputData[], any, any>[];
42
- protected __valid_flag: boolean;
43
- protected __do_pre_fill_when_merge: boolean;
44
- protected __len: number;
45
- protected __cursor_f_arr: number;
46
- protected reserved_inner_res: inputData[];
47
- emplaceReserve(): void;
48
- cache: inputRequestCache<T_accumulate>;
49
- updateValidFlag(set: inputData[]): void;
50
- get len(): number;
51
- constructor(type: K, validSet?: Exclude<inputDataSpecific<K>[], []>);
52
- hasInput(): this is this;
53
- private verify;
54
- private isCurrentInputAllows;
55
- protected copyToNext(next: inputRequester<any, inputData[], inputData[], any, any>): void;
56
- apply(s: dry_system, input: T_head): T_tail extends [] ? inputRequester_finalized<T_accumulate> : inputRequester<inputType, T_tail, T_accumulate, T_data_last>;
57
- applyMultiple(s: dry_system, inputs: inputData[], preProcess?: (s: dry_system, index: number, input: inputData) => undefined | inputData[]): this;
58
- next(): T extends [] ? T_accumulate : validSetFormat<T[0]["type"]>;
59
- isFinalized(): this is inputRequester_finalized<T_accumulate>;
60
- extend<T2 extends inputData>(s: dry_system, f: (s: dry_system, prev: T_accumulate) => T2[] | validSetFormat<T2["type"]>): inputRequester<inputType, [...T, T2], [...T_accumulate, T2], T2>;
61
- extendMultiple<T2 extends inputData, Len extends number, X extends inputData[] = Tuple_any<T2, Len>>(s: dry_system, len: Len, f: (s: dry_system, prev: T_accumulate) => T2[]): inputRequester<K, [...T, ...X], [...T_accumulate, ...X], T2>;
62
- merge<T2 extends inputData[], T_accumulate2 extends Exclude<inputData[], []>, T_data_last_2 extends inputData>(requester: inputRequester<inputType, T2, T_accumulate2, T_data_last_2>): inputRequester<inputType, [...T, ...T2], [...T_accumulate, ...T_accumulate2], T_data_last_2>;
63
- merge_with_signature(requester: inputRequester<any, inputData[], inputData[]>): this;
64
- fill(s: dry_system, requester: inputRequester<any, inputData[], inputData[]>): this;
65
- /**@deprecated */
66
- extendOverride(s: dry_system, cond: (s: dry_system, prev: T_data_last) => boolean): this;
67
- }
68
- export declare class inputRequester_multiple<K extends inputType, Len extends number> extends inputRequester<K, Tuple_any<inputDataSpecific<K>, Len>> {
69
- __multiple_len: Len;
70
- constructor(len: Len, type: K, validSet: Exclude<inputDataSpecific<K>[], []>);
71
- updateValidFlag(set: inputData[]): void;
72
- apply(s: dry_system, input: Tuple_any<inputDataSpecific<K>, Len> extends [infer head, ...any[]] ? head : inputData_standard): any;
73
- applyMultiple(s: dry_system, inputs: inputData[], preProcess?: (s: dry_system, index: number, input: inputData) => undefined | inputData[]): this;
74
- }
75
- declare class leaf<T extends inputData> {
76
- path: inputData[];
77
- cache: T[];
78
- allIsValid: boolean;
79
- constructor(data: T[] | undefined, path?: inputData[]);
80
- }
81
- declare class inputRequestCache<T extends Exclude<inputData[], []>> {
82
- tree: leaf<inputData>[];
83
- constructor(initial?: T | []);
84
- private verify;
85
- extend<T2 extends inputData>(s: dry_system, f: (s: dry_system, prev: inputData[]) => T2[] | validSetFormat, extraCond?: (s: dry_system, k: T2[]) => boolean): void;
86
- merge(requester: inputRequestCache<any>): void;
87
- get(depth: number): leaf<inputData_standard>[];
88
- }
89
- export declare class inputApplicator<ParamType extends any[], InputType extends Exclude<inputData[], []>> {
90
- private __p;
91
- private __f;
92
- constructor(f: (...param: [...ParamType, inputRequester_finalized<InputType>]) => Action[], p: ParamType, thisParam?: any);
93
- apply(input: inputRequester_finalized<InputType>): Action[];
94
- }
95
- export {};
@@ -1,373 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.inputApplicator = exports.inputRequester_multiple = exports.inputRequester = exports.inputFormRegistry = void 0;
4
- const systemRegistry_1 = require("../../data/systemRegistry");
5
- const actionGenrator_1 = require("./actionGenrator");
6
- /**
7
- * Merge with signature example:
8
- * A has input [X, Y, Z, K]
9
- * B has input [X, Y, K, L, Z]
10
- *
11
- * Merging these will yield C having input [...A, ...exclude B from A, stop at first not match in B]
12
- * the previous example will results to [X, Y, Z, K, L, Z]
13
- * [X, Y, Z, K] from A
14
- * and [L, Z] from B after filling A's input into B as best as we can
15
- * well..not rlly but I do not want to recur try to apply every input every time we apply new inputs
16
- *
17
- * oh also apply returns, please make sure to overwrite the val after apply
18
- */
19
- exports.inputFormRegistry = {
20
- zone(s, z) {
21
- const o = actionGenrator_1.actionFormRegistry.zone(s, z);
22
- return {
23
- type: systemRegistry_1.inputType.zone,
24
- data: o,
25
- is: o.is,
26
- of: o.of,
27
- };
28
- },
29
- card(s, c) {
30
- const o = actionGenrator_1.actionFormRegistry.card(s, c);
31
- return {
32
- type: systemRegistry_1.inputType.card,
33
- data: o,
34
- is: o.is
35
- };
36
- },
37
- effect(s, c, e) {
38
- const o = actionGenrator_1.actionFormRegistry.effect(s, c, e);
39
- return {
40
- type: systemRegistry_1.inputType.effect,
41
- data: o,
42
- is: o.is
43
- };
44
- },
45
- subtype(s, c, e, st) {
46
- const o = actionGenrator_1.actionFormRegistry.subtype(s, c, e, st);
47
- return {
48
- type: systemRegistry_1.inputType.effectSubtype,
49
- data: o,
50
- is: o.is
51
- };
52
- },
53
- player(s, pid) {
54
- const o = actionGenrator_1.actionFormRegistry.player(s, pid);
55
- return {
56
- type: systemRegistry_1.inputType.player,
57
- data: o,
58
- is: o.is,
59
- };
60
- },
61
- pos(s, pos) {
62
- const o = actionGenrator_1.actionFormRegistry.position(s, pos);
63
- return {
64
- type: systemRegistry_1.inputType.position,
65
- data: o,
66
- is: o.is
67
- };
68
- },
69
- num(num) { return { type: systemRegistry_1.inputType.number, data: num }; },
70
- str(str) { return { type: systemRegistry_1.inputType.string, data: str }; },
71
- bool(bool) { return { type: systemRegistry_1.inputType.boolean, data: bool }; },
72
- };
73
- class inputRequester {
74
- emplaceReserve() {
75
- this.__curr = undefined;
76
- this.__inner_res = this.reserved_inner_res;
77
- }
78
- updateValidFlag(set) {
79
- if (set === undefined)
80
- this.__valid_flag = true;
81
- else
82
- this.__valid_flag = (set.length !== 0);
83
- }
84
- get len() {
85
- return this.__len;
86
- }
87
- constructor(type, validSet) {
88
- this.__inner_res = [];
89
- this.__func_arr = [];
90
- this.__queue = [];
91
- this.__do_pre_fill_when_merge = false;
92
- this.__len = 1;
93
- this.__cursor_f_arr = 0;
94
- this.reserved_inner_res = [];
95
- this.__curr = [type, validSet];
96
- if (validSet === undefined)
97
- this.__valid_flag = true;
98
- else
99
- this.__valid_flag = (validSet.length !== 0);
100
- this.cache = new inputRequestCache(validSet);
101
- }
102
- hasInput() {
103
- return this.__valid_flag && (this.__curr === undefined || this.__curr[1] === undefined || this.__curr[1].length !== 0);
104
- }
105
- verify(a) {
106
- return a.length === 2 && typeof a[0] === "number"; //rough check
107
- }
108
- isCurrentInputAllows(s, k) {
109
- if (k === undefined)
110
- return false;
111
- const t = this.next();
112
- const c1 = this.verify(t);
113
- const c2 = t[0] === k.type;
114
- const c3 = (t[1] === undefined ||
115
- t[1].some(i => i !== undefined && s.generateSignature(i) === s.generateSignature(k)));
116
- //console.log("Checking applicavbility of input : ", k, " -- ", [c1, c2, c3, (t[1] as inputData[]).map(i => s.generateSignature(i))])
117
- return c1 && c2 && c3;
118
- }
119
- copyToNext(next) {
120
- next.__queue.unshift(...this.__queue);
121
- next.__inner_res = this.__inner_res;
122
- }
123
- // protected apply_dry(s : dry_system){
124
- // let f = this.__func_arr[this.__cursor_f_arr]
125
- // this.__cursor_f_arr++
126
- // if(f !== undefined){
127
- // const t : inputData[] | validSetFormat = f(s, Array.from(this.__inner_res.values()))
128
- // if(this.verify(t)) this.__curr = t;
129
- // else this.__curr = [t[0].type, t]
130
- // } else if(this.__queue.length !== 0){
131
- // const next = this.__queue.shift()!
132
- // this.copyToNext(next)
133
- // return next as any
134
- // } else {
135
- // this.__curr = undefined
136
- // }
137
- // return this as any
138
- // }
139
- apply(s, input) {
140
- let f = this.__func_arr[this.__cursor_f_arr];
141
- this.__cursor_f_arr++;
142
- const sig = s.generateSignature(input);
143
- this.__inner_res.push(input);
144
- this.reserved_inner_res.push(input);
145
- if (f !== undefined) {
146
- const t = f(s, Array.from(this.__inner_res.values()));
147
- if (this.verify(t))
148
- this.__curr = t;
149
- else
150
- this.__curr = [t[0].type, t];
151
- }
152
- else if (this.__queue.length !== 0) {
153
- const next = this.__queue.shift();
154
- this.copyToNext(next);
155
- if (next.__do_pre_fill_when_merge)
156
- next.applyMultiple(s, [...Array.from(next.__inner_res.values()), input]);
157
- else
158
- next.apply(s, input);
159
- return next;
160
- }
161
- else {
162
- this.__curr = undefined;
163
- }
164
- return this;
165
- }
166
- applyMultiple(s, inputs, preProcess) {
167
- let mark = new Array(inputs.length).fill(false);
168
- //console.log("logging from applyMultiple, trying to apply ", inputs, " to this Object")
169
- let i = 0;
170
- while (i < inputs.length && !this.isFinalized()) {
171
- const x = preProcess ? preProcess(s, i, inputs[i]) : undefined;
172
- if (x) {
173
- x.forEach(k => {
174
- if (this.isCurrentInputAllows(s, k)) {
175
- this.apply(s, k);
176
- }
177
- });
178
- }
179
- else if (this.isCurrentInputAllows(s, inputs[i])) {
180
- mark[i] = true;
181
- this.apply(s, inputs[i]);
182
- }
183
- i++;
184
- }
185
- console.log("Applied mask: ", mark);
186
- return this;
187
- }
188
- next() {
189
- return (this.__curr === undefined) ? this.__inner_res : this.__curr;
190
- }
191
- isFinalized() {
192
- return this.__curr === undefined;
193
- }
194
- //extend DO check for chained validity
195
- extend(s, f) {
196
- this.__func_arr.push(f);
197
- this.__len++;
198
- this.cache.extend(s, f);
199
- if (this.cache.tree.length === 0)
200
- this.__valid_flag = false;
201
- return this;
202
- }
203
- extendMultiple(s, len, f) {
204
- if (len <= 0) {
205
- this.__valid_flag = false;
206
- return this;
207
- }
208
- this.__len += len;
209
- this.cache.extend(s, f, (s, k) => k.length >= len);
210
- this.__func_arr.push(f);
211
- let k = len - 1;
212
- while (k !== 0) {
213
- this.__func_arr.push((s, prev) => {
214
- return f(s, prev).filter(i => s.generateSignature(i) !== s.generateSignature(prev.at(-1)));
215
- });
216
- k--;
217
- }
218
- if (this.cache.tree.length === 0)
219
- this.__valid_flag = false;
220
- return this;
221
- }
222
- //merge DO NOT check for chained validity
223
- merge(requester) {
224
- this.__queue.push(requester);
225
- if (requester.__valid_flag === false)
226
- this.__valid_flag = false;
227
- this.__len += requester.__len;
228
- this.cache.merge(requester.cache);
229
- return this;
230
- }
231
- merge_with_signature(requester) {
232
- requester.__do_pre_fill_when_merge = true;
233
- this.merge(requester);
234
- return this;
235
- }
236
- fill(s, requester) {
237
- this.applyMultiple(s, Array.from(requester.__inner_res.values()));
238
- return this;
239
- }
240
- //adds a new condition on top of the old condition of the last input required
241
- /**@deprecated */
242
- extendOverride(s, cond) {
243
- if (this.__func_arr.length === 0) {
244
- if (this.__queue.length === 0) {
245
- if (!this.__curr)
246
- return this;
247
- if (!this.__curr[1])
248
- return this;
249
- this.__curr[1] = this.__curr[1].filter(i => cond(s, i));
250
- return this;
251
- }
252
- ;
253
- return this.__queue.at(-1).extendOverride(s, cond);
254
- }
255
- ;
256
- const oldCond = this.__func_arr.pop();
257
- const newCond = function (f, f2, thisParam) {
258
- return function (s, prev) {
259
- const res = f(s, prev);
260
- const res2 = thisParam.verify(res) ? res[1] : res;
261
- if (!res2)
262
- return res;
263
- return res2.filter(k => f2(s, k));
264
- };
265
- };
266
- const k = newCond(oldCond, cond, this);
267
- this.__func_arr.push(k);
268
- this.cache.extend(s, k);
269
- if (this.cache.tree.length === 0)
270
- this.__valid_flag = false;
271
- return this;
272
- }
273
- }
274
- exports.inputRequester = inputRequester;
275
- class inputRequester_multiple extends inputRequester {
276
- constructor(len, type, validSet) {
277
- if (len < 0 || !Number.isFinite(len)) {
278
- console.warn(`Something tried to create multiple inputs with len invalid (len = ${len})`);
279
- len = 0;
280
- }
281
- super(type, validSet);
282
- this.__valid_flag = validSet.length >= len;
283
- this.__len = len;
284
- this.__multiple_len = len;
285
- }
286
- updateValidFlag(set) {
287
- this.__valid_flag = set.length >= this.__multiple_len;
288
- }
289
- apply(s, input) {
290
- // console.log("From inside requester: ", this.__multiple_len, "Applying : ", input)
291
- this.__multiple_len--;
292
- if (this.__multiple_len === 0) {
293
- // console.log("Len reaches 0, switching to super's apply")
294
- return super.apply(s, input);
295
- }
296
- const i = input;
297
- const sig = s.generateSignature(i);
298
- this.__inner_res.push(i);
299
- this.reserved_inner_res.push(i);
300
- this.__curr[1] = this.__curr[1].filter(i => s.generateSignature(i) !== s.generateSignature(input));
301
- // if(this.__multiple_len === 0) this.apply_dry(s)
302
- return this;
303
- }
304
- applyMultiple(s, inputs, preProcess) {
305
- super.applyMultiple(s, inputs, preProcess);
306
- // console.log("From apply Multiple, afterwards: ", this.__multiple_len)
307
- return this;
308
- }
309
- }
310
- exports.inputRequester_multiple = inputRequester_multiple;
311
- class leaf {
312
- constructor(data, path = []) {
313
- this.path = [];
314
- this.allIsValid = false;
315
- if (data === undefined) {
316
- this.allIsValid = true;
317
- data = [];
318
- }
319
- this.cache = data;
320
- this.path = path;
321
- }
322
- }
323
- class inputRequestCache {
324
- constructor(initial = []) {
325
- this.tree = initial.map(i => new leaf([i]));
326
- }
327
- verify(a) {
328
- return a.length === 2 && typeof a[0] === "number";
329
- }
330
- extend(s, f, extraCond = (s, k) => k.length !== 0) {
331
- const limit = this.tree.length;
332
- for (let i = 0; i < limit; i++) {
333
- const curr_leaf = this.tree.shift();
334
- if (curr_leaf instanceof leaf) {
335
- const datum = curr_leaf.cache;
336
- datum.forEach(k => {
337
- const newPath = [...curr_leaf.path, k];
338
- const res = f(s, newPath);
339
- if (this.verify(res)) {
340
- if (res[1] === undefined || res[1].length !== 0) {
341
- this.tree.push(new leaf(res[1], newPath));
342
- }
343
- }
344
- else {
345
- if (extraCond(s, res)) {
346
- this.tree.push(new leaf(res, newPath));
347
- }
348
- }
349
- });
350
- }
351
- else {
352
- this.tree.push(curr_leaf);
353
- }
354
- }
355
- }
356
- merge(requester) {
357
- this.tree.push(...requester.tree);
358
- }
359
- get(depth) {
360
- return this.tree.filter(i => i.path.length === depth);
361
- }
362
- }
363
- class inputApplicator {
364
- constructor(f, p, thisParam) {
365
- this.__p = p;
366
- this.__f = thisParam ? f.bind(thisParam) : f;
367
- }
368
- apply(input) {
369
- let k = [...this.__p, input];
370
- return this.__f(...k);
371
- }
372
- }
373
- exports.inputApplicator = inputApplicator;
@@ -1,92 +0,0 @@
1
- import type { dry_card, dry_position, dry_system, dry_zone } from "../../data/systemRegistry";
2
- import type Effect from "../../types/abstract/gameComponents/effect";
3
- import { zoneRegistry } from "../../data/zoneRegistry";
4
- import type { Player_specific, Positionable } from "../../types/misc";
5
- import { inputRequester, inputRequester_multiple } from "./actionInputGenerator";
6
- import { inputType } from "../../data/systemRegistry";
7
- type Internal_regen_card = dry_card & {
8
- ___zone: dry_zone;
9
- };
10
- type Internal_regen_pos = dry_position & {
11
- ___zone: dry_zone;
12
- };
13
- declare class regen_cards {
14
- s: dry_system;
15
- cards: Internal_regen_card[];
16
- constructor(s: dry_system, cards: Internal_regen_card[]);
17
- ofArchtype(p: string): this;
18
- ofSameArchtype(c1: dry_card): this;
19
- ofSameField(c1: dry_card): this;
20
- hasStatus(): this;
21
- hasAutomate(): this;
22
- isExposed(): this;
23
- isCoverred(): this;
24
- isBack(): this;
25
- isFront(): this;
26
- ofLevel(l: number): this;
27
- ofAtLeastLevel(l: number): this;
28
- ofDataID(s: string): this;
29
- ofSameDataID(c_: dry_card): this;
30
- pos(): regen_pos;
31
- zones(): regen_zone;
32
- filter(f?: (c: Internal_regen_card) => boolean): this;
33
- once(e?: Effect<any>): inputRequester<inputType.card, [import("../../data/systemRegistry").inputData_card], [import("../../data/systemRegistry").inputData_card], import("../../data/systemRegistry").inputData_card, import("../../data/systemRegistry").inputData_card, []>;
34
- many<L extends number>(l: L, e?: Effect<any>): inputRequester_multiple<inputType.card, L>;
35
- clean(e?: Effect<any>): dry_card[];
36
- }
37
- declare class regen_pos {
38
- s: dry_system;
39
- pos: Internal_regen_pos[];
40
- constructor(s: dry_system, pos: Internal_regen_pos[]);
41
- isEmpty(): this;
42
- isOccupied(): this;
43
- isExposed(): this;
44
- isCoverred(): this;
45
- isBack(): this;
46
- isFront(): this;
47
- cards(): regen_cards;
48
- zones(): regen_zone;
49
- filter(f?: (p: Internal_regen_pos) => boolean): this;
50
- once(e?: Effect<any>): inputRequester<inputType.position, [import("../../data/systemRegistry").inputData_pos], [import("../../data/systemRegistry").inputData_pos], import("../../data/systemRegistry").inputData_pos, import("../../data/systemRegistry").inputData_pos, []>;
51
- many<L extends number>(l: L, e?: Effect<any>): inputRequester_multiple<inputType.position, L>;
52
- clean(e?: Effect<any>): dry_position[];
53
- }
54
- declare class regen_zone {
55
- s: dry_system;
56
- zones: dry_zone[];
57
- constructor(s: dry_system, zones: dry_zone[]);
58
- cards(): regen_cards;
59
- pos(): regen_pos;
60
- ofSamePlayer(pstat?: Player_specific): this;
61
- ofSamePlayerType(pstat?: Player_specific): this;
62
- filter(f?: (z: dry_zone) => boolean): this;
63
- once(e?: Effect<any>): inputRequester<inputType.zone, [import("../../data/systemRegistry").inputData_zone], [import("../../data/systemRegistry").inputData_zone], import("../../data/systemRegistry").inputData_zone, import("../../data/systemRegistry").inputData_zone, []>;
64
- many<L extends number>(l: L, e?: Effect<any>): inputRequester_multiple<inputType.zone, L>;
65
- clean(e?: Effect<any>): dry_zone[];
66
- }
67
- declare class regen_nums {
68
- s: dry_system;
69
- nums: number[];
70
- constructor(s: dry_system, nums: number[]);
71
- filter(f?: (n: number) => boolean): void;
72
- once(e?: Effect<any>): inputRequester<inputType.number, [import("../../data/systemRegistry").inputData_num], [import("../../data/systemRegistry").inputData_num], import("../../data/systemRegistry").inputData_num, import("../../data/systemRegistry").inputData_num, []>;
73
- many<L extends number>(l: L, e?: Effect<any>): inputRequester_multiple<inputType.number, L>;
74
- }
75
- declare class inputRequesterGenerator {
76
- field(s: dry_system, c: Player_specific | Positionable): regen_zone;
77
- grave(s: dry_system, c: Player_specific | Positionable): regen_zone;
78
- deck(s: dry_system, c: Player_specific | Positionable): regen_zone;
79
- hand(s: dry_system, c: Player_specific | Positionable): regen_zone;
80
- specificType(s: dry_system, c: Player_specific | Positionable, zType: zoneRegistry): regen_zone;
81
- oppositeZoneTo(s: dry_system, c: dry_card): regen_zone;
82
- allZones(s: dry_system, c: Player_specific | Positionable): regen_zone;
83
- nums(s: dry_system, ...nums: (number[] | number)[]): regen_nums;
84
- }
85
- export type T_regen<T extends "card" | "zone" | "pos" | "nums" = "card" | "zone" | "pos" | "nums"> = {
86
- card: regen_cards;
87
- zone: regen_zone;
88
- pos: regen_pos;
89
- nums: regen_nums;
90
- }[T];
91
- declare const Request: inputRequesterGenerator;
92
- export default Request;