@firestone-hs/simulate-bgs-battle 1.1.224 → 1.1.225

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.
@@ -46,19 +46,20 @@ const setMissingMinionsAura = (board) => {
46
46
  setMissingAura(board, "TB_BaconUps_008", "TB_BaconUps_008e", 4, 0);
47
47
  setMissingAura(board, "BG21_039", "BG21_039e", 2, 0);
48
48
  setMissingAura(board, "BG21_039_G", "BG21_039_Ge", 4, 0);
49
- setMissingAura(board, "TB_BaconShop_HERO_52_Buddy", "TB_BaconShop_HERO_52_Buddy_e", 3, 0);
50
- setMissingAura(board, "TB_BaconShop_HERO_52_Buddy_G", "TB_BaconShop_HERO_52_Buddy_G_e", 6, 0);
51
- setMissingAura(board, "BG25_043", "BG25_901e", 10, 0);
52
- setMissingAura(board, "BG25_043_G", "BG25_901e2", 20, 0);
49
+ setMissingAura(board, "TB_BaconShop_HERO_52_Buddy", "TB_BaconShop_HERO_52_Buddy_e", 3, 0, false);
50
+ setMissingAura(board, "TB_BaconShop_HERO_52_Buddy_G", "TB_BaconShop_HERO_52_Buddy_G_e", 6, 0, false);
51
+ setMissingAura(board, "BG25_043", "BG25_901e", 10, 0, false);
52
+ setMissingAura(board, "BG25_043_G", "BG25_901e2", 20, 0, false);
53
53
  };
