@firestone-hs/simulate-bgs-battle 1.1.618 → 1.1.619

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (135) hide show
  1. package/dist/cards/card.interface.d.ts +10 -3
  2. package/dist/cards/card.interface.js +5 -3
  3. package/dist/cards/card.interface.js.map +1 -1
  4. package/dist/cards/impl/minion/admiral-eliza-goreblade.d.ts +2 -2
  5. package/dist/cards/impl/minion/admiral-eliza-goreblade.js +1 -1
  6. package/dist/cards/impl/minion/admiral-eliza-goreblade.js.map +1 -1
  7. package/dist/cards/impl/minion/arcane-cannoneer.d.ts +2 -2
  8. package/dist/cards/impl/minion/arcane-cannoneer.js +1 -4
  9. package/dist/cards/impl/minion/arcane-cannoneer.js.map +1 -1
  10. package/dist/cards/impl/minion/battlecruiser.d.ts +2 -2
  11. package/dist/cards/impl/minion/battlecruiser.js +1 -4
  12. package/dist/cards/impl/minion/battlecruiser.js.map +1 -1
  13. package/dist/cards/impl/minion/bigwig-bandit.d.ts +2 -2
  14. package/dist/cards/impl/minion/bigwig-bandit.js +1 -4
  15. package/dist/cards/impl/minion/bigwig-bandit.js.map +1 -1
  16. package/dist/cards/impl/minion/bile-spitter.d.ts +2 -2
  17. package/dist/cards/impl/minion/bile-spitter.js +1 -4
  18. package/dist/cards/impl/minion/bile-spitter.js.map +1 -1
  19. package/dist/cards/impl/minion/bloodsnout-warlord.d.ts +2 -2
  20. package/dist/cards/impl/minion/bloodsnout-warlord.js +1 -1
  21. package/dist/cards/impl/minion/bloodsnout-warlord.js.map +1 -1
  22. package/dist/cards/impl/minion/blue-whelp.d.ts +2 -2
  23. package/dist/cards/impl/minion/blue-whelp.js +1 -4
  24. package/dist/cards/impl/minion/blue-whelp.js.map +1 -1
  25. package/dist/cards/impl/minion/bonker.d.ts +2 -2
  26. package/dist/cards/impl/minion/bonker.js +1 -4
  27. package/dist/cards/impl/minion/bonker.js.map +1 -1
  28. package/dist/cards/impl/minion/campfire-shadow.d.ts +2 -2
  29. package/dist/cards/impl/minion/campfire-shadow.js +1 -4
  30. package/dist/cards/impl/minion/campfire-shadow.js.map +1 -1
  31. package/dist/cards/impl/minion/charmwing.d.ts +2 -2
  32. package/dist/cards/impl/minion/charmwing.js +1 -4
  33. package/dist/cards/impl/minion/charmwing.js.map +1 -1
  34. package/dist/cards/impl/minion/choral-mrrrglr.js +4 -6
  35. package/dist/cards/impl/minion/choral-mrrrglr.js.map +1 -1
  36. package/dist/cards/impl/minion/colossus.d.ts +2 -2
  37. package/dist/cards/impl/minion/colossus.js +1 -4
  38. package/dist/cards/impl/minion/colossus.js.map +1 -1
  39. package/dist/cards/impl/minion/exceptionnal-caretaker.d.ts +2 -2
  40. package/dist/cards/impl/minion/exceptionnal-caretaker.js +1 -4
  41. package/dist/cards/impl/minion/exceptionnal-caretaker.js.map +1 -1
  42. package/dist/cards/impl/minion/geared-guard.d.ts +2 -2
  43. package/dist/cards/impl/minion/geared-guard.js +1 -4
  44. package/dist/cards/impl/minion/geared-guard.js.map +1 -1
  45. package/dist/cards/impl/minion/greedy-snaketongue.d.ts +2 -2
  46. package/dist/cards/impl/minion/greedy-snaketongue.js +1 -4
  47. package/dist/cards/impl/minion/greedy-snaketongue.js.map +1 -1
  48. package/dist/cards/impl/minion/greenskeeper.d.ts +2 -2
  49. package/dist/cards/impl/minion/greenskeeper.js +1 -4
  50. package/dist/cards/impl/minion/greenskeeper.js.map +1 -1
  51. package/dist/cards/impl/minion/holo-rover.d.ts +2 -2
  52. package/dist/cards/impl/minion/holo-rover.js +1 -4
  53. package/dist/cards/impl/minion/holo-rover.js.map +1 -1
  54. package/dist/cards/impl/minion/hydralisk.d.ts +2 -2
  55. package/dist/cards/impl/minion/hydralisk.js +1 -4
  56. package/dist/cards/impl/minion/hydralisk.js.map +1 -1
  57. package/dist/cards/impl/minion/monstrous-macaw.d.ts +2 -2
  58. package/dist/cards/impl/minion/monstrous-macaw.js +1 -4
  59. package/dist/cards/impl/minion/monstrous-macaw.js.map +1 -1
  60. package/dist/cards/impl/minion/neon-agent.d.ts +2 -2
  61. package/dist/cards/impl/minion/neon-agent.js +1 -4
  62. package/dist/cards/impl/minion/neon-agent.js.map +1 -1
  63. package/dist/cards/impl/minion/niuzao.d.ts +2 -2
  64. package/dist/cards/impl/minion/niuzao.js +1 -4
  65. package/dist/cards/impl/minion/niuzao.js.map +1 -1
  66. package/dist/cards/impl/minion/primeval-monstrosity.d.ts +2 -2
  67. package/dist/cards/impl/minion/primeval-monstrosity.js +1 -1
  68. package/dist/cards/impl/minion/primeval-monstrosity.js.map +1 -1
  69. package/dist/cards/impl/minion/prodigious-tusker.d.ts +2 -2
  70. package/dist/cards/impl/minion/prodigious-tusker.js +1 -1
  71. package/dist/cards/impl/minion/prodigious-tusker.js.map +1 -1
  72. package/dist/cards/impl/minion/raptor-elder.js +2 -2
  73. package/dist/cards/impl/minion/raptor-elder.js.map +1 -1
  74. package/dist/cards/impl/minion/razorfen-vineweaver.d.ts +2 -2
  75. package/dist/cards/impl/minion/razorfen-vineweaver.js +1 -4
  76. package/dist/cards/impl/minion/razorfen-vineweaver.js.map +1 -1
  77. package/dist/cards/impl/minion/ripsnarl-captain.d.ts +2 -2
  78. package/dist/cards/impl/minion/ripsnarl-captain.js +1 -1
  79. package/dist/cards/impl/minion/ripsnarl-captain.js.map +1 -1
  80. package/dist/cards/impl/minion/roadboar.d.ts +2 -2
  81. package/dist/cards/impl/minion/roadboar.js +1 -4
  82. package/dist/cards/impl/minion/roadboar.js.map +1 -1
  83. package/dist/cards/impl/minion/sanguine-refiner.d.ts +2 -2
  84. package/dist/cards/impl/minion/sanguine-refiner.js +1 -4
  85. package/dist/cards/impl/minion/sanguine-refiner.js.map +1 -1
  86. package/dist/cards/impl/minion/sinodorei-straight-shot.d.ts +2 -2
  87. package/dist/cards/impl/minion/sinodorei-straight-shot.js +1 -4
  88. package/dist/cards/impl/minion/sinodorei-straight-shot.js.map +1 -1
  89. package/dist/cards/impl/minion/sleepy-supporter.d.ts +2 -2
  90. package/dist/cards/impl/minion/sleepy-supporter.js +1 -4
  91. package/dist/cards/impl/minion/sleepy-supporter.js.map +1 -1
  92. package/dist/cards/impl/minion/stomping-stegodon-enchantment.d.ts +2 -2
  93. package/dist/cards/impl/minion/stomping-stegodon-enchantment.js +1 -4
  94. package/dist/cards/impl/minion/stomping-stegodon-enchantment.js.map +1 -1
  95. package/dist/cards/impl/minion/stomping-stegodon.d.ts +2 -2
  96. package/dist/cards/impl/minion/stomping-stegodon.js +1 -4
  97. package/dist/cards/impl/minion/stomping-stegodon.js.map +1 -1
  98. package/dist/cards/impl/minion/transmuted-bramblewitch.d.ts +2 -2
  99. package/dist/cards/impl/minion/transmuted-bramblewitch.js +1 -4
  100. package/dist/cards/impl/minion/transmuted-bramblewitch.js.map +1 -1
  101. package/dist/cards/impl/minion/tusked-camper.d.ts +2 -2
  102. package/dist/cards/impl/minion/tusked-camper.js +1 -4
  103. package/dist/cards/impl/minion/tusked-camper.js.map +1 -1
  104. package/dist/cards/impl/minion/twilight-watcher.d.ts +2 -2
  105. package/dist/cards/impl/minion/twilight-watcher.js +1 -1
  106. package/dist/cards/impl/minion/twilight-watcher.js.map +1 -1
  107. package/dist/cards/impl/minion/vengeful-protector.d.ts +2 -2
  108. package/dist/cards/impl/minion/vengeful-protector.js +1 -4
  109. package/dist/cards/impl/minion/vengeful-protector.js.map +1 -1
  110. package/dist/cards/impl/minion/void-ray.d.ts +2 -2
  111. package/dist/cards/impl/minion/void-ray.js +1 -1
  112. package/dist/cards/impl/minion/void-ray.js.map +1 -1
  113. package/dist/cards/impl/minion/whirring-protector-enchantment.d.ts +2 -2
  114. package/dist/cards/impl/minion/whirring-protector-enchantment.js +1 -4
  115. package/dist/cards/impl/minion/whirring-protector-enchantment.js.map +1 -1
  116. package/dist/cards/impl/minion/whirring-protector.d.ts +2 -2
  117. package/dist/cards/impl/minion/whirring-protector.js +1 -4
  118. package/dist/cards/impl/minion/whirring-protector.js.map +1 -1
  119. package/dist/cards/impl/minion/yrel.d.ts +2 -2
  120. package/dist/cards/impl/minion/yrel.js +1 -4
  121. package/dist/cards/impl/minion/yrel.js.map +1 -1
  122. package/dist/cards/impl/trinket/all-purpose-kibble.d.ts +2 -2
  123. package/dist/cards/impl/trinket/all-purpose-kibble.js +1 -1
  124. package/dist/cards/impl/trinket/all-purpose-kibble.js.map +1 -1
  125. package/dist/cards/impl/trinket/faerie-dragon-scale.d.ts +2 -2
  126. package/dist/cards/impl/trinket/faerie-dragon-scale.js +1 -1
  127. package/dist/cards/impl/trinket/faerie-dragon-scale.js.map +1 -1
  128. package/dist/cards/impl/trinket/unholy-sanctum.js +3 -0
  129. package/dist/cards/impl/trinket/unholy-sanctum.js.map +1 -1
  130. package/dist/simulation/deathrattle-spawns.js +11 -3
  131. package/dist/simulation/deathrattle-spawns.js.map +1 -1
  132. package/dist/simulation/on-attack.d.ts +0 -1
  133. package/dist/simulation/on-attack.js +120 -90
  134. package/dist/simulation/on-attack.js.map +1 -1
  135. package/package.json +1 -1
@@ -5,10 +5,7 @@ const reborn_1 = require("../../../keywords/reborn");
5
5
  const taunt_1 = require("../../../keywords/taunt");
