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

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 (140) 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 +14 -8
  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 +12 -6
  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/scourge-harvester.js.map +1 -1
  87. package/dist/cards/impl/minion/sinodorei-straight-shot.d.ts +2 -2
  88. package/dist/cards/impl/minion/sinodorei-straight-shot.js +1 -4
  89. package/dist/cards/impl/minion/sinodorei-straight-shot.js.map +1 -1
  90. package/dist/cards/impl/minion/sleepy-supporter.d.ts +2 -2
  91. package/dist/cards/impl/minion/sleepy-supporter.js +1 -4
  92. package/dist/cards/impl/minion/sleepy-supporter.js.map +1 -1
  93. package/dist/cards/impl/minion/stomping-stegodon-enchantment.d.ts +2 -2
  94. package/dist/cards/impl/minion/stomping-stegodon-enchantment.js +1 -4
  95. package/dist/cards/impl/minion/stomping-stegodon-enchantment.js.map +1 -1
  96. package/dist/cards/impl/minion/stomping-stegodon.d.ts +2 -2
  97. package/dist/cards/impl/minion/stomping-stegodon.js +1 -4
  98. package/dist/cards/impl/minion/stomping-stegodon.js.map +1 -1
  99. package/dist/cards/impl/minion/transmuted-bramblewitch.d.ts +2 -2
  100. package/dist/cards/impl/minion/transmuted-bramblewitch.js +1 -4
  101. package/dist/cards/impl/minion/transmuted-bramblewitch.js.map +1 -1
  102. package/dist/cards/impl/minion/tusked-camper.d.ts +2 -2
  103. package/dist/cards/impl/minion/tusked-camper.js +1 -4
  104. package/dist/cards/impl/minion/tusked-camper.js.map +1 -1
  105. package/dist/cards/impl/minion/twilight-watcher.d.ts +2 -2
  106. package/dist/cards/impl/minion/twilight-watcher.js +16 -10
  107. package/dist/cards/impl/minion/twilight-watcher.js.map +1 -1
  108. package/dist/cards/impl/minion/vengeful-protector.d.ts +2 -2
  109. package/dist/cards/impl/minion/vengeful-protector.js +1 -4
  110. package/dist/cards/impl/minion/vengeful-protector.js.map +1 -1
  111. package/dist/cards/impl/minion/void-ray.d.ts +2 -2
  112. package/dist/cards/impl/minion/void-ray.js +11 -5
  113. package/dist/cards/impl/minion/void-ray.js.map +1 -1
  114. package/dist/cards/impl/minion/whirring-protector-enchantment.d.ts +2 -2
  115. package/dist/cards/impl/minion/whirring-protector-enchantment.js +1 -4
  116. package/dist/cards/impl/minion/whirring-protector-enchantment.js.map +1 -1
  117. package/dist/cards/impl/minion/whirring-protector.d.ts +2 -2
  118. package/dist/cards/impl/minion/whirring-protector.js +1 -4
  119. package/dist/cards/impl/minion/whirring-protector.js.map +1 -1
  120. package/dist/cards/impl/minion/yrel.d.ts +2 -2
  121. package/dist/cards/impl/minion/yrel.js +1 -4
  122. package/dist/cards/impl/minion/yrel.js.map +1 -1
  123. package/dist/cards/impl/trinket/all-purpose-kibble.d.ts +2 -2
  124. package/dist/cards/impl/trinket/all-purpose-kibble.js +6 -1
  125. package/dist/cards/impl/trinket/all-purpose-kibble.js.map +1 -1
  126. package/dist/cards/impl/trinket/faerie-dragon-scale.d.ts +2 -2
  127. package/dist/cards/impl/trinket/faerie-dragon-scale.js +1 -1
  128. package/dist/cards/impl/trinket/faerie-dragon-scale.js.map +1 -1
  129. package/dist/cards/impl/trinket/unholy-sanctum.js +3 -0
  130. package/dist/cards/impl/trinket/unholy-sanctum.js.map +1 -1
  131. package/dist/simulation/deathrattle-effects.js +2 -0
  132. package/dist/simulation/deathrattle-effects.js.map +1 -1
  133. package/dist/simulation/deathrattle-orchestration.js +3 -2
  134. package/dist/simulation/deathrattle-orchestration.js.map +1 -1
  135. package/dist/simulation/deathrattle-spawns.js +11 -3
  136. package/dist/simulation/deathrattle-spawns.js.map +1 -1
  137. package/dist/simulation/on-attack.d.ts +0 -1
  138. package/dist/simulation/on-attack.js +121 -90
  139. package/dist/simulation/on-attack.js.map +1 -1
  140. package/package.json +1 -1
@@ -1,2 +1,2 @@
1
- import { OnAttackCard } from '../../card.interface';
2
- export declare const Colossus: OnAttackCard;
1
+ import { RallyCard } from '../../card.interface';
2
+ export declare const Colossus: RallyCard;
@@ -4,10 +4,7 @@ exports.Colossus = void 0;
4
4
  const attack_1 = require("../../../simulation/attack");
