axiomancer-mechanics 0.7.0 → 0.9.0

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 (92) hide show
  1. package/README.md +5 -5
  2. package/dist/Character/index.d.ts +1 -0
  3. package/dist/Character/index.d.ts.map +1 -1
  4. package/dist/Character/index.js +8 -1
  5. package/dist/Character/index.js.map +1 -1
  6. package/dist/Combat/combat-effects.d.ts +1 -1
  7. package/dist/Combat/combat-effects.d.ts.map +1 -1
  8. package/dist/Combat/combat-effects.js +10 -12
  9. package/dist/Combat/combat-effects.js.map +1 -1
  10. package/dist/Combat/combat.constants.d.ts +6 -0
  11. package/dist/Combat/combat.constants.d.ts.map +1 -0
  12. package/dist/Combat/combat.constants.js +9 -0
  13. package/dist/Combat/combat.constants.js.map +1 -0
  14. package/dist/Combat/combat.reducer.d.ts +0 -2
  15. package/dist/Combat/combat.reducer.d.ts.map +1 -1
  16. package/dist/Combat/combat.reducer.js +1 -3
  17. package/dist/Combat/combat.reducer.js.map +1 -1
  18. package/dist/Combat/combat.resolver.d.ts +2 -0
  19. package/dist/Combat/combat.resolver.d.ts.map +1 -1
  20. package/dist/Combat/combat.resolver.js.map +1 -1
  21. package/dist/Combat/damage.d.ts +5 -0
  22. package/dist/Combat/damage.d.ts.map +1 -1
  23. package/dist/Combat/damage.js +12 -2
  24. package/dist/Combat/damage.js.map +1 -1
  25. package/dist/Combat/health.d.ts +0 -6
  26. package/dist/Combat/health.d.ts.map +1 -1
  27. package/dist/Combat/health.js +0 -2
  28. package/dist/Combat/health.js.map +1 -1
  29. package/dist/Combat/index.d.ts +1 -1
  30. package/dist/Combat/index.d.ts.map +1 -1
  31. package/dist/Combat/index.js +2 -1
  32. package/dist/Combat/index.js.map +1 -1
  33. package/dist/Combat/phases/scenario.d.ts.map +1 -1
  34. package/dist/Combat/phases/scenario.js +14 -2
  35. package/dist/Combat/phases/scenario.js.map +1 -1
  36. package/dist/Effects/index.d.ts +1 -0
  37. package/dist/Effects/index.d.ts.map +1 -1
  38. package/dist/Effects/index.js +3 -0
  39. package/dist/Effects/index.js.map +1 -1
  40. package/dist/Game/actions.types.d.ts +5 -0
  41. package/dist/Game/actions.types.d.ts.map +1 -1
  42. package/dist/Game/events.types.d.ts +3 -0
  43. package/dist/Game/events.types.d.ts.map +1 -1
  44. package/dist/Game/game.reducer.d.ts.map +1 -1
  45. package/dist/Game/game.reducer.js +4 -0
  46. package/dist/Game/game.reducer.js.map +1 -1
  47. package/dist/Game/store.d.ts +4 -2
  48. package/dist/Game/store.d.ts.map +1 -1
  49. package/dist/Game/store.js +28 -4
  50. package/dist/Game/store.js.map +1 -1
  51. package/dist/Items/index.d.ts +2 -0
  52. package/dist/Items/index.d.ts.map +1 -1
  53. package/dist/Items/index.js +4 -1
  54. package/dist/Items/index.js.map +1 -1
  55. package/dist/Items/shop.reducer.d.ts +5 -0
  56. package/dist/Items/shop.reducer.d.ts.map +1 -0
  57. package/dist/Items/shop.reducer.js +31 -0
  58. package/dist/Items/shop.reducer.js.map +1 -0
  59. package/dist/Items/shop.types.d.ts +8 -0
  60. package/dist/Items/shop.types.d.ts.map +1 -0
  61. package/dist/Items/shop.types.js +3 -0
  62. package/dist/Items/shop.types.js.map +1 -0
  63. package/dist/Skills/skill.engine.js +3 -2
  64. package/dist/Skills/skill.engine.js.map +1 -1
  65. package/dist/Skills/skill.library.d.ts.map +1 -1
  66. package/dist/Skills/skill.library.js +6 -0
  67. package/dist/Skills/skill.library.js.map +1 -1
  68. package/dist/World/Continents/Coastal-Village/maps.d.ts.map +1 -1
  69. package/dist/World/Continents/Coastal-Village/maps.js.map +1 -1
  70. package/dist/World/MapEvents/content.js +16 -0
  71. package/dist/World/MapEvents/content.js.map +1 -1
  72. package/dist/World/MapEvents/handlers.d.ts.map +1 -1
  73. package/dist/World/MapEvents/handlers.js +1 -0
  74. package/dist/World/MapEvents/handlers.js.map +1 -1
  75. package/dist/World/MapEvents/resolve-map-event.d.ts.map +1 -1
  76. package/dist/World/MapEvents/resolve-map-event.js +22 -9
  77. package/dist/World/MapEvents/resolve-map-event.js.map +1 -1
  78. package/dist/World/MapEvents/types.d.ts +3 -0
  79. package/dist/World/MapEvents/types.d.ts.map +1 -1
  80. package/dist/World/index.d.ts +2 -2
  81. package/dist/World/index.d.ts.map +1 -1
  82. package/dist/World/index.js +2 -1
  83. package/dist/World/index.js.map +1 -1
  84. package/dist/World/world.reducer.d.ts +1 -0
  85. package/dist/World/world.reducer.d.ts.map +1 -1
  86. package/dist/World/world.reducer.js +35 -0
  87. package/dist/World/world.reducer.js.map +1 -1
  88. package/dist/index.d.ts +5 -5
  89. package/dist/index.d.ts.map +1 -1
  90. package/dist/index.js +9 -5
  91. package/dist/index.js.map +1 -1
  92. package/package.json +2 -1
package/README.md CHANGED
@@ -57,16 +57,16 @@ The barrel exports are organised by domain:
57
57
 
58
58
  | Group | Highlights |
59
59
  | --------------- | ------------------------------------------------------------------------------------------------------------ |
60
- | Character | `createCharacter`, `equipItem`/`unequipItem`, `getEquipmentModifiers`, presets API (`characterPresets`, `getPresetById`, `buildCharacterFromPreset`), types (`Character`, `BaseStats`, `DerivedStats`, `NonCombatStats`, `CharacterPreset`) |
60
+ | Character | `createCharacter` (auto-generates `Character.id` via `getRng()` when not supplied — Phase 35), `equipItem`/`unequipItem`, `getEquipmentModifiers`, `allocateStatPoint` + `STAT_POINTS_PER_LEVEL` + `availableStatPoints` field on `Character` (Phase 29), presets API (`characterPresets`, `getPresetById`, `buildCharacterFromPreset`), types (`Character`, `BaseStats`, `DerivedStats`, `NonCombatStats`, `CharacterPreset`) |
61
61
  | Enemy | `createEnemy`, `decideEnemyAction`, AI presets (`aggressive`/`defensive`/`balanced`/`strategic`/`bossLogic`), `rollLoot`/`rollLootMany`, `EnemyLibrary`, `EnemiesByMap`, `ENEMY_REGISTRY`, `DEFAULT_XP_BY_DIFFICULTY` |
62
62
  | Combat | `determineAdvantage`, stat accessors (`getBaseStat`/`getAttackStat`/`getDefenseStat`/`getSaveStat`/`getResistStat`), `applyDamage`/`heal`/`healCharacter`, `tickAllEffects`/`applyRegen`, `getActiveRollModifier`/`getThornsReflect`, `resolveEffectApplication`, `determineCombatEnd`, `isCombatOngoing`, `Stance`/`Action`/`CombatState`/`Combatant` |
63
- | Combat reducer | `initializeCombat`, `setPhase`/`setPlayerStance`/`setPlayerAction`, `appendLog`/`addBattleLogEntry`, `incrementFriendship`, `endCombat`, `endCombatPlayerVictory`/`endCombatPlayerDefeat`/`endCombatWithFriendship` |
63
+ | Combat reducer | `initializeCombat`, `setPhase`/`setPlayerStance`/`setPlayerAction`, `appendLog`, `incrementFriendship`, `endCombat`, `endCombatPlayerVictory`/`endCombatPlayerDefeat`/`endCombatWithFriendship` (three retained on the barrel for back-compat — all dispatch to `endCombat`; `outcome` is computed by `determineCombatEnd`) |
64
64
  | Combat resolver | `resolveCombatRound` plus its typed event stream: `RoundResolution`, `CombatActor`, `RoundEvent` (`RoundStartEvent`, `ActionRestrictionEvent`, `AdvantageEvent`, `StanceEffectEvent`, `ScenarioEvent`, `SkillPhaseEvent`, `ResourceEvent`, `ItemPhaseEvent`, `RoundEndEvent`). Per-phase implementation under `Combat/phases/` since Phase 15. |
65
65
  | Effects | `applyEffect`, `applyTier1CombatEffect`, `clearTier1EffectsForStance`/`ForType`, `lookupEffect`/`getEffectByName`/`getEffectsByType`, `effectsLibrary`, `processWorldEffectTick`/`getActiveHazards`, types (`Effect`, `ActiveEffect`, `EffectTier`, `StatModifier`, `DamageOverTime`, `RegenerationConfig`, `ActiveHazard`) |
