valtech-components 4.0.937 → 4.0.939

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 (60) hide show
  1. package/esm2022/lib/components/molecules/group-picker/group-picker.component.mjs +97 -0
  2. package/esm2022/lib/components/organisms/group-members/group-members.component.mjs +178 -0
  3. package/esm2022/lib/components/organisms/mini-games/mini-games.i18n.mjs +1 -381
  4. package/esm2022/lib/components/organisms/mini-games/types.mjs +1 -1
  5. package/esm2022/lib/services/groups/groups.service.mjs +92 -0
  6. package/esm2022/lib/services/groups/types.mjs +2 -0
  7. package/esm2022/lib/version.mjs +2 -2
  8. package/esm2022/public-api.mjs +4 -3
  9. package/fesm2022/valtech-components.mjs +641 -7612
  10. package/fesm2022/valtech-components.mjs.map +1 -1
  11. package/lib/components/molecules/group-picker/group-picker.component.d.ts +28 -0
  12. package/lib/components/organisms/group-members/group-members.component.d.ts +43 -0
  13. package/lib/components/organisms/mini-games/types.d.ts +0 -182
  14. package/lib/services/groups/groups.service.d.ts +39 -0
  15. package/lib/services/groups/types.d.ts +69 -0
  16. package/lib/version.d.ts +1 -1
  17. package/package.json +1 -1
  18. package/public-api.d.ts +4 -2
  19. package/src/lib/assets/games/README.md +8 -0
  20. package/esm2022/lib/components/organisms/mini-games/christianity-bot.mjs +0 -94
  21. package/esm2022/lib/components/organisms/mini-games/christianity-card.component.mjs +0 -503
  22. package/esm2022/lib/components/organisms/mini-games/christianity-catalog.mjs +0 -247
  23. package/esm2022/lib/components/organisms/mini-games/christianity-game.component.mjs +0 -4580
  24. package/esm2022/lib/components/organisms/mini-games/christianity-rules.mjs +0 -1383
  25. package/esm2022/lib/components/organisms/mini-games/christianity-tutorial.mjs +0 -152
  26. package/lib/components/organisms/mini-games/christianity-bot.d.ts +0 -15
  27. package/lib/components/organisms/mini-games/christianity-card.component.d.ts +0 -55
  28. package/lib/components/organisms/mini-games/christianity-catalog.d.ts +0 -18
  29. package/lib/components/organisms/mini-games/christianity-game.component.d.ts +0 -395
  30. package/lib/components/organisms/mini-games/christianity-rules.d.ts +0 -57
  31. package/lib/components/organisms/mini-games/christianity-tutorial.d.ts +0 -38
  32. package/src/lib/assets/games/christianity/card-symbol.svg +0 -51
  33. package/src/lib/assets/games/christianity/card-template-reference/front.html +0 -114
  34. package/src/lib/assets/games/christianity/card-template-reference/front.style.css +0 -352
  35. package/src/lib/assets/games/christianity/data/01-genesis.bible-reference-suggestions.csv +0 -191
  36. package/src/lib/assets/games/christianity/data/01-genesis.bible-verses.nbv-open.csv +0 -170
  37. package/src/lib/assets/games/christianity/data/01-genesis.cards.csv +0 -281
  38. package/src/lib/assets/games/christianity/data/01-genesis.cards.i18n.csv +0 -281
  39. package/src/lib/assets/games/christianity/data/01-genesis.cards.json +0 -16453
  40. package/src/lib/assets/games/christianity/data/01-genesis.unassigned-effects.csv +0 -49
  41. package/src/lib/assets/games/christianity/data/README.md +0 -40
  42. package/src/lib/assets/games/christianity/data/data-con-habilides.csv +0 -273
  43. package/src/lib/assets/games/christianity/data/habilidades-por-tipo.xlsx +0 -0
  44. package/src/lib/assets/games/christianity/data/listado-edicion.csv +0 -281
  45. package/src/lib/assets/games/christianity/editions/1/cards/.gitkeep +0 -1
  46. package/src/lib/assets/games/christianity/editions/1/cards/PLACEHOLDER.png +0 -0
  47. package/src/lib/assets/games/christianity/editions/README.md +0 -34
  48. package/src/lib/assets/games/christianity/icons/1-icon.png +0 -0
  49. package/src/lib/assets/games/christianity/icons/action.png +0 -0
  50. package/src/lib/assets/games/christianity/icons/character.png +0 -0
  51. package/src/lib/assets/games/christianity/icons/event.png +0 -0
  52. package/src/lib/assets/games/christianity/icons/leader.png +0 -0
  53. package/src/lib/assets/games/christianity/icons/offering.png +0 -0
  54. package/src/lib/assets/games/christianity/icons/place.png +0 -0
  55. package/src/lib/assets/games/christianity/icons/tool.png +0 -0
  56. package/src/lib/assets/games/christianity/icons/wisdom.png +0 -0
  57. package/src/lib/assets/games/christianity/sources/README.md +0 -16
  58. package/src/lib/assets/games/christianity/sources/spaonbv_vpl.txt +0 -29102
  59. package/src/lib/assets/games/christianity/sources/spaonbv_vpl.xml +0 -29104
  60. package/src/lib/assets/games/christianity/spaonbv.txt +0 -52
