@firestone-hs/simulate-bgs-battle 1.1.555 → 1.1.557

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 (51) hide show
  1. package/dist/cards/card.interface.d.ts +5 -0
  2. package/dist/cards/card.interface.js +3 -1
  3. package/dist/cards/card.interface.js.map +1 -1
  4. package/dist/cards/impl/_card-mappings.js +6 -0
  5. package/dist/cards/impl/_card-mappings.js.map +1 -1
  6. package/dist/cards/impl/minion/battlecruiser.js +10 -10
  7. package/dist/cards/impl/minion/battlecruiser.js.map +1 -1
  8. package/dist/cards/impl/minion/carrier.js +6 -3
  9. package/dist/cards/impl/minion/carrier.js.map +1 -1
  10. package/dist/cards/impl/minion/champion-of-the-primus.js +1 -1
  11. package/dist/cards/impl/minion/champion-of-the-primus.js.map +1 -1
  12. package/dist/cards/impl/minion/deadstomper.d.ts +2 -0
  13. package/dist/cards/impl/minion/deadstomper.js +17 -0
  14. package/dist/cards/impl/minion/deadstomper.js.map +1 -0
  15. package/dist/cards/impl/minion/fireworks-fanatic.d.ts +2 -0
  16. package/dist/cards/impl/minion/fireworks-fanatic.js +25 -0
  17. package/dist/cards/impl/minion/fireworks-fanatic.js.map +1 -0
  18. package/dist/cards/impl/minion/implant-subject.d.ts +2 -2
  19. package/dist/cards/impl/minion/implant-subject.js +3 -0
  20. package/dist/cards/impl/minion/implant-subject.js.map +1 -1
  21. package/dist/cards/impl/minion/lurker.js +1 -1
  22. package/dist/cards/impl/minion/lurker.js.map +1 -1
  23. package/dist/cards/impl/minion/mutalisk.js +1 -4
  24. package/dist/cards/impl/minion/mutalisk.js.map +1 -1
  25. package/dist/cards/impl/minion/sanlayn-scribe.js +20 -0
  26. package/dist/cards/impl/minion/sanlayn-scribe.js.map +1 -1
  27. package/dist/cards/impl/minion/sky-pirate-flagbearer.js +1 -0
  28. package/dist/cards/impl/minion/sky-pirate-flagbearer.js.map +1 -1
  29. package/dist/cards/impl/minion/turquoise-skitterer.js +1 -1
  30. package/dist/cards/impl/minion/turquoise-skitterer.js.map +1 -1
  31. package/dist/cards/impl/trinket/arm-of-the-empire.d.ts +2 -0
  32. package/dist/cards/impl/trinket/arm-of-the-empire.js +15 -0
  33. package/dist/cards/impl/trinket/arm-of-the-empire.js.map +1 -0
  34. package/dist/keywords/reborn.js +3 -0
  35. package/dist/keywords/reborn.js.map +1 -1
  36. package/dist/simulation/add-minion-to-board.js +8 -19
  37. package/dist/simulation/add-minion-to-board.js.map +1 -1
  38. package/dist/simulation/attack.d.ts +1 -1
  39. package/dist/simulation/attack.js.map +1 -1
  40. package/dist/simulation/on-being-attacked.d.ts +9 -0
  41. package/dist/simulation/on-being-attacked.js +16 -10
  42. package/dist/simulation/on-being-attacked.js.map +1 -1
  43. package/dist/simulation/reborn.d.ts +5 -1
  44. package/dist/simulation/reborn.js +8 -4
  45. package/dist/simulation/reborn.js.map +1 -1
  46. package/dist/simulation/utils/golden.js +1 -2
  47. package/dist/simulation/utils/golden.js.map +1 -1
  48. package/dist/utils.d.ts +1 -0
  49. package/dist/utils.js +8 -3
  50. package/dist/utils.js.map +1 -1
  51. package/package.json +1 -1
@@ -15,6 +15,7 @@ import { OnCardAddedToHandInput } from '../simulation/cards-in-hand';
15
15
  import { AfterHeroDamagedInput } from '../simulation/damage-to-hero';
16
16
  import { DeathrattleTriggeredInput } from '../simulation/deathrattle-on-trigger';
17
17
  import { OnAttackInput } from '../simulation/on-attack';
18
+ import { OnMinionAttackedInput } from '../simulation/on-being-attacked';
18
19
  import { RebornEffectInput } from '../simulation/reborn';
19
20
  import { SoCInput } from '../simulation/start-of-combat/start-of-combat-input';
20
21
  import { OnStatsChangedInput } from '../simulation/stats';
@@ -42,6 +43,10 @@ export interface OnAttackCard extends Card {
42
43
  };
43
44
  }
44
45
  export declare const hasOnAttack: (card: Card) => card is OnAttackCard;
46
+ export interface OnMinionAttackedCard extends Card {
47
+ onAttacked: (minion: BoardEntity, input: OnMinionAttackedInput) => void;
48
+ }
49
+ export declare const hasOnMinionAttacked: (card: Card) => card is OnMinionAttackedCard;
45
50
  export interface OnSpawnedCard extends Card {
46
51
  onSpawned: (minion: BoardEntity, input: OnSpawnInput) => void;
47
52
  }
@@ -1,12 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.hasOnMinionKilled = exports.hasOnDeath = exports.hasAfterHeroDamaged = exports.hasOnStatsChanged = exports.hasOnWindfuryUpdated = exports.hasOnVenomousUpdated = exports.hasOnStealthUpdated = exports.hasOnRebornUpdated = exports.hasOnTauntUpdated = exports.hasOnDivineShieldUpdated = exports.hasEndOfTurn = exports.hasOnCardAddedToHand = exports.hasDeathrattleSpawnEnchantment = exports.hasDeathrattleEnchantmentEffect = exports.hasDeathrattleEffect = exports.hasAvenge = exports.hasOnBattlecryTriggered = exports.hasRebornEffect = exports.hasBattlecry = exports.hasDeathrattleSpawn = exports.hasOnDespawned = exports.hasAfterOtherSpawned = exports.hasOnOtherSpawned = exports.hasOnOtherAuraSpawned = exports.hasOnSpawned = exports.hasOnAttack = exports.hasStartOfCombat = exports.hasDefaultCharges = void 0;
3
+ exports.hasOnMinionKilled = exports.hasOnDeath = exports.hasAfterHeroDamaged = exports.hasOnStatsChanged = exports.hasOnWindfuryUpdated = exports.hasOnVenomousUpdated = exports.hasOnStealthUpdated = exports.hasOnRebornUpdated = exports.hasOnTauntUpdated = exports.hasOnDivineShieldUpdated = exports.hasEndOfTurn = exports.hasOnCardAddedToHand = exports.hasDeathrattleSpawnEnchantment = exports.hasDeathrattleEnchantmentEffect = exports.hasDeathrattleEffect = exports.hasAvenge = exports.hasOnBattlecryTriggered = exports.hasRebornEffect = exports.hasBattlecry = exports.hasDeathrattleSpawn = exports.hasOnDespawned = exports.hasAfterOtherSpawned = exports.hasOnOtherSpawned = exports.hasOnOtherAuraSpawned = exports.hasOnSpawned = exports.hasOnMinionAttacked = exports.hasOnAttack = exports.hasStartOfCombat = exports.hasDefaultCharges = void 0;
4
4
  const hasDefaultCharges = (card) => (card === null || card === void 0 ? void 0 : card.defaultCharges) !== undefined;
5
5
  exports.hasDefaultCharges = hasDefaultCharges;
6
6
  const hasStartOfCombat = (card) => (card === null || card === void 0 ? void 0 : card.startOfCombat) !== undefined;
7
7
  exports.hasStartOfCombat = hasStartOfCombat;
8
8
  const hasOnAttack = (card) => (card === null || card === void 0 ? void 0 : card.onAnyMinionAttack) !== undefined;
9
9
  exports.hasOnAttack = hasOnAttack;
10
+ const hasOnMinionAttacked = (card) => (card === null || card === void 0 ? void 0 : card.onAttacked) !== undefined;
11
+ exports.hasOnMinionAttacked = hasOnMinionAttacked;
10
12
  const hasOnSpawned = (card) => (card === null || card === void 0 ? void 0 : card.onSpawned) !== undefined;
11
13
  exports.hasOnSpawned = hasOnSpawned;
12
14
  const hasOnOtherAuraSpawned = (card) => (card === null || card === void 0 ? void 0 : card.onOtherSpawnedAura) !== undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"card.interface.js","sourceRoot":"","sources":["../../src/cards/card.interface.ts"],"names":[],"mappings":"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","sourcesContent":["import { BgsPlayerEntity, BgsQuestEntity, BoardTrinket } from '../bgs-player-entity';\r\nimport { BoardEntity } from '../board-entity';\r\nimport { BoardSecret } from '../board-secret';\r\nimport { OnDivineShieldUpdatedInput } from '../keywords/divine-shield';\r\nimport { OnRebornUpdatedInput } from '../keywords/reborn';\r\nimport { OnStealthUpdatedInput } from '../keywords/stealth';\r\nimport { OnTauntUpdatedInput } from '../keywords/taunt';\r\nimport { OnVenomousUpdatedInput } from '../keywords/venomous';\r\nimport { OnWindfuryUpdatedInput } from '../keywords/windfury';\r\nimport {\r\n\tOnDespawnInput,\r\n\tOnOtherSpawnAuraInput,\r\n\tOnOtherSpawnInput,\r\n\tOnSpawnInput,\r\n} from '../simulation/add-minion-to-board';\r\nimport { OnDeathInput, OnMinionKilledInput } from '../simulation/attack';\r\nimport { AvengeInput } from '../simulation/avenge';\r\nimport { BattlecryInput, OnBattlecryTriggeredInput } from '../simulation/battlecries';\r\nimport { OnCardAddedToHandInput } from '../simulation/cards-in-hand';\r\nimport { AfterHeroDamagedInput } from '../simulation/damage-to-hero';\r\nimport { DeathrattleTriggeredInput } from '../simulation/deathrattle-on-trigger';\r\nimport { OnAttackInput } from '../simulation/on-attack';\r\nimport { RebornEffectInput } from '../simulation/reborn';\r\nimport { SoCInput } from '../simulation/start-of-combat/start-of-combat-input';\r\nimport { OnStatsChangedInput } from '../simulation/stats';\r\n\r\nexport interface Card {\r\n\t// Maybe should make this mandatory\r\n\tcardIds?: readonly string[];\r\n\tstartOfCombat?: (\r\n\t\ttrinket: BoardEntity | BoardTrinket | BgsPlayerEntity | BoardSecret,\r\n\t\tinput: SoCInput,\r\n\t) => boolean | { hasTriggered: boolean; shouldRecomputeCurrentAttacker: boolean };\r\n}\r\n\r\nexport interface DefaultChargesCard extends Card {\r\n\tdefaultCharges: (entity: BoardEntity) => number;\r\n}\r\nexport const hasDefaultCharges = (card: Card): card is DefaultChargesCard =>\r\n\t(card as DefaultChargesCard)?.defaultCharges !== undefined;\r\n\r\nexport interface StartOfCombatCard extends Card {\r\n\tstartOfCombatTiming?: StartOfCombatTiming;\r\n\tstartOfCombat: NonNullable<Card['startOfCombat']>;\r\n}\r\nexport const hasStartOfCombat = (card: Card): card is StartOfCombatCard =>\r\n\t(card as StartOfCombatCard)?.startOfCombat !== undefined;\r\nexport type StartOfCombatTiming = 'start-of-combat' | 'pre-combat' | 'illidan';\r\n\r\n// Whenever this attacks\r\nexport interface OnAttackCard extends Card {\r\n\tonAnyMinionAttack: (\r\n\t\tminion: BoardEntity,\r\n\t\tinput: OnAttackInput,\r\n\t) => { dmgDoneByAttacker: number; dmgDoneByDefender: number };\r\n}\r\nexport const hasOnAttack = (card: Card): card is OnAttackCard =>\r\n\t(card as OnAttackCard)?.onAnyMinionAttack !== undefined;\r\n\r\nexport interface OnSpawnedCard extends Card {\r\n\tonSpawned: (minion: BoardEntity, input: OnSpawnInput) => void;\r\n}\r\nexport const hasOnSpawned = (card: Card): card is OnSpawnedCard => (card as OnSpawnedCard)?.onSpawned !== undefined;\r\n\r\nexport interface OnOtherSpawnedAuraCard extends Card {\r\n\tonOtherSpawnedAura: (minion: BoardEntity, input: OnOtherSpawnAuraInput) => void;\r\n}\r\nexport const hasOnOtherAuraSpawned = (card: Card): card is OnOtherSpawnedAuraCard =>\r\n\t(card as OnOtherSpawnedAuraCard)?.onOtherSpawnedAura !== undefined;\r\n\r\nexport interface OnOtherSpawnedCard extends Card {\r\n\tonOtherSpawned: (minion: BoardEntity, input: OnOtherSpawnInput) => void;\r\n}\r\nexport const hasOnOtherSpawned = (card: Card): card is OnOtherSpawnedCard =>\r\n\t(card as OnOtherSpawnedCard)?.onOtherSpawned !== undefined;\r\n\r\nexport interface AfterOtherSpawnedCard extends Card {\r\n\tafterOtherSpawned: (minion: BoardEntity, input: OnOtherSpawnInput) => void;\r\n}\r\nexport const hasAfterOtherSpawned = (card: Card): card is AfterOtherSpawnedCard =>\r\n\t(card as AfterOtherSpawnedCard)?.afterOtherSpawned !== undefined;\r\n\r\nexport interface OnDespawnedCard extends Card {\r\n\tonDespawned: (minion: BoardEntity, input: OnDespawnInput) => void;\r\n}\r\nexport const hasOnDespawned = (card: Card): card is OnDespawnedCard =>\r\n\t(card as OnDespawnedCard)?.onDespawned !== undefined;\r\n\r\nexport interface DeathrattleSpawnCard extends Card {\r\n\tdeathrattleSpawn: (minion: BoardEntity, input: DeathrattleTriggeredInput) => readonly BoardEntity[];\r\n}\r\nexport const hasDeathrattleSpawn = (card: Card): card is DeathrattleSpawnCard =>\r\n\t(card as DeathrattleSpawnCard)?.deathrattleSpawn !== undefined;\r\n\r\nexport interface BattlecryCard extends Card {\r\n\tbattlecry: (minion: BoardEntity, input: BattlecryInput) => void;\r\n}\r\nexport const hasBattlecry = (card: Card): card is BattlecryCard => (card as BattlecryCard)?.battlecry !== undefined;\r\n\r\nexport interface RebornEffectCard extends Card {\r\n\trebornEffect: (minion: BoardEntity, input: RebornEffectInput) => void;\r\n}\r\nexport const hasRebornEffect = (card: Card): card is RebornEffectCard =>\r\n\t(card as RebornEffectCard)?.rebornEffect !== undefined;\r\n\r\nexport interface OnBattlecryTriggeredCard extends Card {\r\n\tonBattlecryTriggered: (minion: BoardEntity, input: OnBattlecryTriggeredInput) => void;\r\n}\r\nexport const hasOnBattlecryTriggered = (card: Card): card is OnBattlecryTriggeredCard =>\r\n\t(card as OnBattlecryTriggeredCard)?.onBattlecryTriggered !== undefined;\r\n\r\nexport interface AvengeCard extends Card {\r\n\tavenge: (minion: BoardEntity, input: AvengeInput) => void | readonly BoardEntity[];\r\n\tbaseAvengeValue: (cardId: string) => number;\r\n}\r\nexport const hasAvenge = (card: Card): card is AvengeCard => (card as AvengeCard)?.avenge !== undefined;\r\n\r\nexport interface DeathrattleEffectCard extends Card {\r\n\tdeathrattleEffect: (minion: BoardEntity, input: DeathrattleTriggeredInput) => void;\r\n}\r\nexport const hasDeathrattleEffect = (card: Card): card is DeathrattleEffectCard =>\r\n\t(card as DeathrattleEffectCard)?.deathrattleEffect !== undefined;\r\n\r\nexport interface DeathrattleEnchantmentEffectCard extends Card {\r\n\tdeathrattleEffectEnchantmentEffect: (\r\n\t\tminion: { cardId: string; originEntityId?: number; repeats?: number },\r\n\t\tinput: DeathrattleTriggeredInput,\r\n\t) => void;\r\n\tcardIds: readonly string[];\r\n}\r\nexport const hasDeathrattleEnchantmentEffect = (card: Card): card is DeathrattleEnchantmentEffectCard =>\r\n\t(card as DeathrattleEnchantmentEffectCard)?.deathrattleEffectEnchantmentEffect !== undefined;\r\n\r\nexport interface DeathrattleSpawnEnchantmentCard extends Card {\r\n\tdeathrattleSpawnEnchantmentEffect: (\r\n\t\tminion: { cardId: string; originEntityId?: number; repeats?: number },\r\n\t\tinput: DeathrattleTriggeredInput,\r\n\t) => readonly BoardEntity[];\r\n\tcardIds: readonly string[];\r\n}\r\nexport const hasDeathrattleSpawnEnchantment = (card: Card): card is DeathrattleSpawnEnchantmentCard =>\r\n\t(card as DeathrattleSpawnEnchantmentCard)?.deathrattleSpawnEnchantmentEffect !== undefined;\r\n\r\nexport interface OnCardAddedToHandCard extends Card {\r\n\tonCardAddedToHand: (entity: BoardEntity | BgsQuestEntity, input: OnCardAddedToHandInput) => void;\r\n}\r\nexport const hasOnCardAddedToHand = (card: Card): card is OnCardAddedToHandCard =>\r\n\t(card as OnCardAddedToHandCard)?.onCardAddedToHand !== undefined;\r\n\r\nexport interface EndOfTurnCard extends Card {\r\n\t// Use BattlecryInput because it's the only way end of turn effects are triggered\r\n\tendOfTurn: (entity: BoardEntity, input: EndOfTurnInput) => void;\r\n}\r\nexport const hasEndOfTurn = (card: Card): card is EndOfTurnCard => (card as EndOfTurnCard)?.endOfTurn !== undefined;\r\nexport type EndOfTurnInput = BattlecryInput;\r\n\r\nexport interface OnDivineShieldUpdatedCard extends Card {\r\n\tonDivineShieldUpdated: (entity: BoardEntity, input: OnDivineShieldUpdatedInput) => void;\r\n}\r\nexport const hasOnDivineShieldUpdated = (card: Card): card is OnDivineShieldUpdatedCard =>\r\n\t(card as OnDivineShieldUpdatedCard)?.onDivineShieldUpdated !== undefined;\r\n\r\nexport interface OnTauntUpdatedCard extends Card {\r\n\tonTauntUpdated: (\r\n\t\tentity: BoardEntity,\r\n\t\timpactedEntity: BoardEntity,\r\n\t\tpreviousValue: boolean,\r\n\t\tinput: OnTauntUpdatedInput,\r\n\t) => void;\r\n}\r\nexport const hasOnTauntUpdated = (card: Card): card is OnTauntUpdatedCard =>\r\n\t(card as OnTauntUpdatedCard)?.onTauntUpdated !== undefined;\r\n\r\nexport interface OnRebornUpdatedCard extends Card {\r\n\tonRebornUpdated: (\r\n\t\tentity: BoardEntity,\r\n\t\timpactedEntity: BoardEntity,\r\n\t\tpreviousValue: boolean,\r\n\t\tinput: OnRebornUpdatedInput,\r\n\t) => void;\r\n}\r\nexport const hasOnRebornUpdated = (card: Card): card is OnRebornUpdatedCard =>\r\n\t(card as OnRebornUpdatedCard)?.onRebornUpdated !== undefined;\r\n\r\nexport interface OnStealthUpdatedCard extends Card {\r\n\tonStealthUpdated: (\r\n\t\tentity: BoardEntity,\r\n\t\timpactedEntity: BoardEntity,\r\n\t\tpreviousValue: boolean,\r\n\t\tinput: OnStealthUpdatedInput,\r\n\t) => void;\r\n}\r\nexport const hasOnStealthUpdated = (card: Card): card is OnStealthUpdatedCard =>\r\n\t(card as OnStealthUpdatedCard)?.onStealthUpdated !== undefined;\r\n\r\nexport interface OnVenomousUpdatedCard extends Card {\r\n\tonVenomousUpdated: (\r\n\t\tentity: BoardEntity,\r\n\t\timpactedEntity: BoardEntity,\r\n\t\tpreviousValue: boolean,\r\n\t\tinput: OnVenomousUpdatedInput,\r\n\t) => void;\r\n}\r\nexport const hasOnVenomousUpdated = (card: Card): card is OnVenomousUpdatedCard =>\r\n\t(card as OnVenomousUpdatedCard)?.onVenomousUpdated !== undefined;\r\n\r\nexport interface OnWindfuryUpdatedCard extends Card {\r\n\tonWindfuryUpdated: (\r\n\t\tentity: BoardEntity,\r\n\t\timpactedEntity: BoardEntity,\r\n\t\tpreviousValue: boolean,\r\n\t\tinput: OnWindfuryUpdatedInput,\r\n\t) => void;\r\n}\r\nexport const hasOnWindfuryUpdated = (card: Card): card is OnWindfuryUpdatedCard =>\r\n\t(card as OnWindfuryUpdatedCard)?.onWindfuryUpdated !== undefined;\r\n\r\nexport interface OnStatsChangedCard extends Card {\r\n\tonStatsChanged: (entity: BoardEntity, input: OnStatsChangedInput) => void;\r\n}\r\nexport const hasOnStatsChanged = (card: Card): card is OnStatsChangedCard =>\r\n\t(card as OnStatsChangedCard)?.onStatsChanged !== undefined;\r\n\r\nexport interface AfterHeroDamagedCard extends Card {\r\n\tafterHeroDamaged: (entity: BoardEntity, input: AfterHeroDamagedInput) => void;\r\n}\r\nexport const hasAfterHeroDamaged = (card: Card): card is AfterHeroDamagedCard =>\r\n\t(card as AfterHeroDamagedCard)?.afterHeroDamaged !== undefined;\r\n\r\nexport interface OnDeathCard extends Card {\r\n\tonDeath: (entity: BoardEntity, input: OnDeathInput) => void;\r\n}\r\nexport const hasOnDeath = (card: Card): card is OnDeathCard => (card as OnDeathCard)?.onDeath !== undefined;\r\n\r\nexport interface OnMinionKilledCard extends Card {\r\n\tonMinionKilled: (\r\n\t\tentity: BoardEntity,\r\n\t\tinput: OnMinionKilledInput,\r\n\t) => { dmgDoneByAttacker: number; dmgDoneByDefender: number };\r\n}\r\nexport const hasOnMinionKilled = (card: Card): card is OnMinionKilledCard =>\r\n\t(card as OnMinionKilledCard)?.onMinionKilled !== undefined;\r\n"]}
