@ai-rpg-engine/modules 2.0.1 → 2.0.2
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/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/player-rumor.d.ts +69 -0
- package/dist/player-rumor.d.ts.map +1 -0
- package/dist/player-rumor.js +186 -0
- package/dist/player-rumor.js.map +1 -0
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -30,4 +30,6 @@ export { createSimulationInspector, inspectEntity, inspectAllEntities, inspectFa
|
|
|
30
30
|
export type { EntityInspection, FactionInspection, ZoneInspection, DistrictInspection, SimulationSnapshot, } from './simulation-inspector.js';
|
|
31
31
|
export { deriveStance, getReputationConsequence, evolveTitle, buildPlayerDescriptor, } from './social-consequence.js';
|
|
32
32
|
export type { Stance, ReputationConsequence, TitleEvolution, } from './social-consequence.js';
|
|
33
|
+
export { spawnPlayerRumor, spawnReputationRumor, propagateRumor, shouldMutate, mutateRumorClaim, deriveRumorValence, getRumorsKnownToFaction, getRumorsInDistrict, formatRumorForDirector, } from './player-rumor.js';
|
|
34
|
+
export type { PlayerRumor, RumorValence, RumorMutation, MilestoneHint, } from './player-rumor.js';
|
|
33
35
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACrG,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAChE,YAAY,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACnF,YAAY,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,WAAW,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AACzI,YAAY,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC5G,OAAO,EACL,mBAAmB,EACnB,YAAY,EACZ,SAAS,EACT,SAAS,EACT,cAAc,EACd,QAAQ,EACR,SAAS,EACT,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,MAAM,EACN,MAAM,EACN,cAAc,EACd,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,aAAa,GACd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,sBAAsB,EACtB,gBAAgB,EAChB,oBAAoB,EACpB,WAAW,EACX,YAAY,GACb,MAAM,wBAAwB,CAAC;AAChC,YAAY,EACV,SAAS,EACT,cAAc,EACd,eAAe,EACf,sBAAsB,GACvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,qBAAqB,EACrB,WAAW,EACX,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,SAAS,EACT,UAAU,EACV,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,qBAAqB,EACrB,aAAa,EACb,YAAY,GACb,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,qBAAqB,EACrB,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,YAAY,EACZ,wBAAwB,EACxB,UAAU,EACV,cAAc,GACf,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,qBAAqB,EACrB,gBAAgB,EAChB,WAAW,GACZ,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,sBAAsB,GACvB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EACV,aAAa,EACb,qBAAqB,EACrB,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,sBAAsB,EACtB,aAAa,EACb,kBAAkB,EAClB,WAAW,GACZ,MAAM,wBAAwB,CAAC;AAChC,YAAY,EACV,WAAW,EACX,sBAAsB,GACvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,eAAe,EACf,kBAAkB,EAClB,aAAa,EACb,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,EACZ,iBAAiB,GAClB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EACV,SAAS,EACT,WAAW,GACZ,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,0BAA0B,EAC1B,kBAAkB,EAClB,sBAAsB,EACtB,cAAc,EACd,mBAAmB,GACpB,MAAM,4BAA4B,CAAC;AACpC,YAAY,EACV,eAAe,EACf,gBAAgB,EAChB,sBAAsB,EACtB,0BAA0B,EAC1B,gBAAgB,GACjB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,yBAAyB,EACzB,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,WAAW,EACX,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,cAAc,EACd,sBAAsB,EACtB,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,2BAA2B,CAAC;AACnC,YAAY,EACV,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,YAAY,EACZ,wBAAwB,EACxB,WAAW,EACX,qBAAqB,GACtB,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACV,MAAM,EACN,qBAAqB,EACrB,cAAc,GACf,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,uBAAuB,EACvB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,WAAW,EACX,YAAY,EACZ,aAAa,EACb,aAAa,GACd,MAAM,mBAAmB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -16,4 +16,5 @@ export { createBeliefProvenance, traceEntityBelief, traceFactionBelief, traceSub
|
|
|
16
16
|
export { createObserverPresentation, presentForObserver, presentForAllObservers, getDivergences, getEventDivergences, } from './observer-presentation.js';
|
|
17
17
|
export { createSimulationInspector, inspectEntity, inspectAllEntities, inspectFaction, inspectAllFactions, inspectZone, inspectAllZones, inspectDistrict, inspectAllDistricts, createSnapshot, formatEntityInspection, formatFactionInspection, formatDistrictInspection, } from './simulation-inspector.js';
|
|
18
18
|
export { deriveStance, getReputationConsequence, evolveTitle, buildPlayerDescriptor, } from './social-consequence.js';
|
|
19
|
+
export { spawnPlayerRumor, spawnReputationRumor, propagateRumor, shouldMutate, mutateRumorClaim, deriveRumorValence, getRumorsKnownToFaction, getRumorsInDistrict, formatRumorForDirector, } from './player-rumor.js';
|
|
19
20
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAEvD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACrG,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEhE,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEnF,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAExD,OAAO,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,WAAW,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAEzI,OAAO,EACL,mBAAmB,EACnB,YAAY,EACZ,SAAS,EACT,SAAS,EACT,cAAc,EACd,QAAQ,EACR,SAAS,EACT,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAY7B,OAAO,EACL,sBAAsB,EACtB,gBAAgB,EAChB,oBAAoB,EACpB,WAAW,EACX,YAAY,GACb,MAAM,wBAAwB,CAAC;AAOhC,OAAO,EACL,qBAAqB,EACrB,WAAW,EACX,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,SAAS,EACT,UAAU,EACV,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAS/B,OAAO,EACL,qBAAqB,EACrB,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,YAAY,EACZ,wBAAwB,EACxB,UAAU,EACV,cAAc,GACf,MAAM,uBAAuB,CAAC;AAS/B,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,sBAAsB,GACvB,MAAM,wBAAwB,CAAC;AAOhC,OAAO,EACL,sBAAsB,EACtB,aAAa,EACb,kBAAkB,EAClB,WAAW,GACZ,MAAM,wBAAwB,CAAC;AAKhC,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,oBAAoB,CAAC;AAQ5B,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,EACZ,iBAAiB,GAClB,MAAM,wBAAwB,CAAC;AAKhC,OAAO,EACL,0BAA0B,EAC1B,kBAAkB,EAClB,sBAAsB,EACtB,cAAc,EACd,mBAAmB,GACpB,MAAM,4BAA4B,CAAC;AAQpC,OAAO,EACL,yBAAyB,EACzB,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,WAAW,EACX,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,cAAc,EACd,sBAAsB,EACtB,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,2BAA2B,CAAC;AAQnC,OAAO,EACL,YAAY,EACZ,wBAAwB,EACxB,WAAW,EACX,qBAAqB,GACtB,MAAM,yBAAyB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAEvD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACrG,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEhE,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEnF,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAExD,OAAO,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,WAAW,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAEzI,OAAO,EACL,mBAAmB,EACnB,YAAY,EACZ,SAAS,EACT,SAAS,EACT,cAAc,EACd,QAAQ,EACR,SAAS,EACT,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAY7B,OAAO,EACL,sBAAsB,EACtB,gBAAgB,EAChB,oBAAoB,EACpB,WAAW,EACX,YAAY,GACb,MAAM,wBAAwB,CAAC;AAOhC,OAAO,EACL,qBAAqB,EACrB,WAAW,EACX,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,SAAS,EACT,UAAU,EACV,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAS/B,OAAO,EACL,qBAAqB,EACrB,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,YAAY,EACZ,wBAAwB,EACxB,UAAU,EACV,cAAc,GACf,MAAM,uBAAuB,CAAC;AAS/B,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,sBAAsB,GACvB,MAAM,wBAAwB,CAAC;AAOhC,OAAO,EACL,sBAAsB,EACtB,aAAa,EACb,kBAAkB,EAClB,WAAW,GACZ,MAAM,wBAAwB,CAAC;AAKhC,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,oBAAoB,CAAC;AAQ5B,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,EACZ,iBAAiB,GAClB,MAAM,wBAAwB,CAAC;AAKhC,OAAO,EACL,0BAA0B,EAC1B,kBAAkB,EAClB,sBAAsB,EACtB,cAAc,EACd,mBAAmB,GACpB,MAAM,4BAA4B,CAAC;AAQpC,OAAO,EACL,yBAAyB,EACzB,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,WAAW,EACX,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,cAAc,EACd,sBAAsB,EACtB,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,2BAA2B,CAAC;AAQnC,OAAO,EACL,YAAY,EACZ,wBAAwB,EACxB,WAAW,EACX,qBAAqB,GACtB,MAAM,yBAAyB,CAAC;AAMjC,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,uBAAuB,EACvB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import type { CharacterProfile } from '@ai-rpg-engine/character-profile';
|
|
2
|
+
export type RumorValence = 'heroic' | 'fearsome' | 'tragic' | 'mysterious';
|
|
3
|
+
export type PlayerRumor = {
|
|
4
|
+
id: string;
|
|
5
|
+
/** Structured claim: "defeated the Bone Collector" */
|
|
6
|
+
claim: string;
|
|
7
|
+
/** From buildPlayerDescriptor — how NPCs describe the player */
|
|
8
|
+
subjectDescriptor: string;
|
|
9
|
+
/** Event type that spawned it */
|
|
10
|
+
sourceEvent: string;
|
|
11
|
+
/** Milestone label if applicable */
|
|
12
|
+
sourceMilestone?: string;
|
|
13
|
+
/** Faction that witnessed/originated */
|
|
14
|
+
originFactionId?: string;
|
|
15
|
+
/** District where it happened */
|
|
16
|
+
originDistrictId?: string;
|
|
17
|
+
/** 0-1, decays with hops */
|
|
18
|
+
confidence: number;
|
|
19
|
+
/** 0-1, increases with mutations */
|
|
20
|
+
distortion: number;
|
|
21
|
+
/** How many times the claim has been mutated */
|
|
22
|
+
mutationCount: number;
|
|
23
|
+
/** Emotional charge */
|
|
24
|
+
valence: RumorValence;
|
|
25
|
+
/** FactionIds that have received this rumor */
|
|
26
|
+
spreadTo: string[];
|
|
27
|
+
/** Engine tick when spawned */
|
|
28
|
+
originTick: number;
|
|
29
|
+
};
|
|
30
|
+
export type RumorMutation = {
|
|
31
|
+
type: 'exaggerate' | 'invert' | 'conflate';
|
|
32
|
+
field: 'claim' | 'valence';
|
|
33
|
+
before: string;
|
|
34
|
+
after: string;
|
|
35
|
+
};
|
|
36
|
+
export type MilestoneHint = {
|
|
37
|
+
label: string;
|
|
38
|
+
description: string;
|
|
39
|
+
tags: string[];
|
|
40
|
+
};
|
|
41
|
+
/** Derive emotional charge from milestone tags. */
|
|
42
|
+
export declare function deriveRumorValence(tags: string[]): RumorValence;
|
|
43
|
+
/** Spawn a player rumor from a milestone event. */
|
|
44
|
+
export declare function spawnPlayerRumor(milestone: MilestoneHint, profile: CharacterProfile, originFactionId?: string, originDistrictId?: string, tick?: number): PlayerRumor;
|
|
45
|
+
/** Spawn a player rumor from a reputation change event. */
|
|
46
|
+
export declare function spawnReputationRumor(factionId: string, delta: number, factionName: string, profile: CharacterProfile, districtId?: string, tick?: number): PlayerRumor;
|
|
47
|
+
/**
|
|
48
|
+
* Propagate a rumor to a new faction.
|
|
49
|
+
* Returns a new rumor with the target added to spreadTo, confidence decayed,
|
|
50
|
+
* and possible mutation applied.
|
|
51
|
+
*/
|
|
52
|
+
export declare function propagateRumor(rumor: PlayerRumor, targetFactionId: string, distortionRate?: number): PlayerRumor;
|
|
53
|
+
/** Determine if a rumor should mutate during propagation. */
|
|
54
|
+
export declare function shouldMutate(rumor: PlayerRumor): boolean;
|
|
55
|
+
/**
|
|
56
|
+
* Apply a structured mutation to a rumor's claim.
|
|
57
|
+
* Returns the mutated rumor and a record of what changed.
|
|
58
|
+
*/
|
|
59
|
+
export declare function mutateRumorClaim(rumor: PlayerRumor): {
|
|
60
|
+
rumor: PlayerRumor;
|
|
61
|
+
mutation: RumorMutation;
|
|
62
|
+
};
|
|
63
|
+
/** Get all rumors known to a specific faction (originated or spread to). */
|
|
64
|
+
export declare function getRumorsKnownToFaction(rumors: PlayerRumor[], factionId: string): PlayerRumor[];
|
|
65
|
+
/** Get all rumors that originated in a specific district. */
|
|
66
|
+
export declare function getRumorsInDistrict(rumors: PlayerRumor[], districtId: string): PlayerRumor[];
|
|
67
|
+
/** Format a single rumor for the director /rumors view. */
|
|
68
|
+
export declare function formatRumorForDirector(rumor: PlayerRumor): string;
|
|
69
|
+
//# sourceMappingURL=player-rumor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"player-rumor.d.ts","sourceRoot":"","sources":["../src/player-rumor.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAIzE,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,UAAU,GAAG,QAAQ,GAAG,YAAY,CAAC;AAE3E,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,sDAAsD;IACtD,KAAK,EAAE,MAAM,CAAC;IACd,gEAAgE;IAChE,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iCAAiC;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,oCAAoC;IACpC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,wCAAwC;IACxC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iCAAiC;IACjC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,4BAA4B;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,oCAAoC;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,gDAAgD;IAChD,aAAa,EAAE,MAAM,CAAC;IACtB,uBAAuB;IACvB,OAAO,EAAE,YAAY,CAAC;IACtB,+CAA+C;IAC/C,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,+BAA+B;IAC/B,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,YAAY,GAAG,QAAQ,GAAG,UAAU,CAAC;IAC3C,KAAK,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB,CAAC;AA8BF,mDAAmD;AACnD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,YAAY,CAO/D;AAgBD,mDAAmD;AACnD,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,aAAa,EACxB,OAAO,EAAE,gBAAgB,EACzB,eAAe,CAAC,EAAE,MAAM,EACxB,gBAAgB,CAAC,EAAE,MAAM,EACzB,IAAI,GAAE,MAAU,GACf,WAAW,CAgBb;AAED,2DAA2D;AAC3D,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,gBAAgB,EACzB,UAAU,CAAC,EAAE,MAAM,EACnB,IAAI,GAAE,MAAU,GACf,WAAW,CAoBb;AAID;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,WAAW,EAClB,eAAe,EAAE,MAAM,EACvB,cAAc,GAAE,MAA6B,GAC5C,WAAW,CAkBb;AAED,6DAA6D;AAC7D,wBAAgB,YAAY,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAOxD;AAID;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,WAAW,GAAG;IAAE,KAAK,EAAE,WAAW,CAAC;IAAC,QAAQ,EAAE,aAAa,CAAA;CAAE,CA8BpG;AAcD,4EAA4E;AAC5E,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,WAAW,EAAE,CAI/F;AAED,6DAA6D;AAC7D,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,WAAW,EAAE,CAE5F;AAID,2DAA2D;AAC3D,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAgBjE"}
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
// player-rumor — structured player legend propagation
|
|
2
|
+
// Pure functions + types for rumor lifecycle. No module registration.
|
|
3
|
+
// Rumors are structured claims, not prose. Claude renders them into dialogue.
|
|
4
|
+
import { buildPlayerDescriptor } from './social-consequence.js';
|
|
5
|
+
// --- Constants ---
|
|
6
|
+
const CONFIDENCE_DECAY = 0.85;
|
|
7
|
+
const BASE_DISTORTION_RATE = 0.08;
|
|
8
|
+
const MUTATION_THRESHOLD = 0.10;
|
|
9
|
+
const CLAIM_EXAGGERATIONS = {
|
|
10
|
+
'defeated': 'slaughtered',
|
|
11
|
+
'entered': 'conquered',
|
|
12
|
+
'discovered': 'claimed',
|
|
13
|
+
'slew': 'annihilated',
|
|
14
|
+
'killed': 'massacred',
|
|
15
|
+
};
|
|
16
|
+
const VALENCE_INVERSIONS = {
|
|
17
|
+
heroic: 'fearsome',
|
|
18
|
+
fearsome: 'heroic',
|
|
19
|
+
tragic: 'mysterious',
|
|
20
|
+
mysterious: 'tragic',
|
|
21
|
+
};
|
|
22
|
+
let rumorCounter = 0;
|
|
23
|
+
function nextRumorId() {
|
|
24
|
+
return `pr-${++rumorCounter}`;
|
|
25
|
+
}
|
|
26
|
+
// --- Valence Derivation ---
|
|
27
|
+
/** Derive emotional charge from milestone tags. */
|
|
28
|
+
export function deriveRumorValence(tags) {
|
|
29
|
+
const has = (t) => tags.includes(t);
|
|
30
|
+
if (has('combat') && has('boss-kill'))
|
|
31
|
+
return 'fearsome';
|
|
32
|
+
if (has('exploration') && has('landmark'))
|
|
33
|
+
return 'mysterious';
|
|
34
|
+
if (has('combat'))
|
|
35
|
+
return 'heroic';
|
|
36
|
+
if (has('exploration') && has('boss-lair'))
|
|
37
|
+
return 'fearsome';
|
|
38
|
+
return 'mysterious';
|
|
39
|
+
}
|
|
40
|
+
// --- Spawning ---
|
|
41
|
+
/** Build a subject descriptor from a profile. */
|
|
42
|
+
function descriptorFromProfile(profile) {
|
|
43
|
+
const injuryNames = profile.injuries.map((i) => i.name);
|
|
44
|
+
return buildPlayerDescriptor(profile.build.name, profile.build.archetypeId, profile.progression.level, injuryNames, profile.custom.title);
|
|
45
|
+
}
|
|
46
|
+
/** Spawn a player rumor from a milestone event. */
|
|
47
|
+
export function spawnPlayerRumor(milestone, profile, originFactionId, originDistrictId, tick = 0) {
|
|
48
|
+
return {
|
|
49
|
+
id: nextRumorId(),
|
|
50
|
+
claim: milestone.label,
|
|
51
|
+
subjectDescriptor: descriptorFromProfile(profile),
|
|
52
|
+
sourceEvent: 'milestone',
|
|
53
|
+
sourceMilestone: milestone.label,
|
|
54
|
+
originFactionId,
|
|
55
|
+
originDistrictId,
|
|
56
|
+
confidence: 1.0,
|
|
57
|
+
distortion: 0,
|
|
58
|
+
mutationCount: 0,
|
|
59
|
+
valence: deriveRumorValence(milestone.tags),
|
|
60
|
+
spreadTo: originFactionId ? [originFactionId] : [],
|
|
61
|
+
originTick: tick,
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
/** Spawn a player rumor from a reputation change event. */
|
|
65
|
+
export function spawnReputationRumor(factionId, delta, factionName, profile, districtId, tick = 0) {
|
|
66
|
+
const claim = delta < 0
|
|
67
|
+
? `angered the ${factionName}`
|
|
68
|
+
: `honored by the ${factionName}`;
|
|
69
|
+
const valence = delta < 0 ? 'fearsome' : 'heroic';
|
|
70
|
+
return {
|
|
71
|
+
id: nextRumorId(),
|
|
72
|
+
claim,
|
|
73
|
+
subjectDescriptor: descriptorFromProfile(profile),
|
|
74
|
+
sourceEvent: 'reputation',
|
|
75
|
+
originFactionId: factionId,
|
|
76
|
+
originDistrictId: districtId,
|
|
77
|
+
confidence: 0.9,
|
|
78
|
+
distortion: 0,
|
|
79
|
+
mutationCount: 0,
|
|
80
|
+
valence,
|
|
81
|
+
spreadTo: [factionId],
|
|
82
|
+
originTick: tick,
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
// --- Propagation ---
|
|
86
|
+
/**
|
|
87
|
+
* Propagate a rumor to a new faction.
|
|
88
|
+
* Returns a new rumor with the target added to spreadTo, confidence decayed,
|
|
89
|
+
* and possible mutation applied.
|
|
90
|
+
*/
|
|
91
|
+
export function propagateRumor(rumor, targetFactionId, distortionRate = BASE_DISTORTION_RATE) {
|
|
92
|
+
const newConfidence = rumor.confidence * CONFIDENCE_DECAY;
|
|
93
|
+
const newDistortion = Math.min(1, rumor.distortion + distortionRate);
|
|
94
|
+
let propagated = {
|
|
95
|
+
...rumor,
|
|
96
|
+
confidence: newConfidence,
|
|
97
|
+
distortion: newDistortion,
|
|
98
|
+
spreadTo: [...rumor.spreadTo, targetFactionId],
|
|
99
|
+
};
|
|
100
|
+
// Mutation chance based on distortion level
|
|
101
|
+
if (shouldMutate(propagated)) {
|
|
102
|
+
const result = mutateRumorClaim(propagated);
|
|
103
|
+
propagated = result.rumor;
|
|
104
|
+
}
|
|
105
|
+
return propagated;
|
|
106
|
+
}
|
|
107
|
+
/** Determine if a rumor should mutate during propagation. */
|
|
108
|
+
export function shouldMutate(rumor) {
|
|
109
|
+
// Higher distortion = higher mutation chance
|
|
110
|
+
// Base 10% + distortion bonus
|
|
111
|
+
const chance = MUTATION_THRESHOLD + rumor.distortion * 0.15;
|
|
112
|
+
// Deterministic based on mutation count + confidence for reproducibility
|
|
113
|
+
const seed = (rumor.mutationCount * 7 + Math.round(rumor.confidence * 100)) % 100;
|
|
114
|
+
return seed < chance * 100;
|
|
115
|
+
}
|
|
116
|
+
// --- Mutation ---
|
|
117
|
+
/**
|
|
118
|
+
* Apply a structured mutation to a rumor's claim.
|
|
119
|
+
* Returns the mutated rumor and a record of what changed.
|
|
120
|
+
*/
|
|
121
|
+
export function mutateRumorClaim(rumor) {
|
|
122
|
+
// Alternate between mutation types based on mutation count
|
|
123
|
+
const mutationType = rumor.mutationCount % 3;
|
|
124
|
+
if (mutationType === 0) {
|
|
125
|
+
// Exaggerate: replace a verb in the claim
|
|
126
|
+
const exaggerated = exaggerateClaim(rumor.claim);
|
|
127
|
+
if (exaggerated !== rumor.claim) {
|
|
128
|
+
return {
|
|
129
|
+
rumor: { ...rumor, claim: exaggerated, mutationCount: rumor.mutationCount + 1 },
|
|
130
|
+
mutation: { type: 'exaggerate', field: 'claim', before: rumor.claim, after: exaggerated },
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
if (mutationType === 1) {
|
|
135
|
+
// Invert valence
|
|
136
|
+
const newValence = VALENCE_INVERSIONS[rumor.valence];
|
|
137
|
+
return {
|
|
138
|
+
rumor: { ...rumor, valence: newValence, mutationCount: rumor.mutationCount + 1 },
|
|
139
|
+
mutation: { type: 'invert', field: 'valence', before: rumor.valence, after: newValence },
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
// Conflate: modify the descriptor
|
|
143
|
+
const newDescriptor = `${rumor.subjectDescriptor}, whose deeds grow stranger in the telling`;
|
|
144
|
+
return {
|
|
145
|
+
rumor: { ...rumor, subjectDescriptor: newDescriptor, mutationCount: rumor.mutationCount + 1 },
|
|
146
|
+
mutation: { type: 'conflate', field: 'claim', before: rumor.subjectDescriptor, after: newDescriptor },
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
function exaggerateClaim(claim) {
|
|
150
|
+
const lower = claim.toLowerCase();
|
|
151
|
+
for (const [original, exaggerated] of Object.entries(CLAIM_EXAGGERATIONS)) {
|
|
152
|
+
if (lower.includes(original)) {
|
|
153
|
+
return claim.replace(new RegExp(original, 'i'), exaggerated);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
return claim;
|
|
157
|
+
}
|
|
158
|
+
// --- Queries ---
|
|
159
|
+
/** Get all rumors known to a specific faction (originated or spread to). */
|
|
160
|
+
export function getRumorsKnownToFaction(rumors, factionId) {
|
|
161
|
+
return rumors.filter((r) => r.originFactionId === factionId || r.spreadTo.includes(factionId));
|
|
162
|
+
}
|
|
163
|
+
/** Get all rumors that originated in a specific district. */
|
|
164
|
+
export function getRumorsInDistrict(rumors, districtId) {
|
|
165
|
+
return rumors.filter((r) => r.originDistrictId === districtId);
|
|
166
|
+
}
|
|
167
|
+
// --- Director Display ---
|
|
168
|
+
/** Format a single rumor for the director /rumors view. */
|
|
169
|
+
export function formatRumorForDirector(rumor) {
|
|
170
|
+
const conf = Math.round(rumor.confidence * 100);
|
|
171
|
+
const dist = Math.round(rumor.distortion * 100);
|
|
172
|
+
const spread = rumor.spreadTo.length > 0 ? rumor.spreadTo.join(' → ') : 'none';
|
|
173
|
+
const parts = [
|
|
174
|
+
` "${rumor.claim}"`,
|
|
175
|
+
` Subject: ${rumor.subjectDescriptor}`,
|
|
176
|
+
` Valence: ${rumor.valence} | Confidence: ${conf}% | Distortion: ${dist}%`,
|
|
177
|
+
` Origin: ${rumor.originFactionId ?? '?'} / ${rumor.originDistrictId ?? '?'} (tick ${rumor.originTick})`,
|
|
178
|
+
` Spread: ${spread}`,
|
|
179
|
+
` Mutations: ${rumor.mutationCount}`,
|
|
180
|
+
];
|
|
181
|
+
if (rumor.sourceMilestone) {
|
|
182
|
+
parts.splice(2, 0, ` Source: milestone "${rumor.sourceMilestone}"`);
|
|
183
|
+
}
|
|
184
|
+
return parts.join('\n');
|
|
185
|
+
}
|
|
186
|
+
//# sourceMappingURL=player-rumor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"player-rumor.js","sourceRoot":"","sources":["../src/player-rumor.ts"],"names":[],"mappings":"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"}
|