ttpg-darrell 1.0.25 → 1.0.26

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.
@@ -9,13 +9,16 @@
9
9
  *
10
10
  * Scripts may wish to offer content menu items for singleton cards, but
11
11
  * not when they become a deck (or vice versa).
12
+ *
13
+ * If one adds a listener during global init, it will be called next frame with
14
+ * with in-game singleton cards and decks.
12
15
  */
13
16
  import { Card, GameObject, Player } from "@tabletop-playground/api";
14
17
  import { TriggerableMulticastDelegate } from "../triggerable-multicast-delegate/triggerable-multicast-delegate";
15
18
  import { AbstractGlobal } from "../global/abstract-global";
16
19
  export declare class OnCardBecameSingletonOrDeck implements AbstractGlobal {
17
20
  static readonly onSingletonCardCreated: TriggerableMulticastDelegate<(card: Card) => void>;
18
- static readonly onSingletonCardMadeDeck: TriggerableMulticastDelegate<(card: Card) => void>;
21
+ static readonly onSingletonCardMadeDeck: TriggerableMulticastDelegate<(card: Card, oldNsid: string) => void>;
19
22
  private static readonly _onInsertedHandler;
20
23
  static _onRemovedHandler: (deck: Card, removedCard: Card, position: number, player?: Player) => void;
21
24
  static _onCreatedHandler: (obj: GameObject) => void;
@@ -10,14 +10,22 @@
10
10
  *
11
11
  * Scripts may wish to offer content menu items for singleton cards, but
12
12
  * not when they become a deck (or vice versa).
13
+ *
14
+ * If one adds a listener during global init, it will be called next frame with
15
+ * with in-game singleton cards and decks.
13
16
  */
14
17
  Object.defineProperty(exports, "__esModule", { value: true });
15
18
  exports.OnCardBecameSingletonOrDeck = void 0;
16
19
  const api_1 = require("@tabletop-playground/api");
17
20
  const triggerable_multicast_delegate_1 = require("../triggerable-multicast-delegate/triggerable-multicast-delegate");
21
+ const nsid_1 = require("../nsid/nsid");
18
22
  class OnCardBecameSingletonOrDeck {
19
23
  init() {
20
24
  api_1.globalEvents.onObjectCreated.add(OnCardBecameSingletonOrDeck._onCreatedHandler);
25
+ const skipContained = false;
26
+ for (const obj of api_1.world.getAllObjects(skipContained)) {
27
+ OnCardBecameSingletonOrDeck._onCreatedHandler(obj);
28
+ }
21
29
  }
22
30
  _reset() {
23
31
  api_1.globalEvents.onObjectCreated.remove(OnCardBecameSingletonOrDeck._onCreatedHandler);
@@ -26,25 +34,43 @@ class OnCardBecameSingletonOrDeck {
26
34
  exports.OnCardBecameSingletonOrDeck = OnCardBecameSingletonOrDeck;
27
35
  OnCardBecameSingletonOrDeck.onSingletonCardCreated = new triggerable_multicast_delegate_1.TriggerableMulticastDelegate();
28
36
  OnCardBecameSingletonOrDeck.onSingletonCardMadeDeck = new triggerable_multicast_delegate_1.TriggerableMulticastDelegate();
29
- OnCardBecameSingletonOrDeck._onInsertedHandler = (deck, insertedCard, position, player) => {
37
+ OnCardBecameSingletonOrDeck._onInsertedHandler = (deck,
38
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
39
+ insertedCard,
40
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
41
+ position,
42
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
43
+ player) => {
30
44
  // This handler is only installed on singleton cards, and other card(s)
31
45
  // have already been added to deck before calling this. So remove
32
46
  // this handler, and signal the card is now a deck.
33
- if (deck.getStackSize() > 1) {
34
- deck.onInserted.remove(OnCardBecameSingletonOrDeck._onInsertedHandler);
35
- deck.onRemoved.remove(OnCardBecameSingletonOrDeck._onRemovedHandler);
36
- deck.onRemoved.add(OnCardBecameSingletonOrDeck._onRemovedHandler);
37
- OnCardBecameSingletonOrDeck.onSingletonCardMadeDeck.trigger(deck);
38
- }
47
+ const oldNsid = nsid_1.NSID.get(deck);
48
+ process.nextTick(() => {
49
+ if (deck.isValid() && deck.getStackSize() > 1) {
50
+ deck.onInserted.remove(OnCardBecameSingletonOrDeck._onInsertedHandler);
51
+ deck.onRemoved.remove(OnCardBecameSingletonOrDeck._onRemovedHandler);
52
+ deck.onRemoved.add(OnCardBecameSingletonOrDeck._onRemovedHandler);
53
+ OnCardBecameSingletonOrDeck.onSingletonCardMadeDeck.trigger(deck, oldNsid);
54
+ }
55
+ });
39
56
  };
40
- OnCardBecameSingletonOrDeck._onRemovedHandler = (deck, removedCard, position, player) => {
57
+ OnCardBecameSingletonOrDeck._onRemovedHandler = (deck,
58
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
59
+ removedCard,
60
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
61
+ position,
62
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
63
+ player) => {
41
64
  // Called after card is removed.
42
- if (deck.getStackSize() === 1) {
43
- deck.onRemoved.remove(OnCardBecameSingletonOrDeck._onRemovedHandler);
44
- deck.onInserted.remove(OnCardBecameSingletonOrDeck._onInsertedHandler);
45
- deck.onInserted.add(OnCardBecameSingletonOrDeck._onInsertedHandler);
46
- OnCardBecameSingletonOrDeck.onSingletonCardCreated.trigger(deck);
47
- }
65
+ // Removed card get seen by the onCreated handler.
66
+ process.nextTick(() => {
67
+ if (deck.getStackSize() === 1) {
68
+ deck.onRemoved.remove(OnCardBecameSingletonOrDeck._onRemovedHandler);
69
+ deck.onInserted.remove(OnCardBecameSingletonOrDeck._onInsertedHandler);
70
+ deck.onInserted.add(OnCardBecameSingletonOrDeck._onInsertedHandler);
71
+ OnCardBecameSingletonOrDeck.onSingletonCardCreated.trigger(deck);
72
+ }
73
+ });
48
74
  };
49
75
  OnCardBecameSingletonOrDeck._onCreatedHandler = (obj) => {
50
76
  if (!(obj instanceof api_1.Card)) {
@@ -52,12 +78,16 @@ OnCardBecameSingletonOrDeck._onCreatedHandler = (obj) => {
52
78
  }
53
79
  // Strange things happen when making a deck. Wait a frame then see.
54
80
  process.nextTick(() => {
81
+ if (!obj.isValid()) {
82
+ return;
83
+ }
55
84
  if (obj.getStackSize() > 1) {
56
85
  // deck
57
86
  obj.onRemoved.remove(OnCardBecameSingletonOrDeck._onRemovedHandler);
58
87
  obj.onRemoved.add(OnCardBecameSingletonOrDeck._onRemovedHandler);
88
+ OnCardBecameSingletonOrDeck.onSingletonCardMadeDeck.trigger(obj);
59
89
  }
60
- else {
90
+ else if (obj.getStackSize() === 1) {
61
91
  // singleton card
62
92
  obj.onInserted.remove(OnCardBecameSingletonOrDeck._onInsertedHandler);
63
93
  obj.onInserted.add(OnCardBecameSingletonOrDeck._onInsertedHandler);
@@ -65,4 +95,17 @@ OnCardBecameSingletonOrDeck._onCreatedHandler = (obj) => {
65
95
  }
66
96
  });
67
97
  };
98
+ /*
99
+
100
+ OnCardBecameSingletonOrDeck.onSingletonCardCreated.add((card: Card) => {
101
+ const nsid: string = NSID.get(card);
102
+ console.log(`onSingletonCardCreated: [${nsid}]`);
103
+ });
104
+
105
+ OnCardBecameSingletonOrDeck.onSingletonCardMadeDeck.add((card: Card) => {
106
+ const nsids: string[] = NSID.getDeck(card);
107
+ console.log(`onSingletonCardMadeDeck: [${nsids.join(", ")}]`);
108
+ });
109
+
110
+ */
68
111
  //# sourceMappingURL=on-card-became-singleton-or-deck.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"on-card-became-singleton-or-deck.js","sourceRoot":"","sources":["../../../src/event/on-card-became-singleton-or-deck.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;;AAEH,kDAKkC;AAClC,qHAAgH;AAGhH,MAAa,2BAA2B;IAyEpC,IAAI;QACA,kBAAY,CAAC,eAAe,CAAC,GAAG,CAC5B,2BAA2B,CAAC,iBAAiB,CAChD,CAAC;IACN,CAAC;IAED,MAAM;QACF,kBAAY,CAAC,eAAe,CAAC,MAAM,CAC/B,2BAA2B,CAAC,iBAAiB,CAChD,CAAC;IACN,CAAC;;AAnFL,kEAoFC;AAnF0B,kDAAsB,GACzC,IAAI,6DAA4B,EAAwB,CAAC;AACtC,mDAAuB,GAC1C,IAAI,6DAA4B,EAAwB,CAAC;AAErC,8CAAkB,GAAG,CACzC,IAAU,EACV,YAAkB,EAClB,QAAgB,EAChB,MAAe,EACjB,EAAE;IACA,uEAAuE;IACvE,kEAAkE;IAClE,mDAAmD;IACnD,IAAI,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,EAAE,CAAC;QAC1B,IAAI,CAAC,UAAU,CAAC,MAAM,CAClB,2BAA2B,CAAC,kBAAkB,CACjD,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,MAAM,CACjB,2BAA2B,CAAC,iBAAiB,CAChD,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,2BAA2B,CAAC,iBAAiB,CAAC,CAAC;QAClE,2BAA2B,CAAC,uBAAuB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACtE,CAAC;AACL,CAAC,CAAC;AAEK,6CAAiB,GAAG,CACvB,IAAU,EACV,WAAiB,EACjB,QAAgB,EAChB,MAAe,EACjB,EAAE;IACA,gCAAgC;IAChC,IAAI,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC;QAC5B,IAAI,CAAC,SAAS,CAAC,MAAM,CACjB,2BAA2B,CAAC,iBAAiB,CAChD,CAAC;QACF,IAAI,CAAC,UAAU,CAAC,MAAM,CAClB,2BAA2B,CAAC,kBAAkB,CACjD,CAAC;QACF,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,2BAA2B,CAAC,kBAAkB,CAAC,CAAC;QACpE,2BAA2B,CAAC,sBAAsB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACrE,CAAC;AACL,CAAC,CAAC;AAEK,6CAAiB,GAAG,CAAC,GAAe,EAAE,EAAE;IAC3C,IAAI,CAAC,CAAC,GAAG,YAAY,UAAI,CAAC,EAAE,CAAC;QACzB,OAAO;IACX,CAAC;IACD,oEAAoE;IACpE,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE;QAClB,IAAI,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,EAAE,CAAC;YACzB,OAAO;YACP,GAAG,CAAC,SAAS,CAAC,MAAM,CAChB,2BAA2B,CAAC,iBAAiB,CAChD,CAAC;YACF,GAAG,CAAC,SAAS,CAAC,GAAG,CACb,2BAA2B,CAAC,iBAAiB,CAChD,CAAC;QACN,CAAC;aAAM,CAAC;YACJ,iBAAiB;YACjB,GAAG,CAAC,UAAU,CAAC,MAAM,CACjB,2BAA2B,CAAC,kBAAkB,CACjD,CAAC;YACF,GAAG,CAAC,UAAU,CAAC,GAAG,CACd,2BAA2B,CAAC,kBAAkB,CACjD,CAAC;YACF,2BAA2B,CAAC,sBAAsB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACpE,CAAC;IACL,CAAC,CAAC,CAAC;AACP,CAAC,CAAC"}
1
+ {"version":3,"file":"on-card-became-singleton-or-deck.js","sourceRoot":"","sources":["../../../src/event/on-card-became-singleton-or-deck.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  export * from "./error-handler/error-handler";
2
+ export * from "./event/on-card-became-singleton-or-deck";
2
3
  export * from "./facing/facing";
3
4
  export * from "./garbage/garbage-container";
4
5
  export * from "./garbage/simple-card-garbage-handler";
@@ -15,6 +15,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./error-handler/error-handler"), exports);
18
+ __exportStar(require("./event/on-card-became-singleton-or-deck"), exports);
18
19
  __exportStar(require("./facing/facing"), exports);
19
20
  __exportStar(require("./garbage/garbage-container"), exports);
20
21
  __exportStar(require("./garbage/simple-card-garbage-handler"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gEAA8C;AAC9C,kDAAgC;AAChC,8DAA4C;AAC5C,wEAAsD;AACtD,wEAAsD;AACtD,yEAAuD;AACvD,2DAAyC;AACzC,mEAAiD;AACjD,kDAAgC;AAChC,8CAA4B;AAC5B,yDAAuC;AACvC,gEAA8C;AAC9C,sDAAoC;AACpC,oDAAkC;AAClC,kGAAgF;AAChF,0FAAwE;AACxE,gEAA8C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gEAA8C;AAC9C,2EAAyD;AACzD,kDAAgC;AAChC,8DAA4C;AAC5C,wEAAsD;AACtD,wEAAsD;AACtD,yEAAuD;AACvD,2DAAyC;AACzC,mEAAiD;AACjD,kDAAgC;AAChC,8CAA4B;AAC5B,yDAAuC;AACvC,gEAA8C;AAC9C,sDAAoC;AACpC,oDAAkC;AAClC,kGAAgF;AAChF,0FAAwE;AACxE,gEAA8C"}
@@ -9,13 +9,16 @@
9
9
  *
10
10
  * Scripts may wish to offer content menu items for singleton cards, but
11
11
  * not when they become a deck (or vice versa).
12
+ *
13
+ * If one adds a listener during global init, it will be called next frame with
14
+ * with in-game singleton cards and decks.
12
15
  */
13
16
  import { Card, GameObject, Player } from "@tabletop-playground/api";
14
17
  import { TriggerableMulticastDelegate } from "../triggerable-multicast-delegate/triggerable-multicast-delegate";
15
18
  import { AbstractGlobal } from "../global/abstract-global";
16
19
  export declare class OnCardBecameSingletonOrDeck implements AbstractGlobal {
17
20
  static readonly onSingletonCardCreated: TriggerableMulticastDelegate<(card: Card) => void>;
18
- static readonly onSingletonCardMadeDeck: TriggerableMulticastDelegate<(card: Card) => void>;
21
+ static readonly onSingletonCardMadeDeck: TriggerableMulticastDelegate<(card: Card, oldNsid: string) => void>;
19
22
  private static readonly _onInsertedHandler;
20
23
  static _onRemovedHandler: (deck: Card, removedCard: Card, position: number, player?: Player) => void;
21
24
  static _onCreatedHandler: (obj: GameObject) => void;
@@ -9,12 +9,20 @@
9
9
  *
10
10
  * Scripts may wish to offer content menu items for singleton cards, but
11
11
  * not when they become a deck (or vice versa).
12
+ *
13
+ * If one adds a listener during global init, it will be called next frame with
14
+ * with in-game singleton cards and decks.
12
15
  */
13
- import { Card, globalEvents, } from "@tabletop-playground/api";
16
+ import { Card, globalEvents, world, } from "@tabletop-playground/api";
14
17
  import { TriggerableMulticastDelegate } from "../triggerable-multicast-delegate/triggerable-multicast-delegate";
18
+ import { NSID } from "../nsid/nsid";
15
19
  export class OnCardBecameSingletonOrDeck {
16
20
  init() {
17
21
  globalEvents.onObjectCreated.add(OnCardBecameSingletonOrDeck._onCreatedHandler);
22
+ const skipContained = false;
23
+ for (const obj of world.getAllObjects(skipContained)) {
24
+ OnCardBecameSingletonOrDeck._onCreatedHandler(obj);
25
+ }
18
26
  }
19
27
  _reset() {
20
28
  globalEvents.onObjectCreated.remove(OnCardBecameSingletonOrDeck._onCreatedHandler);
@@ -22,25 +30,43 @@ export class OnCardBecameSingletonOrDeck {
22
30
  }
23
31
  OnCardBecameSingletonOrDeck.onSingletonCardCreated = new TriggerableMulticastDelegate();
24
32
  OnCardBecameSingletonOrDeck.onSingletonCardMadeDeck = new TriggerableMulticastDelegate();
25
- OnCardBecameSingletonOrDeck._onInsertedHandler = (deck, insertedCard, position, player) => {
33
+ OnCardBecameSingletonOrDeck._onInsertedHandler = (deck,
34
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
35
+ insertedCard,
36
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
37
+ position,
38
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
39
+ player) => {
26
40
  // This handler is only installed on singleton cards, and other card(s)
27
41
  // have already been added to deck before calling this. So remove
28
42
  // this handler, and signal the card is now a deck.
29
- if (deck.getStackSize() > 1) {
30
- deck.onInserted.remove(OnCardBecameSingletonOrDeck._onInsertedHandler);
31
- deck.onRemoved.remove(OnCardBecameSingletonOrDeck._onRemovedHandler);
32
- deck.onRemoved.add(OnCardBecameSingletonOrDeck._onRemovedHandler);
33
- OnCardBecameSingletonOrDeck.onSingletonCardMadeDeck.trigger(deck);
34
- }
43
+ const oldNsid = NSID.get(deck);
44
+ process.nextTick(() => {
45
+ if (deck.isValid() && deck.getStackSize() > 1) {
46
+ deck.onInserted.remove(OnCardBecameSingletonOrDeck._onInsertedHandler);
47
+ deck.onRemoved.remove(OnCardBecameSingletonOrDeck._onRemovedHandler);
48
+ deck.onRemoved.add(OnCardBecameSingletonOrDeck._onRemovedHandler);
49
+ OnCardBecameSingletonOrDeck.onSingletonCardMadeDeck.trigger(deck, oldNsid);
50
+ }
51
+ });
35
52
  };
36
- OnCardBecameSingletonOrDeck._onRemovedHandler = (deck, removedCard, position, player) => {
53
+ OnCardBecameSingletonOrDeck._onRemovedHandler = (deck,
54
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
55
+ removedCard,
56
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
57
+ position,
58
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
59
+ player) => {
37
60
  // Called after card is removed.
38
- if (deck.getStackSize() === 1) {
39
- deck.onRemoved.remove(OnCardBecameSingletonOrDeck._onRemovedHandler);
40
- deck.onInserted.remove(OnCardBecameSingletonOrDeck._onInsertedHandler);
41
- deck.onInserted.add(OnCardBecameSingletonOrDeck._onInsertedHandler);
42
- OnCardBecameSingletonOrDeck.onSingletonCardCreated.trigger(deck);
43
- }
61
+ // Removed card get seen by the onCreated handler.
62
+ process.nextTick(() => {
63
+ if (deck.getStackSize() === 1) {
64
+ deck.onRemoved.remove(OnCardBecameSingletonOrDeck._onRemovedHandler);
65
+ deck.onInserted.remove(OnCardBecameSingletonOrDeck._onInsertedHandler);
66
+ deck.onInserted.add(OnCardBecameSingletonOrDeck._onInsertedHandler);
67
+ OnCardBecameSingletonOrDeck.onSingletonCardCreated.trigger(deck);
68
+ }
69
+ });
44
70
  };
45
71
  OnCardBecameSingletonOrDeck._onCreatedHandler = (obj) => {
46
72
  if (!(obj instanceof Card)) {
@@ -48,12 +74,16 @@ OnCardBecameSingletonOrDeck._onCreatedHandler = (obj) => {
48
74
  }
49
75
  // Strange things happen when making a deck. Wait a frame then see.
50
76
  process.nextTick(() => {
77
+ if (!obj.isValid()) {
78
+ return;
79
+ }
51
80
  if (obj.getStackSize() > 1) {
52
81
  // deck
53
82
  obj.onRemoved.remove(OnCardBecameSingletonOrDeck._onRemovedHandler);
54
83
  obj.onRemoved.add(OnCardBecameSingletonOrDeck._onRemovedHandler);
84
+ OnCardBecameSingletonOrDeck.onSingletonCardMadeDeck.trigger(obj);
55
85
  }
56
- else {
86
+ else if (obj.getStackSize() === 1) {
57
87
  // singleton card
58
88
  obj.onInserted.remove(OnCardBecameSingletonOrDeck._onInsertedHandler);
59
89
  obj.onInserted.add(OnCardBecameSingletonOrDeck._onInsertedHandler);
@@ -61,4 +91,17 @@ OnCardBecameSingletonOrDeck._onCreatedHandler = (obj) => {
61
91
  }
62
92
  });
63
93
  };
94
+ /*
95
+
96
+ OnCardBecameSingletonOrDeck.onSingletonCardCreated.add((card: Card) => {
97
+ const nsid: string = NSID.get(card);
98
+ console.log(`onSingletonCardCreated: [${nsid}]`);
99
+ });
100
+
101
+ OnCardBecameSingletonOrDeck.onSingletonCardMadeDeck.add((card: Card) => {
102
+ const nsids: string[] = NSID.getDeck(card);
103
+ console.log(`onSingletonCardMadeDeck: [${nsids.join(", ")}]`);
104
+ });
105
+
106
+ */
64
107
  //# sourceMappingURL=on-card-became-singleton-or-deck.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"on-card-became-singleton-or-deck.js","sourceRoot":"","sources":["../../../src/event/on-card-became-singleton-or-deck.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EACH,IAAI,EAGJ,YAAY,GACf,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,4BAA4B,EAAE,MAAM,kEAAkE,CAAC;AAGhH,MAAM,OAAO,2BAA2B;IAyEpC,IAAI;QACA,YAAY,CAAC,eAAe,CAAC,GAAG,CAC5B,2BAA2B,CAAC,iBAAiB,CAChD,CAAC;IACN,CAAC;IAED,MAAM;QACF,YAAY,CAAC,eAAe,CAAC,MAAM,CAC/B,2BAA2B,CAAC,iBAAiB,CAChD,CAAC;IACN,CAAC;;AAlFsB,kDAAsB,GACzC,IAAI,4BAA4B,EAAwB,CAAC;AACtC,mDAAuB,GAC1C,IAAI,4BAA4B,EAAwB,CAAC;AAErC,8CAAkB,GAAG,CACzC,IAAU,EACV,YAAkB,EAClB,QAAgB,EAChB,MAAe,EACjB,EAAE;IACA,uEAAuE;IACvE,kEAAkE;IAClE,mDAAmD;IACnD,IAAI,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,EAAE,CAAC;QAC1B,IAAI,CAAC,UAAU,CAAC,MAAM,CAClB,2BAA2B,CAAC,kBAAkB,CACjD,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,MAAM,CACjB,2BAA2B,CAAC,iBAAiB,CAChD,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,2BAA2B,CAAC,iBAAiB,CAAC,CAAC;QAClE,2BAA2B,CAAC,uBAAuB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACtE,CAAC;AACL,CAAC,CAAC;AAEK,6CAAiB,GAAG,CACvB,IAAU,EACV,WAAiB,EACjB,QAAgB,EAChB,MAAe,EACjB,EAAE;IACA,gCAAgC;IAChC,IAAI,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC;QAC5B,IAAI,CAAC,SAAS,CAAC,MAAM,CACjB,2BAA2B,CAAC,iBAAiB,CAChD,CAAC;QACF,IAAI,CAAC,UAAU,CAAC,MAAM,CAClB,2BAA2B,CAAC,kBAAkB,CACjD,CAAC;QACF,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,2BAA2B,CAAC,kBAAkB,CAAC,CAAC;QACpE,2BAA2B,CAAC,sBAAsB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACrE,CAAC;AACL,CAAC,CAAC;AAEK,6CAAiB,GAAG,CAAC,GAAe,EAAE,EAAE;IAC3C,IAAI,CAAC,CAAC,GAAG,YAAY,IAAI,CAAC,EAAE,CAAC;QACzB,OAAO;IACX,CAAC;IACD,oEAAoE;IACpE,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE;QAClB,IAAI,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,EAAE,CAAC;YACzB,OAAO;YACP,GAAG,CAAC,SAAS,CAAC,MAAM,CAChB,2BAA2B,CAAC,iBAAiB,CAChD,CAAC;YACF,GAAG,CAAC,SAAS,CAAC,GAAG,CACb,2BAA2B,CAAC,iBAAiB,CAChD,CAAC;QACN,CAAC;aAAM,CAAC;YACJ,iBAAiB;YACjB,GAAG,CAAC,UAAU,CAAC,MAAM,CACjB,2BAA2B,CAAC,kBAAkB,CACjD,CAAC;YACF,GAAG,CAAC,UAAU,CAAC,GAAG,CACd,2BAA2B,CAAC,kBAAkB,CACjD,CAAC;YACF,2BAA2B,CAAC,sBAAsB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACpE,CAAC;IACL,CAAC,CAAC,CAAC;AACP,CAAC,CAAC"}
1
+ {"version":3,"file":"on-card-became-singleton-or-deck.js","sourceRoot":"","sources":["../../../src/event/on-card-became-singleton-or-deck.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  export * from "./error-handler/error-handler";
2
+ export * from "./event/on-card-became-singleton-or-deck";
2
3
  export * from "./facing/facing";
3
4
  export * from "./garbage/garbage-container";
4
5
  export * from "./garbage/simple-card-garbage-handler";
@@ -1,4 +1,5 @@
1
1
  export * from "./error-handler/error-handler";
2
+ export * from "./event/on-card-became-singleton-or-deck";
2
3
  export * from "./facing/facing";
3
4
  export * from "./garbage/garbage-container";
4
5
  export * from "./garbage/simple-card-garbage-handler";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iBAAiB,CAAC;AAChC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uCAAuC,CAAC;AACtD,cAAc,uCAAuC,CAAC;AACtD,cAAc,wCAAwC,CAAC;AACvD,cAAc,0BAA0B,CAAC;AACzC,cAAc,kCAAkC,CAAC;AACjD,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iEAAiE,CAAC;AAChF,cAAc,yDAAyD,CAAC;AACxE,cAAc,+BAA+B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0CAA0C,CAAC;AACzD,cAAc,iBAAiB,CAAC;AAChC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uCAAuC,CAAC;AACtD,cAAc,uCAAuC,CAAC;AACtD,cAAc,wCAAwC,CAAC;AACvD,cAAc,0BAA0B,CAAC;AACzC,cAAc,kCAAkC,CAAC;AACjD,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iEAAiE,CAAC;AAChF,cAAc,yDAAyD,CAAC;AACxE,cAAc,+BAA+B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ttpg-darrell",
3
- "version": "1.0.25",
3
+ "version": "1.0.26",
4
4
  "description": "TTPG TypeScript library",
5
5
  "main": "./build/cjs/index.js",
6
6
  "module": "./build/esm/index.js",