1
+ {"version":3,"file":"card.interface.js","sourceRoot":"","sources":["../../src/cards/card.interface.ts"],"names":[],"mappings":"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","sourcesContent":["import { BgsPlayerEntity, BgsQuestEntity, BoardTrinket } from '../bgs-player-entity';\r\nimport { BoardEntity } from '../board-entity';\r\nimport { BoardSecret } from '../board-secret';\r\nimport { OnDivineShieldUpdatedInput } from '../keywords/divine-shield';\r\nimport { OnRebornUpdatedInput } from '../keywords/reborn';\r\nimport { OnStealthUpdatedInput } from '../keywords/stealth';\r\nimport { OnTauntUpdatedInput } from '../keywords/taunt';\r\nimport { OnVenomousUpdatedInput } from '../keywords/venomous';\r\nimport { OnWindfuryUpdatedInput } from '../keywords/windfury';\r\nimport {\r\n\tOnDespawnInput,\r\n\tOnOtherSpawnAuraInput,\r\n\tOnOtherSpawnInput,\r\n\tOnSpawnInput,\r\n} from '../simulation/add-minion-to-board';\r\nimport { OnDeathInput, OnMinionKilledInput } from '../simulation/attack';\r\nimport { AvengeInput } from '../simulation/avenge';\r\nimport { BattlecryInput, OnBattlecryTriggeredInput } from '../simulation/battlecries';\r\nimport { OnCardAddedToHandInput } from '../simulation/cards-in-hand';\r\nimport { AfterHeroDamagedInput } from '../simulation/damage-to-hero';\r\nimport { DeathrattleTriggeredInput } from '../simulation/deathrattle-on-trigger';\r\nimport { OnAttackInput } from '../simulation/on-attack';\r\nimport { OnMinionAttackedInput } from '../simulation/on-being-attacked';\r\nimport { RebornEffectInput } from '../simulation/reborn';\r\nimport { SoCInput } from '../simulation/start-of-combat/start-of-combat-input';\r\nimport { OnStatsChangedInput } from '../simulation/stats';\r\n\r\nexport interface Card {\r\n\t// Maybe should make this mandatory\r\n\tcardIds?: readonly string[];\r\n\tstartOfCombat?: (\r\n\t\ttrinket: BoardEntity | BoardTrinket | BgsPlayerEntity | BoardSecret,\r\n\t\tinput: SoCInput,\r\n\t) => boolean | { hasTriggered: boolean; shouldRecomputeCurrentAttacker: boolean };\r\n}\r\n\r\nexport interface DefaultChargesCard extends Card {\r\n\tdefaultCharges: (entity: BoardEntity) => number;\r\n}\r\nexport const hasDefaultCharges = (card: Card): card is DefaultChargesCard =>\r\n\t(card as DefaultChargesCard)?.defaultCharges !== undefined;\r\n\r\nexport interface StartOfCombatCard extends Card {\r\n\tstartOfCombatTiming?: StartOfCombatTiming;\r\n\tstartOfCombat: NonNullable<Card['startOfCombat']>;\r\n}\r\nexport const hasStartOfCombat = (card: Card): card is StartOfCombatCard =>\r\n\t(card as StartOfCombatCard)?.startOfCombat !== undefined;\r\nexport type StartOfCombatTiming = 'start-of-combat' | 'pre-combat' | 'illidan';\r\n\r\n// Whenever this attacks\r\nexport interface OnAttackCard extends Card {\r\n\tonAnyMinionAttack: (\r\n\t\tminion: BoardEntity,\r\n\t\tinput: OnAttackInput,\r\n\t) => { dmgDoneByAttacker: number; dmgDoneByDefender: number };\r\n}\r\nexport const hasOnAttack = (card: Card): card is OnAttackCard =>\r\n\t(card as OnAttackCard)?.onAnyMinionAttack !== undefined;\r\n\r\nexport interface OnMinionAttackedCard extends Card {\r\n\tonAttacked: (minion: BoardEntity, input: OnMinionAttackedInput) => void;\r\n}\r\nexport const hasOnMinionAttacked = (card: Card): card is OnMinionAttackedCard =>\r\n\t(card as OnMinionAttackedCard)?.onAttacked !== undefined;\r\n\r\nexport interface OnSpawnedCard extends Card {\r\n\tonSpawned: (minion: BoardEntity, input: OnSpawnInput) => void;\r\n}\r\nexport const hasOnSpawned = (card: Card): card is OnSpawnedCard => (card as OnSpawnedCard)?.onSpawned !== undefined;\r\n\r\nexport interface OnOtherSpawnedAuraCard extends Card {\r\n\tonOtherSpawnedAura: (minion: BoardEntity, input: OnOtherSpawnAuraInput) => void;\r\n}\r\nexport const hasOnOtherAuraSpawned = (card: Card): card is OnOtherSpawnedAuraCard =>\r\n\t(card as OnOtherSpawnedAuraCard)?.onOtherSpawnedAura !== undefined;\r\n\r\nexport interface OnOtherSpawnedCard extends Card {\r\n\tonOtherSpawned: (minion: BoardEntity, input: OnOtherSpawnInput) => void;\r\n}\r\nexport const hasOnOtherSpawned = (card: Card): card is OnOtherSpawnedCard =>\r\n\t(card as OnOtherSpawnedCard)?.onOtherSpawned !== undefined;\r\n\r\nexport interface AfterOtherSpawnedCard extends Card {\r\n\tafterOtherSpawned: (minion: BoardEntity, input: OnOtherSpawnInput) => void;\r\n}\r\nexport const hasAfterOtherSpawned = (card: Card): card is AfterOtherSpawnedCard =>\r\n\t(card as AfterOtherSpawnedCard)?.afterOtherSpawned !== undefined;\r\n\r\nexport interface OnDespawnedCard extends Card {\r\n\tonDespawned: (minion: BoardEntity, input: OnDespawnInput) => void;\r\n}\r\nexport const hasOnDespawned = (card: Card): card is OnDespawnedCard =>\r\n\t(card as OnDespawnedCard)?.onDespawned !== undefined;\r\n\r\nexport interface DeathrattleSpawnCard extends Card {\r\n\tdeathrattleSpawn: (minion: BoardEntity, input: DeathrattleTriggeredInput) => readonly BoardEntity[];\r\n}\r\nexport const hasDeathrattleSpawn = (card: Card): card is DeathrattleSpawnCard =>\r\n\t(card as DeathrattleSpawnCard)?.deathrattleSpawn !== undefined;\r\n\r\nexport interface BattlecryCard extends Card {\r\n\tbattlecry: (minion: BoardEntity, input: BattlecryInput) => void;\r\n}\r\nexport const hasBattlecry = (card: Card): card is BattlecryCard => (card as BattlecryCard)?.battlecry !== undefined;\r\n\r\nexport interface RebornEffectCard extends Card {\r\n\trebornEffect: (minion: BoardEntity, input: RebornEffectInput) => void;\r\n}\r\nexport const hasRebornEffect = (card: Card): card is RebornEffectCard =>\r\n\t(card as RebornEffectCard)?.rebornEffect !== undefined;\r\n\r\nexport interface OnBattlecryTriggeredCard extends Card {\r\n\tonBattlecryTriggered: (minion: BoardEntity, input: OnBattlecryTriggeredInput) => void;\r\n}\r\nexport const hasOnBattlecryTriggered = (card: Card): card is OnBattlecryTriggeredCard =>\r\n\t(card as OnBattlecryTriggeredCard)?.onBattlecryTriggered !== undefined;\r\n\r\nexport interface AvengeCard extends Card {\r\n\tavenge: (minion: BoardEntity, input: AvengeInput) => void | readonly BoardEntity[];\r\n\tbaseAvengeValue: (cardId: string) => number;\r\n}\r\nexport const hasAvenge = (card: Card): card is AvengeCard => (card as AvengeCard)?.avenge !== undefined;\r\n\r\nexport interface DeathrattleEffectCard extends Card {\r\n\tdeathrattleEffect: (minion: BoardEntity, input: DeathrattleTriggeredInput) => void;\r\n}\r\nexport const hasDeathrattleEffect = (card: Card): card is DeathrattleEffectCard =>\r\n\t(card as DeathrattleEffectCard)?.deathrattleEffect !== undefined;\r\n\r\nexport interface DeathrattleEnchantmentEffectCard extends Card {\r\n\tdeathrattleEffectEnchantmentEffect: (\r\n\t\tminion: { cardId: string; originEntityId?: number; repeats?: number },\r\n\t\tinput: DeathrattleTriggeredInput,\r\n\t) => void;\r\n\tcardIds: readonly string[];\r\n}\r\nexport const hasDeathrattleEnchantmentEffect = (card: Card): card is DeathrattleEnchantmentEffectCard =>\r\n\t(card as DeathrattleEnchantmentEffectCard)?.deathrattleEffectEnchantmentEffect !== undefined;\r\n\r\nexport interface DeathrattleSpawnEnchantmentCard extends Card {\r\n\tdeathrattleSpawnEnchantmentEffect: (\r\n\t\tminion: { cardId: string; originEntityId?: number; repeats?: number },\r\n\t\tinput: DeathrattleTriggeredInput,\r\n\t) => readonly BoardEntity[];\r\n\tcardIds: readonly string[];\r\n}\r\nexport const hasDeathrattleSpawnEnchantment = (card: Card): card is DeathrattleSpawnEnchantmentCard =>\r\n\t(card as DeathrattleSpawnEnchantmentCard)?.deathrattleSpawnEnchantmentEffect !== undefined;\r\n\r\nexport interface OnCardAddedToHandCard extends Card {\r\n\tonCardAddedToHand: (entity: BoardEntity | BgsQuestEntity, input: OnCardAddedToHandInput) => void;\r\n}\r\nexport const hasOnCardAddedToHand = (card: Card): card is OnCardAddedToHandCard =>\r\n\t(card as OnCardAddedToHandCard)?.onCardAddedToHand !== undefined;\r\n\r\nexport interface EndOfTurnCard extends Card {\r\n\t// Use BattlecryInput because it's the only way end of turn effects are triggered\r\n\tendOfTurn: (entity: BoardEntity, input: EndOfTurnInput) => void;\r\n}\r\nexport const hasEndOfTurn = (card: Card): card is EndOfTurnCard => (card as EndOfTurnCard)?.endOfTurn !== undefined;\r\nexport type EndOfTurnInput = BattlecryInput;\r\n\r\nexport interface OnDivineShieldUpdatedCard extends Card {\r\n\tonDivineShieldUpdated: (entity: BoardEntity, input: OnDivineShieldUpdatedInput) => void;\r\n}\r\nexport const hasOnDivineShieldUpdated = (card: Card): card is OnDivineShieldUpdatedCard =>\r\n\t(card as OnDivineShieldUpdatedCard)?.onDivineShieldUpdated !== undefined;\r\n\r\nexport interface OnTauntUpdatedCard extends Card {\r\n\tonTauntUpdated: (\r\n\t\tentity: BoardEntity,\r\n\t\timpactedEntity: BoardEntity,\r\n\t\tpreviousValue: boolean,\r\n\t\tinput: OnTauntUpdatedInput,\r\n\t) => void;\r\n}\r\nexport const hasOnTauntUpdated = (card: Card): card is OnTauntUpdatedCard =>\r\n\t(card as OnTauntUpdatedCard)?.onTauntUpdated !== undefined;\r\n\r\nexport interface OnRebornUpdatedCard extends Card {\r\n\tonRebornUpdated: (\r\n\t\tentity: BoardEntity,\r\n\t\timpactedEntity: BoardEntity,\r\n\t\tpreviousValue: boolean,\r\n\t\tinput: OnRebornUpdatedInput,\r\n\t) => void;\r\n}\r\nexport const hasOnRebornUpdated = (card: Card): card is OnRebornUpdatedCard =>\r\n\t(card as OnRebornUpdatedCard)?.onRebornUpdated !== undefined;\r\n\r\nexport interface OnStealthUpdatedCard extends Card {\r\n\tonStealthUpdated: (\r\n\t\tentity: BoardEntity,\r\n\t\timpactedEntity: BoardEntity,\r\n\t\tpreviousValue: boolean,\r\n\t\tinput: OnStealthUpdatedInput,\r\n\t) => void;\r\n}\r\nexport const hasOnStealthUpdated = (card: Card): card is OnStealthUpdatedCard =>\r\n\t(card as OnStealthUpdatedCard)?.onStealthUpdated !== undefined;\r\n\r\nexport interface OnVenomousUpdatedCard extends Card {\r\n\tonVenomousUpdated: (\r\n\t\tentity: BoardEntity,\r\n\t\timpactedEntity: BoardEntity,\r\n\t\tpreviousValue: boolean,\r\n\t\tinput: OnVenomousUpdatedInput,\r\n\t) => void;\r\n}\r\nexport const hasOnVenomousUpdated = (card: Card): card is OnVenomousUpdatedCard =>\r\n\t(card as OnVenomousUpdatedCard)?.onVenomousUpdated !== undefined;\r\n\r\nexport interface OnWindfuryUpdatedCard extends Card {\r\n\tonWindfuryUpdated: (\r\n\t\tentity: BoardEntity,\r\n\t\timpactedEntity: BoardEntity,\r\n\t\tpreviousValue: boolean,\r\n\t\tinput: OnWindfuryUpdatedInput,\r\n\t) => void;\r\n}\r\nexport const hasOnWindfuryUpdated = (card: Card): card is OnWindfuryUpdatedCard =>\r\n\t(card as OnWindfuryUpdatedCard)?.onWindfuryUpdated !== undefined;\r\n\r\nexport interface OnStatsChangedCard extends Card {\r\n\tonStatsChanged: (entity: BoardEntity, input: OnStatsChangedInput) => void;\r\n}\r\nexport const hasOnStatsChanged = (card: Card): card is OnStatsChangedCard =>\r\n\t(card as OnStatsChangedCard)?.onStatsChanged !== undefined;\r\n\r\nexport interface AfterHeroDamagedCard extends Card {\r\n\tafterHeroDamaged: (entity: BoardEntity, input: AfterHeroDamagedInput) => void;\r\n}\r\nexport const hasAfterHeroDamaged = (card: Card): card is AfterHeroDamagedCard =>\r\n\t(card as AfterHeroDamagedCard)?.afterHeroDamaged !== undefined;\r\n\r\nexport interface OnDeathCard extends Card {\r\n\tonDeath: (entity: BoardEntity, input: OnDeathInput) => void;\r\n}\r\nexport const hasOnDeath = (card: Card): card is OnDeathCard => (card as OnDeathCard)?.onDeath !== undefined;\r\n\r\nexport interface OnMinionKilledCard extends Card {\r\n\tonMinionKilled: (\r\n\t\tentity: BoardEntity,\r\n\t\tinput: OnMinionKilledInput,\r\n\t) => { dmgDoneByAttacker: number; dmgDoneByDefender: number };\r\n}\r\nexport const hasOnMinionKilled = (card: Card): card is OnMinionKilledCard =>\r\n\t(card as OnMinionKilledCard)?.onMinionKilled !== undefined;\r\n"]}
@@ -31,6 +31,7 @@ const charlga_1 = require("./minion/charlga");
31
31
  const clunker_junker_1 = require("./minion/clunker-junker");
