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.
- package/README.md +5 -5
- package/dist/Character/index.d.ts +1 -0
- package/dist/Character/index.d.ts.map +1 -1
- package/dist/Character/index.js +8 -1
- package/dist/Character/index.js.map +1 -1
- package/dist/Combat/combat-effects.d.ts +1 -1
- package/dist/Combat/combat-effects.d.ts.map +1 -1
- package/dist/Combat/combat-effects.js +10 -12
- package/dist/Combat/combat-effects.js.map +1 -1
- package/dist/Combat/combat.constants.d.ts +6 -0
- package/dist/Combat/combat.constants.d.ts.map +1 -0
- package/dist/Combat/combat.constants.js +9 -0
- package/dist/Combat/combat.constants.js.map +1 -0
- package/dist/Combat/combat.reducer.d.ts +0 -2
- package/dist/Combat/combat.reducer.d.ts.map +1 -1
- package/dist/Combat/combat.reducer.js +1 -3
- package/dist/Combat/combat.reducer.js.map +1 -1
- package/dist/Combat/combat.resolver.d.ts +2 -0
- package/dist/Combat/combat.resolver.d.ts.map +1 -1
- package/dist/Combat/combat.resolver.js.map +1 -1
- package/dist/Combat/damage.d.ts +5 -0
- package/dist/Combat/damage.d.ts.map +1 -1
- package/dist/Combat/damage.js +12 -2
- package/dist/Combat/damage.js.map +1 -1
- package/dist/Combat/health.d.ts +0 -6
- package/dist/Combat/health.d.ts.map +1 -1
- package/dist/Combat/health.js +0 -2
- package/dist/Combat/health.js.map +1 -1
- package/dist/Combat/index.d.ts +1 -1
- package/dist/Combat/index.d.ts.map +1 -1
- package/dist/Combat/index.js +2 -1
- package/dist/Combat/index.js.map +1 -1
- package/dist/Combat/phases/scenario.d.ts.map +1 -1
- package/dist/Combat/phases/scenario.js +14 -2
- package/dist/Combat/phases/scenario.js.map +1 -1
- package/dist/Effects/index.d.ts +1 -0
- package/dist/Effects/index.d.ts.map +1 -1
- package/dist/Effects/index.js +3 -0
- package/dist/Effects/index.js.map +1 -1
- package/dist/Game/actions.types.d.ts +5 -0
- package/dist/Game/actions.types.d.ts.map +1 -1
- package/dist/Game/events.types.d.ts +3 -0
- package/dist/Game/events.types.d.ts.map +1 -1
- package/dist/Game/game.reducer.d.ts.map +1 -1
- package/dist/Game/game.reducer.js +4 -0
- package/dist/Game/game.reducer.js.map +1 -1
- package/dist/Game/store.d.ts +4 -2
- package/dist/Game/store.d.ts.map +1 -1
- package/dist/Game/store.js +28 -4
- package/dist/Game/store.js.map +1 -1
- package/dist/Items/index.d.ts +2 -0
- package/dist/Items/index.d.ts.map +1 -1
- package/dist/Items/index.js +4 -1
- package/dist/Items/index.js.map +1 -1
- package/dist/Items/shop.reducer.d.ts +5 -0
- package/dist/Items/shop.reducer.d.ts.map +1 -0
- package/dist/Items/shop.reducer.js +31 -0
- package/dist/Items/shop.reducer.js.map +1 -0
- package/dist/Items/shop.types.d.ts +8 -0
- package/dist/Items/shop.types.d.ts.map +1 -0
- package/dist/Items/shop.types.js +3 -0
- package/dist/Items/shop.types.js.map +1 -0
- package/dist/Skills/skill.engine.js +3 -2
- package/dist/Skills/skill.engine.js.map +1 -1
- package/dist/Skills/skill.library.d.ts.map +1 -1
- package/dist/Skills/skill.library.js +6 -0
- package/dist/Skills/skill.library.js.map +1 -1
- package/dist/World/Continents/Coastal-Village/maps.d.ts.map +1 -1
- package/dist/World/Continents/Coastal-Village/maps.js.map +1 -1
- package/dist/World/MapEvents/content.js +16 -0
- package/dist/World/MapEvents/content.js.map +1 -1
- package/dist/World/MapEvents/handlers.d.ts.map +1 -1
- package/dist/World/MapEvents/handlers.js +1 -0
- package/dist/World/MapEvents/handlers.js.map +1 -1
- package/dist/World/MapEvents/resolve-map-event.d.ts.map +1 -1
- package/dist/World/MapEvents/resolve-map-event.js +22 -9
- package/dist/World/MapEvents/resolve-map-event.js.map +1 -1
- package/dist/World/MapEvents/types.d.ts +3 -0
- package/dist/World/MapEvents/types.d.ts.map +1 -1
- package/dist/World/index.d.ts +2 -2
- package/dist/World/index.d.ts.map +1 -1
- package/dist/World/index.js +2 -1
- package/dist/World/index.js.map +1 -1
- package/dist/World/world.reducer.d.ts +1 -0
- package/dist/World/world.reducer.d.ts.map +1 -1
- package/dist/World/world.reducer.js +35 -0
- package/dist/World/world.reducer.js.map +1 -1
- package/dist/index.d.ts +5 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -5
- package/dist/index.js.map +1 -1
- 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
|
|
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
|
|
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`, `
|
|
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;
|
|
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"}
|
package/dist/Character/index.js
CHANGED
|
@@ -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":";;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Character/index.ts"],"names":[],"mappings":";;;AAuDA,0CAsCC;AAYD,8CA4BC;AAjID,oCAAiF;AACjF,sCAAsC;AACtC,+EAAwE;AACxE,2DAA8F;AAS9F,SAAS,mBAAmB;IACxB,MAAM,CAAC,GAAG,IAAA,YAAM,GAAE,CAAC,MAAM,EAAE,CAAC;IAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACrE,OAAO,QAAQ,MAAM,EAAE,CAAC;AAC5B,CAAC;AAmCD,SAAgB,eAAe,CAAC,OAA+B;IAC3D,MAAM,EACF,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,GAAG,EAAE,EAAE,QAAQ,GAAG,CAAC,EAAE,SAAS,GAAG,EAAE,EAAE,OAAO,GAAG,EAAE,EACtF,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,EAAE,EAAE,EAAE,IAAI,mBAAmB,EAAE;QAC/B,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"}
|
|
@@ -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":"AA6BA,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,uBAAuB,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;
|
|
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":";;;;;;
|
|
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;
|
|
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 =
|
|
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;
|
|
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"}
|
|
@@ -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":";;
|
|
1
|
+
{"version":3,"file":"combat.resolver.js","sourceRoot":"","sources":["../../src/Combat/combat.resolver.ts"],"names":[],"mappings":"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"}
|
package/dist/Combat/damage.d.ts
CHANGED
|
@@ -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":"
|
|
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"}
|
package/dist/Combat/damage.js
CHANGED
|
@@ -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
|
-
|
|
11
|
-
|
|
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":";;
|
|
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"}
|
package/dist/Combat/health.d.ts
CHANGED
|
@@ -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":"
|
|
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"}
|
package/dist/Combat/health.js
CHANGED
|
@@ -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":"
|
|
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"}
|
package/dist/Combat/index.d.ts
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/Combat/index.js
CHANGED
|
@@ -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; } });
|
package/dist/Combat/index.js.map
CHANGED
|
@@ -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,
|
|
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;
|
|
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
|
|
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',
|