6
6
  exports.SindoreiStraightShot = {
7
7
  cardIds: ["BG25_016", "BG25_016_G"],
8
- onAnyMinionAttack: (minion, input) => {
9
- if (minion !== input.attacker) {
10
- return { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };
11
- }
8
+ rally: (minion, input) => {
12
9
  (0, taunt_1.updateTaunt)(input.defendingEntity, false, input.defendingBoard, input.defendingHero, input.attackingHero, input.gameState);
13
10
  (0, reborn_1.updateReborn)(input.defendingEntity, false, input.defendingBoard, input.defendingHero, input.attackingHero, input.gameState);
14
11
  return { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };
@@ -1 +1 @@
1
- {"version":3,"file":"sinodorei-straight-shot.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/sinodorei-straight-shot.ts"],"names":[],"mappings":";;;AAEA,qDAAwD;AACxD,mDAAsD;AAIzC,QAAA,oBAAoB,GAAiB;IACjD,OAAO,EAAE,0BAAgF;IACzF,iBAAiB,EAAE,CAClB,MAAmB,EACnB,KAAoB,EACuC,EAAE;QAC7D,IAAI,MAAM,KAAK,KAAK,CAAC,QAAQ,EAAE;YAC9B,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;SACtD;QACD,IAAA,mBAAW,EACV,KAAK,CAAC,eAAe,EACrB,KAAK,EACL,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,SAAS,CACf,CAAC;QACF,IAAA,qBAAY,EACX,KAAK,CAAC,eAAe,EACrB,KAAK,EACL,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,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 { CardIds } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { updateReborn } from '../../../keywords/reborn';\r\nimport { updateTaunt } from '../../../keywords/taunt';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { OnAttackCard } from '../../card.interface';\r\n\r\nexport const SindoreiStraightShot: OnAttackCard = {\r\n\tcardIds: [CardIds.SindoreiStraightShot_BG25_016, CardIds.SindoreiStraightShot_BG25_016_G],\r\n\tonAnyMinionAttack: (\r\n\t\tminion: BoardEntity,\r\n\t\tinput: OnAttackInput,\r\n\t): { dmgDoneByAttacker: number; dmgDoneByDefender: number } => {\r\n\t\tif (minion !== input.attacker) {\r\n\t\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t\t}\r\n\t\tupdateTaunt(\r\n\t\t\tinput.defendingEntity,\r\n\t\t\tfalse,\r\n\t\t\tinput.defendingBoard,\r\n\t\t\tinput.defendingHero,\r\n\t\t\tinput.attackingHero,\r\n\t\t\tinput.gameState,\r\n\t\t);\r\n\t\tupdateReborn(\r\n\t\t\tinput.defendingEntity,\r\n\t\t\tfalse,\r\n\t\t\tinput.defendingBoard,\r\n\t\t\tinput.defendingHero,\r\n\t\t\tinput.attackingHero,\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"]}
1
+ {"version":3,"file":"sinodorei-straight-shot.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/sinodorei-straight-shot.ts"],"names":[],"mappings":";;;AAEA,qDAAwD;AACxD,mDAAsD;AAIzC,QAAA,oBAAoB,GAAc;IAC9C,OAAO,EAAE,0BAAgF;IACzF,KAAK,EAAE,CAAC,MAAmB,EAAE,KAAoB,EAA4D,EAAE;QAC9G,IAAA,mBAAW,EACV,KAAK,CAAC,eAAe,EACrB,KAAK,EACL,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,SAAS,CACf,CAAC;QACF,IAAA,qBAAY,EACX,KAAK,CAAC,eAAe,EACrB,KAAK,EACL,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,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 { CardIds } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { updateReborn } from '../../../keywords/reborn';\r\nimport { updateTaunt } from '../../../keywords/taunt';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { RallyCard } from '../../card.interface';\r\n\r\nexport const SindoreiStraightShot: RallyCard = {\r\n\tcardIds: [CardIds.SindoreiStraightShot_BG25_016, CardIds.SindoreiStraightShot_BG25_016_G],\r\n\trally: (minion: BoardEntity, input: OnAttackInput): { dmgDoneByAttacker: number; dmgDoneByDefender: number } => {\r\n\t\tupdateTaunt(\r\n\t\t\tinput.defendingEntity,\r\n\t\t\tfalse,\r\n\t\t\tinput.defendingBoard,\r\n\t\t\tinput.defendingHero,\r\n\t\t\tinput.attackingHero,\r\n\t\t\tinput.gameState,\r\n\t\t);\r\n\t\tupdateReborn(\r\n\t\t\tinput.defendingEntity,\r\n\t\t\tfalse,\r\n\t\t\tinput.defendingBoard,\r\n\t\t\tinput.defendingHero,\r\n\t\t\tinput.attackingHero,\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"]}
@@ -1,2 +1,2 @@
1
- import { OnAttackCard } from '../../card.interface';
2
- export declare const SleepySupporter: OnAttackCard;
1
+ import { RallyCard } from '../../card.interface';
2
+ export declare const SleepySupporter: RallyCard;
@@ -7,10 +7,7 @@ const stats_1 = require("../../../simulation/stats");
7
7
  const utils_2 = require("../../../utils");