32
32
  const colossus_1 = require("./minion/colossus");
33
33
  const cruise_controller_1 = require("./minion/cruise-controller");
34
+ const deadstomper_1 = require("./minion/deadstomper");
34
35
  const deathly_striker_1 = require("./minion/deathly-striker");
35
36
  const defiant_shipwright_1 = require("./minion/defiant-shipwright");
36
37
  const deflecto_bot_1 = require("./minion/deflecto-bot");
@@ -38,6 +39,7 @@ const echoing_roar_1 = require("./minion/echoing-roar");
38
39
  const efficient_engineer_1 = require("./minion/efficient-engineer");
39
40
  const electric_synthesizer_1 = require("./minion/electric-synthesizer");
40
41
  const fairy_gillmother_1 = require("./minion/fairy-gillmother");
42
+ const fireworks_fanatic_1 = require("./minion/fireworks-fanatic");
41
43
  const forest_rover_1 = require("./minion/forest-rover");
42
44
  const fountain_chiller_1 = require("./minion/fountain-chiller");
43
45
  const gem_rat_1 = require("./minion/gem-rat");
@@ -137,7 +139,11 @@ const whelp_smuggler_1 = require("./minion/whelp-smuggler");
137
139
  const wildfire_elemental_1 = require("./minion/wildfire-elemental");
138
140
  const wisp_in_the_shell_1 = require("./minion/wisp-in-the-shell");
139
141
  const zergling_1 = require("./minion/zergling");