66
66
  | Items | `addItem`/`removeItem`/`stackItem`, `useConsumable`/`useConsumableEffect`, equipment helpers (`aggregateCombatStartTokens`, `applyEquipmentGenerationBonus`, `getEquipmentProcTriggers`), `equipmentTemplates`/`uniqueTemplates`, `consumableLibrary`, type guards, types (`Item`, `Equipment`, `Consumable`, `Material`, `QuestItem`, `EquipmentTemplate`, `UniqueItemTemplate`) |
67
- | Skills | `executeSkill`, `canUseSkill`/`spendResources`/`calculateSkillDamage`, `generateBasicActionResources`/`generatePhilosophicalResource`, types (`Skill`, `CombatResources`, `SkillTier`, `SkillResolution`, `SkillEvent`, `SkillLookup`) |
68
- | Game | `createGameStore`/`createNewGameState`, `gameReducer`/`migrate`, `createEventEmitter`, selectors (`selectPlayer`, `selectCombat`, `selectInventory`, `selectMoralMeter`, `selectVersion`), `nullAdapter` (Node adapter `createNodeAdapter` lives on `'axiomancer-mechanics/node'` since Phase 21), mechanic constants (`FRIENDSHIP_COUNTER_MAX`, `MAX_EFFECT_DURATION`, `PASSIVE_DEFENSE_MULTIPLIER`, …), typed event surface (`EnginePayload`, `TypedGameEvent` + 10 per-topic aliases, 10 `is*Event` guards), types (`GameState`, `GameStore`, `GameAction`, `GameEvent`/`GameEventEmitter`, `PersistenceAdapter`) |
69
- | World | `createStartingWorld`, world reducer (`changeMap`/`completeMap`/`unlockMap`/`completeNode`/`unlockNode`/`changeContinent`, plus Phase-23 `revealAdjacent`/`markNodeConsumed`), map registry (`MAP_REGISTRY`, `getMapDefinition`, `createMapState`), node traversal (`moveToNode`, `completeCurrentNode`, `applyDialogueChoice`), MapEvents engine (`resolveMapEvent`, `registerMapEventPool`, `setDefaultMapEventPool`, `setNodeEventPoolOverride`, types: `MapEventKind`, `MapEventPool`, `ResolvedEvent`, etc.; the legacy `processNode` + `MapEvent` / `MapEventType` surface was removed in Phase 25), quests (`emptyQuestLog`, `startQuest`/`progressQuest`/`completeQuest`/`discoverQuest`), encounters (`generateEncounter`, `scaleEnemyToLevel`, `DIFFICULTY_LEVEL_BANDS`), types (`WorldState`, `WorldMap`, `MapNode`, `Quest`, `Encounter`) |
67
+ | Skills | `executeSkill`, `canUseSkill`/`spendResources`/`calculateSkillDamage`, `generateBasicActionResources`/`generatePhilosophicalResource`, runtime learning (`learnSkill`, `getAvailableSkills`, `meetsLearningRequirement` — Phase 30; `learningRequirement` field on every Tier 2 / Tier 3 entry — Phase 33), types (`Skill`, `CombatResources`, `SkillTier`, `SkillResolution`, `SkillEvent`, `SkillLookup`) |
68
+ | Game | `createGameStore`/`createNewGameState`, `gameReducer`/`migrate`, `createEventEmitter`, selectors (`selectPlayer`, `selectCombat`, `selectInventory`, `selectMoralMeter`, `selectVersion`), `nullAdapter` (Node adapter `createNodeAdapter` lives on `'axiomancer-mechanics/node'` since Phase 21), mechanic constants (`FRIENDSHIP_COUNTER_MAX`, `MAX_EFFECT_DURATION`, `PASSIVE_DEFENSE_MULTIPLIER`, `STAT_POINTS_PER_LEVEL`, …), GameAction union extended with `ALLOCATE_STAT_POINT` (Phase 29) and `LEARN_SKILL` (Phase 30), typed event surface (`EnginePayload` with optional `unlockedSkills` on `character:levelup` per Phase 30 unit 2 and `combatEvents` on `combat:round` per iterate `5ac6caa`, `TypedGameEvent` + 10 per-topic aliases, 10 `is*Event` guards), types (`GameState`, `GameStore`, `GameAction`, `GameEvent`/`GameEventEmitter`, `PersistenceAdapter`) |
69
+ | World | `createStartingWorld`, world reducer (`changeMap`/`completeMap`/`unlockMap`/`completeNode`/`unlockNode`/`changeContinent`, plus Phase-23 `revealAdjacent`/`markNodeConsumed` and Phase-31 `unlockAdjacent`), map registry (`MAP_REGISTRY`, `getMapDefinition`, `createMapState`), node traversal (`moveToNode`, `completeCurrentNode`, `applyDialogueChoice`), MapEvents engine (`resolveMapEvent`, `registerMapEventPool`, `setDefaultMapEventPool`, `setNodeEventPoolOverride`, types: `MapEventKind`, `MapEventPool`, `ResolvedEvent`, etc.; the legacy `processNode` + `MapEvent` / `MapEventType` surface was removed in Phase 25), quests (`emptyQuestLog`, `startQuest`/`progressQuest`/`completeQuest`/`discoverQuest`; reach-objective auto-advance restored at iterate `8611881`), encounters (`generateEncounter`, `scaleEnemyToLevel`, `DIFFICULTY_LEVEL_BANDS`), types (`WorldState`, `MapState`, `MapDefinition`, `MapNode`, `Quest`, `Encounter`) |
70
70
  | NPCs | `getDialogueNode`, `visibleChoices`, `isLeafNode`, types (`NPC`, `DialogueMap`, `DialogueTree`, `DialogueNode`, `DialogueChoice`, `DialogueContext`) |
71
71
  | Utils | `clamp`/`inRange`/`average`/`sum`/`max`/`min`, `randomInt`, `deepClone`, `capitalize`/`formatPercent`, `createDie`/`createDieRoll`/`determineRollAdvantageModifier`, `deriveStats`/`deriveNonCombatStats`/`calculateMaxHealth`, type guards (`isCharacter`, `isEnemy`, `isCombatActive`) |
72
72
  | Utils — RNG | `getRng`/`setRng`/`setSeed`, `Rng` interface (seedable LCG; Phase 11 routed all gameplay rolls through this singleton so saves are reproducible) |
@@ -3,6 +3,7 @@ import { ActiveEffect } from '../Effects/types';
3
3
  import { ProcUnlocks } from '../Combat/combat-effects';
4
4
  import { Equipment, EquipmentSlot, Item } from '../Items/types';
