@firestone-hs/simulate-bgs-battle 1.1.702 → 1.1.704
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/dist/board-entity.d.ts +1 -0
- package/dist/board-entity.js.map +1 -1
- package/dist/cards/impl/minion/abyssal-bruiser.js +14 -6
- package/dist/cards/impl/minion/abyssal-bruiser.js.map +1 -1
- package/dist/cards/impl/minion/banana-slamma.js +1 -1
- package/dist/cards/impl/minion/banana-slamma.js.map +1 -1
- package/dist/cards/impl/minion/beetle.js +7 -3
- package/dist/cards/impl/minion/beetle.js.map +1 -1
- package/dist/cards/impl/minion/bellowing-tyrant.js +7 -3
- package/dist/cards/impl/minion/bellowing-tyrant.js.map +1 -1
- package/dist/cards/impl/minion/diremuck-forager.js +5 -2
- package/dist/cards/impl/minion/diremuck-forager.js.map +1 -1
- package/dist/cards/impl/minion/falling-sky-golem.js +14 -6
- package/dist/cards/impl/minion/falling-sky-golem.js.map +1 -1
- package/dist/cards/impl/minion/karmic-chameleon.js +2 -0
- package/dist/cards/impl/minion/karmic-chameleon.js.map +1 -1
- package/dist/cards/impl/minion/malorne.js +12 -4
- package/dist/cards/impl/minion/malorne.js.map +1 -1
- package/dist/cards/impl/minion/raptor-elder.js +12 -4
- package/dist/cards/impl/minion/raptor-elder.js.map +1 -1
- package/dist/cards/impl/minion/reckless-cliffdiver.js +6 -2
- package/dist/cards/impl/minion/reckless-cliffdiver.js.map +1 -1
- package/dist/cards/impl/minion/ride-or-die.js +6 -2
- package/dist/cards/impl/minion/ride-or-die.js.map +1 -1
- package/dist/cards/impl/minion/ruthless-queensguard.js +1 -8
- package/dist/cards/impl/minion/ruthless-queensguard.js.map +1 -1
- package/dist/cards/impl/minion/sanlayn-scribe.js +1 -1
- package/dist/cards/impl/minion/sanlayn-scribe.js.map +1 -1
- package/dist/cards/impl/minion/scarlet-survivor.js +11 -7
- package/dist/cards/impl/minion/scarlet-survivor.js.map +1 -1
- package/dist/cards/impl/minion/spellbound-soul.js +12 -4
- package/dist/cards/impl/minion/spellbound-soul.js.map +1 -1
- package/dist/cards/impl/minion/stomping-stegodon-enchantment.js +2 -2
- package/dist/cards/impl/minion/stomping-stegodon-enchantment.js.map +1 -1
- package/dist/cards/impl/minion/stomping-stegodon.js +2 -1
- package/dist/cards/impl/minion/stomping-stegodon.js.map +1 -1
- package/dist/cards/impl/minion/timewarped-chameleon.js +2 -0
- package/dist/cards/impl/minion/timewarped-chameleon.js.map +1 -1
- package/dist/cards/impl/minion/timewarped-magnanimoose.js +5 -2
- package/dist/cards/impl/minion/timewarped-magnanimoose.js.map +1 -1
- package/dist/cards/impl/trinket/slamma-sticker.js +1 -1
- package/dist/cards/impl/trinket/slamma-sticker.js.map +1 -1
- package/dist/simulation/add-minion-to-board.d.ts +10 -2
- package/dist/simulation/add-minion-to-board.js +231 -81
- package/dist/simulation/add-minion-to-board.js.map +1 -1
- package/dist/simulation/after-attack.js +2 -0
- package/dist/simulation/after-attack.js.map +1 -1
- package/dist/simulation/attack.js +2 -0
- package/dist/simulation/attack.js.map +1 -1
- package/dist/simulation/pending-effects.d.ts +4 -0
- package/dist/simulation/pending-effects.js +23 -0
- package/dist/simulation/pending-effects.js.map +1 -0
- package/dist/simulation/remove-minion-from-board.d.ts +1 -1
- package/dist/simulation/remove-minion-from-board.js +5 -3
- package/dist/simulation/remove-minion-from-board.js.map +1 -1
- package/dist/simulation/simulator.js +2 -0
- package/dist/simulation/simulator.js.map +1 -1
- package/dist/simulation/start-of-combat/start-of-combat.js +2 -0
- package/dist/simulation/start-of-combat/start-of-combat.js.map +1 -1
- package/dist/simulation/stats.d.ts +1 -1
- package/dist/simulation/stats.js +3 -3
- package/dist/simulation/stats.js.map +1 -1
- package/package.json +1 -1
package/dist/board-entity.d.ts
CHANGED
package/dist/board-entity.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"board-entity.js","sourceRoot":"","sources":["../src/board-entity.ts"],"names":[],"mappings":"","sourcesContent":["export interface BoardEntity {\r\n\tentityId: number;\r\n\tcardId: string;\r\n\tattack: number;\r\n\thealth: number;\r\n\r\n\tmaxHealth?: number;\r\n\tmaxAttack?: number;\r\n\tavengeCurrent?: number;\r\n\tavengeDefault?: number;\r\n\tfrenzyChargesLeft?: number;\r\n\tdefinitelyDead?: boolean;\r\n\ttaunt?: boolean;\r\n\tdivineShield?: boolean;\r\n\tstrongDivineShield?: boolean;\r\n\tpoisonous?: boolean;\r\n\tvenomous?: boolean;\r\n\treborn?: boolean;\r\n\trebornFromEntityId?: number;\r\n\tcleave?: boolean;\r\n\twindfury?: boolean;\r\n\tstealth?: boolean;\r\n\tenchantments?: BoardEnchantment[];\r\n\tpendingAttackBuffs?: number[];\r\n\tscriptDataNum1?: number;\r\n\tscriptDataNum2?: number;\r\n\tscriptDataNum3?: number;\r\n\tscriptDataNum4?: number;\r\n\tscriptDataNum5?: number;\r\n\tscriptDataNum6?: number;\r\n\tinInitialState?: boolean;\r\n\t// For Build-An-Undead and Zilliax\r\n\tadditionalCards?: readonly string[] | null;\r\n\tdynamicInfo?: readonly any[] | null;\r\n\ttags?: { [tag: number]: number };\r\n\r\n\t// When using this as a remembered deathrattle\r\n\toriginalCardId?: string;\r\n\r\n\t// We only store the card id, because we want all the attack and other data to be computed at runtime, based on the\r\n\t// current stats of the Fish\r\n\trememberedDeathrattles?: BoardEnchantment[];\r\n\tdeathrattleRepeats?: number;\r\n\tdamageMultiplier?: number;\r\n\tlocked?: boolean;\r\n\tfriendly?: boolean;\r\n\tcantAttack?: boolean;\r\n\thasAttacked?: number;\r\n\timmuneWhenAttackCharges?: number;\r\n\tattackImmediately?: boolean;\r\n\t// Used only to handle murkeye aura?\r\n\tpreviousAttack?: number;\r\n\tlastAffectedByEntity?: BoardEntity;\r\n\t// attacking?: boolean;\r\n\t// Did it have divine shield at least once? (for Sinrunner Blanchy)\r\n\thadDivineShield?: boolean;\r\n\tabiityChargesLeft?: number;\r\n\tindexFromLeftAtTimeOfDeath?: number;\r\n\tspawnIndexFromRight?: number;\r\n\r\n\t// permanentAttack?: number;\r\n\t// permanentHealth?: number;\r\n\ttavernTier?: number;\r\n\r\n\tmemory?: any;\r\n\tgildedInCombat?: boolean;\r\n\r\n\tonCanceledSummon?: () => void;\r\n}\r\n\r\nexport interface BoardEnchantment {\r\n\tcardId: string;\r\n\toriginEntityId?: number;\r\n\ttagScriptDataNum1?: number;\r\n\ttagScriptDataNum2?: number;\r\n\ttiming: number;\r\n\trepeats?: number;\r\n\tvalue?: number;\r\n\tmemory?: any;\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"board-entity.js","sourceRoot":"","sources":["../src/board-entity.ts"],"names":[],"mappings":"","sourcesContent":["export interface BoardEntity {\r\n\tentityId: number;\r\n\tcardId: string;\r\n\tattack: number;\r\n\thealth: number;\r\n\r\n\tmaxHealth?: number;\r\n\tmaxAttack?: number;\r\n\tavengeCurrent?: number;\r\n\tavengeDefault?: number;\r\n\tfrenzyChargesLeft?: number;\r\n\tdefinitelyDead?: boolean;\r\n\ttaunt?: boolean;\r\n\tdivineShield?: boolean;\r\n\tstrongDivineShield?: boolean;\r\n\tpoisonous?: boolean;\r\n\tvenomous?: boolean;\r\n\treborn?: boolean;\r\n\trebornFromEntityId?: number;\r\n\tcleave?: boolean;\r\n\twindfury?: boolean;\r\n\tstealth?: boolean;\r\n\tenchantments?: BoardEnchantment[];\r\n\tpendingAttackBuffs?: number[];\r\n\tscriptDataNum1?: number;\r\n\tscriptDataNum2?: number;\r\n\tscriptDataNum3?: number;\r\n\tscriptDataNum4?: number;\r\n\tscriptDataNum5?: number;\r\n\tscriptDataNum6?: number;\r\n\tinInitialState?: boolean;\r\n\t// For Build-An-Undead and Zilliax\r\n\tadditionalCards?: readonly string[] | null;\r\n\tdynamicInfo?: readonly any[] | null;\r\n\ttags?: { [tag: number]: number };\r\n\r\n\t// When using this as a remembered deathrattle\r\n\toriginalCardId?: string;\r\n\r\n\t// We only store the card id, because we want all the attack and other data to be computed at runtime, based on the\r\n\t// current stats of the Fish\r\n\trememberedDeathrattles?: BoardEnchantment[];\r\n\tdeathrattleRepeats?: number;\r\n\tdamageMultiplier?: number;\r\n\tlocked?: boolean;\r\n\tfriendly?: boolean;\r\n\tcantAttack?: boolean;\r\n\thasAttacked?: number;\r\n\timmuneWhenAttackCharges?: number;\r\n\tattackImmediately?: boolean;\r\n\t// Used only to handle murkeye aura?\r\n\tpreviousAttack?: number;\r\n\tlastAffectedByEntity?: BoardEntity;\r\n\t// attacking?: boolean;\r\n\t// Did it have divine shield at least once? (for Sinrunner Blanchy)\r\n\thadDivineShield?: boolean;\r\n\tabiityChargesLeft?: number;\r\n\tindexFromLeftAtTimeOfDeath?: number;\r\n\tspawnIndexFromRight?: number;\r\n\r\n\t// permanentAttack?: number;\r\n\t// permanentHealth?: number;\r\n\ttavernTier?: number;\r\n\r\n\tmemory?: any;\r\n\tgildedInCombat?: boolean;\r\n\r\n\tonCanceledSummon?: () => void;\r\n\tonResolve?: (() => void)[];\r\n}\r\n\r\nexport interface BoardEnchantment {\r\n\tcardId: string;\r\n\toriginEntityId?: number;\r\n\ttagScriptDataNum1?: number;\r\n\ttagScriptDataNum2?: number;\r\n\ttiming: number;\r\n\trepeats?: number;\r\n\tvalue?: number;\r\n\tmemory?: any;\r\n}\r\n"]}
|
|
@@ -8,10 +8,14 @@ exports.AbyssalBruiser = {
|
|
|
8
8
|
var _a;
|
|
9
9
|
const mult = minion.cardId === "BG35_921_G" ? 2 : 1;
|
|
10
10
|
const n = (_a = input.hero.globalInfo.TavernSpellsCastThisGame) !== null && _a !== void 0 ? _a : 0;
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
11
|
+
if (input.applyAttackAuras) {
|
|
12
|
+
minion.attack += n * mult;
|
|
13
|
+
minion.maxAttack = minion.attack;
|
|
14
|
+
}
|
|
15
|
+
if (input.applyHealthAuras) {
|
|
16
|
+
minion.health += n * mult;
|
|
17
|
+
minion.maxHealth = Math.max(minion.maxHealth, minion.health);
|
|
18
|
+
}
|
|
15
19
|
const otherHero = input.gameState.gameState.player.player === input.hero
|
|
16
20
|
? input.gameState.gameState.opponent.player
|
|
17
21
|
: input.gameState.gameState.player.player;
|
|
@@ -21,8 +25,12 @@ exports.AbyssalBruiser = {
|
|
|
21
25
|
var _a;
|
|
22
26
|
const mult = minion.cardId === "BG35_921_G" ? 2 : 1;
|
|
23
27
|
const n = (_a = input.hero.globalInfo.TavernSpellsCastThisGame) !== null && _a !== void 0 ? _a : 0;
|
|
24
|
-
|
|
25
|
-
|
|
28
|
+
if (input.applyAttackAuras) {
|
|
29
|
+
minion.attack = Math.max(0, minion.attack - n * mult);
|
|
30
|
+
}
|
|
31
|
+
if (input.applyHealthAuras) {
|
|
32
|
+
minion.health = Math.max(1, minion.health - n * mult);
|
|
33
|
+
}
|
|
26
34
|
},
|
|
27
35
|
};
|
|
28
36
|
//# sourceMappingURL=abyssal-bruiser.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abyssal-bruiser.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/abyssal-bruiser.ts"],"names":[],"mappings":";;;AACA,mEAAqE;AAKxD,QAAA,cAAc,GAAoC;IAC9D,OAAO,EAAE,0BAAoE;IAC7E,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAmB,EAAE,EAAE;;QACvD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAsC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,MAAM,CAAC,GAAG,MAAA,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,wBAAwB,mCAAI,CAAC,CAAC;QAC9D,MAAM,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"abyssal-bruiser.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/abyssal-bruiser.ts"],"names":[],"mappings":";;;AACA,mEAAqE;AAKxD,QAAA,cAAc,GAAoC;IAC9D,OAAO,EAAE,0BAAoE;IAC7E,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAmB,EAAE,EAAE;;QACvD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAsC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,MAAM,CAAC,GAAG,MAAA,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,wBAAwB,mCAAI,CAAC,CAAC;QAC9D,IAAI,KAAK,CAAC,gBAAgB,EAAE;YAC3B,MAAM,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC;YAC1B,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;SACjC;QACD,IAAI,KAAK,CAAC,gBAAgB,EAAE;YAC3B,MAAM,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC;YAC1B,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;SAC7D;QACD,MAAM,SAAS,GACd,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,KAAK,KAAK,CAAC,IAAI;YACrD,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM;YAC3C,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;QAC5C,IAAA,kCAAkB,EAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACvF,CAAC;IACD,WAAW,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;;QAC3D,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAsC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,MAAM,CAAC,GAAG,MAAA,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,wBAAwB,mCAAI,CAAC,CAAC;QAC9D,IAAI,KAAK,CAAC,gBAAgB,EAAE;YAC3B,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;SACtD;QACD,IAAI,KAAK,CAAC,gBAAgB,EAAE;YAC3B,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;SACtD;IACF,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { updateDivineShield } from '../../../keywords/divine-shield';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { OnDespawnInput, OnSpawnInput } from '../../../simulation/add-minion-to-board';\r\nimport { OnDespawnedCard, OnSpawnedCard } from '../../card.interface';\r\n\r\nexport const AbyssalBruiser: OnDespawnedCard & OnSpawnedCard = {\r\n\tcardIds: [CardIds.AbyssalBruiser_BG35_921, CardIds.AbyssalBruiser_BG35_921_G],\r\n\tonSpawned: (minion: BoardEntity, input: OnSpawnInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.AbyssalBruiser_BG35_921_G ? 2 : 1;\r\n\t\tconst n = input.hero.globalInfo.TavernSpellsCastThisGame ?? 0;\r\n\t\tif (input.applyAttackAuras) {\r\n\t\t\tminion.attack += n * mult;\r\n\t\t\tminion.maxAttack = minion.attack;\r\n\t\t}\r\n\t\tif (input.applyHealthAuras) {\r\n\t\t\tminion.health += n * mult;\r\n\t\t\tminion.maxHealth = Math.max(minion.maxHealth, minion.health);\r\n\t\t}\r\n\t\tconst otherHero =\r\n\t\t\tinput.gameState.gameState.player.player === input.hero\r\n\t\t\t\t? input.gameState.gameState.opponent.player\r\n\t\t\t\t: input.gameState.gameState.player.player;\r\n\t\tupdateDivineShield(minion, input.board, input.hero, otherHero, true, input.gameState);\r\n\t},\r\n\tonDespawned: (minion: BoardEntity, input: OnDespawnInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.AbyssalBruiser_BG35_921_G ? 2 : 1;\r\n\t\tconst n = input.hero.globalInfo.TavernSpellsCastThisGame ?? 0;\r\n\t\tif (input.applyAttackAuras) {\r\n\t\t\tminion.attack = Math.max(0, minion.attack - n * mult);\r\n\t\t}\r\n\t\tif (input.applyHealthAuras) {\r\n\t\t\tminion.health = Math.max(1, minion.health - n * mult);\r\n\t\t}\r\n\t},\r\n};\r\n"]}
|
|
@@ -16,7 +16,7 @@ exports.BananaSlamma = {
|
|
|
16
16
|
return;
|
|
17
17
|
}
|
|
18
18
|
const mult = slam.cardId === "BG26_802_G" ? 3 : 2;
|
|
19
|
-
(0, stats_1.setEntityStats)(spawned, spawned.attack * mult,
|
|
19
|
+
(0, stats_1.setEntityStats)(spawned, spawned.attack * mult, spawned.health, board, hero, gameState, true, false);
|
|
20
20
|
gameState.spectator.registerPowerTarget(slam, spawned, board, null, null);
|
|
21
21
|
},
|
|
22
22
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"banana-slamma.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/banana-slamma.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAKpD,qDAA2D;AAC3D,0CAAiD;AAGpC,QAAA,YAAY,GAA0B;IAClD,OAAO,EAAE,0BAAgE;IACzE,iBAAiB,EAAE,CAAC,MAAkC,EAAE,KAAwB,EAAE,EAAE;QACnF,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;QAClD,MAAM,IAAI,GAAG,MAAqB,CAAC;QACnC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,EAAE;YACnD,OAAO;SACP;QACD,IAAI,CAAC,IAAA,uBAAe,EAAC,OAAO,EAAE,IAAI,EAAE,qBAAI,CAAC,KAAK,EAAE,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,QAAQ,CAAC,EAAE;YACzF,OAAO;SACP;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,iBAAoC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrE,IAAA,sBAAc,
|
|
1
|
+
{"version":3,"file":"banana-slamma.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/banana-slamma.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAKpD,qDAA2D;AAC3D,0CAAiD;AAGpC,QAAA,YAAY,GAA0B;IAClD,OAAO,EAAE,0BAAgE;IACzE,iBAAiB,EAAE,CAAC,MAAkC,EAAE,KAAwB,EAAE,EAAE;QACnF,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;QAClD,MAAM,IAAI,GAAG,MAAqB,CAAC;QACnC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,EAAE;YACnD,OAAO;SACP;QACD,IAAI,CAAC,IAAA,uBAAe,EAAC,OAAO,EAAE,IAAI,EAAE,qBAAI,CAAC,KAAK,EAAE,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,QAAQ,CAAC,EAAE;YACzF,OAAO;SACP;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,iBAAoC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrE,IAAA,sBAAc,EACb,OAAO,EACP,OAAO,CAAC,MAAM,GAAG,IAAI,EACrB,OAAO,CAAC,MAAM,EACd,KAAK,EACL,IAAuB,EACvB,SAAS,EACT,IAAI,EACJ,KAAK,CACL,CAAC;QACF,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC3E,CAAC;CACD,CAAC","sourcesContent":["import { Race } from '@firestone-hs/reference-data';\r\nimport { BgsPlayerEntity, BoardTrinket } from '../../../bgs-player-entity';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { OnOtherSpawnInput } from '../../../simulation/add-minion-to-board';\r\nimport { setEntityStats } from '../../../simulation/stats';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { AfterOtherSpawnedCard } from '../../card.interface';\r\n\r\nexport const BananaSlamma: AfterOtherSpawnedCard = {\r\n\tcardIds: [CardIds.BananaSlamma_BG26_802, CardIds.BananaSlamma_BG26_802_G],\r\n\tafterOtherSpawned: (minion: BoardEntity | BoardTrinket, input: OnOtherSpawnInput) => {\r\n\t\tconst { spawned, board, hero, gameState } = input;\r\n\t\tconst slam = minion as BoardEntity;\r\n\t\tif (!spawned || spawned.entityId === slam.entityId) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (!hasCorrectTribe(spawned, hero, Race.BEAST, gameState.anomalies, gameState.allCards)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst mult = slam.cardId === CardIds.BananaSlamma_BG26_802_G ? 3 : 2;\r\n\t\tsetEntityStats(\r\n\t\t\tspawned,\r\n\t\t\tspawned.attack * mult,\r\n\t\t\tspawned.health,\r\n\t\t\tboard,\r\n\t\t\thero as BgsPlayerEntity,\r\n\t\t\tgameState,\r\n\t\t\ttrue,\r\n\t\t\tfalse,\r\n\t\t);\r\n\t\tgameState.spectator.registerPowerTarget(slam, spawned, board, null, null);\r\n\t},\r\n};\r\n"]}
|
|
@@ -6,11 +6,15 @@ exports.Beetle = {
|
|
|
6
6
|
cardIds: ["BG28_603t", "BG28_603t_G"],
|
|
7
7
|
onSpawned: (minion, input) => {
|
|
8
8
|
var _a, _b;
|
|
9
|
-
(0, stats_1.modifyStats)(minion, minion, 1 * ((_a = input.hero.globalInfo.BeetleAttackBuff) !== null && _a !== void 0 ? _a : 0), 1 * ((_b = input.hero.globalInfo.BeetleHealthBuff) !== null && _b !== void 0 ? _b : 0), input.board, input.hero, input.gameState, false);
|
|
9
|
+
(0, stats_1.modifyStats)(minion, minion, input.applyAttackAuras ? 1 * ((_a = input.hero.globalInfo.BeetleAttackBuff) !== null && _a !== void 0 ? _a : 0) : 0, input.applyHealthAuras ? 1 * ((_b = input.hero.globalInfo.BeetleHealthBuff) !== null && _b !== void 0 ? _b : 0) : 0, input.board, input.hero, input.gameState, false);
|
|
10
10
|
},
|
|
11
11
|
onDespawned: (minion, input) => {
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
if (input.applyAttackAuras) {
|
|
13
|
+
minion.attack = Math.max(0, minion.attack - input.hero.globalInfo.BeetleAttackBuff);
|
|
14
|
+
}
|
|
15
|
+
if (input.applyHealthAuras) {
|
|
16
|
+
minion.health = Math.max(1, minion.health - input.hero.globalInfo.BeetleHealthBuff);
|
|
17
|
+
}
|
|
14
18
|
},
|
|
15
19
|
};
|
|
16
20
|
//# sourceMappingURL=beetle.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"beetle.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/beetle.ts"],"names":[],"mappings":";;;AAGA,qDAAwD;AAG3C,QAAA,MAAM,GAAoC;IACtD,OAAO,EAAE,4BAAyE;IAClF,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAmB,EAAE,EAAE;;QACvD,IAAA,mBAAW,EACV,MAAM,EACN,MAAM,EACN,CAAC,GAAG,CAAC,MAAA,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,mCAAI,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"beetle.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/beetle.ts"],"names":[],"mappings":";;;AAGA,qDAAwD;AAG3C,QAAA,MAAM,GAAoC;IACtD,OAAO,EAAE,4BAAyE;IAClF,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAmB,EAAE,EAAE;;QACvD,IAAA,mBAAW,EACV,MAAM,EACN,MAAM,EACN,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAA,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,mCAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAC9E,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAA,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,mCAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAC9E,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,SAAS,EACf,KAAK,CACL,CAAC;IACH,CAAC;IACD,WAAW,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;QAC3D,IAAI,KAAK,CAAC,gBAAgB,EAAE;YAC3B,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;SACpF;QACD,IAAI,KAAK,CAAC,gBAAgB,EAAE;YAC3B,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;SACpF;IACF,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { OnDespawnInput, OnSpawnInput } from '../../../simulation/add-minion-to-board';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { OnDespawnedCard, OnSpawnedCard } from '../../card.interface';\r\n\r\nexport const Beetle: OnSpawnedCard & OnDespawnedCard = {\r\n\tcardIds: [CardIds.BoonOfBeetles_BeetleToken_BG28_603t, CardIds.Beetle_BG28_603t_G],\r\n\tonSpawned: (minion: BoardEntity, input: OnSpawnInput) => {\r\n\t\tmodifyStats(\r\n\t\t\tminion,\r\n\t\t\tminion,\r\n\t\t\tinput.applyAttackAuras ? 1 * (input.hero.globalInfo.BeetleAttackBuff ?? 0) : 0,\r\n\t\t\tinput.applyHealthAuras ? 1 * (input.hero.globalInfo.BeetleHealthBuff ?? 0) : 0,\r\n\t\t\tinput.board,\r\n\t\t\tinput.hero,\r\n\t\t\tinput.gameState,\r\n\t\t\tfalse,\r\n\t\t);\r\n\t},\r\n\tonDespawned: (minion: BoardEntity, input: OnDespawnInput) => {\r\n\t\tif (input.applyAttackAuras) {\r\n\t\t\tminion.attack = Math.max(0, minion.attack - input.hero.globalInfo.BeetleAttackBuff);\r\n\t\t}\r\n\t\tif (input.applyHealthAuras) {\r\n\t\t\tminion.health = Math.max(1, minion.health - input.hero.globalInfo.BeetleHealthBuff);\r\n\t\t}\r\n\t},\r\n};\r\n"]}
|
|
@@ -12,12 +12,16 @@ exports.BellowingTyrant = {
|
|
|
12
12
|
input.hero.globalInfo.BeastsSummonedThisGame += 1;
|
|
13
13
|
const mult = minion.cardId === "BG31_361_G" ? 2 : 1;
|
|
14
14
|
const statsBonus = mult * input.hero.globalInfo.BeastsSummonedThisGame;
|
|
15
|
-
(0, stats_1.modifyStats)(minion, minion, bellowingTyrantAttack * statsBonus, bellowingTyrantHealth * statsBonus, input.board, input.hero, input.gameState);
|
|
15
|
+
(0, stats_1.modifyStats)(minion, minion, input.applyAttackAuras ? bellowingTyrantAttack * statsBonus : 0, input.applyHealthAuras ? bellowingTyrantHealth * statsBonus : 0, input.board, input.hero, input.gameState);
|
|
16
16
|
},
|
|
17
17
|
onDespawned: (minion, input) => {
|
|
18
18
|
const mult = minion.cardId === "BG31_361_G" ? 2 : 1;
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
if (input.applyAttackAuras) {
|
|
20
|
+
minion.attack = Math.max(0, minion.attack - bellowingTyrantAttack * mult * input.hero.globalInfo.BeastsSummonedThisGame);
|
|
21
|
+
}
|
|
22
|
+
if (input.applyHealthAuras) {
|
|
23
|
+
minion.health = Math.max(1, minion.health - bellowingTyrantHealth * mult * input.hero.globalInfo.BeastsSummonedThisGame);
|
|
24
|
+
}
|
|
21
25
|
},
|
|
22
26
|
onOtherSpawned: (minion, input) => {
|
|
23
27
|
if (!(0, utils_1.hasCorrectTribe)(input.spawned, input.hero, reference_data_1.Race.BEAST, input.gameState.anomalies, input.gameState.allCards)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bellowing-tyrant.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/bellowing-tyrant.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"bellowing-tyrant.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/bellowing-tyrant.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAIpD,qDAAwD;AACxD,0CAAiD;AAGjD,MAAM,qBAAqB,GAAG,CAAC,CAAC;AAChC,MAAM,qBAAqB,GAAG,CAAC,CAAC;AAEnB,QAAA,eAAe,GAAyD;IACpF,OAAO,EAAE,0BAAsE;IAC/E,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAmB,EAAE,EAAE;QACvD,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,sBAAsB,IAAI,CAAC,CAAC;QAClD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAuC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1E,MAAM,UAAU,GAAG,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC;QACvE,IAAA,mBAAW,EACV,MAAM,EACN,MAAM,EACN,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,qBAAqB,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,EAC/D,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,qBAAqB,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,EAC/D,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,SAAS,CACf,CAAC;IACH,CAAC;IACD,WAAW,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;QAC3D,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAuC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1E,IAAI,KAAK,CAAC,gBAAgB,EAAE;YAC3B,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CACvB,CAAC,EACD,MAAM,CAAC,MAAM,GAAG,qBAAqB,GAAG,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAC3F,CAAC;SACF;QACD,IAAI,KAAK,CAAC,gBAAgB,EAAE;YAC3B,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CACvB,CAAC,EACD,MAAM,CAAC,MAAM,GAAG,qBAAqB,GAAG,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAC3F,CAAC;SACF;IACF,CAAC;IACD,cAAc,EAAE,CAAC,MAAmB,EAAE,KAAwB,EAAE,EAAE;QACjE,IACC,CAAC,IAAA,uBAAe,EAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,qBAAI,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,EAC3G;YACD,OAAO;SACP;QACD,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,sBAAsB,IAAI,CAAC,CAAC;QAClD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAuC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1E,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC;QAC5B,IAAA,mBAAW,EACV,MAAM,EACN,MAAM,EACN,qBAAqB,GAAG,UAAU,EAClC,qBAAqB,GAAG,UAAU,EAClC,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,SAAS,CACf,CAAC;IACH,CAAC;CACD,CAAC","sourcesContent":["import { Race } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { OnDespawnInput, OnOtherSpawnInput, OnSpawnInput } from '../../../simulation/add-minion-to-board';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { OnDespawnedCard, OnOtherSpawnedCard, OnSpawnedCard } from '../../card.interface';\r\n\r\nconst bellowingTyrantAttack = 4;\r\nconst bellowingTyrantHealth = 3;\r\n\r\nexport const BellowingTyrant: OnSpawnedCard & OnOtherSpawnedCard & OnDespawnedCard = {\r\n\tcardIds: [CardIds.BellowingTyrant_BG31_361, CardIds.BellowingTyrant_BG31_361_G],\r\n\tonSpawned: (minion: BoardEntity, input: OnSpawnInput) => {\r\n\t\tinput.hero.globalInfo.BeastsSummonedThisGame += 1;\r\n\t\tconst mult = minion.cardId === CardIds.BellowingTyrant_BG31_361_G ? 2 : 1;\r\n\t\tconst statsBonus = mult * input.hero.globalInfo.BeastsSummonedThisGame;\r\n\t\tmodifyStats(\r\n\t\t\tminion,\r\n\t\t\tminion,\r\n\t\t\tinput.applyAttackAuras ? bellowingTyrantAttack * statsBonus : 0,\r\n\t\t\tinput.applyHealthAuras ? bellowingTyrantHealth * statsBonus : 0,\r\n\t\t\tinput.board,\r\n\t\t\tinput.hero,\r\n\t\t\tinput.gameState,\r\n\t\t);\r\n\t},\r\n\tonDespawned: (minion: BoardEntity, input: OnDespawnInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.BellowingTyrant_BG31_361_G ? 2 : 1;\r\n\t\tif (input.applyAttackAuras) {\r\n\t\t\tminion.attack = Math.max(\r\n\t\t\t\t0,\r\n\t\t\t\tminion.attack - bellowingTyrantAttack * mult * input.hero.globalInfo.BeastsSummonedThisGame,\r\n\t\t\t);\r\n\t\t}\r\n\t\tif (input.applyHealthAuras) {\r\n\t\t\tminion.health = Math.max(\r\n\t\t\t\t1,\r\n\t\t\t\tminion.health - bellowingTyrantHealth * mult * input.hero.globalInfo.BeastsSummonedThisGame,\r\n\t\t\t);\r\n\t\t}\r\n\t},\r\n\tonOtherSpawned: (minion: BoardEntity, input: OnOtherSpawnInput) => {\r\n\t\tif (\r\n\t\t\t!hasCorrectTribe(input.spawned, input.hero, Race.BEAST, input.gameState.anomalies, input.gameState.allCards)\r\n\t\t) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tinput.hero.globalInfo.BeastsSummonedThisGame += 1;\r\n\t\tconst mult = minion.cardId === CardIds.BellowingTyrant_BG31_361_G ? 2 : 1;\r\n\t\tconst statsBonus = mult * 1;\r\n\t\tmodifyStats(\r\n\t\t\tminion,\r\n\t\t\tminion,\r\n\t\t\tbellowingTyrantAttack * statsBonus,\r\n\t\t\tbellowingTyrantHealth * statsBonus,\r\n\t\t\tinput.board,\r\n\t\t\tinput.hero,\r\n\t\t\tinput.gameState,\r\n\t\t);\r\n\t},\r\n};\r\n"]}
|
|
@@ -49,8 +49,8 @@ exports.DiremuckForager = {
|
|
|
49
49
|
cardIds: ["BG27_556", "BG27_556_G"],
|
|
50
50
|
startOfCombatTiming: 'start-of-combat',
|
|
51
51
|
startOfCombat: (minion, input) => {
|
|
52
|
+
var _a;
|
|
52
53
|
const allCards = input.gameState.allCards;
|
|
53
|
-
input.playerEntity.globalInfo.DiremuckPendingSummons = undefined;
|
|
54
54
|
const totalWanted = minion.cardId === "BG27_556_G" ? 2 : 1;
|
|
55
55
|
const predicate = handMinionPredicate(allCards);
|
|
56
56
|
let remaining = totalWanted;
|
|
@@ -64,7 +64,10 @@ exports.DiremuckForager = {
|
|
|
64
64
|
remaining--;
|
|
65
65
|
}
|
|
66
66
|
if (remaining > 0) {
|
|
67
|
-
input.playerEntity.globalInfo.DiremuckPendingSummons = [
|
|
67
|
+
input.playerEntity.globalInfo.DiremuckPendingSummons = [
|
|
68
|
+
...((_a = input.playerEntity.globalInfo.DiremuckPendingSummons) !== null && _a !== void 0 ? _a : []),
|
|
69
|
+
{ foragerEntityId: minion.entityId, remaining },
|
|
70
|
+
];
|
|
68
71
|
}
|
|
69
72
|
return true;
|
|
70
73
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diremuck-forager.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/diremuck-forager.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"diremuck-forager.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/diremuck-forager.ts"],"names":[],"mappings":"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","sourcesContent":["/**\r\n * Diremuck Forager (Tier 4, 5/6)\r\n * Start of Combat: When you have space, summon the highest-Attack minion from your hand for this combat only.\r\n *\r\n * Golden Diremuck Forager (Tier 4, 10/12)\r\n * Start of Combat: When you have space, summon the two highest-Attack minions from your hand for this combat only.\r\n */\r\nimport { BgsPlayerEntity } from '../../../bgs-player-entity';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { getHighestAttackHandMinions, isHandMinionCandidate } from '../../../services/hand-minion-priority';\r\nimport { spawnEntities } from '../../../simulation/deathrattle-spawns';\r\nimport { FullGameState } from '../../../simulation/internal-game-state';\r\nimport { performEntitySpawns } from '../../../simulation/spawns';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\nimport { StartOfCombatCard } from '../../card.interface';\r\n\r\nconst handMinionPredicate = (allCards: FullGameState['allCards']) => (e: BoardEntity) =>\r\n\t!!e.maxHealth && isHandMinionCandidate(e, (id) => allCards.getCard(id).type?.toUpperCase());\r\n\r\n/** If the Forager died after SOC, pass `null` — summons still resolve (spawn source = hero, index from right = 0). */\r\nconst summonHandMinionFromDiremuck = (\r\n\tforager: BoardEntity | null,\r\n\thandTarget: BoardEntity,\r\n\tplayerBoard: BoardEntity[],\r\n\tplayerEntity: BgsPlayerEntity,\r\n\topponentBoard: BoardEntity[],\r\n\topponentEntity: BgsPlayerEntity,\r\n\tgameState: FullGameState,\r\n): void => {\r\n\thandTarget.locked = true;\r\n\tconst friendly = forager?.friendly ?? playerEntity.friendly;\r\n\tconst newMinions = spawnEntities(\r\n\t\thandTarget.cardId,\r\n\t\t1,\r\n\t\tplayerBoard,\r\n\t\tplayerEntity,\r\n\t\topponentBoard,\r\n\t\topponentEntity,\r\n\t\tgameState,\r\n\t\tfriendly,\r\n\t\tfalse,\r\n\t\tfalse,\r\n\t\ttrue,\r\n\t\t{ ...handTarget } as BoardEntity,\r\n\t);\r\n\tfor (const s of newMinions) {\r\n\t\ts.onCanceledSummon = () => (handTarget.locked = false);\r\n\t}\r\n\tconst spawnSource = forager ?? playerEntity;\r\n\tconst indexFromRight = 0;\r\n\tperformEntitySpawns(\r\n\t\tnewMinions,\r\n\t\tplayerBoard,\r\n\t\tplayerEntity,\r\n\t\tspawnSource,\r\n\t\tindexFromRight,\r\n\t\topponentBoard,\r\n\t\topponentEntity,\r\n\t\tgameState,\r\n\t);\r\n};\r\n\r\n/** Called from `summon-when-space` when board space opens during start-of-combat. */\r\nexport const handleDiremuckPendingSummons = (\r\n\tplayerBoard: BoardEntity[],\r\n\tplayerEntity: BgsPlayerEntity,\r\n\topponentBoard: BoardEntity[],\r\n\topponentEntity: BgsPlayerEntity,\r\n\tgameState: FullGameState,\r\n): void => {\r\n\tconst raw = playerEntity.globalInfo?.DiremuckPendingSummons;\r\n\tif (!raw?.length) {\r\n\t\treturn;\r\n\t}\r\n\tconst allCards = gameState.allCards;\r\n\tconst predicate = handMinionPredicate(allCards);\r\n\tconst nextQueue: { foragerEntityId: number; remaining: number }[] = [];\r\n\r\n\tfor (const entry of raw) {\r\n\t\tlet remaining = entry.remaining;\r\n\t\tconst forager = playerBoard.find((e) => e.entityId === entry.foragerEntityId) ?? null;\r\n\t\twhile (playerBoard.length < 7 && remaining > 0) {\r\n\t\t\tconst targets = getHighestAttackHandMinions(playerEntity.hand, 1, predicate);\r\n\t\t\tconst handTarget = targets[0];\r\n\t\t\tif (!handTarget?.cardId || handTarget.locked) {\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tsummonHandMinionFromDiremuck(\r\n\t\t\t\tforager,\r\n\t\t\t\thandTarget,\r\n\t\t\t\tplayerBoard,\r\n\t\t\t\tplayerEntity,\r\n\t\t\t\topponentBoard,\r\n\t\t\t\topponentEntity,\r\n\t\t\t\tgameState,\r\n\t\t\t);\r\n\t\t\tremaining--;\r\n\t\t}\r\n\t\tif (remaining > 0) {\r\n\t\t\tnextQueue.push({ foragerEntityId: entry.foragerEntityId, remaining });\r\n\t\t}\r\n\t}\r\n\tplayerEntity.globalInfo.DiremuckPendingSummons = nextQueue.length ? nextQueue : undefined;\r\n};\r\n\r\nexport const DiremuckForager: StartOfCombatCard = {\r\n\tcardIds: [CardIds.DiremuckForager_BG27_556, CardIds.DiremuckForager_BG27_556_G],\r\n\tstartOfCombatTiming: 'start-of-combat',\r\n\tstartOfCombat: (minion: BoardEntity, input: SoCInput) => {\r\n\t\tconst allCards = input.gameState.allCards;\r\n\t\t// Don't clear the info, as multiple Diremuck Foragers can be on the board at the same time,\r\n\t\t// and they stack\r\n\t\t// input.playerEntity.globalInfo.DiremuckPendingSummons = undefined;\r\n\r\n\t\tconst totalWanted = minion.cardId === CardIds.DiremuckForager_BG27_556_G ? 2 : 1;\r\n\t\tconst predicate = handMinionPredicate(allCards);\r\n\r\n\t\tlet remaining = totalWanted;\r\n\t\twhile (remaining > 0 && input.playerBoard.length < 7) {\r\n\t\t\tconst targets = getHighestAttackHandMinions(input.playerEntity.hand, 1, predicate);\r\n\t\t\tconst target = targets[0];\r\n\t\t\tif (!target?.cardId || target.locked) {\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tsummonHandMinionFromDiremuck(\r\n\t\t\t\tminion,\r\n\t\t\t\ttarget,\r\n\t\t\t\tinput.playerBoard,\r\n\t\t\t\tinput.playerEntity,\r\n\t\t\t\tinput.opponentBoard,\r\n\t\t\t\tinput.opponentEntity,\r\n\t\t\t\tinput.gameState,\r\n\t\t\t);\r\n\t\t\tremaining--;\r\n\t\t}\r\n\r\n\t\tif (remaining > 0) {\r\n\t\t\tinput.playerEntity.globalInfo.DiremuckPendingSummons = [\r\n\t\t\t\t...(input.playerEntity.globalInfo.DiremuckPendingSummons ?? []),\r\n\t\t\t\t{ foragerEntityId: minion.entityId, remaining },\r\n\t\t\t];\r\n\t\t}\r\n\t\treturn true;\r\n\t},\r\n};\r\n"]}
|
|
@@ -10,10 +10,14 @@ exports.FallingSkyGolem = {
|
|
|
10
10
|
const n = (_a = input.hero.globalInfo.DeathrattlesTriggeredThisGame) !== null && _a !== void 0 ? _a : 0;
|
|
11
11
|
const atk = 4 * mult * n;
|
|
12
12
|
const hp = 2 * mult * n;
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
13
|
+
if (input.applyAttackAuras) {
|
|
14
|
+
minion.attack += atk;
|
|
15
|
+
minion.maxAttack = minion.attack;
|
|
16
|
+
}
|
|
17
|
+
if (input.applyHealthAuras) {
|
|
18
|
+
minion.health += hp;
|
|
19
|
+
minion.maxHealth = Math.max(minion.maxHealth, minion.health);
|
|
20
|
+
}
|
|
17
21
|
const otherHero = input.gameState.gameState.player.player === input.hero
|
|
18
22
|
? input.gameState.gameState.opponent.player
|
|
19
23
|
: input.gameState.gameState.player.player;
|
|
@@ -25,8 +29,12 @@ exports.FallingSkyGolem = {
|
|
|
25
29
|
const n = (_a = input.hero.globalInfo.DeathrattlesTriggeredThisGame) !== null && _a !== void 0 ? _a : 0;
|
|
26
30
|
const atk = 4 * mult * n;
|
|
27
31
|
const hp = 2 * mult * n;
|
|
28
|
-
|
|
29
|
-
|
|
32
|
+
if (input.applyAttackAuras) {
|
|
33
|
+
minion.attack = Math.max(0, minion.attack - atk);
|
|
34
|
+
}
|
|
35
|
+
if (input.applyHealthAuras) {
|
|
36
|
+
minion.health = Math.max(1, minion.health - hp);
|
|
37
|
+
}
|
|
30
38
|
},
|
|
31
39
|
};
|
|
32
40
|
//# sourceMappingURL=falling-sky-golem.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"falling-sky-golem.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/falling-sky-golem.ts"],"names":[],"mappings":";;;AACA,mEAAqE;AAKxD,QAAA,eAAe,GAAoC;IAC/D,OAAO,EAAE,0BAAsE;IAC/E,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAmB,EAAE,EAAE;;QACvD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAuC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1E,MAAM,CAAC,GAAG,MAAA,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,6BAA6B,mCAAI,CAAC,CAAC;QACnE,MAAM,GAAG,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;QACzB,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;QACxB,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"falling-sky-golem.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/falling-sky-golem.ts"],"names":[],"mappings":";;;AACA,mEAAqE;AAKxD,QAAA,eAAe,GAAoC;IAC/D,OAAO,EAAE,0BAAsE;IAC/E,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAmB,EAAE,EAAE;;QACvD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAuC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1E,MAAM,CAAC,GAAG,MAAA,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,6BAA6B,mCAAI,CAAC,CAAC;QACnE,MAAM,GAAG,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;QACzB,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;QACxB,IAAI,KAAK,CAAC,gBAAgB,EAAE;YAC3B,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC;YACrB,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;SACjC;QACD,IAAI,KAAK,CAAC,gBAAgB,EAAE;YAC3B,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC;YACpB,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;SAC7D;QACD,MAAM,SAAS,GACd,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,KAAK,KAAK,CAAC,IAAI;YACrD,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM;YAC3C,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;QAC5C,IAAA,kCAAkB,EAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACvF,CAAC;IACD,WAAW,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;;QAC3D,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAuC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1E,MAAM,CAAC,GAAG,MAAA,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,6BAA6B,mCAAI,CAAC,CAAC;QACnE,MAAM,GAAG,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;QACzB,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;QACxB,IAAI,KAAK,CAAC,gBAAgB,EAAE;YAC3B,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;SACjD;QACD,IAAI,KAAK,CAAC,gBAAgB,EAAE;YAC3B,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;SAChD;IACF,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { updateDivineShield } from '../../../keywords/divine-shield';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { OnDespawnInput, OnSpawnInput } from '../../../simulation/add-minion-to-board';\r\nimport { OnDespawnedCard, OnSpawnedCard } from '../../card.interface';\r\n\r\nexport const FallingSkyGolem: OnDespawnedCard & OnSpawnedCard = {\r\n\tcardIds: [CardIds.FallingSkyGolem_BG35_342, CardIds.FallingSkyGolem_BG35_342_G],\r\n\tonSpawned: (minion: BoardEntity, input: OnSpawnInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.FallingSkyGolem_BG35_342_G ? 2 : 1;\r\n\t\tconst n = input.hero.globalInfo.DeathrattlesTriggeredThisGame ?? 0;\r\n\t\tconst atk = 4 * mult * n;\r\n\t\tconst hp = 2 * mult * n;\r\n\t\tif (input.applyAttackAuras) {\r\n\t\t\tminion.attack += atk;\r\n\t\t\tminion.maxAttack = minion.attack;\r\n\t\t}\r\n\t\tif (input.applyHealthAuras) {\r\n\t\t\tminion.health += hp;\r\n\t\t\tminion.maxHealth = Math.max(minion.maxHealth, minion.health);\r\n\t\t}\r\n\t\tconst otherHero =\r\n\t\t\tinput.gameState.gameState.player.player === input.hero\r\n\t\t\t\t? input.gameState.gameState.opponent.player\r\n\t\t\t\t: input.gameState.gameState.player.player;\r\n\t\tupdateDivineShield(minion, input.board, input.hero, otherHero, true, input.gameState);\r\n\t},\r\n\tonDespawned: (minion: BoardEntity, input: OnDespawnInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.FallingSkyGolem_BG35_342_G ? 2 : 1;\r\n\t\tconst n = input.hero.globalInfo.DeathrattlesTriggeredThisGame ?? 0;\r\n\t\tconst atk = 4 * mult * n;\r\n\t\tconst hp = 2 * mult * n;\r\n\t\tif (input.applyAttackAuras) {\r\n\t\t\tminion.attack = Math.max(0, minion.attack - atk);\r\n\t\t}\r\n\t\tif (input.applyHealthAuras) {\r\n\t\t\tminion.health = Math.max(1, minion.health - hp);\r\n\t\t}\r\n\t},\r\n};\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"karmic-chameleon.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/karmic-chameleon.ts"],"names":[],"mappings":";;;AAGA,6DAAoE;AACpE,0CAA4C;AAC5C,yDAAgE;AAChE,sDAAiD;AAEpC,QAAA,eAAe,GAAe;IAC1C,OAAO,EAAE,0BAAsE;IAC/E,eAAe,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC;IACtC,MAAM,EAAE,CAAC,MAAmB,EAAE,KAAkB,EAAE,EAAE;QACnD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;QAC3E,MAAM,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC9F,IAAI,cAAc,GAAG,CAAC,EAAE;YACvB,MAAM,eAAe,GAAG,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC;YAClD,IAAI,CAAC,CAAC,eAAe,EAAE;gBACtB,MAAM,KAAK,GAAgB;oBAC1B,GAAG,IAAA,kBAAU,EAAC,eAAe,CAAC;oBAC9B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,eAAe,EAAE;iBACvD,CAAC;gBACF,IAAI,MAAM,CAAC,MAAM,iBAAuC,EAAE;oBACzD,IAAA,yBAAgB,EACf,KAAK,EACL,MAAM,EACN,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,SAAS,CACf,CAAC;iBACF;gBACD,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;gBAC7C,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAC5C,MAAM,EACN,eAAe,EACf,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,SAAS,CACf,CAAC;gBAEF,MAAM,aAAa,GAAG,6BAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBACjD,IAAI,IAAA,6BAAY,EAAC,aAAa,CAAC,EAAE;oBAChC,aAAa,CAAC,SAAS,CAAC,KAAK,EAAE;wBAC9B,IAAI,EAAE,KAAK,CAAC,IAAI;wBAChB,KAAK,EAAE,KAAK;wBACZ,SAAS,EAAE,KAAK,CAAC,SAAS;
|
|
1
|
+
{"version":3,"file":"karmic-chameleon.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/karmic-chameleon.ts"],"names":[],"mappings":";;;AAGA,6DAAoE;AACpE,0CAA4C;AAC5C,yDAAgE;AAChE,sDAAiD;AAEpC,QAAA,eAAe,GAAe;IAC1C,OAAO,EAAE,0BAAsE;IAC/E,eAAe,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC;IACtC,MAAM,EAAE,CAAC,MAAmB,EAAE,KAAkB,EAAE,EAAE;QACnD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;QAC3E,MAAM,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC9F,IAAI,cAAc,GAAG,CAAC,EAAE;YACvB,MAAM,eAAe,GAAG,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC;YAClD,IAAI,CAAC,CAAC,eAAe,EAAE;gBACtB,MAAM,KAAK,GAAgB;oBAC1B,GAAG,IAAA,kBAAU,EAAC,eAAe,CAAC;oBAC9B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,eAAe,EAAE;iBACvD,CAAC;gBACF,IAAI,MAAM,CAAC,MAAM,iBAAuC,EAAE;oBACzD,IAAA,yBAAgB,EACf,KAAK,EACL,MAAM,EACN,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,SAAS,CACf,CAAC;iBACF;gBACD,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;gBAC7C,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAC5C,MAAM,EACN,eAAe,EACf,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,SAAS,CACf,CAAC;gBAEF,MAAM,aAAa,GAAG,6BAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBACjD,IAAI,IAAA,6BAAY,EAAC,aAAa,CAAC,EAAE;oBAChC,aAAa,CAAC,SAAS,CAAC,KAAK,EAAE;wBAC9B,IAAI,EAAE,KAAK,CAAC,IAAI;wBAChB,KAAK,EAAE,KAAK;wBACZ,SAAS,EAAE,KAAK,CAAC,SAAS;wBAC1B,gBAAgB,EAAE,IAAI;wBACtB,gBAAgB,EAAE,IAAI;qBACtB,CAAC,CAAC;iBACH;aACD;SACD;IACF,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { AvengeInput } from '../../../simulation/avenge';\r\nimport { makeMinionGolden } from '../../../simulation/utils/golden';\r\nimport { copyEntity } from '../../../utils';\r\nimport { AvengeCard, hasOnSpawned } from '../../card.interface';\r\nimport { cardMappings } from '../_card-mappings';\r\n\r\nexport const KarmicChameleon: AvengeCard = {\r\n\tcardIds: [CardIds.KarmicChameleon_BG31_802, CardIds.KarmicChameleon_BG31_802_G],\r\n\tbaseAvengeValue: (cardId: string) => 5,\r\n\tavenge: (minion: BoardEntity, input: AvengeInput) => {\r\n\t\tconst board = input.board.filter((e) => e.health > 0 && !e.definitelyDead);\r\n\t\tconst chameleonIndex = input.board.findIndex((entity) => entity.entityId === minion.entityId);\r\n\t\tif (chameleonIndex > 0) {\r\n\t\t\tconst minionToTheLeft = board[chameleonIndex - 1];\r\n\t\t\tif (!!minionToTheLeft) {\r\n\t\t\t\tconst clone: BoardEntity = {\r\n\t\t\t\t\t...copyEntity(minionToTheLeft),\r\n\t\t\t\t\tentityId: input.gameState.sharedState.currentEntityId++,\r\n\t\t\t\t};\r\n\t\t\t\tif (minion.cardId === CardIds.KarmicChameleon_BG31_802_G) {\r\n\t\t\t\t\tmakeMinionGolden(\r\n\t\t\t\t\t\tclone,\r\n\t\t\t\t\t\tminion,\r\n\t\t\t\t\t\tinput.board,\r\n\t\t\t\t\t\tinput.hero,\r\n\t\t\t\t\t\tinput.otherBoard,\r\n\t\t\t\t\t\tinput.otherHero,\r\n\t\t\t\t\t\tinput.gameState,\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\t\t\t\tinput.board.splice(chameleonIndex, 1, clone);\r\n\t\t\t\tinput.gameState.spectator.registerPowerTarget(\r\n\t\t\t\t\tminion,\r\n\t\t\t\t\tminionToTheLeft,\r\n\t\t\t\t\tinput.board,\r\n\t\t\t\t\tinput.hero,\r\n\t\t\t\t\tinput.otherHero,\r\n\t\t\t\t);\r\n\t\t\t\t// Also need to apply the aura, if it has one\r\n\t\t\t\tconst onSpawnedImpl = cardMappings[clone.cardId];\r\n\t\t\t\tif (hasOnSpawned(onSpawnedImpl)) {\r\n\t\t\t\t\tonSpawnedImpl.onSpawned(clone, {\r\n\t\t\t\t\t\thero: input.hero,\r\n\t\t\t\t\t\tboard: board,\r\n\t\t\t\t\t\tgameState: input.gameState,\r\n\t\t\t\t\t\tapplyAttackAuras: true,\r\n\t\t\t\t\t\tapplyHealthAuras: true,\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n};\r\n"]}
|
|
@@ -7,15 +7,23 @@ exports.Malorne = {
|
|
|
7
7
|
const mult = minion.cardId === "BG32_HERO_001_Buddy_G" ? 2 : 1;
|
|
8
8
|
const totalGoldSpent = input.hero.globalInfo.GoldSpentThisGame;
|
|
9
9
|
const baseBuff = Math.floor(totalGoldSpent / 3);
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
if (input.applyAttackAuras) {
|
|
11
|
+
minion.attack += baseBuff * mult;
|
|
12
|
+
}
|
|
13
|
+
if (input.applyHealthAuras) {
|
|
14
|
+
minion.health += baseBuff * mult;
|
|
15
|
+
}
|
|
12
16
|
},
|
|
13
17
|
onDespawned: (minion, input) => {
|
|
14
18
|
const mult = minion.cardId === "BG32_HERO_001_Buddy_G" ? 2 : 1;
|
|
15
19
|
const totalGoldSpent = input.hero.globalInfo.GoldSpentThisGame;
|
|
16
20
|
const baseBuff = Math.floor(totalGoldSpent / 3);
|
|
17
|
-
|
|
18
|
-
|
|
21
|
+
if (input.applyAttackAuras) {
|
|
22
|
+
minion.attack = Math.max(0, minion.attack - baseBuff * mult);
|
|
23
|
+
}
|
|
24
|
+
if (input.applyHealthAuras) {
|
|
25
|
+
minion.health = Math.max(1, minion.health - baseBuff * mult);
|
|
26
|
+
}
|
|
19
27
|
},
|
|
20
28
|
};
|
|
21
29
|
//# sourceMappingURL=malorne.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"malorne.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/malorne.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"malorne.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/malorne.ts"],"names":[],"mappings":";;;AAKa,QAAA,OAAO,GAAoC;IACvD,OAAO,EAAE,gDAA4E;IACrF,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAmB,EAAE,EAAE;QACvD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,4BAA0C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7E,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC;QAC/D,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC;QAChD,IAAI,KAAK,CAAC,gBAAgB,EAAE;YAC3B,MAAM,CAAC,MAAM,IAAI,QAAQ,GAAG,IAAI,CAAC;SACjC;QACD,IAAI,KAAK,CAAC,gBAAgB,EAAE;YAC3B,MAAM,CAAC,MAAM,IAAI,QAAQ,GAAG,IAAI,CAAC;SACjC;IACF,CAAC;IACD,WAAW,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;QAC3D,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,4BAA0C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7E,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC;QAC/D,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC;QAChD,IAAI,KAAK,CAAC,gBAAgB,EAAE;YAC3B,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,QAAQ,GAAG,IAAI,CAAC,CAAC;SAC7D;QACD,IAAI,KAAK,CAAC,gBAAgB,EAAE;YAC3B,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,QAAQ,GAAG,IAAI,CAAC,CAAC;SAC7D;IACF,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { OnDespawnInput, OnSpawnInput } from '../../../simulation/add-minion-to-board';\r\nimport { OnDespawnedCard, OnSpawnedCard } from '../../card.interface';\r\n\r\nexport const Malorne: OnDespawnedCard & OnSpawnedCard = {\r\n\tcardIds: [CardIds.Malorne_BG32_HERO_001_Buddy, CardIds.Malorne_BG32_HERO_001_Buddy_G],\r\n\tonSpawned: (minion: BoardEntity, input: OnSpawnInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.Malorne_BG32_HERO_001_Buddy_G ? 2 : 1;\r\n\t\tconst totalGoldSpent = input.hero.globalInfo.GoldSpentThisGame;\r\n\t\tconst baseBuff = Math.floor(totalGoldSpent / 3);\r\n\t\tif (input.applyAttackAuras) {\r\n\t\t\tminion.attack += baseBuff * mult;\r\n\t\t}\r\n\t\tif (input.applyHealthAuras) {\r\n\t\t\tminion.health += baseBuff * mult;\r\n\t\t}\r\n\t},\r\n\tonDespawned: (minion: BoardEntity, input: OnDespawnInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.Malorne_BG32_HERO_001_Buddy_G ? 2 : 1;\r\n\t\tconst totalGoldSpent = input.hero.globalInfo.GoldSpentThisGame;\r\n\t\tconst baseBuff = Math.floor(totalGoldSpent / 3);\r\n\t\tif (input.applyAttackAuras) {\r\n\t\t\tminion.attack = Math.max(0, minion.attack - baseBuff * mult);\r\n\t\t}\r\n\t\tif (input.applyHealthAuras) {\r\n\t\t\tminion.health = Math.max(1, minion.health - baseBuff * mult);\r\n\t\t}\r\n\t},\r\n};\r\n"]}
|
|
@@ -13,8 +13,12 @@ exports.RaptorElder = {
|
|
|
13
13
|
const targets = input.board
|
|
14
14
|
.filter((e) => (0, utils_1.hasCorrectTribe)(e, input.hero, reference_data_1.Race.BEAST, input.gameState.anomalies, input.gameState.allCards));
|
|
15
15
|
for (const target of targets) {
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
if (input.applyAttackAuras) {
|
|
17
|
+
target.attack += attackBuff * baseBuff;
|
|
18
|
+
}
|
|
19
|
+
if (input.applyHealthAuras) {
|
|
20
|
+
target.health += healthBuff * baseBuff;
|
|
21
|
+
}
|
|
18
22
|
}
|
|
19
23
|
},
|
|
20
24
|
onDespawned: (minion, input) => {
|
|
@@ -24,8 +28,12 @@ exports.RaptorElder = {
|
|
|
24
28
|
.filter((e) => e !== minion)
|
|
25
29
|
.filter((e) => (0, utils_1.hasCorrectTribe)(e, input.hero, reference_data_1.Race.BEAST, input.gameState.anomalies, input.gameState.allCards));
|
|
26
30
|
for (const target of targets) {
|
|
27
|
-
|
|
28
|
-
|
|
31
|
+
if (input.applyAttackAuras) {
|
|
32
|
+
target.attack = Math.max(0, target.attack - attackBuff * baseBuff);
|
|
33
|
+
}
|
|
34
|
+
if (input.applyHealthAuras) {
|
|
35
|
+
target.health = Math.max(1, target.health - healthBuff * baseBuff);
|
|
36
|
+
}
|
|
29
37
|
}
|
|
30
38
|
},
|
|
31
39
|
onOtherSpawned: (minion, input) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"raptor-elder.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/raptor-elder.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAIpD,0CAAiD;AAGjD,MAAM,UAAU,GAAG,CAAC,CAAC;AACrB,MAAM,UAAU,GAAG,CAAC,CAAC;AAER,QAAA,WAAW,GAAyD;IAChF,OAAO,EAAE,0BAA8D;IACvE,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAmB,EAAE,EAAE;QACvD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAmC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtE,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,wBAAwB,GAAG,IAAI,CAAC;QACvE,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK;aAEzB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CACb,IAAA,uBAAe,EAAC,CAAC,EAAE,KAAK,CAAC,IAAI,EAAE,qBAAI,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAC/F,CAAC;QACH,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC7B,MAAM,CAAC,MAAM,IAAI,UAAU,GAAG,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"raptor-elder.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/raptor-elder.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAIpD,0CAAiD;AAGjD,MAAM,UAAU,GAAG,CAAC,CAAC;AACrB,MAAM,UAAU,GAAG,CAAC,CAAC;AAER,QAAA,WAAW,GAAyD;IAChF,OAAO,EAAE,0BAA8D;IACvE,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAmB,EAAE,EAAE;QACvD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAmC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtE,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,wBAAwB,GAAG,IAAI,CAAC;QACvE,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK;aAEzB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CACb,IAAA,uBAAe,EAAC,CAAC,EAAE,KAAK,CAAC,IAAI,EAAE,qBAAI,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAC/F,CAAC;QACH,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC7B,IAAI,KAAK,CAAC,gBAAgB,EAAE;gBAC3B,MAAM,CAAC,MAAM,IAAI,UAAU,GAAG,QAAQ,CAAC;aACvC;YACD,IAAI,KAAK,CAAC,gBAAgB,EAAE;gBAC3B,MAAM,CAAC,MAAM,IAAI,UAAU,GAAG,QAAQ,CAAC;aACvC;SACD;IACF,CAAC;IACD,WAAW,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;QAC3D,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAmC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtE,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,wBAAwB,GAAG,IAAI,CAAC;QACvE,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK;aACzB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC;aAC3B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CACb,IAAA,uBAAe,EAAC,CAAC,EAAE,KAAK,CAAC,IAAI,EAAE,qBAAI,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAC/F,CAAC;QACH,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC7B,IAAI,KAAK,CAAC,gBAAgB,EAAE;gBAC3B,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,UAAU,GAAG,QAAQ,CAAC,CAAC;aACnE;YACD,IAAI,KAAK,CAAC,gBAAgB,EAAE;gBAC3B,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,UAAU,GAAG,QAAQ,CAAC,CAAC;aACnE;SACD;IACF,CAAC;IACD,cAAc,EAAE,CAAC,MAAmB,EAAE,KAAwB,EAAE,EAAE;QACjE,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAmC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtE,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,wBAAwB,GAAG,IAAI,CAAC;QAEvE,IACC,KAAK,CAAC,cAAc;YACpB,IAAA,uBAAe,EAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,qBAAI,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,EAC1G;YACD,KAAK,CAAC,OAAO,CAAC,MAAM,IAAI,UAAU,GAAG,QAAQ,CAAC;YAC9C,KAAK,CAAC,OAAO,CAAC,MAAM,IAAI,UAAU,GAAG,QAAQ,CAAC;SAC9C;QAGD,IACC,IAAA,uBAAe,EAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,qBAAI,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,EAC1G;YACD,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAC3C,IAAA,uBAAe,EAAC,CAAC,EAAE,KAAK,CAAC,IAAI,EAAE,qBAAI,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAC/F,CAAC;YACF,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE;gBAEhC,MAAM,CAAC,MAAM,IAAI,UAAU,GAAG,IAAI,CAAC;gBACnC,MAAM,CAAC,MAAM,IAAI,UAAU,GAAG,IAAI,CAAC;aACnC;SACD;IACF,CAAC;CACD,CAAC","sourcesContent":["import { Race } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { OnDespawnInput, OnOtherSpawnInput, OnSpawnInput } from '../../../simulation/add-minion-to-board';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { OnDespawnedCard, OnOtherSpawnedCard, OnSpawnedCard } from '../../card.interface';\r\n\r\nconst attackBuff = 3;\r\nconst healthBuff = 2;\r\n\r\nexport const RaptorElder: OnSpawnedCard & OnOtherSpawnedCard & OnDespawnedCard = {\r\n\tcardIds: [CardIds.RaptorElder_BG33_842, CardIds.RaptorElder_BG33_842_G],\r\n\tonSpawned: (minion: BoardEntity, input: OnSpawnInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.RaptorElder_BG33_842_G ? 2 : 1;\r\n\t\tconst baseBuff = input.hero.globalInfo.BeastsSummonedThisCombat * mult;\r\n\t\tconst targets = input.board\r\n\t\t\t// .filter((e) => e !== minion)\r\n\t\t\t.filter((e) =>\r\n\t\t\t\thasCorrectTribe(e, input.hero, Race.BEAST, input.gameState.anomalies, input.gameState.allCards),\r\n\t\t\t);\r\n\t\tfor (const target of targets) {\r\n\t\t\tif (input.applyAttackAuras) {\r\n\t\t\t\ttarget.attack += attackBuff * baseBuff;\r\n\t\t\t}\r\n\t\t\tif (input.applyHealthAuras) {\r\n\t\t\t\ttarget.health += healthBuff * baseBuff;\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\tonDespawned: (minion: BoardEntity, input: OnDespawnInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.RaptorElder_BG33_842_G ? 2 : 1;\r\n\t\tconst baseBuff = input.hero.globalInfo.BeastsSummonedThisCombat * mult;\r\n\t\tconst targets = input.board\r\n\t\t\t.filter((e) => e !== minion)\r\n\t\t\t.filter((e) =>\r\n\t\t\t\thasCorrectTribe(e, input.hero, Race.BEAST, input.gameState.anomalies, input.gameState.allCards),\r\n\t\t\t);\r\n\t\tfor (const target of targets) {\r\n\t\t\tif (input.applyAttackAuras) {\r\n\t\t\t\ttarget.attack = Math.max(0, target.attack - attackBuff * baseBuff);\r\n\t\t\t}\r\n\t\t\tif (input.applyHealthAuras) {\r\n\t\t\t\ttarget.health = Math.max(1, target.health - healthBuff * baseBuff);\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\tonOtherSpawned: (minion: BoardEntity, input: OnOtherSpawnInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.RaptorElder_BG33_842_G ? 2 : 1;\r\n\t\tconst baseBuff = input.hero.globalInfo.BeastsSummonedThisCombat * mult;\r\n\t\t// First put the minion itself in the aura\r\n\t\tif (\r\n\t\t\tinput.applySelfAuras &&\r\n\t\t\thasCorrectTribe(input.spawned, input.hero, Race.BEAST, input.gameState.anomalies, input.gameState.allCards)\r\n\t\t) {\r\n\t\t\tinput.spawned.attack += attackBuff * baseBuff;\r\n\t\t\tinput.spawned.health += healthBuff * baseBuff;\r\n\t\t}\r\n\r\n\t\t// Then update the aura\r\n\t\tif (\r\n\t\t\thasCorrectTribe(input.spawned, input.hero, Race.BEAST, input.gameState.anomalies, input.gameState.allCards)\r\n\t\t) {\r\n\t\t\tconst allTargets = input.board.filter((e) =>\r\n\t\t\t\thasCorrectTribe(e, input.hero, Race.BEAST, input.gameState.anomalies, input.gameState.allCards),\r\n\t\t\t);\r\n\t\t\tfor (const target of allTargets) {\r\n\t\t\t\t// Only the new spawn should increase the data, as we've already applied the aura before\r\n\t\t\t\ttarget.attack += attackBuff * mult;\r\n\t\t\t\ttarget.health += healthBuff * mult;\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n};\r\n"]}
|
|
@@ -9,11 +9,15 @@ exports.RecklessCliffdiver = {
|
|
|
9
9
|
},
|
|
10
10
|
onSpawned: (minion, input) => {
|
|
11
11
|
const mult = minion.cardId === "BG31_142_G" ? 2 : 1;
|
|
12
|
-
|
|
12
|
+
if (input.applyAttackAuras) {
|
|
13
|
+
minion.attack += mult * input.hero.globalInfo.BattlecriesTriggeredThisGame;
|
|
14
|
+
}
|
|
13
15
|
},
|
|
14
16
|
onDespawned: (minion, input) => {
|
|
15
17
|
const mult = minion.cardId === "BG31_142_G" ? 2 : 1;
|
|
16
|
-
|
|
18
|
+
if (input.applyAttackAuras) {
|
|
19
|
+
minion.attack = Math.max(0, minion.attack - 2 * mult);
|
|
20
|
+
}
|
|
17
21
|
},
|
|
18
22
|
};
|
|
19
23
|
//# sourceMappingURL=reckless-cliffdiver.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reckless-cliffdiver.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/reckless-cliffdiver.ts"],"names":[],"mappings":";;;AAMa,QAAA,kBAAkB,GAA+D;IAC7F,OAAO,EAAE,0BAA4E;IACrF,oBAAoB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAAE,EAAE;QAC/E,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAA0C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7E,MAAM,CAAC,MAAM,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,4BAA4B,CAAC;IAC5E,CAAC;IACD,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAmB,EAAE,EAAE;QACvD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAA0C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7E,MAAM,CAAC,MAAM,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"reckless-cliffdiver.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/reckless-cliffdiver.ts"],"names":[],"mappings":";;;AAMa,QAAA,kBAAkB,GAA+D;IAC7F,OAAO,EAAE,0BAA4E;IACrF,oBAAoB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAAE,EAAE;QAC/E,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAA0C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7E,MAAM,CAAC,MAAM,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,4BAA4B,CAAC;IAC5E,CAAC;IACD,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAmB,EAAE,EAAE;QACvD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAA0C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7E,IAAI,KAAK,CAAC,gBAAgB,EAAE;YAC3B,MAAM,CAAC,MAAM,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,4BAA4B,CAAC;SAC3E;IACF,CAAC;IACD,WAAW,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;QAC3D,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAA0C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7E,IAAI,KAAK,CAAC,gBAAgB,EAAE;YAC3B,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;SACtD;IACF,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { OnDespawnInput, OnSpawnInput } from '../../../simulation/add-minion-to-board';\r\nimport { OnBattlecryTriggeredInput } from '../../../simulation/battlecries';\r\nimport { OnBattlecryTriggeredCard, OnDespawnedCard, OnSpawnedCard } from '../../card.interface';\r\n\r\nexport const RecklessCliffdiver: OnSpawnedCard & OnDespawnedCard & OnBattlecryTriggeredCard = {\r\n\tcardIds: [CardIds.RecklessCliffdiver_BG31_142, CardIds.RecklessCliffdiver_BG31_142_G],\r\n\tonBattlecryTriggered: (minion: BoardEntity, input: OnBattlecryTriggeredInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.RecklessCliffdiver_BG31_142_G ? 2 : 1;\r\n\t\tminion.attack += mult * input.hero.globalInfo.BattlecriesTriggeredThisGame;\r\n\t},\r\n\tonSpawned: (minion: BoardEntity, input: OnSpawnInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.RecklessCliffdiver_BG31_142_G ? 2 : 1;\r\n\t\tif (input.applyAttackAuras) {\r\n\t\t\tminion.attack += mult * input.hero.globalInfo.BattlecriesTriggeredThisGame;\r\n\t\t}\r\n\t},\r\n\tonDespawned: (minion: BoardEntity, input: OnDespawnInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.RecklessCliffdiver_BG31_142_G ? 2 : 1;\r\n\t\tif (input.applyAttackAuras) {\r\n\t\t\tminion.attack = Math.max(0, minion.attack - 2 * mult);\r\n\t\t}\r\n\t},\r\n};\r\n"]}
|
|
@@ -12,7 +12,9 @@ exports.RideOrDie = {
|
|
|
12
12
|
.filter((e) => e !== minion)
|
|
13
13
|
.filter((e) => (0, utils_1.hasCorrectTribe)(e, input.hero, reference_data_1.Race.UNDEAD, input.gameState.anomalies, input.gameState.allCards));
|
|
14
14
|
for (const target of targets) {
|
|
15
|
-
|
|
15
|
+
if (input.applyAttackAuras) {
|
|
16
|
+
target.attack += attackBuff * mult;
|
|
17
|
+
}
|
|
16
18
|
}
|
|
17
19
|
},
|
|
18
20
|
onDespawned: (minion, input) => {
|
|
@@ -21,7 +23,9 @@ exports.RideOrDie = {
|
|
|
21
23
|
.filter((e) => e !== minion)
|
|
22
24
|
.filter((e) => (0, utils_1.hasCorrectTribe)(e, input.hero, reference_data_1.Race.UNDEAD, input.gameState.anomalies, input.gameState.allCards));
|
|
23
25
|
for (const target of targets) {
|
|
24
|
-
|
|
26
|
+
if (input.applyAttackAuras) {
|
|
27
|
+
target.attack = Math.max(0, target.attack - attackBuff * mult);
|
|
28
|
+
}
|
|
25
29
|
}
|
|
26
30
|
},
|
|
27
31
|
onOtherSpawned: (minion, input) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ride-or-die.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/ride-or-die.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"ride-or-die.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/ride-or-die.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAIpD,0CAAiD;AAGjD,MAAM,UAAU,GAAG,CAAC,CAAC;AAER,QAAA,SAAS,GAAyD;IAC9E,OAAO,EAAE,0BAA0D;IACnE,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAmB,EAAE,EAAE;QACvD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAiC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpE,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK;aACzB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC;aAC3B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CACb,IAAA,uBAAe,EAAC,CAAC,EAAE,KAAK,CAAC,IAAI,EAAE,qBAAI,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAChG,CAAC;QACH,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC7B,IAAI,KAAK,CAAC,gBAAgB,EAAE;gBAC3B,MAAM,CAAC,MAAM,IAAI,UAAU,GAAG,IAAI,CAAC;aACnC;SACD;IACF,CAAC;IACD,WAAW,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;QAC3D,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAiC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpE,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK;aACzB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC;aAC3B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CACb,IAAA,uBAAe,EAAC,CAAC,EAAE,KAAK,CAAC,IAAI,EAAE,qBAAI,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAChG,CAAC;QACH,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC7B,IAAI,KAAK,CAAC,gBAAgB,EAAE;gBAC3B,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,UAAU,GAAG,IAAI,CAAC,CAAC;aAC/D;SACD;IACF,CAAC;IACD,cAAc,EAAE,CAAC,MAAmB,EAAE,KAAwB,EAAE,EAAE;QACjE,MAAM,KAAK,GAAG,IAAI,CAAC;QACnB,IACC,CAAC,IAAA,uBAAe,EACf,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,IAAI,EACV,qBAAI,CAAC,MAAM,EACX,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,SAAS,CAAC,QAAQ,CACxB,EACA;YACD,OAAO;SACP;QACD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAiC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpE,KAAK,CAAC,OAAO,CAAC,MAAM,IAAI,UAAU,GAAG,IAAI,CAAC;IAC3C,CAAC;CACD,CAAC","sourcesContent":["import { Race } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { OnDespawnInput, OnOtherSpawnInput, OnSpawnInput } from '../../../simulation/add-minion-to-board';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { OnDespawnedCard, OnOtherSpawnedCard, OnSpawnedCard } from '../../card.interface';\r\n\r\nconst attackBuff = 1;\r\n\r\nexport const RideOrDie: OnSpawnedCard & OnOtherSpawnedCard & OnDespawnedCard = {\r\n\tcardIds: [CardIds.RideOrDie_BG33_115, CardIds.RideOrDie_BG33_115_G],\r\n\tonSpawned: (minion: BoardEntity, input: OnSpawnInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.RideOrDie_BG33_115_G ? 2 : 1;\r\n\t\tconst targets = input.board\r\n\t\t\t.filter((e) => e !== minion)\r\n\t\t\t.filter((e) =>\r\n\t\t\t\thasCorrectTribe(e, input.hero, Race.UNDEAD, input.gameState.anomalies, input.gameState.allCards),\r\n\t\t\t);\r\n\t\tfor (const target of targets) {\r\n\t\t\tif (input.applyAttackAuras) {\r\n\t\t\t\ttarget.attack += attackBuff * mult;\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\tonDespawned: (minion: BoardEntity, input: OnDespawnInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.RideOrDie_BG33_115_G ? 2 : 1;\r\n\t\tconst targets = input.board\r\n\t\t\t.filter((e) => e !== minion)\r\n\t\t\t.filter((e) =>\r\n\t\t\t\thasCorrectTribe(e, input.hero, Race.UNDEAD, input.gameState.anomalies, input.gameState.allCards),\r\n\t\t\t);\r\n\t\tfor (const target of targets) {\r\n\t\t\tif (input.applyAttackAuras) {\r\n\t\t\t\ttarget.attack = Math.max(0, target.attack - attackBuff * mult);\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\tonOtherSpawned: (minion: BoardEntity, input: OnOtherSpawnInput) => {\r\n\t\tconst debug = true;\r\n\t\tif (\r\n\t\t\t!hasCorrectTribe(\r\n\t\t\t\tinput.spawned,\r\n\t\t\t\tinput.hero,\r\n\t\t\t\tRace.UNDEAD,\r\n\t\t\t\tinput.gameState.anomalies,\r\n\t\t\t\tinput.gameState.allCards,\r\n\t\t\t)\r\n\t\t) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst mult = minion.cardId === CardIds.RideOrDie_BG33_115_G ? 2 : 1;\r\n\t\tinput.spawned.attack += attackBuff * mult;\r\n\t},\r\n};\r\n"]}
|
|
@@ -2,19 +2,12 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.RuthlessQueensguard = void 0;
|
|
4
4
|
const cast_tavern_spell_1 = require("../../../mechanics/cast-tavern-spell");
|
|
5
|
-
const utils_1 = require("../../../services/utils");
|
|
6
5
|
const castQueensCommand = (times, hero, board, otherBoard, otherHero, gameState) => {
|
|
7
|
-
var _a;
|
|
8
6
|
for (let i = 0; i < times; i++) {
|
|
9
|
-
const alive = board.filter((e) => e.health > 0 && !e.definitelyDead);
|
|
10
|
-
const target = (_a = (0, utils_1.pickRandom)(alive)) !== null && _a !== void 0 ? _a : alive[0];
|
|
11
|
-
if (!target) {
|
|
12
|
-
return;
|
|
13
|
-
}
|
|
14
7
|
(0, cast_tavern_spell_1.castTavernSpell)("BG35_922", {
|
|
15
8
|
spellCardId: "BG35_922",
|
|
16
9
|
source: hero,
|
|
17
|
-
target,
|
|
10
|
+
target: null,
|
|
18
11
|
board,
|
|
19
12
|
hero,
|
|
20
13
|
otherBoard,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ruthless-queensguard.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/ruthless-queensguard.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"ruthless-queensguard.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/ruthless-queensguard.ts"],"names":[],"mappings":";;;AAEA,4EAAuE;AAQvE,MAAM,iBAAiB,GAAG,CACzB,KAAa,EACb,IAAqB,EACrB,KAAoB,EACpB,UAAyB,EACzB,SAA0B,EAC1B,SAAwB,EACjB,EAAE;IACT,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;QAC/B,IAAA,mCAAe,cAAiC;YAC/C,WAAW,YAAgC;YAC3C,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,IAAI;YACZ,KAAK;YACL,IAAI;YACJ,UAAU;YACV,SAAS;YACT,SAAS;SACT,CAAC,CAAC;KACH;AACF,CAAC,CAAC;AAEW,QAAA,mBAAmB,GAAqD;IACpF,OAAO,EAAE,0BAA8E;IACvF,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAW,EAAE;QAClE,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,iBAA2C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/E,iBAAiB,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QACtG,OAAO,IAAI,CAAC;IACb,CAAC;IACD,gBAAgB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAA0B,EAAE;QACnG,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,iBAA2C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/E,iBAAiB,CAChB,KAAK,EACL,KAAK,CAAC,uBAAuB,EAC7B,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,SAAS,CACf,CAAC;QACF,OAAO,EAAE,CAAC;IACX,CAAC;IACD,KAAK,EAAE,CAAC,MAAmB,EAAE,KAAoB,EAAE,EAAE;QACpD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,iBAA2C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/E,iBAAiB,CAChB,KAAK,EACL,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,SAAS,CACf,CAAC;QACF,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;CACD,CAAC","sourcesContent":["import { BgsPlayerEntity } from '../../../bgs-player-entity';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { castTavernSpell } from '../../../mechanics/cast-tavern-spell';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { BattlecryInput } from '../../../simulation/battlecries';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { FullGameState } from '../../../simulation/internal-game-state';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { BattlecryCard, DeathrattleSpawnCard, RallyCard } from '../../card.interface';\r\n\r\nconst castQueensCommand = (\r\n\ttimes: number,\r\n\thero: BgsPlayerEntity,\r\n\tboard: BoardEntity[],\r\n\totherBoard: BoardEntity[],\r\n\totherHero: BgsPlayerEntity,\r\n\tgameState: FullGameState,\r\n): void => {\r\n\tfor (let i = 0; i < times; i++) {\r\n\t\tcastTavernSpell(CardIds.QueensCommand_BG35_922, {\r\n\t\t\tspellCardId: CardIds.QueensCommand_BG35_922,\r\n\t\t\tsource: hero,\r\n\t\t\ttarget: null,\r\n\t\t\tboard,\r\n\t\t\thero,\r\n\t\t\totherBoard,\r\n\t\t\totherHero,\r\n\t\t\tgameState,\r\n\t\t});\r\n\t}\r\n};\r\n\r\nexport const RuthlessQueensguard: BattlecryCard & DeathrattleSpawnCard & RallyCard = {\r\n\tcardIds: [CardIds.RuthlessQueensguard_BG34_926, CardIds.RuthlessQueensguard_BG34_926_G],\r\n\tbattlecry: (minion: BoardEntity, input: BattlecryInput): boolean => {\r\n\t\tconst times = minion.cardId === CardIds.RuthlessQueensguard_BG34_926_G ? 2 : 1;\r\n\t\tcastQueensCommand(times, input.hero, input.board, input.otherBoard, input.otherHero, input.gameState);\r\n\t\treturn true;\r\n\t},\r\n\tdeathrattleSpawn: (minion: BoardEntity, input: DeathrattleTriggeredInput): readonly BoardEntity[] => {\r\n\t\tconst times = minion.cardId === CardIds.RuthlessQueensguard_BG34_926_G ? 2 : 1;\r\n\t\tcastQueensCommand(\r\n\t\t\ttimes,\r\n\t\t\tinput.boardWithDeadEntityHero,\r\n\t\t\tinput.boardWithDeadEntity,\r\n\t\t\tinput.otherBoard,\r\n\t\t\tinput.otherBoardHero,\r\n\t\t\tinput.gameState,\r\n\t\t);\r\n\t\treturn [];\r\n\t},\r\n\trally: (minion: BoardEntity, input: OnAttackInput) => {\r\n\t\tconst times = minion.cardId === CardIds.RuthlessQueensguard_BG34_926_G ? 2 : 1;\r\n\t\tcastQueensCommand(\r\n\t\t\ttimes,\r\n\t\t\tinput.attackingHero,\r\n\t\t\tinput.attackingBoard,\r\n\t\t\tinput.defendingBoard,\r\n\t\t\tinput.defendingHero,\r\n\t\t\tinput.gameState,\r\n\t\t);\r\n\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t},\r\n};\r\n"]}
|
|
@@ -8,7 +8,7 @@ exports.SanlaynScribe = {
|
|
|
8
8
|
onSpawned: (minion, input) => {
|
|
9
9
|
const mult = minion.cardId === "BGDUO31_208" ? 1 : 2;
|
|
10
10
|
const statsBonus = mult * input.hero.globalInfo.SanlaynScribesDeadThisGame;
|
|
11
|
-
(0, stats_1.modifyStats)(minion, minion, 4 * statsBonus, 4 * statsBonus, input.board, input.hero, input.gameState);
|
|
11
|
+
(0, stats_1.modifyStats)(minion, minion, input.applyAttackAuras ? 4 * statsBonus : 0, input.applyHealthAuras ? 4 * statsBonus : 0, input.board, input.hero, input.gameState);
|
|
12
12
|
},
|
|
13
13
|
onDeath: (minion, input) => {
|
|
14
14
|
input.hero.globalInfo.SanlaynScribesDeadThisGame = input.hero.globalInfo.SanlaynScribesDeadThisGame + 1;
|