142
+ const arm_of_the_empire_1 = require("./trinket/arm-of-the-empire");
140
143
  const cards = [
144
+ fireworks_fanatic_1.FireworksFanatic,
145
+ deadstomper_1.Deadstomper,
146
+ arm_of_the_empire_1.ArmOfTheEmpire,
141
147
  battlecruiser_1.Battlecruiser,
142
148
  sharing_is_caring_1.SharingIsCaring,
143
149
  low_flier_1.LowFlier,
@@ -1 +1 @@
1
- {"version":3,"file":"_card-mappings.js","sourceRoot":"","sources":["../../../src/cards/impl/_card-mappings.ts"],"names":[],"mappings":"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","sourcesContent":["import { Card } from '../card.interface';\r\nimport { SharingIsCaring } from './bg-spell/sharing-is-caring';\r\nimport { CrystalInfuserEnchantment } from './enchantments/crystal-infuser-enchantment';\r\nimport { GloriousGloop } from './hero-power/glorious-gloop';\r\nimport { AdmiralElizaGoreblade } from './minion/admiral-eliza-goreblade';\r\nimport { AnubarakNerubianKing } from './minion/anubarak-nerubian-king';\r\nimport { ArcaneCannoneer } from './minion/arcane-cannoneer';\r\nimport { Archimonde } from './minion/archimonde';\r\nimport { AridAtrocity } from './minion/arid-atrocity';\r\nimport { AssistantGuard } from './minion/assistant-guard';\r\nimport { Baneling } from './minion/baneling';\r\nimport { Bannerboar } from './minion/bannerboar';\r\nimport { Battlecruiser } from './minion/battlecruiser';\r\nimport { Beetle } from './minion/beetle';\r\nimport { BellowingTyrant } from './minion/bellowing-tyrant';\r\nimport { BirdBuddy } from './minion/bird-buddy';\r\nimport { BlazingSkyfin } from './minion/blazing-skyfin';\r\nimport { BoarGamer } from './minion/boar-gamer';\r\nimport { BongoBopper } from './minion/bongo-bopper';\r\nimport { BriarbackBookie } from './minion/briarback-bookie';\r\nimport { BubbleGunner } from './minion/bubble-gunner';\r\nimport { BuzzingVermin } from './minion/buzzing-vermin';\r\nimport { CadaverCaretaker } from './minion/cadaver-caretaker';\r\nimport { CaptainBonerender } from './minion/captain-bonerender';\r\nimport { Carrier } from './minion/carrier';\r\nimport { ChampionOfThePrimus } from './minion/champion-of-the-primus';\r\nimport { Charlga } from './minion/charlga';\r\nimport { ClunkerJunker } from './minion/clunker-junker';\r\nimport { Colossus } from './minion/colossus';\r\nimport { CruiseController } from './minion/cruise-controller';\r\nimport { DeathlyStriker } from './minion/deathly-striker';\r\nimport { DefiantShipwright } from './minion/defiant-shipwright';\r\nimport { DeflectoBot } from './minion/deflecto-bot';\r\nimport { EchoingRoar } from './minion/echoing-roar';\r\nimport { EfficientEngineer } from './minion/efficient-engineer';\r\nimport { ElectricSynthesizer } from './minion/electric-synthesizer';\r\nimport { FairyGillmother } from './minion/fairy-gillmother';\r\nimport { ForestRover } from './minion/forest-rover';\r\nimport { FountainChiller } from './minion/fountain-chiller';\r\nimport { GemRat } from './minion/gem-rat';\r\nimport { GemSmuggler } from './minion/gem-smuggler';\r\nimport { GeneralDrakkisath } from './minion/general-drakkisath';\r\nimport { GentleDjinni } from './minion/gentle-djinni';\r\nimport { GentleStag } from './minion/gentle-stag';\r\nimport { GoldrinnTheGreatWolf } from './minion/goldrinn-the-great-wolf';\r\nimport { GreaseBot } from './minion/grease-bot';\r\nimport { GrittyHeadhunter } from './minion/gritty-headhunter';\r\nimport { Hackerfin } from './minion/hackerfin';\r\nimport { HandlessForsaken } from './minion/handless-forsaken';\r\nimport { HarmlessBonehead } from './minion/harmless-bonehead';\r\nimport { HoloRover } from './minion/holo-rover';\r\nimport { HummingBird } from './minion/humming-bird';\r\nimport { HungrySnapjaw } from './minion/hungry-snapjaw';\r\nimport { HunterOfGatherers } from './minion/hunter-of-gatherers';\r\nimport { Hydralisk } from './minion/hydralisk';\r\nimport { Immortal } from './minion/immortal';\r\nimport { ImplantSubject } from './minion/implant-subject';\r\nimport { ImposingPercussionist } from './minion/imposing-percussionist';\r\nimport { ImpulsiveTrickster } from './minion/impulsive-trickster';\r\nimport { IndomitableMount } from './minion/indomitable-mount';\r\nimport { InspiringUnderdog } from './minion/inspiring-underdog';\r\nimport { InterrogatorWhitemane } from './minion/interrogator-whitemane';\r\nimport { KalecgosArcaneAspect } from './minion/kalecgos-arcane-aspect';\r\nimport { KangorsApprentice } from './minion/kangors-apprentice';\r\nimport { KarmicChameleon } from './minion/karmic-chameleon';\r\nimport { KingBagurgle } from './minion/king-bagurgle';\r\nimport { LeeroyTheReckless } from './minion/leeroy-the-reckless';\r\nimport { LightfangEnforcer } from './minion/lightfang-enforcer';\r\nimport { LovesickBalladist } from './minion/lovesick-balladist';\r\nimport { LowFlier } from './minion/low-flier';\r\nimport { Lurker } from './minion/lurker';\r\nimport { Manasaber } from './minion/manasaber';\r\nimport { MarqueeTicker } from './minion/marquee-ticker';\r\nimport { MechaJaraxxus } from './minion/mecha-jaraxxus';\r\nimport { MechanizedGiftHorse } from './minion/mechanized-gift-horse';\r\nimport { Mechorse } from './minion/mechorse';\r\nimport { MenagerieJug } from './minion/menagerie-jug';\r\nimport { MisfitDragonling } from './minion/misfit-dragonling';\r\nimport { MoonsteelJuggernaut } from './minion/moonsteel-juggernaut';\r\nimport { Mothership } from './minion/mothership';\r\nimport { Mummifier } from './minion/mummifier';\r\nimport { Murky } from './minion/murky';\r\nimport { Mutalisk } from './minion/mutalisk';\r\nimport { MutatedLasher } from './minion/mutated-lasher';\r\nimport { MythraxTheUnraveler } from './minion/mythrax';\r\nimport { NeonAgent } from './minion/neon-agent';\r\nimport { NerubianDeathswarmer } from './minion/nerubian-deathswarmer';\r\nimport { NestSwarmer } from './minion/nest-swarmer';\r\nimport { NetherDrake } from './minion/nether-drake';\r\nimport { Niuzao } from './minion/niuzao';\r\nimport { OozelingGladiator } from './minion/oozeling-gladiator';\r\nimport { OperaticBelcher } from './minion/operatic-belcher';\r\nimport { OutbackSmolderer } from './minion/outback-smolderer';\r\nimport { ParchedWanderer } from './minion/parched-wanderer';\r\nimport { PeggySturdybone } from './minion/peggy-sturdybone';\r\nimport { PrimalfinLookout } from './minion/primalfin-lookout';\r\nimport { PrizedPromoDrake } from './minion/prized-promo-drake';\r\nimport { RapscallionRecruiter } from './minion/rapscallion-recruiter';\r\nimport { RazorfenGeomancer } from './minion/razorfen-geomancer';\r\nimport { RazorgoreTheUntamed } from './minion/razorgore-the-untamed';\r\nimport { RecklessCliffdiver } from './minion/reckless-cliffdiver';\r\nimport { RipsnarlCaptain } from './minion/ripsnarl-captain';\r\nimport { Roach } from './minion/roach';\r\nimport { RodeoPerformer } from './minion/rodeo-performer';\r\nimport { RunedProgenitor } from './minion/runed-progenitor';\r\nimport { RylakMetalhead } from './minion/rylak-metalhead';\r\nimport { SaltyHog } from './minion/salty-hog';\r\nimport { SanlaynScribe } from './minion/sanlayn-scribe';\r\nimport { Scallywag } from './minion/scallywag';\r\nimport { ShellCollector } from './minion/shell-collector';\r\nimport { ShowyCyclist } from './minion/showy-cyclist';\r\nimport { SilverHandedRecruit } from './minion/silver-handed-recruit';\r\nimport { SindoreiStraightShot } from './minion/sinodorei-straight-shot';\r\nimport { SkyPirateFlagbearer } from './minion/sky-pirate-flagbearer';\r\nimport { SkyPirateFlagbearerEnchantment } from './minion/sky-pirate-flagbearer-enchantment';\r\nimport { SlyRaptor } from './minion/sly-raptor';\r\nimport { Smolderwing } from './minion/smolderwing';\r\nimport { SoulRewinder } from './minion/soul-rewinder';\r\nimport { Spacefarer } from './minion/spacefarer';\r\nimport { StitchedSalvager } from './minion/stitched-salvager';\r\nimport { Swampstriker } from './minion/swampstriker';\r\nimport { ThreeLilQuilboar } from './minion/three-lil-quilboar';\r\nimport { ThunderingAbomination } from './minion/thundering-abomination';\r\nimport { Tichondrius } from './minion/tichondrius';\r\nimport { TransmutedBramblewitch } from './minion/transmuted-bramblewitch';\r\nimport { TunnelBlaster } from './minion/tunnel-blaster';\r\nimport { TurquoiseSkitterer } from './minion/turquoise-skitterer';\r\nimport { TwilightPrimordium } from './minion/twilight-primordium';\r\nimport { Ultralisk } from './minion/ultralisk';\r\nimport { UltravioletAscendant } from './minion/ultraviolet-ascendant';\r\nimport { VoidRay } from './minion/void-ray';\r\nimport { WanderingWight } from './minion/wandering-wight';\r\nimport { WhelpSmuggler } from './minion/whelp-smuggler';\r\nimport { WildfireElemental } from './minion/wildfire-elemental';\r\nimport { WispInTheShell } from './minion/wisp-in-the-shell';\r\nimport { Zergling } from './minion/zergling';\r\n\r\nconst cards = [\r\n\tBattlecruiser,\r\n\tSharingIsCaring,\r\n\tLowFlier,\r\n\tZergling,\r\n\tHydralisk,\r\n\tBaneling,\r\n\tMutalisk,\r\n\tLurker,\r\n\tRoach,\r\n\tUltralisk,\r\n\tColossus,\r\n\tCarrier,\r\n\tImmortal,\r\n\tVoidRay,\r\n\tMothership,\r\n\tCaptainBonerender,\r\n\tGentleStag,\r\n\tBellowingTyrant,\r\n\tStitchedSalvager,\r\n\tMythraxTheUnraveler,\r\n\tWildfireElemental,\r\n\tHoloRover,\r\n\tForestRover,\r\n\tBeetle,\r\n\tBuzzingVermin,\r\n\tGemRat,\r\n\tNestSwarmer,\r\n\tRunedProgenitor,\r\n\tTurquoiseSkitterer,\r\n\tEfficientEngineer,\r\n\tNetherDrake,\r\n\tElectricSynthesizer,\r\n\tOutbackSmolderer,\r\n\tRazorgoreTheUntamed,\r\n\tUltravioletAscendant,\r\n\tTwilightPrimordium,\r\n\tGentleDjinni,\r\n\tMoonsteelJuggernaut,\r\n\tMarqueeTicker,\r\n\tRecklessCliffdiver,\r\n\tFountainChiller,\r\n\tNeonAgent,\r\n\tImplantSubject,\r\n\tHackerfin,\r\n\tBubbleGunner,\r\n\tFairyGillmother,\r\n\tShowyCyclist,\r\n\tArcaneCannoneer,\r\n\tMutatedLasher,\r\n\tGloriousGloop,\r\n\tSilverHandedRecruit,\r\n\tSaltyHog,\r\n\tSpacefarer,\r\n\tGrittyHeadhunter,\r\n\tCrystalInfuserEnchantment,\r\n\tBoarGamer,\r\n\tBannerboar,\r\n\tWanderingWight,\r\n\tDeathlyStriker,\r\n\tWispInTheShell,\r\n\tHandlessForsaken,\r\n\tHarmlessBonehead,\r\n\tCadaverCaretaker,\r\n\tHungrySnapjaw,\r\n\tNiuzao,\r\n\tBirdBuddy,\r\n\tSlyRaptor,\r\n\tManasaber,\r\n\tRylakMetalhead,\r\n\tHummingBird,\r\n\tMechanizedGiftHorse,\r\n\tMechorse,\r\n\tIndomitableMount,\r\n\tKarmicChameleon,\r\n\tGoldrinnTheGreatWolf,\r\n\tImpulsiveTrickster,\r\n\tMechaJaraxxus,\r\n\tWhelpSmuggler,\r\n\tHunterOfGatherers,\r\n\tBlazingSkyfin,\r\n\tGeneralDrakkisath,\r\n\tSmolderwing,\r\n\tMisfitDragonling,\r\n\tKalecgosArcaneAspect,\r\n\tGreaseBot,\r\n\tClunkerJunker,\r\n\tKangorsApprentice,\r\n\tDeflectoBot,\r\n\tSwampstriker,\r\n\tMurky,\r\n\tOperaticBelcher,\r\n\tParchedWanderer,\r\n\tPrimalfinLookout,\r\n\tKingBagurgle,\r\n\tShellCollector,\r\n\tTunnelBlaster,\r\n\tLeeroyTheReckless,\r\n\tInterrogatorWhitemane,\r\n\tOozelingGladiator,\r\n\tRodeoPerformer,\r\n\tAssistantGuard,\r\n\tAridAtrocity,\r\n\tInspiringUnderdog,\r\n\tLightfangEnforcer,\r\n\tDefiantShipwright,\r\n\tPeggySturdybone,\r\n\tRapscallionRecruiter,\r\n\tLovesickBalladist,\r\n\tAdmiralElizaGoreblade,\r\n\tSkyPirateFlagbearer,\r\n\tSkyPirateFlagbearerEnchantment,\r\n\tCruiseController,\r\n\tRipsnarlCaptain,\r\n\tScallywag,\r\n\tRazorfenGeomancer,\r\n\tCharlga,\r\n\tGemSmuggler,\r\n\tBongoBopper,\r\n\tThreeLilQuilboar,\r\n\tAnubarakNerubianKing,\r\n\tNerubianDeathswarmer,\r\n\tSindoreiStraightShot,\r\n\tChampionOfThePrimus,\r\n\tMummifier,\r\n\tEchoingRoar,\r\n\tMenagerieJug,\r\n\tThunderingAbomination,\r\n\tPrizedPromoDrake,\r\n\tTransmutedBramblewitch,\r\n\tImposingPercussionist,\r\n\tSoulRewinder,\r\n\tTichondrius,\r\n\tArchimonde,\r\n\tSanlaynScribe,\r\n\tBriarbackBookie,\r\n];\r\n\r\nexport const cardMappings: { [cardId: string]: Card } = {};\r\nfor (const card of cards) {\r\n\tconst cardIds = card.cardIds ?? [];\r\n\tfor (const cardId of cardIds) {\r\n\t\tcardMappings[cardId] = card;\r\n\t}\r\n}\r\n"]}
1
+ {"version":3,"file":"_card-mappings.js","sourceRoot":"","sources":["../../../src/cards/impl/_card-mappings.ts"],"names":[],"mappings":"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","sourcesContent":["import { Card } from '../card.interface';\r\nimport { SharingIsCaring } from './bg-spell/sharing-is-caring';\r\nimport { CrystalInfuserEnchantment } from './enchantments/crystal-infuser-enchantment';\r\nimport { GloriousGloop } from './hero-power/glorious-gloop';\r\nimport { AdmiralElizaGoreblade } from './minion/admiral-eliza-goreblade';\r\nimport { AnubarakNerubianKing } from './minion/anubarak-nerubian-king';\r\nimport { ArcaneCannoneer } from './minion/arcane-cannoneer';\r\nimport { Archimonde } from './minion/archimonde';\r\nimport { AridAtrocity } from './minion/arid-atrocity';\r\nimport { AssistantGuard } from './minion/assistant-guard';\r\nimport { Baneling } from './minion/baneling';\r\nimport { Bannerboar } from './minion/bannerboar';\r\nimport { Battlecruiser } from './minion/battlecruiser';\r\nimport { Beetle } from './minion/beetle';\r\nimport { BellowingTyrant } from './minion/bellowing-tyrant';\r\nimport { BirdBuddy } from './minion/bird-buddy';\r\nimport { BlazingSkyfin } from './minion/blazing-skyfin';\r\nimport { BoarGamer } from './minion/boar-gamer';\r\nimport { BongoBopper } from './minion/bongo-bopper';\r\nimport { BriarbackBookie } from './minion/briarback-bookie';\r\nimport { BubbleGunner } from './minion/bubble-gunner';\r\nimport { BuzzingVermin } from './minion/buzzing-vermin';\r\nimport { CadaverCaretaker } from './minion/cadaver-caretaker';\r\nimport { CaptainBonerender } from './minion/captain-bonerender';\r\nimport { Carrier } from './minion/carrier';\r\nimport { ChampionOfThePrimus } from './minion/champion-of-the-primus';\r\nimport { Charlga } from './minion/charlga';\r\nimport { ClunkerJunker } from './minion/clunker-junker';\r\nimport { Colossus } from './minion/colossus';\r\nimport { CruiseController } from './minion/cruise-controller';\r\nimport { Deadstomper } from './minion/deadstomper';\r\nimport { DeathlyStriker } from './minion/deathly-striker';\r\nimport { DefiantShipwright } from './minion/defiant-shipwright';\r\nimport { DeflectoBot } from './minion/deflecto-bot';\r\nimport { EchoingRoar } from './minion/echoing-roar';\r\nimport { EfficientEngineer } from './minion/efficient-engineer';\r\nimport { ElectricSynthesizer } from './minion/electric-synthesizer';\r\nimport { FairyGillmother } from './minion/fairy-gillmother';\r\nimport { FireworksFanatic } from './minion/fireworks-fanatic';\r\nimport { ForestRover } from './minion/forest-rover';\r\nimport { FountainChiller } from './minion/fountain-chiller';\r\nimport { GemRat } from './minion/gem-rat';\r\nimport { GemSmuggler } from './minion/gem-smuggler';\r\nimport { GeneralDrakkisath } from './minion/general-drakkisath';\r\nimport { GentleDjinni } from './minion/gentle-djinni';\r\nimport { GentleStag } from './minion/gentle-stag';\r\nimport { GoldrinnTheGreatWolf } from './minion/goldrinn-the-great-wolf';\r\nimport { GreaseBot } from './minion/grease-bot';\r\nimport { GrittyHeadhunter } from './minion/gritty-headhunter';\r\nimport { Hackerfin } from './minion/hackerfin';\r\nimport { HandlessForsaken } from './minion/handless-forsaken';\r\nimport { HarmlessBonehead } from './minion/harmless-bonehead';\r\nimport { HoloRover } from './minion/holo-rover';\r\nimport { HummingBird } from './minion/humming-bird';\r\nimport { HungrySnapjaw } from './minion/hungry-snapjaw';\r\nimport { HunterOfGatherers } from './minion/hunter-of-gatherers';\r\nimport { Hydralisk } from './minion/hydralisk';\r\nimport { Immortal } from './minion/immortal';\r\nimport { ImplantSubject } from './minion/implant-subject';\r\nimport { ImposingPercussionist } from './minion/imposing-percussionist';\r\nimport { ImpulsiveTrickster } from './minion/impulsive-trickster';\r\nimport { IndomitableMount } from './minion/indomitable-mount';\r\nimport { InspiringUnderdog } from './minion/inspiring-underdog';\r\nimport { InterrogatorWhitemane } from './minion/interrogator-whitemane';\r\nimport { KalecgosArcaneAspect } from './minion/kalecgos-arcane-aspect';\r\nimport { KangorsApprentice } from './minion/kangors-apprentice';\r\nimport { KarmicChameleon } from './minion/karmic-chameleon';\r\nimport { KingBagurgle } from './minion/king-bagurgle';\r\nimport { LeeroyTheReckless } from './minion/leeroy-the-reckless';\r\nimport { LightfangEnforcer } from './minion/lightfang-enforcer';\r\nimport { LovesickBalladist } from './minion/lovesick-balladist';\r\nimport { LowFlier } from './minion/low-flier';\r\nimport { Lurker } from './minion/lurker';\r\nimport { Manasaber } from './minion/manasaber';\r\nimport { MarqueeTicker } from './minion/marquee-ticker';\r\nimport { MechaJaraxxus } from './minion/mecha-jaraxxus';\r\nimport { MechanizedGiftHorse } from './minion/mechanized-gift-horse';\r\nimport { Mechorse } from './minion/mechorse';\r\nimport { MenagerieJug } from './minion/menagerie-jug';\r\nimport { MisfitDragonling } from './minion/misfit-dragonling';\r\nimport { MoonsteelJuggernaut } from './minion/moonsteel-juggernaut';\r\nimport { Mothership } from './minion/mothership';\r\nimport { Mummifier } from './minion/mummifier';\r\nimport { Murky } from './minion/murky';\r\nimport { Mutalisk } from './minion/mutalisk';\r\nimport { MutatedLasher } from './minion/mutated-lasher';\r\nimport { MythraxTheUnraveler } from './minion/mythrax';\r\nimport { NeonAgent } from './minion/neon-agent';\r\nimport { NerubianDeathswarmer } from './minion/nerubian-deathswarmer';\r\nimport { NestSwarmer } from './minion/nest-swarmer';\r\nimport { NetherDrake } from './minion/nether-drake';\r\nimport { Niuzao } from './minion/niuzao';\r\nimport { OozelingGladiator } from './minion/oozeling-gladiator';\r\nimport { OperaticBelcher } from './minion/operatic-belcher';\r\nimport { OutbackSmolderer } from './minion/outback-smolderer';\r\nimport { ParchedWanderer } from './minion/parched-wanderer';\r\nimport { PeggySturdybone } from './minion/peggy-sturdybone';\r\nimport { PrimalfinLookout } from './minion/primalfin-lookout';\r\nimport { PrizedPromoDrake } from './minion/prized-promo-drake';\r\nimport { RapscallionRecruiter } from './minion/rapscallion-recruiter';\r\nimport { RazorfenGeomancer } from './minion/razorfen-geomancer';\r\nimport { RazorgoreTheUntamed } from './minion/razorgore-the-untamed';\r\nimport { RecklessCliffdiver } from './minion/reckless-cliffdiver';\r\nimport { RipsnarlCaptain } from './minion/ripsnarl-captain';\r\nimport { Roach } from './minion/roach';\r\nimport { RodeoPerformer } from './minion/rodeo-performer';\r\nimport { RunedProgenitor } from './minion/runed-progenitor';\r\nimport { RylakMetalhead } from './minion/rylak-metalhead';\r\nimport { SaltyHog } from './minion/salty-hog';\r\nimport { SanlaynScribe } from './minion/sanlayn-scribe';\r\nimport { Scallywag } from './minion/scallywag';\r\nimport { ShellCollector } from './minion/shell-collector';\r\nimport { ShowyCyclist } from './minion/showy-cyclist';\r\nimport { SilverHandedRecruit } from './minion/silver-handed-recruit';\r\nimport { SindoreiStraightShot } from './minion/sinodorei-straight-shot';\r\nimport { SkyPirateFlagbearer } from './minion/sky-pirate-flagbearer';\r\nimport { SkyPirateFlagbearerEnchantment } from './minion/sky-pirate-flagbearer-enchantment';\r\nimport { SlyRaptor } from './minion/sly-raptor';\r\nimport { Smolderwing } from './minion/smolderwing';\r\nimport { SoulRewinder } from './minion/soul-rewinder';\r\nimport { Spacefarer } from './minion/spacefarer';\r\nimport { StitchedSalvager } from './minion/stitched-salvager';\r\nimport { Swampstriker } from './minion/swampstriker';\r\nimport { ThreeLilQuilboar } from './minion/three-lil-quilboar';\r\nimport { ThunderingAbomination } from './minion/thundering-abomination';\r\nimport { Tichondrius } from './minion/tichondrius';\r\nimport { TransmutedBramblewitch } from './minion/transmuted-bramblewitch';\r\nimport { TunnelBlaster } from './minion/tunnel-blaster';\r\nimport { TurquoiseSkitterer } from './minion/turquoise-skitterer';\r\nimport { TwilightPrimordium } from './minion/twilight-primordium';\r\nimport { Ultralisk } from './minion/ultralisk';\r\nimport { UltravioletAscendant } from './minion/ultraviolet-ascendant';\r\nimport { VoidRay } from './minion/void-ray';\r\nimport { WanderingWight } from './minion/wandering-wight';\r\nimport { WhelpSmuggler } from './minion/whelp-smuggler';\r\nimport { WildfireElemental } from './minion/wildfire-elemental';\r\nimport { WispInTheShell } from './minion/wisp-in-the-shell';\r\nimport { Zergling } from './minion/zergling';\r\nimport { ArmOfTheEmpire } from './trinket/arm-of-the-empire';\r\n\r\nconst cards = [\r\n\tFireworksFanatic,\r\n\tDeadstomper,\r\n\tArmOfTheEmpire,\r\n\tBattlecruiser,\r\n\tSharingIsCaring,\r\n\tLowFlier,\r\n\tZergling,\r\n\tHydralisk,\r\n\tBaneling,\r\n\tMutalisk,\r\n\tLurker,\r\n\tRoach,\r\n\tUltralisk,\r\n\tColossus,\r\n\tCarrier,\r\n\tImmortal,\r\n\tVoidRay,\r\n\tMothership,\r\n\tCaptainBonerender,\r\n\tGentleStag,\r\n\tBellowingTyrant,\r\n\tStitchedSalvager,\r\n\tMythraxTheUnraveler,\r\n\tWildfireElemental,\r\n\tHoloRover,\r\n\tForestRover,\r\n\tBeetle,\r\n\tBuzzingVermin,\r\n\tGemRat,\r\n\tNestSwarmer,\r\n\tRunedProgenitor,\r\n\tTurquoiseSkitterer,\r\n\tEfficientEngineer,\r\n\tNetherDrake,\r\n\tElectricSynthesizer,\r\n\tOutbackSmolderer,\r\n\tRazorgoreTheUntamed,\r\n\tUltravioletAscendant,\r\n\tTwilightPrimordium,\r\n\tGentleDjinni,\r\n\tMoonsteelJuggernaut,\r\n\tMarqueeTicker,\r\n\tRecklessCliffdiver,\r\n\tFountainChiller,\r\n\tNeonAgent,\r\n\tImplantSubject,\r\n\tHackerfin,\r\n\tBubbleGunner,\r\n\tFairyGillmother,\r\n\tShowyCyclist,\r\n\tArcaneCannoneer,\r\n\tMutatedLasher,\r\n\tGloriousGloop,\r\n\tSilverHandedRecruit,\r\n\tSaltyHog,\r\n\tSpacefarer,\r\n\tGrittyHeadhunter,\r\n\tCrystalInfuserEnchantment,\r\n\tBoarGamer,\r\n\tBannerboar,\r\n\tWanderingWight,\r\n\tDeathlyStriker,\r\n\tWispInTheShell,\r\n\tHandlessForsaken,\r\n\tHarmlessBonehead,\r\n\tCadaverCaretaker,\r\n\tHungrySnapjaw,\r\n\tNiuzao,\r\n\tBirdBuddy,\r\n\tSlyRaptor,\r\n\tManasaber,\r\n\tRylakMetalhead,\r\n\tHummingBird,\r\n\tMechanizedGiftHorse,\r\n\tMechorse,\r\n\tIndomitableMount,\r\n\tKarmicChameleon,\r\n\tGoldrinnTheGreatWolf,\r\n\tImpulsiveTrickster,\r\n\tMechaJaraxxus,\r\n\tWhelpSmuggler,\r\n\tHunterOfGatherers,\r\n\tBlazingSkyfin,\r\n\tGeneralDrakkisath,\r\n\tSmolderwing,\r\n\tMisfitDragonling,\r\n\tKalecgosArcaneAspect,\r\n\tGreaseBot,\r\n\tClunkerJunker,\r\n\tKangorsApprentice,\r\n\tDeflectoBot,\r\n\tSwampstriker,\r\n\tMurky,\r\n\tOperaticBelcher,\r\n\tParchedWanderer,\r\n\tPrimalfinLookout,\r\n\tKingBagurgle,\r\n\tShellCollector,\r\n\tTunnelBlaster,\r\n\tLeeroyTheReckless,\r\n\tInterrogatorWhitemane,\r\n\tOozelingGladiator,\r\n\tRodeoPerformer,\r\n\tAssistantGuard,\r\n\tAridAtrocity,\r\n\tInspiringUnderdog,\r\n\tLightfangEnforcer,\r\n\tDefiantShipwright,\r\n\tPeggySturdybone,\r\n\tRapscallionRecruiter,\r\n\tLovesickBalladist,\r\n\tAdmiralElizaGoreblade,\r\n\tSkyPirateFlagbearer,\r\n\tSkyPirateFlagbearerEnchantment,\r\n\tCruiseController,\r\n\tRipsnarlCaptain,\r\n\tScallywag,\r\n\tRazorfenGeomancer,\r\n\tCharlga,\r\n\tGemSmuggler,\r\n\tBongoBopper,\r\n\tThreeLilQuilboar,\r\n\tAnubarakNerubianKing,\r\n\tNerubianDeathswarmer,\r\n\tSindoreiStraightShot,\r\n\tChampionOfThePrimus,\r\n\tMummifier,\r\n\tEchoingRoar,\r\n\tMenagerieJug,\r\n\tThunderingAbomination,\r\n\tPrizedPromoDrake,\r\n\tTransmutedBramblewitch,\r\n\tImposingPercussionist,\r\n\tSoulRewinder,\r\n\tTichondrius,\r\n\tArchimonde,\r\n\tSanlaynScribe,\r\n\tBriarbackBookie,\r\n];\r\n\r\nexport const cardMappings: { [cardId: string]: Card } = {};\r\nfor (const card of cards) {\r\n\tconst cardIds = card.cardIds ?? [];\r\n\tfor (const cardId of cardIds) {\r\n\t\tcardMappings[cardId] = card;\r\n\t}\r\n}\r\n"]}
@@ -36,20 +36,20 @@ exports.Battlecruiser = {
36
36
  },
37
37
  rebornEffect: (minion, input) => {
38
38
  var _a;
39
- const ultraCapacitors = [...((_a = input.initialEntity.enchantments) !== null && _a !== void 0 ? _a : [])]
39
+ const ultraCapacitors = [...((_a = input.rebornEntity.enchantments) !== null && _a !== void 0 ? _a : [])]
40
40
  .filter((e) => e.cardId === "BG31_HERO_801ptje");
41
41
  if (!(ultraCapacitors === null || ultraCapacitors === void 0 ? void 0 : ultraCapacitors.length)) {
42
42
  return;
43
43
  }
44
- minion.enchantments = input.initialEntity.enchantments;
45
- minion.attack = input.initialEntity.maxAttack;
46
- minion.maxAttack = input.initialEntity.maxAttack;
47
- minion.health = input.initialEntity.maxHealth;
48
- minion.maxHealth = input.initialEntity.maxHealth;
49
- minion.divineShield = input.initialEntity.hadDivineShield;
50
- minion.taunt = input.initialEntity.taunt;
51
- minion.windfury = input.initialEntity.windfury;
52
- minion.poisonous = input.initialEntity.poisonous;
44
+ minion.enchantments = input.rebornEntity.enchantments;
45
+ minion.attack = input.rebornEntity.maxAttack;
46
+ minion.maxAttack = input.rebornEntity.maxAttack;
47
+ minion.health = input.rebornEntity.maxHealth;
48
+ minion.maxHealth = input.rebornEntity.maxHealth;
49
+ minion.divineShield = input.rebornEntity.hadDivineShield;
50
+ minion.taunt = input.rebornEntity.taunt;
51
+ minion.windfury = input.rebornEntity.windfury;
52
+ minion.poisonous = input.rebornEntity.poisonous;
53
53
  },
54
54
  onAnyMinionAttack: (minion, input) => {
55
55
  var _a;
@@ -1 +1 @@
1
- {"version":3,"file":"battlecruiser.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/battlecruiser.ts"],"names":[],"mappings":"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","sourcesContent":["import { CardIds, GameTag } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { dealDamageToMinion } from '../../../simulation/attack';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { RebornEffectInput } from '../../../simulation/reborn';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { getRandomMinionWithHighestHealth } from '../../../utils';\r\nimport { DeathrattleEffectCard, OnAttackCard, RebornEffectCard, StartOfCombatCard } from '../../card.interface';\r\n\r\nexport const Battlecruiser: StartOfCombatCard & RebornEffectCard & OnAttackCard & DeathrattleEffectCard = {\r\n\tcardIds: [CardIds.LiftOff_BattlecruiserToken_BG31_HERO_801pt, CardIds.Battlecruiser_BG31_HERO_801pt_G],\r\n\tstartOfCombat: (minion: BoardEntity, input: SoCInput) => {\r\n\t\t// Enchantments can appear multiple times???\r\n\t\tconst yamatoCannons = [...(minion.enchantments ?? [])]\r\n\t\t\t// .reverse()\r\n\t\t\t.filter((e) => e.cardId === CardIds.YamatoCannon_YamatoCannonEnchantment_BG31_HERO_801ptce);\r\n\t\tif (!yamatoCannons?.length) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\t// Still not sure how these should be processed\r\n\t\t// In some cases, it feels like it takes the sum of the damage, in other cases it runs them one after the other\r\n\t\t// (but maybe that's just the replay aggregating the values)\r\n\t\t// I'm not sure about the BACON_YAMATO_CANNON tag; it seems like it indicates multiple cannons, but I'm not sure\r\n\t\t// Other issues: looks like that if there are multiple cannon enchantments but no divine shield, everything is applied to the same target\r\n\t\t// So it looks as if the target is selected first, then everything targets it\r\n\t\t// https://replays.firestoneapp.com/?reviewId=e8f38ab0-3380-4275-88d8-0715d69d3f08&turn=21&action=1\r\n\t\t// Even more than that: the target is the same between multiple battlecruisers\r\n\t\t// https://replays.firestoneapp.com/?reviewId=cbfd6fe9-1a58-400a-a593-6b8852df5427&turn=9&action=0\r\n\t\t// However I'm pretty sure I've seen another behavior\r\n\t\t// Get the highest health opponent minion at the start of the phase\r\n\t\tconst aliveEntities = input.opponentBoard\r\n\t\t\t.filter((entity) => entity.health > 0 && !entity.definitelyDead)\r\n\t\t\t.map((e) => e.entityId);\r\n\t\tconst targetEntityId = getRandomMinionWithHighestHealth(\r\n\t\t\tinput.opponentBoardBefore.filter((e) => aliveEntities.includes(e.entityId)),\r\n\t\t)?.entityId;\r\n\t\t// const numberOfCannons = yamatoCannons.length;\r\n\t\tconst cannonDamage = Math.max(...yamatoCannons.map((e) => e.tagScriptDataNum1));\r\n\t\tfor (const yamatoCannon of yamatoCannons) {\r\n\t\t\t// const damage = yamatoCannon.tagScriptDataNum1;\r\n\t\t\t// Could this simply be tagScriptDataNum2 on the battlecruiser?\r\n\t\t\t// I don't understand how this relates to the number enchants in the cruiser itself\r\n\t\t\tconst loops = minion.tags?.[GameTag.BACON_YAMATO_CANNON] === 1 ? 2 : 1;\r\n\t\t\tfor (let i = 0; i < loops; i++) {\r\n\t\t\t\tlet target = input.opponentBoard.find((entity) => entity.entityId === targetEntityId);\r\n\t\t\t\tif (!target || target.health <= 0 || target.definitelyDead) {\r\n\t\t\t\t\ttarget = getRandomMinionWithHighestHealth(input.opponentBoard);\r\n\t\t\t\t}\r\n\t\t\t\tif (!!target) {\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\ttarget,\r\n\t\t\t\t\t\tinput.opponentBoard,\r\n\t\t\t\t\t\tinput.playerEntity,\r\n\t\t\t\t\t\tinput.opponentEntity,\r\n\t\t\t\t\t);\r\n\t\t\t\t\tdealDamageToMinion(\r\n\t\t\t\t\t\ttarget,\r\n\t\t\t\t\t\tinput.opponentBoard,\r\n\t\t\t\t\t\tinput.opponentEntity,\r\n\t\t\t\t\t\tminion,\r\n\t\t\t\t\t\tcannonDamage,\r\n\t\t\t\t\t\tinput.playerBoard,\r\n\t\t\t\t\t\tinput.playerEntity,\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 true;\r\n\t},\r\n\trebornEffect: (minion: BoardEntity, input: RebornEffectInput) => {\r\n\t\tconst ultraCapacitors = [...(input.initialEntity.enchantments ?? [])]\r\n\t\t\t// .reverse()\r\n\t\t\t.filter((e) => e.cardId === CardIds.UltraCapacitor_UltraCapacitorEnchantment_BG31_HERO_801ptje);\r\n\t\tif (!ultraCapacitors?.length) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tminion.enchantments = input.initialEntity.enchantments;\r\n\t\tminion.attack = input.initialEntity.maxAttack;\r\n\t\tminion.maxAttack = input.initialEntity.maxAttack;\r\n\t\tminion.health = input.initialEntity.maxHealth;\r\n\t\tminion.maxHealth = input.initialEntity.maxHealth;\r\n\t\tminion.divineShield = input.initialEntity.hadDivineShield;\r\n\t\tminion.taunt = input.initialEntity.taunt;\r\n\t\tminion.windfury = input.initialEntity.windfury;\r\n\t\tminion.poisonous = input.initialEntity.poisonous;\r\n\t},\r\n\tonAnyMinionAttack: (\r\n\t\tminion: BoardEntity,\r\n\t\tinput: OnAttackInput,\r\n\t): {\r\n\t\tdmgDoneByAttacker: number;\r\n\t\tdmgDoneByDefender: number;\r\n\t} => {\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 advancedBallistics = [...(minion.enchantments ?? [])]\r\n\t\t\t// .reverse()\r\n\t\t\t.filter((e) => e.cardId === CardIds.AdvancedBallistics_AdvancedBallisticsEnchantment_BG31_HERO_801ptde);\r\n\t\tif (!advancedBallistics?.length) {\r\n\t\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t\t}\r\n\r\n\t\tconst buff = advancedBallistics.map((e) => e.tagScriptDataNum1 ?? 0).reduce((a, b) => a + b, 0);\r\n\t\tconst targets = input.attackingBoard.filter((entity) => entity !== minion);\r\n\t\tfor (const target of targets) {\r\n\t\t\tmodifyStats(target, buff, 0, input.attackingBoard, input.attackingHero, input.gameState);\r\n\t\t}\r\n\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t},\r\n\tdeathrattleEffect: (minion: BoardEntity, input: DeathrattleTriggeredInput) => {\r\n\t\tconst caduceusReactors = [...(minion.enchantments ?? [])]\r\n\t\t\t// .reverse()\r\n\t\t\t.filter((e) => e.cardId === CardIds.CaduceusReactor_CaduceusReactorEnchantment_BG31_HERO_801ptee);\r\n\t\tif (!caduceusReactors?.length) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst target = input.boardWithDeadEntity.filter((e) => e.health > 0 && !e.definitelyDead)[0];\r\n\t\tif (!target) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst buff = caduceusReactors.map((e) => e.tagScriptDataNum1 ?? 0).reduce((a, b) => a + b, 0);\r\n\t\tmodifyStats(target, buff, buff, input.boardWithDeadEntity, input.boardWithDeadEntityHero, input.gameState);\r\n\t\tinput.gameState.spectator.registerPowerTarget(\r\n\t\t\tminion,\r\n\t\t\ttarget,\r\n\t\t\tinput.boardWithDeadEntity,\r\n\t\t\tinput.boardWithDeadEntityHero,\r\n\t\t\tinput.otherBoardHero,\r\n\t\t);\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"battlecruiser.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/battlecruiser.ts"],"names":[],"mappings":"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","sourcesContent":["import { CardIds, GameTag } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { dealDamageToMinion } from '../../../simulation/attack';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { RebornEffectInput } from '../../../simulation/reborn';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { getRandomMinionWithHighestHealth } from '../../../utils';\r\nimport { DeathrattleEffectCard, OnAttackCard, RebornEffectCard, StartOfCombatCard } from '../../card.interface';\r\n\r\nexport const Battlecruiser: StartOfCombatCard & RebornEffectCard & OnAttackCard & DeathrattleEffectCard = {\r\n\tcardIds: [CardIds.LiftOff_BattlecruiserToken_BG31_HERO_801pt, CardIds.Battlecruiser_BG31_HERO_801pt_G],\r\n\tstartOfCombat: (minion: BoardEntity, input: SoCInput) => {\r\n\t\t// Enchantments can appear multiple times???\r\n\t\tconst yamatoCannons = [...(minion.enchantments ?? [])]\r\n\t\t\t// .reverse()\r\n\t\t\t.filter((e) => e.cardId === CardIds.YamatoCannon_YamatoCannonEnchantment_BG31_HERO_801ptce);\r\n\t\tif (!yamatoCannons?.length) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\t// Still not sure how these should be processed\r\n\t\t// In some cases, it feels like it takes the sum of the damage, in other cases it runs them one after the other\r\n\t\t// (but maybe that's just the replay aggregating the values)\r\n\t\t// I'm not sure about the BACON_YAMATO_CANNON tag; it seems like it indicates multiple cannons, but I'm not sure\r\n\t\t// Other issues: looks like that if there are multiple cannon enchantments but no divine shield, everything is applied to the same target\r\n\t\t// So it looks as if the target is selected first, then everything targets it\r\n\t\t// https://replays.firestoneapp.com/?reviewId=e8f38ab0-3380-4275-88d8-0715d69d3f08&turn=21&action=1\r\n\t\t// Even more than that: the target is the same between multiple battlecruisers\r\n\t\t// https://replays.firestoneapp.com/?reviewId=cbfd6fe9-1a58-400a-a593-6b8852df5427&turn=9&action=0\r\n\t\t// However I'm pretty sure I've seen another behavior\r\n\t\t// Get the highest health opponent minion at the start of the phase\r\n\t\tconst aliveEntities = input.opponentBoard\r\n\t\t\t.filter((entity) => entity.health > 0 && !entity.definitelyDead)\r\n\t\t\t.map((e) => e.entityId);\r\n\t\tconst targetEntityId = getRandomMinionWithHighestHealth(\r\n\t\t\tinput.opponentBoardBefore.filter((e) => aliveEntities.includes(e.entityId)),\r\n\t\t)?.entityId;\r\n\t\t// const numberOfCannons = yamatoCannons.length;\r\n\t\tconst cannonDamage = Math.max(...yamatoCannons.map((e) => e.tagScriptDataNum1));\r\n\t\tfor (const yamatoCannon of yamatoCannons) {\r\n\t\t\t// const damage = yamatoCannon.tagScriptDataNum1;\r\n\t\t\t// Could this simply be tagScriptDataNum2 on the battlecruiser?\r\n\t\t\t// I don't understand how this relates to the number enchants in the cruiser itself\r\n\t\t\tconst loops = minion.tags?.[GameTag.BACON_YAMATO_CANNON] === 1 ? 2 : 1;\r\n\t\t\tfor (let i = 0; i < loops; i++) {\r\n\t\t\t\tlet target = input.opponentBoard.find((entity) => entity.entityId === targetEntityId);\r\n\t\t\t\tif (!target || target.health <= 0 || target.definitelyDead) {\r\n\t\t\t\t\ttarget = getRandomMinionWithHighestHealth(input.opponentBoard);\r\n\t\t\t\t}\r\n\t\t\t\tif (!!target) {\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\ttarget,\r\n\t\t\t\t\t\tinput.opponentBoard,\r\n\t\t\t\t\t\tinput.playerEntity,\r\n\t\t\t\t\t\tinput.opponentEntity,\r\n\t\t\t\t\t);\r\n\t\t\t\t\tdealDamageToMinion(\r\n\t\t\t\t\t\ttarget,\r\n\t\t\t\t\t\tinput.opponentBoard,\r\n\t\t\t\t\t\tinput.opponentEntity,\r\n\t\t\t\t\t\tminion,\r\n\t\t\t\t\t\tcannonDamage,\r\n\t\t\t\t\t\tinput.playerBoard,\r\n\t\t\t\t\t\tinput.playerEntity,\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 true;\r\n\t},\r\n\trebornEffect: (minion: BoardEntity, input: RebornEffectInput) => {\r\n\t\tconst ultraCapacitors = [...(input.rebornEntity.enchantments ?? [])]\r\n\t\t\t// .reverse()\r\n\t\t\t.filter((e) => e.cardId === CardIds.UltraCapacitor_UltraCapacitorEnchantment_BG31_HERO_801ptje);\r\n\t\tif (!ultraCapacitors?.length) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tminion.enchantments = input.rebornEntity.enchantments;\r\n\t\tminion.attack = input.rebornEntity.maxAttack;\r\n\t\tminion.maxAttack = input.rebornEntity.maxAttack;\r\n\t\tminion.health = input.rebornEntity.maxHealth;\r\n\t\tminion.maxHealth = input.rebornEntity.maxHealth;\r\n\t\tminion.divineShield = input.rebornEntity.hadDivineShield;\r\n\t\tminion.taunt = input.rebornEntity.taunt;\r\n\t\tminion.windfury = input.rebornEntity.windfury;\r\n\t\tminion.poisonous = input.rebornEntity.poisonous;\r\n\t},\r\n\tonAnyMinionAttack: (\r\n\t\tminion: BoardEntity,\r\n\t\tinput: OnAttackInput,\r\n\t): {\r\n\t\tdmgDoneByAttacker: number;\r\n\t\tdmgDoneByDefender: number;\r\n\t} => {\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 advancedBallistics = [...(minion.enchantments ?? [])]\r\n\t\t\t// .reverse()\r\n\t\t\t.filter((e) => e.cardId === CardIds.AdvancedBallistics_AdvancedBallisticsEnchantment_BG31_HERO_801ptde);\r\n\t\tif (!advancedBallistics?.length) {\r\n\t\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t\t}\r\n\r\n\t\tconst buff = advancedBallistics.map((e) => e.tagScriptDataNum1 ?? 0).reduce((a, b) => a + b, 0);\r\n\t\tconst targets = input.attackingBoard.filter((entity) => entity !== minion);\r\n\t\tfor (const target of targets) {\r\n\t\t\tmodifyStats(target, buff, 0, input.attackingBoard, input.attackingHero, input.gameState);\r\n\t\t}\r\n\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t},\r\n\tdeathrattleEffect: (minion: BoardEntity, input: DeathrattleTriggeredInput) => {\r\n\t\tconst caduceusReactors = [...(minion.enchantments ?? [])]\r\n\t\t\t// .reverse()\r\n\t\t\t.filter((e) => e.cardId === CardIds.CaduceusReactor_CaduceusReactorEnchantment_BG31_HERO_801ptee);\r\n\t\tif (!caduceusReactors?.length) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst target = input.boardWithDeadEntity.filter((e) => e.health > 0 && !e.definitelyDead)[0];\r\n\t\tif (!target) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst buff = caduceusReactors.map((e) => e.tagScriptDataNum1 ?? 0).reduce((a, b) => a + b, 0);\r\n\t\tmodifyStats(target, buff, buff, input.boardWithDeadEntity, input.boardWithDeadEntityHero, input.gameState);\r\n\t\tinput.gameState.spectator.registerPowerTarget(\r\n\t\t\tminion,\r\n\t\t\ttarget,\r\n\t\t\tinput.boardWithDeadEntity,\r\n\t\t\tinput.boardWithDeadEntityHero,\r\n\t\t\tinput.otherBoardHero,\r\n\t\t);\r\n\t},\r\n};\r\n"]}
@@ -16,13 +16,16 @@ exports.Carrier = {
16
16
  otherBoard: input.otherBoard,
17
17
  otherBoardHero: input.otherHero,
18
18
  };
19
+ const singleStatBuff = minion.cardId === "BG31_HERO_802pt1_G" ? 6 : 3;
19
20
  const statBuff = (_a = minion.scriptDataNum1) !== null && _a !== void 0 ? _a : 0;
20
- const numberOfSummons = minion.cardId === "BG31_HERO_802pt1_G" ? 2 : 1;
21
- const spawned = (0, deathrattle_spawns_1.simplifiedSpawnEntities)("BG31_HERO_802pt1t", numberOfSummons, spawnInput);
21
+ const cardId = minion.cardId === "BG31_HERO_802pt1_G"
22
+ ? "BG31_HERO_802pt1t_G"
23
+ : "BG31_HERO_802pt1t";
24
+ const spawned = (0, deathrattle_spawns_1.simplifiedSpawnEntities)(cardId, 1, spawnInput);
22
25
  spawned.forEach((e) => {
23
26
  (0, stats_1.modifyStats)(e, statBuff, statBuff, input.board, input.hero, input.gameState);
24
27
  });
25
- minion.scriptDataNum1 = statBuff + 3;
28
+ minion.scriptDataNum1 = statBuff + singleStatBuff;
26
29
  return spawned;
27
30
  },
28
31
  };
@@ -1 +1 @@
1
- {"version":3,"file":"carrier.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/carrier.ts"],"names":[],"mappings":";;;AAIA,+EAAiF;AACjF,qDAAwD;AAG3C,QAAA,OAAO,GAAe;IAClC,OAAO,EAAE,0CAAoF;IAC7F,eAAe,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC;IACtC,MAAM,EAAE,CAAC,MAAmB,EAAE,KAAkB,EAA0B,EAAE;;QAC3E,MAAM,UAAU,GAA8B;YAC7C,mBAAmB,EAAE,KAAK,CAAC,KAAK;YAChC,uBAAuB,EAAE,KAAK,CAAC,IAAI;YACnC,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,UAAU,EAAE,MAAM;YAClB,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,cAAc,EAAE,KAAK,CAAC,SAAS;SAC/B,CAAC;QACF,MAAM,QAAQ,GAAG,MAAA,MAAM,CAAC,cAAc,mCAAI,CAAC,CAAC;QAC5C,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,yBAAuC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrF,MAAM,OAAO,GAAG,IAAA,4CAAuB,uBAEtC,eAAe,EACf,UAAU,CACV,CAAC;QACF,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACrB,IAAA,mBAAW,EAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QAC9E,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,cAAc,GAAG,QAAQ,GAAG,CAAC,CAAC;QACrC,OAAO,OAAO,CAAC;IAChB,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { AvengeInput } from '../../../simulation/avenge';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { simplifiedSpawnEntities } from '../../../simulation/deathrattle-spawns';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { AvengeCard } from '../../card.interface';\r\n\r\nexport const Carrier: AvengeCard = {\r\n\tcardIds: [CardIds.WarpGate_CarrierToken_BG31_HERO_802pt1, CardIds.Carrier_BG31_HERO_802pt1_G],\r\n\tbaseAvengeValue: (cardId: string) => 4,\r\n\tavenge: (minion: BoardEntity, input: AvengeInput): readonly BoardEntity[] => {\r\n\t\tconst spawnInput: DeathrattleTriggeredInput = {\r\n\t\t\tboardWithDeadEntity: input.board,\r\n\t\t\tboardWithDeadEntityHero: input.hero,\r\n\t\t\tgameState: input.gameState,\r\n\t\t\tdeadEntity: minion, // weird\r\n\t\t\totherBoard: input.otherBoard,\r\n\t\t\totherBoardHero: input.otherHero,\r\n\t\t};\r\n\t\tconst statBuff = minion.scriptDataNum1 ?? 0;\r\n\t\tconst numberOfSummons = minion.cardId === CardIds.Carrier_BG31_HERO_802pt1_G ? 2 : 1;\r\n\t\tconst spawned = simplifiedSpawnEntities(\r\n\t\t\tCardIds.Carrier_InterceptorToken_BG31_HERO_802pt1t,\r\n\t\t\tnumberOfSummons,\r\n\t\t\tspawnInput,\r\n\t\t);\r\n\t\tspawned.forEach((e) => {\r\n\t\t\tmodifyStats(e, statBuff, statBuff, input.board, input.hero, input.gameState);\r\n\t\t});\r\n\t\tminion.scriptDataNum1 = statBuff + 3;\r\n\t\treturn spawned;\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"carrier.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/carrier.ts"],"names":[],"mappings":";;;AAIA,+EAAiF;AACjF,qDAAwD;AAG3C,QAAA,OAAO,GAAe;IAClC,OAAO,EAAE,0CAAoF;IAC7F,eAAe,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC;IACtC,MAAM,EAAE,CAAC,MAAmB,EAAE,KAAkB,EAA0B,EAAE;;QAC3E,MAAM,UAAU,GAA8B;YAC7C,mBAAmB,EAAE,KAAK,CAAC,KAAK;YAChC,uBAAuB,EAAE,KAAK,CAAC,IAAI;YACnC,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,UAAU,EAAE,MAAM;YAClB,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,cAAc,EAAE,KAAK,CAAC,SAAS;SAC/B,CAAC;QACF,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,yBAAuC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpF,MAAM,QAAQ,GAAG,MAAA,MAAM,CAAC,cAAc,mCAAI,CAAC,CAAC;QAC5C,MAAM,MAAM,GACX,MAAM,CAAC,MAAM,yBAAuC;YACnD,CAAC;YACD,CAAC,oBAAmD,CAAC;QACvD,MAAM,OAAO,GAAG,IAAA,4CAAuB,EAAC,MAAM,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;QAC/D,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACrB,IAAA,mBAAW,EAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QAC9E,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,cAAc,GAAG,QAAQ,GAAG,cAAc,CAAC;QAClD,OAAO,OAAO,CAAC;IAChB,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { AvengeInput } from '../../../simulation/avenge';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { simplifiedSpawnEntities } from '../../../simulation/deathrattle-spawns';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { AvengeCard } from '../../card.interface';\r\n\r\nexport const Carrier: AvengeCard = {\r\n\tcardIds: [CardIds.WarpGate_CarrierToken_BG31_HERO_802pt1, CardIds.Carrier_BG31_HERO_802pt1_G],\r\n\tbaseAvengeValue: (cardId: string) => 4,\r\n\tavenge: (minion: BoardEntity, input: AvengeInput): readonly BoardEntity[] => {\r\n\t\tconst spawnInput: DeathrattleTriggeredInput = {\r\n\t\t\tboardWithDeadEntity: input.board,\r\n\t\t\tboardWithDeadEntityHero: input.hero,\r\n\t\t\tgameState: input.gameState,\r\n\t\t\tdeadEntity: minion, // weird\r\n\t\t\totherBoard: input.otherBoard,\r\n\t\t\totherBoardHero: input.otherHero,\r\n\t\t};\r\n\t\tconst singleStatBuff = minion.cardId === CardIds.Carrier_BG31_HERO_802pt1_G ? 6 : 3;\r\n\t\tconst statBuff = minion.scriptDataNum1 ?? 0;\r\n\t\tconst cardId =\r\n\t\t\tminion.cardId === CardIds.Carrier_BG31_HERO_802pt1_G\r\n\t\t\t\t? CardIds.Interceptor_BG31_HERO_802pt1t_G\r\n\t\t\t\t: CardIds.Carrier_InterceptorToken_BG31_HERO_802pt1t;\r\n\t\tconst spawned = simplifiedSpawnEntities(cardId, 1, spawnInput);\r\n\t\tspawned.forEach((e) => {\r\n\t\t\tmodifyStats(e, statBuff, statBuff, input.board, input.hero, input.gameState);\r\n\t\t});\r\n\t\tminion.scriptDataNum1 = statBuff + singleStatBuff;\r\n\t\treturn spawned;\r\n\t},\r\n};\r\n"]}
@@ -5,7 +5,7 @@ const reference_data_1 = require("@firestone-hs/reference-data");
5
5
  const utils_1 = require("../../../utils");
6
6
  exports.ChampionOfThePrimus = {
7
7
  cardIds: ["BG27_029", "BG27_029_G"],
8
- baseAvengeValue: (cardId) => 2,
8
+ baseAvengeValue: (cardId) => 3,
9
9
  avenge: (minion, input) => {
10
10
  const championPrimusStat = minion.cardId === "BG27_029_G" ? 2 : 1;
11
11
  input.hero.globalInfo.UndeadAttackBonus += championPrimusStat;
@@ -1 +1 @@
1
- {"version":3,"file":"champion-of-the-primus.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/champion-of-the-primus.ts"],"names":[],"mappings":";;;AAAA,iEAA6D;AAG7D,0CAAiD;AAGpC,QAAA,mBAAmB,GAAe;IAC9C,OAAO,EAAE,0BAA8E;IACvF,eAAe,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC;IACtC,MAAM,EAAE,CAAC,MAAmB,EAAE,KAAkB,EAAE,EAAE;QACnD,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,iBAA2C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5F,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,iBAAiB,IAAI,kBAAkB,CAAC;QAC9D,IAAA,uBAAe,EAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,kBAAkB,EAAE,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,qBAAI,CAAC,qBAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7G,CAAC;CACD,CAAC","sourcesContent":["import { CardIds, Race } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { AvengeInput } from '../../../simulation/avenge';\r\nimport { addStatsToBoard } from '../../../utils';\r\nimport { AvengeCard } from '../../card.interface';\r\n\r\nexport const ChampionOfThePrimus: AvengeCard = {\r\n\tcardIds: [CardIds.ChampionOfThePrimus_BG27_029, CardIds.ChampionOfThePrimus_BG27_029_G],\r\n\tbaseAvengeValue: (cardId: string) => 2,\r\n\tavenge: (minion: BoardEntity, input: AvengeInput) => {\r\n\t\tconst championPrimusStat = minion.cardId === CardIds.ChampionOfThePrimus_BG27_029_G ? 2 : 1;\r\n\t\tinput.hero.globalInfo.UndeadAttackBonus += championPrimusStat;\r\n\t\taddStatsToBoard(minion, input.board, input.hero, championPrimusStat, 0, input.gameState, Race[Race.UNDEAD]);\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"champion-of-the-primus.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/champion-of-the-primus.ts"],"names":[],"mappings":";;;AAAA,iEAA6D;AAG7D,0CAAiD;AAGpC,QAAA,mBAAmB,GAAe;IAC9C,OAAO,EAAE,0BAA8E;IACvF,eAAe,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC;IACtC,MAAM,EAAE,CAAC,MAAmB,EAAE,KAAkB,EAAE,EAAE;QACnD,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,iBAA2C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5F,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,iBAAiB,IAAI,kBAAkB,CAAC;QAC9D,IAAA,uBAAe,EAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,kBAAkB,EAAE,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,qBAAI,CAAC,qBAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7G,CAAC;CACD,CAAC","sourcesContent":["import { CardIds, Race } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { AvengeInput } from '../../../simulation/avenge';\r\nimport { addStatsToBoard } from '../../../utils';\r\nimport { AvengeCard } from '../../card.interface';\r\n\r\nexport const ChampionOfThePrimus: AvengeCard = {\r\n\tcardIds: [CardIds.ChampionOfThePrimus_BG27_029, CardIds.ChampionOfThePrimus_BG27_029_G],\r\n\tbaseAvengeValue: (cardId: string) => 3,\r\n\tavenge: (minion: BoardEntity, input: AvengeInput) => {\r\n\t\tconst championPrimusStat = minion.cardId === CardIds.ChampionOfThePrimus_BG27_029_G ? 2 : 1;\r\n\t\tinput.hero.globalInfo.UndeadAttackBonus += championPrimusStat;\r\n\t\taddStatsToBoard(minion, input.board, input.hero, championPrimusStat, 0, input.gameState, Race[Race.UNDEAD]);\r\n\t},\r\n};\r\n"]}
@@ -0,0 +1,2 @@
1
+ import { AfterOtherSpawnedCard } from '../../card.interface';
2
+ export declare const Deadstomper: AfterOtherSpawnedCard;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Deadstomper = void 0;
4
+ const stats_1 = require("../../../simulation/stats");
5
+ exports.Deadstomper = {
6
+ cardIds: ["BG28_634", "BG28_634_G"],
7
+ afterOtherSpawned: (minion, input) => {
8
+ if (minion.entityId !== input.spawned.entityId) {
9
+ const mult = minion.cardId === "BG28_634_G" ? 2 : 1;
10
+ input.board.forEach((e) => {
11
+ (0, stats_1.modifyStats)(e, 4 * mult, 0, input.board, input.hero, input.gameState);
12
+ input.gameState.spectator.registerPowerTarget(minion, e, input.board, null, null);
13
+ });
14
+ }
15
+ },
16
+ };
17
+ //# sourceMappingURL=deadstomper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deadstomper.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/deadstomper.ts"],"names":[],"mappings":";;;AAGA,qDAAwD;AAG3C,QAAA,WAAW,GAA0B;IACjD,OAAO,EAAE,0BAA8D;IACvE,iBAAiB,EAAE,CAAC,MAAmB,EAAE,KAA4B,EAAE,EAAE;QACxE,IAAI,MAAM,CAAC,QAAQ,KAAK,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE;YAC/C,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAmC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACtE,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBACzB,IAAA,mBAAW,EAAC,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;gBACtE,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YACnF,CAAC,CAAC,CAAC;SACH;IACF,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { OnOtherSpawnAuraInput } from '../../../simulation/add-minion-to-board';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { AfterOtherSpawnedCard } from '../../card.interface';\r\n\r\nexport const Deadstomper: AfterOtherSpawnedCard = {\r\n\tcardIds: [CardIds.Deadstomper_BG28_634, CardIds.Deadstomper_BG28_634_G],\r\n\tafterOtherSpawned: (minion: BoardEntity, input: OnOtherSpawnAuraInput) => {\r\n\t\tif (minion.entityId !== input.spawned.entityId) {\r\n\t\t\tconst mult = minion.cardId === CardIds.Deadstomper_BG28_634_G ? 2 : 1;\r\n\t\t\tinput.board.forEach((e) => {\r\n\t\t\t\tmodifyStats(e, 4 * mult, 0, input.board, input.hero, input.gameState);\r\n\t\t\t\tinput.gameState.spectator.registerPowerTarget(minion, e, input.board, null, null);\r\n\t\t\t});\r\n\t\t}\r\n\t},\r\n};\r\n"]}
@@ -0,0 +1,2 @@
1
+ import { OnCardAddedToHandCard } from '../../card.interface';
2
+ export declare const FireworksFanatic: OnCardAddedToHandCard;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FireworksFanatic = void 0;
4
+ const reference_data_1 = require("@firestone-hs/reference-data");
5
+ const utils_1 = require("../../../utils");
6
+ exports.FireworksFanatic = {
7
+ cardIds: ["BG25_922", "BG25_922_G"],
8
+ onCardAddedToHand: (entity, input) => {
9
+ var _a, _b, _c;
10
+ if (((_a = input.addedCard) === null || _a === void 0 ? void 0 : _a.cardId) == null) {
11
+ return;
12
+ }
13
+ const refCard = input.gameState.allCards.getCard(input.addedCard.cardId);
14
+ if (((_b = refCard === null || refCard === void 0 ? void 0 : refCard.type) === null || _b === void 0 ? void 0 : _b.toUpperCase()) !== reference_data_1.CardType[reference_data_1.CardType.MINION]) {
15
+ return;
16
+ }
17
+ const doWeAlreadyHaveThisCard = input.board.some((e) => e.cardId === input.addedCard.cardId) ||
18
+ ((_c = input.hero.hand) === null || _c === void 0 ? void 0 : _c.some((e) => e.cardId === input.addedCard.cardId));
19
+ if (doWeAlreadyHaveThisCard) {
20
+ const mult = entity.cardId === "BG25_922_G" ? 2 : 1;
21
+ (0, utils_1.addStatsToBoard)(entity, input.board, input.hero, 1 * mult, 1 * mult, input.gameState);
22
+ }
23
+ },
24
+ };
25
+ //# sourceMappingURL=fireworks-fanatic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fireworks-fanatic.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/fireworks-fanatic.ts"],"names":[],"mappings":";;;AAAA,iEAAiE;AAGjE,0CAAiD;AAGpC,QAAA,gBAAgB,GAA0B;IACtD,OAAO,EAAE,0BAAwE;IACjF,iBAAiB,EAAE,CAAC,MAAmB,EAAE,KAA6B,EAAE,EAAE;;QACzE,IAAI,CAAA,MAAA,KAAK,CAAC,SAAS,0CAAE,MAAM,KAAI,IAAI,EAAE;YACpC,OAAO;SACP;QACD,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACzE,IAAI,CAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,0CAAE,WAAW,EAAE,MAAK,yBAAQ,CAAC,yBAAQ,CAAC,MAAM,CAAC,EAAE;YAC/D,OAAO;SACP;QACD,MAAM,uBAAuB,GAC5B,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC;aAC5D,MAAA,KAAK,CAAC,IAAI,CAAC,IAAI,0CAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA,CAAC;QACnE,IAAI,uBAAuB,EAAE;YAC5B,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAwC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3E,IAAA,uBAAe,EAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SACtF;IACF,CAAC;CACD,CAAC","sourcesContent":["import { CardIds, CardType } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { OnCardAddedToHandInput } from '../../../simulation/cards-in-hand';\r\nimport { addStatsToBoard } from '../../../utils';\r\nimport { OnCardAddedToHandCard } from '../../card.interface';\r\n\r\nexport const FireworksFanatic: OnCardAddedToHandCard = {\r\n\tcardIds: [CardIds.FireworksFanatic_BG25_922, CardIds.FireworksFanatic_BG25_922_G],\r\n\tonCardAddedToHand: (entity: BoardEntity, input: OnCardAddedToHandInput) => {\r\n\t\tif (input.addedCard?.cardId == null) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst refCard = input.gameState.allCards.getCard(input.addedCard.cardId);\r\n\t\tif (refCard?.type?.toUpperCase() !== CardType[CardType.MINION]) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst doWeAlreadyHaveThisCard =\r\n\t\t\tinput.board.some((e) => e.cardId === input.addedCard.cardId) ||\r\n\t\t\tinput.hero.hand?.some((e) => e.cardId === input.addedCard.cardId);\r\n\t\tif (doWeAlreadyHaveThisCard) {\r\n\t\t\tconst mult = entity.cardId === CardIds.FireworksFanatic_BG25_922_G ? 2 : 1;\r\n\t\t\taddStatsToBoard(entity, input.board, input.hero, 1 * mult, 1 * mult, input.gameState);\r\n\t\t}\r\n\t},\r\n};\r\n"]}
@@ -1,2 +1,2 @@
1
- import { OnDivineShieldUpdatedCard, OnRebornUpdatedCard, OnStealthUpdatedCard, OnTauntUpdatedCard, OnVenomousUpdatedCard, OnWindfuryUpdatedCard } from '../../card.interface';
2
- export declare const ImplantSubject: OnTauntUpdatedCard & OnDivineShieldUpdatedCard & OnVenomousUpdatedCard & OnWindfuryUpdatedCard & OnStealthUpdatedCard & OnRebornUpdatedCard;
1
+ import { OnDivineShieldUpdatedCard, OnRebornUpdatedCard, OnStealthUpdatedCard, OnTauntUpdatedCard, OnVenomousUpdatedCard, OnWindfuryUpdatedCard, RebornEffectCard } from '../../card.interface';
2
+ export declare const ImplantSubject: OnTauntUpdatedCard & OnDivineShieldUpdatedCard & OnVenomousUpdatedCard & OnWindfuryUpdatedCard & OnStealthUpdatedCard & RebornEffectCard & OnRebornUpdatedCard;
@@ -19,6 +19,9 @@ exports.ImplantSubject = {
19
19
  updateEntity(entity, input.board, input.hero, input.gameState);
20
20
  }
21
21
  },
22
+ rebornEffect: (entity, input) => {
23
+ updateEntity(entity, input.boardWithKilledMinion, input.boardWithKilledMinionHero, input.gameState);
24
+ },
22
25
  onStealthUpdated: (entity, impactedEntity, previousValue, input) => {
23
26
  if (previousValue && !impactedEntity.stealth) {
24
27
  updateEntity(entity, input.board, input.hero, input.gameState);
@@ -1 +1 @@
1
- {"version":3,"file":"implant-subject.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/implant-subject.ts"],"names":[],"mappings":";;;AAOA,qDAAwD;AAU3C,QAAA,cAAc,GAKJ;IACtB,OAAO,EAAE,0BAAoE;IAC7E,cAAc,EAAE,CACf,MAAmB,EACnB,cAA2B,EAC3B,aAAsB,EACtB,KAA0B,EACzB,EAAE;QACH,IAAI,aAAa,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE;YAC3C,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SAC/D;IACF,CAAC;IACD,qBAAqB,EAAE,CAAC,MAAmB,EAAE,KAAiC,EAAE,EAAE;QACjF,IAAI,KAAK,CAAC,aAAa,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,EAAE;YACtD,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SAC/D;IACF,CAAC;IACD,eAAe,EAAE,CAChB,MAAmB,EACnB,cAA2B,EAC3B,aAAsB,EACtB,KAA2B,EAC1B,EAAE;QACH,IAAI,aAAa,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE;YAC5C,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SAC/D;IACF,CAAC;IACD,gBAAgB,EAAE,CACjB,MAAmB,EACnB,cAA2B,EAC3B,aAAsB,EACtB,KAA2B,EAC1B,EAAE;QACH,IAAI,aAAa,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;YAC7C,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SAC/D;IACF,CAAC;IACD,iBAAiB,EAAE,CAClB,MAAmB,EACnB,cAA2B,EAC3B,aAAsB,EACtB,KAA2B,EAC1B,EAAE;QACH,IAAI,aAAa,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE;YAC9C,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SAC/D;IACF,CAAC;IACD,iBAAiB,EAAE,CAClB,MAAmB,EACnB,cAA2B,EAC3B,aAAsB,EACtB,KAA2B,EAC1B,EAAE;QACH,IAAI,aAAa,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE;YAC9C,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SAC/D;IACF,CAAC;CACD,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,MAAmB,EAAE,KAAoB,EAAE,IAAqB,EAAE,SAAwB,EAAE,EAAE;IACnH,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAsC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzE,IAAA,mBAAW,EAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;AACjE,CAAC,CAAC","sourcesContent":["import { CardIds } from '@firestone-hs/reference-data';\r\nimport { BgsPlayerEntity } from '../../../bgs-player-entity';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { OnDivineShieldUpdatedInput } from '../../../keywords/divine-shield';\r\nimport { OnRebornUpdatedInput } from '../../../keywords/reborn';\r\nimport { OnTauntUpdatedInput } from '../../../keywords/taunt';\r\nimport { FullGameState } from '../../../simulation/internal-game-state';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport {\r\n\tOnDivineShieldUpdatedCard,\r\n\tOnRebornUpdatedCard,\r\n\tOnStealthUpdatedCard,\r\n\tOnTauntUpdatedCard,\r\n\tOnVenomousUpdatedCard,\r\n\tOnWindfuryUpdatedCard,\r\n} from '../../card.interface';\r\n\r\nexport const ImplantSubject: OnTauntUpdatedCard &\r\n\tOnDivineShieldUpdatedCard &\r\n\tOnVenomousUpdatedCard &\r\n\tOnWindfuryUpdatedCard &\r\n\tOnStealthUpdatedCard &\r\n\tOnRebornUpdatedCard = {\r\n\tcardIds: [CardIds.ImplantSubject_BG31_147, CardIds.ImplantSubject_BG31_147_G],\r\n\tonTauntUpdated: (\r\n\t\tentity: BoardEntity,\r\n\t\timpactedEntity: BoardEntity,\r\n\t\tpreviousValue: boolean,\r\n\t\tinput: OnTauntUpdatedInput,\r\n\t) => {\r\n\t\tif (previousValue && !impactedEntity.taunt) {\r\n\t\t\tupdateEntity(entity, input.board, input.hero, input.gameState);\r\n\t\t}\r\n\t},\r\n\tonDivineShieldUpdated: (entity: BoardEntity, input: OnDivineShieldUpdatedInput) => {\r\n\t\tif (input.previousValue && !input.target.divineShield) {\r\n\t\t\tupdateEntity(entity, input.board, input.hero, input.gameState);\r\n\t\t}\r\n\t},\r\n\tonRebornUpdated: (\r\n\t\tentity: BoardEntity,\r\n\t\timpactedEntity: BoardEntity,\r\n\t\tpreviousValue: boolean,\r\n\t\tinput: OnRebornUpdatedInput,\r\n\t) => {\r\n\t\tif (previousValue && !impactedEntity.reborn) {\r\n\t\t\tupdateEntity(entity, input.board, input.hero, input.gameState);\r\n\t\t}\r\n\t},\r\n\tonStealthUpdated: (\r\n\t\tentity: BoardEntity,\r\n\t\timpactedEntity: BoardEntity,\r\n\t\tpreviousValue: boolean,\r\n\t\tinput: OnRebornUpdatedInput,\r\n\t) => {\r\n\t\tif (previousValue && !impactedEntity.stealth) {\r\n\t\t\tupdateEntity(entity, input.board, input.hero, input.gameState);\r\n\t\t}\r\n\t},\r\n\tonVenomousUpdated: (\r\n\t\tentity: BoardEntity,\r\n\t\timpactedEntity: BoardEntity,\r\n\t\tpreviousValue: boolean,\r\n\t\tinput: OnRebornUpdatedInput,\r\n\t) => {\r\n\t\tif (previousValue && !impactedEntity.venomous) {\r\n\t\t\tupdateEntity(entity, input.board, input.hero, input.gameState);\r\n\t\t}\r\n\t},\r\n\tonWindfuryUpdated: (\r\n\t\tentity: BoardEntity,\r\n\t\timpactedEntity: BoardEntity,\r\n\t\tpreviousValue: boolean,\r\n\t\tinput: OnRebornUpdatedInput,\r\n\t) => {\r\n\t\tif (previousValue && !impactedEntity.windfury) {\r\n\t\t\tupdateEntity(entity, input.board, input.hero, input.gameState);\r\n\t\t}\r\n\t},\r\n};\r\n\r\nconst updateEntity = (entity: BoardEntity, board: BoardEntity[], hero: BgsPlayerEntity, gameState: FullGameState) => {\r\n\tconst mult = entity.cardId === CardIds.ImplantSubject_BG31_147_G ? 2 : 1;\r\n\tmodifyStats(entity, 1 * mult, 1 * mult, board, hero, gameState);\r\n};\r\n"]}
1
+ {"version":3,"file":"implant-subject.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/implant-subject.ts"],"names":[],"mappings":";;;AAQA,qDAAwD;AAW3C,QAAA,cAAc,GAMJ;IACtB,OAAO,EAAE,0BAAoE;IAC7E,cAAc,EAAE,CACf,MAAmB,EACnB,cAA2B,EAC3B,aAAsB,EACtB,KAA0B,EACzB,EAAE;QACH,IAAI,aAAa,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE;YAC3C,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SAC/D;IACF,CAAC;IACD,qBAAqB,EAAE,CAAC,MAAmB,EAAE,KAAiC,EAAE,EAAE;QACjF,IAAI,KAAK,CAAC,aAAa,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,EAAE;YACtD,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SAC/D;IACF,CAAC;IACD,eAAe,EAAE,CAChB,MAAmB,EACnB,cAA2B,EAC3B,aAAsB,EACtB,KAA2B,EAC1B,EAAE;QACH,IAAI,aAAa,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE;YAC5C,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SAC/D;IACF,CAAC;IACD,YAAY,EAAE,CAAC,MAAmB,EAAE,KAAwB,EAAE,EAAE;QAC/D,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,qBAAqB,EAAE,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACrG,CAAC;IACD,gBAAgB,EAAE,CACjB,MAAmB,EACnB,cAA2B,EAC3B,aAAsB,EACtB,KAA2B,EAC1B,EAAE;QACH,IAAI,aAAa,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;YAC7C,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SAC/D;IACF,CAAC;IACD,iBAAiB,EAAE,CAClB,MAAmB,EACnB,cAA2B,EAC3B,aAAsB,EACtB,KAA2B,EAC1B,EAAE;QACH,IAAI,aAAa,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE;YAC9C,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SAC/D;IACF,CAAC;IACD,iBAAiB,EAAE,CAClB,MAAmB,EACnB,cAA2B,EAC3B,aAAsB,EACtB,KAA2B,EAC1B,EAAE;QACH,IAAI,aAAa,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE;YAC9C,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SAC/D;IACF,CAAC;CACD,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,MAAmB,EAAE,KAAoB,EAAE,IAAqB,EAAE,SAAwB,EAAE,EAAE;IACnH,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAsC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzE,IAAA,mBAAW,EAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;AACjE,CAAC,CAAC","sourcesContent":["import { CardIds } from '@firestone-hs/reference-data';\r\nimport { BgsPlayerEntity } from '../../../bgs-player-entity';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { OnDivineShieldUpdatedInput } from '../../../keywords/divine-shield';\r\nimport { OnRebornUpdatedInput } from '../../../keywords/reborn';\r\nimport { OnTauntUpdatedInput } from '../../../keywords/taunt';\r\nimport { FullGameState } from '../../../simulation/internal-game-state';\r\nimport { RebornEffectInput } from '../../../simulation/reborn';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport {\r\n\tOnDivineShieldUpdatedCard,\r\n\tOnRebornUpdatedCard,\r\n\tOnStealthUpdatedCard,\r\n\tOnTauntUpdatedCard,\r\n\tOnVenomousUpdatedCard,\r\n\tOnWindfuryUpdatedCard,\r\n\tRebornEffectCard,\r\n} from '../../card.interface';\r\n\r\nexport const ImplantSubject: OnTauntUpdatedCard &\r\n\tOnDivineShieldUpdatedCard &\r\n\tOnVenomousUpdatedCard &\r\n\tOnWindfuryUpdatedCard &\r\n\tOnStealthUpdatedCard &\r\n\tRebornEffectCard &\r\n\tOnRebornUpdatedCard = {\r\n\tcardIds: [CardIds.ImplantSubject_BG31_147, CardIds.ImplantSubject_BG31_147_G],\r\n\tonTauntUpdated: (\r\n\t\tentity: BoardEntity,\r\n\t\timpactedEntity: BoardEntity,\r\n\t\tpreviousValue: boolean,\r\n\t\tinput: OnTauntUpdatedInput,\r\n\t) => {\r\n\t\tif (previousValue && !impactedEntity.taunt) {\r\n\t\t\tupdateEntity(entity, input.board, input.hero, input.gameState);\r\n\t\t}\r\n\t},\r\n\tonDivineShieldUpdated: (entity: BoardEntity, input: OnDivineShieldUpdatedInput) => {\r\n\t\tif (input.previousValue && !input.target.divineShield) {\r\n\t\t\tupdateEntity(entity, input.board, input.hero, input.gameState);\r\n\t\t}\r\n\t},\r\n\tonRebornUpdated: (\r\n\t\tentity: BoardEntity,\r\n\t\timpactedEntity: BoardEntity,\r\n\t\tpreviousValue: boolean,\r\n\t\tinput: OnRebornUpdatedInput,\r\n\t) => {\r\n\t\tif (previousValue && !impactedEntity.reborn) {\r\n\t\t\tupdateEntity(entity, input.board, input.hero, input.gameState);\r\n\t\t}\r\n\t},\r\n\trebornEffect: (entity: BoardEntity, input: RebornEffectInput) => {\r\n\t\tupdateEntity(entity, input.boardWithKilledMinion, input.boardWithKilledMinionHero, input.gameState);\r\n\t},\r\n\tonStealthUpdated: (\r\n\t\tentity: BoardEntity,\r\n\t\timpactedEntity: BoardEntity,\r\n\t\tpreviousValue: boolean,\r\n\t\tinput: OnRebornUpdatedInput,\r\n\t) => {\r\n\t\tif (previousValue && !impactedEntity.stealth) {\r\n\t\t\tupdateEntity(entity, input.board, input.hero, input.gameState);\r\n\t\t}\r\n\t},\r\n\tonVenomousUpdated: (\r\n\t\tentity: BoardEntity,\r\n\t\timpactedEntity: BoardEntity,\r\n\t\tpreviousValue: boolean,\r\n\t\tinput: OnRebornUpdatedInput,\r\n\t) => {\r\n\t\tif (previousValue && !impactedEntity.venomous) {\r\n\t\t\tupdateEntity(entity, input.board, input.hero, input.gameState);\r\n\t\t}\r\n\t},\r\n\tonWindfuryUpdated: (\r\n\t\tentity: BoardEntity,\r\n\t\timpactedEntity: BoardEntity,\r\n\t\tpreviousValue: boolean,\r\n\t\tinput: OnRebornUpdatedInput,\r\n\t) => {\r\n\t\tif (previousValue && !impactedEntity.windfury) {\r\n\t\t\tupdateEntity(entity, input.board, input.hero, input.gameState);\r\n\t\t}\r\n\t},\r\n};\r\n\r\nconst updateEntity = (entity: BoardEntity, board: BoardEntity[], hero: BgsPlayerEntity, gameState: FullGameState) => {\r\n\tconst mult = entity.cardId === CardIds.ImplantSubject_BG31_147_G ? 2 : 1;\r\n\tmodifyStats(entity, 1 * mult, 1 * mult, board, hero, gameState);\r\n};\r\n"]}
@@ -4,7 +4,7 @@ exports.Lurker = void 0;
4
4
  const stats_1 = require("../../../simulation/stats");
5
5
  exports.Lurker = {
6
6
  cardIds: ["BG31_HERO_811t7", "BG31_HERO_811t7_G"],
7
- baseAvengeValue: (cardId) => 2,
7
+ baseAvengeValue: (cardId) => 1,
8
8
  avenge: (minion, input) => {
9
9
  const mult = minion.cardId === "BG31_HERO_811t7_G" ? 2 : 1;
10
10
  (0, stats_1.modifyStats)(minion, 1 * mult, 1 * mult, input.board, input.hero, input.gameState);
@@ -1 +1 @@
1
- {"version":3,"file":"lurker.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/lurker.ts"],"names":[],"mappings":";;;AAGA,qDAAwD;AAG3C,QAAA,MAAM,GAAe;IACjC,OAAO,EAAE,wCAA6F;IACtG,eAAe,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC;IACtC,MAAM,EAAE,CAAC,MAAmB,EAAE,KAAkB,EAAQ,EAAE;QACzD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,wBAAqC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxE,IAAA,mBAAW,EAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACnF,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { AvengeInput } from '../../../simulation/avenge';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { AvengeCard } from '../../card.interface';\r\n\r\nexport const Lurker: AvengeCard = {\r\n\tcardIds: [CardIds.KerriganQueenOfBlades_LurkerToken_BG31_HERO_811t7, CardIds.Lurker_BG31_HERO_811t7_G],\r\n\tbaseAvengeValue: (cardId: string) => 2,\r\n\tavenge: (minion: BoardEntity, input: AvengeInput): void => {\r\n\t\tconst mult = minion.cardId === CardIds.Lurker_BG31_HERO_811t7_G ? 2 : 1;\r\n\t\tmodifyStats(minion, 1 * mult, 1 * mult, input.board, input.hero, input.gameState);\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"lurker.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/lurker.ts"],"names":[],"mappings":";;;AAGA,qDAAwD;AAG3C,QAAA,MAAM,GAAe;IACjC,OAAO,EAAE,wCAA6F;IACtG,eAAe,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC;IACtC,MAAM,EAAE,CAAC,MAAmB,EAAE,KAAkB,EAAQ,EAAE;QACzD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,wBAAqC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxE,IAAA,mBAAW,EAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACnF,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { AvengeInput } from '../../../simulation/avenge';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { AvengeCard } from '../../card.interface';\r\n\r\nexport const Lurker: AvengeCard = {\r\n\tcardIds: [CardIds.KerriganQueenOfBlades_LurkerToken_BG31_HERO_811t7, CardIds.Lurker_BG31_HERO_811t7_G],\r\n\tbaseAvengeValue: (cardId: string) => 1,\r\n\tavenge: (minion: BoardEntity, input: AvengeInput): void => {\r\n\t\tconst mult = minion.cardId === CardIds.Lurker_BG31_HERO_811t7_G ? 2 : 1;\r\n\t\tmodifyStats(minion, 1 * mult, 1 * mult, input.board, input.hero, input.gameState);\r\n\t},\r\n};\r\n"]}
@@ -5,11 +5,8 @@ const stats_1 = require("../../../simulation/stats");
5
5
  exports.Mutalisk = {
6
6
  cardIds: ["BG31_HERO_811t6", "BG31_HERO_811t6_G"],
7
7
  onMinionKilled: (minion, input) => {
8
- if (input.gameState.sharedState.currentAttackerEntityId !== minion.entityId) {
9
- return { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };
10
- }
11
8
  const mult = minion.cardId === "BG31_HERO_811t6_G" ? 2 : 1;
12
- (0, stats_1.modifyStats)(minion, 4 * mult, 4 * mult, input.attackingBoard, input.attackingHero, input.gameState);
9
+ (0, stats_1.modifyStats)(minion, 1 * mult, 0, input.attackingBoard, input.attackingHero, input.gameState);
13
10
  return { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };
14
11
  },
15
12
  };
@@ -1 +1 @@
1
- {"version":3,"file":"mutalisk.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/mutalisk.ts"],"names":[],"mappings":";;;AAGA,qDAAwD;AAG3C,QAAA,QAAQ,GAAuB;IAC3C,OAAO,EAAE,wCAAiG;IAC1G,cAAc,EAAE,CACf,MAAmB,EACnB,KAA0B,EACiC,EAAE;QAC7D,IAAI,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,uBAAuB,KAAK,MAAM,CAAC,QAAQ,EAAE;YAC5E,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;SACtD;QAED,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,wBAAuC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1E,IAAA,mBAAW,EAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QACpG,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 { OnMinionKilledInput } from '../../../simulation/attack';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { OnMinionKilledCard } from '../../card.interface';\r\n\r\nexport const Mutalisk: OnMinionKilledCard = {\r\n\tcardIds: [CardIds.KerriganQueenOfBlades_MutaliskToken_BG31_HERO_811t6, CardIds.Mutalisk_BG31_HERO_811t6_G],\r\n\tonMinionKilled: (\r\n\t\tminion: BoardEntity,\r\n\t\tinput: OnMinionKilledInput,\r\n\t): { dmgDoneByAttacker: number; dmgDoneByDefender: number } => {\r\n\t\tif (input.gameState.sharedState.currentAttackerEntityId !== minion.entityId) {\r\n\t\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t\t}\r\n\r\n\t\tconst mult = minion.cardId === CardIds.Mutalisk_BG31_HERO_811t6_G ? 2 : 1;\r\n\t\tmodifyStats(minion, 4 * mult, 4 * 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":"mutalisk.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/mutalisk.ts"],"names":[],"mappings":";;;AAGA,qDAAwD;AAG3C,QAAA,QAAQ,GAAuB;IAC3C,OAAO,EAAE,wCAAiG;IAC1G,cAAc,EAAE,CACf,MAAmB,EACnB,KAA0B,EACiC,EAAE;QAC7D,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,wBAAuC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1E,IAAA,mBAAW,EAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QAC7F,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IAOvD,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { OnMinionKilledInput } from '../../../simulation/attack';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { OnMinionKilledCard } from '../../card.interface';\r\n\r\nexport const Mutalisk: OnMinionKilledCard = {\r\n\tcardIds: [CardIds.KerriganQueenOfBlades_MutaliskToken_BG31_HERO_811t6, CardIds.Mutalisk_BG31_HERO_811t6_G],\r\n\tonMinionKilled: (\r\n\t\tminion: BoardEntity,\r\n\t\tinput: OnMinionKilledInput,\r\n\t): { dmgDoneByAttacker: number; dmgDoneByDefender: number } => {\r\n\t\tconst mult = minion.cardId === CardIds.Mutalisk_BG31_HERO_811t6_G ? 2 : 1;\r\n\t\tmodifyStats(minion, 1 * mult, 0, input.attackingBoard, input.attackingHero, input.gameState);\r\n\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t\t// if (input.gameState.sharedState.currentAttackerEntityId !== minion.entityId) {\r\n\t\t// \treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t\t// }\r\n\r\n\t\t// modifyStats(minion, 4 * mult, 4 * mult, input.attackingBoard, input.attackingHero, input.gameState);\r\n\t\t// return { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t},\r\n};\r\n"]}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SanlaynScribe = void 0;
4
4
  const stats_1 = require("../../../simulation/stats");
5
+ const utils_1 = require("../../../utils");
5
6
  exports.SanlaynScribe = {
6
7
  cardIds: ["BGDUO31_208", "BGDUO31_208_G"],
7
8
  onSpawned: (minion, input) => {
@@ -11,6 +12,25 @@ exports.SanlaynScribe = {
11
12
  },
12
13
  onDeath: (minion, input) => {
13
14
  input.hero.globalInfo.SanlaynScribesDeadThisGame = input.hero.globalInfo.SanlaynScribesDeadThisGame + 1;
15
+ input.board
16
+ .filter((entity) => entity.cardId === "BGDUO31_208" ||
17
+ entity.cardId === "BGDUO31_208_G")
18
+ .forEach((entity) => {
19
+ const mult = entity.cardId === "BGDUO31_208" ? 1 : 2;
20
+ (0, stats_1.modifyStats)(entity, 4 * mult, 4 * mult, input.board, input.hero, input.gameState);
21
+ });
22
+ (0, utils_1.getTeamInitialStates)(input.gameState.gameState, input.hero).forEach((team) => {
23
+ team.board
24
+ .filter((entity) => entity.cardId === "BGDUO31_208" ||
25
+ entity.cardId === "BGDUO31_208_G")
26
+ .forEach((entity) => {
27
+ const mult = entity.cardId === "BGDUO31_208" ? 1 : 2;
28
+ entity.attack += 4 * mult;
29
+ entity.health += 4 * mult;
30
+ entity.maxHealth += 4 * mult;
31
+ entity.maxAttack += 4 * mult;
32
+ });
33
+ });
14
34
  },
15
35
  };
16
36
  //# sourceMappingURL=sanlayn-scribe.js.map