54
- const setMissingAura = (board, minionCardId, enchantmentCardId, attack, health) => {
55
- const numberOfBuffs = board.filter((e) => e.cardId === minionCardId).length;
56
- if (numberOfBuffs > 0) {
54
+ const setMissingAura = (board, minionCardId, enchantmentCardId, attack, health, ignoreSelf = true) => {
55
+ const buffers = board.filter((e) => e.cardId === minionCardId);
56
+ for (const buffer of buffers) {
57
57
  board
58
58
  .filter((e) => !e.enchantments.find((ench) => ench.cardId === enchantmentCardId))
59
+ .filter((e) => (ignoreSelf ? e.entityId !== buffer.entityId : true))
59
60
  .forEach((e) => {
60
- e.attack += numberOfBuffs * attack;
61
- e.health += numberOfBuffs * health;
61
+ e.attack += attack;
62
+ e.health += health;
62
63
  });
63
64
  }
64
65
  };
@@ -1 +1 @@
1
- {"version":3,"file":"auras.js","sourceRoot":"","sources":["../../src/simulation/auras.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/no-use-before-define */\r\nimport { CardIds } from '@firestone-hs/reference-data';\r\nimport { BgsPlayerEntity } from 'src/bgs-player-entity';\r\nimport { BoardEntity } from '../board-entity';\r\nimport { CardsData } from '../cards/cards-data';\r\nimport { normalizeCardIdForSkin } from '../utils';\r\n\r\nexport const setMissingAuras = (board: BoardEntity[], boardHero: BgsPlayerEntity, otherHero: BgsPlayerEntity): void => {\r\n\tsetMissingMinionsAura(board);\r\n\tsetMissingHeroPowerAura(board, boardHero, otherHero);\r\n};\r\n\r\nexport const setMissingHeroPowerAura = (board: BoardEntity[], boardHero: BgsPlayerEntity, otherHero: BgsPlayerEntity): void => {\r\n\tif (boardHero.heroPowerId === CardIds.AllWillBurnBattlegrounds || otherHero.heroPowerId === CardIds.AllWillBurnBattlegrounds) {\r\n\t\tconst bonus =\r\n\t\t\t(boardHero.heroPowerId === CardIds.AllWillBurnBattlegrounds ? 3 : 0) +\r\n\t\t\t(otherHero.heroPowerId === CardIds.AllWillBurnBattlegrounds ? 3 : 0);\r\n\t\tboard\r\n\t\t\t.filter((e) => !e.enchantments.find((ench) => ench.cardId === CardIds.AllWillBurn_AllWillBurnEnchantmentBattlegrounds))\r\n\t\t\t.forEach((e) => {\r\n\t\t\t\te.attack += bonus;\r\n\t\t\t});\r\n\t}\r\n\tif (boardHero.heroPowerId === CardIds.TheSmokingGun) {\r\n\t\tboard\r\n\t\t\t.filter((e) => !e.enchantments.find((ench) => ench.cardId === CardIds.TheSmokingGun_ArmedAndStillSmokingEnchantment))\r\n\t\t\t.forEach((e) => {\r\n\t\t\t\te.attack += 5;\r\n\t\t\t});\r\n\t}\r\n\tif (boardHero.heroPowerId === CardIds.VolatileVenom) {\r\n\t\tboard\r\n\t\t\t.filter((e) => !e.enchantments.find((ench) => ench.cardId === CardIds.VolatileVenom_VolatileEnchantment))\r\n\t\t\t.forEach((e) => {\r\n\t\t\t\te.attack += 7;\r\n\t\t\t\te.health += 7;\r\n\t\t\t\te.enchantments.push({\r\n\t\t\t\t\tcardId: CardIds.VolatileVenom_VolatileEnchantment,\r\n\t\t\t\t\toriginEntityId: undefined,\r\n\t\t\t\t\ttiming: 0,\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t}\r\n};\r\n\r\nconst setMissingMinionsAura = (board: BoardEntity[]): void => {\r\n\tsetMissingAura(board, CardIds.SouthseaCaptainLegacy_BG_NEW1_027, CardIds.SouthseaCaptain_YarrrLegacyEnchantment, 1, 1);\r\n\tsetMissingAura(board, CardIds.SouthseaCaptainLegacyBattlegrounds, CardIds.SouthseaCaptain_YarrrEnchantmentBattlegrounds, 2, 2);\r\n\tsetMissingAura(board, CardIds.MurlocWarleaderLegacy_BG_EX1_507, CardIds.MurlocWarleader_MrgglaarglLegacyEnchantment, 2, 0);\r\n\tsetMissingAura(board, CardIds.MurlocWarleaderLegacyBattlegrounds, CardIds.MurlocWarleader_MrgglaarglEnchantmentBattlegrounds, 4, 0);\r\n\tsetMissingAura(board, CardIds.Kathranatir_BG21_039, CardIds.Kathranatir_GraspOfKathranatirEnchantment_BG21_039e, 2, 0);\r\n\tsetMissingAura(board, CardIds.KathranatirBattlegrounds, CardIds.Kathranatir_GraspOfKathranatirEnchantment_BG21_039_Ge, 4, 0);\r\n\tsetMissingAura(\r\n\t\tboard,\r\n\t\tCardIds.LadySinestraBattlegrounds_TB_BaconShop_HERO_52_Buddy,\r\n\t\tCardIds.DraconicBlessingEnchantmentBattlegrounds_TB_BaconShop_HERO_52_Buddy_e,\r\n\t\t3,\r\n\t\t0,\r\n\t);\r\n\tsetMissingAura(\r\n\t\tboard,\r\n\t\tCardIds.LadySinestraBattlegrounds_TB_BaconShop_HERO_52_Buddy_G,\r\n\t\tCardIds.DraconicBlessingEnchantmentBattlegrounds_TB_BaconShop_HERO_52_Buddy_G_e,\r\n\t\t6,\r\n\t\t0,\r\n\t);\r\n\tsetMissingAura(board, CardIds.CyborgDrake, CardIds.CyborgEnhancementEnchantment_BG25_901e, 10, 0);\r\n\tsetMissingAura(board, CardIds.CyborgDrakeBattlegrounds, CardIds.CyborgEnhancementEnchantment_BG25_901e2, 20, 0);\r\n};\r\n\r\nconst setMissingAura = (board: BoardEntity[], minionCardId: string, enchantmentCardId: string, attack: number, health: number): void => {\r\n\tconst numberOfBuffs = board.filter((e) => e.cardId === minionCardId).length;\r\n\tif (numberOfBuffs > 0) {\r\n\t\tboard\r\n\t\t\t.filter((e) => !e.enchantments.find((ench) => ench.cardId === enchantmentCardId))\r\n\t\t\t.forEach((e) => {\r\n\t\t\t\te.attack += numberOfBuffs * attack;\r\n\t\t\t\te.health += numberOfBuffs * health;\r\n\t\t\t});\r\n\t}\r\n};\r\n\r\nexport const setImplicitData = (board: BoardEntity[], cardsData: CardsData): void => {\r\n\tfor (const entity of board) {\r\n\t\tentity.cardId = normalizeCardIdForSkin(entity.cardId);\r\n\t\tentity.maxHealth = entity.health;\r\n\t\tconst avengeValue = cardsData.avengeValue(entity.cardId);\r\n\t\tif (avengeValue > 0) {\r\n\t\t\tentity.avengeCurrent = avengeValue;\r\n\t\t\tentity.avengeDefault = avengeValue;\r\n\t\t}\r\n\t\tentity.immuneWhenAttackCharges = 0;\r\n\t}\r\n};\r\n\r\nexport const setImplicitDataHero = (hero: BgsPlayerEntity, cardsData: CardsData, isPlayer: boolean): void => {\r\n\tconst avengeValue = cardsData.avengeValue(hero.heroPowerId);\r\n\tif (avengeValue > 0) {\r\n\t\thero.avengeCurrent = avengeValue;\r\n\t\thero.avengeDefault = avengeValue;\r\n\t}\r\n\t// Backward compatibility\r\n\tif (!!hero.questRewards?.length && !Array.isArray(hero.questRewards)) {\r\n\t\thero.questRewards = [hero.questRewards as any];\r\n\t}\r\n\r\n\t// Because Denathrius can send a quest reward as its hero power (I think)\r\n\thero.questRewards = [...(hero.questRewards ?? []), hero.heroPowerId].filter((e) => !!e);\r\n\thero.entityId = hero.entityId ?? (isPlayer ? 999_999_998 : 999_999_999);\r\n\tif (!hero.globalInfo) {\r\n\t\thero.globalInfo = {\r\n\t\t\tEternalKnightsDeadThisGame: 0,\r\n\t\t\tUndeadAttackBonus: 0,\r\n\t\t};\r\n\t}\r\n};\r\n\r\nexport const clearStealthIfNeeded = (board: BoardEntity[], otherBoard: BoardEntity[]): void => {\r\n\t// https://twitter.com/DCalkosz/status/1562194944688660481?s=20&t=100I8IVZmBKgYQWkdK8nIA\r\n\tif (board.every((entity) => entity.stealth && !entity.attack)) {\r\n\t\tboard.forEach((e) => (e.stealth = false));\r\n\t}\r\n\tif (otherBoard.every((entity) => entity.stealth && !entity.attack)) {\r\n\t\totherBoard.forEach((e) => (e.stealth = false));\r\n\t}\r\n\tif (board.every((e) => e.stealth) && otherBoard.every((e) => e.stealth)) {\r\n\t\tboard.forEach((e) => (e.stealth = false));\r\n\t\totherBoard.forEach((e) => (e.stealth = false));\r\n\t}\r\n};\r\n"]}
1
+ {"version":3,"file":"auras.js","sourceRoot":"","sources":["../../src/simulation/auras.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/no-use-before-define */\r\nimport { CardIds } from '@firestone-hs/reference-data';\r\nimport { BgsPlayerEntity } from 'src/bgs-player-entity';\r\nimport { BoardEntity } from '../board-entity';\r\nimport { CardsData } from '../cards/cards-data';\r\nimport { normalizeCardIdForSkin } from '../utils';\r\n\r\nexport const setMissingAuras = (board: BoardEntity[], boardHero: BgsPlayerEntity, otherHero: BgsPlayerEntity): void => {\r\n\tsetMissingMinionsAura(board);\r\n\tsetMissingHeroPowerAura(board, boardHero, otherHero);\r\n};\r\n\r\nexport const setMissingHeroPowerAura = (board: BoardEntity[], boardHero: BgsPlayerEntity, otherHero: BgsPlayerEntity): void => {\r\n\tif (boardHero.heroPowerId === CardIds.AllWillBurnBattlegrounds || otherHero.heroPowerId === CardIds.AllWillBurnBattlegrounds) {\r\n\t\tconst bonus =\r\n\t\t\t(boardHero.heroPowerId === CardIds.AllWillBurnBattlegrounds ? 3 : 0) +\r\n\t\t\t(otherHero.heroPowerId === CardIds.AllWillBurnBattlegrounds ? 3 : 0);\r\n\t\tboard\r\n\t\t\t.filter((e) => !e.enchantments.find((ench) => ench.cardId === CardIds.AllWillBurn_AllWillBurnEnchantmentBattlegrounds))\r\n\t\t\t.forEach((e) => {\r\n\t\t\t\te.attack += bonus;\r\n\t\t\t});\r\n\t}\r\n\tif (boardHero.heroPowerId === CardIds.TheSmokingGun) {\r\n\t\tboard\r\n\t\t\t.filter((e) => !e.enchantments.find((ench) => ench.cardId === CardIds.TheSmokingGun_ArmedAndStillSmokingEnchantment))\r\n\t\t\t.forEach((e) => {\r\n\t\t\t\te.attack += 5;\r\n\t\t\t});\r\n\t}\r\n\tif (boardHero.heroPowerId === CardIds.VolatileVenom) {\r\n\t\tboard\r\n\t\t\t.filter((e) => !e.enchantments.find((ench) => ench.cardId === CardIds.VolatileVenom_VolatileEnchantment))\r\n\t\t\t.forEach((e) => {\r\n\t\t\t\te.attack += 7;\r\n\t\t\t\te.health += 7;\r\n\t\t\t\te.enchantments.push({\r\n\t\t\t\t\tcardId: CardIds.VolatileVenom_VolatileEnchantment,\r\n\t\t\t\t\toriginEntityId: undefined,\r\n\t\t\t\t\ttiming: 0,\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t}\r\n};\r\n\r\nconst setMissingMinionsAura = (board: BoardEntity[]): void => {\r\n\tsetMissingAura(board, CardIds.SouthseaCaptainLegacy_BG_NEW1_027, CardIds.SouthseaCaptain_YarrrLegacyEnchantment, 1, 1);\r\n\tsetMissingAura(board, CardIds.SouthseaCaptainLegacyBattlegrounds, CardIds.SouthseaCaptain_YarrrEnchantmentBattlegrounds, 2, 2);\r\n\tsetMissingAura(board, CardIds.MurlocWarleaderLegacy_BG_EX1_507, CardIds.MurlocWarleader_MrgglaarglLegacyEnchantment, 2, 0);\r\n\tsetMissingAura(board, CardIds.MurlocWarleaderLegacyBattlegrounds, CardIds.MurlocWarleader_MrgglaarglEnchantmentBattlegrounds, 4, 0);\r\n\tsetMissingAura(board, CardIds.Kathranatir_BG21_039, CardIds.Kathranatir_GraspOfKathranatirEnchantment_BG21_039e, 2, 0);\r\n\tsetMissingAura(board, CardIds.KathranatirBattlegrounds, CardIds.Kathranatir_GraspOfKathranatirEnchantment_BG21_039_Ge, 4, 0);\r\n\tsetMissingAura(\r\n\t\tboard,\r\n\t\tCardIds.LadySinestraBattlegrounds_TB_BaconShop_HERO_52_Buddy,\r\n\t\tCardIds.DraconicBlessingEnchantmentBattlegrounds_TB_BaconShop_HERO_52_Buddy_e,\r\n\t\t3,\r\n\t\t0,\r\n\t\tfalse,\r\n\t);\r\n\tsetMissingAura(\r\n\t\tboard,\r\n\t\tCardIds.LadySinestraBattlegrounds_TB_BaconShop_HERO_52_Buddy_G,\r\n\t\tCardIds.DraconicBlessingEnchantmentBattlegrounds_TB_BaconShop_HERO_52_Buddy_G_e,\r\n\t\t6,\r\n\t\t0,\r\n\t\tfalse,\r\n\t);\r\n\tsetMissingAura(board, CardIds.CyborgDrake, CardIds.CyborgEnhancementEnchantment_BG25_901e, 10, 0, false);\r\n\tsetMissingAura(board, CardIds.CyborgDrakeBattlegrounds, CardIds.CyborgEnhancementEnchantment_BG25_901e2, 20, 0, false);\r\n};\r\n\r\nconst setMissingAura = (\r\n\tboard: BoardEntity[],\r\n\tminionCardId: string,\r\n\tenchantmentCardId: string,\r\n\tattack: number,\r\n\thealth: number,\r\n\tignoreSelf = true,\r\n): void => {\r\n\tconst buffers = board.filter((e) => e.cardId === minionCardId);\r\n\tfor (const buffer of buffers) {\r\n\t\tboard\r\n\t\t\t.filter((e) => !e.enchantments.find((ench) => ench.cardId === enchantmentCardId))\r\n\t\t\t.filter((e) => (ignoreSelf ? e.entityId !== buffer.entityId : true))\r\n\t\t\t.forEach((e) => {\r\n\t\t\t\te.attack += attack;\r\n\t\t\t\te.health += health;\r\n\t\t\t});\r\n\t}\r\n};\r\n\r\nexport const setImplicitData = (board: BoardEntity[], cardsData: CardsData): void => {\r\n\tfor (const entity of board) {\r\n\t\tentity.cardId = normalizeCardIdForSkin(entity.cardId);\r\n\t\tentity.maxHealth = entity.health;\r\n\t\tconst avengeValue = cardsData.avengeValue(entity.cardId);\r\n\t\tif (avengeValue > 0) {\r\n\t\t\tentity.avengeCurrent = avengeValue;\r\n\t\t\tentity.avengeDefault = avengeValue;\r\n\t\t}\r\n\t\tentity.immuneWhenAttackCharges = 0;\r\n\t}\r\n};\r\n\r\nexport const setImplicitDataHero = (hero: BgsPlayerEntity, cardsData: CardsData, isPlayer: boolean): void => {\r\n\tconst avengeValue = cardsData.avengeValue(hero.heroPowerId);\r\n\tif (avengeValue > 0) {\r\n\t\thero.avengeCurrent = avengeValue;\r\n\t\thero.avengeDefault = avengeValue;\r\n\t}\r\n\t// Backward compatibility\r\n\tif (!!hero.questRewards?.length && !Array.isArray(hero.questRewards)) {\r\n\t\thero.questRewards = [hero.questRewards as any];\r\n\t}\r\n\r\n\t// Because Denathrius can send a quest reward as its hero power (I think)\r\n\thero.questRewards = [...(hero.questRewards ?? []), hero.heroPowerId].filter((e) => !!e);\r\n\thero.entityId = hero.entityId ?? (isPlayer ? 999_999_998 : 999_999_999);\r\n\tif (!hero.globalInfo) {\r\n\t\thero.globalInfo = {\r\n\t\t\tEternalKnightsDeadThisGame: 0,\r\n\t\t\tUndeadAttackBonus: 0,\r\n\t\t};\r\n\t}\r\n};\r\n\r\nexport const clearStealthIfNeeded = (board: BoardEntity[], otherBoard: BoardEntity[]): void => {\r\n\t// https://twitter.com/DCalkosz/status/1562194944688660481?s=20&t=100I8IVZmBKgYQWkdK8nIA\r\n\tif (board.every((entity) => entity.stealth && !entity.attack)) {\r\n\t\tboard.forEach((e) => (e.stealth = false));\r\n\t}\r\n\tif (otherBoard.every((entity) => entity.stealth && !entity.attack)) {\r\n\t\totherBoard.forEach((e) => (e.stealth = false));\r\n\t}\r\n\tif (board.every((e) => e.stealth) && otherBoard.every((e) => e.stealth)) {\r\n\t\tboard.forEach((e) => (e.stealth = false));\r\n\t\totherBoard.forEach((e) => (e.stealth = false));\r\n\t}\r\n};\r\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@firestone-hs/simulate-bgs-battle",
3
- "version": "1.1.224",
3
+ "version": "1.1.225",
4
4
  "description": "",
5
5
  "scripts": {
6
6
  "lint": "eslint --color --fix --ext .ts .",