valtech-components 4.0.611 → 4.0.612
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/organisms/mini-games/christianity-bot.mjs +69 -0
- package/esm2022/lib/components/organisms/mini-games/christianity-catalog.mjs +247 -0
- package/esm2022/lib/components/organisms/mini-games/christianity-game.component.mjs +26 -397
- package/esm2022/lib/components/organisms/mini-games/christianity-tutorial.mjs +132 -0
- package/esm2022/lib/version.mjs +2 -2
- package/fesm2022/valtech-components.mjs +260 -188
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/organisms/mini-games/chessimals-game.component.d.ts +1 -1
- package/lib/components/organisms/mini-games/christianity-bot.d.ts +15 -0
- package/lib/components/organisms/mini-games/christianity-catalog.d.ts +18 -0
- package/lib/components/organisms/mini-games/christianity-game.component.d.ts +1 -9
- package/lib/components/organisms/mini-games/christianity-tutorial.d.ts +38 -0
- package/lib/version.d.ts +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { canPlayCard, cleanupDestroyed, playCardFromHand as playChristianityCardFromHand, } from './christianity-rules';
|
|
2
|
+
export function resolveBotPlays(game, log, nameResolver = c => c.name, cardById = id => ({
|
|
3
|
+
id,
|
|
4
|
+
name: id,
|
|
5
|
+
type: 'character',
|
|
6
|
+
cost: 0,
|
|
7
|
+
life: 0,
|
|
8
|
+
attack: 0,
|
|
9
|
+
})) {
|
|
10
|
+
const hand = [...(game.players.P2.hand ?? [])];
|
|
11
|
+
const offeringId = hand.find(cardId => {
|
|
12
|
+
const card = cardById(cardId);
|
|
13
|
+
return card.type === 'offering' && canPlayCard(game, 'P2', card);
|
|
14
|
+
});
|
|
15
|
+
if (offeringId) {
|
|
16
|
+
const card = cardById(offeringId);
|
|
17
|
+
const result = playChristianityCardFromHand(game, 'P2', card, {
|
|
18
|
+
displayName: nameResolver(card),
|
|
19
|
+
});
|
|
20
|
+
if (result.played) {
|
|
21
|
+
Object.assign(game, result.game);
|
|
22
|
+
log.push(...result.log);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
const playableCharacters = [...(game.players.P2.hand ?? [])]
|
|
26
|
+
.map(cardId => cardById(cardId))
|
|
27
|
+
.filter(card => card.type === 'character' && canPlayCard(game, 'P2', card))
|
|
28
|
+
.sort((l, r) => (r.attack ?? 0) - (l.attack ?? 0) || (r.life ?? 0) - (l.life ?? 0));
|
|
29
|
+
const character = playableCharacters[0];
|
|
30
|
+
if (character) {
|
|
31
|
+
const result = playChristianityCardFromHand(game, 'P2', character, {
|
|
32
|
+
displayName: nameResolver(character),
|
|
33
|
+
});
|
|
34
|
+
if (result.played) {
|
|
35
|
+
Object.assign(game, result.game);
|
|
36
|
+
log.push(...result.log);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
export function resolveBotAttack(game, log, impacts, messages) {
|
|
41
|
+
const bot = game.players.P2;
|
|
42
|
+
const player = game.players.P1;
|
|
43
|
+
const attacker = bot.battleZone
|
|
44
|
+
.filter(card => card.canAttack && card.attack > 0)
|
|
45
|
+
.sort((l, r) => (l.slot ?? 0) - (r.slot ?? 0))[0];
|
|
46
|
+
if (!attacker) {
|
|
47
|
+
log.push(messages.botNoAttackers);
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
const target = player.battleZone
|
|
51
|
+
.filter(card => card.currentHp > 0)
|
|
52
|
+
.sort((l, r) => l.currentHp - r.currentHp || (l.slot ?? 0) - (r.slot ?? 0))[0];
|
|
53
|
+
if (target) {
|
|
54
|
+
impacts.push({ text: `-${attacker.attack}`, tone: 'damage', seat: 'P1', target: 'battle' });
|
|
55
|
+
impacts.push({ text: `-${target.attack}`, tone: 'damage', seat: 'P2', target: 'battle' });
|
|
56
|
+
target.currentHp -= attacker.attack;
|
|
57
|
+
attacker.currentHp -= target.attack;
|
|
58
|
+
attacker.canAttack = false;
|
|
59
|
+
log.push(`${attacker.name} ${messages.combatsAgainst} ${target.name}.`);
|
|
60
|
+
cleanupDestroyed(player, game);
|
|
61
|
+
cleanupDestroyed(bot, game);
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
impacts.push({ text: `-${attacker.attack}`, tone: 'damage', seat: 'P1', target: 'leader' });
|
|
65
|
+
player.leaderHp = Math.max(0, player.leaderHp - attacker.attack);
|
|
66
|
+
attacker.canAttack = false;
|
|
67
|
+
log.push(`${attacker.name} ${messages.attacksYourLeader}`);
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hyaXN0aWFuaXR5LWJvdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvbWluaS1nYW1lcy9jaHJpc3RpYW5pdHktYm90LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFDTCxXQUFXLEVBQ1gsZ0JBQWdCLEVBQ2hCLGdCQUFnQixJQUFJLDRCQUE0QixHQUNqRCxNQUFNLHNCQUFzQixDQUFDO0FBZ0I5QixNQUFNLFVBQVUsZUFBZSxDQUM3QixJQUEyQixFQUMzQixHQUFhLEVBQ2IsZUFBNkQsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUN4RSxXQUF1RCxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDNUQsRUFBRTtJQUNGLElBQUksRUFBRSxFQUFFO0lBQ1IsSUFBSSxFQUFFLFdBQVc7SUFDakIsSUFBSSxFQUFFLENBQUM7SUFDUCxJQUFJLEVBQUUsQ0FBQztJQUNQLE1BQU0sRUFBRSxDQUFDO0NBQ1YsQ0FBQztJQUVGLE1BQU0sSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRS9DLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUU7UUFDcEMsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzlCLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxVQUFVLElBQUksV0FBVyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDbkUsQ0FBQyxDQUFDLENBQUM7SUFDSCxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ2YsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2xDLE1BQU0sTUFBTSxHQUFH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QUFJLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDNUYsTUFBTSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNqRSxRQUFRLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUMzQixHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsUUFBUSxDQUFDLElBQUksSUFBSSxRQUFRLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDO0FBQzdELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaHJpc3RpYW5pdHlDYXJkRGVmaW5pdGlvbiwgQ2hyaXN0aWFuaXR5R2FtZVN0YXRlIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQge1xuICBjYW5QbGF5Q2FyZCxcbiAgY2xlYW51cERlc3Ryb3llZCxcbiAgcGxheUNhcmRGcm9tSGFuZCBhcyBwbGF5Q2hyaXN0aWFuaXR5Q2FyZEZyb21IYW5kLFxufSBmcm9tICcuL2NocmlzdGlhbml0eS1ydWxlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2hyaXN0aWFuaXR5Qm90TWVzc2FnZXMge1xuICBib3ROb0F0dGFja2Vyczogc3RyaW5nO1xuICBjb21iYXRzQWdhaW5zdDogc3RyaW5nO1xuICBhdHRhY2tzWW91ckxlYWRlcjogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENocmlzdGlhbml0eUltcGFjdEV2ZW50IHtcbiAgaWQ6IHN0cmluZztcbiAgdGV4dDogc3RyaW5nO1xuICB0b25lOiAnZGFtYWdlJyB8ICdoZWFsJyB8ICdyZXNvdXJjZSc7XG4gIHNlYXQ6ICdQMScgfCAnUDInO1xuICB0YXJnZXQ6ICdsZWFkZXInIHwgJ2JhdHRsZScgfCAnb2ZmZXJpbmdzJztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVCb3RQbGF5cyhcbiAgZ2FtZTogQ2hyaXN0aWFuaXR5R2FtZVN0YXRlLFxuICBsb2c6IHN0cmluZ1tdLFxuICBuYW1lUmVzb2x2ZXI6IChjYXJkOiBDaHJpc3RpYW5pdHlDYXJkRGVmaW5pdGlvbikgPT4gc3RyaW5nID0gYyA9PiBjLm5hbWUsXG4gIGNhcmRCeUlkOiAoaWQ6IHN0cmluZykgPT4gQ2hyaXN0aWFuaXR5Q2FyZERlZmluaXRpb24gPSBpZCA9PiAoe1xuICAgIGlkLFxuICAgIG5hbWU6IGlkLFxuICAgIHR5cGU6ICdjaGFyYWN0ZXInLFxuICAgIGNvc3Q6IDAsXG4gICAgbGlmZTogMCxcbiAgICBhdHRhY2s6IDAsXG4gIH0pXG4pOiB2b2lkIHtcbiAgY29uc3QgaGFuZCA9IFsuLi4oZ2FtZS5wbGF5ZXJzLlAyLmhhbmQgPz8gW10pXTtcblxuICBjb25zdCBvZmZlcmluZ0lkID0gaGFuZC5maW5kKGNhcmRJZCA9PiB7XG4gICAgY29uc3QgY2FyZCA9IGNhcmRCeUlkKGNhcmRJZCk7XG4gICAgcmV0dXJuIGNhcmQudHlwZSA9PT0gJ29mZmVyaW5nJyAmJiBjYW5QbGF5Q2FyZChnYW1lLCAnUDInLCBjYXJkKTtcbiAgfSk7XG4gIGlmIChvZmZlcmluZ0lkKSB7XG4gICAgY29uc3QgY2FyZCA9IGNhcmRCeUlkKG9mZmVyaW5nSWQpO1xuICAgIGNvbnN0IHJlc3VsdCA9IHBsYXlDaHJpc3RpYW5pdHlDYXJkRnJvbUhhbmQoZ2FtZSwgJ1AyJywgY2FyZCwge1xuICAgICAgZGlzcGxheU5hbWU6IG5hbWVSZXNvbHZlcihjYXJkKSxcbiAgICB9KTtcbiAgICBpZiAocmVzdWx0LnBsYXllZCkge1xuICAgICAgT2JqZWN0LmFzc2lnbihnYW1lLCByZXN1bHQuZ2FtZSk7XG4gICAgICBsb2cucHVzaCguLi5yZXN1bHQubG9nKTtcbiAgICB9XG4gIH1cblxuICBjb25zdCBwbGF5YWJsZUNoYXJhY3RlcnMgPSBbLi4uKGdhbWUucGxheWVycy5QMi5oYW5kID8/IFtdKV1cbiAgICAubWFwKGNhcmRJZCA9PiBjYXJkQnlJZChjYXJkSWQpKVxuICAgIC5maWx0ZXIoY2FyZCA9PiBjYXJkLnR5cGUgPT09ICdjaGFyYWN0ZXInICYmIGNhblBsYXlDYXJkKGdhbWUsICdQMicsIGNhcmQpKVxuICAgIC5zb3J0KChsLCByKSA9PiAoci5hdHRhY2sgPz8gMCkgLSAobC5hdHRhY2sgPz8gMCkgfHwgKHIubGlmZSA/PyAwKSAtIChsLmxpZmUgPz8gMCkpO1xuXG4gIGNvbnN0IGNoYXJhY3RlciA9IHBsYXlhYmxlQ2hhcmFjdGVyc1swXTtcbiAgaWYgKGNoYXJhY3Rlcikge1xuICAgIGNvbnN0IHJlc3VsdCA9IHBsYXlDaHJpc3RpYW5pdHlDYXJkRnJvbUhhbmQoZ2FtZSwgJ1AyJywgY2hhcmFjdGVyLCB7XG4gICAgICBkaXNwbGF5TmFtZTogbmFtZVJlc29sdmVyKGNoYXJhY3RlciksXG4gICAgfSk7XG4gICAgaWYgKHJlc3VsdC5wbGF5ZWQpIHtcbiAgICAgIE9iamVjdC5hc3NpZ24oZ2FtZSwgcmVzdWx0LmdhbWUpO1xuICAgICAgbG9nLnB1c2goLi4ucmVzdWx0LmxvZyk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlQm90QXR0YWNrKFxuICBnYW1lOiBDaHJpc3RpYW5pdHlHYW1lU3RhdGUsXG4gIGxvZzogc3RyaW5nW10sXG4gIGltcGFjdHM6IEFycmF5PE9taXQ8Q2hyaXN0aWFuaXR5SW1wYWN0RXZlbnQsICdpZCc+PixcbiAgbWVzc2FnZXM6IENocmlzdGlhbml0eUJvdE1lc3NhZ2VzXG4pOiB2b2lkIHtcbiAgY29uc3QgYm90ID0gZ2FtZS5wbGF5ZXJzLlAyO1xuICBjb25zdCBwbGF5ZXIgPSBnYW1lLnBsYXllcnMuUDE7XG5cbiAgY29uc3QgYXR0YWNrZXIgPSBib3QuYmF0dGxlWm9uZVxuICAgIC5maWx0ZXIoY2FyZCA9PiBjYXJkLmNhbkF0dGFjayAmJiBjYXJkLmF0dGFjayA+IDApXG4gICAgLnNvcnQoKGwsIHIpID0+IChsLnNsb3QgPz8gMCkgLSAoci5zbG90ID8/IDApKVswXTtcblxuICBpZiAoIWF0dGFja2VyKSB7XG4gICAgbG9nLnB1c2gobWVzc2FnZXMuYm90Tm9BdHRhY2tlcnMpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IHRhcmdldCA9IHBsYXllci5iYXR0bGVab25lXG4gICAgLmZpbHRlcihjYXJkID0+IGNhcmQuY3VycmVudEhwID4gMClcbiAgICAuc29ydCgobCwgcikgPT4gbC5jdXJyZW50SHAgLSByLmN1cnJlbnRIcCB8fCAobC5zbG90ID8/IDApIC0gKHIuc2xvdCA/PyAwKSlbMF07XG5cbiAgaWYgKHRhcmdldCkge1xuICAgIGltcGFjdHMucHVzaCh7IHRleHQ6IGAtJHthdHRhY2tlci5hdHRhY2t9YCwgdG9uZTogJ2RhbWFnZScsIHNlYXQ6ICdQMScsIHRhcmdldDogJ2JhdHRsZScgfSk7XG4gICAgaW1wYWN0cy5wdXNoKHsgdGV4dDogYC0ke3RhcmdldC5hdHRhY2t9YCwgdG9uZTogJ2RhbWFnZScsIHNlYXQ6ICdQMicsIHRhcmdldDogJ2JhdHRsZScgfSk7XG4gICAgdGFyZ2V0LmN1cnJlbnRIcCAtPSBhdHRhY2tlci5hdHRhY2s7XG4gICAgYXR0YWNrZXIuY3VycmVudEhwIC09IHRhcmdldC5hdHRhY2s7XG4gICAgYXR0YWNrZXIuY2FuQXR0YWNrID0gZmFsc2U7XG4gICAgbG9nLnB1c2goYCR7YXR0YWNrZXIubmFtZX0gJHttZXNzYWdlcy5jb21iYXRzQWdhaW5zdH0gJHt0YXJnZXQubmFtZX0uYCk7XG4gICAgY2xlYW51cERlc3Ryb3llZChwbGF5ZXIsIGdhbWUpO1xuICAgIGNsZWFudXBEZXN0cm95ZWQoYm90LCBnYW1lKTtcbiAgICByZXR1cm47XG4gIH1cblxuICBpbXBhY3RzLnB1c2goeyB0ZXh0OiBgLSR7YXR0YWNrZXIuYXR0YWNrfWAsIHRvbmU6ICdkYW1hZ2UnLCBzZWF0OiAnUDEnLCB0YXJnZXQ6ICdsZWFkZXInIH0pO1xuICBwbGF5ZXIubGVhZGVySHAgPSBNYXRoLm1heCgwLCBwbGF5ZXIubGVhZGVySHAgLSBhdHRhY2tlci5hdHRhY2spO1xuICBhdHRhY2tlci5jYW5BdHRhY2sgPSBmYWxzZTtcbiAgbG9nLnB1c2goYCR7YXR0YWNrZXIubmFtZX0gJHttZXNzYWdlcy5hdHRhY2tzWW91ckxlYWRlcn1gKTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
export const GENESIS_CATALOG_URL = 'assets/games/christianity/data/01-genesis.cards.json';
|
|
2
|
+
export const GENESIS_ICON_URL = 'assets/games/christianity/icons/1-icon.png';
|
|
3
|
+
export const SPLASH_MIN_DURATION_MS = 720;
|
|
4
|
+
export const STARTER_CARDS = {
|
|
5
|
+
o_simple: {
|
|
6
|
+
id: 'o_simple',
|
|
7
|
+
name: 'Ofrenda simple',
|
|
8
|
+
type: 'offering',
|
|
9
|
+
cost: 0,
|
|
10
|
+
attack: 0,
|
|
11
|
+
life: 1,
|
|
12
|
+
verseText: 'Una ofrenda sencilla queda lista para sostener tus siguientes jugadas.',
|
|
13
|
+
scripture: 'Genesis 4:4',
|
|
14
|
+
edition: 'GEN',
|
|
15
|
+
collectorNumber: '001/020',
|
|
16
|
+
year: '2026',
|
|
17
|
+
author: 'MVP',
|
|
18
|
+
rarity: 'normal',
|
|
19
|
+
},
|
|
20
|
+
o_forbidden: {
|
|
21
|
+
id: 'o_forbidden',
|
|
22
|
+
name: 'El fruto prohibido',
|
|
23
|
+
type: 'offering',
|
|
24
|
+
cost: 0,
|
|
25
|
+
attack: 0,
|
|
26
|
+
life: 2,
|
|
27
|
+
abilityName: 'Conocimiento del bien y del mal',
|
|
28
|
+
abilityText: 'Genera el valor de 2 ofrendas. Al usarla, inflige 1 punto de daño al líder.',
|
|
29
|
+
abilityCost: 0,
|
|
30
|
+
verseText: 'Dios el Señor puso al hombre en el jardín de Edén para que lo labrara y lo cuidara.',
|
|
31
|
+
scripture: 'Genesis 2:17 NBV',
|
|
32
|
+
edition: 'GEN',
|
|
33
|
+
collectorNumber: '012/180',
|
|
34
|
+
year: '2026',
|
|
35
|
+
author: 'MVP',
|
|
36
|
+
rarity: 'uncommon',
|
|
37
|
+
},
|
|
38
|
+
p_scout: {
|
|
39
|
+
id: 'p_scout',
|
|
40
|
+
name: 'Scout',
|
|
41
|
+
type: 'character',
|
|
42
|
+
cost: 1,
|
|
43
|
+
attack: 1,
|
|
44
|
+
life: 1,
|
|
45
|
+
verseText: 'Un explorador humilde abre camino antes de que llegue la batalla.',
|
|
46
|
+
scripture: 'Genesis 13:17',
|
|
47
|
+
edition: 'GEN',
|
|
48
|
+
collectorNumber: '002/020',
|
|
49
|
+
year: '2026',
|
|
50
|
+
author: 'MVP',
|
|
51
|
+
rarity: 'normal',
|
|
52
|
+
},
|
|
53
|
+
p_guard: {
|
|
54
|
+
id: 'p_guard',
|
|
55
|
+
name: 'Guard',
|
|
56
|
+
type: 'character',
|
|
57
|
+
cost: 2,
|
|
58
|
+
attack: 1,
|
|
59
|
+
life: 3,
|
|
60
|
+
edition: 'GEN',
|
|
61
|
+
collectorNumber: '003/020',
|
|
62
|
+
year: '2026',
|
|
63
|
+
author: 'MVP',
|
|
64
|
+
rarity: 'normal',
|
|
65
|
+
},
|
|
66
|
+
p_warrior: {
|
|
67
|
+
id: 'p_warrior',
|
|
68
|
+
name: 'Warrior',
|
|
69
|
+
type: 'character',
|
|
70
|
+
cost: 2,
|
|
71
|
+
attack: 2,
|
|
72
|
+
life: 2,
|
|
73
|
+
edition: 'GEN',
|
|
74
|
+
collectorNumber: '004/020',
|
|
75
|
+
year: '2026',
|
|
76
|
+
author: 'MVP',
|
|
77
|
+
rarity: 'normal',
|
|
78
|
+
},
|
|
79
|
+
p_elder: {
|
|
80
|
+
id: 'p_elder',
|
|
81
|
+
name: 'Elder',
|
|
82
|
+
type: 'character',
|
|
83
|
+
cost: 3,
|
|
84
|
+
attack: 2,
|
|
85
|
+
life: 4,
|
|
86
|
+
edition: 'GEN',
|
|
87
|
+
collectorNumber: '005/020',
|
|
88
|
+
year: '2026',
|
|
89
|
+
author: 'MVP',
|
|
90
|
+
rarity: 'uncommon',
|
|
91
|
+
},
|
|
92
|
+
p_champion: {
|
|
93
|
+
id: 'p_champion',
|
|
94
|
+
name: 'Champion',
|
|
95
|
+
type: 'character',
|
|
96
|
+
cost: 4,
|
|
97
|
+
attack: 4,
|
|
98
|
+
life: 4,
|
|
99
|
+
edition: 'GEN',
|
|
100
|
+
collectorNumber: '006/020',
|
|
101
|
+
year: '2026',
|
|
102
|
+
author: 'MVP',
|
|
103
|
+
rarity: 'rare',
|
|
104
|
+
},
|
|
105
|
+
};
|
|
106
|
+
const STARTING_SHARED_DECK = [
|
|
107
|
+
'o_simple',
|
|
108
|
+
'p_scout',
|
|
109
|
+
'o_forbidden',
|
|
110
|
+
'o_simple',
|
|
111
|
+
'p_guard',
|
|
112
|
+
'p_warrior',
|
|
113
|
+
'o_simple',
|
|
114
|
+
'p_elder',
|
|
115
|
+
'p_scout',
|
|
116
|
+
'o_simple',
|
|
117
|
+
'p_champion',
|
|
118
|
+
'p_guard',
|
|
119
|
+
'o_simple',
|
|
120
|
+
'p_warrior',
|
|
121
|
+
'p_scout',
|
|
122
|
+
'o_simple',
|
|
123
|
+
'p_elder',
|
|
124
|
+
'p_guard',
|
|
125
|
+
'o_simple',
|
|
126
|
+
];
|
|
127
|
+
export const STARTING_GAME = {
|
|
128
|
+
gameId: 'mock-christianity',
|
|
129
|
+
status: 'in_progress',
|
|
130
|
+
mode: 'local_pass',
|
|
131
|
+
turnOwner: 'P1',
|
|
132
|
+
revision: 0,
|
|
133
|
+
turnCount: 1,
|
|
134
|
+
matchScore: { P1: 0, P2: 0 },
|
|
135
|
+
sharedDeck: STARTING_SHARED_DECK,
|
|
136
|
+
placeZone: [],
|
|
137
|
+
historyZone: [],
|
|
138
|
+
players: {
|
|
139
|
+
P1: {
|
|
140
|
+
seat: 'P1',
|
|
141
|
+
displayName: 'Jugador',
|
|
142
|
+
avatar: 'J',
|
|
143
|
+
avatarColor: '#2563eb',
|
|
144
|
+
leaderName: 'Adam',
|
|
145
|
+
leaderHp: 15,
|
|
146
|
+
leaderMaxHp: 15,
|
|
147
|
+
offerings: [
|
|
148
|
+
{
|
|
149
|
+
instanceId: 'p1_offering_001',
|
|
150
|
+
cardId: 'o_simple',
|
|
151
|
+
name: 'Ofrenda simple',
|
|
152
|
+
owner: 'P1',
|
|
153
|
+
ready: true,
|
|
154
|
+
value: 1,
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
instanceId: 'p1_offering_002',
|
|
158
|
+
cardId: 'o_forbidden',
|
|
159
|
+
name: 'El fruto prohibido',
|
|
160
|
+
owner: 'P1',
|
|
161
|
+
ready: true,
|
|
162
|
+
value: 2,
|
|
163
|
+
abilityName: 'Conocimiento del bien y del mal',
|
|
164
|
+
abilityText: 'Genera el valor de 2 ofrendas. Al usarla, inflige 1 punto de daño al lider.',
|
|
165
|
+
abilityCost: 0,
|
|
166
|
+
},
|
|
167
|
+
],
|
|
168
|
+
offeringPlayedThisTurn: false,
|
|
169
|
+
hand: ['o_simple', 'p_scout', 'p_warrior', 'p_guard'],
|
|
170
|
+
battleZone: [],
|
|
171
|
+
},
|
|
172
|
+
P2: {
|
|
173
|
+
seat: 'P2',
|
|
174
|
+
displayName: 'Rival',
|
|
175
|
+
avatar: 'R',
|
|
176
|
+
avatarColor: '#b45309',
|
|
177
|
+
leaderName: 'Noah',
|
|
178
|
+
leaderHp: 15,
|
|
179
|
+
leaderMaxHp: 15,
|
|
180
|
+
offerings: [
|
|
181
|
+
{
|
|
182
|
+
instanceId: 'p2_offering_001',
|
|
183
|
+
cardId: 'o_simple',
|
|
184
|
+
name: 'Ofrenda simple',
|
|
185
|
+
owner: 'P2',
|
|
186
|
+
ready: true,
|
|
187
|
+
value: 1,
|
|
188
|
+
},
|
|
189
|
+
],
|
|
190
|
+
offeringPlayedThisTurn: false,
|
|
191
|
+
handCount: 4,
|
|
192
|
+
battleZone: [
|
|
193
|
+
{
|
|
194
|
+
instanceId: 'opp_001',
|
|
195
|
+
cardId: 'p_scout',
|
|
196
|
+
name: 'Scout',
|
|
197
|
+
owner: 'P2',
|
|
198
|
+
controller: 'P2',
|
|
199
|
+
slot: 0,
|
|
200
|
+
attack: 1,
|
|
201
|
+
currentHp: 1,
|
|
202
|
+
maxHp: 1,
|
|
203
|
+
canAttack: false,
|
|
204
|
+
},
|
|
205
|
+
],
|
|
206
|
+
},
|
|
207
|
+
},
|
|
208
|
+
log: ['Partida iniciada.'],
|
|
209
|
+
};
|
|
210
|
+
export function formatScripture(bible) {
|
|
211
|
+
if (!bible?.book || !bible.reference)
|
|
212
|
+
return undefined;
|
|
213
|
+
return `${bible.book} ${bible.reference}${bible.version ? ` ${bible.version}` : ''}`;
|
|
214
|
+
}
|
|
215
|
+
export function normalizeCatalogCard(card, catalog) {
|
|
216
|
+
const editionIcon = card.editionIcon ?? catalog.edition?.icon ?? GENESIS_ICON_URL;
|
|
217
|
+
const verseText = card.verseText ?? card.bible?.text;
|
|
218
|
+
const scripture = card.scripture ?? formatScripture(card.bible);
|
|
219
|
+
const offeringValue = card.type === 'offering'
|
|
220
|
+
? (card.offeringValue ?? card.life ?? card.cost ?? 1)
|
|
221
|
+
: card.offeringValue;
|
|
222
|
+
const life = card.type === 'leader'
|
|
223
|
+
? (card.leaderLife ?? card.life ?? 10)
|
|
224
|
+
: card.type === 'offering'
|
|
225
|
+
? offeringValue
|
|
226
|
+
: (card.life ?? 0);
|
|
227
|
+
return {
|
|
228
|
+
...card,
|
|
229
|
+
cost: card.type === 'offering' ? 0 : (card.cost ?? 0),
|
|
230
|
+
offeringValue,
|
|
231
|
+
life,
|
|
232
|
+
leaderLife: card.type === 'leader' ? (card.leaderLife ?? life) : card.leaderLife,
|
|
233
|
+
attack: card.type === 'character' ? (card.attack ?? 0) : card.attack,
|
|
234
|
+
abilityName: card.abilityName ?? card.abilities?.[0]?.name,
|
|
235
|
+
abilityText: card.abilityText ?? card.abilities?.[0]?.text,
|
|
236
|
+
verseText,
|
|
237
|
+
scripture,
|
|
238
|
+
edition: card.edition ?? catalog.edition?.id ?? 'GEN',
|
|
239
|
+
editionNumber: card.editionNumber ?? catalog.edition?.number,
|
|
240
|
+
editionIcon,
|
|
241
|
+
imageUrl: card.imageUrl ?? card.art?.imageUrl,
|
|
242
|
+
author: card.author ?? card.art?.artistCredit,
|
|
243
|
+
year: card.year ?? '2026',
|
|
244
|
+
frontTemplate: card.frontTemplate ?? 'genesis-classic',
|
|
245
|
+
};
|
|
246
|
+
}
|
|
247
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hyaXN0aWFuaXR5LWNhdGFsb2cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL21pbmktZ2FtZXMvY2hyaXN0aWFuaXR5LWNhdGFsb2cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBaUJBLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLHNEQUFzRCxDQUFDO0FBQzFGLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLDRDQUE0QyxDQUFDO0FBQzdFLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLEdBQUcsQ0FBQztBQUUxQyxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQStDO0lBQ3ZFLFFBQVEsRUFBRTtRQUNSLEVBQUUsRUFBRSxVQUFVO1FBQ2QsSUFBSSxFQUFFLGdCQUFnQjtRQUN0QixJQUFJLEVBQUUsVUFBVTtRQUNoQixJQUFJLEVBQUUsQ0FBQztRQUNQLE1BQU0sRUFBRSxDQUFDO1FBQ1QsSUFBSSxFQUFFLENBQUM7UUFDUCxTQUFTLEVBQUUsd0VBQXdFO1FBQ25GLFNBQVMsRUFBRSxhQUFhO1FBQ3hCLE9BQU8sRUFBRSxLQUFLO1FBQ2QsZUFBZSxFQUFFLFNBQVM7UUFDMUIsSUFBSSxFQUFFLE1BQU07UUFDWixNQUFNLEVBQUUsS0FBSztRQUNiLE1BQU0sRUFBRSxRQUFRO0tBQ2pCO0lBQ0QsV0FBVyxFQUFFO1FBQ1gsRUFBRSxFQUFFLGFBQWE7UUFDakIsSUFBSSxFQUFFLG9CQUFvQjtRQUMxQixJQUFJLEVBQUUsVUFBVTtRQUNoQixJQUFJLEVBQUUsQ0FBQztRQUNQLE1BQU0sRUFBRSxDQUFDO1FBQ1QsSUFBSSxFQUFFLENBQUM7UUFDUCxXQUFXLEVBQUUsaUNBQWlDO1FBQzlDLFdBQVcsRUFBRSw2RUFBNkU7UUFDMUYsV0FBVyxFQUFFLENBQUM7UUFDZCxTQUFTLEVBQ1AscUZBQXFGO1FBQ3ZGLFNBQVMsRUFBRSxrQkFBa0I7UUFDN0IsT0FB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Q0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNO1FBQ3BFLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJO1FBQzFELFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJO1FBQzFELFNBQVM7UUFDVCxTQUFTO1FBQ1QsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLElBQUksS0FBSztRQUNyRCxhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWEsSUFBSSxPQUFPLENBQUMsT0FBTyxFQUFFLE1BQU07UUFDNUQsV0FBVztRQUNYLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUUsUUFBUTtRQUM3QyxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLFlBQVk7UUFDN0MsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLElBQUksTUFBTTtRQUN6QixhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWEsSUFBSSxpQkFBaUI7S0FDdkQsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaHJpc3RpYW5pdHlDYXJkRGVmaW5pdGlvbixcbiAgQ2hyaXN0aWFuaXR5Q2FyZEJpYmxlUmVmZXJlbmNlLFxuICBDaHJpc3RpYW5pdHlHYW1lU3RhdGUsXG59IGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENocmlzdGlhbml0eUVkaXRpb25DYXRhbG9nIHtcbiAgZWRpdGlvbj86IHtcbiAgICBpZD86IHN0cmluZztcbiAgICBudW1iZXI/OiBudW1iZXI7XG4gICAgc2x1Zz86IHN0cmluZztcbiAgICBuYW1lPzogc3RyaW5nO1xuICAgIGljb24/OiBzdHJpbmc7XG4gIH07XG4gIGNhcmRzPzogQ2hyaXN0aWFuaXR5Q2FyZERlZmluaXRpb25bXTtcbn1cblxuZXhwb3J0IGNvbnN0IEdFTkVTSVNfQ0FUQUxPR19VUkwgPSAnYXNzZXRzL2dhbWVzL2NocmlzdGlhbml0eS9kYXRhLzAxLWdlbmVzaXMuY2FyZHMuanNvbic7XG5leHBvcnQgY29uc3QgR0VORVNJU19JQ09OX1VSTCA9ICdhc3NldHMvZ2FtZXMvY2hyaXN0aWFuaXR5L2ljb25zLzEtaWNvbi5wbmcnO1xuZXhwb3J0IGNvbnN0IFNQTEFTSF9NSU5fRFVSQVRJT05fTVMgPSA3MjA7XG5cbmV4cG9ydCBjb25zdCBTVEFSVEVSX0NBUkRTOiBSZWNvcmQ8c3RyaW5nLCBDaHJpc3RpYW5pdHlDYXJkRGVmaW5pdGlvbj4gPSB7XG4gIG9fc2ltcGxlOiB7XG4gICAgaWQ6ICdvX3NpbXBsZScsXG4gICAgbmFtZTogJ09mcmVuZGEgc2ltcGxlJyxcbiAgICB0eXBlOiAnb2ZmZXJpbmcnLFxuICAgIGNvc3Q6IDAsXG4gICAgYXR0YWNrOiAwLFxuICAgIGxpZmU6IDEsXG4gICAgdmVyc2VUZXh0OiAnVW5hIG9mcmVuZGEgc2VuY2lsbGEgcXVlZGEgbGlzdGEgcGFyYSBzb3N0ZW5lciB0dXMgc2lndWllbnRlcyBqdWdhZGFzLicsXG4gICAgc2NyaXB0dXJlOiAnR2VuZXNpcyA0OjQnLFxuICAgIGVkaXRpb246ICdHRU4nLFxuICAgIGNvbGxlY3Rvck51bWJlcjogJzAwMS8wMjAnLFxuICAgIHllYXI6ICcyMDI2JyxcbiAgICBhdXRob3I6ICdNVlAnLFxuICAgIHJhcml0eTogJ25vcm1hbCcsXG4gIH0sXG4gIG9fZm9yYmlkZGVuOiB7XG4gICAgaWQ6ICdvX2ZvcmJpZGRlbicsXG4gICAgbmFtZTogJ0VsIGZydXRvIHByb2hpYmlkbycsXG4gICAgdHlwZTogJ29mZmVyaW5nJyxcbiAgICBjb3N0OiAwLFxuICAgIGF0dGFjazogMCxcbiAgICBsaWZlOiAyLFxuICAgIGFiaWxpdHlOYW1lOiAnQ29ub2NpbWllbnRvIGRlbCBiaWVuIHkgZGVsIG1hbCcsXG4gICAgYWJpbGl0eVRleHQ6ICdHZW5lcmEgZWwgdmFsb3IgZGUgMiBvZnJlbmRhcy4gQWwgdXNhcmxhLCBpbmZsaWdlIDEgcHVudG8gZGUgZGHDsW8gYWwgbMOtZGVyLicsXG4gICAgYWJpbGl0eUNvc3Q6IDAsXG4gICAgdmVyc2VUZXh0OlxuICAgICAgJ0Rpb3MgZWwgU2XDsW9yIHB1c28gYWwgaG9tYnJlIGVuIGVsIGphcmTDrW4gZGUgRWTDqW4gcGFyYSBxdWUgbG8gbGFicmFyYSB5IGxvIGN1aWRhcmEuJyxcbiAgICBzY3JpcHR1cmU6ICdHZW5lc2lzIDI6MTcgTkJWJyxcbiAgICBlZGl0aW9uOiAnR0VOJyxcbiAgICBjb2xsZWN0b3JOdW1iZXI6ICcwMTIvMTgwJyxcbiAgICB5ZWFyOiAnMjAyNicsXG4gICAgYXV0aG9yOiAnTVZQJyxcbiAgICByYXJpdHk6ICd1bmNvbW1vbicsXG4gIH0sXG4gIHBfc2NvdXQ6IHtcbiAgICBpZDogJ3Bfc2NvdXQnLFxuICAgIG5hbWU6ICdTY291dCcsXG4gICAgdHlwZTogJ2NoYXJhY3RlcicsXG4gICAgY29zdDogMSxcbiAgICBhdHRhY2s6IDEsXG4gICAgbGlmZTogMSxcbiAgICB2ZXJzZVRleHQ6ICdVbiBleHBsb3JhZG9yIGh1bWlsZGUgYWJyZSBjYW1pbm8gYW50ZXMgZGUgcXVlIGxsZWd1ZSBsYSBiYXRhbGxhLicsXG4gICAgc2NyaXB0dXJlOiAnR2VuZXNpcyAxMzoxNycsXG4gICAgZWRpdGlvbjogJ0dFTicsXG4gICAgY29sbGVjdG9yTnVtYmVyOiAnMDAyLzAyMCcsXG4gICAgeWVhcjogJzIwMjYnLFxuICAgIGF1dGhvcjogJ01WUCcsXG4gICAgcmFyaXR5OiAnbm9ybWFsJyxcbiAgfSxcbiAgcF9ndWFyZDoge1xuICAgIGlkOiAncF9ndWFyZCcsXG4gICAgbmFtZTogJ0d1YXJkJyxcbiAgICB0eXBlOiAnY2hhcmFjdGVyJyxcbiAgICBjb3N0OiAyLFxuICAgIGF0dGFjazogMSxcbiAgICBsaWZlOiAzLFxuICAgIGVkaXRpb246ICdHRU4nLFxuICAgIGNvbGxlY3Rvck51bWJlcjogJzAwMy8wMjAnLFxuICAgIHllYXI6ICcyMDI2JyxcbiAgICBhdXRob3I6ICdNVlAnLFxuICAgIHJhcml0eTogJ25vcm1hbCcsXG4gIH0sXG4gIHBfd2Fycmlvcjoge1xuICAgIGlkOiAncF93YXJyaW9yJyxcbiAgICBuYW1lOiAnV2FycmlvcicsXG4gICAgdHlwZTogJ2NoYXJhY3RlcicsXG4gICAgY29zdDogMixcbiAgICBhdHRhY2s6IDIsXG4gICAgbGlmZTogMixcbiAgICBlZGl0aW9uOiAnR0VOJyxcbiAgICBjb2xsZWN0b3JOdW1iZXI6ICcwMDQvMDIwJyxcbiAgICB5ZWFyOiAnMjAyNicsXG4gICAgYXV0aG9yOiAnTVZQJyxcbiAgICByYXJpdHk6ICdub3JtYWwnLFxuICB9LFxuICBwX2VsZGVyOiB7XG4gICAgaWQ6ICdwX2VsZGVyJyxcbiAgICBuYW1lOiAnRWxkZXInLFxuICAgIHR5cGU6ICdjaGFyYWN0ZXInLFxuICAgIGNvc3Q6IDMsXG4gICAgYXR0YWNrOiAyLFxuICAgIGxpZmU6IDQsXG4gICAgZWRpdGlvbjogJ0dFTicsXG4gICAgY29sbGVjdG9yTnVtYmVyOiAnMDA1LzAyMCcsXG4gICAgeWVhcjogJzIwMjYnLFxuICAgIGF1dGhvcjogJ01WUCcsXG4gICAgcmFyaXR5OiAndW5jb21tb24nLFxuICB9LFxuICBwX2NoYW1waW9uOiB7XG4gICAgaWQ6ICdwX2NoYW1waW9uJyxcbiAgICBuYW1lOiAnQ2hhbXBpb24nLFxuICAgIHR5cGU6ICdjaGFyYWN0ZXInLFxuICAgIGNvc3Q6IDQsXG4gICAgYXR0YWNrOiA0LFxuICAgIGxpZmU6IDQsXG4gICAgZWRpdGlvbjogJ0dFTicsXG4gICAgY29sbGVjdG9yTnVtYmVyOiAnMDA2LzAyMCcsXG4gICAgeWVhcjogJzIwMjYnLFxuICAgIGF1dGhvcjogJ01WUCcsXG4gICAgcmFyaXR5OiAncmFyZScsXG4gIH0sXG59O1xuXG5jb25zdCBTVEFSVElOR19TSEFSRURfREVDSyA9IFtcbiAgJ29fc2ltcGxlJyxcbiAgJ3Bfc2NvdXQnLFxuICAnb19mb3JiaWRkZW4nLFxuICAnb19zaW1wbGUnLFxuICAncF9ndWFyZCcsXG4gICdwX3dhcnJpb3InLFxuICAnb19zaW1wbGUnLFxuICAncF9lbGRlcicsXG4gICdwX3Njb3V0JyxcbiAgJ29fc2ltcGxlJyxcbiAgJ3BfY2hhbXBpb24nLFxuICAncF9ndWFyZCcsXG4gICdvX3NpbXBsZScsXG4gICdwX3dhcnJpb3InLFxuICAncF9zY291dCcsXG4gICdvX3NpbXBsZScsXG4gICdwX2VsZGVyJyxcbiAgJ3BfZ3VhcmQnLFxuICAnb19zaW1wbGUnLFxuXTtcblxuZXhwb3J0IGNvbnN0IFNUQVJUSU5HX0dBTUU6IENocmlzdGlhbml0eUdhbWVTdGF0ZSA9IHtcbiAgZ2FtZUlkOiAnbW9jay1jaHJpc3RpYW5pdHknLFxuICBzdGF0dXM6ICdpbl9wcm9ncmVzcycsXG4gIG1vZGU6ICdsb2NhbF9wYXNzJyxcbiAgdHVybk93bmVyOiAnUDEnLFxuICByZXZpc2lvbjogMCxcbiAgdHVybkNvdW50OiAxLFxuICBtYXRjaFNjb3JlOiB7IFAxOiAwLCBQMjogMCB9LFxuICBzaGFyZWREZWNrOiBTVEFSVElOR19TSEFSRURfREVDSyxcbiAgcGxhY2Vab25lOiBbXSxcbiAgaGlzdG9yeVpvbmU6IFtdLFxuICBwbGF5ZXJzOiB7XG4gICAgUDE6IHtcbiAgICAgIHNlYXQ6ICdQMScsXG4gICAgICBkaXNwbGF5TmFtZTogJ0p1Z2Fkb3InLFxuICAgICAgYXZhdGFyOiAnSicsXG4gICAgICBhdmF0YXJDb2xvcjogJyMyNTYzZWInLFxuICAgICAgbGVhZGVyTmFtZTogJ0FkYW0nLFxuICAgICAgbGVhZGVySHA6IDE1LFxuICAgICAgbGVhZGVyTWF4SHA6IDE1LFxuICAgICAgb2ZmZXJpbmdzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBpbnN0YW5jZUlkOiAncDFfb2ZmZXJpbmdfMDAxJyxcbiAgICAgICAgICBjYXJkSWQ6ICdvX3NpbXBsZScsXG4gICAgICAgICAgbmFtZTogJ09mcmVuZGEgc2ltcGxlJyxcbiAgICAgICAgICBvd25lcjogJ1AxJyxcbiAgICAgICAgICByZWFkeTogdHJ1ZSxcbiAgICAgICAgICB2YWx1ZTogMSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGluc3RhbmNlSWQ6ICdwMV9vZmZlcmluZ18wMDInLFxuICAgICAgICAgIGNhcmRJZDogJ29fZm9yYmlkZGVuJyxcbiAgICAgICAgICBuYW1lOiAnRWwgZnJ1dG8gcHJvaGliaWRvJyxcbiAgICAgICAgICBvd25lcjogJ1AxJyxcbiAgICAgICAgICByZWFkeTogdHJ1ZSxcbiAgICAgICAgICB2YWx1ZTogMixcbiAgICAgICAgICBhYmlsaXR5TmFtZTogJ0Nvbm9jaW1pZW50byBkZWwgYmllbiB5IGRlbCBtYWwnLFxuICAgICAgICAgIGFiaWxpdHlUZXh0OlxuICAgICAgICAgICAgJ0dlbmVyYSBlbCB2YWxvciBkZSAyIG9mcmVuZGFzLiBBbCB1c2FybGEsIGluZmxpZ2UgMSBwdW50byBkZSBkYcOxbyBhbCBsaWRlci4nLFxuICAgICAgICAgIGFiaWxpdHlDb3N0OiAwLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIG9mZmVyaW5nUGxheWVkVGhpc1R1cm46IGZhbHNlLFxuICAgICAgaGFuZDogWydvX3NpbXBsZScsICdwX3Njb3V0JywgJ3Bfd2FycmlvcicsICdwX2d1YXJkJ10sXG4gICAgICBiYXR0bGVab25lOiBbXSxcbiAgICB9LFxuICAgIFAyOiB7XG4gICAgICBzZWF0OiAnUDInLFxuICAgICAgZGlzcGxheU5hbWU6ICdSaXZhbCcsXG4gICAgICBhdmF0YXI6ICdSJyxcbiAgICAgIGF2YXRhckNvbG9yOiAnI2I0NTMwOScsXG4gICAgICBsZWFkZXJOYW1lOiAnTm9haCcsXG4gICAgICBsZWFkZXJIcDogMTUsXG4gICAgICBsZWFkZXJNYXhIcDogMTUsXG4gICAgICBvZmZlcmluZ3M6IFtcbiAgICAgICAge1xuICAgICAgICAgIGluc3RhbmNlSWQ6ICdwMl9vZmZlcmluZ18wMDEnLFxuICAgICAgICAgIGNhcmRJZDogJ29fc2ltcGxlJyxcbiAgICAgICAgICBuYW1lOiAnT2ZyZW5kYSBzaW1wbGUnLFxuICAgICAgICAgIG93bmVyOiAnUDInLFxuICAgICAgICAgIHJlYWR5OiB0cnVlLFxuICAgICAgICAgIHZhbHVlOiAxLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIG9mZmVyaW5nUGxheWVkVGhpc1R1cm46IGZhbHNlLFxuICAgICAgaGFuZENvdW50OiA0LFxuICAgICAgYmF0dGxlWm9uZTogW1xuICAgICAgICB7XG4gICAgICAgICAgaW5zdGFuY2VJZDogJ29wcF8wMDEnLFxuICAgICAgICAgIGNhcmRJZDogJ3Bfc2NvdXQnLFxuICAgICAgICAgIG5hbWU6ICdTY291dCcsXG4gICAgICAgICAgb3duZXI6ICdQMicsXG4gICAgICAgICAgY29udHJvbGxlcjogJ1AyJyxcbiAgICAgICAgICBzbG90OiAwLFxuICAgICAgICAgIGF0dGFjazogMSxcbiAgICAgICAgICBjdXJyZW50SHA6IDEsXG4gICAgICAgICAgbWF4SHA6IDEsXG4gICAgICAgICAgY2FuQXR0YWNrOiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgfSxcbiAgbG9nOiBbJ1BhcnRpZGEgaW5pY2lhZGEuJ10sXG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0U2NyaXB0dXJlKGJpYmxlPzogQ2hyaXN0aWFuaXR5Q2FyZEJpYmxlUmVmZXJlbmNlKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgaWYgKCFiaWJsZT8uYm9vayB8fCAhYmlibGUucmVmZXJlbmNlKSByZXR1cm4gdW5kZWZpbmVkO1xuICByZXR1cm4gYCR7YmlibGUuYm9va30gJHtiaWJsZS5yZWZlcmVuY2V9JHtiaWJsZS52ZXJzaW9uID8gYCAke2JpYmxlLnZlcnNpb259YCA6ICcnfWA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVDYXRhbG9nQ2FyZChcbiAgY2FyZDogQ2hyaXN0aWFuaXR5Q2FyZERlZmluaXRpb24sXG4gIGNhdGFsb2c6IENocmlzdGlhbml0eUVkaXRpb25DYXRhbG9nXG4pOiBDaHJpc3RpYW5pdHlDYXJkRGVmaW5pdGlvbiB7XG4gIGNvbnN0IGVkaXRpb25JY29uID0gY2FyZC5lZGl0aW9uSWNvbiA/PyBjYXRhbG9nLmVkaXRpb24/Lmljb24gPz8gR0VORVNJU19JQ09OX1VSTDtcbiAgY29uc3QgdmVyc2VUZXh0ID0gY2FyZC52ZXJzZVRleHQgPz8gY2FyZC5iaWJsZT8udGV4dDtcbiAgY29uc3Qgc2NyaXB0dXJlID0gY2FyZC5zY3JpcHR1cmUgPz8gZm9ybWF0U2NyaXB0dXJlKGNhcmQuYmlibGUpO1xuICBjb25zdCBvZmZlcmluZ1ZhbHVlID1cbiAgICBjYXJkLnR5cGUgPT09ICdvZmZlcmluZydcbiAgICAgID8gKGNhcmQub2ZmZXJpbmdWYWx1ZSA/PyBjYXJkLmxpZmUgPz8gY2FyZC5jb3N0ID8/IDEpXG4gICAgICA6IGNhcmQub2ZmZXJpbmdWYWx1ZTtcbiAgY29uc3QgbGlmZSA9XG4gICAgY2FyZC50eXBlID09PSAnbGVhZGVyJ1xuICAgICAgPyAoY2FyZC5sZWFkZXJMaWZlID8/IGNhcmQubGlmZSA/PyAxMClcbiAgICAgIDogY2FyZC50eXBlID09PSAnb2ZmZXJpbmcnXG4gICAgICAgID8gb2ZmZXJpbmdWYWx1ZVxuICAgICAgICA6IChjYXJkLmxpZmUgPz8gMCk7XG4gIHJldHVybiB7XG4gICAgLi4uY2FyZCxcbiAgICBjb3N0OiBjYXJkLnR5cGUgPT09ICdvZmZlcmluZycgPyAwIDogKGNhcmQuY29zdCA/PyAwKSxcbiAgICBvZmZlcmluZ1ZhbHVlLFxuICAgIGxpZmUsXG4gICAgbGVhZGVyTGlmZTogY2FyZC50eXBlID09PSAnbGVhZGVyJyA/IChjYXJkLmxlYWRlckxpZmUgPz8gbGlmZSkgOiBjYXJkLmxlYWRlckxpZmUsXG4gICAgYXR0YWNrOiBjYXJkLnR5cGUgPT09ICdjaGFyYWN0ZXInID8gKGNhcmQuYXR0YWNrID8/IDApIDogY2FyZC5hdHRhY2ssXG4gICAgYWJpbGl0eU5hbWU6IGNhcmQuYWJpbGl0eU5hbWUgPz8gY2FyZC5hYmlsaXRpZXM/LlswXT8ubmFtZSxcbiAgICBhYmlsaXR5VGV4dDogY2FyZC5hYmlsaXR5VGV4dCA/PyBjYXJkLmFiaWxpdGllcz8uWzBdPy50ZXh0LFxuICAgIHZlcnNlVGV4dCxcbiAgICBzY3JpcHR1cmUsXG4gICAgZWRpdGlvbjogY2FyZC5lZGl0aW9uID8/IGNhdGFsb2cuZWRpdGlvbj8uaWQgPz8gJ0dFTicsXG4gICAgZWRpdGlvbk51bWJlcjogY2FyZC5lZGl0aW9uTnVtYmVyID8/IGNhdGFsb2cuZWRpdGlvbj8ubnVtYmVyLFxuICAgIGVkaXRpb25JY29uLFxuICAgIGltYWdlVXJsOiBjYXJkLmltYWdlVXJsID8/IGNhcmQuYXJ0Py5pbWFnZVVybCxcbiAgICBhdXRob3I6IGNhcmQuYXV0aG9yID8/IGNhcmQuYXJ0Py5hcnRpc3RDcmVkaXQsXG4gICAgeWVhcjogY2FyZC55ZWFyID8/ICcyMDI2JyxcbiAgICBmcm9udFRlbXBsYXRlOiBjYXJkLmZyb250VGVtcGxhdGUgPz8gJ2dlbmVzaXMtY2xhc3NpYycsXG4gIH07XG59XG4iXX0=
|