5
5
  export interface CreateCharacterOptions {
6
+ id?: string;
6
7
  name: string;
7
8
  level: number;
8
9
  baseStats: BaseStats;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Character/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAQhE,MAAM,WAAW,sBAAsB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC;IAEnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAOlB,SAAS,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC,CAAC;IACtD,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,WAAW,CAAC,EAAE,WAAW,CAAC;CAC7B;AAMD,wBAAgB,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,SAAS,CAqC1E;AAYD,wBAAgB,iBAAiB,CAC7B,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAChC,SAAS,CAyBX;AAED,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAClF,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACpF,YAAY,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EACH,gBAAgB,EAAE,gBAAgB,EAAE,cAAc,EAAE,UAAU,EAC9D,aAAa,EAAE,wBAAwB,GAC1C,MAAM,WAAW,CAAC;AACnB,YAAY,EAAE,eAAe,EAAE,6BAA6B,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Character/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAsBhE,MAAM,WAAW,sBAAsB;IAMnC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC;IAEnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAOlB,SAAS,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC,CAAC;IACtD,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,WAAW,CAAC,EAAE,WAAW,CAAC;CAC7B;AAMD,wBAAgB,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,SAAS,CAsC1E;AAYD,wBAAgB,iBAAiB,CAC7B,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAChC,SAAS,CAyBX;AAED,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAClF,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACpF,YAAY,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EACH,gBAAgB,EAAE,gBAAgB,EAAE,cAAc,EAAE,UAAU,EAC9D,aAAa,EAAE,wBAAwB,GAC1C,MAAM,WAAW,CAAC;AACnB,YAAY,EAAE,eAAe,EAAE,6BAA6B,EAAE,MAAM,WAAW,CAAC"}
@@ -4,12 +4,19 @@ exports.buildCharacterFromPreset = exports.getPresetById = exports.sagePreset =
4
4
  exports.createCharacter = createCharacter;
5
5
  exports.allocateStatPoint = allocateStatPoint;
6
6
  const Utils_1 = require("../Utils");
7
+ const rng_1 = require("../Utils/rng");
7
8
  const game_mechanics_constants_1 = require("../Game/game-mechanics.constants");
8
9
  const equipment_reducer_1 = require("./equipment.reducer");
10
+ function generateCharacterId() {
11
+ const r = (0, rng_1.getRng)().random();
12
+ const suffix = Math.floor(r * 36 ** 8).toString(36).padStart(8, '0');
13
+ return `char-${suffix}`;
14
+ }
9
15
  function createCharacter(options) {
10
- const { name, level, baseStats, inventory = [], currency = 0, equipment = {}, effects = [], knownSkills = [], equippedSkills = [], procUnlocks, } = options;
16
+ const { id, name, level, baseStats, inventory = [], currency = 0, equipment = {}, effects = [], knownSkills = [], equippedSkills = [], procUnlocks, } = options;
11
17
  const maxHealth = (0, Utils_1.calculateMaxHealth)(level, baseStats);
12
18
  const baseChar = {
19
+ id: id ?? generateCharacterId(),
13
20
  name,
14
21
  level,
15
22
  experience: (level - 1) * game_mechanics_constants_1.EXPERIENCE_PER_LEVEL,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Character/index.ts"],"names":[],"mappings":";;;AAmCA,0CAqCC;AAYD,8CA4BC;AA5GD,oCAAiF;AACjF,+EAAwE;AACxE,2DAA8F;AA6B9F,SAAgB,eAAe,CAAC,OAA+B;IAC3D,MAAM,EACF,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,GAAG,EAAE,EAAE,QAAQ,GAAG,CAAC,EAAE,SAAS,GAAG,EAAE,EAAE,OAAO,GAAG,EAAE,EAClF,WAAW,GAAG,EAAE,EAAE,cAAc,GAAG,EAAE,EAAE,WAAW,GACrD,GAAG,OAAO,CAAC;IAEZ,MAAM,SAAS,GAAG,IAAA,0BAAkB,EAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAEvD,MAAM,QAAQ,GAAc;QACxB,IAAI;QACJ,KAAK;QACL,UAAU,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,+CAAoB;QAC9C,qBAAqB,EAAE,KAAK,GAAG,+CAAoB;QACnD,MAAM,EAAE,SAAS;QACjB,SAAS;QACT,SAAS;QACT,YAAY,EAAE,IAAA,mBAAW,EAAC,SAAS,CAAC;QACpC,cAAc,EAAE,IAAA,4BAAoB,EAAC,SAAS,CAAC;QAC/C,SAAS;QACT,QAAQ;QACR,SAAS,EAAE,EAAE;QACb,OAAO;QACP,WAAW;QACX,cAAc;QACd,mBAAmB,EAAE,CAAC;QACtB,WAAW;KACd,CAAC;IAIF,IAAI,WAAW,GAAG,QAAQ,CAAC;IAC3B,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAoB,EAAE,CAAC;QAC3D,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,KAAK;YAAE,SAAS;QACrB,WAAW,GAAG,IAAA,6BAAS,EAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,WAAW,CAAC;AACvB,CAAC;AAYD,SAAgB,iBAAiB,CAC7B,SAAoB,EACpB,IAA+B;IAE/B,IAAI,SAAS,CAAC,mBAAmB,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IAEzD,MAAM,QAAQ,GAAc;QACxB,GAAG,SAAS,CAAC,SAAS;QACtB,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC;KACxC,CAAC;IACF,MAAM,IAAI,GAAG,IAAA,yCAAqB,EAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IACxD,MAAM,WAAW,GAAG,IAAA,yCAAqB,EAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC1D,MAAM,aAAa,GAAG,IAAA,4BAAoB,EAAC,QAAQ,CAAC,CAAC;IACrD,MAAM,aAAa,GAAG,IAAA,0BAAkB,EAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAIpE,MAAM,OAAO,GAAG,aAAa,GAAG,SAAS,CAAC,SAAS,CAAC;IAEpD,OAAO;QACH,GAAG,SAAS;QACZ,SAAS,EAAY,QAAQ;QAC7B,YAAY,EAAS,WAAW;QAChC,cAAc,EAAO,aAAa;QAClC,SAAS,EAAY,aAAa;QAClC,MAAM,EAAe,SAAS,CAAC,MAAM,GAAG,OAAO;QAC/C,mBAAmB,EAAE,SAAS,CAAC,mBAAmB,GAAG,CAAC;KACzD,CAAC;AACN,CAAC;AAGD,yDAAoF;AAA3E,8GAAA,SAAS,OAAA;AAAE,gHAAA,WAAW,OAAA;AAAE,0HAAA,qBAAqB,OAAA;AAEtD,qCAGmB;AAFf,2GAAA,gBAAgB,OAAA;AAAE,2GAAA,gBAAgB,OAAA;AAAE,yGAAA,cAAc,OAAA;AAAE,qGAAA,UAAU,OAAA;AAC9D,wGAAA,aAAa,OAAA;AAAE,mHAAA,wBAAwB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Character/index.ts"],"names":[],"mappings":"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"}
@@ -50,7 +50,7 @@ export declare function applyProcOutcome(outcome: ProcRollOutcome, actor: Charac
50
50
  appliedTo: 'self' | 'opponent';
51
51
  result: EffectApplicationResult;
52
52
  };
53
- export declare function applyFumbleOutcome(fumble: FumbleOutcome, actorEffects: ActiveEffect[], round: number): {
53
+ export declare function applyFumbleOutcome(fumble: FumbleOutcome, actorEffects: ActiveEffect[], round: number, actorId?: string): {
54
54
  actorEffects: ActiveEffect[];
55
55
  result: EffectApplicationResult;
56
56
  };
@@ -1 +1 @@
1
- {"version":3,"file":"combat-effects.d.ts","sourceRoot":"","sources":["../../src/Combat/combat-effects.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"combat-effects.d.ts","sourceRoot":"","sources":["../../src/Combat/combat-effects.ts"],"names":[],"mappings":"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"}
@@ -12,20 +12,16 @@ exports.applyFumbleOutcome = applyFumbleOutcome;
12
12
  const combat_effects_library_json_1 = __importDefault(require("./combat-effects.library.json"));
13
13
  const effects_library_1 = require("../Effects/effects.library");
14
14
  const resist_1 = require("./resist");
15
+ const combat_constants_1 = require("./combat.constants");
15
16
  const Effects_1 = require("../Effects");
16
17
  const stats_1 = require("./stats");
17
18
  const rng_1 = require("../Utils/rng");
18
19
  const TRIGGER_TABLE = combat_effects_library_json_1.default.triggers;
19
- const STAT_PROC_BONUS_PER_POINT = 0.02;
20
- const STATUS_CHANCE_BUFF_BONUS = 0.05;
21
- const STATUS_CHANCE_EFFECT_ID = 'buff_status_chance_up';
22
- const CRIT_INTENSITY_BONUS = 1;
23
- const CRIT_DURATION_BONUS = 1;
24
20
  function isFumble(rawRoll) { return rawRoll === 1; }
25
21
  function isCrit(rawRoll) { return rawRoll === 20; }
26
22
  function getStatusChanceIntensity(actor) {
27
23
  return actor.effects
28
- .filter(ae => ae.effectId === STATUS_CHANCE_EFFECT_ID)
24
+ .filter(ae => ae.effectId === combat_constants_1.STATUS_CHANCE_EFFECT_ID)
29
25
  .reduce((total, ae) => total + (ae.intensity ?? 1), 0);
30
26
  }
31
27
  function unlockedTier(unlocks, stance, action) {
@@ -57,8 +53,8 @@ function getEligibleTriggers(stance, action, unlocks, overrides, equipmentTrigge
57
53
  return [...base, ...adapted];
58
54
  }
59
55
  function calculateProcChance(trigger, actor) {
60
- const statBonus = (0, stats_1.getBaseStat)(actor, trigger.stance) * STAT_PROC_BONUS_PER_POINT;
61
- const buffBonus = getStatusChanceIntensity(actor) * STATUS_CHANCE_BUFF_BONUS;
56
+ const statBonus = (0, stats_1.getBaseStat)(actor, trigger.stance) * combat_constants_1.STAT_PROC_BONUS_PER_POINT;
57
+ const buffBonus = getStatusChanceIntensity(actor) * combat_constants_1.STATUS_CHANCE_BUFF_BONUS;
62
58
  const total = trigger.baseChance + statBonus + buffBonus;
63
59
  return Math.max(0, Math.min(1, total));
64
60
  }
@@ -83,8 +79,8 @@ function rollForCombatEffects(p) {
83
79
  procs.push({
84
80
  trigger, effect,
85
81
  decision: 'crit',
86
- intensityBonus: CRIT_INTENSITY_BONUS,
87
- durationBonus: CRIT_DURATION_BONUS,
82
+ intensityBonus: combat_constants_1.CRIT_INTENSITY_BONUS,
83
+ durationBonus: combat_constants_1.CRIT_DURATION_BONUS,
88
84
  appliedTo: trigger.target,
89
85
  });
90
86
  continue;
@@ -112,6 +108,7 @@ function applyProcOutcome(outcome, actor, actorEffects, opponent, opponentEffect
112
108
  intensityDelta,
113
109
  durationMode: 'additive',
114
110
  durationDelta,
111
+ sourceId: actor.id,
115
112
  });
116
113
  if (!stageResult.activeEffect) {
117
114
  if (appliedTo === 'self') {
@@ -141,6 +138,7 @@ function applyProcOutcome(outcome, actor, actorEffects, opponent, opponentEffect
141
138
  intensityDelta: resolveResult.activeEffect.intensity ?? intensityDelta,
142
139
  durationMode: 'additive',
143
140
  durationDelta,
141
+ sourceId: actor.id,
144
142
  });
145
143
  if (reboundTarget === 'self') {
146
144
  return {
@@ -162,8 +160,8 @@ function applyProcOutcome(outcome, actor, actorEffects, opponent, opponentEffect
162
160
  }
163
161
  return { actorEffects, opponentEffects: reverted, appliedTo, result: resolveResult };
164
162
  }
165
- function applyFumbleOutcome(fumble, actorEffects, round) {
166
- const { activeEffects, result } = (0, Effects_1.applyEffect)(actorEffects, fumble.effect, round);
163
+ function applyFumbleOutcome(fumble, actorEffects, round, actorId) {
164
+ const { activeEffects, result } = (0, Effects_1.applyEffect)(actorEffects, fumble.effect, round, actorId ? { sourceId: actorId } : undefined);
167
165
  return { actorEffects: activeEffects, result };
168
166
  }
169
167
  exports.combatEffectsLibrary = TRIGGER_TABLE;
@@ -1 +1 @@
1
- {"version":3,"file":"combat-effects.js","sourceRoot":"","sources":["../../src/Combat/combat-effects.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"combat-effects.js","sourceRoot":"","sources":["../../src/Combat/combat-effects.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export declare const STAT_PROC_BONUS_PER_POINT = 0.02;
2
+ export declare const STATUS_CHANCE_BUFF_BONUS = 0.05;
3
+ export declare const STATUS_CHANCE_EFFECT_ID = "buff_status_chance_up";
4
+ export declare const CRIT_INTENSITY_BONUS = 1;
5
+ export declare const CRIT_DURATION_BONUS = 1;
6
+ //# sourceMappingURL=combat.constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"combat.constants.d.ts","sourceRoot":"","sources":["../../src/Combat/combat.constants.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,yBAAyB,OAAO,CAAC;AAG9C,eAAO,MAAM,wBAAwB,OAAO,CAAC;AAG7C,eAAO,MAAM,uBAAuB,0BAA0B,CAAC;AAG/D,eAAO,MAAM,oBAAoB,IAAI,CAAC;AAGtC,eAAO,MAAM,mBAAmB,IAAI,CAAC"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CRIT_DURATION_BONUS = exports.CRIT_INTENSITY_BONUS = exports.STATUS_CHANCE_EFFECT_ID = exports.STATUS_CHANCE_BUFF_BONUS = exports.STAT_PROC_BONUS_PER_POINT = void 0;
4
+ exports.STAT_PROC_BONUS_PER_POINT = 0.02;
5
+ exports.STATUS_CHANCE_BUFF_BONUS = 0.05;
6
+ exports.STATUS_CHANCE_EFFECT_ID = 'buff_status_chance_up';
7
+ exports.CRIT_INTENSITY_BONUS = 1;
8
+ exports.CRIT_DURATION_BONUS = 1;
9
+ //# sourceMappingURL=combat.constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"combat.constants.js","sourceRoot":"","sources":["../../src/Combat/combat.constants.ts"],"names":[],"mappings":";;;AAca,QAAA,yBAAyB,GAAG,IAAI,CAAC;AAGjC,QAAA,wBAAwB,GAAG,IAAI,CAAC;AAGhC,QAAA,uBAAuB,GAAG,uBAAuB,CAAC;AAGlD,QAAA,oBAAoB,GAAG,CAAC,CAAC;AAGzB,QAAA,mBAAmB,GAAG,CAAC,CAAC"}
@@ -8,8 +8,6 @@ export declare function setPlayerAction(state: CombatState, action: Action): Com
8
8
  export declare function appendLog(state: CombatState, entry: BattleLogEntry): CombatState;
9
9
  export declare function incrementFriendship(state: CombatState): CombatState;
10
10
  export declare function endCombat(state: CombatState): CombatState;
11
- export declare const updateCombatPhase: typeof setPhase;
12
- export declare const addBattleLogEntry: typeof appendLog;
13
11
  export declare const endCombatPlayerVictory: typeof endCombat;
14
12
  export declare const endCombatPlayerDefeat: typeof endCombat;
15
13
  export declare const endCombatWithFriendship: typeof endCombat;
@@ -1 +1 @@
1
- {"version":3,"file":"combat.reducer.d.ts","sourceRoot":"","sources":["../../src/Combat/combat.reducer.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAGvC,OAAO,EACH,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAC3D,MAAM,SAAS,CAAC;AAajB,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,GAAG,WAAW,CAc7E;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,GAAG,WAAW,CAE5E;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,WAAW,CAE/E;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,WAAW,CAE/E;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,GAAG,WAAW,CAEhF;AAGD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,WAAW,GAAG,WAAW,CAEnE;AAGD,wBAAgB,SAAS,CAAC,KAAK,EAAE,WAAW,GAAG,WAAW,CAEzD;AAGD,eAAO,MAAM,iBAAiB,iBAAW,CAAC;AAC1C,eAAO,MAAM,iBAAiB,kBAAY,CAAC;AAC3C,eAAO,MAAM,sBAAsB,kBAAY,CAAC;AAChD,eAAO,MAAM,qBAAqB,kBAAY,CAAC;AAC/C,eAAO,MAAM,uBAAuB,kBAAY,CAAC"}
1
+ {"version":3,"file":"combat.reducer.d.ts","sourceRoot":"","sources":["../../src/Combat/combat.reducer.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAGvC,OAAO,EACH,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAC3D,MAAM,SAAS,CAAC;AAajB,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,GAAG,WAAW,CAc7E;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,GAAG,WAAW,CAE5E;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,WAAW,CAE/E;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,WAAW,CAE/E;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,GAAG,WAAW,CAEhF;AAGD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,WAAW,GAAG,WAAW,CAEnE;AAGD,wBAAgB,SAAS,CAAC,KAAK,EAAE,WAAW,GAAG,WAAW,CAEzD;AASD,eAAO,MAAM,sBAAsB,kBAAY,CAAC;AAChD,eAAO,MAAM,qBAAqB,kBAAY,CAAC;AAC/C,eAAO,MAAM,uBAAuB,kBAAY,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.endCombatWithFriendship = exports.endCombatPlayerDefeat = exports.endCombatPlayerVictory = exports.addBattleLogEntry = exports.updateCombatPhase = void 0;
3
+ exports.endCombatWithFriendship = exports.endCombatPlayerDefeat = exports.endCombatPlayerVictory = void 0;
4
4
  exports.initializeCombat = initializeCombat;
5
5
  exports.setPhase = setPhase;
6
6
  exports.setPlayerStance = setPlayerStance;
@@ -43,8 +43,6 @@ function incrementFriendship(state) {
43
43
  function endCombat(state) {
44
44
  return { ...state, active: false, phase: 'ended' };
45
45
  }
46
- exports.updateCombatPhase = setPhase;
47
- exports.addBattleLogEntry = appendLog;
48
46
  exports.endCombatPlayerVictory = endCombat;
49
47
  exports.endCombatPlayerDefeat = endCombat;
50
48
  exports.endCombatWithFriendship = endCombat;
@@ -1 +1 @@
1
- {"version":3,"file":"combat.reducer.js","sourceRoot":"","sources":["../../src/Combat/combat.reducer.ts"],"names":[],"mappings":";;;AAuBA,4CAcC;AAED,4BAEC;AAED,0CAEC;AAED,0CAEC;AAED,8BAEC;AAGD,kDAEC;AAGD,8BAEC;AAzDD,oCAAqC;AACrC,gEAAuE;AAgBvE,SAAgB,gBAAgB,CAAC,MAAiB,EAAE,KAAY;IAC5D,MAAM,MAAM,GAAG,IAAA,6CAA0B,EAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;IAClE,OAAO;QACH,MAAM,EAAE,IAAI;QACZ,KAAK,EAAE,iBAAiB;QACxB,KAAK,EAAE,CAAC;QACR,iBAAiB,EAAE,CAAC;QACpB,MAAM,EAAE,IAAA,iBAAS,EAAC,MAAM,CAAC;QACzB,KAAK,EAAE,IAAA,iBAAS,EAAC,KAAK,CAAC;QACvB,YAAY,EAAE,EAAE;QAChB,WAAW,EAAE,EAAE;QACf,GAAG,EAAE,EAAE;QACP,eAAe,EAAE,MAAM;KAC1B,CAAC;AACN,CAAC;AAED,SAAgB,QAAQ,CAAC,KAAkB,EAAE,KAAkB;IAC3D,OAAO,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,CAAC;AAC/B,CAAC;AAED,SAAgB,eAAe,CAAC,KAAkB,EAAE,MAAc;IAC9D,OAAO,EAAE,GAAG,KAAK,EAAE,YAAY,EAAE,EAAE,GAAG,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,EAAE,CAAC;AACzE,CAAC;AAED,SAAgB,eAAe,CAAC,KAAkB,EAAE,MAAc;IAC9D,OAAO,EAAE,GAAG,KAAK,EAAE,YAAY,EAAE,EAAE,GAAG,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,EAAE,CAAC;AACzE,CAAC;AAED,SAAgB,SAAS,CAAC,KAAkB,EAAE,KAAqB;IAC/D,OAAO,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC;AACpD,CAAC;AAGD,SAAgB,mBAAmB,CAAC,KAAkB;IAClD,OAAO,EAAE,GAAG,KAAK,EAAE,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,GAAG,CAAC,EAAE,CAAC;AACxE,CAAC;AAGD,SAAgB,SAAS,CAAC,KAAkB;IACxC,OAAO,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AACvD,CAAC;AAGY,QAAA,iBAAiB,GAAG,QAAQ,CAAC;AAC7B,QAAA,iBAAiB,GAAG,SAAS,CAAC;AAC9B,QAAA,sBAAsB,GAAG,SAAS,CAAC;AACnC,QAAA,qBAAqB,GAAG,SAAS,CAAC;AAClC,QAAA,uBAAuB,GAAG,SAAS,CAAC"}
1
+ {"version":3,"file":"combat.reducer.js","sourceRoot":"","sources":["../../src/Combat/combat.reducer.ts"],"names":[],"mappings":";;;AAuBA,4CAcC;AAED,4BAEC;AAED,0CAEC;AAED,0CAEC;AAED,8BAEC;AAGD,kDAEC;AAGD,8BAEC;AAzDD,oCAAqC;AACrC,gEAAuE;AAgBvE,SAAgB,gBAAgB,CAAC,MAAiB,EAAE,KAAY;IAC5D,MAAM,MAAM,GAAG,IAAA,6CAA0B,EAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;IAClE,OAAO;QACH,MAAM,EAAE,IAAI;QACZ,KAAK,EAAE,iBAAiB;QACxB,KAAK,EAAE,CAAC;QACR,iBAAiB,EAAE,CAAC;QACpB,MAAM,EAAE,IAAA,iBAAS,EAAC,MAAM,CAAC;QACzB,KAAK,EAAE,IAAA,iBAAS,EAAC,KAAK,CAAC;QACvB,YAAY,EAAE,EAAE;QAChB,WAAW,EAAE,EAAE;QACf,GAAG,EAAE,EAAE;QACP,eAAe,EAAE,MAAM;KAC1B,CAAC;AACN,CAAC;AAED,SAAgB,QAAQ,CAAC,KAAkB,EAAE,KAAkB;IAC3D,OAAO,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,CAAC;AAC/B,CAAC;AAED,SAAgB,eAAe,CAAC,KAAkB,EAAE,MAAc;IAC9D,OAAO,EAAE,GAAG,KAAK,EAAE,YAAY,EAAE,EAAE,GAAG,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,EAAE,CAAC;AACzE,CAAC;AAED,SAAgB,eAAe,CAAC,KAAkB,EAAE,MAAc;IAC9D,OAAO,EAAE,GAAG,KAAK,EAAE,YAAY,EAAE,EAAE,GAAG,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,EAAE,CAAC;AACzE,CAAC;AAED,SAAgB,SAAS,CAAC,KAAkB,EAAE,KAAqB;IAC/D,OAAO,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC;AACpD,CAAC;AAGD,SAAgB,mBAAmB,CAAC,KAAkB;IAClD,OAAO,EAAE,GAAG,KAAK,EAAE,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,GAAG,CAAC,EAAE,CAAC;AACxE,CAAC;AAGD,SAAgB,SAAS,CAAC,KAAkB;IACxC,OAAO,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AACvD,CAAC;AASY,QAAA,sBAAsB,GAAG,SAAS,CAAC;AACnC,QAAA,qBAAqB,GAAG,SAAS,CAAC;AAClC,QAAA,uBAAuB,GAAG,SAAS,CAAC"}
@@ -104,6 +104,8 @@ export type ScenarioEvent = {
104
104
  hpBefore: number;
105
105
  hpAfter: number;
106
106
  defenderActed: boolean;
107
+ isCritical?: boolean;
108
+ critStyle?: 'double' | 'pierce';
107
109
  } | {
108
110
  phase: 'scenario';
109
111
  kind: 'thorns';
@@ -1 +1 @@
1
- {"version":3,"file":"combat.resolver.d.ts","sourceRoot":"","sources":["../../src/Combat/combat.resolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"combat.resolver.d.ts","sourceRoot":"","sources":["../../src/Combat/combat.resolver.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"combat.resolver.js","sourceRoot":"","sources":["../../src/Combat/combat.resolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"combat.resolver.js","sourceRoot":"","sources":["../../src/Combat/combat.resolver.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,9 @@
1
+ import type { CritStyle } from './types';
1
2
  export declare function applyCriticalMultiplier(baseDamage: number): number;
3
+ export declare function selectCritDamage(baseDamage: number, damageReduction: number, damageBonus?: number): {
4
+ style: CritStyle;
5
+ damage: number;
6
+ };
2
7
  export declare function calculateFinalDamage(baseDamage: number, damageReduction: number, isCritical: boolean, damageBonus?: number): number;
3
8
  export declare function isAttackSuccessful(attackRoll: number, defenseRoll: number): boolean;
4
9
  //# sourceMappingURL=damage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"damage.d.ts","sourceRoot":"","sources":["../../src/Combat/damage.ts"],"names":[],"mappings":"AAMA,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAElE;AAUD,wBAAgB,oBAAoB,CAChC,UAAU,EAAE,MAAM,EAClB,eAAe,EAAE,MAAM,EACvB,UAAU,EAAE,OAAO,EACnB,WAAW,SAAI,GAChB,MAAM,CAGR;AAGD,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAEnF"}
1
+ {"version":3,"file":"damage.d.ts","sourceRoot":"","sources":["../../src/Combat/damage.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAGzC,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAElE;AAaD,wBAAgB,gBAAgB,CAC5B,UAAU,EAAE,MAAM,EAClB,eAAe,EAAE,MAAM,EACvB,WAAW,SAAI,GAChB;IAAE,KAAK,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAKtC;AAWD,wBAAgB,oBAAoB,CAChC,UAAU,EAAE,MAAM,EAClB,eAAe,EAAE,MAAM,EACvB,UAAU,EAAE,OAAO,EACnB,WAAW,SAAI,GAChB,MAAM,CAKR;AAGD,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAEnF"}
@@ -1,14 +1,24 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.applyCriticalMultiplier = applyCriticalMultiplier;
4
+ exports.selectCritDamage = selectCritDamage;
4
5
  exports.calculateFinalDamage = calculateFinalDamage;
5
6
  exports.isAttackSuccessful = isAttackSuccessful;
6
7
  function applyCriticalMultiplier(baseDamage) {
7
8
  return baseDamage * 2;
8
9
  }
10
+ function selectCritDamage(baseDamage, damageReduction, damageBonus = 0) {
11
+ const doubled = Math.ceil(Math.max(0, 2 * baseDamage + damageBonus - damageReduction));
12
+ const pierced = Math.ceil(Math.max(0, baseDamage + damageBonus));
13
+ if (pierced > doubled)
14
+ return { style: 'pierce', damage: pierced };
15
+ return { style: 'double', damage: doubled };
16
+ }
9
17
  function calculateFinalDamage(baseDamage, damageReduction, isCritical, damageBonus = 0) {
10
- const damage = isCritical ? applyCriticalMultiplier(baseDamage) : baseDamage;
11
- return Math.ceil(Math.max(0, damage + damageBonus - damageReduction));
18
+ if (isCritical) {
19
+ return selectCritDamage(baseDamage, damageReduction, damageBonus).damage;
20
+ }
21
+ return Math.ceil(Math.max(0, baseDamage + damageBonus - damageReduction));
12
22
  }
13
23
  function isAttackSuccessful(attackRoll, defenseRoll) {
14
24
  return attackRoll > defenseRoll;
@@ -1 +1 @@
1
- {"version":3,"file":"damage.js","sourceRoot":"","sources":["../../src/Combat/damage.ts"],"names":[],"mappings":";;AAMA,0DAEC;AAUD,oDAQC;AAGD,gDAEC;AAzBD,SAAgB,uBAAuB,CAAC,UAAkB;IACtD,OAAO,UAAU,GAAG,CAAC,CAAC;AAC1B,CAAC;AAUD,SAAgB,oBAAoB,CAChC,UAAkB,EAClB,eAAuB,EACvB,UAAmB,EACnB,WAAW,GAAG,CAAC;IAEf,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;IAC7E,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,eAAe,CAAC,CAAC,CAAC;AAC1E,CAAC;AAGD,SAAgB,kBAAkB,CAAC,UAAkB,EAAE,WAAmB;IACtE,OAAO,UAAU,GAAG,WAAW,CAAC;AACpC,CAAC"}
1
+ {"version":3,"file":"damage.js","sourceRoot":"","sources":["../../src/Combat/damage.ts"],"names":[],"mappings":";;AAQA,0DAEC;AAaD,4CASC;AAWD,oDAUC;AAGD,gDAEC;AAlDD,SAAgB,uBAAuB,CAAC,UAAkB;IACtD,OAAO,UAAU,GAAG,CAAC,CAAC;AAC1B,CAAC;AAaD,SAAgB,gBAAgB,CAC5B,UAAkB,EAClB,eAAuB,EACvB,WAAW,GAAG,CAAC;IAEf,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,UAAU,GAAG,WAAW,GAAG,eAAe,CAAC,CAAC,CAAC;IACvF,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC;IACjE,IAAI,OAAO,GAAG,OAAO;QAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IACnE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AAChD,CAAC;AAWD,SAAgB,oBAAoB,CAChC,UAAkB,EAClB,eAAuB,EACvB,UAAmB,EACnB,WAAW,GAAG,CAAC;IAEf,IAAI,UAAU,EAAE,CAAC;QACb,OAAO,gBAAgB,CAAC,UAAU,EAAE,eAAe,EAAE,WAAW,CAAC,CAAC,MAAM,CAAC;IAC7E,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,WAAW,GAAG,eAAe,CAAC,CAAC,CAAC;AAC9E,CAAC;AAGD,SAAgB,kBAAkB,CAAC,UAAkB,EAAE,WAAmB;IACtE,OAAO,UAAU,GAAG,WAAW,CAAC;AACpC,CAAC"}
@@ -1,13 +1,7 @@
1
- import { Character } from '../Character/types';
2
- import { Enemy } from '../Enemy/types';
3
1
  import { Combatant } from './types';
4
2
  export declare function applyDamage<T extends Combatant>(combatant: T, damage: number): T;
5
3
  export declare function heal<T extends Combatant>(combatant: T, amount: number): T;
6
4
  export declare function isAlive(combatant: Combatant): boolean;
7
5
  export declare function isDefeated(combatant: Combatant): boolean;
8
6
  export declare function getHealthPercentage(combatant: Combatant): number;
9
- export declare const healCharacter: {
10
- (c: Character, amount: number): Character;
11
- (c: Enemy, amount: number): Enemy;
12
- };
13
7
  //# sourceMappingURL=health.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../src/Combat/health.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAGpC,wBAAgB,WAAW,CAAC,CAAC,SAAS,SAAS,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC,CAEhF;AAGD,wBAAgB,IAAI,CAAC,CAAC,SAAS,SAAS,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC,CAEzE;AAGD,wBAAgB,OAAO,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAiC;AAGvF,wBAAgB,UAAU,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAkC;AAG3F,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAEhE;AAGD,eAAO,MAAM,aAAa,EAAE;IACxB,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC;CAIrC,CAAC"}
1
+ {"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../src/Combat/health.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAGpC,wBAAgB,WAAW,CAAC,CAAC,SAAS,SAAS,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC,CAEhF;AAGD,wBAAgB,IAAI,CAAC,CAAC,SAAS,SAAS,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC,CAEzE;AAGD,wBAAgB,OAAO,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAiC;AAGvF,wBAAgB,UAAU,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAkC;AAG3F,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAEhE"}
@@ -1,6 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.healCharacter = void 0;
4
3
  exports.applyDamage = applyDamage;
5
4
  exports.heal = heal;
6
5
  exports.isAlive = isAlive;
@@ -17,5 +16,4 @@ function isDefeated(combatant) { return combatant.health <= 0; }
17
16
  function getHealthPercentage(combatant) {
18
17
  return (combatant.health / combatant.maxHealth) * 100;
19
18
  }
20
- exports.healCharacter = heal;
21
19
  //# sourceMappingURL=health.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"health.js","sourceRoot":"","sources":["../../src/Combat/health.ts"],"names":[],"mappings":";;;AAUA,kCAEC;AAGD,oBAEC;AAGD,0BAAuF;AAGvF,gCAA2F;AAG3F,kDAEC;AAlBD,SAAgB,WAAW,CAAsB,SAAY,EAAE,MAAc;IACzE,OAAO,EAAE,GAAG,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;AAC5E,CAAC;AAGD,SAAgB,IAAI,CAAsB,SAAY,EAAE,MAAc;IAClE,OAAO,EAAE,GAAG,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;AAC9F,CAAC;AAGD,SAAgB,OAAO,CAAC,SAAoB,IAAa,OAAO,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;AAGvF,SAAgB,UAAU,CAAC,SAAoB,IAAa,OAAO,SAAS,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC;AAG3F,SAAgB,mBAAmB,CAAC,SAAoB;IACpD,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC;AAC1D,CAAC;AAGY,QAAA,aAAa,GAGtB,IAGH,CAAC"}
1
+ {"version":3,"file":"health.js","sourceRoot":"","sources":["../../src/Combat/health.ts"],"names":[],"mappings":";;AAWA,kCAEC;AAGD,oBAEC;AAGD,0BAAuF;AAGvF,gCAA2F;AAG3F,kDAEC;AAlBD,SAAgB,WAAW,CAAsB,SAAY,EAAE,MAAc;IACzE,OAAO,EAAE,GAAG,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;AAC5E,CAAC;AAGD,SAAgB,IAAI,CAAsB,SAAY,EAAE,MAAc;IAClE,OAAO,EAAE,GAAG,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;AAC9F,CAAC;AAGD,SAAgB,OAAO,CAAC,SAAoB,IAAa,OAAO,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;AAGvF,SAAgB,UAAU,CAAC,SAAoB,IAAa,OAAO,SAAS,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC;AAG3F,SAAgB,mBAAmB,CAAC,SAAoB;IACpD,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC;AAC1D,CAAC"}
@@ -4,7 +4,7 @@ export type { Stance, Action, Advantage, CritStyle, CombatAction, PlayerCombatAc
4
4
  export { determineAdvantage, hasAdvantage, getAdvantageModifier, resolveEffectiveAdvantage } from './advantage';
5
5
  export { getBaseStat, getAttackStat, getDefenseStat, getSaveStat, getResistStat } from './stats';
6
6
  export { rollSkillCheck, isCriticalHit, isCriticalMiss } from './dice';
7
- export { applyCriticalMultiplier, calculateFinalDamage, isAttackSuccessful } from './damage';
7
+ export { applyCriticalMultiplier, calculateFinalDamage, selectCritDamage, isAttackSuccessful } from './damage';
8
8
  export { applyDamage, heal, isAlive, isDefeated, getHealthPercentage } from './health';
9
9
  export { MIND_MARK_ID, getStudyMarkIntensity, getActiveRollModifier, getThornsReflect, updateEffectDuration, tickAllEffects, removeRandomBuff, extendRandomBuffDuration, applyRegen, applyDrain, processDamageOverTime, processRoundStartEffects, processRoundEndEffects, applyCleanse, applyDispel, } from './effects';
10
10
  export { getActiveEffectModifiers, getEffectiveStats, canAct, } from './effect-modifiers';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Combat/index.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEvC,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEpD,YAAY,EACR,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,kBAAkB,EACtE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,SAAS,GACtD,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAChH,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACjG,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACvE,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC7F,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AACvF,OAAO,EACH,YAAY,EACZ,qBAAqB,EAAE,qBAAqB,EAAE,gBAAgB,EAC9D,oBAAoB,EAAE,cAAc,EACpC,gBAAgB,EAAE,wBAAwB,EAAE,UAAU,EAAE,UAAU,EAClE,qBAAqB,EAAE,wBAAwB,EAAE,sBAAsB,EACvE,YAAY,EAAE,WAAW,GAC5B,MAAM,WAAW,CAAC;AACnB,OAAO,EACH,wBAAwB,EAAE,iBAAiB,EAAE,MAAM,GACtD,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACR,yBAAyB,EAAE,cAAc,GAC5C,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,EACH,oBAAoB,EAAE,gBAAgB,EAAE,kBAAkB,EAC1D,mBAAmB,EAAE,mBAAmB,EAAE,oBAAoB,GACjE,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACR,mBAAmB,EAAE,WAAW,EAAE,aAAa,EAC/C,eAAe,EAAE,aAAa,EAAE,0BAA0B,GAC7D,MAAM,kBAAkB,CAAC;AAO1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,YAAY,EACR,eAAe,EAAE,UAAU,EAAE,WAAW,EACxC,eAAe,EAAE,sBAAsB,EAAE,cAAc,EACvD,iBAAiB,EAAE,aAAa,EAAE,eAAe,EAAE,aAAa,EAChE,cAAc,EAAE,aAAa,GAChC,MAAM,mBAAmB,CAAC;AAY3B,wBAAgB,oBAAoB,CAChC,KAAK,EAAE,KAAK,EACZ,KAAK,CAAC,EAAE,WAAW,GACpB,YAAY,CAEd;AAGD,wBAAgB,eAAe,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAK3D;AAGD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,WAAW,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,SAAS,CAKjG;AAGD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,MAAM,IAAI,YAAY,CAEzF;AAID,OAAO,EAAE,IAAI,IAAI,aAAa,EAAE,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Combat/index.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEvC,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEpD,YAAY,EACR,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,kBAAkB,EACtE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,SAAS,GACtD,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAChH,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACjG,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACvE,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC/G,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AACvF,OAAO,EACH,YAAY,EACZ,qBAAqB,EAAE,qBAAqB,EAAE,gBAAgB,EAC9D,oBAAoB,EAAE,cAAc,EACpC,gBAAgB,EAAE,wBAAwB,EAAE,UAAU,EAAE,UAAU,EAClE,qBAAqB,EAAE,wBAAwB,EAAE,sBAAsB,EACvE,YAAY,EAAE,WAAW,GAC5B,MAAM,WAAW,CAAC;AACnB,OAAO,EACH,wBAAwB,EAAE,iBAAiB,EAAE,MAAM,GACtD,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACR,yBAAyB,EAAE,cAAc,GAC5C,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,EACH,oBAAoB,EAAE,gBAAgB,EAAE,kBAAkB,EAC1D,mBAAmB,EAAE,mBAAmB,EAAE,oBAAoB,GACjE,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACR,mBAAmB,EAAE,WAAW,EAAE,aAAa,EAC/C,eAAe,EAAE,aAAa,EAAE,0BAA0B,GAC7D,MAAM,kBAAkB,CAAC;AAO1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,YAAY,EACR,eAAe,EAAE,UAAU,EAAE,WAAW,EACxC,eAAe,EAAE,sBAAsB,EAAE,cAAc,EACvD,iBAAiB,EAAE,aAAa,EAAE,eAAe,EAAE,aAAa,EAChE,cAAc,EAAE,aAAa,GAChC,MAAM,mBAAmB,CAAC;AAY3B,wBAAgB,oBAAoB,CAChC,KAAK,EAAE,KAAK,EACZ,KAAK,CAAC,EAAE,WAAW,GACpB,YAAY,CAEd;AAGD,wBAAgB,eAAe,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAK3D;AAGD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,WAAW,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,SAAS,CAKjG;AAGD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,MAAM,IAAI,YAAY,CAEzF;AAID,OAAO,EAAE,IAAI,IAAI,aAAa,EAAE,MAAM,UAAU,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.healCharacter = exports.resolveCombatRound = exports.combatEffectsLibrary = exports.calculateProcChance = exports.getEligibleTriggers = exports.applyFumbleOutcome = exports.applyProcOutcome = exports.rollForCombatEffects = exports.resolveEffectApplication = exports.canAct = exports.getEffectiveStats = exports.getActiveEffectModifiers = exports.applyDispel = exports.applyCleanse = exports.processRoundEndEffects = exports.processRoundStartEffects = exports.processDamageOverTime = exports.applyDrain = exports.applyRegen = exports.extendRandomBuffDuration = exports.removeRandomBuff = exports.tickAllEffects = exports.updateEffectDuration = exports.getThornsReflect = exports.getActiveRollModifier = exports.getStudyMarkIntensity = exports.MIND_MARK_ID = exports.getHealthPercentage = exports.isDefeated = exports.isAlive = exports.heal = exports.applyDamage = exports.isAttackSuccessful = exports.calculateFinalDamage = exports.applyCriticalMultiplier = exports.isCriticalMiss = exports.isCriticalHit = exports.rollSkillCheck = exports.getResistStat = exports.getSaveStat = exports.getDefenseStat = exports.getAttackStat = exports.getBaseStat = exports.resolveEffectiveAdvantage = exports.getAdvantageModifier = exports.hasAdvantage = exports.determineAdvantage = void 0;
3
+ exports.healCharacter = exports.resolveCombatRound = exports.combatEffectsLibrary = exports.calculateProcChance = exports.getEligibleTriggers = exports.applyFumbleOutcome = exports.applyProcOutcome = exports.rollForCombatEffects = exports.resolveEffectApplication = exports.canAct = exports.getEffectiveStats = exports.getActiveEffectModifiers = exports.applyDispel = exports.applyCleanse = exports.processRoundEndEffects = exports.processRoundStartEffects = exports.processDamageOverTime = exports.applyDrain = exports.applyRegen = exports.extendRandomBuffDuration = exports.removeRandomBuff = exports.tickAllEffects = exports.updateEffectDuration = exports.getThornsReflect = exports.getActiveRollModifier = exports.getStudyMarkIntensity = exports.MIND_MARK_ID = exports.getHealthPercentage = exports.isDefeated = exports.isAlive = exports.heal = exports.applyDamage = exports.isAttackSuccessful = exports.selectCritDamage = exports.calculateFinalDamage = exports.applyCriticalMultiplier = exports.isCriticalMiss = exports.isCriticalHit = exports.rollSkillCheck = exports.getResistStat = exports.getSaveStat = exports.getDefenseStat = exports.getAttackStat = exports.getBaseStat = exports.resolveEffectiveAdvantage = exports.getAdvantageModifier = exports.hasAdvantage = exports.determineAdvantage = void 0;
4
4
  exports.determineEnemyAction = determineEnemyAction;
5
5
  exports.isCombatOngoing = isCombatOngoing;
6
6
  exports.determineCombatEnd = determineCombatEnd;
@@ -25,6 +25,7 @@ Object.defineProperty(exports, "isCriticalMiss", { enumerable: true, get: functi
25
25
  var damage_1 = require("./damage");
26
26
  Object.defineProperty(exports, "applyCriticalMultiplier", { enumerable: true, get: function () { return damage_1.applyCriticalMultiplier; } });
27
27
  Object.defineProperty(exports, "calculateFinalDamage", { enumerable: true, get: function () { return damage_1.calculateFinalDamage; } });
28
+ Object.defineProperty(exports, "selectCritDamage", { enumerable: true, get: function () { return damage_1.selectCritDamage; } });
28
29
  Object.defineProperty(exports, "isAttackSuccessful", { enumerable: true, get: function () { return damage_1.isAttackSuccessful; } });
29
30
  var health_1 = require("./health");
30
31
  Object.defineProperty(exports, "applyDamage", { enumerable: true, get: function () { return health_1.applyDamage; } });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Combat/index.ts"],"names":[],"mappings":";;;AAiFA,oDAKC;AAGD,0CAKC;AAGD,gDAKC;AAGD,kDAEC;AAxFD,sDAAyD;AAEzD,+EAA0E;AAQ1E,yCAAgH;AAAvG,+GAAA,kBAAkB,OAAA;AAAE,yGAAA,YAAY,OAAA;AAAE,iHAAA,oBAAoB,OAAA;AAAE,sHAAA,yBAAyB,OAAA;AAC1F,iCAAiG;AAAxF,oGAAA,WAAW,OAAA;AAAE,sGAAA,aAAa,OAAA;AAAE,uGAAA,cAAc,OAAA;AAAE,oGAAA,WAAW,OAAA;AAAE,sGAAA,aAAa,OAAA;AAC/E,+BAAuE;AAA9D,sGAAA,cAAc,OAAA;AAAE,qGAAA,aAAa,OAAA;AAAE,sGAAA,cAAc,OAAA;AACtD,mCAA6F;AAApF,iHAAA,uBAAuB,OAAA;AAAE,8GAAA,oBAAoB,OAAA;AAAE,4GAAA,kBAAkB,OAAA;AAC1E,mCAAuF;AAA9E,qGAAA,WAAW,OAAA;AAAE,8FAAA,IAAI,OAAA;AAAE,iGAAA,OAAO,OAAA;AAAE,oGAAA,UAAU,OAAA;AAAE,6GAAA,mBAAmB,OAAA;AACpE,qCAOmB;AANf,uGAAA,YAAY,OAAA;AACZ,gHAAA,qBAAqB,OAAA;AAAE,gHAAA,qBAAqB,OAAA;AAAE,2GAAA,gBAAgB,OAAA;AAC9D,+GAAA,oBAAoB,OAAA;AAAE,yGAAA,cAAc,OAAA;AACpC,2GAAA,gBAAgB,OAAA;AAAE,mHAAA,wBAAwB,OAAA;AAAE,qGAAA,UAAU,OAAA;AAAE,qGAAA,UAAU,OAAA;AAClE,gHAAA,qBAAqB,OAAA;AAAE,mHAAA,wBAAwB,OAAA;AAAE,iHAAA,sBAAsB,OAAA;AACvE,uGAAA,YAAY,OAAA;AAAE,sGAAA,WAAW,OAAA;AAE7B,uDAE4B;AADxB,4HAAA,wBAAwB,OAAA;AAAE,qHAAA,iBAAiB,OAAA;AAAE,0GAAA,MAAM,OAAA;AAKvD,mCAAoD;AAA3C,kHAAA,wBAAwB,OAAA;AACjC,mDAG0B;AAFtB,sHAAA,oBAAoB,OAAA;AAAE,kHAAA,gBAAgB,OAAA;AAAE,oHAAA,kBAAkB,OAAA;AAC1D,qHAAA,mBAAmB,OAAA;AAAE,qHAAA,mBAAmB,OAAA;AAAE,sHAAA,oBAAoB,OAAA;AAYlE,qDAAuD;AAA9C,qHAAA,kBAAkB,OAAA;AAkB3B,SAAgB,oBAAoB,CAChC,KAAY,EACZ,KAAmB;IAEnB,OAAO,IAAA,+BAAiB,EAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAC3C,CAAC;AAGD,SAAgB,eAAe,CAAC,KAAkB;IAC9C,OAAO,KAAK,CAAC,MAAM;WACZ,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;WACvB,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;WACtB,KAAK,CAAC,iBAAiB,GAAG,iDAAsB,CAAC;AAC5D,CAAC;AAGD,SAAgB,kBAAkB,CAAC,KAAkB;IACjD,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC7C,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1C,IAAI,KAAK,CAAC,iBAAiB,IAAI,iDAAsB;QAAE,OAAO,YAAY,CAAC;IAC3E,OAAO,SAAS,CAAC;AACrB,CAAC;AAGD,SAAgB,mBAAmB,CAAC,MAA6B;IAC7D,OAAO,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC;AACtE,CAAC;AAID,mCAAiD;AAAxC,uGAAA,IAAI,OAAiB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Combat/index.ts"],"names":[],"mappings":";;;AAiFA,oDAKC;AAGD,0CAKC;AAGD,gDAKC;AAGD,kDAEC;AAxFD,sDAAyD;AAEzD,+EAA0E;AAQ1E,yCAAgH;AAAvG,+GAAA,kBAAkB,OAAA;AAAE,yGAAA,YAAY,OAAA;AAAE,iHAAA,oBAAoB,OAAA;AAAE,sHAAA,yBAAyB,OAAA;AAC1F,iCAAiG;AAAxF,oGAAA,WAAW,OAAA;AAAE,sGAAA,aAAa,OAAA;AAAE,uGAAA,cAAc,OAAA;AAAE,oGAAA,WAAW,OAAA;AAAE,sGAAA,aAAa,OAAA;AAC/E,+BAAuE;AAA9D,sGAAA,cAAc,OAAA;AAAE,qGAAA,aAAa,OAAA;AAAE,sGAAA,cAAc,OAAA;AACtD,mCAA+G;AAAtG,iHAAA,uBAAuB,OAAA;AAAE,8GAAA,oBAAoB,OAAA;AAAE,0GAAA,gBAAgB,OAAA;AAAE,4GAAA,kBAAkB,OAAA;AAC5F,mCAAuF;AAA9E,qGAAA,WAAW,OAAA;AAAE,8FAAA,IAAI,OAAA;AAAE,iGAAA,OAAO,OAAA;AAAE,oGAAA,UAAU,OAAA;AAAE,6GAAA,mBAAmB,OAAA;AACpE,qCAOmB;AANf,uGAAA,YAAY,OAAA;AACZ,gHAAA,qBAAqB,OAAA;AAAE,gHAAA,qBAAqB,OAAA;AAAE,2GAAA,gBAAgB,OAAA;AAC9D,+GAAA,oBAAoB,OAAA;AAAE,yGAAA,cAAc,OAAA;AACpC,2GAAA,gBAAgB,OAAA;AAAE,mHAAA,wBAAwB,OAAA;AAAE,qGAAA,UAAU,OAAA;AAAE,qGAAA,UAAU,OAAA;AAClE,gHAAA,qBAAqB,OAAA;AAAE,mHAAA,wBAAwB,OAAA;AAAE,iHAAA,sBAAsB,OAAA;AACvE,uGAAA,YAAY,OAAA;AAAE,sGAAA,WAAW,OAAA;AAE7B,uDAE4B;AADxB,4HAAA,wBAAwB,OAAA;AAAE,qHAAA,iBAAiB,OAAA;AAAE,0GAAA,MAAM,OAAA;AAKvD,mCAAoD;AAA3C,kHAAA,wBAAwB,OAAA;AACjC,mDAG0B;AAFtB,sHAAA,oBAAoB,OAAA;AAAE,kHAAA,gBAAgB,OAAA;AAAE,oHAAA,kBAAkB,OAAA;AAC1D,qHAAA,mBAAmB,OAAA;AAAE,qHAAA,mBAAmB,OAAA;AAAE,sHAAA,oBAAoB,OAAA;AAYlE,qDAAuD;AAA9C,qHAAA,kBAAkB,OAAA;AAkB3B,SAAgB,oBAAoB,CAChC,KAAY,EACZ,KAAmB;IAEnB,OAAO,IAAA,+BAAiB,EAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAC3C,CAAC;AAGD,SAAgB,eAAe,CAAC,KAAkB;IAC9C,OAAO,KAAK,CAAC,MAAM;WACZ,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;WACvB,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;WACtB,KAAK,CAAC,iBAAiB,GAAG,iDAAsB,CAAC;AAC5D,CAAC;AAGD,SAAgB,kBAAkB,CAAC,KAAkB;IACjD,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC7C,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1C,IAAI,KAAK,CAAC,iBAAiB,IAAI,iDAAsB;QAAE,OAAO,YAAY,CAAC;IAC3E,OAAO,SAAS,CAAC;AACrB,CAAC;AAGD,SAAgB,mBAAmB,CAAC,MAA6B;IAC7D,OAAO,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC;AACtE,CAAC;AAID,mCAAiD;AAAxC,uGAAA,IAAI,OAAiB"}
@@ -1 +1 @@
1
- {"version":3,"file":"scenario.d.ts","sourceRoot":"","sources":["../../../src/Combat/phases/scenario.ts"],"names":[],"mappings":"AA4BA,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAY1C,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrF,OAAO,EAC6B,WAAW,EAE9C,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAqBrD,OAAO,KAAK,EACK,UAAU,EAC1B,MAAM,oBAAoB,CAAC;AAE5B,MAAM,WAAW,mBAAmB;IAChC,MAAM,EAAE,SAAS,CAAC;IAClB,KAAK,EAAE,KAAK,CAAC;IACb,eAAe,EAAE,eAAe,CAAC;IACjC,iBAAiB,EAAE,MAAM,CAAC;CAC7B;AAED,wBAAgB,gBAAgB,CAC5B,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,SAAS,EACnB,OAAO,EAAE,KAAK,EACd,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,YAAY,EAC1B,iBAAiB,EAAE,MAAM,GAAG,MAAM,EAClC,gBAAgB,EAAG,MAAM,GAAG,MAAM,EAClC,eAAe,EAAE,SAAS,EAC1B,cAAc,EAAE,SAAS,EACzB,iBAAiB,EAAE,eAAe,EAClC,mBAAmB,EAAE,MAAM,EAC3B,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,WAAW,GAAG,SAAS,EACpC,MAAM,EAAE,UAAU,EAAE,GACrB,mBAAmB,CA4JrB"}
1
+ {"version":3,"file":"scenario.d.ts","sourceRoot":"","sources":["../../../src/Combat/phases/scenario.ts"],"names":[],"mappings":"AA4BA,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAY1C,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrF,OAAO,EAC6B,WAAW,EAE9C,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAsBrD,OAAO,KAAK,EACK,UAAU,EAC1B,MAAM,oBAAoB,CAAC;AAE5B,MAAM,WAAW,mBAAmB;IAChC,MAAM,EAAE,SAAS,CAAC;IAClB,KAAK,EAAE,KAAK,CAAC;IACb,eAAe,EAAE,eAAe,CAAC;IACjC,iBAAiB,EAAE,MAAM,CAAC;CAC7B;AAED,wBAAgB,gBAAgB,CAC5B,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,SAAS,EACnB,OAAO,EAAE,KAAK,EACd,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,YAAY,EAC1B,iBAAiB,EAAE,MAAM,GAAG,MAAM,EAClC,gBAAgB,EAAG,MAAM,GAAG,MAAM,EAClC,eAAe,EAAE,SAAS,EAC1B,cAAc,EAAE,SAAS,EACzB,iBAAiB,EAAE,eAAe,EAClC,mBAAmB,EAAE,MAAM,EAC3B,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,WAAW,GAAG,SAAS,EACpC,MAAM,EAAE,UAAU,EAAE,GACrB,mBAAmB,CA4JrB"}
@@ -13,6 +13,7 @@ const effects_library_2 = require("../../Effects/effects.library");
13
13
  const stats_1 = require("../stats");
14
14
  const effect_modifiers_1 = require("../effect-modifiers");
15
15
  const damage_1 = require("../damage");
16
+ const dice_1 = require("../dice");
16
17
  const health_1 = require("../health");
17
18
  const effects_1 = require("../effects");
18
19
  function runScenarioPhase(state, playerIn, enemyIn, playerStance, enemyStance, playerAction, playerActionFinal, enemyActionFinal, playerAdvantage, enemyAdvantage, combatResourcesIn, friendshipCounterIn, round, skillLookup, events) {
@@ -210,7 +211,17 @@ function resolveAttackHit(attacker, defender, rng, statValue, rollPlusStatMod, r
210
211
  const damageRaw = rng();
211
212
  const damageRoll = damageRaw + rollPlusStatMod;
212
213
  const studyBonus = attacker.stance === 'mind' ? (0, effects_1.getStudyMarkIntensity)(defender.combatant) : 0;
213
- const finalDamage = (0, damage_1.calculateFinalDamage)(damageRoll, baseDefense * defenseMultiplier, false, studyBonus);
214
+ const isCritical = (0, dice_1.isCriticalHit)(rawAttackRoll);
215
+ let finalDamage;
216
+ let critStyle;
217
+ if (isCritical) {
218
+ const picked = (0, damage_1.selectCritDamage)(damageRoll, baseDefense * defenseMultiplier, studyBonus);
219
+ finalDamage = picked.damage;
220
+ critStyle = picked.style;
221
+ }
222
+ else {
223
+ finalDamage = (0, damage_1.calculateFinalDamage)(damageRoll, baseDefense * defenseMultiplier, false, studyBonus);
224
+ }
214
225
  events.push({
215
226
  phase: 'scenario', kind: 'damage-roll', actor: attacker.actor,
216
227
  rawRoll: damageRaw, statValue, advantage: attacker.advantage,
@@ -228,6 +239,7 @@ function resolveAttackHit(attacker, defender, rng, statValue, rollPlusStatMod, r
228
239
  baseDefense, defenseMultiplier,
229
240
  finalDamage, hpBefore, hpAfter: updatedDefender.health,
230
241
  defenderActed: !defenderIsPassive,
242
+ ...(isCritical ? { isCritical: true, critStyle } : {}),
231
243
  });
232
244
  if (attacker.stance === 'heart') {
233
245
  const buffResult = (0, effects_1.removeRandomBuff)(updatedDefender);
@@ -311,7 +323,7 @@ function runActionProcs(p) {
311
323
  let actor = p.actor;
312
324
  let opponent = p.opponent;
313
325
  if (fumble) {
314
- const { actorEffects, result } = (0, combat_effects_1.applyFumbleOutcome)(fumble, actor.effects, p.round);
326
+ const { actorEffects, result } = (0, combat_effects_1.applyFumbleOutcome)(fumble, actor.effects, p.round, actor.id);
315
327
  actor = { ...actor, effects: actorEffects };
316
328
  p.events.push({
317
329
  phase: 'scenario', kind: 'proc-fumbled',