5
5
  exports.Colossus = {
6
6
  cardIds: ["BG31_HERO_802pt", "BG31_HERO_802pt_G"],
7
- onAnyMinionAttack: (minion, input) => {
8
- if (minion !== input.attacker) {
9
- return { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };
10
- }
7
+ rally: (minion, input) => {
11
8
  let dmgDoneByAttacker = 0;
12
9
  const neighbours = (0, attack_1.getNeighbours)(input.defendingBoard, input.defendingEntity);
13
10
  const damage = minion.scriptDataNum1 || 1;
@@ -1 +1 @@
1
- {"version":3,"file":"colossus.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/colossus.ts"],"names":[],"mappings":";;;AAEA,uDAA+E;AAIlE,QAAA,QAAQ,GAAiB;IACrC,OAAO,EAAE,wCAAoF;IAC7F,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;QAED,IAAI,iBAAiB,GAAG,CAAC,CAAC;QAC1B,MAAM,UAAU,GAAG,IAAA,sBAAa,EAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC;QAC9E,MAAM,MAAM,GAAG,MAAM,CAAC,cAAc,IAAI,CAAC,CAAC;QAC1C,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE;YAChC,MAAM,GAAG,GAAG,IAAA,2BAAkB,EAC7B,MAAM,EACN,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,MAAM,EACN,MAAM,EACN,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,SAAS,CACf,CAAC;YACF,iBAAiB,IAAI,GAAG,CAAC;SACzB;QACD,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACpD,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { dealDamageToMinion, getNeighbours } from '../../../simulation/attack';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { OnAttackCard } from '../../card.interface';\r\n\r\nexport const Colossus: OnAttackCard = {\r\n\tcardIds: [CardIds.WarpGate_ColossusToken_BG31_HERO_802pt, CardIds.Colossus_BG31_HERO_802pt_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\r\n\t\tlet dmgDoneByAttacker = 0;\r\n\t\tconst neighbours = getNeighbours(input.defendingBoard, input.defendingEntity);\r\n\t\tconst damage = minion.scriptDataNum1 || 1;\r\n\t\tfor (const target of neighbours) {\r\n\t\t\tconst dmg = dealDamageToMinion(\r\n\t\t\t\ttarget,\r\n\t\t\t\tinput.defendingBoard,\r\n\t\t\t\tinput.defendingHero,\r\n\t\t\t\tminion,\r\n\t\t\t\tdamage,\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\tdmgDoneByAttacker += dmg;\r\n\t\t}\r\n\t\treturn { dmgDoneByAttacker, dmgDoneByDefender: 0 };\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"colossus.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/colossus.ts"],"names":[],"mappings":";;;AAEA,uDAA+E;AAIlE,QAAA,QAAQ,GAAc;IAClC,OAAO,EAAE,wCAAoF;IAC7F,KAAK,EAAE,CAAC,MAAmB,EAAE,KAAoB,EAA4D,EAAE;QAC9G,IAAI,iBAAiB,GAAG,CAAC,CAAC;QAC1B,MAAM,UAAU,GAAG,IAAA,sBAAa,EAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC;QAC9E,MAAM,MAAM,GAAG,MAAM,CAAC,cAAc,IAAI,CAAC,CAAC;QAC1C,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE;YAChC,MAAM,GAAG,GAAG,IAAA,2BAAkB,EAC7B,MAAM,EACN,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,MAAM,EACN,MAAM,EACN,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,SAAS,CACf,CAAC;YACF,iBAAiB,IAAI,GAAG,CAAC;SACzB;QACD,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACpD,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { dealDamageToMinion, getNeighbours } from '../../../simulation/attack';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { RallyCard } from '../../card.interface';\r\n\r\nexport const Colossus: RallyCard = {\r\n\tcardIds: [CardIds.WarpGate_ColossusToken_BG31_HERO_802pt, CardIds.Colossus_BG31_HERO_802pt_G],\r\n\trally: (minion: BoardEntity, input: OnAttackInput): { dmgDoneByAttacker: number; dmgDoneByDefender: number } => {\r\n\t\tlet dmgDoneByAttacker = 0;\r\n\t\tconst neighbours = getNeighbours(input.defendingBoard, input.defendingEntity);\r\n\t\tconst damage = minion.scriptDataNum1 || 1;\r\n\t\tfor (const target of neighbours) {\r\n\t\t\tconst dmg = dealDamageToMinion(\r\n\t\t\t\ttarget,\r\n\t\t\t\tinput.defendingBoard,\r\n\t\t\t\tinput.defendingHero,\r\n\t\t\t\tminion,\r\n\t\t\t\tdamage,\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\tdmgDoneByAttacker += dmg;\r\n\t\t}\r\n\t\treturn { dmgDoneByAttacker, dmgDoneByDefender: 0 };\r\n\t},\r\n};\r\n"]}
@@ -1,2 +1,2 @@
1
- import { BattlecryCard, DeathrattleSpawnCard, OnAttackCard } from '../../card.interface';
2
- export declare const ExceptionalCaretaker: OnAttackCard & DeathrattleSpawnCard & BattlecryCard;
1
+ import { BattlecryCard, DeathrattleSpawnCard, RallyCard } from '../../card.interface';
2
+ export declare const ExceptionalCaretaker: RallyCard & DeathrattleSpawnCard & BattlecryCard;
@@ -6,10 +6,7 @@ const attackBuff = 2;
6
6
  const healthBuff = 2;
7
7
  exports.ExceptionalCaretaker = {
8
8
  cardIds: ["BG33_701", "BG33_701_G"],
9
- onAnyMinionAttack: (minion, input) => {
10
- if (minion !== input.attacker) {
11
- return { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };
12
- }
9
+ rally: (minion, input) => {
13
10
  const mult = minion.cardId === "BG33_701_G" ? 2 : 1;
14
11
  const targets = input.attackingBoard.filter((e) => e !== minion);
15
12
  for (const target of targets) {
@@ -1 +1 @@
1
- {"version":3,"file":"exceptionnal-caretaker.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/exceptionnal-caretaker.ts"],"names":[],"mappings":";;;AAKA,qDAAwD;AAGxD,MAAM,UAAU,GAAG,CAAC,CAAC;AACrB,MAAM,UAAU,GAAG,CAAC,CAAC;AAER,QAAA,oBAAoB,GAAwD;IACxF,OAAO,EAAE,0BAAgF;IACzF,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,iBAA4C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/E,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,EACV,MAAM,EACN,MAAM,EACN,UAAU,GAAG,IAAI,EACjB,UAAU,GAAG,IAAI,EACjB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,SAAS,CACf,CAAC;SACF;QACD,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;IACD,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;QACzD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAA4C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/E,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC;QACxD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC7B,IAAA,mBAAW,EAAC,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,EAAE,UAAU,GAAG,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SAC5G;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IACD,gBAAgB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAA0B,EAAE;QACnG,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAA4C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/E,MAAM,OAAO,GAAG,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC;QACtE,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC7B,IAAA,mBAAW,EACV,MAAM,EACN,MAAM,EACN,UAAU,GAAG,IAAI,EACjB,UAAU,GAAG,IAAI,EACjB,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,uBAAuB,EAC7B,KAAK,CAAC,SAAS,CACf,CAAC;SACF;QACD,OAAO,EAAE,CAAC;IACX,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { BattlecryInput } from '../../../simulation/battlecries';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { BattlecryCard, DeathrattleSpawnCard, OnAttackCard } from '../../card.interface';\r\n\r\nconst attackBuff = 2;\r\nconst healthBuff = 2;\r\n\r\nexport const ExceptionalCaretaker: OnAttackCard & DeathrattleSpawnCard & BattlecryCard = {\r\n\tcardIds: [CardIds.ExceptionalCaretaker_BG33_701, CardIds.ExceptionalCaretaker_BG33_701_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.ExceptionalCaretaker_BG33_701_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(\r\n\t\t\t\ttarget,\r\n\t\t\t\tminion,\r\n\t\t\t\tattackBuff * mult,\r\n\t\t\t\thealthBuff * 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}\r\n\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t},\r\n\tbattlecry: (minion: BoardEntity, input: BattlecryInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.ExceptionalCaretaker_BG33_701_G ? 2 : 1;\r\n\t\tconst targets = input.board.filter((e) => e !== minion);\r\n\t\tfor (const target of targets) {\r\n\t\t\tmodifyStats(target, minion, attackBuff * mult, healthBuff * mult, input.board, input.hero, input.gameState);\r\n\t\t}\r\n\t\treturn true;\r\n\t},\r\n\tdeathrattleSpawn: (minion: BoardEntity, input: DeathrattleTriggeredInput): readonly BoardEntity[] => {\r\n\t\tconst mult = minion.cardId === CardIds.ExceptionalCaretaker_BG33_701_G ? 2 : 1;\r\n\t\tconst targets = input.boardWithDeadEntity.filter((e) => e !== minion);\r\n\t\tfor (const target of targets) {\r\n\t\t\tmodifyStats(\r\n\t\t\t\ttarget,\r\n\t\t\t\tminion,\r\n\t\t\t\tattackBuff * mult,\r\n\t\t\t\thealthBuff * mult,\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\treturn [];\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"exceptionnal-caretaker.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/exceptionnal-caretaker.ts"],"names":[],"mappings":";;;AAKA,qDAAwD;AAGxD,MAAM,UAAU,GAAG,CAAC,CAAC;AACrB,MAAM,UAAU,GAAG,CAAC,CAAC;AAER,QAAA,oBAAoB,GAAqD;IACrF,OAAO,EAAE,0BAAgF;IACzF,KAAK,EAAE,CAAC,MAAmB,EAAE,KAAoB,EAAE,EAAE;QACpD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAA4C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/E,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,EACV,MAAM,EACN,MAAM,EACN,UAAU,GAAG,IAAI,EACjB,UAAU,GAAG,IAAI,EACjB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,SAAS,CACf,CAAC;SACF;QACD,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;IACD,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;QACzD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAA4C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/E,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC;QACxD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC7B,IAAA,mBAAW,EAAC,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,EAAE,UAAU,GAAG,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SAC5G;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IACD,gBAAgB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAA0B,EAAE;QACnG,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAA4C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/E,MAAM,OAAO,GAAG,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC;QACtE,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC7B,IAAA,mBAAW,EACV,MAAM,EACN,MAAM,EACN,UAAU,GAAG,IAAI,EACjB,UAAU,GAAG,IAAI,EACjB,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,uBAAuB,EAC7B,KAAK,CAAC,SAAS,CACf,CAAC;SACF;QACD,OAAO,EAAE,CAAC;IACX,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { BattlecryInput } from '../../../simulation/battlecries';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { BattlecryCard, DeathrattleSpawnCard, RallyCard } from '../../card.interface';\r\n\r\nconst attackBuff = 2;\r\nconst healthBuff = 2;\r\n\r\nexport const ExceptionalCaretaker: RallyCard & DeathrattleSpawnCard & BattlecryCard = {\r\n\tcardIds: [CardIds.ExceptionalCaretaker_BG33_701, CardIds.ExceptionalCaretaker_BG33_701_G],\r\n\trally: (minion: BoardEntity, input: OnAttackInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.ExceptionalCaretaker_BG33_701_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(\r\n\t\t\t\ttarget,\r\n\t\t\t\tminion,\r\n\t\t\t\tattackBuff * mult,\r\n\t\t\t\thealthBuff * 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}\r\n\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t},\r\n\tbattlecry: (minion: BoardEntity, input: BattlecryInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.ExceptionalCaretaker_BG33_701_G ? 2 : 1;\r\n\t\tconst targets = input.board.filter((e) => e !== minion);\r\n\t\tfor (const target of targets) {\r\n\t\t\tmodifyStats(target, minion, attackBuff * mult, healthBuff * mult, input.board, input.hero, input.gameState);\r\n\t\t}\r\n\t\treturn true;\r\n\t},\r\n\tdeathrattleSpawn: (minion: BoardEntity, input: DeathrattleTriggeredInput): readonly BoardEntity[] => {\r\n\t\tconst mult = minion.cardId === CardIds.ExceptionalCaretaker_BG33_701_G ? 2 : 1;\r\n\t\tconst targets = input.boardWithDeadEntity.filter((e) => e !== minion);\r\n\t\tfor (const target of targets) {\r\n\t\t\tmodifyStats(\r\n\t\t\t\ttarget,\r\n\t\t\t\tminion,\r\n\t\t\t\tattackBuff * mult,\r\n\t\t\t\thealthBuff * mult,\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\treturn [];\r\n\t},\r\n};\r\n"]}
@@ -1,2 +1,2 @@
1
- import { OnAttackCard } from '../../card.interface';
2
- export declare const GearedGuard: OnAttackCard;
1
+ import { RallyCard } from '../../card.interface';
2
+ export declare const GearedGuard: RallyCard;
@@ -5,10 +5,7 @@ const divine_shield_1 = require("../../../keywords/divine-shield");
5
5
  const utils_1 = require("../../../services/utils");
6
6
  exports.GearedGuard = {
7
7
  cardIds: ["BG33_325", "BG33_325_G"],
8
- onAnyMinionAttack: (minion, input) => {
9
- if (minion !== input.attacker) {
10
- return { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };
11
- }
8
+ rally: (minion, input) => {
12
9
  const mult = minion.cardId === "BG33_325_G" ? 2 : 1;
13
10
  for (let i = 0; i < mult; i++) {
14
11
  const possibleTargets = input.attackingBoard.filter((e) => e !== minion && !e.divineShield);
@@ -1 +1 @@
1
- {"version":3,"file":"geared-guard.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/geared-guard.ts"],"names":[],"mappings":";;;AAEA,mEAAqE;AACrE,mDAAqD;AAIxC,QAAA,WAAW,GAAiB;IACxC,OAAO,EAAE,0BAA8D;IACvE,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,iBAAmC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;YAC9B,MAAM,eAAe,GAAG,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YAC5F,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC/B,MAAM,MAAM,GAAG,IAAA,kBAAU,EAAC,eAAe,CAAC,CAAC;gBAC3C,IAAA,kCAAkB,EACjB,MAAM,EACN,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,aAAa,EACnB,IAAI,EACJ,KAAK,CAAC,SAAS,CACf,CAAC;aACF;SACD;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 { updateDivineShield } from '../../../keywords/divine-shield';\r\nimport { pickRandom } from '../../../services/utils';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { OnAttackCard } from '../../card.interface';\r\n\r\nexport const GearedGuard: OnAttackCard = {\r\n\tcardIds: [CardIds.GearedGuard_BG33_325, CardIds.GearedGuard_BG33_325_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.GearedGuard_BG33_325_G ? 2 : 1;\r\n\t\tfor (let i = 0; i < mult; i++) {\r\n\t\t\tconst possibleTargets = input.attackingBoard.filter((e) => e !== minion && !e.divineShield);\r\n\t\t\tif (possibleTargets.length > 0) {\r\n\t\t\t\tconst target = pickRandom(possibleTargets);\r\n\t\t\t\tupdateDivineShield(\r\n\t\t\t\t\ttarget,\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}\r\n\t\t}\r\n\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"geared-guard.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/geared-guard.ts"],"names":[],"mappings":";;;AAEA,mEAAqE;AACrE,mDAAqD;AAIxC,QAAA,WAAW,GAAc;IACrC,OAAO,EAAE,0BAA8D;IACvE,KAAK,EAAE,CAAC,MAAmB,EAAE,KAAoB,EAAE,EAAE;QACpD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAmC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;YAC9B,MAAM,eAAe,GAAG,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YAC5F,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC/B,MAAM,MAAM,GAAG,IAAA,kBAAU,EAAC,eAAe,CAAC,CAAC;gBAC3C,IAAA,kCAAkB,EACjB,MAAM,EACN,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,aAAa,EACnB,IAAI,EACJ,KAAK,CAAC,SAAS,CACf,CAAC;aACF;SACD;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 { updateDivineShield } from '../../../keywords/divine-shield';\r\nimport { pickRandom } from '../../../services/utils';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { RallyCard } from '../../card.interface';\r\n\r\nexport const GearedGuard: RallyCard = {\r\n\tcardIds: [CardIds.GearedGuard_BG33_325, CardIds.GearedGuard_BG33_325_G],\r\n\trally: (minion: BoardEntity, input: OnAttackInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.GearedGuard_BG33_325_G ? 2 : 1;\r\n\t\tfor (let i = 0; i < mult; i++) {\r\n\t\t\tconst possibleTargets = input.attackingBoard.filter((e) => e !== minion && !e.divineShield);\r\n\t\t\tif (possibleTargets.length > 0) {\r\n\t\t\t\tconst target = pickRandom(possibleTargets);\r\n\t\t\t\tupdateDivineShield(\r\n\t\t\t\t\ttarget,\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}\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 GreedySnaketongue: OnAttackCard;
1
+ import { RallyCard } from '../../card.interface';
2
+ export declare const GreedySnaketongue: RallyCard;
@@ -4,10 +4,7 @@ exports.GreedySnaketongue = void 0;
4
4
  const cards_in_hand_1 = require("../../../simulation/cards-in-hand");
5
5
  exports.GreedySnaketongue = {
6
6
  cardIds: ["BG33_315", "BG33_315_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_315_G" ? 2 : 1;
12
9
  const cardsToAdd = Array(mult).fill("BG28_810");
13
10
  (0, cards_in_hand_1.addCardsInHand)(input.attackingHero, input.attackingBoard, cardsToAdd, input.gameState);
@@ -1 +1 @@
1
- {"version":3,"file":"greedy-snaketongue.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/greedy-snaketongue.ts"],"names":[],"mappings":";;;AAEA,qEAAmE;AAItD,QAAA,iBAAiB,GAAiB;IAC9C,OAAO,EAAE,0BAA0E;IACnF,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,iBAAyC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5E,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,YAA6B,CAAC;QACjE,IAAA,8BAAc,EAAC,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,cAAc,EAAE,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QACvF,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 { addCardsInHand } from '../../../simulation/cards-in-hand';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { OnAttackCard } from '../../card.interface';\r\n\r\nexport const GreedySnaketongue: OnAttackCard = {\r\n\tcardIds: [CardIds.GreedySnaketongue_BG33_315, CardIds.GreedySnaketongue_BG33_315_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.GreedySnaketongue_BG33_315_G ? 2 : 1;\r\n\t\tconst cardsToAdd = Array(mult).fill(CardIds.TavernCoin_BG28_810);\r\n\t\taddCardsInHand(input.attackingHero, input.attackingBoard, cardsToAdd, input.gameState);\r\n\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"greedy-snaketongue.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/greedy-snaketongue.ts"],"names":[],"mappings":";;;AAEA,qEAAmE;AAItD,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,IAAI,CAAC,CAAC,IAAI,YAA6B,CAAC;QACjE,IAAA,8BAAc,EAAC,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,cAAc,EAAE,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QACvF,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 { addCardsInHand } from '../../../simulation/cards-in-hand';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { RallyCard } from '../../card.interface';\r\n\r\nexport const GreedySnaketongue: RallyCard = {\r\n\tcardIds: [CardIds.GreedySnaketongue_BG33_315, CardIds.GreedySnaketongue_BG33_315_G],\r\n\trally: (minion: BoardEntity, input: OnAttackInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.GreedySnaketongue_BG33_315_G ? 2 : 1;\r\n\t\tconst cardsToAdd = Array(mult).fill(CardIds.TavernCoin_BG28_810);\r\n\t\taddCardsInHand(input.attackingHero, input.attackingBoard, cardsToAdd, 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 Greenskeeper: OnAttackCard;
1
+ import { RallyCard } from '../../card.interface';
2
+ export declare const Greenskeeper: RallyCard;
@@ -5,10 +5,7 @@ const battlecries_1 = require("../../../simulation/battlecries");
5
5
  const utils_1 = require("../../../utils");
6
6
  exports.Greenskeeper = {
7
7
  cardIds: ["BG30_008", "BG30_008_G"],
8
- onAnyMinionAttack: (minion, input) => {
9
- if (minion !== input.attacker) {
10
- return { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };
11
- }
8
+ rally: (minion, input) => {
12
9
  const loops = minion.cardId === "BG30_008" ? 1 : 2;
13
10
  for (let i = 0; i < loops; i++) {
14
11
  const battlecries = input.attackingBoard.filter((e) => !(0, utils_1.isDead)(e) && (0, battlecries_1.hasMinionBattlecry)(e, input.gameState));
@@ -1 +1 @@
1
- {"version":3,"file":"greenskeeper.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/greenskeeper.ts"],"names":[],"mappings":";;;AAEA,iEAAuF;AAEvF,0CAAwC;AAG3B,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,KAAK,GAAG,MAAM,CAAC,MAAM,eAAkC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;YAC/B,MAAM,WAAW,GAAG,KAAK,CAAC,cAAc,CAAC,MAAM,CAC9C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAA,cAAM,EAAC,CAAC,CAAC,IAAI,IAAA,gCAAkB,EAAC,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAC3D,CAAC;YACF,MAAM,SAAS,GAAG,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACtD,IAAI,CAAC,CAAC,SAAS,EAAE;gBAChB,IAAA,8BAAgB,EACf,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,SAAS,EACT,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,SAAS,CACf,CAAC;aACF;SACD;QAED,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 { hasMinionBattlecry, triggerBattlecry } from '../../../simulation/battlecries';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { isDead } from '../../../utils';\r\nimport { OnAttackCard } from '../../card.interface';\r\n\r\nexport const Greenskeeper: OnAttackCard = {\r\n\tcardIds: [CardIds.Greenskeeper_BG30_008, CardIds.Greenskeeper_BG30_008_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 loops = minion.cardId === CardIds.Greenskeeper_BG30_008 ? 1 : 2;\r\n\t\tfor (let i = 0; i < loops; i++) {\r\n\t\t\tconst battlecries = input.attackingBoard.filter(\r\n\t\t\t\t(e) => !isDead(e) && hasMinionBattlecry(e, input.gameState),\r\n\t\t\t);\r\n\t\t\tconst candidate = battlecries[battlecries.length - 1];\r\n\t\t\tif (!!candidate) {\r\n\t\t\t\ttriggerBattlecry(\r\n\t\t\t\t\tinput.attackingBoard,\r\n\t\t\t\t\tinput.attackingHero,\r\n\t\t\t\t\tcandidate,\r\n\t\t\t\t\tinput.defendingBoard,\r\n\t\t\t\t\tinput.defendingHero,\r\n\t\t\t\t\tinput.gameState,\r\n\t\t\t\t);\r\n\t\t\t}\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":"greenskeeper.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/greenskeeper.ts"],"names":[],"mappings":";;;AAEA,iEAAuF;AAEvF,0CAAwC;AAG3B,QAAA,YAAY,GAAc;IACtC,OAAO,EAAE,0BAAgE;IACzE,KAAK,EAAE,CAAC,MAAmB,EAAE,KAAoB,EAAE,EAAE;QACpD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,eAAkC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;YAC/B,MAAM,WAAW,GAAG,KAAK,CAAC,cAAc,CAAC,MAAM,CAC9C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAA,cAAM,EAAC,CAAC,CAAC,IAAI,IAAA,gCAAkB,EAAC,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAC3D,CAAC;YACF,MAAM,SAAS,GAAG,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACtD,IAAI,CAAC,CAAC,SAAS,EAAE;gBAChB,IAAA,8BAAgB,EACf,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,SAAS,EACT,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,SAAS,CACf,CAAC;aACF;SACD;QAED,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 { hasMinionBattlecry, triggerBattlecry } from '../../../simulation/battlecries';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { isDead } from '../../../utils';\r\nimport { RallyCard } from '../../card.interface';\r\n\r\nexport const Greenskeeper: RallyCard = {\r\n\tcardIds: [CardIds.Greenskeeper_BG30_008, CardIds.Greenskeeper_BG30_008_G],\r\n\trally: (minion: BoardEntity, input: OnAttackInput) => {\r\n\t\tconst loops = minion.cardId === CardIds.Greenskeeper_BG30_008 ? 1 : 2;\r\n\t\tfor (let i = 0; i < loops; i++) {\r\n\t\t\tconst battlecries = input.attackingBoard.filter(\r\n\t\t\t\t(e) => !isDead(e) && hasMinionBattlecry(e, input.gameState),\r\n\t\t\t);\r\n\t\t\tconst candidate = battlecries[battlecries.length - 1];\r\n\t\t\tif (!!candidate) {\r\n\t\t\t\ttriggerBattlecry(\r\n\t\t\t\t\tinput.attackingBoard,\r\n\t\t\t\t\tinput.attackingHero,\r\n\t\t\t\t\tcandidate,\r\n\t\t\t\t\tinput.defendingBoard,\r\n\t\t\t\t\tinput.defendingHero,\r\n\t\t\t\t\tinput.gameState,\r\n\t\t\t\t);\r\n\t\t\t}\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 { OnAttackCard } from '../../card.interface';
2
- export declare const HoloRover: OnAttackCard;
1
+ import { RallyCard } from '../../card.interface';
2
+ export declare const HoloRover: RallyCard;
@@ -4,10 +4,7 @@ exports.HoloRover = void 0;
4
4
  const cards_in_hand_1 = require("../../../simulation/cards-in-hand");
5
5
  exports.HoloRover = {
6
6
  cardIds: ["BG31_175", "BG31_175_G"],
7
- onAnyMinionAttack: (minion, input) => {
8
- if (minion !== input.attacker) {
9
- return { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };
10
- }
7
+ rally: (minion, input) => {
11
8
  const numberOfCard = minion.cardId === "BG31_175_G" ? 2 : 1;
12
9
  for (let i = 0; i < numberOfCard; i++) {
13
10
  const magneticMech = input.gameState.cardsData.getRandomMechToMagnetize(input.attackingHero.tavernTier);
@@ -1 +1 @@
1
- {"version":3,"file":"holo-rover.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/holo-rover.ts"],"names":[],"mappings":";;;AAEA,qEAAmE;AAItD,QAAA,SAAS,GAAiB;IACtC,OAAO,EAAE,0BAA0D;IACnE,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,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,iBAAiC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,EAAE,CAAC,EAAE,EAAE;YACtC,MAAM,YAAY,GAAG,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,wBAAwB,CAAC,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;YACxG,IAAA,8BAAc,EAAC,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,cAAc,EAAE,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SAC3F;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 { addCardsInHand } from '../../../simulation/cards-in-hand';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { OnAttackCard } from '../../card.interface';\r\n\r\nexport const HoloRover: OnAttackCard = {\r\n\tcardIds: [CardIds.HoloRover_BG31_175, CardIds.HoloRover_BG31_175_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\tconst numberOfCard = minion.cardId === CardIds.HoloRover_BG31_175_G ? 2 : 1;\r\n\t\tfor (let i = 0; i < numberOfCard; i++) {\r\n\t\t\tconst magneticMech = input.gameState.cardsData.getRandomMechToMagnetize(input.attackingHero.tavernTier);\r\n\t\t\taddCardsInHand(input.attackingHero, input.attackingBoard, [magneticMech], 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":"holo-rover.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/holo-rover.ts"],"names":[],"mappings":";;;AAEA,qEAAmE;AAItD,QAAA,SAAS,GAAc;IACnC,OAAO,EAAE,0BAA0D;IACnE,KAAK,EAAE,CAAC,MAAmB,EAAE,KAAoB,EAA4D,EAAE;QAC9G,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,iBAAiC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,EAAE,CAAC,EAAE,EAAE;YACtC,MAAM,YAAY,GAAG,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,wBAAwB,CAAC,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;YACxG,IAAA,8BAAc,EAAC,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,cAAc,EAAE,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SAC3F;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 { addCardsInHand } from '../../../simulation/cards-in-hand';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { RallyCard } from '../../card.interface';\r\n\r\nexport const HoloRover: RallyCard = {\r\n\tcardIds: [CardIds.HoloRover_BG31_175, CardIds.HoloRover_BG31_175_G],\r\n\trally: (minion: BoardEntity, input: OnAttackInput): { dmgDoneByAttacker: number; dmgDoneByDefender: number } => {\r\n\t\tconst numberOfCard = minion.cardId === CardIds.HoloRover_BG31_175_G ? 2 : 1;\r\n\t\tfor (let i = 0; i < numberOfCard; i++) {\r\n\t\t\tconst magneticMech = input.gameState.cardsData.getRandomMechToMagnetize(input.attackingHero.tavernTier);\r\n\t\t\taddCardsInHand(input.attackingHero, input.attackingBoard, [magneticMech], 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 Hydralisk: OnAttackCard;
1
+ import { RallyCard } from '../../card.interface';
2
+ export declare const Hydralisk: RallyCard;
@@ -4,10 +4,7 @@ exports.Hydralisk = void 0;
4
4
  const stats_1 = require("../../../simulation/stats");
5
5
  exports.Hydralisk = {
6
6
  cardIds: ["BG31_HERO_811t4", "BG31_HERO_811t4_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 === "BG31_HERO_811t4_G" ? 2 : 1;
12
9
  const buff = input.attackingHero.tavernTier;
13
10
  (0, stats_1.modifyStats)(minion, minion, buff * mult, 0, input.attackingBoard, input.attackingHero, input.gameState);
@@ -1 +1 @@
1
- {"version":3,"file":"hydralisk.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/hydralisk.ts"],"names":[],"mappings":";;;AAGA,qDAAwD;AAG3C,QAAA,SAAS,GAAiB;IACtC,OAAO,EAAE,wCAAmG;IAC5G,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;QACD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,wBAAwC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3E,MAAM,IAAI,GAAG,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC;QAC5C,IAAA,mBAAW,EAAC,MAAM,EAAE,MAAM,EAAE,IAAI,GAAG,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QACxG,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 Hydralisk: OnAttackCard = {\r\n\tcardIds: [CardIds.KerriganQueenOfBlades_HydraliskToken_BG31_HERO_811t4, CardIds.Hydralisk_BG31_HERO_811t4_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\t\tconst mult = minion.cardId === CardIds.Hydralisk_BG31_HERO_811t4_G ? 2 : 1;\r\n\t\tconst buff = input.attackingHero.tavernTier;\r\n\t\tmodifyStats(minion, minion, buff * 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":"hydralisk.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/hydralisk.ts"],"names":[],"mappings":";;;AAGA,qDAAwD;AAG3C,QAAA,SAAS,GAAc;IACnC,OAAO,EAAE,wCAAmG;IAC5G,KAAK,EAAE,CAAC,MAAmB,EAAE,KAAoB,EAAE,EAAE;QACpD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,wBAAwC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3E,MAAM,IAAI,GAAG,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC;QAC5C,IAAA,mBAAW,EAAC,MAAM,EAAE,MAAM,EAAE,IAAI,GAAG,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QACxG,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 Hydralisk: RallyCard = {\r\n\tcardIds: [CardIds.KerriganQueenOfBlades_HydraliskToken_BG31_HERO_811t4, CardIds.Hydralisk_BG31_HERO_811t4_G],\r\n\trally: (minion: BoardEntity, input: OnAttackInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.Hydralisk_BG31_HERO_811t4_G ? 2 : 1;\r\n\t\tconst buff = input.attackingHero.tavernTier;\r\n\t\tmodifyStats(minion, minion, buff * 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 MonstrousMacaw: OnAttackCard;
1
+ import { RallyCard } from '../../card.interface';
2
+ export declare const MonstrousMacaw: RallyCard;
@@ -6,11 +6,8 @@ const deathrattle_orchestration_1 = require("../../../simulation/deathrattle-orc
6
6
  const deathrattle_utils_1 = require("../../../simulation/deathrattle-utils");
7
7
  exports.MonstrousMacaw = {
8
8
  cardIds: ["BGS_078", "TB_BaconUps_135"],
9
- onAnyMinionAttack: (minion, input) => {
9
+ rally: (minion, input) => {
10
10
  var _a;
11
- if (input.attacker !== minion) {
12
- return { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };
13
- }
14
11
  const loops = minion.cardId === "TB_BaconUps_135" ? 2 : 1;
15
12
  const targetBoard = input.attackingBoard.filter((e) => e.entityId !== minion.entityId);
16
13
  const validDeathrattles = (0, deathrattle_utils_1.getValidDeathrattles)(targetBoard, input.attackingHero, input.gameState);
@@ -1 +1 @@
1
- {"version":3,"file":"monstrous-macaw.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/monstrous-macaw.ts"],"names":[],"mappings":"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","sourcesContent":["import { CardIds } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { hasMinionBattlecry, triggerBattlecry } from '../../../simulation/battlecries';\r\nimport { processDeathrattleForMinion } from '../../../simulation/deathrattle-orchestration';\r\nimport { getValidDeathrattles } from '../../../simulation/deathrattle-utils';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { OnAttackCard } from '../../card.interface';\r\n\r\nexport const MonstrousMacaw: OnAttackCard = {\r\n\tcardIds: [CardIds.MonstrousMacaw_BGS_078, CardIds.MonstrousMacaw_TB_BaconUps_135],\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 loops = minion.cardId === CardIds.MonstrousMacaw_TB_BaconUps_135 ? 2 : 1;\r\n\t\tconst targetBoard = input.attackingBoard.filter((e) => e.entityId !== minion.entityId);\r\n\r\n\t\tconst validDeathrattles = getValidDeathrattles(targetBoard, input.attackingHero, input.gameState);\r\n\t\tconst leftMostDeathrattle = validDeathrattles[0];\r\n\t\tfor (let i = 0; i < loops; i++) {\r\n\t\t\tif (!!leftMostDeathrattle) {\r\n\t\t\t\tinput.gameState.spectator.registerPowerTarget(\r\n\t\t\t\t\tminion,\r\n\t\t\t\t\tleftMostDeathrattle,\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);\r\n\t\t\t\tconst indexFromRight =\r\n\t\t\t\t\tinput.attackingBoard.length - (input.attackingBoard.indexOf(leftMostDeathrattle) + 1);\r\n\t\t\t\tprocessDeathrattleForMinion(\r\n\t\t\t\t\tleftMostDeathrattle,\r\n\t\t\t\t\tindexFromRight,\r\n\t\t\t\t\t[leftMostDeathrattle],\r\n\t\t\t\t\tleftMostDeathrattle.friendly\r\n\t\t\t\t\t\t? input.gameState.gameState.player\r\n\t\t\t\t\t\t: input.gameState.gameState.opponent,\r\n\t\t\t\t\tleftMostDeathrattle.friendly\r\n\t\t\t\t\t\t? input.gameState.gameState.opponent\r\n\t\t\t\t\t\t: input.gameState.gameState.player,\r\n\t\t\t\t\tinput.gameState,\r\n\t\t\t\t\tfalse,\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t\tif (input.attackingHero.trinkets?.some((t) => t.cardId === CardIds.MacawPortrait_BG32_MagicItem_803)) {\r\n\t\t\t\tconst validBattlecries = targetBoard.filter((e) => hasMinionBattlecry(e, input.gameState));\r\n\t\t\t\tconst leftMostBattlecry = validBattlecries[0];\r\n\t\t\t\tif (!!leftMostBattlecry) {\r\n\t\t\t\t\tinput.gameState.spectator.registerPowerTarget(\r\n\t\t\t\t\t\tminion,\r\n\t\t\t\t\t\tleftMostBattlecry,\r\n\t\t\t\t\t\tinput.attackingBoard,\r\n\t\t\t\t\t\tinput.attackingHero,\r\n\t\t\t\t\t\tinput.defendingHero,\r\n\t\t\t\t\t);\r\n\t\t\t\t\ttriggerBattlecry(\r\n\t\t\t\t\t\tinput.attackingBoard,\r\n\t\t\t\t\t\tinput.attackingHero,\r\n\t\t\t\t\t\tleftMostBattlecry,\r\n\t\t\t\t\t\tinput.defendingBoard,\r\n\t\t\t\t\t\tinput.defendingHero,\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}\r\n\t\t}\r\n\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"monstrous-macaw.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/monstrous-macaw.ts"],"names":[],"mappings":";;;AAEA,iEAAuF;AACvF,6FAA4F;AAC5F,6EAA6E;AAIhE,QAAA,cAAc,GAAc;IACxC,OAAO,EAAE,8BAAwE;IACjF,KAAK,EAAE,CAAC,MAAmB,EAAE,KAAoB,EAAE,EAAE;;QACpD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,sBAA2C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/E,MAAM,WAAW,GAAG,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,CAAC,CAAC;QAEvF,MAAM,iBAAiB,GAAG,IAAA,wCAAoB,EAAC,WAAW,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QAClG,MAAM,mBAAmB,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;QACjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;YAC/B,IAAI,CAAC,CAAC,mBAAmB,EAAE;gBAC1B,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAC5C,MAAM,EACN,mBAAmB,EACnB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,aAAa,CACnB,CAAC;gBACF,MAAM,cAAc,GACnB,KAAK,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC;gBACvF,IAAA,uDAA2B,EAC1B,mBAAmB,EACnB,cAAc,EACd,CAAC,mBAAmB,CAAC,EACrB,mBAAmB,CAAC,QAAQ;oBAC3B,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM;oBAClC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,EACrC,mBAAmB,CAAC,QAAQ;oBAC3B,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ;oBACpC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,EACnC,KAAK,CAAC,SAAS,EACf,KAAK,CACL,CAAC;aACF;YAED,IAAI,MAAA,KAAK,CAAC,aAAa,CAAC,QAAQ,0CAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,yBAA6C,CAAC,EAAE;gBACrG,MAAM,gBAAgB,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,gCAAkB,EAAC,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;gBAC3F,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;gBAC9C,IAAI,CAAC,CAAC,iBAAiB,EAAE;oBACxB,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAC5C,MAAM,EACN,iBAAiB,EACjB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,aAAa,CACnB,CAAC;oBACF,IAAA,8BAAgB,EACf,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,iBAAiB,EACjB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,SAAS,CACf,CAAC;iBACF;aACD;SACD;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 { hasMinionBattlecry, triggerBattlecry } from '../../../simulation/battlecries';\r\nimport { processDeathrattleForMinion } from '../../../simulation/deathrattle-orchestration';\r\nimport { getValidDeathrattles } from '../../../simulation/deathrattle-utils';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { RallyCard } from '../../card.interface';\r\n\r\nexport const MonstrousMacaw: RallyCard = {\r\n\tcardIds: [CardIds.MonstrousMacaw_BGS_078, CardIds.MonstrousMacaw_TB_BaconUps_135],\r\n\trally: (minion: BoardEntity, input: OnAttackInput) => {\r\n\t\tconst loops = minion.cardId === CardIds.MonstrousMacaw_TB_BaconUps_135 ? 2 : 1;\r\n\t\tconst targetBoard = input.attackingBoard.filter((e) => e.entityId !== minion.entityId);\r\n\r\n\t\tconst validDeathrattles = getValidDeathrattles(targetBoard, input.attackingHero, input.gameState);\r\n\t\tconst leftMostDeathrattle = validDeathrattles[0];\r\n\t\tfor (let i = 0; i < loops; i++) {\r\n\t\t\tif (!!leftMostDeathrattle) {\r\n\t\t\t\tinput.gameState.spectator.registerPowerTarget(\r\n\t\t\t\t\tminion,\r\n\t\t\t\t\tleftMostDeathrattle,\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);\r\n\t\t\t\tconst indexFromRight =\r\n\t\t\t\t\tinput.attackingBoard.length - (input.attackingBoard.indexOf(leftMostDeathrattle) + 1);\r\n\t\t\t\tprocessDeathrattleForMinion(\r\n\t\t\t\t\tleftMostDeathrattle,\r\n\t\t\t\t\tindexFromRight,\r\n\t\t\t\t\t[leftMostDeathrattle],\r\n\t\t\t\t\tleftMostDeathrattle.friendly\r\n\t\t\t\t\t\t? input.gameState.gameState.player\r\n\t\t\t\t\t\t: input.gameState.gameState.opponent,\r\n\t\t\t\t\tleftMostDeathrattle.friendly\r\n\t\t\t\t\t\t? input.gameState.gameState.opponent\r\n\t\t\t\t\t\t: input.gameState.gameState.player,\r\n\t\t\t\t\tinput.gameState,\r\n\t\t\t\t\tfalse,\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t\tif (input.attackingHero.trinkets?.some((t) => t.cardId === CardIds.MacawPortrait_BG32_MagicItem_803)) {\r\n\t\t\t\tconst validBattlecries = targetBoard.filter((e) => hasMinionBattlecry(e, input.gameState));\r\n\t\t\t\tconst leftMostBattlecry = validBattlecries[0];\r\n\t\t\t\tif (!!leftMostBattlecry) {\r\n\t\t\t\t\tinput.gameState.spectator.registerPowerTarget(\r\n\t\t\t\t\t\tminion,\r\n\t\t\t\t\t\tleftMostBattlecry,\r\n\t\t\t\t\t\tinput.attackingBoard,\r\n\t\t\t\t\t\tinput.attackingHero,\r\n\t\t\t\t\t\tinput.defendingHero,\r\n\t\t\t\t\t);\r\n\t\t\t\t\ttriggerBattlecry(\r\n\t\t\t\t\t\tinput.attackingBoard,\r\n\t\t\t\t\t\tinput.attackingHero,\r\n\t\t\t\t\t\tleftMostBattlecry,\r\n\t\t\t\t\t\tinput.defendingBoard,\r\n\t\t\t\t\t\tinput.defendingHero,\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}\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 NeonAgent: OnAttackCard;
1
+ import { RallyCard } from '../../card.interface';
2
+ export declare const NeonAgent: RallyCard;
@@ -5,10 +5,7 @@ const utils_1 = require("../../../services/utils");
5
5
  const cards_in_hand_1 = require("../../../simulation/cards-in-hand");
6
6
  exports.NeonAgent = {
7
7
  cardIds: ["BG31_146", "BG31_146_G"],
8
- onAnyMinionAttack: (minion, input) => {
9
- if (minion !== input.attacker) {
10
- return { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };
11
- }
8
+ rally: (minion, input) => {
12
9
  const cards = [];
13
10
  const numberOfCards = minion.cardId === "BG31_146_G" ? 2 : 1;
14
11
  for (let i = 0; i < numberOfCards; i++) {
@@ -1 +1 @@
1
- {"version":3,"file":"neon-agent.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/neon-agent.ts"],"names":[],"mappings":";;;AAEA,mDAAqD;AACrD,qEAAmE;AAItD,QAAA,SAAS,GAAiB;IACtC,OAAO,EAAE,0BAA0D;IACnE,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,MAAM,KAAK,GAAG,EAAE,CAAC;QACjB,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,iBAAiC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE;YACvC,KAAK,CAAC,IAAI,CAAC,IAAA,kBAAU,EAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC;SACnE;QACD,IAAA,8BAAc,EAAC,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,cAAc,EAAE,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QAClF,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 { pickRandom } from '../../../services/utils';\r\nimport { addCardsInHand } from '../../../simulation/cards-in-hand';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { OnAttackCard } from '../../card.interface';\r\n\r\nexport const NeonAgent: OnAttackCard = {\r\n\tcardIds: [CardIds.NeonAgent_BG31_146, CardIds.NeonAgent_BG31_146_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\tconst cards = [];\r\n\t\tconst numberOfCards = minion.cardId === CardIds.NeonAgent_BG31_146_G ? 2 : 1;\r\n\t\tfor (let i = 0; i < numberOfCards; i++) {\r\n\t\t\tcards.push(pickRandom(input.gameState.cardsData.battlecryMinions));\r\n\t\t}\r\n\t\taddCardsInHand(input.attackingHero, input.attackingBoard, cards, input.gameState);\r\n\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"neon-agent.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/neon-agent.ts"],"names":[],"mappings":";;;AAEA,mDAAqD;AACrD,qEAAmE;AAItD,QAAA,SAAS,GAAc;IACnC,OAAO,EAAE,0BAA0D;IACnE,KAAK,EAAE,CAAC,MAAmB,EAAE,KAAoB,EAA4D,EAAE;QAC9G,MAAM,KAAK,GAAG,EAAE,CAAC;QACjB,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,iBAAiC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE;YACvC,KAAK,CAAC,IAAI,CAAC,IAAA,kBAAU,EAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC;SACnE;QACD,IAAA,8BAAc,EAAC,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,cAAc,EAAE,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QAClF,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 { pickRandom } from '../../../services/utils';\r\nimport { addCardsInHand } from '../../../simulation/cards-in-hand';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { RallyCard } from '../../card.interface';\r\n\r\nexport const NeonAgent: RallyCard = {\r\n\tcardIds: [CardIds.NeonAgent_BG31_146, CardIds.NeonAgent_BG31_146_G],\r\n\trally: (minion: BoardEntity, input: OnAttackInput): { dmgDoneByAttacker: number; dmgDoneByDefender: number } => {\r\n\t\tconst cards = [];\r\n\t\tconst numberOfCards = minion.cardId === CardIds.NeonAgent_BG31_146_G ? 2 : 1;\r\n\t\tfor (let i = 0; i < numberOfCards; i++) {\r\n\t\t\tcards.push(pickRandom(input.gameState.cardsData.battlecryMinions));\r\n\t\t}\r\n\t\taddCardsInHand(input.attackingHero, input.attackingBoard, cards, 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 Niuzao: OnAttackCard;
1
+ import { RallyCard } from '../../card.interface';
2
+ export declare const Niuzao: RallyCard;
@@ -5,10 +5,7 @@ const utils_1 = require("../../../services/utils");
5
5
  const attack_1 = require("../../../simulation/attack");
6
6
  exports.Niuzao = {
7
7
  cardIds: ["BG27_822", "BG27_822_G"],
8
- onAnyMinionAttack: (minion, input) => {
9
- if (minion !== input.attacker) {
10
- return { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };
11
- }
8
+ rally: (minion, input) => {
12
9
  const multiplier = minion.cardId === "BG27_822_G" ? 2 : 1;
13
10
  let dmgDoneByAttacker = 0;
14
11
  for (let i = 0; i < multiplier; i++) {
@@ -1 +1 @@
1
- {"version":3,"file":"niuzao.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/niuzao.ts"],"names":[],"mappings":";;;AAEA,mDAAqD;AACrD,uDAAgE;AAInD,QAAA,MAAM,GAAiB;IACnC,OAAO,EAAE,0BAAoD;IAC7D,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,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,iBAA8B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,IAAI,iBAAiB,GAAG,CAAC,CAAC;QAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE;YACpC,MAAM,MAAM,GAAG,IAAA,kBAAU,EAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC5G,IAAI,MAAM,EAAE;gBACX,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAC5C,MAAM,EACN,MAAM,EACN,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,aAAa,CACnB,CAAC;gBACF,iBAAiB,IAAI,IAAA,2BAAkB,EACtC,MAAM,EACN,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,MAAM,EACN,MAAM,CAAC,MAAM,EACb,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,SAAS,CACf,CAAC;aACF;SACD;QACD,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACpD,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { pickRandom } from '../../../services/utils';\r\nimport { dealDamageToMinion } from '../../../simulation/attack';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { OnAttackCard } from '../../card.interface';\r\n\r\nexport const Niuzao: OnAttackCard = {\r\n\tcardIds: [CardIds.Niuzao_BG27_822, CardIds.Niuzao_BG27_822_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\tconst multiplier = minion.cardId === CardIds.Niuzao_BG27_822_G ? 2 : 1;\r\n\t\tlet dmgDoneByAttacker = 0;\r\n\t\tfor (let i = 0; i < multiplier; i++) {\r\n\t\t\tconst target = pickRandom(input.defendingBoard.filter((e) => e.entityId != input.defendingEntity.entityId));\r\n\t\t\tif (target) {\r\n\t\t\t\tinput.gameState.spectator.registerPowerTarget(\r\n\t\t\t\t\tminion,\r\n\t\t\t\t\ttarget,\r\n\t\t\t\t\tinput.defendingBoard,\r\n\t\t\t\t\tinput.attackingHero,\r\n\t\t\t\t\tinput.defendingHero,\r\n\t\t\t\t);\r\n\t\t\t\tdmgDoneByAttacker += dealDamageToMinion(\r\n\t\t\t\t\ttarget,\r\n\t\t\t\t\tinput.defendingBoard,\r\n\t\t\t\t\tinput.defendingHero,\r\n\t\t\t\t\tminion,\r\n\t\t\t\t\tminion.attack,\r\n\t\t\t\t\tinput.attackingBoard,\r\n\t\t\t\t\tinput.attackingHero,\r\n\t\t\t\t\tinput.gameState,\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn { dmgDoneByAttacker, dmgDoneByDefender: 0 };\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"niuzao.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/niuzao.ts"],"names":[],"mappings":";;;AAEA,mDAAqD;AACrD,uDAAgE;AAInD,QAAA,MAAM,GAAc;IAChC,OAAO,EAAE,0BAAoD;IAC7D,KAAK,EAAE,CAAC,MAAmB,EAAE,KAAoB,EAA4D,EAAE;QAC9G,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,iBAA8B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,IAAI,iBAAiB,GAAG,CAAC,CAAC;QAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE;YACpC,MAAM,MAAM,GAAG,IAAA,kBAAU,EAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC5G,IAAI,MAAM,EAAE;gBACX,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAC5C,MAAM,EACN,MAAM,EACN,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,aAAa,CACnB,CAAC;gBACF,iBAAiB,IAAI,IAAA,2BAAkB,EACtC,MAAM,EACN,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,MAAM,EACN,MAAM,CAAC,MAAM,EACb,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,SAAS,CACf,CAAC;aACF;SACD;QACD,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACpD,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { pickRandom } from '../../../services/utils';\r\nimport { dealDamageToMinion } from '../../../simulation/attack';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { RallyCard } from '../../card.interface';\r\n\r\nexport const Niuzao: RallyCard = {\r\n\tcardIds: [CardIds.Niuzao_BG27_822, CardIds.Niuzao_BG27_822_G],\r\n\trally: (minion: BoardEntity, input: OnAttackInput): { dmgDoneByAttacker: number; dmgDoneByDefender: number } => {\r\n\t\tconst multiplier = minion.cardId === CardIds.Niuzao_BG27_822_G ? 2 : 1;\r\n\t\tlet dmgDoneByAttacker = 0;\r\n\t\tfor (let i = 0; i < multiplier; i++) {\r\n\t\t\tconst target = pickRandom(input.defendingBoard.filter((e) => e.entityId != input.defendingEntity.entityId));\r\n\t\t\tif (target) {\r\n\t\t\t\tinput.gameState.spectator.registerPowerTarget(\r\n\t\t\t\t\tminion,\r\n\t\t\t\t\ttarget,\r\n\t\t\t\t\tinput.defendingBoard,\r\n\t\t\t\t\tinput.attackingHero,\r\n\t\t\t\t\tinput.defendingHero,\r\n\t\t\t\t);\r\n\t\t\t\tdmgDoneByAttacker += dealDamageToMinion(\r\n\t\t\t\t\ttarget,\r\n\t\t\t\t\tinput.defendingBoard,\r\n\t\t\t\t\tinput.defendingHero,\r\n\t\t\t\t\tminion,\r\n\t\t\t\t\tminion.attack,\r\n\t\t\t\t\tinput.attackingBoard,\r\n\t\t\t\t\tinput.attackingHero,\r\n\t\t\t\t\tinput.gameState,\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn { dmgDoneByAttacker, dmgDoneByDefender: 0 };\r\n\t},\r\n};\r\n"]}
@@ -1,2 +1,2 @@
1
- import { OnAttackCard } from '../../card.interface';
2
- export declare const PrimevalMonstrosity: OnAttackCard;
1
+ import { OnWheneverAnotherMinionAttacksCard } from '../../card.interface';
2
+ export declare const PrimevalMonstrosity: OnWheneverAnotherMinionAttacksCard;
@@ -5,7 +5,7 @@ const reference_data_1 = require("@firestone-hs/reference-data");
5
5
  const utils_1 = require("../../../utils");
6
6
  exports.PrimevalMonstrosity = {
7
7
  cardIds: ["BG33_320", "BG33_320_G"],
8
- onAnyMinionAttack: (minion, input) => {
8
+ onWheneverAnotherMinionAttacks: (minion, input) => {
9
9
  if ((0, utils_1.hasEntityMechanic)(input.attacker, reference_data_1.GameTag.BACON_RALLY, input.gameState.allCards)) {
10
10
  const mult = minion.cardId === "BG33_320_G" ? 2 : 1;
11
11
  (0, utils_1.grantStatsToMinionsOfEachType)(minion, input.attackingBoard, input.attackingHero, 3 * mult, 3 * mult, input.gameState);
@@ -1 +1 @@
1
- {"version":3,"file":"primeval-monstrosity.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/primeval-monstrosity.ts"],"names":[],"mappings":";;;AAAA,iEAAgE;AAGhE,0CAAkF;AAGrE,QAAA,mBAAmB,GAAiB;IAChD,OAAO,EAAE,0BAA8E;IACvF,iBAAiB,EAAE,CAAC,MAAmB,EAAE,KAAoB,EAAE,EAAE;QAChE,IAAI,IAAA,yBAAiB,EAAC,KAAK,CAAC,QAAQ,EAAE,wBAAO,CAAC,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;YACrF,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAA2C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9E,IAAA,qCAA6B,EAC5B,MAAM,EACN,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,CAAC,GAAG,IAAI,EACR,CAAC,GAAG,IAAI,EACR,KAAK,CAAC,SAAS,CACf,CAAC;SACF;QACD,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;CACD,CAAC","sourcesContent":["import { CardIds, GameTag } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { grantStatsToMinionsOfEachType, hasEntityMechanic } from '../../../utils';\r\nimport { OnAttackCard } from '../../card.interface';\r\n\r\nexport const PrimevalMonstrosity: OnAttackCard = {\r\n\tcardIds: [CardIds.PrimevalMonstrosity_BG33_320, CardIds.PrimevalMonstrosity_BG33_320_G],\r\n\tonAnyMinionAttack: (minion: BoardEntity, input: OnAttackInput) => {\r\n\t\tif (hasEntityMechanic(input.attacker, GameTag.BACON_RALLY, input.gameState.allCards)) {\r\n\t\t\tconst mult = minion.cardId === CardIds.PrimevalMonstrosity_BG33_320_G ? 2 : 1;\r\n\t\t\tgrantStatsToMinionsOfEachType(\r\n\t\t\t\tminion,\r\n\t\t\t\tinput.attackingBoard,\r\n\t\t\t\tinput.attackingHero,\r\n\t\t\t\t3 * mult,\r\n\t\t\t\t3 * mult,\r\n\t\t\t\tinput.gameState,\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":"primeval-monstrosity.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/primeval-monstrosity.ts"],"names":[],"mappings":";;;AAAA,iEAAgE;AAGhE,0CAAkF;AAGrE,QAAA,mBAAmB,GAAuC;IACtE,OAAO,EAAE,0BAA8E;IACvF,8BAA8B,EAAE,CAAC,MAAmB,EAAE,KAAoB,EAAE,EAAE;QAC7E,IAAI,IAAA,yBAAiB,EAAC,KAAK,CAAC,QAAQ,EAAE,wBAAO,CAAC,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;YACrF,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAA2C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9E,IAAA,qCAA6B,EAC5B,MAAM,EACN,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,CAAC,GAAG,IAAI,EACR,CAAC,GAAG,IAAI,EACR,KAAK,CAAC,SAAS,CACf,CAAC;SACF;QACD,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;CACD,CAAC","sourcesContent":["import { CardIds, GameTag } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { grantStatsToMinionsOfEachType, hasEntityMechanic } from '../../../utils';\r\nimport { OnWheneverAnotherMinionAttacksCard } from '../../card.interface';\r\n\r\nexport const PrimevalMonstrosity: OnWheneverAnotherMinionAttacksCard = {\r\n\tcardIds: [CardIds.PrimevalMonstrosity_BG33_320, CardIds.PrimevalMonstrosity_BG33_320_G],\r\n\tonWheneverAnotherMinionAttacks: (minion: BoardEntity, input: OnAttackInput) => {\r\n\t\tif (hasEntityMechanic(input.attacker, GameTag.BACON_RALLY, input.gameState.allCards)) {\r\n\t\t\tconst mult = minion.cardId === CardIds.PrimevalMonstrosity_BG33_320_G ? 2 : 1;\r\n\t\t\tgrantStatsToMinionsOfEachType(\r\n\t\t\t\tminion,\r\n\t\t\t\tinput.attackingBoard,\r\n\t\t\t\tinput.attackingHero,\r\n\t\t\t\t3 * mult,\r\n\t\t\t\t3 * mult,\r\n\t\t\t\tinput.gameState,\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,2 +1,2 @@
1
- import { OnAttackCard } from '../../card.interface';
2
- export declare const ProdigiousTusker: OnAttackCard;
1
+ import { OnWheneverAnotherMinionAttacksCard } from '../../card.interface';
2
+ export declare const ProdigiousTusker: OnWheneverAnotherMinionAttacksCard;
@@ -6,7 +6,7 @@ const blood_gems_1 = require("../../../simulation/blood-gems");
6
6
  const utils_1 = require("../../../utils");
7
7
  exports.ProdigiousTusker = {
8
8
  cardIds: ["BG33_430", "BG33_430_G"],
9
- onAnyMinionAttack: (minion, input) => {
9
+ onWheneverAnotherMinionAttacks: (minion, input) => {
10
10
  if ((0, utils_1.hasEntityMechanic)(input.attacker, reference_data_1.GameTag.BACON_RALLY, input.gameState.allCards)) {
11
11
  const mult = minion.cardId === "BG33_430_G" ? 2 : 1;
12
12
  (0, blood_gems_1.playBloodGemsOn)(minion, minion, 2 * mult, input.attackingBoard, input.attackingHero, input.gameState);
@@ -1 +1 @@
1
- {"version":3,"file":"prodigious-tusker.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/prodigious-tusker.ts"],"names":[],"mappings":";;;AAAA,iEAAgE;AAEhE,+DAAiE;AAEjE,0CAAmD;AAGtC,QAAA,gBAAgB,GAAiB;IAC7C,OAAO,EAAE,0BAAwE;IACjF,iBAAiB,EAAE,CAAC,MAAmB,EAAE,KAAoB,EAAE,EAAE;QAChE,IAAI,IAAA,yBAAiB,EAAC,KAAK,CAAC,QAAQ,EAAE,wBAAO,CAAC,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;YACrF,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAwC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3E,IAAA,4BAAe,EAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SACtG;QACD,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;CACD,CAAC","sourcesContent":["import { CardIds, GameTag } 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 { hasEntityMechanic } from '../../../utils';\r\nimport { OnAttackCard } from '../../card.interface';\r\n\r\nexport const ProdigiousTusker: OnAttackCard = {\r\n\tcardIds: [CardIds.ProdigiousTusker_BG33_430, CardIds.ProdigiousTusker_BG33_430_G],\r\n\tonAnyMinionAttack: (minion: BoardEntity, input: OnAttackInput) => {\r\n\t\tif (hasEntityMechanic(input.attacker, GameTag.BACON_RALLY, input.gameState.allCards)) {\r\n\t\t\tconst mult = minion.cardId === CardIds.ProdigiousTusker_BG33_430_G ? 2 : 1;\r\n\t\t\tplayBloodGemsOn(minion, minion, 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":"prodigious-tusker.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/prodigious-tusker.ts"],"names":[],"mappings":";;;AAAA,iEAAgE;AAEhE,+DAAiE;AAEjE,0CAAmD;AAGtC,QAAA,gBAAgB,GAAuC;IACnE,OAAO,EAAE,0BAAwE;IACjF,8BAA8B,EAAE,CAAC,MAAmB,EAAE,KAAoB,EAAE,EAAE;QAC7E,IAAI,IAAA,yBAAiB,EAAC,KAAK,CAAC,QAAQ,EAAE,wBAAO,CAAC,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;YACrF,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAwC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3E,IAAA,4BAAe,EAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SACtG;QACD,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;CACD,CAAC","sourcesContent":["import { CardIds, GameTag } 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 { hasEntityMechanic } from '../../../utils';\r\nimport { OnWheneverAnotherMinionAttacksCard } from '../../card.interface';\r\n\r\nexport const ProdigiousTusker: OnWheneverAnotherMinionAttacksCard = {\r\n\tcardIds: [CardIds.ProdigiousTusker_BG33_430, CardIds.ProdigiousTusker_BG33_430_G],\r\n\tonWheneverAnotherMinionAttacks: (minion: BoardEntity, input: OnAttackInput) => {\r\n\t\tif (hasEntityMechanic(input.attacker, GameTag.BACON_RALLY, input.gameState.allCards)) {\r\n\t\t\tconst mult = minion.cardId === CardIds.ProdigiousTusker_BG33_430_G ? 2 : 1;\r\n\t\t\tplayBloodGemsOn(minion, minion, 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"]}
@@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.RaptorElder = void 0;
4
4
  const reference_data_1 = require("@firestone-hs/reference-data");
5
5
  const utils_1 = require("../../../utils");
6
- const attackBuff = 1;
7
- const healthBuff = 1;
6
+ const attackBuff = 2;
7
+ const healthBuff = 2;
8
8
  exports.RaptorElder = {
9
9
  cardIds: ["BG33_842", "BG33_842_G"],
10
10
  onSpawned: (minion, input) => {
@@ -1 +1 @@
1
- {"version":3,"file":"raptor-elder.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/raptor-elder.ts"],"names":[],"mappings":"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","sourcesContent":["import { CardIds, Race } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\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\nconst healthBuff = 1;\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\ttarget.attack += attackBuff * baseBuff;\r\n\t\t\ttarget.health += healthBuff * baseBuff;\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\ttarget.attack = Math.max(0, target.attack - attackBuff * baseBuff);\r\n\t\t\ttarget.health = Math.max(1, target.health - healthBuff * baseBuff);\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\tconst allTargets = input.board.filter((e) =>\r\n\t\t\thasCorrectTribe(e, input.hero, Race.BEAST, input.gameState.anomalies, input.gameState.allCards),\r\n\t\t);\r\n\t\tfor (const target of allTargets) {\r\n\t\t\t// Only the new spawn should increase the data, as we've already applied the aura before\r\n\t\t\ttarget.attack += attackBuff * mult;\r\n\t\t\ttarget.health += healthBuff * mult;\r\n\t\t}\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"raptor-elder.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/raptor-elder.ts"],"names":[],"mappings":"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","sourcesContent":["import { CardIds, Race } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\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 = 2;\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\ttarget.attack += attackBuff * baseBuff;\r\n\t\t\ttarget.health += healthBuff * baseBuff;\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\ttarget.attack = Math.max(0, target.attack - attackBuff * baseBuff);\r\n\t\t\ttarget.health = Math.max(1, target.health - healthBuff * baseBuff);\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\tconst allTargets = input.board.filter((e) =>\r\n\t\t\thasCorrectTribe(e, input.hero, Race.BEAST, input.gameState.anomalies, input.gameState.allCards),\r\n\t\t);\r\n\t\tfor (const target of allTargets) {\r\n\t\t\t// Only the new spawn should increase the data, as we've already applied the aura before\r\n\t\t\ttarget.attack += attackBuff * mult;\r\n\t\t\ttarget.health += healthBuff * mult;\r\n\t\t}\r\n\t},\r\n};\r\n"]}
@@ -1,2 +1,2 @@
1
- import { OnAttackCard } from '../../card.interface';
2
- export declare const RazorfenVineweaver: OnAttackCard;
1
+ import { RallyCard } from '../../card.interface';
2
+ export declare const RazorfenVineweaver: RallyCard;
@@ -4,10 +4,7 @@ exports.RazorfenVineweaver = void 0;
4
4
  const blood_gems_1 = require("../../../simulation/blood-gems");
5
5
  exports.RazorfenVineweaver = {
6
6
  cardIds: ["BG33_883", "BG33_883_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_883_G" ? 2 : 1;
12
9
  (0, blood_gems_1.playBloodGemsOn)(minion, minion, 3 * mult, input.attackingBoard, input.attackingHero, input.gameState);
13
10
  return { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };
@@ -1 +1 @@
1
- {"version":3,"file":"razorfen-vineweaver.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/razorfen-vineweaver.ts"],"names":[],"mappings":";;;AAEA,+DAAiE;AAIpD,QAAA,kBAAkB,GAAiB;IAC/C,OAAO,EAAE,0BAA4E;IACrF,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,iBAA0C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7E,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 RazorfenVineweaver: OnAttackCard = {\r\n\tcardIds: [CardIds.RazorfenVineweaver_BG33_883, CardIds.RazorfenVineweaver_BG33_883_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.RazorfenVineweaver_BG33_883_G ? 2 : 1;\r\n\t\tplayBloodGemsOn(minion, minion, 3 * 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":"razorfen-vineweaver.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/razorfen-vineweaver.ts"],"names":[],"mappings":";;;AAEA,+DAAiE;AAIpD,QAAA,kBAAkB,GAAc;IAC5C,OAAO,EAAE,0BAA4E;IACrF,KAAK,EAAE,CAAC,MAAmB,EAAE,KAAoB,EAAE,EAAE;QACpD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAA0C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7E,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 RazorfenVineweaver: RallyCard = {\r\n\tcardIds: [CardIds.RazorfenVineweaver_BG33_883, CardIds.RazorfenVineweaver_BG33_883_G],\r\n\trally: (minion: BoardEntity, input: OnAttackInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.RazorfenVineweaver_BG33_883_G ? 2 : 1;\r\n\t\tplayBloodGemsOn(minion, minion, 3 * 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 RipsnarlCaptain: OnAttackCard;
1
+ import { OnWheneverAnotherMinionAttacksCard, RallyCard } from '../../card.interface';
2
+ export declare const RipsnarlCaptain: OnWheneverAnotherMinionAttacksCard & RallyCard;
@@ -6,12 +6,18 @@ const stats_1 = require("../../../simulation/stats");
6
6
  const utils_1 = require("../../../utils");
7
7
  exports.RipsnarlCaptain = {
8
8
  cardIds: ["BGS_056", "TB_BaconUps_139"],
9
- onAnyMinionAttack: (minion, input) => {
10
- if ((0, utils_1.hasCorrectTribe)(input.attacker, input.attackingHero, reference_data_1.Race.PIRATE, input.gameState.anomalies, input.gameState.allCards)) {
11
- const mult = minion.cardId === "TB_BaconUps_139" ? 2 : 1;
12
- (0, stats_1.modifyStats)(input.attacker, minion, 3 * mult, 0, input.attackingBoard, input.attackingHero, input.gameState);
13
- }
14
- return { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };
9
+ onWheneverAnotherMinionAttacks: (minion, input) => {
10
+ return process(minion, input);
15
11
  },
12
+ rally: (minion, input) => {
13
+ return process(minion, input);
14
+ },
15
+ };
16
+ const process = (minion, input) => {
17
+ if ((0, utils_1.hasCorrectTribe)(input.attacker, input.attackingHero, reference_data_1.Race.PIRATE, input.gameState.anomalies, input.gameState.allCards)) {
18
+ const mult = minion.cardId === "TB_BaconUps_139" ? 2 : 1;
19
+ (0, stats_1.modifyStats)(input.attacker, minion, 3 * mult, 0, input.attackingBoard, input.attackingHero, input.gameState);
20
+ }
21
+ return { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };
16
22
  };
17
23
  //# sourceMappingURL=ripsnarl-captain.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ripsnarl-captain.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/ripsnarl-captain.ts"],"names":[],"mappings":";;;AAAA,iEAA6D;AAG7D,qDAAwD;AACxD,0CAAiD;AAGpC,QAAA,eAAe,GAAiB;IAC5C,OAAO,EAAE,8BAA0E;IACnF,iBAAiB,EAAE,CAAC,MAAmB,EAAE,KAAoB,EAAE,EAAE;QAChE,IACC,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;YACD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,sBAA4C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/E,IAAA,mBAAW,EACV,KAAK,CAAC,QAAQ,EACd,MAAM,EACN,CAAC,GAAG,IAAI,EACR,CAAC,EACD,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,SAAS,CACf,CAAC;SACF;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 RipsnarlCaptain: OnAttackCard = {\r\n\tcardIds: [CardIds.RipsnarlCaptain_BGS_056, CardIds.RipsnarlCaptain_TB_BaconUps_139],\r\n\tonAnyMinionAttack: (minion: BoardEntity, input: OnAttackInput) => {\r\n\t\tif (\r\n\t\t\thasCorrectTribe(\r\n\t\t\t\tinput.attacker,\r\n\t\t\t\tinput.attackingHero,\r\n\t\t\t\tRace.PIRATE,\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\tconst mult = minion.cardId === CardIds.RipsnarlCaptain_TB_BaconUps_139 ? 2 : 1;\r\n\t\t\tmodifyStats(\r\n\t\t\t\tinput.attacker,\r\n\t\t\t\tminion,\r\n\t\t\t\t3 * mult,\r\n\t\t\t\t0,\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}\r\n\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"ripsnarl-captain.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/ripsnarl-captain.ts"],"names":[],"mappings":";;;AAAA,iEAA6D;AAG7D,qDAAwD;AACxD,0CAAiD;AAGpC,QAAA,eAAe,GAAmD;IAC9E,OAAO,EAAE,8BAA0E;IACnF,8BAA8B,EAAE,CAAC,MAAmB,EAAE,KAAoB,EAAE,EAAE;QAC7E,OAAO,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC/B,CAAC;IACD,KAAK,EAAE,CAAC,MAAmB,EAAE,KAAoB,EAAE,EAAE;QACpD,OAAO,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC/B,CAAC;CACD,CAAC;AAEF,MAAM,OAAO,GAAG,CAAC,MAAmB,EAAE,KAAoB,EAAE,EAAE;IAC7D,IACC,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;QACD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,sBAA4C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/E,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;KAC7G;IACD,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;AACvD,CAAC,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, RallyCard } from '../../card.interface';\r\n\r\nexport const RipsnarlCaptain: OnWheneverAnotherMinionAttacksCard & RallyCard = {\r\n\tcardIds: [CardIds.RipsnarlCaptain_BGS_056, CardIds.RipsnarlCaptain_TB_BaconUps_139],\r\n\tonWheneverAnotherMinionAttacks: (minion: BoardEntity, input: OnAttackInput) => {\r\n\t\treturn process(minion, input);\r\n\t},\r\n\trally: (minion: BoardEntity, input: OnAttackInput) => {\r\n\t\treturn process(minion, input);\r\n\t},\r\n};\r\n\r\nconst process = (minion: BoardEntity, input: OnAttackInput) => {\r\n\tif (\r\n\t\thasCorrectTribe(\r\n\t\t\tinput.attacker,\r\n\t\t\tinput.attackingHero,\r\n\t\t\tRace.PIRATE,\r\n\t\t\tinput.gameState.anomalies,\r\n\t\t\tinput.gameState.allCards,\r\n\t\t)\r\n\t) {\r\n\t\tconst mult = minion.cardId === CardIds.RipsnarlCaptain_TB_BaconUps_139 ? 2 : 1;\r\n\t\tmodifyStats(input.attacker, minion, 3 * mult, 0, input.attackingBoard, input.attackingHero, input.gameState);\r\n\t}\r\n\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n};\r\n"]}
@@ -1,2 +1,2 @@
1
- import { OnAttackCard } from '../../card.interface';
2
- export declare const Roadboar: OnAttackCard;
1
+ import { RallyCard } from '../../card.interface';
2
+ export declare const Roadboar: RallyCard;
@@ -4,10 +4,7 @@ exports.Roadboar = void 0;
4
4
  const cards_in_hand_1 = require("../../../simulation/cards-in-hand");
5
5
  exports.Roadboar = {
6
6
  cardIds: ["BG20_101", "BG20_101_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 === "BG20_101_G" ? 2 : 1;
12
9
  const cardsToAdd = Array(3 * mult).fill("BG20_GEM");
13
10
  (0, cards_in_hand_1.addCardsInHand)(input.attackingHero, input.attackingBoard, cardsToAdd, input.gameState);
@@ -1 +1 @@
1
- {"version":3,"file":"roadboar.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/roadboar.ts"],"names":[],"mappings":";;;AAEA,qEAAmE;AAItD,QAAA,QAAQ,GAAiB;IACrC,OAAO,EAAE,0BAAwD;IACjE,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,iBAAgC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnE,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,YAAkB,CAAC;QAC1D,IAAA,8BAAc,EAAC,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,cAAc,EAAE,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QACvF,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 { addCardsInHand } from '../../../simulation/cards-in-hand';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { OnAttackCard } from '../../card.interface';\r\n\r\nexport const Roadboar: OnAttackCard = {\r\n\tcardIds: [CardIds.Roadboar_BG20_101, CardIds.Roadboar_BG20_101_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.Roadboar_BG20_101_G ? 2 : 1;\r\n\t\tconst cardsToAdd = Array(3 * mult).fill(CardIds.BloodGem);\r\n\t\taddCardsInHand(input.attackingHero, input.attackingBoard, cardsToAdd, input.gameState);\r\n\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"roadboar.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/roadboar.ts"],"names":[],"mappings":";;;AAEA,qEAAmE;AAItD,QAAA,QAAQ,GAAc;IAClC,OAAO,EAAE,0BAAwD;IACjE,KAAK,EAAE,CAAC,MAAmB,EAAE,KAAoB,EAAE,EAAE;QACpD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAgC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnE,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,YAAkB,CAAC;QAC1D,IAAA,8BAAc,EAAC,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,cAAc,EAAE,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QACvF,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 { addCardsInHand } from '../../../simulation/cards-in-hand';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { RallyCard } from '../../card.interface';\r\n\r\nexport const Roadboar: RallyCard = {\r\n\tcardIds: [CardIds.Roadboar_BG20_101, CardIds.Roadboar_BG20_101_G],\r\n\trally: (minion: BoardEntity, input: OnAttackInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.Roadboar_BG20_101_G ? 2 : 1;\r\n\t\tconst cardsToAdd = Array(3 * mult).fill(CardIds.BloodGem);\r\n\t\taddCardsInHand(input.attackingHero, input.attackingBoard, cardsToAdd, 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 SanguineRefiner: OnAttackCard;
1
+ import { RallyCard } from '../../card.interface';
2
+ export declare const SanguineRefiner: RallyCard;