8
8
  exports.SleepySupporter = {
9
9
  cardIds: ["BG33_241", "BG33_241_G"],
10
- onAnyMinionAttack: (minion, input) => {
11
- if (input.attacker !== minion) {
12
- return { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };
13
- }
10
+ rally: (minion, input) => {
14
11
  const mult = minion.cardId === "BG33_241_G" ? 2 : 1;
15
12
  const candidates = input.attackingBoard.filter((e) => e !== minion &&
16
13
  (0, utils_2.hasCorrectTribe)(e, input.attackingHero, reference_data_1.Race.DRAGON, input.gameState.anomalies, input.gameState.allCards));
@@ -1 +1 @@
1
- {"version":3,"file":"sleepy-supporter.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/sleepy-supporter.ts"],"names":[],"mappings":";;;AAAA,iEAA6D;AAE7D,mDAAqD;AAErD,qDAAwD;AACxD,0CAAiD;AAGpC,QAAA,eAAe,GAAiB;IAC5C,OAAO,EAAE,0BAAsE;IAC/E,iBAAiB,EAAE,CAAC,MAAmB,EAAE,KAAoB,EAAE,EAAE;QAChE,IAAI,KAAK,CAAC,QAAQ,KAAK,MAAM,EAAE;YAC9B,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;SACtD;QAED,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAuC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1E,MAAM,UAAU,GAAG,KAAK,CAAC,cAAc,CAAC,MAAM,CAC7C,CAAC,CAAC,EAAE,EAAE,CACL,CAAC,KAAK,MAAM;YACZ,IAAA,uBAAe,EACd,CAAC,EACD,KAAK,CAAC,aAAa,EACnB,qBAAI,CAAC,MAAM,EACX,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,SAAS,CAAC,QAAQ,CACxB,CACF,CAAC;QACF,MAAM,MAAM,GAAG,IAAA,kBAAU,EAAC,UAAU,CAAC,CAAC;QACtC,IAAI,CAAC,CAAC,MAAM,EAAE;YACb,IAAA,mBAAW,EAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SAC5G;QACD,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;CACD,CAAC","sourcesContent":["import { CardIds, Race } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { pickRandom } from '../../../services/utils';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { OnAttackCard } from '../../card.interface';\r\n\r\nexport const SleepySupporter: OnAttackCard = {\r\n\tcardIds: [CardIds.SleepySupporter_BG33_241, CardIds.SleepySupporter_BG33_241_G],\r\n\tonAnyMinionAttack: (minion: BoardEntity, input: OnAttackInput) => {\r\n\t\tif (input.attacker !== minion) {\r\n\t\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t\t}\r\n\r\n\t\tconst mult = minion.cardId === CardIds.SleepySupporter_BG33_241_G ? 2 : 1;\r\n\t\tconst candidates = input.attackingBoard.filter(\r\n\t\t\t(e) =>\r\n\t\t\t\te !== minion &&\r\n\t\t\t\thasCorrectTribe(\r\n\t\t\t\t\te,\r\n\t\t\t\t\tinput.attackingHero,\r\n\t\t\t\t\tRace.DRAGON,\r\n\t\t\t\t\tinput.gameState.anomalies,\r\n\t\t\t\t\tinput.gameState.allCards,\r\n\t\t\t\t),\r\n\t\t);\r\n\t\tconst target = pickRandom(candidates);\r\n\t\tif (!!target) {\r\n\t\t\tmodifyStats(target, minion, 2 * mult, 3 * mult, input.attackingBoard, input.attackingHero, input.gameState);\r\n\t\t}\r\n\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"sleepy-supporter.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/sleepy-supporter.ts"],"names":[],"mappings":";;;AAAA,iEAA6D;AAE7D,mDAAqD;AAErD,qDAAwD;AACxD,0CAAiD;AAGpC,QAAA,eAAe,GAAc;IACzC,OAAO,EAAE,0BAAsE;IAC/E,KAAK,EAAE,CAAC,MAAmB,EAAE,KAAoB,EAAE,EAAE;QACpD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAuC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1E,MAAM,UAAU,GAAG,KAAK,CAAC,cAAc,CAAC,MAAM,CAC7C,CAAC,CAAC,EAAE,EAAE,CACL,CAAC,KAAK,MAAM;YACZ,IAAA,uBAAe,EACd,CAAC,EACD,KAAK,CAAC,aAAa,EACnB,qBAAI,CAAC,MAAM,EACX,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,SAAS,CAAC,QAAQ,CACxB,CACF,CAAC;QACF,MAAM,MAAM,GAAG,IAAA,kBAAU,EAAC,UAAU,CAAC,CAAC;QACtC,IAAI,CAAC,CAAC,MAAM,EAAE;YACb,IAAA,mBAAW,EAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SAC5G;QACD,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;CACD,CAAC","sourcesContent":["import { CardIds, Race } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { pickRandom } from '../../../services/utils';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { RallyCard } from '../../card.interface';\r\n\r\nexport const SleepySupporter: RallyCard = {\r\n\tcardIds: [CardIds.SleepySupporter_BG33_241, CardIds.SleepySupporter_BG33_241_G],\r\n\trally: (minion: BoardEntity, input: OnAttackInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.SleepySupporter_BG33_241_G ? 2 : 1;\r\n\t\tconst candidates = input.attackingBoard.filter(\r\n\t\t\t(e) =>\r\n\t\t\t\te !== minion &&\r\n\t\t\t\thasCorrectTribe(\r\n\t\t\t\t\te,\r\n\t\t\t\t\tinput.attackingHero,\r\n\t\t\t\t\tRace.DRAGON,\r\n\t\t\t\t\tinput.gameState.anomalies,\r\n\t\t\t\t\tinput.gameState.allCards,\r\n\t\t\t\t),\r\n\t\t);\r\n\t\tconst target = pickRandom(candidates);\r\n\t\tif (!!target) {\r\n\t\t\tmodifyStats(target, minion, 2 * mult, 3 * mult, input.attackingBoard, input.attackingHero, input.gameState);\r\n\t\t}\r\n\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t},\r\n};\r\n"]}
@@ -1,2 +1,2 @@
1
- import { OnAttackCard } from '../../card.interface';
2
- export declare const StompingStegodonEnchantment: OnAttackCard;
1
+ import { RallyCard } from '../../card.interface';
2
+ export declare const StompingStegodonEnchantment: RallyCard;
@@ -10,11 +10,8 @@ exports.StompingStegodonEnchantment = {
10
10
  "BG33_840e2",
11
11
  "BG33_840_Ge2",
12
12
  ],
13
- onAnyMinionAttack: (enchantment, input) => {
13
+ rally: (enchantment, input) => {
14
14
  var _a;
15
- if (!input.isSelfAttacking) {
16
- return { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };
17
- }
18
15
  const mult = enchantment.cardId === "BG33_840_Ge2" ? 2 : 1;
19
16
  const nbOfTriggers = (_a = enchantment.repeats) !== null && _a !== void 0 ? _a : 1;
20
17
  const enchantmentCardIdToAdd = enchantment.cardId === "BG33_840_Ge2"
@@ -1 +1 @@
1
- {"version":3,"file":"stomping-stegodon-enchantment.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/stomping-stegodon-enchantment.ts"],"names":[],"mappings":";;;AAAA,iEAA6D;AAG7D,qDAAwD;AACxD,0CAAiD;AAEjD,2DAAqF;AAExE,QAAA,2BAA2B,GAAiB;IACxD,OAAO,EAAE;;;KAGR;IACD,iBAAiB,EAAE,CAAC,WAA6B,EAAE,KAAoB,EAAE,EAAE;;QAC1E,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE;YAC3B,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;SACtD;QAED,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,mBAA8D,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtG,MAAM,YAAY,GAAG,MAAA,WAAW,CAAC,OAAO,mCAAI,CAAC,CAAC;QAC9C,MAAM,sBAAsB,GAC3B,WAAW,CAAC,MAAM,mBAA8D;YAC/E,CAAC;YACD,CAAC,aAAwD,CAAC;QAC5D,MAAM,UAAU,GAAG,KAAK,CAAC,cAAc,CAAC,MAAM,CAC7C,CAAC,CAAC,EAAE,EAAE,CACL,CAAC,KAAK,KAAK,CAAC,QAAQ;YACpB,IAAA,uBAAe,EACd,CAAC,EACD,KAAK,CAAC,aAAa,EACnB,qBAAI,CAAC,KAAK,EACV,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,SAAS,CAAC,QAAQ,CACxB,CACF,CAAC;QACF,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;YACnC,IAAA,mBAAW,EACV,SAAS,EACT,KAAK,CAAC,QAAQ,EACd,0CAAsB,GAAG,YAAY,GAAG,IAAI,EAC5C,0CAAsB,GAAG,YAAY,GAAG,IAAI,EAC5C,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,SAAS,CACf,CAAC;YACF,IAAI,mBAAmB,GAAG,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,sBAAsB,CAAC,CAAC;YAClG,IAAI,CAAC,mBAAmB,EAAE;gBACzB,mBAAmB,GAAG;oBACrB,MAAM,EAAE,sBAAsB;oBAC9B,cAAc,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ;oBACvC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,eAAe,EAAE;oBACrD,OAAO,EAAE,CAAC;iBACV,CAAC;gBACF,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;aACjD;YACD,mBAAmB,CAAC,OAAO,IAAI,YAAY,CAAC;SAC5C;QAED,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;CACD,CAAC","sourcesContent":["import { CardIds, Race } from '@firestone-hs/reference-data';\r\nimport { BoardEnchantment } from '../../../board-entity';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { OnAttackCard } from '../../card.interface';\r\nimport { stompingStegodonAttack, stompingStegodonHealth } from './stomping-stegodon';\r\n\r\nexport const StompingStegodonEnchantment: OnAttackCard = {\r\n\tcardIds: [\r\n\t\tCardIds.StompingStegodon_StompingEnchantment_BG33_840e2,\r\n\t\tCardIds.StompingStegodon_StompingEnchantment_BG33_840_Ge2,\r\n\t],\r\n\tonAnyMinionAttack: (enchantment: BoardEnchantment, input: OnAttackInput) => {\r\n\t\tif (!input.isSelfAttacking) {\r\n\t\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t\t}\r\n\r\n\t\tconst mult = enchantment.cardId === CardIds.StompingStegodon_StompingEnchantment_BG33_840_Ge2 ? 2 : 1;\r\n\t\tconst nbOfTriggers = enchantment.repeats ?? 1;\r\n\t\tconst enchantmentCardIdToAdd =\r\n\t\t\tenchantment.cardId === CardIds.StompingStegodon_StompingEnchantment_BG33_840_Ge2\r\n\t\t\t\t? CardIds.StompingStegodon_StompingEnchantment_BG33_840_Ge2\r\n\t\t\t\t: CardIds.StompingStegodon_StompingEnchantment_BG33_840e2;\r\n\t\tconst candidates = input.attackingBoard.filter(\r\n\t\t\t(e) =>\r\n\t\t\t\te !== input.attacker &&\r\n\t\t\t\thasCorrectTribe(\r\n\t\t\t\t\te,\r\n\t\t\t\t\tinput.attackingHero,\r\n\t\t\t\t\tRace.BEAST,\r\n\t\t\t\t\tinput.gameState.anomalies,\r\n\t\t\t\t\tinput.gameState.allCards,\r\n\t\t\t\t),\r\n\t\t);\r\n\t\tfor (const candidate of candidates) {\r\n\t\t\tmodifyStats(\r\n\t\t\t\tcandidate,\r\n\t\t\t\tinput.attacker,\r\n\t\t\t\tstompingStegodonAttack * nbOfTriggers * mult,\r\n\t\t\t\tstompingStegodonHealth * nbOfTriggers * mult,\r\n\t\t\t\tinput.attackingBoard,\r\n\t\t\t\tinput.attackingHero,\r\n\t\t\t\tinput.gameState,\r\n\t\t\t);\r\n\t\t\tlet existingEnchantment = candidate.enchantments.find((e) => e.cardId === enchantmentCardIdToAdd);\r\n\t\t\tif (!existingEnchantment) {\r\n\t\t\t\texistingEnchantment = {\r\n\t\t\t\t\tcardId: enchantmentCardIdToAdd,\r\n\t\t\t\t\toriginEntityId: input.attacker.entityId,\r\n\t\t\t\t\ttiming: input.gameState.sharedState.currentEntityId++,\r\n\t\t\t\t\trepeats: 0,\r\n\t\t\t\t};\r\n\t\t\t\tcandidate.enchantments.push(existingEnchantment);\r\n\t\t\t}\r\n\t\t\texistingEnchantment.repeats += nbOfTriggers;\r\n\t\t}\r\n\r\n\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"stomping-stegodon-enchantment.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/stomping-stegodon-enchantment.ts"],"names":[],"mappings":";;;AAAA,iEAA6D;AAG7D,qDAAwD;AACxD,0CAAiD;AAEjD,2DAAqF;AAExE,QAAA,2BAA2B,GAAc;IACrD,OAAO,EAAE;;;KAGR;IACD,KAAK,EAAE,CAAC,WAA6B,EAAE,KAAoB,EAAE,EAAE;;QAC9D,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,mBAA8D,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtG,MAAM,YAAY,GAAG,MAAA,WAAW,CAAC,OAAO,mCAAI,CAAC,CAAC;QAC9C,MAAM,sBAAsB,GAC3B,WAAW,CAAC,MAAM,mBAA8D;YAC/E,CAAC;YACD,CAAC,aAAwD,CAAC;QAC5D,MAAM,UAAU,GAAG,KAAK,CAAC,cAAc,CAAC,MAAM,CAC7C,CAAC,CAAC,EAAE,EAAE,CACL,CAAC,KAAK,KAAK,CAAC,QAAQ;YACpB,IAAA,uBAAe,EACd,CAAC,EACD,KAAK,CAAC,aAAa,EACnB,qBAAI,CAAC,KAAK,EACV,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,SAAS,CAAC,QAAQ,CACxB,CACF,CAAC;QACF,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;YACnC,IAAA,mBAAW,EACV,SAAS,EACT,KAAK,CAAC,QAAQ,EACd,0CAAsB,GAAG,YAAY,GAAG,IAAI,EAC5C,0CAAsB,GAAG,YAAY,GAAG,IAAI,EAC5C,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,SAAS,CACf,CAAC;YACF,IAAI,mBAAmB,GAAG,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,sBAAsB,CAAC,CAAC;YAClG,IAAI,CAAC,mBAAmB,EAAE;gBACzB,mBAAmB,GAAG;oBACrB,MAAM,EAAE,sBAAsB;oBAC9B,cAAc,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ;oBACvC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,eAAe,EAAE;oBACrD,OAAO,EAAE,CAAC;iBACV,CAAC;gBACF,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;aACjD;YACD,mBAAmB,CAAC,OAAO,IAAI,YAAY,CAAC;SAC5C;QAED,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;CACD,CAAC","sourcesContent":["import { CardIds, Race } from '@firestone-hs/reference-data';\r\nimport { BoardEnchantment } from '../../../board-entity';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { RallyCard } from '../../card.interface';\r\nimport { stompingStegodonAttack, stompingStegodonHealth } from './stomping-stegodon';\r\n\r\nexport const StompingStegodonEnchantment: RallyCard = {\r\n\tcardIds: [\r\n\t\tCardIds.StompingStegodon_StompingEnchantment_BG33_840e2,\r\n\t\tCardIds.StompingStegodon_StompingEnchantment_BG33_840_Ge2,\r\n\t],\r\n\trally: (enchantment: BoardEnchantment, input: OnAttackInput) => {\r\n\t\tconst mult = enchantment.cardId === CardIds.StompingStegodon_StompingEnchantment_BG33_840_Ge2 ? 2 : 1;\r\n\t\tconst nbOfTriggers = enchantment.repeats ?? 1;\r\n\t\tconst enchantmentCardIdToAdd =\r\n\t\t\tenchantment.cardId === CardIds.StompingStegodon_StompingEnchantment_BG33_840_Ge2\r\n\t\t\t\t? CardIds.StompingStegodon_StompingEnchantment_BG33_840_Ge2\r\n\t\t\t\t: CardIds.StompingStegodon_StompingEnchantment_BG33_840e2;\r\n\t\tconst candidates = input.attackingBoard.filter(\r\n\t\t\t(e) =>\r\n\t\t\t\te !== input.attacker &&\r\n\t\t\t\thasCorrectTribe(\r\n\t\t\t\t\te,\r\n\t\t\t\t\tinput.attackingHero,\r\n\t\t\t\t\tRace.BEAST,\r\n\t\t\t\t\tinput.gameState.anomalies,\r\n\t\t\t\t\tinput.gameState.allCards,\r\n\t\t\t\t),\r\n\t\t);\r\n\t\tfor (const candidate of candidates) {\r\n\t\t\tmodifyStats(\r\n\t\t\t\tcandidate,\r\n\t\t\t\tinput.attacker,\r\n\t\t\t\tstompingStegodonAttack * nbOfTriggers * mult,\r\n\t\t\t\tstompingStegodonHealth * nbOfTriggers * mult,\r\n\t\t\t\tinput.attackingBoard,\r\n\t\t\t\tinput.attackingHero,\r\n\t\t\t\tinput.gameState,\r\n\t\t\t);\r\n\t\t\tlet existingEnchantment = candidate.enchantments.find((e) => e.cardId === enchantmentCardIdToAdd);\r\n\t\t\tif (!existingEnchantment) {\r\n\t\t\t\texistingEnchantment = {\r\n\t\t\t\t\tcardId: enchantmentCardIdToAdd,\r\n\t\t\t\t\toriginEntityId: input.attacker.entityId,\r\n\t\t\t\t\ttiming: input.gameState.sharedState.currentEntityId++,\r\n\t\t\t\t\trepeats: 0,\r\n\t\t\t\t};\r\n\t\t\t\tcandidate.enchantments.push(existingEnchantment);\r\n\t\t\t}\r\n\t\t\texistingEnchantment.repeats += nbOfTriggers;\r\n\t\t}\r\n\r\n\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t},\r\n};\r\n"]}
@@ -1,4 +1,4 @@
1
- import { OnAttackCard } from '../../card.interface';
1
+ import { RallyCard } from '../../card.interface';
2
2
  export declare const stompingStegodonAttack = 2;
3
3
  export declare const stompingStegodonHealth = 0;
4
- export declare const StompingStegodon: OnAttackCard;
4
+ export declare const StompingStegodon: RallyCard;
@@ -8,10 +8,7 @@ exports.stompingStegodonAttack = 2;
8
8
  exports.stompingStegodonHealth = 0;
9
9
  exports.StompingStegodon = {
10
10
  cardIds: ["BG33_840", "BG33_840_G"],
11
- onAnyMinionAttack: (minion, input) => {
12
- if (input.attacker !== minion) {
13
- return { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };
14
- }
11
+ rally: (minion, input) => {
15
12
  const debug = minion.entityId === 10597;
16
13
  const mult = minion.cardId === "BG33_840_G" ? 2 : 1;
17
14
  const candidates = input.attackingBoard.filter((e) => e !== minion &&
@@ -1 +1 @@
1
- {"version":3,"file":"stomping-stegodon.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/stomping-stegodon.ts"],"names":[],"mappings":";;;AAAA,iEAA6D;AAG7D,qDAAwD;AACxD,0CAAiD;AAGpC,QAAA,sBAAsB,GAAG,CAAC,CAAC;AAC3B,QAAA,sBAAsB,GAAG,CAAC,CAAC;AAE3B,QAAA,gBAAgB,GAAiB;IAC7C,OAAO,EAAE,0BAAwE;IACjF,iBAAiB,EAAE,CAAC,MAAmB,EAAE,KAAoB,EAAE,EAAE;QAChE,IAAI,KAAK,CAAC,QAAQ,KAAK,MAAM,EAAE;YAC9B,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;SACtD;QAED,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,KAAK,KAAK,CAAC;QACxC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAwC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3E,MAAM,UAAU,GAAG,KAAK,CAAC,cAAc,CAAC,MAAM,CAC7C,CAAC,CAAC,EAAE,EAAE,CACL,CAAC,KAAK,MAAM;YACZ,IAAA,uBAAe,EACd,CAAC,EACD,KAAK,CAAC,aAAa,EACnB,qBAAI,CAAC,KAAK,EACV,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,SAAS,CAAC,QAAQ,CACxB,CACF,CAAC;QACF,MAAM,sBAAsB,GAC3B,MAAM,CAAC,MAAM,iBAAwC;YACpD,CAAC;YACD,CAAC,aAAwD,CAAC;QAC5D,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;YACnC,IAAA,mBAAW,EACV,SAAS,EACT,MAAM,EACN,8BAAsB,GAAG,IAAI,EAC7B,8BAAsB,GAAG,IAAI,EAC7B,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,SAAS,CACf,CAAC;YAEF,IAAI,mBAAmB,GAAG,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,sBAAsB,CAAC,CAAC;YAClG,IAAI,CAAC,mBAAmB,EAAE;gBACzB,mBAAmB,GAAG;oBACrB,MAAM,EAAE,sBAAsB;oBAC9B,cAAc,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ;oBACvC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,eAAe,EAAE;oBACrD,OAAO,EAAE,CAAC;iBACV,CAAC;gBACF,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;aACjD;YACD,mBAAmB,CAAC,OAAO,IAAI,CAAC,CAAC;SACjC;QAED,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;CACD,CAAC","sourcesContent":["import { CardIds, Race } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { OnAttackCard } from '../../card.interface';\r\n\r\nexport const stompingStegodonAttack = 2;\r\nexport const stompingStegodonHealth = 0;\r\n\r\nexport const StompingStegodon: OnAttackCard = {\r\n\tcardIds: [CardIds.StompingStegodon_BG33_840, CardIds.StompingStegodon_BG33_840_G],\r\n\tonAnyMinionAttack: (minion: BoardEntity, input: OnAttackInput) => {\r\n\t\tif (input.attacker !== minion) {\r\n\t\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t\t}\r\n\r\n\t\tconst debug = minion.entityId === 10597;\r\n\t\tconst mult = minion.cardId === CardIds.StompingStegodon_BG33_840_G ? 2 : 1;\r\n\t\tconst candidates = input.attackingBoard.filter(\r\n\t\t\t(e) =>\r\n\t\t\t\te !== minion &&\r\n\t\t\t\thasCorrectTribe(\r\n\t\t\t\t\te,\r\n\t\t\t\t\tinput.attackingHero,\r\n\t\t\t\t\tRace.BEAST,\r\n\t\t\t\t\tinput.gameState.anomalies,\r\n\t\t\t\t\tinput.gameState.allCards,\r\n\t\t\t\t),\r\n\t\t);\r\n\t\tconst enchantmentCardIdToAdd =\r\n\t\t\tminion.cardId === CardIds.StompingStegodon_BG33_840_G\r\n\t\t\t\t? CardIds.StompingStegodon_StompingEnchantment_BG33_840_Ge2\r\n\t\t\t\t: CardIds.StompingStegodon_StompingEnchantment_BG33_840e2;\r\n\t\tfor (const candidate of candidates) {\r\n\t\t\tmodifyStats(\r\n\t\t\t\tcandidate,\r\n\t\t\t\tminion,\r\n\t\t\t\tstompingStegodonAttack * mult,\r\n\t\t\t\tstompingStegodonHealth * mult,\r\n\t\t\t\tinput.attackingBoard,\r\n\t\t\t\tinput.attackingHero,\r\n\t\t\t\tinput.gameState,\r\n\t\t\t);\r\n\r\n\t\t\tlet existingEnchantment = candidate.enchantments.find((e) => e.cardId === enchantmentCardIdToAdd);\r\n\t\t\tif (!existingEnchantment) {\r\n\t\t\t\texistingEnchantment = {\r\n\t\t\t\t\tcardId: enchantmentCardIdToAdd,\r\n\t\t\t\t\toriginEntityId: input.attacker.entityId,\r\n\t\t\t\t\ttiming: input.gameState.sharedState.currentEntityId++,\r\n\t\t\t\t\trepeats: 0,\r\n\t\t\t\t};\r\n\t\t\t\tcandidate.enchantments.push(existingEnchantment);\r\n\t\t\t}\r\n\t\t\texistingEnchantment.repeats += 1;\r\n\t\t}\r\n\r\n\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"stomping-stegodon.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/stomping-stegodon.ts"],"names":[],"mappings":";;;AAAA,iEAA6D;AAG7D,qDAAwD;AACxD,0CAAiD;AAGpC,QAAA,sBAAsB,GAAG,CAAC,CAAC;AAC3B,QAAA,sBAAsB,GAAG,CAAC,CAAC;AAE3B,QAAA,gBAAgB,GAAc;IAC1C,OAAO,EAAE,0BAAwE;IACjF,KAAK,EAAE,CAAC,MAAmB,EAAE,KAAoB,EAAE,EAAE;QACpD,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,KAAK,KAAK,CAAC;QACxC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAwC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3E,MAAM,UAAU,GAAG,KAAK,CAAC,cAAc,CAAC,MAAM,CAC7C,CAAC,CAAC,EAAE,EAAE,CACL,CAAC,KAAK,MAAM;YACZ,IAAA,uBAAe,EACd,CAAC,EACD,KAAK,CAAC,aAAa,EACnB,qBAAI,CAAC,KAAK,EACV,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,SAAS,CAAC,QAAQ,CACxB,CACF,CAAC;QACF,MAAM,sBAAsB,GAC3B,MAAM,CAAC,MAAM,iBAAwC;YACpD,CAAC;YACD,CAAC,aAAwD,CAAC;QAC5D,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;YACnC,IAAA,mBAAW,EACV,SAAS,EACT,MAAM,EACN,8BAAsB,GAAG,IAAI,EAC7B,8BAAsB,GAAG,IAAI,EAC7B,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,SAAS,CACf,CAAC;YAEF,IAAI,mBAAmB,GAAG,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,sBAAsB,CAAC,CAAC;YAClG,IAAI,CAAC,mBAAmB,EAAE;gBACzB,mBAAmB,GAAG;oBACrB,MAAM,EAAE,sBAAsB;oBAC9B,cAAc,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ;oBACvC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,eAAe,EAAE;oBACrD,OAAO,EAAE,CAAC;iBACV,CAAC;gBACF,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;aACjD;YACD,mBAAmB,CAAC,OAAO,IAAI,CAAC,CAAC;SACjC;QAED,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;CACD,CAAC","sourcesContent":["import { CardIds, Race } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { RallyCard } from '../../card.interface';\r\n\r\nexport const stompingStegodonAttack = 2;\r\nexport const stompingStegodonHealth = 0;\r\n\r\nexport const StompingStegodon: RallyCard = {\r\n\tcardIds: [CardIds.StompingStegodon_BG33_840, CardIds.StompingStegodon_BG33_840_G],\r\n\trally: (minion: BoardEntity, input: OnAttackInput) => {\r\n\t\tconst debug = minion.entityId === 10597;\r\n\t\tconst mult = minion.cardId === CardIds.StompingStegodon_BG33_840_G ? 2 : 1;\r\n\t\tconst candidates = input.attackingBoard.filter(\r\n\t\t\t(e) =>\r\n\t\t\t\te !== minion &&\r\n\t\t\t\thasCorrectTribe(\r\n\t\t\t\t\te,\r\n\t\t\t\t\tinput.attackingHero,\r\n\t\t\t\t\tRace.BEAST,\r\n\t\t\t\t\tinput.gameState.anomalies,\r\n\t\t\t\t\tinput.gameState.allCards,\r\n\t\t\t\t),\r\n\t\t);\r\n\t\tconst enchantmentCardIdToAdd =\r\n\t\t\tminion.cardId === CardIds.StompingStegodon_BG33_840_G\r\n\t\t\t\t? CardIds.StompingStegodon_StompingEnchantment_BG33_840_Ge2\r\n\t\t\t\t: CardIds.StompingStegodon_StompingEnchantment_BG33_840e2;\r\n\t\tfor (const candidate of candidates) {\r\n\t\t\tmodifyStats(\r\n\t\t\t\tcandidate,\r\n\t\t\t\tminion,\r\n\t\t\t\tstompingStegodonAttack * mult,\r\n\t\t\t\tstompingStegodonHealth * mult,\r\n\t\t\t\tinput.attackingBoard,\r\n\t\t\t\tinput.attackingHero,\r\n\t\t\t\tinput.gameState,\r\n\t\t\t);\r\n\r\n\t\t\tlet existingEnchantment = candidate.enchantments.find((e) => e.cardId === enchantmentCardIdToAdd);\r\n\t\t\tif (!existingEnchantment) {\r\n\t\t\t\texistingEnchantment = {\r\n\t\t\t\t\tcardId: enchantmentCardIdToAdd,\r\n\t\t\t\t\toriginEntityId: input.attacker.entityId,\r\n\t\t\t\t\ttiming: input.gameState.sharedState.currentEntityId++,\r\n\t\t\t\t\trepeats: 0,\r\n\t\t\t\t};\r\n\t\t\t\tcandidate.enchantments.push(existingEnchantment);\r\n\t\t\t}\r\n\t\t\texistingEnchantment.repeats += 1;\r\n\t\t}\r\n\r\n\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t},\r\n};\r\n"]}
@@ -1,2 +1,2 @@
1
- import { DefaultChargesCard, OnAttackCard } from '../../card.interface';
2
- export declare const TransmutedBramblewitch: OnAttackCard & DefaultChargesCard;
1
+ import { DefaultChargesCard, RallyCard } from '../../card.interface';
2
+ export declare const TransmutedBramblewitch: RallyCard & DefaultChargesCard;
@@ -5,10 +5,7 @@ const stats_1 = require("../../../simulation/stats");
5
5
  exports.TransmutedBramblewitch = {
6
6
  cardIds: ["BG27_013", "BG27_013_G"],
7
7
  defaultCharges: (entity) => (entity.cardId === "BG27_013_G" ? 2 : 1),
8
- onAnyMinionAttack: (minion, input) => {
9
- if (minion !== input.attacker) {
10
- return { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };
11
- }
8
+ rally: (minion, input) => {
12
9
  if (minion.abiityChargesLeft > 0) {
13
10
  (0, stats_1.setEntityStats)(input.defendingEntity, 3, 3, input.defendingBoard, input.defendingHero, input.gameState);
14
11
  minion.abiityChargesLeft--;
@@ -1 +1 @@
1
- {"version":3,"file":"transmuted-bramblewitch.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/transmuted-bramblewitch.ts"],"names":[],"mappings":";;;AAGA,qDAA2D;AAG9C,QAAA,sBAAsB,GAAsC;IACxE,OAAO,EAAE,0BAAoF;IAC7F,cAAc,EAAE,CAAC,MAAmB,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,iBAA8C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9G,iBAAiB,EAAE,CAClB,MAAmB,EACnB,KAAoB,EACuC,EAAE;QAC7D,IAAI,MAAM,KAAK,KAAK,CAAC,QAAQ,EAAE;YAC9B,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;SACtD;QACD,IAAI,MAAM,CAAC,iBAAiB,GAAG,CAAC,EAAE;YACjC,IAAA,sBAAc,EAAC,KAAK,CAAC,eAAe,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;YACxG,MAAM,CAAC,iBAAiB,EAAE,CAAC;SAC3B;QACD,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { setEntityStats } from '../../../simulation/stats';\r\nimport { DefaultChargesCard, OnAttackCard } from '../../card.interface';\r\n\r\nexport const TransmutedBramblewitch: OnAttackCard & DefaultChargesCard = {\r\n\tcardIds: [CardIds.TransmutedBramblewitch_BG27_013, CardIds.TransmutedBramblewitch_BG27_013_G],\r\n\tdefaultCharges: (entity: BoardEntity) => (entity.cardId === CardIds.TransmutedBramblewitch_BG27_013_G ? 2 : 1),\r\n\tonAnyMinionAttack: (\r\n\t\tminion: BoardEntity,\r\n\t\tinput: OnAttackInput,\r\n\t): { dmgDoneByAttacker: number; dmgDoneByDefender: number } => {\r\n\t\tif (minion !== input.attacker) {\r\n\t\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t\t}\r\n\t\tif (minion.abiityChargesLeft > 0) {\r\n\t\t\tsetEntityStats(input.defendingEntity, 3, 3, input.defendingBoard, input.defendingHero, input.gameState);\r\n\t\t\tminion.abiityChargesLeft--;\r\n\t\t}\r\n\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"transmuted-bramblewitch.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/transmuted-bramblewitch.ts"],"names":[],"mappings":";;;AAGA,qDAA2D;AAG9C,QAAA,sBAAsB,GAAmC;IACrE,OAAO,EAAE,0BAAoF;IAC7F,cAAc,EAAE,CAAC,MAAmB,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,iBAA8C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9G,KAAK,EAAE,CAAC,MAAmB,EAAE,KAAoB,EAA4D,EAAE;QAC9G,IAAI,MAAM,CAAC,iBAAiB,GAAG,CAAC,EAAE;YACjC,IAAA,sBAAc,EAAC,KAAK,CAAC,eAAe,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;YACxG,MAAM,CAAC,iBAAiB,EAAE,CAAC;SAC3B;QACD,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { setEntityStats } from '../../../simulation/stats';\r\nimport { DefaultChargesCard, RallyCard } from '../../card.interface';\r\n\r\nexport const TransmutedBramblewitch: RallyCard & DefaultChargesCard = {\r\n\tcardIds: [CardIds.TransmutedBramblewitch_BG27_013, CardIds.TransmutedBramblewitch_BG27_013_G],\r\n\tdefaultCharges: (entity: BoardEntity) => (entity.cardId === CardIds.TransmutedBramblewitch_BG27_013_G ? 2 : 1),\r\n\trally: (minion: BoardEntity, input: OnAttackInput): { dmgDoneByAttacker: number; dmgDoneByDefender: number } => {\r\n\t\tif (minion.abiityChargesLeft > 0) {\r\n\t\t\tsetEntityStats(input.defendingEntity, 3, 3, input.defendingBoard, input.defendingHero, input.gameState);\r\n\t\t\tminion.abiityChargesLeft--;\r\n\t\t}\r\n\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t},\r\n};\r\n"]}
@@ -1,2 +1,2 @@
1
- import { OnAttackCard } from '../../card.interface';
2
- export declare const TuskedCamper: OnAttackCard;
1
+ import { RallyCard } from '../../card.interface';
2
+ export declare const TuskedCamper: RallyCard;
@@ -4,10 +4,7 @@ exports.TuskedCamper = void 0;
4
4
  const blood_gems_1 = require("../../../simulation/blood-gems");
5
5
  exports.TuskedCamper = {
6
6
  cardIds: ["BG33_886", "BG33_886_G"],
7
- onAnyMinionAttack: (minion, input) => {
8
- if (minion !== input.attacker) {
9
- return { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };
10
- }
7
+ rally: (minion, input) => {
11
8
  const mult = minion.cardId === "BG33_886_G" ? 2 : 1;
12
9
  (0, blood_gems_1.playBloodGemsOn)(minion, minion, 1 * mult, input.attackingBoard, input.attackingHero, input.gameState);
13
10
  return { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };
@@ -1 +1 @@
1
- {"version":3,"file":"tusked-camper.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/tusked-camper.ts"],"names":[],"mappings":";;;AAEA,+DAAiE;AAIpD,QAAA,YAAY,GAAiB;IACzC,OAAO,EAAE,0BAAgE;IACzE,iBAAiB,EAAE,CAAC,MAAmB,EAAE,KAAoB,EAAE,EAAE;QAChE,IAAI,MAAM,KAAK,KAAK,CAAC,QAAQ,EAAE;YAC9B,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;SACtD;QAED,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAoC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,IAAA,4BAAe,EAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QACtG,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { playBloodGemsOn } from '../../../simulation/blood-gems';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { OnAttackCard } from '../../card.interface';\r\n\r\nexport const TuskedCamper: OnAttackCard = {\r\n\tcardIds: [CardIds.TuskedCamper_BG33_886, CardIds.TuskedCamper_BG33_886_G],\r\n\tonAnyMinionAttack: (minion: BoardEntity, input: OnAttackInput) => {\r\n\t\tif (minion !== input.attacker) {\r\n\t\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t\t}\r\n\r\n\t\tconst mult = minion.cardId === CardIds.TuskedCamper_BG33_886_G ? 2 : 1;\r\n\t\tplayBloodGemsOn(minion, minion, 1 * mult, input.attackingBoard, input.attackingHero, input.gameState);\r\n\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"tusked-camper.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/tusked-camper.ts"],"names":[],"mappings":";;;AAEA,+DAAiE;AAIpD,QAAA,YAAY,GAAc;IACtC,OAAO,EAAE,0BAAgE;IACzE,KAAK,EAAE,CAAC,MAAmB,EAAE,KAAoB,EAAE,EAAE;QACpD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAoC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,IAAA,4BAAe,EAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QACtG,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { playBloodGemsOn } from '../../../simulation/blood-gems';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { RallyCard } from '../../card.interface';\r\n\r\nexport const TuskedCamper: RallyCard = {\r\n\tcardIds: [CardIds.TuskedCamper_BG33_886, CardIds.TuskedCamper_BG33_886_G],\r\n\trally: (minion: BoardEntity, input: OnAttackInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.TuskedCamper_BG33_886_G ? 2 : 1;\r\n\t\tplayBloodGemsOn(minion, minion, 1 * mult, input.attackingBoard, input.attackingHero, input.gameState);\r\n\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t},\r\n};\r\n"]}
@@ -1,2 +1,2 @@
1
- import { OnAttackCard } from '../../card.interface';
2
- export declare const TwilightWatcher: OnAttackCard;
1
+ import { OnWheneverAnotherMinionAttacksCard } from '../../card.interface';
2
+ export declare const TwilightWatcher: OnWheneverAnotherMinionAttacksCard;
@@ -6,7 +6,7 @@ const stats_1 = require("../../../simulation/stats");
6
6
  const utils_1 = require("../../../utils");
7
7
  exports.TwilightWatcher = {
8
8
  cardIds: ["BG33_245", "BG33_245_G"],
9
- onAnyMinionAttack: (minion, input) => {
9
+ onWheneverAnotherMinionAttacks: (minion, input) => {
10
10
  if (!(0, utils_1.hasCorrectTribe)(input.attacker, input.attackingHero, reference_data_1.Race.DRAGON, input.gameState.anomalies, input.gameState.allCards)) {
11
11
  return { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };
12
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"twilight-watcher.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/twilight-watcher.ts"],"names":[],"mappings":";;;AAAA,iEAA6D;AAG7D,qDAAwD;AACxD,0CAAiD;AAGpC,QAAA,eAAe,GAAiB;IAC5C,OAAO,EAAE,0BAAsE;IAC/E,iBAAiB,EAAE,CAAC,MAAmB,EAAE,KAAoB,EAAE,EAAE;QAChE,IACC,CAAC,IAAA,uBAAe,EACf,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,aAAa,EACnB,qBAAI,CAAC,MAAM,EACX,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,SAAS,CAAC,QAAQ,CACxB,EACA;YACD,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;SACtD;QAED,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAuC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1E,MAAM,UAAU,GAAG,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CACpD,IAAA,uBAAe,EAAC,CAAC,EAAE,KAAK,CAAC,aAAa,EAAE,qBAAI,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CACzG,CAAC;QACF,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE;YAChC,IAAA,mBAAW,EAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SAC5G;QACD,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;CACD,CAAC","sourcesContent":["import { CardIds, Race } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { OnAttackCard } from '../../card.interface';\r\n\r\nexport const TwilightWatcher: OnAttackCard = {\r\n\tcardIds: [CardIds.TwilightWatcher_BG33_245, CardIds.TwilightWatcher_BG33_245_G],\r\n\tonAnyMinionAttack: (minion: BoardEntity, input: OnAttackInput) => {\r\n\t\tif (\r\n\t\t\t!hasCorrectTribe(\r\n\t\t\t\tinput.attacker,\r\n\t\t\t\tinput.attackingHero,\r\n\t\t\t\tRace.DRAGON,\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 { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t\t}\r\n\r\n\t\tconst mult = minion.cardId === CardIds.TwilightWatcher_BG33_245_G ? 2 : 1;\r\n\t\tconst candidates = input.attackingBoard.filter((e) =>\r\n\t\t\thasCorrectTribe(e, input.attackingHero, Race.DRAGON, input.gameState.anomalies, input.gameState.allCards),\r\n\t\t);\r\n\t\tfor (const target of candidates) {\r\n\t\t\tmodifyStats(target, minion, 1 * mult, 2 * mult, input.attackingBoard, input.attackingHero, input.gameState);\r\n\t\t}\r\n\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"twilight-watcher.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/twilight-watcher.ts"],"names":[],"mappings":";;;AAAA,iEAA6D;AAG7D,qDAAwD;AACxD,0CAAiD;AAGpC,QAAA,eAAe,GAAuC;IAClE,OAAO,EAAE,0BAAsE;IAC/E,8BAA8B,EAAE,CAAC,MAAmB,EAAE,KAAoB,EAAE,EAAE;QAC7E,IACC,CAAC,IAAA,uBAAe,EACf,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,aAAa,EACnB,qBAAI,CAAC,MAAM,EACX,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,SAAS,CAAC,QAAQ,CACxB,EACA;YACD,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;SACtD;QAED,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAuC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1E,MAAM,UAAU,GAAG,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CACpD,IAAA,uBAAe,EAAC,CAAC,EAAE,KAAK,CAAC,aAAa,EAAE,qBAAI,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CACzG,CAAC;QACF,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE;YAChC,IAAA,mBAAW,EAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SAC5G;QACD,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;CACD,CAAC","sourcesContent":["import { CardIds, Race } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { OnWheneverAnotherMinionAttacksCard } from '../../card.interface';\r\n\r\nexport const TwilightWatcher: OnWheneverAnotherMinionAttacksCard = {\r\n\tcardIds: [CardIds.TwilightWatcher_BG33_245, CardIds.TwilightWatcher_BG33_245_G],\r\n\tonWheneverAnotherMinionAttacks: (minion: BoardEntity, input: OnAttackInput) => {\r\n\t\tif (\r\n\t\t\t!hasCorrectTribe(\r\n\t\t\t\tinput.attacker,\r\n\t\t\t\tinput.attackingHero,\r\n\t\t\t\tRace.DRAGON,\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 { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t\t}\r\n\r\n\t\tconst mult = minion.cardId === CardIds.TwilightWatcher_BG33_245_G ? 2 : 1;\r\n\t\tconst candidates = input.attackingBoard.filter((e) =>\r\n\t\t\thasCorrectTribe(e, input.attackingHero, Race.DRAGON, input.gameState.anomalies, input.gameState.allCards),\r\n\t\t);\r\n\t\tfor (const target of candidates) {\r\n\t\t\tmodifyStats(target, minion, 1 * mult, 2 * mult, input.attackingBoard, input.attackingHero, input.gameState);\r\n\t\t}\r\n\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t},\r\n};\r\n"]}
@@ -1,2 +1,2 @@
1
- import { OnAttackCard } from '../../card.interface';
2
- export declare const VengefulProtector: OnAttackCard;
1
+ import { RallyCard } from '../../card.interface';
2
+ export declare const VengefulProtector: RallyCard;
@@ -4,10 +4,7 @@ exports.VengefulProtector = void 0;
4
4
  const stats_1 = require("../../../simulation/stats");
5
5
  exports.VengefulProtector = {
6
6
  cardIds: ["BG33_247", "BG33_247_G"],
7
- onAnyMinionAttack: (minion, input) => {
8
- if (input.attacker !== minion) {
9
- return { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };
10
- }
7
+ rally: (minion, input) => {
11
8
  const mult = minion.cardId === "BG33_247_G" ? 2 : 1;
12
9
  const candidates = input.attackingBoard.filter((e) => e !== minion);
13
10
  for (const target of candidates) {
@@ -1 +1 @@
1
- {"version":3,"file":"vengeful-protector.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/vengeful-protector.ts"],"names":[],"mappings":";;;AAGA,qDAAwD;AAG3C,QAAA,iBAAiB,GAAiB;IAC9C,OAAO,EAAE,0BAA0E;IACnF,iBAAiB,EAAE,CAAC,MAAmB,EAAE,KAAoB,EAAE,EAAE;QAChE,IAAI,KAAK,CAAC,QAAQ,KAAK,MAAM,EAAE;YAC9B,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;SACtD;QAED,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAyC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5E,MAAM,UAAU,GAAG,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC;QACpE,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE;YAChC,IAAA,mBAAW,EAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SAC5G;QACD,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { OnAttackCard } from '../../card.interface';\r\n\r\nexport const VengefulProtector: OnAttackCard = {\r\n\tcardIds: [CardIds.VengefulProtector_BG33_247, CardIds.VengefulProtector_BG33_247_G],\r\n\tonAnyMinionAttack: (minion: BoardEntity, input: OnAttackInput) => {\r\n\t\tif (input.attacker !== minion) {\r\n\t\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t\t}\r\n\r\n\t\tconst mult = minion.cardId === CardIds.VengefulProtector_BG33_247_G ? 2 : 1;\r\n\t\tconst candidates = input.attackingBoard.filter((e) => e !== minion);\r\n\t\tfor (const target of candidates) {\r\n\t\t\tmodifyStats(target, minion, 3 * mult, 3 * mult, input.attackingBoard, input.attackingHero, input.gameState);\r\n\t\t}\r\n\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"vengeful-protector.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/vengeful-protector.ts"],"names":[],"mappings":";;;AAGA,qDAAwD;AAG3C,QAAA,iBAAiB,GAAc;IAC3C,OAAO,EAAE,0BAA0E;IACnF,KAAK,EAAE,CAAC,MAAmB,EAAE,KAAoB,EAAE,EAAE;QACpD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAyC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5E,MAAM,UAAU,GAAG,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC;QACpE,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE;YAChC,IAAA,mBAAW,EAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SAC5G;QACD,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { RallyCard } from '../../card.interface';\r\n\r\nexport const VengefulProtector: RallyCard = {\r\n\tcardIds: [CardIds.VengefulProtector_BG33_247, CardIds.VengefulProtector_BG33_247_G],\r\n\trally: (minion: BoardEntity, input: OnAttackInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.VengefulProtector_BG33_247_G ? 2 : 1;\r\n\t\tconst candidates = input.attackingBoard.filter((e) => e !== minion);\r\n\t\tfor (const target of candidates) {\r\n\t\t\tmodifyStats(target, minion, 3 * mult, 3 * mult, input.attackingBoard, input.attackingHero, input.gameState);\r\n\t\t}\r\n\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t},\r\n};\r\n"]}
@@ -1,2 +1,2 @@
1
- import { OnAttackCard } from '../../card.interface';
2
- export declare const VoidRay: OnAttackCard;
1
+ import { OnWheneverAnotherMinionAttacksCard } from '../../card.interface';
2
+ export declare const VoidRay: OnWheneverAnotherMinionAttacksCard;
@@ -4,7 +4,7 @@ exports.VoidRay = void 0;
4
4
  const stats_1 = require("../../../simulation/stats");
5
5
  exports.VoidRay = {
6
6
  cardIds: ["BG31_HERO_802pt5", "BG31_HERO_802pt5_G"],
7
- onAnyMinionAttack: (minion, input) => {
7
+ onWheneverAnotherMinionAttacks: (minion, input) => {
8
8
  const mult = minion.cardId === "BG31_HERO_802pt5_G" ? 2 : 1;
9
9
  (0, stats_1.modifyStats)(input.attacker, minion, 5 * mult, 0, input.attackingBoard, input.attackingHero, input.gameState);
10
10
  (0, stats_1.modifyStats)(minion, minion, 5 * mult, 0, input.attackingBoard, input.attackingHero, input.gameState);
@@ -1 +1 @@
1
- {"version":3,"file":"void-ray.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/void-ray.ts"],"names":[],"mappings":";;;AAGA,qDAAwD;AAG3C,QAAA,OAAO,GAAiB;IACpC,OAAO,EAAE,0CAAoF;IAC7F,iBAAiB,EAAE,CAAC,MAAmB,EAAE,KAAoB,EAAE,EAAE;QAChE,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,yBAAuC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1E,IAAA,mBAAW,EAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QAC7G,IAAA,mBAAW,EAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QACrG,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { OnAttackCard } from '../../card.interface';\r\n\r\nexport const VoidRay: OnAttackCard = {\r\n\tcardIds: [CardIds.WarpGate_VoidRayToken_BG31_HERO_802pt5, CardIds.VoidRay_BG31_HERO_802pt5_G],\r\n\tonAnyMinionAttack: (minion: BoardEntity, input: OnAttackInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.VoidRay_BG31_HERO_802pt5_G ? 2 : 1;\r\n\t\tmodifyStats(input.attacker, minion, 5 * mult, 0, input.attackingBoard, input.attackingHero, input.gameState);\r\n\t\tmodifyStats(minion, minion, 5 * mult, 0, input.attackingBoard, input.attackingHero, input.gameState);\r\n\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"void-ray.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/void-ray.ts"],"names":[],"mappings":";;;AAGA,qDAAwD;AAG3C,QAAA,OAAO,GAAuC;IAC1D,OAAO,EAAE,0CAAoF;IAC7F,8BAA8B,EAAE,CAAC,MAAmB,EAAE,KAAoB,EAAE,EAAE;QAC7E,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,yBAAuC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1E,IAAA,mBAAW,EAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QAC7G,IAAA,mBAAW,EAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QACrG,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { OnWheneverAnotherMinionAttacksCard } from '../../card.interface';\r\n\r\nexport const VoidRay: OnWheneverAnotherMinionAttacksCard = {\r\n\tcardIds: [CardIds.WarpGate_VoidRayToken_BG31_HERO_802pt5, CardIds.VoidRay_BG31_HERO_802pt5_G],\r\n\tonWheneverAnotherMinionAttacks: (minion: BoardEntity, input: OnAttackInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.VoidRay_BG31_HERO_802pt5_G ? 2 : 1;\r\n\t\tmodifyStats(input.attacker, minion, 5 * mult, 0, input.attackingBoard, input.attackingHero, input.gameState);\r\n\t\tmodifyStats(minion, minion, 5 * mult, 0, input.attackingBoard, input.attackingHero, input.gameState);\r\n\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t},\r\n};\r\n"]}
@@ -1,2 +1,2 @@
1
- import { OnAttackCard } from '../../card.interface';
2
- export declare const WhirringProtectorEnchantment: OnAttackCard;
1
+ import { RallyCard } from '../../card.interface';
2
+ export declare const WhirringProtectorEnchantment: RallyCard;
@@ -7,10 +7,7 @@ exports.WhirringProtectorEnchantment = {
7
7
  "BG33_807e",
8
8
  "BG33_807_Ge",
9
9
  ],
10
- onAnyMinionAttack: (enchantment, input) => {
11
- if (!input.isSelfAttacking) {
12
- return { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };
13
- }
10
+ rally: (enchantment, input) => {
14
11
  const mult = enchantment.cardId === "BG33_807_Ge" ? 2 : 1;
15
12
  const targets = input.attackingBoard.filter((e) => e !== input.attacker);
16
13
  for (const target of targets) {
@@ -1 +1 @@
1
- {"version":3,"file":"whirring-protector-enchantment.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/whirring-protector-enchantment.ts"],"names":[],"mappings":";;;AAGA,qDAAwD;AAG3C,QAAA,4BAA4B,GAAiB;IACzD,OAAO,EAAE;;;KAGR;IACD,iBAAiB,EAAE,CAAC,WAAwB,EAAE,KAAoB,EAAE,EAAE;QACrE,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE;YAC3B,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;SACtD;QAED,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,kBAAuE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/G,MAAM,OAAO,GAAG,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,QAAQ,CAAC,CAAC;QACzE,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC7B,IAAA,mBAAW,EAAC,MAAM,EAAE,WAAW,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SAC1G;QACD,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { OnAttackCard } from '../../card.interface';\r\n\r\nexport const WhirringProtectorEnchantment: OnAttackCard = {\r\n\tcardIds: [\r\n\t\tCardIds.WhirringProtector_WhirringProtectorEnchantment_BG33_807e,\r\n\t\tCardIds.WhirringProtector_WhirringProtectorEnchantment_BG33_807_Ge,\r\n\t],\r\n\tonAnyMinionAttack: (enchantment: BoardEntity, input: OnAttackInput) => {\r\n\t\tif (!input.isSelfAttacking) {\r\n\t\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t\t}\r\n\r\n\t\tconst mult = enchantment.cardId === CardIds.WhirringProtector_WhirringProtectorEnchantment_BG33_807_Ge ? 2 : 1;\r\n\t\tconst targets = input.attackingBoard.filter((e) => e !== input.attacker);\r\n\t\tfor (const target of targets) {\r\n\t\t\tmodifyStats(target, enchantment, 5 * mult, 0, input.attackingBoard, input.attackingHero, input.gameState);\r\n\t\t}\r\n\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"whirring-protector-enchantment.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/whirring-protector-enchantment.ts"],"names":[],"mappings":";;;AAGA,qDAAwD;AAG3C,QAAA,4BAA4B,GAAc;IACtD,OAAO,EAAE;;;KAGR;IACD,KAAK,EAAE,CAAC,WAAwB,EAAE,KAAoB,EAAE,EAAE;QACzD,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,kBAAuE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/G,MAAM,OAAO,GAAG,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,QAAQ,CAAC,CAAC;QACzE,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC7B,IAAA,mBAAW,EAAC,MAAM,EAAE,WAAW,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SAC1G;QACD,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { RallyCard } from '../../card.interface';\r\n\r\nexport const WhirringProtectorEnchantment: RallyCard = {\r\n\tcardIds: [\r\n\t\tCardIds.WhirringProtector_WhirringProtectorEnchantment_BG33_807e,\r\n\t\tCardIds.WhirringProtector_WhirringProtectorEnchantment_BG33_807_Ge,\r\n\t],\r\n\trally: (enchantment: BoardEntity, input: OnAttackInput) => {\r\n\t\tconst mult = enchantment.cardId === CardIds.WhirringProtector_WhirringProtectorEnchantment_BG33_807_Ge ? 2 : 1;\r\n\t\tconst targets = input.attackingBoard.filter((e) => e !== input.attacker);\r\n\t\tfor (const target of targets) {\r\n\t\t\tmodifyStats(target, enchantment, 5 * mult, 0, input.attackingBoard, input.attackingHero, input.gameState);\r\n\t\t}\r\n\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t},\r\n};\r\n"]}
@@ -1,2 +1,2 @@
1
- import { OnAttackCard } from '../../card.interface';
2
- export declare const WhirringProtector: OnAttackCard;
1
+ import { RallyCard } from '../../card.interface';
2
+ export declare const WhirringProtector: RallyCard;
@@ -4,10 +4,7 @@ exports.WhirringProtector = void 0;
4
4
  const stats_1 = require("../../../simulation/stats");
5
5
  exports.WhirringProtector = {
6
6
  cardIds: ["BG33_807", "BG33_807_G"],
7
- onAnyMinionAttack: (minion, input) => {
8
- if (!input.isSelfAttacking) {
9
- return { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };
10
- }
7
+ rally: (minion, input) => {
11
8
  const mult = minion.cardId === "BG33_807_G" ? 2 : 1;
12
9
  const targets = input.attackingBoard.filter((e) => e !== minion);
13
10
  for (const target of targets) {
@@ -1 +1 @@
1
- {"version":3,"file":"whirring-protector.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/whirring-protector.ts"],"names":[],"mappings":";;;AAGA,qDAAwD;AAG3C,QAAA,iBAAiB,GAAiB;IAC9C,OAAO,EAAE,0BAA0E;IACnF,iBAAiB,EAAE,CAAC,MAAmB,EAAE,KAAoB,EAAE,EAAE;QAChE,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE;YAC3B,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;SACtD;QAED,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAyC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5E,MAAM,OAAO,GAAG,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC;QACjE,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC7B,IAAA,mBAAW,EAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SACrG;QACD,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { OnAttackCard } from '../../card.interface';\r\n\r\nexport const WhirringProtector: OnAttackCard = {\r\n\tcardIds: [CardIds.WhirringProtector_BG33_807, CardIds.WhirringProtector_BG33_807_G],\r\n\tonAnyMinionAttack: (minion: BoardEntity, input: OnAttackInput) => {\r\n\t\tif (!input.isSelfAttacking) {\r\n\t\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t\t}\r\n\r\n\t\tconst mult = minion.cardId === CardIds.WhirringProtector_BG33_807_G ? 2 : 1;\r\n\t\tconst targets = input.attackingBoard.filter((e) => e !== minion);\r\n\t\tfor (const target of targets) {\r\n\t\t\tmodifyStats(target, minion, 5 * mult, 0, input.attackingBoard, input.attackingHero, input.gameState);\r\n\t\t}\r\n\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"whirring-protector.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/whirring-protector.ts"],"names":[],"mappings":";;;AAGA,qDAAwD;AAG3C,QAAA,iBAAiB,GAAc;IAC3C,OAAO,EAAE,0BAA0E;IACnF,KAAK,EAAE,CAAC,MAAmB,EAAE,KAAoB,EAAE,EAAE;QACpD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAyC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5E,MAAM,OAAO,GAAG,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC;QACjE,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC7B,IAAA,mBAAW,EAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SACrG;QACD,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { RallyCard } from '../../card.interface';\r\n\r\nexport const WhirringProtector: RallyCard = {\r\n\tcardIds: [CardIds.WhirringProtector_BG33_807, CardIds.WhirringProtector_BG33_807_G],\r\n\trally: (minion: BoardEntity, input: OnAttackInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.WhirringProtector_BG33_807_G ? 2 : 1;\r\n\t\tconst targets = input.attackingBoard.filter((e) => e !== minion);\r\n\t\tfor (const target of targets) {\r\n\t\t\tmodifyStats(target, minion, 5 * mult, 0, input.attackingBoard, input.attackingHero, input.gameState);\r\n\t\t}\r\n\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t},\r\n};\r\n"]}
@@ -1,2 +1,2 @@
1
- import { OnAttackCard } from '../../card.interface';
2
- export declare const Yrel: OnAttackCard;
1
+ import { RallyCard } from '../../card.interface';
2
+ export declare const Yrel: RallyCard;
@@ -4,10 +4,7 @@ exports.Yrel = void 0;
4
4
  const utils_1 = require("../../../utils");
5
5
  exports.Yrel = {
6
6
  cardIds: ["BG23_350", "BG23_350_G"],
7
- onAnyMinionAttack: (minion, input) => {
8
- if (minion !== input.attacker) {
9
- return { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };
10
- }
7
+ rally: (minion, input) => {
11
8
  const mult = minion.cardId === "BG23_350_G" ? 2 : 1;
12
9
  (0, utils_1.grantStatsToMinionsOfEachType)(input.attacker, input.attackingBoard, input.attackingHero, 1 * mult, 2 * mult, input.gameState);
13
10
  return { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };
@@ -1 +1 @@
1
- {"version":3,"file":"yrel.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/yrel.ts"],"names":[],"mappings":";;;AAGA,0CAA+D;AAGlD,QAAA,IAAI,GAAiB;IACjC,OAAO,EAAE,0BAAgD;IACzD,iBAAiB,EAAE,CAAC,MAAmB,EAAE,KAAoB,EAAE,EAAE;QAChE,IAAI,MAAM,KAAK,KAAK,CAAC,QAAQ,EAAE;YAC9B,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;SACtD;QAED,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAA4B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/D,IAAA,qCAA6B,EAC5B,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,CAAC,GAAG,IAAI,EACR,CAAC,GAAG,IAAI,EACR,KAAK,CAAC,SAAS,CACf,CAAC;QACF,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { grantStatsToMinionsOfEachType } from '../../../utils';\r\nimport { OnAttackCard } from '../../card.interface';\r\n\r\nexport const Yrel: OnAttackCard = {\r\n\tcardIds: [CardIds.Yrel_BG23_350, CardIds.Yrel_BG23_350_G],\r\n\tonAnyMinionAttack: (minion: BoardEntity, input: OnAttackInput) => {\r\n\t\tif (minion !== input.attacker) {\r\n\t\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t\t}\r\n\r\n\t\tconst mult = minion.cardId === CardIds.Yrel_BG23_350_G ? 2 : 1;\r\n\t\tgrantStatsToMinionsOfEachType(\r\n\t\t\tinput.attacker,\r\n\t\t\tinput.attackingBoard,\r\n\t\t\tinput.attackingHero,\r\n\t\t\t1 * mult,\r\n\t\t\t2 * mult,\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"]}
1
+ {"version":3,"file":"yrel.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/yrel.ts"],"names":[],"mappings":";;;AAGA,0CAA+D;AAGlD,QAAA,IAAI,GAAc;IAC9B,OAAO,EAAE,0BAAgD;IACzD,KAAK,EAAE,CAAC,MAAmB,EAAE,KAAoB,EAAE,EAAE;QACpD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAA4B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/D,IAAA,qCAA6B,EAC5B,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,CAAC,GAAG,IAAI,EACR,CAAC,GAAG,IAAI,EACR,KAAK,CAAC,SAAS,CACf,CAAC;QACF,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { grantStatsToMinionsOfEachType } from '../../../utils';\r\nimport { RallyCard } from '../../card.interface';\r\n\r\nexport const Yrel: RallyCard = {\r\n\tcardIds: [CardIds.Yrel_BG23_350, CardIds.Yrel_BG23_350_G],\r\n\trally: (minion: BoardEntity, input: OnAttackInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.Yrel_BG23_350_G ? 2 : 1;\r\n\t\tgrantStatsToMinionsOfEachType(\r\n\t\t\tinput.attacker,\r\n\t\t\tinput.attackingBoard,\r\n\t\t\tinput.attackingHero,\r\n\t\t\t1 * mult,\r\n\t\t\t2 * mult,\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"]}
@@ -1,2 +1,2 @@
1
- import { OnAttackCard } from '../../card.interface';
2
- export declare const AllPurposeKibble: OnAttackCard;
1
+ import { OnWheneverAnotherMinionAttacksCard } from '../../card.interface';
2
+ export declare const AllPurposeKibble: OnWheneverAnotherMinionAttacksCard;
@@ -4,7 +4,7 @@ exports.AllPurposeKibble = void 0;
4
4
  const stats_1 = require("../../../simulation/stats");
5
5
  exports.AllPurposeKibble = {
6
6
  cardIds: ["BG32_MagicItem_200"],
7
- onAnyMinionAttack: (trinket, input) => {
7
+ onWheneverAnotherMinionAttacks: (trinket, input) => {
8
8
  const buff = trinket.scriptDataNum1 || 2;
9
9
  (0, stats_1.modifyStats)(input.attacker, trinket, buff, 0, input.attackingBoard, input.attackingHero, input.gameState);
10
10
  trinket.scriptDataNum1 = (trinket.scriptDataNum1 || 2) + 2;
@@ -1 +1 @@
1
- {"version":3,"file":"all-purpose-kibble.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/all-purpose-kibble.ts"],"names":[],"mappings":";;;AAGA,qDAAwD;AAG3C,QAAA,gBAAgB,GAAiB;IAC7C,OAAO,EAAE,sBAA6C;IACtD,iBAAiB,EAAE,CAAC,OAAqB,EAAE,KAAoB,EAAE,EAAE;QAClE,MAAM,IAAI,GAAG,OAAO,CAAC,cAAc,IAAI,CAAC,CAAC;QACzC,IAAA,mBAAW,EAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QAC1G,OAAO,CAAC,cAAc,GAAG,CAAC,OAAO,CAAC,cAAc,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAC3D,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '@firestone-hs/reference-data';\r\nimport { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { OnAttackCard } from '../../card.interface';\r\n\r\nexport const AllPurposeKibble: OnAttackCard = {\r\n\tcardIds: [CardIds.AllPurposeKibble_BG32_MagicItem_200],\r\n\tonAnyMinionAttack: (trinket: BoardTrinket, input: OnAttackInput) => {\r\n\t\tconst buff = trinket.scriptDataNum1 || 2;\r\n\t\tmodifyStats(input.attacker, trinket, buff, 0, input.attackingBoard, input.attackingHero, input.gameState);\r\n\t\ttrinket.scriptDataNum1 = (trinket.scriptDataNum1 || 2) + 2;\r\n\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"all-purpose-kibble.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/all-purpose-kibble.ts"],"names":[],"mappings":";;;AAGA,qDAAwD;AAG3C,QAAA,gBAAgB,GAAuC;IACnE,OAAO,EAAE,sBAA6C;IACtD,8BAA8B,EAAE,CAAC,OAAqB,EAAE,KAAoB,EAAE,EAAE;QAC/E,MAAM,IAAI,GAAG,OAAO,CAAC,cAAc,IAAI,CAAC,CAAC;QACzC,IAAA,mBAAW,EAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QAC1G,OAAO,CAAC,cAAc,GAAG,CAAC,OAAO,CAAC,cAAc,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAC3D,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '@firestone-hs/reference-data';\r\nimport { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { OnWheneverAnotherMinionAttacksCard } from '../../card.interface';\r\n\r\nexport const AllPurposeKibble: OnWheneverAnotherMinionAttacksCard = {\r\n\tcardIds: [CardIds.AllPurposeKibble_BG32_MagicItem_200],\r\n\tonWheneverAnotherMinionAttacks: (trinket: BoardTrinket, input: OnAttackInput) => {\r\n\t\tconst buff = trinket.scriptDataNum1 || 2;\r\n\t\tmodifyStats(input.attacker, trinket, buff, 0, input.attackingBoard, input.attackingHero, input.gameState);\r\n\t\ttrinket.scriptDataNum1 = (trinket.scriptDataNum1 || 2) + 2;\r\n\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t},\r\n};\r\n"]}
@@ -1,2 +1,2 @@
1
- import { DefaultScriptDataNumCard, OnAttackCard } from '../../card.interface';
2
- export declare const FaerieDragonScale: OnAttackCard & DefaultScriptDataNumCard;
1
+ import { DefaultScriptDataNumCard, OnWheneverAnotherMinionAttacksCard } from '../../card.interface';
2
+ export declare const FaerieDragonScale: OnWheneverAnotherMinionAttacksCard & DefaultScriptDataNumCard;
@@ -7,7 +7,7 @@ const utils_1 = require("../../../utils");
7
7
  exports.FaerieDragonScale = {
8
8
  cardIds: ["BG32_MagicItem_363"],
9
9
  defaultScriptDataNum: (cardId) => 3,
10
- onAnyMinionAttack: (trinket, input) => {
10
+ onWheneverAnotherMinionAttacks: (trinket, input) => {
11
11
  if (trinket.scriptDataNum1 > 0) {
12
12
  if (!input.attacker.divineShield &&
13
13
  (0, utils_1.hasCorrectTribe)(input.attacker, input.attackingHero, reference_data_1.Race.DRAGON, input.gameState.anomalies, input.gameState.allCards)) {
@@ -1 +1 @@
1
- {"version":3,"file":"faerie-dragon-scale.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/faerie-dragon-scale.ts"],"names":[],"mappings":";;;AAAA,iEAA6D;AAE7D,mEAAqE;AAErE,0CAAiD;AAGpC,QAAA,iBAAiB,GAA4C;IACzE,OAAO,EAAE,sBAA8C;IACvD,oBAAoB,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC;IAC3C,iBAAiB,EAAE,CAClB,OAAqB,EACrB,KAAoB,EACuC,EAAE;QAC7D,IAAI,OAAO,CAAC,cAAc,GAAG,CAAC,EAAE;YAC/B,IACC,CAAC,KAAK,CAAC,QAAQ,CAAC,YAAY;gBAC5B,IAAA,uBAAe,EACd,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,aAAa,EACnB,qBAAI,CAAC,MAAM,EACX,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,SAAS,CAAC,QAAQ,CACxB,EACA;gBACD,IAAA,kCAAkB,EACjB,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,aAAa,EACnB,IAAI,EACJ,KAAK,CAAC,SAAS,CACf,CAAC;gBACF,OAAO,CAAC,cAAc,EAAE,CAAC;aACzB;SACD;QACD,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;CACD,CAAC","sourcesContent":["import { CardIds, Race } from '@firestone-hs/reference-data';\r\nimport { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { updateDivineShield } from '../../../keywords/divine-shield';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { DefaultScriptDataNumCard, OnAttackCard } from '../../card.interface';\r\n\r\nexport const FaerieDragonScale: OnAttackCard & DefaultScriptDataNumCard = {\r\n\tcardIds: [CardIds.FaerieDragonScale_BG32_MagicItem_363],\r\n\tdefaultScriptDataNum: (cardId: string) => 3,\r\n\tonAnyMinionAttack: (\r\n\t\ttrinket: BoardTrinket,\r\n\t\tinput: OnAttackInput,\r\n\t): { dmgDoneByAttacker: number; dmgDoneByDefender: number } => {\r\n\t\tif (trinket.scriptDataNum1 > 0) {\r\n\t\t\tif (\r\n\t\t\t\t!input.attacker.divineShield &&\r\n\t\t\t\thasCorrectTribe(\r\n\t\t\t\t\tinput.attacker,\r\n\t\t\t\t\tinput.attackingHero,\r\n\t\t\t\t\tRace.DRAGON,\r\n\t\t\t\t\tinput.gameState.anomalies,\r\n\t\t\t\t\tinput.gameState.allCards,\r\n\t\t\t\t)\r\n\t\t\t) {\r\n\t\t\t\tupdateDivineShield(\r\n\t\t\t\t\tinput.attacker,\r\n\t\t\t\t\tinput.attackingBoard,\r\n\t\t\t\t\tinput.attackingHero,\r\n\t\t\t\t\tinput.defendingHero,\r\n\t\t\t\t\ttrue,\r\n\t\t\t\t\tinput.gameState,\r\n\t\t\t\t);\r\n\t\t\t\ttrinket.scriptDataNum1--;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"faerie-dragon-scale.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/faerie-dragon-scale.ts"],"names":[],"mappings":";;;AAAA,iEAA6D;AAE7D,mEAAqE;AAErE,0CAAiD;AAGpC,QAAA,iBAAiB,GAAkE;IAC/F,OAAO,EAAE,sBAA8C;IACvD,oBAAoB,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC;IAC3C,8BAA8B,EAAE,CAC/B,OAAqB,EACrB,KAAoB,EACuC,EAAE;QAC7D,IAAI,OAAO,CAAC,cAAc,GAAG,CAAC,EAAE;YAC/B,IACC,CAAC,KAAK,CAAC,QAAQ,CAAC,YAAY;gBAC5B,IAAA,uBAAe,EACd,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,aAAa,EACnB,qBAAI,CAAC,MAAM,EACX,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,SAAS,CAAC,QAAQ,CACxB,EACA;gBACD,IAAA,kCAAkB,EACjB,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,aAAa,EACnB,IAAI,EACJ,KAAK,CAAC,SAAS,CACf,CAAC;gBACF,OAAO,CAAC,cAAc,EAAE,CAAC;aACzB;SACD;QACD,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;CACD,CAAC","sourcesContent":["import { CardIds, Race } from '@firestone-hs/reference-data';\r\nimport { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { updateDivineShield } from '../../../keywords/divine-shield';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { DefaultScriptDataNumCard, OnWheneverAnotherMinionAttacksCard } from '../../card.interface';\r\n\r\nexport const FaerieDragonScale: OnWheneverAnotherMinionAttacksCard & DefaultScriptDataNumCard = {\r\n\tcardIds: [CardIds.FaerieDragonScale_BG32_MagicItem_363],\r\n\tdefaultScriptDataNum: (cardId: string) => 3,\r\n\tonWheneverAnotherMinionAttacks: (\r\n\t\ttrinket: BoardTrinket,\r\n\t\tinput: OnAttackInput,\r\n\t): { dmgDoneByAttacker: number; dmgDoneByDefender: number } => {\r\n\t\tif (trinket.scriptDataNum1 > 0) {\r\n\t\t\tif (\r\n\t\t\t\t!input.attacker.divineShield &&\r\n\t\t\t\thasCorrectTribe(\r\n\t\t\t\t\tinput.attacker,\r\n\t\t\t\t\tinput.attackingHero,\r\n\t\t\t\t\tRace.DRAGON,\r\n\t\t\t\t\tinput.gameState.anomalies,\r\n\t\t\t\t\tinput.gameState.allCards,\r\n\t\t\t\t)\r\n\t\t\t) {\r\n\t\t\t\tupdateDivineShield(\r\n\t\t\t\t\tinput.attacker,\r\n\t\t\t\t\tinput.attackingBoard,\r\n\t\t\t\t\tinput.attackingHero,\r\n\t\t\t\t\tinput.defendingHero,\r\n\t\t\t\t\ttrue,\r\n\t\t\t\t\tinput.gameState,\r\n\t\t\t\t);\r\n\t\t\t\ttrinket.scriptDataNum1--;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t},\r\n};\r\n"]}
@@ -8,6 +8,9 @@ exports.UnholySanctum = {
8
8
  const target = input.boardWithDeadEntity[input.boardWithDeadEntity.length - 1];
9
9
  if (!!target) {
10
10
  (0, stats_1.modifyStats)(target, trinket, trinket.cardId === "BG32_MagicItem_862" ? 3 : 6, trinket.cardId === "BG32_MagicItem_862" ? 2 : 6, input.boardWithDeadEntity, input.boardWithDeadEntityHero, input.gameState);
11
+ const afterMod = target.attack;
12
+ if (afterMod > 10) {
13
+ }
11
14
  }
12
15
  },
13
16
  };
@@ -1 +1 @@
1
- {"version":3,"file":"unholy-sanctum.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/unholy-sanctum.ts"],"names":[],"mappings":";;;AAGA,qDAAwD;AAG3C,QAAA,aAAa,GAA6B;IACtD,OAAO,EAAE,6CAAwG;IACjH,sBAAsB,EAAE,CAAC,OAAqB,EAAE,KAAgC,EAAE,EAAE;QACnF,MAAM,MAAM,GAAG,KAAK,CAAC,mBAAmB,CAAC,KAAK,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC/E,IAAI,CAAC,CAAC,MAAM,EAAE;YACb,IAAA,mBAAW,EACV,MAAM,EACN,OAAO,EACP,OAAO,CAAC,MAAM,yBAA6C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACnE,OAAO,CAAC,MAAM,yBAA6C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACnE,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,uBAAuB,EAC7B,KAAK,CAAC,SAAS,CACf,CAAC;SACF;IACF,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '@firestone-hs/reference-data';\r\nimport { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { DeathrattleTriggeredCard } from '../../card.interface';\r\n\r\nexport const UnholySanctum: DeathrattleTriggeredCard = {\r\n\tcardIds: [CardIds.UnholySanctum_BG32_MagicItem_862, CardIds.UnholySanctum_UnholySanctumToken_BG32_MagicItem_862t],\r\n\tonDeathrattleTriggered: (trinket: BoardTrinket, input: DeathrattleTriggeredInput) => {\r\n\t\tconst target = input.boardWithDeadEntity[input.boardWithDeadEntity.length - 1];\r\n\t\tif (!!target) {\r\n\t\t\tmodifyStats(\r\n\t\t\t\ttarget,\r\n\t\t\t\ttrinket,\r\n\t\t\t\ttrinket.cardId === CardIds.UnholySanctum_BG32_MagicItem_862 ? 3 : 6,\r\n\t\t\t\ttrinket.cardId === CardIds.UnholySanctum_BG32_MagicItem_862 ? 2 : 6,\r\n\t\t\t\tinput.boardWithDeadEntity,\r\n\t\t\t\tinput.boardWithDeadEntityHero,\r\n\t\t\t\tinput.gameState,\r\n\t\t\t);\r\n\t\t}\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"unholy-sanctum.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/unholy-sanctum.ts"],"names":[],"mappings":";;;AAGA,qDAAwD;AAG3C,QAAA,aAAa,GAA6B;IACtD,OAAO,EAAE,6CAAwG;IACjH,sBAAsB,EAAE,CAAC,OAAqB,EAAE,KAAgC,EAAE,EAAE;QACnF,MAAM,MAAM,GAAG,KAAK,CAAC,mBAAmB,CAAC,KAAK,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC/E,IAAI,CAAC,CAAC,MAAM,EAAE;YACb,IAAA,mBAAW,EACV,MAAM,EACN,OAAO,EACP,OAAO,CAAC,MAAM,yBAA6C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACnE,OAAO,CAAC,MAAM,yBAA6C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACnE,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,uBAAuB,EAC7B,KAAK,CAAC,SAAS,CACf,CAAC;YACF,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC;YAC/B,IAAI,QAAQ,GAAG,EAAE,EAAE;aAElB;SACD;IACF,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '@firestone-hs/reference-data';\r\nimport { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { DeathrattleTriggeredCard } from '../../card.interface';\r\n\r\nexport const UnholySanctum: DeathrattleTriggeredCard = {\r\n\tcardIds: [CardIds.UnholySanctum_BG32_MagicItem_862, CardIds.UnholySanctum_UnholySanctumToken_BG32_MagicItem_862t],\r\n\tonDeathrattleTriggered: (trinket: BoardTrinket, input: DeathrattleTriggeredInput) => {\r\n\t\tconst target = input.boardWithDeadEntity[input.boardWithDeadEntity.length - 1];\r\n\t\tif (!!target) {\r\n\t\t\tmodifyStats(\r\n\t\t\t\ttarget,\r\n\t\t\t\ttrinket,\r\n\t\t\t\ttrinket.cardId === CardIds.UnholySanctum_BG32_MagicItem_862 ? 3 : 6,\r\n\t\t\t\ttrinket.cardId === CardIds.UnholySanctum_BG32_MagicItem_862 ? 2 : 6,\r\n\t\t\t\tinput.boardWithDeadEntity,\r\n\t\t\t\tinput.boardWithDeadEntityHero,\r\n\t\t\t\tinput.gameState,\r\n\t\t\t);\r\n\t\t\tconst afterMod = target.attack;\r\n\t\t\tif (afterMod > 10) {\r\n\t\t\t\t// Nothing\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n};\r\n"]}
@@ -57,7 +57,7 @@ const spawnEntities = (cardId, quantity, boardToSpawnInto, boardToSpawnIntoHero,
57
57
  };
58
58
  exports.spawnEntities = spawnEntities;
59
59
  const spawnEntitiesFromDeathrattle = (deadEntity, deadEntityIndexFromRight, boardWithDeadEntity, boardWithDeadEntityHero, otherBoard, otherBoardHero, entitiesDeadThisAttack, gameState) => {
60
- var _a, _b, _c, _d, _e, _f;
60
+ var _a, _b, _c, _d, _e, _f, _g;
61
61
  const finalSpawns = [];
62
62
  const multiplier = (0, deathrattle_effects_1.computeDeathrattleMultiplier)([...boardWithDeadEntity], boardWithDeadEntityHero, deadEntity, gameState.sharedState);
63
63
  const deathrattleTriggeredInput = {
@@ -609,8 +609,16 @@ const spawnEntitiesFromDeathrattle = (deadEntity, deadEntityIndexFromRight, boar
609
609
  (0, deathrattle_effects_1.applyLightningInvocationEnchantment)(boardWithDeadEntity, boardWithDeadEntityHero, deadEntity, otherBoard, otherBoardHero, gameState);
610
610
  break;
611
611
  default:
612
- if (!(0, utils_2.hasEntityMechanic)(deadEntity, reference_data_1.GameTag.DEATHRATTLE, gameState.allCards)) {
613
- hasTriggered = false;
612
+ if ((_g = deadEntity.additionalCards) === null || _g === void 0 ? void 0 : _g.includes(deadEntityCardId)) {
613
+ if (!(0, utils_2.hasMechanic)(gameState.allCards.getCard(deadEntityCardId), reference_data_1.GameTag.DEATHRATTLE)) {
614
+ hasTriggered = false;
615
+ }
616
+ }
617
+ else {
618
+ const source = [deadEntity, ...enchantments].find((e) => e.cardId === deadEntityCardId);
619
+ if (!(0, utils_2.hasEntityMechanic)(source, reference_data_1.GameTag.DEATHRATTLE, gameState.allCards)) {
620
+ hasTriggered = false;
621
+ }
614
622
  }
615
623
  break;
616
624
  }