@@ -1,395 +0,0 @@
1
- import { CdkDrag, CdkDragDrop } from '@angular/cdk/drag-drop';
2
- import { ChristianityCardRenderModel } from './christianity-card.component';
3
- import { MiniGameCalloutMetadata } from './mini-game-callout.component';
4
- import { MiniGameScorePopMetadata } from './mini-game-score-pop.component';
5
- import { ChristianityCardDefinition, ChristianityCardType, ChristianityCharacterInstance, ChristianityGameState, ChristianityOfferingInstance, ChristianityPlayerState, ChristianitySeat } from './types';
6
- import { ChristianityTutorialSetup } from './christianity-tutorial';
7
- import * as i0 from "@angular/core";
8
- interface ChristianityCardPreview {
9
- title: string;
10
- eyebrow: string;
11
- meta: string;
12
- body: string;
13
- cardId?: string;
14
- source?: 'hand' | 'board' | 'pile' | 'history' | 'offerings' | 'place' | 'gallery' | 'leader-choice';
15
- seat?: ChristianitySeat;
16
- offeringInstanceId?: string;
17
- }
18
- interface ChristianityInfoPanel {
19
- title: string;
20
- eyebrow: string;
21
- meta: string;
22
- body: string;
23
- facts: string[];
24
- steps?: Array<{
25
- title: string;
26
- body: string;
27
- }>;
28
- cta?: string;
29
- }
30
- interface ChristianityPreviewRule {
31
- title: string;
32
- body: string;
33
- }
34
- interface ChristianityPreviewAbility {
35
- index: number;
36
- title: string;
37
- body: string;
38
- canUse: boolean;
39
- }
40
- interface ChristianityPreviewTilt {
41
- rotateX: number;
42
- rotateY: number;
43
- shiftX: number;
44
- shiftY: number;
45
- }
46
- interface ChristianityImpactEvent {
47
- id: number;
48
- text: string;
49
- tone: 'damage' | 'heal' | 'resource';
50
- seat: ChristianitySeat;
51
- target: 'leader' | 'battle' | 'offerings';
52
- }
53
- interface ChristianityCombatTrail {
54
- fromX: string;
55
- fromY: string;
56
- midX: string;
57
- midY: string;
58
- length: string;
59
- angle: string;
60
- tone: 'attack' | 'leader' | 'character';
61
- }
62
- interface ChristianityCombatAnimation {
63
- attackerInstanceId: string;
64
- attackerSeat: ChristianitySeat;
65
- targetInstanceId?: string;
66
- targetSeat: ChristianitySeat;
67
- target: 'leader' | 'character';
68
- }
69
- type ChristianityGalleryTypeFilter = 'all' | ChristianityCardType;
70
- type ChristianityScreen = 'splash' | 'home' | 'table';
71
- type ChristianityCatalogLoadState = 'loading' | 'ready' | 'fallback';
72
- type ChristianityTutorialPhase = 'coin' | 'leader_pick' | 'in_progress' | 'finished';
73
- export declare class ChristianityGameComponent {
74
- private i18n;
75
- private readonly document;
76
- private readonly destroyRef;
77
- private readonly bootStartedAt;
78
- private botTurnTimer;
79
- private impactEventSequence;
80
- private readonly impactTimers;
81
- private combatResolutionTimer;
82
- private combatClearTimer;
83
- private combatTrailClearTimer;
84
- private leaderChoiceTimer;
85
- protected readonly game: import("@angular/core").WritableSignal<ChristianityGameState>;
86
- protected readonly screen: import("@angular/core").WritableSignal<ChristianityScreen>;
87
- protected readonly tutorialPhase: import("@angular/core").WritableSignal<ChristianityTutorialPhase>;
88
- protected readonly tutorialSetup: import("@angular/core").WritableSignal<ChristianityTutorialSetup>;
89
- protected readonly selectedTutorialLeaderId: import("@angular/core").WritableSignal<string>;
90
- protected readonly leaderChoiceSeconds: import("@angular/core").WritableSignal<number>;
91
- protected readonly showOptions: import("@angular/core").WritableSignal<boolean>;
92
- protected readonly catalogLoadState: import("@angular/core").WritableSignal<ChristianityCatalogLoadState>;
93
- protected readonly selectedHandCard: import("@angular/core").WritableSignal<string>;
94
- protected readonly selectedAttacker: import("@angular/core").WritableSignal<ChristianityCharacterInstance>;
95
- protected readonly selectedPreview: import("@angular/core").WritableSignal<ChristianityCardPreview>;
96
- protected readonly selectedInfo: import("@angular/core").WritableSignal<ChristianityInfoPanel>;
97
- protected readonly previewTilt: import("@angular/core").WritableSignal<ChristianityPreviewTilt>;
98
- protected readonly selectedPreviewAbilityIndex: import("@angular/core").WritableSignal<number>;
99
- protected readonly previewSlideDirection: import("@angular/core").WritableSignal<0 | 1 | -1>;
100
- private previewSwipeStart;
101
- protected readonly hoveredHandIndex: import("@angular/core").WritableSignal<number>;
102
- protected readonly draggingCardId: import("@angular/core").WritableSignal<string>;
103
- protected readonly draggingAttackerInstanceId: import("@angular/core").WritableSignal<string>;
104
- protected readonly historyPulse: import("@angular/core").WritableSignal<boolean>;
105
- protected readonly showHistory: import("@angular/core").WritableSignal<boolean>;
106
- protected readonly showPlace: import("@angular/core").WritableSignal<boolean>;
107
- protected readonly showGallery: import("@angular/core").WritableSignal<boolean>;
108
- protected readonly offeringsSeat: import("@angular/core").WritableSignal<ChristianitySeat>;
109
- protected readonly impactEvents: import("@angular/core").WritableSignal<ChristianityImpactEvent[]>;
110
- protected readonly combatAnimation: import("@angular/core").WritableSignal<ChristianityCombatAnimation>;
111
- protected readonly combatTrail: import("@angular/core").WritableSignal<ChristianityCombatTrail>;
112
- protected readonly dyingCharacters: import("@angular/core").WritableSignal<{
113
- seat: ChristianitySeat;
114
- card: ChristianityCharacterInstance;
115
- }[]>;
116
- protected readonly flashingCardIds: import("@angular/core").WritableSignal<Set<string>>;
117
- private readonly dyingCharacterTimers;
118
- private readonly flashTimers;
119
- private botAttackTimer;
120
- protected readonly cardCatalog: import("@angular/core").WritableSignal<Record<string, ChristianityCardDefinition>>;
121
- protected readonly allCatalogCards: import("@angular/core").WritableSignal<ChristianityCardDefinition[]>;
122
- protected readonly catalogLoaded: import("@angular/core").WritableSignal<boolean>;
123
- protected readonly gallerySearch: import("@angular/core").WritableSignal<string>;
124
- protected readonly galleryType: import("@angular/core").WritableSignal<ChristianityGalleryTypeFilter>;
125
- protected readonly leaderChoiceTotalSeconds = 15;
126
- protected readonly canDropOnBattleSlot: (drag: CdkDrag<string>) => boolean;
127
- protected readonly canDropOnOfferings: (drag: CdkDrag<string>) => boolean;
128
- protected readonly canDropOnPlace: (drag: CdkDrag<string>) => boolean;
129
- protected readonly canDropOnOpponentCharacter: (drag: CdkDrag<string>) => boolean;
130
- protected readonly canDropOnOpponentLeader: (drag: CdkDrag<string>) => boolean;
131
- protected readonly player: import("@angular/core").Signal<ChristianityPlayerState>;
132
- protected readonly opponent: import("@angular/core").Signal<ChristianityPlayerState>;
133
- protected readonly groupedHand: import("@angular/core").Signal<{
134
- cardId: string;
135
- count: number;
136
- }[]>;
137
- protected readonly currentPlayer: import("@angular/core").Signal<ChristianityPlayerState>;
138
- protected readonly isOwnTurn: import("@angular/core").Signal<boolean>;
139
- protected readonly turnBannerTitle: import("@angular/core").Signal<string>;
140
- protected readonly turnBannerBody: import("@angular/core").Signal<string>;
141
- protected readonly resultTitle: import("@angular/core").Signal<string>;
142
- protected readonly resultBody: import("@angular/core").Signal<string>;
143
- protected readonly setupTitle: import("@angular/core").Signal<string>;
144
- protected readonly setupBody: import("@angular/core").Signal<string>;
145
- protected readonly winnerSeat: import("@angular/core").Signal<ChristianitySeat>;
146
- protected readonly hasOpponentGuards: import("@angular/core").Signal<boolean>;
147
- protected readonly opponentHandCount: import("@angular/core").Signal<number>;
148
- protected readonly galleryCards: import("@angular/core").Signal<ChristianityCardDefinition[]>;
149
- protected readonly galleryEditionLabel: import("@angular/core").Signal<string>;
150
- protected readonly galleryEditionIcon: import("@angular/core").Signal<string>;
151
- protected readonly galleryTypeOptions: import("@angular/core").Signal<{
152
- value: ChristianityGalleryTypeFilter;
153
- label: string;
154
- }[]>;
155
- protected readonly hasModalOverlay: import("@angular/core").Signal<boolean>;
156
- protected readonly previewCarouselItems: import("@angular/core").Signal<({
157
- kind: 'history';
158
- cardId: string;
159
- } | {
160
- kind: 'hand';
161
- cardId: string;
162
- } | {
163
- kind: 'place';
164
- cardId: string;
165
- } | {
166
- kind: 'offering';
167
- offering: ChristianityOfferingInstance;
168
- } | {
169
- kind: 'gallery';
170
- cardId: string;
171
- } | {
172
- kind: 'leader-choice';
173
- cardId: string;
174
- })[]>;
175
- protected readonly canNavigatePreview: import("@angular/core").Signal<boolean>;
176
- protected readonly previewPositionLabel: import("@angular/core").Signal<string>;
177
- protected readonly previewAbilities: import("@angular/core").Signal<ChristianityPreviewAbility[]>;
178
- protected readonly showPreviewAbilityTabs: import("@angular/core").Signal<boolean>;
179
- protected readonly showPreviewAbilities: import("@angular/core").Signal<boolean>;
180
- protected readonly canNavigatePreviewAbilities: import("@angular/core").Signal<boolean>;
181
- protected readonly selectedPreviewAbilityPositionLabel: import("@angular/core").Signal<string>;
182
- protected readonly selectedPreviewAbility: import("@angular/core").Signal<ChristianityPreviewAbility>;
183
- private isPreviewAbilityPlaceholder;
184
- protected readonly combatCallout: import("@angular/core").Signal<MiniGameCalloutMetadata>;
185
- protected readonly splashStatusText: import("@angular/core").Signal<string>;
186
- protected readonly startFeaturedCards: import("@angular/core").Signal<ChristianityCardDefinition[]>;
187
- protected readonly futureModes: import("@angular/core").Signal<{
188
- title: string;
189
- body: string;
190
- }[]>;
191
- protected readonly selectedCardDefinition: import("@angular/core").Signal<ChristianityCardDefinition>;
192
- protected readonly selectedPreviewCard: import("@angular/core").Signal<ChristianityCardDefinition>;
193
- protected readonly selectedPreviewBibleCredit: import("@angular/core").Signal<string>;
194
- protected readonly selectedPreviewRenderCard: import("@angular/core").Signal<ChristianityCardRenderModel>;
195
- protected selectedPreviewNeighborRenderCard(direction: -1 | 1): ChristianityCardRenderModel | null;
196
- protected readonly previewRule: import("@angular/core").Signal<ChristianityPreviewRule>;
197
- protected readonly statusText: import("@angular/core").Signal<string>;
198
- constructor();
199
- protected t(key: string): string;
200
- private loadGenesisCatalog;
201
- private finishSplash;
202
- private normalizeCatalogCard;
203
- private formatScripture;
204
- private createTutorialGame;
205
- private createTutorialPlayer;
206
- private createOfferingInstance;
207
- private createCharacterInstance;
208
- private findCard;
209
- private cardById;
210
- private tutorialLeaderCards;
211
- private shuffleCards;
212
- private prepareTutorialOpeningDeck;
213
- private cardSortKey;
214
- private isClassicGalleryCard;
215
- protected cardDefinition(cardId: string): ChristianityCardDefinition;
216
- private translatedCardText;
217
- protected cardDisplayName(cardId: string): string;
218
- protected playerLeaderDisplayName(player: ChristianityPlayerState): string;
219
- protected catalogStatusLabel(): string;
220
- protected startFeaturedCardTransform(index: number): string;
221
- protected cardTypeLabel(card: ChristianityCardDefinition): string;
222
- protected definitionToRenderCard(card: ChristianityCardDefinition, overrides?: Partial<ChristianityCardRenderModel>): ChristianityCardRenderModel;
223
- protected placeBackdropImage(card: ChristianityCardDefinition): string;
224
- protected hiddenCardRenderCard(): ChristianityCardRenderModel;
225
- private bibleCreditForCard;
226
- private defaultCardBody;
227
- protected characterRenderCard(card: ChristianityCharacterInstance): ChristianityCardRenderModel;
228
- protected leaderRenderCard(player: ChristianityPlayerState): ChristianityCardRenderModel;
229
- protected offeringRenderCard(offering: ChristianityOfferingInstance): ChristianityCardRenderModel;
230
- private previewRenderType;
231
- protected cardTypeIconUrl(card: ChristianityCardDefinition): string;
232
- protected previewTypeIconUrl(): string;
233
- protected cardTypeIconUrlForType(type: string): string;
234
- protected offeringPips(value: number | string | undefined): unknown[];
235
- protected battleSlots(seat: ChristianitySeat): Array<{
236
- trackId: string;
237
- card?: ChristianityCharacterInstance;
238
- }>;
239
- protected battleSlotDropId(index: number): string;
240
- protected dropTargetIds(): string[];
241
- protected ownAttackerDropSourceIds(): string[];
242
- protected attackTargetDropIds(): string[];
243
- protected opponentTargetDropId(card: ChristianityCharacterInstance): string;
244
- protected topHistoryCard(): ChristianityCardDefinition | null;
245
- protected historyStack(): string[];
246
- protected topOffering(seat: ChristianitySeat): ChristianityOfferingInstance | null;
247
- protected offeringStack(seat: ChristianitySeat): ChristianityOfferingInstance[];
248
- protected activePlaceCard(): ChristianityCardDefinition | null;
249
- protected placeStack(): string[];
250
- protected zoneStackTransform(index: number, total: number): string;
251
- protected isOpponentLeaderTarget(): boolean;
252
- protected isOpponentCharacterTarget(card: ChristianityCharacterInstance): boolean;
253
- protected hiddenHandCards(count: number): unknown[];
254
- protected fanTransform(index: number, total: number, opponent: boolean): string;
255
- protected handCardZIndex(index: number): number;
256
- protected setHoveredHandIndex(index: number): void;
257
- protected clearHoveredHandIndex(): void;
258
- protected releaseHoveredHand(event: PointerEvent): void;
259
- private handWaveLift;
260
- private handWaveScale;
261
- protected readyOfferings(player: ChristianityPlayerState): number;
262
- protected totalOfferings(player: ChristianityPlayerState): number;
263
- protected canPlay(card: ChristianityCardDefinition): boolean;
264
- protected handCardActionLabel(card: ChristianityCardDefinition): string;
265
- protected handCardTestId(cardId: string, index: number): string;
266
- protected battleCardTestId(seat: ChristianitySeat, card: ChristianityCharacterInstance): string;
267
- protected battleSlotTestId(seat: ChristianitySeat, index: number): string;
268
- protected historyCardTestId(cardId: string, index: number): string;
269
- protected offeringsDrawerTestId(seat: ChristianitySeat): string;
270
- protected offeringListTestId(seat: ChristianitySeat): string;
271
- protected offeringCardTestId(offering: ChristianityOfferingInstance): string;
272
- protected offeringUseButtonTestId(offering: ChristianityOfferingInstance): string;
273
- private testIdPart;
274
- protected canPlaySelected(): boolean;
275
- protected selectedActionLabel(): string;
276
- protected selectedActionDisabled(): boolean;
277
- protected canPlaceSelectedCharacter(): boolean;
278
- protected canPlaceSelectedOffering(): boolean;
279
- protected canPlaceSelectedPlace(): boolean;
280
- protected isDraggingCharacter(): boolean;
281
- protected isDraggingOffering(): boolean;
282
- protected isDraggingPlace(): boolean;
283
- protected startDraggingCard(cardId: string): void;
284
- protected endDraggingCard(): void;
285
- protected canDragAttacker(card: ChristianityCharacterInstance): boolean;
286
- protected startDraggingAttacker(card: ChristianityCharacterInstance): void;
287
- protected endDraggingAttacker(): void;
288
- protected dropOnBattleSlot(event: CdkDragDrop<number, unknown, string>, slotIndex: number): void;
289
- protected dropOnOfferings(event: CdkDragDrop<unknown, unknown, string>): void;
290
- protected dropOnPlace(event: CdkDragDrop<unknown, unknown, string>): void;
291
- protected playSelectedPlaceOrInspect(): void;
292
- protected dropOnOpponentCharacter(event: CdkDragDrop<unknown, unknown, string>, target: ChristianityCharacterInstance): void;
293
- protected dropOnOpponentLeader(event: CdkDragDrop<unknown, unknown, string>): void;
294
- private isValidAttackerInstance;
295
- protected selectHandCard(cardId: string): void;
296
- protected playSelectedCard(slotIndex?: number): void;
297
- private firstAvailableBattleSlotIndex;
298
- protected playCardFromHand(cardId: string, slotIndex?: number, targetInstanceId?: string): void;
299
- protected handleOfferingPile(seat: ChristianitySeat): void;
300
- protected selectAttacker(card: ChristianityCharacterInstance): void;
301
- protected handleOpponentCharacter(card: ChristianityCharacterInstance): void;
302
- protected handleOpponentLeader(): void;
303
- protected attackLeader(): void;
304
- protected attackCharacter(target: ChristianityCharacterInstance): void;
305
- protected endTurn(): void;
306
- protected resetMock(): void;
307
- protected startTutorial(): void;
308
- protected continueAfterCoin(): void;
309
- protected chooseTutorialLeader(leaderId: string): void;
310
- protected selectTutorialLeader(leaderId: string): void;
311
- protected confirmTutorialLeader(): void;
312
- protected inspectLeaderChoice(leaderId: string): void;
313
- protected toggleOptions(): void;
314
- protected restartTutorial(): void;
315
- protected resignTutorial(): void;
316
- protected returnToChristianityHome(): void;
317
- private startLeaderChoiceTimer;
318
- private clearLeaderChoiceTimer;
319
- private createTutorialSetup;
320
- private randomGameSeed;
321
- private chooseRivalTutorialLeader;
322
- private startTutorialMatch;
323
- private resetTransientTableState;
324
- protected closePreview(): void;
325
- protected closeInfo(): void;
326
- protected openOfferings(seat: ChristianitySeat): void;
327
- protected openHistory(): void;
328
- protected openPlace(): void;
329
- protected closeHistory(): void;
330
- protected closePlace(): void;
331
- protected closeOfferings(): void;
332
- protected openGallery(): void;
333
- protected closeGallery(): void;
334
- protected startPreviewSwipe(event: PointerEvent): void;
335
- protected finishPreviewSwipe(event: PointerEvent): void;
336
- protected cancelPreviewSwipe(event: PointerEvent): void;
337
- protected navigatePreview(direction: -1 | 1): void;
338
- private currentPreviewCarouselItems;
339
- private currentPreviewCarouselIndex;
340
- protected setGallerySearch(event: Event): void;
341
- protected setGalleryType(event: Event): void;
342
- protected tiltPreview(event: PointerEvent): void;
343
- protected resetPreviewTilt(): void;
344
- protected impactPopProps(impact: ChristianityImpactEvent): MiniGameScorePopMetadata;
345
- private impactPosition;
346
- private impactLabel;
347
- private impactToneRgb;
348
- private pushImpactEvent;
349
- private pushImpactEvents;
350
- protected dyingCharactersForSeat(seat: ChristianitySeat): Array<{
351
- seat: ChristianitySeat;
352
- card: ChristianityCharacterInstance;
353
- }>;
354
- private pushDyingCharacters;
355
- private flashDamagedCards;
356
- private combatAnimationAttacker;
357
- private combatAnimationTargetLabel;
358
- protected isCombatAttacker(card: ChristianityCharacterInstance): boolean;
359
- protected isCombatCharacterTarget(card: ChristianityCharacterInstance): boolean;
360
- protected isCombatLeaderTarget(seat: ChristianitySeat): boolean;
361
- private startCombatAnimation;
362
- private createCombatTrail;
363
- private combatAnchor;
364
- private clearCombatTimers;
365
- private triggerHistoryPulse;
366
- private clearBotTurn;
367
- private scheduleBotTurnIfNeeded;
368
- private runTutorialBotTurn;
369
- private runBotAttackPhase;
370
- private resolveBotPlays;
371
- private resolveBotAttack;
372
- private ruleMessages;
373
- protected inspectLeader(seat: ChristianitySeat): void;
374
- protected inspectOffering(offering: ChristianityOfferingInstance): void;
375
- protected offeringAbilityText(offering: ChristianityOfferingInstance): string;
376
- protected canUseOfferingAbility(offering: ChristianityOfferingInstance, seat: ChristianitySeat): boolean;
377
- protected useOfferingAbility(offering: ChristianityOfferingInstance, seat: ChristianitySeat): void;
378
- protected selectPreviewAbility(index: number): void;
379
- protected navigatePreviewAbility(direction: -1 | 1): void;
380
- protected useSelectedPreviewAbility(): void;
381
- private selectedPreviewOffering;
382
- private canUsePreviewAbility;
383
- protected inspectDeck(): void;
384
- protected inspectPlaceZone(): void;
385
- protected inspectPlaceCard(cardId: string): void;
386
- protected inspectHowToPlay(): void;
387
- protected inspectHandCard(cardId: string, fromHand?: boolean): void;
388
- protected inspectGalleryCard(cardId: string): void;
389
- protected inspectHistoryCard(cardId: string): void;
390
- private inspectCharacter;
391
- private cardPreviewMeta;
392
- static ɵfac: i0.ɵɵFactoryDeclaration<ChristianityGameComponent, never>;
393
- static ɵcmp: i0.ɵɵComponentDeclaration<ChristianityGameComponent, "val-christianity-game", never, {}, {}, never, never, true, never>;
394
- }
395
- export {};
@@ -1,57 +0,0 @@
1
- import { ChristianityCardDefinition, ChristianityGameState, ChristianityPlayerState, ChristianitySeat } from './types';
2
- export declare const CHRISTIANITY_BATTLE_SLOTS = 4;
3
- export declare const CHRISTIANITY_MAX_HAND_SIZE = 7;
4
- export interface ChristianityRuleMessages {
5
- attacksOpponentLeader: string;
6
- attacksYourLeader: string;
7
- combatsAgainst: string;
8
- drawsCard: string;
9
- deckIsEmpty: string;
10
- turnOf: string;
11
- youWin: string;
12
- opponentWins: string;
13
- handFull: string;
14
- }
15
- export interface ChristianityPlayCardResult {
16
- game: ChristianityGameState;
17
- played: boolean;
18
- playedOfferingValue: number;
19
- spentOfferings: number;
20
- log: string[];
21
- }
22
- export interface ChristianityAttackResult {
23
- game: ChristianityGameState;
24
- attacked: boolean;
25
- attackerDamage: number;
26
- targetDamage: number;
27
- log: string[];
28
- }
29
- export interface ChristianityOfferingAbilityResult {
30
- game: ChristianityGameState;
31
- resolved: boolean;
32
- leaderDamage: number;
33
- reserveGain: number;
34
- spentOfferings: number;
35
- log: string[];
36
- }
37
- export declare function readyOfferings(player: ChristianityPlayerState): number;
38
- export declare function totalOfferings(player: ChristianityPlayerState): number;
39
- export declare function effectiveCost(player: ChristianityPlayerState, card: ChristianityCardDefinition): number;
40
- export declare function canPlayCard(game: ChristianityGameState, seat: ChristianitySeat, card: ChristianityCardDefinition): boolean;
41
- export type CardLookup = (id: string) => ChristianityCardDefinition | null;
42
- export declare function playCardFromHand(game: ChristianityGameState, seat: ChristianitySeat, card: ChristianityCardDefinition, options?: {
43
- slotIndex?: number;
44
- displayName?: string;
45
- targetInstanceId?: string;
46
- lookup?: CardLookup;
47
- }): ChristianityPlayCardResult;
48
- export declare function canUseOfferingAbility(game: ChristianityGameState, seat: ChristianitySeat, offeringInstanceId: string): boolean;
49
- export declare function resolveOfferingAbility(game: ChristianityGameState, seat: ChristianitySeat, offeringInstanceId: string, messages?: ChristianityRuleMessages): ChristianityOfferingAbilityResult;
50
- export declare function resolveAttackLeader(game: ChristianityGameState, attackerSeat: ChristianitySeat, attackerInstanceId: string, messages: ChristianityRuleMessages): ChristianityAttackResult;
51
- export declare function resolveAttackCharacter(game: ChristianityGameState, attackerSeat: ChristianitySeat, attackerInstanceId: string, targetInstanceId: string, messages: ChristianityRuleMessages): ChristianityAttackResult;
52
- export declare function advanceTurn(game: ChristianityGameState, messages: ChristianityRuleMessages): string[];
53
- export declare function evaluateVictory(game: ChristianityGameState, log: string[], messages: ChristianityRuleMessages): void;
54
- export declare function cleanupDestroyed(player: ChristianityPlayerState, game: ChristianityGameState, lookup?: CardLookup): void;
55
- export declare function spendOfferings(player: ChristianityPlayerState, cost: number): void;
56
- export declare function opponentSeat(seat: ChristianitySeat): ChristianitySeat;
57
- export declare function applyPassiveCostModifiers(player: ChristianityPlayerState, sourceId: string, card: ChristianityCardDefinition | null, add: boolean): void;
@@ -1,38 +0,0 @@
1
- import { ChristianityCardDefinition, ChristianityCharacterInstance, ChristianityGameState, ChristianityPlayerState, ChristianitySeat } from './types';
2
- export interface ChristianityTutorialSetup {
3
- coinWinner: ChristianitySeat;
4
- leaderPicker: ChristianitySeat;
5
- firstPlayer: ChristianitySeat;
6
- availableLeaders: string[];
7
- playerLeaderId?: string;
8
- opponentLeaderId?: string;
9
- }
10
- export interface TutorialGameMessages {
11
- turnOf: string;
12
- tutorialLoaded: string;
13
- }
14
- export interface TutorialGameOptions {
15
- playerLeaderId?: string;
16
- opponentLeaderId?: string;
17
- firstPlayer?: ChristianitySeat;
18
- seed?: number;
19
- }
20
- export declare const TUTORIAL_CHARACTER_LIMIT = 12;
21
- export declare const TUTORIAL_OFFERING_LIMIT = 6;
22
- export declare const TUTORIAL_OPENING_HAND_SIZE = 5;
23
- export declare const TUTORIAL_LEADER_CHOICE_COUNT = 2;
24
- export declare const TUTORIAL_LEADER_CHOICE_SECONDS = 15;
25
- export declare const TUTORIAL_SEED = 20260728;
26
- export declare function isClassicGalleryCard(card: ChristianityCardDefinition): boolean;
27
- export declare function cardSortKey(card: ChristianityCardDefinition, nameResolver?: (card: ChristianityCardDefinition) => string): string;
28
- export declare function tutorialLeaderCards(cards: ChristianityCardDefinition[], nameResolver?: (card: ChristianityCardDefinition) => string): ChristianityCardDefinition[];
29
- export declare function findCardByName(cards: ChristianityCardDefinition[], namePart: string, nameResolver?: (card: ChristianityCardDefinition) => string): ChristianityCardDefinition | undefined;
30
- export declare function shuffleCards(cards: ChristianityCardDefinition[], seed: number): ChristianityCardDefinition[];
31
- export declare function prepareTutorialOpeningDeck(cards: ChristianityCardDefinition[]): ChristianityCardDefinition[];
32
- export declare function createTutorialPlayer(seat: ChristianitySeat, leader: ChristianityCardDefinition | undefined, hand: string[] | undefined, battleZone: ChristianityCharacterInstance[], nameResolver?: (card: ChristianityCardDefinition) => string, startingOffering?: ChristianityCardDefinition): ChristianityPlayerState;
33
- export declare function createTutorialGame(cards: ChristianityCardDefinition[], options?: TutorialGameOptions, context?: {
34
- messages?: TutorialGameMessages;
35
- nameResolver?: (card: ChristianityCardDefinition) => string;
36
- cardById?: (id: string) => ChristianityCardDefinition | undefined;
37
- }): ChristianityGameState;
38
- export declare function createTutorialSetup(leaders: ChristianityCardDefinition[], seed?: number): ChristianityTutorialSetup;
@@ -1,51 +0,0 @@
1
- <svg width="512" height="512" viewBox="0 0 512 512" fill="none" xmlns="http://www.w3.org/2000/svg">
2
- <title>Christianity game symbol</title>
3
- <path
4
- d="M256 33C195 92 162 151 158 230C96 259 55 312 21 432C91 455 174 458 256 414C338 458 421 455 491 432C457 312 416 259 354 230C350 151 317 92 256 33Z"
5
- fill="#8FD7F2"
6
- stroke="#12699B"
7
- stroke-width="23"
8
- stroke-linejoin="round"
9
- />
10
- <path
11
- d="M256 66C214 112 185 162 180 239C205 233 230 230 256 230C282 230 307 233 332 239C327 162 298 112 256 66Z"
12
- fill="#101827"
13
- stroke="#12699B"
14
- stroke-width="18"
15
- stroke-linejoin="round"
16
- />
17
- <path
18
- d="M56 418C104 430 163 431 219 407C194 377 175 341 163 294C112 318 82 356 56 418Z"
19
- fill="#101827"
20
- stroke="#12699B"
21
- stroke-width="18"
22
- stroke-linejoin="round"
23
- />
24
- <path
25
- d="M456 418C408 430 349 431 293 407C318 377 337 341 349 294C400 318 430 356 456 418Z"
26
- fill="#101827"
27
- stroke="#12699B"
28
- stroke-width="18"
29
- stroke-linejoin="round"
30
- />
31
- <path
32
- d="M181 279C229 267 283 267 331 279C320 321 294 357 256 392C218 357 192 321 181 279Z"
33
- fill="#101827"
34
- stroke="#12699B"
35
- stroke-width="18"
36
- stroke-linejoin="round"
37
- />
38
- <path
39
- d="M149 190C151 178 154 166 158 154"
40
- stroke="#12699B"
41
- stroke-width="18"
42
- stroke-linecap="round"
43
- />
44
- <path
45
- d="M165 134C184 92 215 55 256 21C297 55 328 92 347 134"
46
- stroke="#8FD7F2"
47
- stroke-width="16"
48
- stroke-linecap="round"
49
- opacity="0.78"
50
- />
51
- </svg>
@@ -1,114 +0,0 @@
1
- <head>
2
- <link rel="preconnect" href="https://fonts.googleapis.com">
3
- <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
4
- <link href="https://fonts.googleapis.com/css2?family=Noto+Sans:ital,wght@0,100..900;1,100..900&display=swap" rel="stylesheet" crossorigin="anonymous">
5
- <link href="https://fonts.googleapis.com/css2?family=Noto+Serif:ital,wght@0,100..900;1,100..900&display=swap" rel="stylesheet" crossorigin="anonymous">
6
- <link href="https://fonts.googleapis.com/css2?family=Noto+Serif:ital,wght@0,100..900;1,100..900&family=Open+Sans:ital,wght@0,300..800;1,300..800&display=swap" rel="stylesheet" crossorigin="anonymous">
7
- <link href="https://fonts.googleapis.com/css2?family=Noto+Serif:ital,wght@0,100..900;1,100..900&family=Nunito+Sans:ital,opsz,wght@0,6..12,200..1000;1,6..12,200..1000&family=Open+Sans:ital,wght@0,300..800;1,300..800&display=swap" rel="stylesheet" crossorigin="anonymous">
8
- <link href="https://fonts.googleapis.com/css2?family=Inter:wght@100..900&family=Noto+Serif:ital,wght@0,100..900;1,100..900&family=Nunito+Sans:ital,opsz,wght@0,6..12,200..1000;1,6..12,200..1000&family=Open+Sans:ital,wght@0,300..800;1,300..800&display=swap" rel="stylesheet" crossorigin="anonymous">
9
-
10
-
11
- {{!-- Icons --}}
12
- <link rel='stylesheet' href='https://cdn-uicons.flaticon.com/2.3.0/uicons-bold-rounded/css/uicons-bold-rounded.css'>
13
- <link rel='stylesheet' href='https://cdn-uicons.flaticon.com/2.3.0/uicons-solid-rounded/css/uicons-solid-rounded.css'>
14
- <link rel='stylesheet' href='https://cdn-uicons.flaticon.com/2.3.0/uicons-solid-straight/css/uicons-solid-straight.css'>
15
- <link rel='stylesheet' href='https://cdn-uicons.flaticon.com/2.3.0/uicons-solid-rounded/css/uicons-solid-rounded.css'>
16
-
17
-
18
-
19
- </head>
20
-
21
- <div class="border-container">
22
- <div class="card">
23
- <div class="header-container">
24
- <div class="name-container">
25
- <div class="icon">
26
- <img src="{{index assets card.type}}"/>
27
- </div>
28
- <div class="header">{{card.name}}</div>
29
- </div>
30
- {{!-- <span style="color: black;">{{card.type}}</span> --}}
31
- <div class="cost-container">
32
- {{#if (eq card.type "lugar")}}
33
- <div class="header-cost">{{card.cost}}</div>
34
- {{/if}}
35
- {{#if (eq card.type "evento")}}
36
- <div class="header-cost">{{card.cost}}</div>
37
- {{/if}}
38
- {{#if (eq card.type "ofrenda")}}
39
- <div class="header-cost">{{card.cost}}</div>
40
- {{/if}}
41
- {{#if (eq card.type "personaje")}}
42
- <div class="header-cost">{{card.cost}}</div>
43
- {{/if}}
44
- {{#if (eq card.type "sabiduría")}}
45
- <div class="header-cost">{{card.cost}}</div>
46
- {{/if}}
47
- {{#if (eq card.type "acción")}}
48
- <div class="header-cost">{{card.cost}}</div>
49
- {{/if}}
50
- {{#if (eq card.type "herramienta")}}
51
- <div class="header-cost">{{card.cost}}</div>
52
- {{/if}}
53
- {{#if (gte card.ofrendas 1)}}
54
- {{#repeat card.ofrendas}}
55
- <div class="header-cost"></div>
56
- {{/repeat}}
57
- {{/if}}
58
- </div>
59
- </div>
60
- <div class="content">
61
- <div class="image">
62
- <div class="type-box">
63
- {{uppercase card.type}}
64
- </div>
65
- </div>
66
- </div>
67
- <div class="legend">
68
- <div class="verse"><p>{{card.verse}}</p></div>
69
- <div class="version"><p>{{card.book}} {{card.bible-verse}} {{card.version}}</p></div>
70
- </div>
71
- <div class="hability-container">
72
- <div class="character-container">
73
- <div class="statistic-container">
74
- {{#if (eq card.type 'personaje')}}
75
- <div class="character-text">{{card.atack}}</div>
76
- <div class="character-text">{{card.restriction}}</div>
77
- <div class="character-text">{{card.life}}</div>
78
- {{/if}}
79
- </div>
80
- <div class="rarity-container">
81
- <div class="rarity-box {{card.rarity}}"></div>
82
- {{#if (eq card.rarity 'normal')}}
83
- {{/if}}
84
- </div>
85
- </div>
86
- <div class="text-container">
87
- <p class="hability-title">{{card.hability-title}}</p>
88
- <p class="hability-text">{{card.hability-text}}</p>
89
- <p class="hability-title">{{card.hability-title-2}}</p>
90
- <p class="hability-text">{{card.hability-text-2}}</p>
91
- </div>
92
- <div class="hero-stadistic-container">
93
- {{#if (eq card.type 'líder')}}
94
- <div class="hero-stadistic">{{card.hero-life}}</div>
95
- {{/if}}
96
- </div>
97
- </div>
98
- <div class="footer">
99
- <div class="edition-container">
100
- <div class="number">
101
- <div class="edition-box">
102
- <img src="{{index assets card.edition}}"/>
103
- </div>
104
- <p>{{#padZeros card.id 3}}{{/padZeros}}/{{card.edition-qty}}</p>
105
- </div>
106
- <div class="rights">{{card.year}} CHRISTIANITY</div>
107
- <div class="author">{{card.author}}</div>
108
- </div>
109
- </div>
110
- </div>
111
- <div class="permissions">
112
- <p>Nueva Biblia Viva © 2006, 2008 por Biblica, Inc.® Usado con permiso de Biblica, Inc.® Reservados todos los derechos en todo el mundo.</p>
113
- </div>
114
- </div>