@mythxengine/types
Advanced tools
| /** | ||
| * GM Moves for narrative-first resolution | ||
| * | ||
| * Structured guidance for AI GM on how to respond to failures and partials. | ||
| * Inspired by Powered by the Apocalypse and Forged in the Dark systems. | ||
| */ | ||
| import type { OutcomeType, Position } from "./dice.js"; | ||
| /** | ||
| * Standard GM moves that can be applied as consequences | ||
| */ | ||
| export type GMMove = "reveal_unwelcome_truth" | "show_signs_of_doom" | "offer_hard_bargain" | "tick_clock" | "separate_them" | "put_someone_in_spot" | "use_their_flaw" | "drain_resources" | "turn_move_against_them" | "inflict_harm"; | ||
| /** | ||
| * Context for suggesting GM moves based on outcome and position | ||
| */ | ||
| export interface GMMoveContext { | ||
| /** The outcome of the roll */ | ||
| outcome: OutcomeType; | ||
| /** The position (risk level) of the action */ | ||
| position: Position; | ||
| /** Suggested moves appropriate for this outcome/position */ | ||
| suggestedMoves: GMMove[]; | ||
| /** Narrative guidance for the GM */ | ||
| narrativeGuidance: string; | ||
| } | ||
| /** | ||
| * Descriptions of each GM move for reference | ||
| */ | ||
| export declare const GM_MOVE_DESCRIPTIONS: Record<GMMove, string>; | ||
| /** | ||
| * Get appropriate GM moves based on outcome and position | ||
| */ | ||
| export declare function getAppropriateMoves(outcome: OutcomeType, position: Position): GMMove[]; | ||
| /** | ||
| * Get narrative guidance for the GM based on outcome and position | ||
| */ | ||
| export declare function getNarrativeGuidance(outcome: OutcomeType, position: Position): string; | ||
| //# sourceMappingURL=gm-moves.d.ts.map |
| {"version":3,"file":"gm-moves.d.ts","sourceRoot":"","sources":["../../src/game/gm-moves.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AASvD;;GAEG;AACH,MAAM,MAAM,MAAM,GACd,wBAAwB,GACxB,oBAAoB,GACpB,oBAAoB,GACpB,YAAY,GACZ,eAAe,GACf,qBAAqB,GACrB,gBAAgB,GAChB,iBAAiB,GACjB,wBAAwB,GACxB,cAAc,CAAC;AAEnB;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,8BAA8B;IAC9B,OAAO,EAAE,WAAW,CAAC;IACrB,8CAA8C;IAC9C,QAAQ,EAAE,QAAQ,CAAC;IACnB,4DAA4D;IAC5D,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,oCAAoC;IACpC,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAWvD,CAAC;AAEF;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,GAAG,MAAM,EAAE,CAgDtF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAiDrF"} |
| /** | ||
| * GM Moves for narrative-first resolution | ||
| * | ||
| * Structured guidance for AI GM on how to respond to failures and partials. | ||
| * Inspired by Powered by the Apocalypse and Forged in the Dark systems. | ||
| */ | ||
| /** | ||
| * Helper for exhaustive switch statements - throws if called | ||
| */ | ||
| function assertNever(value, message) { | ||
| throw new Error(`${message}: ${value}`); | ||
| } | ||
| /** | ||
| * Descriptions of each GM move for reference | ||
| */ | ||
| export const GM_MOVE_DESCRIPTIONS = { | ||
| reveal_unwelcome_truth: "Reveal information that complicates the situation or changes their understanding", | ||
| show_signs_of_doom: "Foreshadow an impending threat, show the clock is ticking", | ||
| offer_hard_bargain: "Present a difficult choice where all options have costs", | ||
| tick_clock: "Advance a threat clock or progress clock toward its conclusion", | ||
| separate_them: "Split the party, isolate a character, or cut off support", | ||
| put_someone_in_spot: "Put a character in immediate danger requiring response", | ||
| use_their_flaw: "Leverage a character's established weakness, fear, or bond", | ||
| drain_resources: "Deplete supplies, stress, HP, ammunition, or other resources", | ||
| turn_move_against_them: "Their action backfires or creates an unexpected problem", | ||
| inflict_harm: "Deal damage, apply a condition, or create a lasting consequence", | ||
| }; | ||
| /** | ||
| * Get appropriate GM moves based on outcome and position | ||
| */ | ||
| export function getAppropriateMoves(outcome, position) { | ||
| // Critical success: No moves needed | ||
| if (outcome === "critical_success") { | ||
| return []; | ||
| } | ||
| // Success: No moves needed | ||
| if (outcome === "success") { | ||
| return []; | ||
| } | ||
| // Partial success: Soft moves, always give something but with complication | ||
| if (outcome === "partial") { | ||
| switch (position) { | ||
| case "controlled": | ||
| return ["reveal_unwelcome_truth", "drain_resources"]; | ||
| case "risky": | ||
| return ["offer_hard_bargain", "tick_clock", "drain_resources"]; | ||
| case "desperate": | ||
| return ["put_someone_in_spot", "inflict_harm", "tick_clock"]; | ||
| } | ||
| } | ||
| // Failure: Hard moves based on position | ||
| if (outcome === "failure") { | ||
| switch (position) { | ||
| case "controlled": | ||
| return ["reveal_unwelcome_truth", "show_signs_of_doom", "offer_hard_bargain"]; | ||
| case "risky": | ||
| return ["tick_clock", "put_someone_in_spot", "use_their_flaw", "drain_resources"]; | ||
| case "desperate": | ||
| return ["inflict_harm", "separate_them", "turn_move_against_them", "tick_clock"]; | ||
| } | ||
| } | ||
| // Critical failure: Severe consequences | ||
| if (outcome === "critical_failure") { | ||
| switch (position) { | ||
| case "controlled": | ||
| return ["put_someone_in_spot", "tick_clock", "drain_resources"]; | ||
| case "risky": | ||
| return ["inflict_harm", "turn_move_against_them", "separate_them"]; | ||
| case "desperate": | ||
| return ["inflict_harm", "inflict_harm", "tick_clock"]; // Double harm possible | ||
| } | ||
| } | ||
| return []; | ||
| } | ||
| /** | ||
| * Get narrative guidance for the GM based on outcome and position | ||
| */ | ||
| export function getNarrativeGuidance(outcome, position) { | ||
| if (outcome === "critical_success") { | ||
| return "Exceptional success! Grant additional benefits beyond what was asked."; | ||
| } | ||
| if (outcome === "success") { | ||
| return "Clean success. They achieve what they set out to do."; | ||
| } | ||
| if (outcome === "partial") { | ||
| switch (position) { | ||
| case "controlled": | ||
| return "Partial success with minor complication. They mostly succeed, but something small goes wrong or is revealed."; | ||
| case "risky": | ||
| return "Partial success with significant complication. They succeed, but there's a real cost or new problem."; | ||
| case "desperate": | ||
| return "Partial success at great cost. They barely manage it, but the consequences are serious."; | ||
| default: | ||
| return assertNever(position, "Unknown position"); | ||
| } | ||
| } | ||
| if (outcome === "failure") { | ||
| switch (position) { | ||
| case "controlled": | ||
| return "Failure with soft consequences. They don't succeed, but the situation doesn't get much worse."; | ||
| case "risky": | ||
| return "Failure with hard consequences. They fail and the situation deteriorates meaningfully."; | ||
| case "desperate": | ||
| return "Failure with severe consequences. They fail and face serious, possibly lasting harm."; | ||
| default: | ||
| return assertNever(position, "Unknown position"); | ||
| } | ||
| } | ||
| if (outcome === "critical_failure") { | ||
| switch (position) { | ||
| case "controlled": | ||
| return "Critical failure. Even in a safe situation, something goes very wrong."; | ||
| case "risky": | ||
| return "Critical failure. The situation spirals badly, multiple consequences stack."; | ||
| case "desperate": | ||
| return "Catastrophic failure. Everything that could go wrong does. Maximum consequences."; | ||
| default: | ||
| return assertNever(position, "Unknown position"); | ||
| } | ||
| } | ||
| return "Resolve the action based on the circumstances."; | ||
| } | ||
| //# sourceMappingURL=gm-moves.js.map |
| {"version":3,"file":"gm-moves.js","sourceRoot":"","sources":["../../src/game/gm-moves.ts"],"names":[],"mappings":"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"} |
@@ -7,2 +7,16 @@ /** | ||
| /** | ||
| * Stress tracker for push/resist mechanics | ||
| * Inspired by Forged in the Dark stress system | ||
| */ | ||
| export interface StressTracker { | ||
| /** Current stress level */ | ||
| current: number; | ||
| /** Maximum stress before trauma (default: 9) */ | ||
| max: number; | ||
| } | ||
| /** | ||
| * Create a default stress tracker | ||
| */ | ||
| export declare function createDefaultStressTracker(): StressTracker; | ||
| /** | ||
| * Character psychology for story weaving | ||
@@ -71,2 +85,5 @@ * These elements allow the GM to personalize the narrative | ||
| }; | ||
| stress: StressTracker; | ||
| /** Permanent consequences from trauma */ | ||
| trauma: string[]; | ||
| skills: Skill[]; | ||
@@ -73,0 +90,0 @@ specialAbilities: SpecialAbility[]; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"character.d.ts","sourceRoot":"","sources":["../../src/game/character.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"character.d.ts","sourceRoot":"","sources":["../../src/game/character.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzD;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,2BAA2B;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,gDAAgD;IAChD,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,wBAAgB,0BAA0B,IAAI,aAAa,CAE1D;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,uDAAuD;IACvD,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,mDAAmD;IACnD,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,mCAAmC;IACnC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,0DAA0D;IAC1D,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,wDAAwD;IACxD,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,mBAAmB,CAQ3D;AAED;;GAEG;AACH,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,WAAW,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,SAAS,GAAG,WAAW,GAAG,aAAa,GAAG,SAAS,CAAC;IAC3D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,2CAA2C;IAC3C,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,uCAAuC;IACvC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,yCAAyC;IACzC,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IAGpB,SAAS,EAAE,SAAS,CAAC;IACrB,EAAE,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAGrC,MAAM,EAAE,aAAa,CAAC;IACtB,yCAAyC;IACzC,MAAM,EAAE,MAAM,EAAE,CAAC;IAGjB,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,gBAAgB,EAAE,cAAc,EAAE,CAAC;IAGnC,SAAS,EAAE,kBAAkB,CAAC;IAG9B,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,KAAK,EAAE,MAAM,EAAE,CAAC;IAGhB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IAGnB,UAAU,EAAE,mBAAmB,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,WAAW,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GACrB,aAAa,GACb,MAAM,GACN,UAAU,GACV,aAAa,GACb,YAAY,GACZ,UAAU,GACV,YAAY,CAAC;AAEjB;;GAEG;AACH,MAAM,WAAW,GAAG;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;IACzD,aAAa,EAAE,MAAM,EAAE,CAAC;IAGxB,2CAA2C;IAC3C,aAAa,EAAE,aAAa,CAAC;IAC7B,uCAAuC;IACvC,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,oDAAoD;IACpD,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACxC;AAED;;GAEG;AACH,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,SAAS,CAAC;IACrB,EAAE,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,MAAM,EAAE,QAAQ,GAAG,UAAU,GAAG,OAAO,GAAG,MAAM,CAAC;CAClD"} |
@@ -5,2 +5,8 @@ /** | ||
| /** | ||
| * Create a default stress tracker | ||
| */ | ||
| export function createDefaultStressTracker() { | ||
| return { current: 0, max: 9 }; | ||
| } | ||
| /** | ||
| * Create an empty psychology (for characters without defined psychology) | ||
@@ -7,0 +13,0 @@ */ |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"character.js","sourceRoot":"","sources":["../../src/game/character.ts"],"names":[],"mappings":"AAAA;;GAEG;AAsBH;;GAEG;AACH,MAAM,UAAU,qBAAqB;IACnC,OAAO;QACL,KAAK,EAAE,EAAE;QACT,KAAK,EAAE,EAAE;QACT,SAAS,EAAE,EAAE;QACb,KAAK,EAAE,EAAE;QACT,KAAK,EAAE,EAAE;KACV,CAAC;AACJ,CAAC"} | ||
| {"version":3,"file":"character.js","sourceRoot":"","sources":["../../src/game/character.ts"],"names":[],"mappings":"AAAA;;GAEG;AAgBH;;GAEG;AACH,MAAM,UAAU,0BAA0B;IACxC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;AAChC,CAAC;AAmBD;;GAEG;AACH,MAAM,UAAU,qBAAqB;IACnC,OAAO;QACL,KAAK,EAAE,EAAE;QACT,KAAK,EAAE,EAAE;QACT,SAAS,EAAE,EAAE;QACb,KAAK,EAAE,EAAE;QACT,KAAK,EAAE,EAAE;KACV,CAAC;AACJ,CAAC"} |
| /** | ||
| * Combat types | ||
| */ | ||
| import type { DiceResult, RollAdvantageState } from "./dice.js"; | ||
| import type { DiceResult, RollAdvantageState, OutcomeType, Position } from "./dice.js"; | ||
| /** | ||
@@ -39,2 +39,3 @@ * Combat state when combat is active | ||
| export interface AttackResult { | ||
| /** @deprecated Use outcome instead */ | ||
| hit: boolean; | ||
@@ -49,2 +50,8 @@ roll: DiceResult; | ||
| damageModification?: DamageModification; | ||
| /** Three-tier outcome (replaces hit boolean) */ | ||
| outcome: OutcomeType; | ||
| /** Graze damage for partial hits (50% of full damage) */ | ||
| grazeDamage?: number; | ||
| /** Position for consequence interpretation */ | ||
| position?: Position; | ||
| } | ||
@@ -51,0 +58,0 @@ /** |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"combat.d.ts","sourceRoot":"","sources":["../../src/game/combat.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAEhE;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,8CAA8C;IAC9C,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,0BAA0B;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,0BAA0B;IAC1B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,YAAY,GAAG,eAAe,CAAC;IACvC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,OAAO,CAAC;IACb,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IAC1B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,+CAA+C;IAC/C,cAAc,EAAE,kBAAkB,CAAC;IACnC,mEAAmE;IACnE,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;CACzC;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB"} | ||
| {"version":3,"file":"combat.d.ts","sourceRoot":"","sources":["../../src/game/combat.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAEvF;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,8CAA8C;IAC9C,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,0BAA0B;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,0BAA0B;IAC1B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,YAAY,GAAG,eAAe,CAAC;IACvC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,sCAAsC;IACtC,GAAG,EAAE,OAAO,CAAC;IACb,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IAC1B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,+CAA+C;IAC/C,cAAc,EAAE,kBAAkB,CAAC;IACnC,mEAAmE;IACnE,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,gDAAgD;IAChD,OAAO,EAAE,WAAW,CAAC;IACrB,yDAAyD;IACzD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB"} |
+23
-0
@@ -6,2 +6,18 @@ /** | ||
| /** | ||
| * Outcome type for five-tier resolution | ||
| * Replaces binary success/failure with graduated outcomes: | ||
| * critical_success, success, partial, failure, critical_failure | ||
| */ | ||
| export type OutcomeType = "critical_success" | "success" | "partial" | "failure" | "critical_failure"; | ||
| /** | ||
| * Position describes the risk level of an action | ||
| * Affects severity of consequences on failure/partial | ||
| */ | ||
| export type Position = "controlled" | "risky" | "desperate"; | ||
| /** | ||
| * Effect level describes the potential impact of success | ||
| * Affects how much progress/damage/impact a success achieves | ||
| */ | ||
| export type EffectLevel = "limited" | "standard" | "great"; | ||
| /** | ||
| * RNG state for deterministic randomness | ||
@@ -72,2 +88,3 @@ */ | ||
| roll: DiceResult; | ||
| /** @deprecated Use outcome instead */ | ||
| success: boolean; | ||
@@ -78,2 +95,8 @@ margin: number; | ||
| advantageState: RollAdvantageState; | ||
| /** Three-tier outcome (replaces success boolean) */ | ||
| outcome: OutcomeType; | ||
| /** Position for consequence interpretation */ | ||
| position?: Position; | ||
| /** Effect level for success interpretation */ | ||
| effectLevel?: EffectLevel; | ||
| } | ||
@@ -80,0 +103,0 @@ /** |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"dice.d.ts","sourceRoot":"","sources":["../../src/game/dice.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAAG,cAAc,GAAG,QAAQ,CAAC;AAEzE;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,WAAW,GAAG,cAAc,CAAC;IACnC,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,yCAAyC;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,2CAA2C;IAC3C,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,oBAAoB;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,0BAA0B;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,sBAAsB;IACtB,QAAQ,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IACjC,gDAAgD;IAChD,SAAS,CAAC,EAAE,aAAa,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,WAAW,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,WAAW,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,6CAA6C;IAC7C,cAAc,EAAE,kBAAkB,CAAC;CACpC;AAED;;GAEG;AACH,eAAO,MAAM,UAAU;;;;;CAKb,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,MAAM,OAAO,UAAU,CAAC"} | ||
| {"version":3,"file":"dice.d.ts","sourceRoot":"","sources":["../../src/game/dice.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG,kBAAkB,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,kBAAkB,CAAC;AAEtG;;;GAGG;AACH,MAAM,MAAM,QAAQ,GAAG,YAAY,GAAG,OAAO,GAAG,WAAW,CAAC;AAE5D;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,UAAU,GAAG,OAAO,CAAC;AAE3D;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAAG,cAAc,GAAG,QAAQ,CAAC;AAEzE;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,WAAW,GAAG,cAAc,CAAC;IACnC,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,yCAAyC;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,2CAA2C;IAC3C,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,oBAAoB;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,0BAA0B;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,sBAAsB;IACtB,QAAQ,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IACjC,gDAAgD;IAChD,SAAS,CAAC,EAAE,aAAa,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,WAAW,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,WAAW,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,UAAU,CAAC;IACjB,sCAAsC;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,6CAA6C;IAC7C,cAAc,EAAE,kBAAkB,CAAC;IACnC,oDAAoD;IACpD,OAAO,EAAE,WAAW,CAAC;IACrB,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,8CAA8C;IAC9C,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED;;GAEG;AACH,eAAO,MAAM,UAAU;;;;;CAKb,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,MAAM,OAAO,UAAU,CAAC"} |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"dice.js","sourceRoot":"","sources":["../../src/game/dice.ts"],"names":[],"mappings":"AAAA;;GAEG;AAmFH;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,IAAI,EAAE,CAAC;IACP,QAAQ,EAAE,EAAE;IACZ,IAAI,EAAE,EAAE;IACR,OAAO,EAAE,EAAE;CACH,CAAC"} | ||
| {"version":3,"file":"dice.js","sourceRoot":"","sources":["../../src/game/dice.ts"],"names":[],"mappings":"AAAA;;GAEG;AA6GH;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,IAAI,EAAE,CAAC;IACP,QAAQ,EAAE,EAAE;IACZ,IAAI,EAAE,EAAE;IACR,OAAO,EAAE,EAAE;CACH,CAAC"} |
@@ -13,2 +13,3 @@ /** | ||
| export * from "./player.js"; | ||
| export * from "./gm-moves.js"; | ||
| //# sourceMappingURL=index.d.ts.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/game/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC"} | ||
| {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/game/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC"} |
@@ -13,2 +13,3 @@ /** | ||
| export * from "./player.js"; | ||
| export * from "./gm-moves.js"; | ||
| //# sourceMappingURL=index.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/game/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC"} | ||
| {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/game/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC"} |
@@ -72,2 +72,30 @@ /** | ||
| /** | ||
| * Stress system configuration (for push/resist mechanics) | ||
| */ | ||
| export interface StressConfig { | ||
| /** Maximum stress before trauma (default: 9) */ | ||
| maxStress: number; | ||
| /** Stress cost to push a roll (default: 2) */ | ||
| pushCost: number; | ||
| /** Bonus dice when pushing (default: "1d6") */ | ||
| pushBonus: string; | ||
| /** Base stress cost to resist consequences (default: 1) */ | ||
| resistCost: number; | ||
| /** Stress recovered per short rest (default: 2) */ | ||
| recoveryPerShortRest: number; | ||
| /** Stress recovered per long rest (default: all) */ | ||
| recoveryPerLongRest: number | "all"; | ||
| } | ||
| /** | ||
| * Outcome threshold configuration (for five-tier resolution) | ||
| */ | ||
| export interface OutcomeThresholds { | ||
| /** Margin required for critical success (default: 10) */ | ||
| criticalSuccess: number; | ||
| /** Margin required for success (default: 0) */ | ||
| success: number; | ||
| /** Margin required for partial success (default: -4) */ | ||
| partial: number; | ||
| } | ||
| /** | ||
| * Full mechanics configuration for a world pack | ||
@@ -90,2 +118,6 @@ */ | ||
| vulnerabilityMultiplier?: number; | ||
| /** Stress system configuration */ | ||
| stress?: Partial<StressConfig>; | ||
| /** Outcome thresholds for five-tier resolution */ | ||
| outcomeThresholds?: Partial<OutcomeThresholds>; | ||
| } | ||
@@ -109,2 +141,10 @@ /** | ||
| /** | ||
| * Base stress configuration | ||
| */ | ||
| export declare const BASE_STRESS: StressConfig; | ||
| /** | ||
| * Base outcome thresholds | ||
| */ | ||
| export declare const BASE_OUTCOME_THRESHOLDS: OutcomeThresholds; | ||
| /** | ||
| * Fully resolved mechanics with all defaults applied | ||
@@ -120,2 +160,4 @@ */ | ||
| vulnerabilityMultiplier: number; | ||
| stress: StressConfig; | ||
| outcomeThresholds: OutcomeThresholds; | ||
| } | ||
@@ -122,0 +164,0 @@ /** |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"mechanics.d.ts","sourceRoot":"","sources":["../../src/rules/mechanics.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"mechanics.d.ts","sourceRoot":"","sources":["../../src/rules/mechanics.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,+DAA+D;IAC/D,IAAI,EAAE,MAAM,CAAC;IACb,qDAAqD;IACrD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,qDAAqD;IACrD,UAAU,EAAE,OAAO,CAAC;IACpB,iDAAiD;IACjD,aAAa,EAAE,OAAO,CAAC;IACvB,sDAAsD;IACtD,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,mEAAmE;IACnE,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,kEAAkE;IAClE,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,qDAAqD;IACrD,gBAAgB,EAAE,MAAM,CAAC;IACzB,2EAA2E;IAC3E,WAAW,EAAE,OAAO,CAAC;IACrB,wEAAwE;IACxE,WAAW,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,mDAAmD;IACnD,OAAO,EAAE,OAAO,CAAC;IACjB,yDAAyD;IACzD,IAAI,EAAE,MAAM,CAAC;IACb,kEAAkE;IAClE,oBAAoB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,+CAA+C;IAC/C,oBAAoB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACzC;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,+DAA+D;IAC/D,IAAI,EAAE,MAAM,CAAC;IACb,mDAAmD;IACnD,eAAe,EAAE,aAAa,GAAG,iBAAiB,GAAG,OAAO,CAAC;IAC7D,wCAAwC;IACxC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,gDAAgD;IAChD,SAAS,EAAE,MAAM,CAAC;IAClB,8CAA8C;IAC9C,QAAQ,EAAE,MAAM,CAAC;IACjB,+CAA+C;IAC/C,SAAS,EAAE,MAAM,CAAC;IAClB,2DAA2D;IAC3D,UAAU,EAAE,MAAM,CAAC;IACnB,mDAAmD;IACnD,oBAAoB,EAAE,MAAM,CAAC;IAC7B,oDAAoD;IACpD,mBAAmB,EAAE,MAAM,GAAG,KAAK,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,yDAAyD;IACzD,eAAe,EAAE,MAAM,CAAC;IACxB,+CAA+C;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,wDAAwD;IACxD,OAAO,EAAE,MAAM,CAAC;CAGjB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,0BAA0B;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IACjC,yBAAyB;IACzB,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/B,qBAAqB;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IACrC,yCAAyC;IACzC,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,uCAAuC;IACvC,SAAS,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IACrC,mDAAmD;IACnD,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,sDAAsD;IACtD,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,kCAAkC;IAClC,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/B,kDAAkD;IAClD,iBAAiB,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;CAChD;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,aAG1B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,YAIzB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,eAM5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,eAG5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,YAOzB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,uBAAuB,EAAE,iBAKrC,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,aAAa,CAAC;IACvB,MAAM,EAAE,YAAY,CAAC;IACrB,SAAS,EAAE,eAAe,CAAC;IAC3B,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,SAAS,EAAE,eAAe,CAAC;IAC3B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,uBAAuB,EAAE,MAAM,CAAC;IAChC,MAAM,EAAE,YAAY,CAAC;IACrB,iBAAiB,EAAE,iBAAiB,CAAC;CACtC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,CAAC,EAAE,eAAe,GAAG,iBAAiB,CAY5E;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,eAAe,GACzB,OAAO,CAET;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,eAAe,GACzB,OAAO,CAET"} |
@@ -39,2 +39,22 @@ /** | ||
| /** | ||
| * Base stress configuration | ||
| */ | ||
| export const BASE_STRESS = { | ||
| maxStress: 9, | ||
| pushCost: 2, | ||
| pushBonus: "1d6", | ||
| resistCost: 1, | ||
| recoveryPerShortRest: 2, | ||
| recoveryPerLongRest: "all", | ||
| }; | ||
| /** | ||
| * Base outcome thresholds | ||
| */ | ||
| export const BASE_OUTCOME_THRESHOLDS = { | ||
| criticalSuccess: 10, // margin >= 10 (or nat 20) | ||
| success: 0, // margin >= 0 | ||
| partial: -4, // margin >= -4 | ||
| // below = failure, nat 1 = critical failure | ||
| }; | ||
| /** | ||
| * Resolve mechanics configuration with defaults | ||
@@ -51,2 +71,4 @@ */ | ||
| vulnerabilityMultiplier: config?.vulnerabilityMultiplier ?? 2.0, | ||
| stress: { ...BASE_STRESS, ...config?.stress }, | ||
| outcomeThresholds: { ...BASE_OUTCOME_THRESHOLDS, ...config?.outcomeThresholds }, | ||
| }; | ||
@@ -53,0 +75,0 @@ } |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"mechanics.js","sourceRoot":"","sources":["../../src/rules/mechanics.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA4FH;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAkB;IACzC,IAAI,EAAE,EAAE;IACR,OAAO,EAAE,KAAK;CACf,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAiB;IACvC,UAAU,EAAE,IAAI;IAChB,aAAa,EAAE,IAAI;IACnB,aAAa,EAAE,CAAC;CACjB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAoB;IAC7C,SAAS,EAAE,CAAC,EAAE,CAAC;IACf,SAAS,EAAE,CAAC,CAAC,CAAC;IACd,gBAAgB,EAAE,CAAC;IACnB,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,IAAI;CAClB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAoB;IAC7C,IAAI,EAAE,KAAK;IACX,eAAe,EAAE,aAAa;CAC/B,CAAC;AAeF;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAwB;IACvD,OAAO;QACL,OAAO,EAAE,EAAE,GAAG,YAAY,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE;QAChD,MAAM,EAAE,EAAE,GAAG,WAAW,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE;QAC7C,SAAS,EAAE,EAAE,GAAG,cAAc,EAAE,GAAG,MAAM,EAAE,SAAS,EAAE;QACtD,SAAS,EAAE,MAAM,EAAE,SAAS;QAC5B,SAAS,EAAE,EAAE,GAAG,cAAc,EAAE,GAAG,MAAM,EAAE,SAAS,EAAE;QACtD,oBAAoB,EAAE,MAAM,EAAE,oBAAoB,IAAI,GAAG;QACzD,uBAAuB,EAAE,MAAM,EAAE,uBAAuB,IAAI,GAAG;KAChE,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAC/B,OAAe,EACf,SAA0B;IAE1B,OAAO,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AAC/C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAC/B,OAAe,EACf,SAA0B;IAE1B,OAAO,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AAC/C,CAAC"} | ||
| {"version":3,"file":"mechanics.js","sourceRoot":"","sources":["../../src/rules/mechanics.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAgIH;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAkB;IACzC,IAAI,EAAE,EAAE;IACR,OAAO,EAAE,KAAK;CACf,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAiB;IACvC,UAAU,EAAE,IAAI;IAChB,aAAa,EAAE,IAAI;IACnB,aAAa,EAAE,CAAC;CACjB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAoB;IAC7C,SAAS,EAAE,CAAC,EAAE,CAAC;IACf,SAAS,EAAE,CAAC,CAAC,CAAC;IACd,gBAAgB,EAAE,CAAC;IACnB,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,IAAI;CAClB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAoB;IAC7C,IAAI,EAAE,KAAK;IACX,eAAe,EAAE,aAAa;CAC/B,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAiB;IACvC,SAAS,EAAE,CAAC;IACZ,QAAQ,EAAE,CAAC;IACX,SAAS,EAAE,KAAK;IAChB,UAAU,EAAE,CAAC;IACb,oBAAoB,EAAE,CAAC;IACvB,mBAAmB,EAAE,KAAK;CAC3B,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAsB;IACxD,eAAe,EAAE,EAAE,EAAG,2BAA2B;IACjD,OAAO,EAAE,CAAC,EAAY,cAAc;IACpC,OAAO,EAAE,CAAC,CAAC,EAAW,eAAe;IACrC,4CAA4C;CAC7C,CAAC;AAiBF;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAwB;IACvD,OAAO;QACL,OAAO,EAAE,EAAE,GAAG,YAAY,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE;QAChD,MAAM,EAAE,EAAE,GAAG,WAAW,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE;QAC7C,SAAS,EAAE,EAAE,GAAG,cAAc,EAAE,GAAG,MAAM,EAAE,SAAS,EAAE;QACtD,SAAS,EAAE,MAAM,EAAE,SAAS;QAC5B,SAAS,EAAE,EAAE,GAAG,cAAc,EAAE,GAAG,MAAM,EAAE,SAAS,EAAE;QACtD,oBAAoB,EAAE,MAAM,EAAE,oBAAoB,IAAI,GAAG;QACzD,uBAAuB,EAAE,MAAM,EAAE,uBAAuB,IAAI,GAAG;QAC/D,MAAM,EAAE,EAAE,GAAG,WAAW,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE;QAC7C,iBAAiB,EAAE,EAAE,GAAG,uBAAuB,EAAE,GAAG,MAAM,EAAE,iBAAiB,EAAE;KAChF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAC/B,OAAe,EACf,SAA0B;IAE1B,OAAO,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AAC/C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAC/B,OAAe,EACf,SAA0B;IAE1B,OAAO,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AAC/C,CAAC"} |
+1
-1
| { | ||
| "name": "@mythxengine/types", | ||
| "version": "0.1.1", | ||
| "version": "0.1.4", | ||
| "description": "Core type definitions for MythX RPG engine", | ||
@@ -5,0 +5,0 @@ "type": "module", |
184258
9.72%86
4.88%3319
9.11%