Sign In

@mythxengine/types

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@mythxengine/types - npm Package Compare versions

Comparing version
0.1.1
to
0.1.4
+37
dist/game/gm-moves.d.ts
/**
* 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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"}
+17
-0

@@ -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

@@ -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":"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"}

@@ -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"}

@@ -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":"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"}

@@ -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"}
{
"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",