@sharpee/world-model 0.9.104 → 0.9.106
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/constants/directions.d.ts +91 -1
- package/constants/directions.d.ts.map +1 -1
- package/constants/directions.js +164 -2
- package/constants/directions.js.map +1 -1
- package/index.d.ts +1 -0
- package/index.d.ts.map +1 -1
- package/index.js +1 -0
- package/index.js.map +1 -1
- package/package.json +3 -3
- package/traits/all-traits.d.ts +5 -2
- package/traits/all-traits.d.ts.map +1 -1
- package/traits/all-traits.js +6 -0
- package/traits/all-traits.js.map +1 -1
- package/traits/character-model/character-vocabulary.d.ts +160 -0
- package/traits/character-model/character-vocabulary.d.ts.map +1 -0
- package/traits/character-model/character-vocabulary.js +167 -0
- package/traits/character-model/character-vocabulary.js.map +1 -0
- package/traits/character-model/characterModelTrait.d.ts +269 -0
- package/traits/character-model/characterModelTrait.d.ts.map +1 -0
- package/traits/character-model/characterModelTrait.js +457 -0
- package/traits/character-model/characterModelTrait.js.map +1 -0
- package/traits/character-model/index.d.ts +3 -0
- package/traits/character-model/index.d.ts.map +1 -0
- package/traits/character-model/index.js +21 -0
- package/traits/character-model/index.js.map +1 -0
- package/traits/implementations.d.ts +2 -1
- package/traits/implementations.d.ts.map +1 -1
- package/traits/implementations.js +6 -1
- package/traits/implementations.js.map +1 -1
- package/traits/index.d.ts +1 -0
- package/traits/index.d.ts.map +1 -1
- package/traits/index.js +2 -0
- package/traits/index.js.map +1 -1
- package/traits/trait-types.d.ts +1 -0
- package/traits/trait-types.d.ts.map +1 -1
- package/traits/trait-types.js +4 -0
- package/traits/trait-types.js.map +1 -1
- package/world/AuthorModel.d.ts +2 -0
- package/world/AuthorModel.d.ts.map +1 -1
- package/world/AuthorModel.js +4 -0
- package/world/AuthorModel.js.map +1 -1
- package/world/WorldModel.d.ts +12 -1
- package/world/WorldModel.d.ts.map +1 -1
- package/world/WorldModel.js +14 -0
- package/world/WorldModel.js.map +1 -1
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Language-agnostic direction constants for Interactive Fiction
|
|
3
|
-
*
|
|
3
|
+
*
|
|
4
|
+
* These constants represent spatial relationships, not English words.
|
|
5
|
+
* Direction vocabularies (ADR-143) control how these constants are
|
|
6
|
+
* presented to and accepted from the player.
|
|
4
7
|
*/
|
|
5
8
|
export declare const Direction: {
|
|
6
9
|
readonly NORTH: "NORTH";
|
|
@@ -29,4 +32,91 @@ export declare function getOppositeDirection(direction: DirectionType): Directio
|
|
|
29
32
|
* Check if a value is a valid Direction constant
|
|
30
33
|
*/
|
|
31
34
|
export declare function isDirection(value: unknown): value is DirectionType;
|
|
35
|
+
/**
|
|
36
|
+
* A single entry in a direction vocabulary.
|
|
37
|
+
*
|
|
38
|
+
* @property display - The word shown to the player (e.g., "fore")
|
|
39
|
+
* @property words - All words the parser accepts for this direction (e.g., ["fore", "f", "forward"])
|
|
40
|
+
*/
|
|
41
|
+
export interface DirectionEntry {
|
|
42
|
+
display: string;
|
|
43
|
+
words: string[];
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* A named set of direction-word mappings.
|
|
47
|
+
*
|
|
48
|
+
* Only directions present in the entries map are available to the player.
|
|
49
|
+
* A vocabulary that omits NORTHEAST means diagonal movement is not recognized.
|
|
50
|
+
*/
|
|
51
|
+
export interface DirectionVocabulary {
|
|
52
|
+
id: string;
|
|
53
|
+
entries: Partial<Record<DirectionType, DirectionEntry>>;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Pre-defined compass vocabulary (the default).
|
|
57
|
+
*/
|
|
58
|
+
export declare const CompassVocabulary: DirectionVocabulary;
|
|
59
|
+
/**
|
|
60
|
+
* Naval vocabulary — relative to the vessel.
|
|
61
|
+
*
|
|
62
|
+
* Maps cardinal directions to shipboard equivalents.
|
|
63
|
+
* Diagonals are omitted (ships don't have northeast).
|
|
64
|
+
*/
|
|
65
|
+
export declare const NavalVocabulary: DirectionVocabulary;
|
|
66
|
+
/**
|
|
67
|
+
* Minimal vocabulary — for caves, abstract spaces, interiors.
|
|
68
|
+
*
|
|
69
|
+
* Only vertical and threshold directions. No compass.
|
|
70
|
+
*/
|
|
71
|
+
export declare const MinimalVocabulary: DirectionVocabulary;
|
|
72
|
+
/**
|
|
73
|
+
* Registry of named direction vocabularies.
|
|
74
|
+
*
|
|
75
|
+
* Stories retrieve the registry from the world model and call
|
|
76
|
+
* `useVocabulary()` or `rename()` to configure direction words
|
|
77
|
+
* from a single point.
|
|
78
|
+
*/
|
|
79
|
+
export declare class DirectionVocabularyRegistry {
|
|
80
|
+
private vocabularies;
|
|
81
|
+
private active;
|
|
82
|
+
private listeners;
|
|
83
|
+
constructor();
|
|
84
|
+
/**
|
|
85
|
+
* Register a custom vocabulary.
|
|
86
|
+
*/
|
|
87
|
+
define(vocab: DirectionVocabulary): void;
|
|
88
|
+
/**
|
|
89
|
+
* Get a vocabulary by name.
|
|
90
|
+
*/
|
|
91
|
+
get(id: string): DirectionVocabulary | undefined;
|
|
92
|
+
/**
|
|
93
|
+
* Switch the active vocabulary by name.
|
|
94
|
+
* Notifies all listeners (parser, grammar) to rebuild their mappings.
|
|
95
|
+
*/
|
|
96
|
+
useVocabulary(id: string): void;
|
|
97
|
+
/**
|
|
98
|
+
* Rename a single direction in the active vocabulary.
|
|
99
|
+
* Creates a modified copy so the original named vocabulary is not mutated.
|
|
100
|
+
*/
|
|
101
|
+
rename(direction: DirectionType, entry: DirectionEntry): void;
|
|
102
|
+
/**
|
|
103
|
+
* Add alias words to a direction without replacing the existing ones.
|
|
104
|
+
*/
|
|
105
|
+
alias(direction: DirectionType, entry: DirectionEntry): void;
|
|
106
|
+
/**
|
|
107
|
+
* Get the currently active vocabulary.
|
|
108
|
+
*/
|
|
109
|
+
getActive(): DirectionVocabulary;
|
|
110
|
+
/**
|
|
111
|
+
* Get the display name for a direction in the active vocabulary.
|
|
112
|
+
* Falls back to lowercase direction constant if not in vocabulary.
|
|
113
|
+
*/
|
|
114
|
+
getDisplayName(direction: DirectionType): string;
|
|
115
|
+
/**
|
|
116
|
+
* Register a listener that is called when the active vocabulary changes.
|
|
117
|
+
* Used by the parser to rebuild direction mappings.
|
|
118
|
+
*/
|
|
119
|
+
onVocabularyChange(listener: (vocab: DirectionVocabulary) => void): void;
|
|
120
|
+
private notifyListeners;
|
|
121
|
+
}
|
|
32
122
|
//# sourceMappingURL=directions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"directions.d.ts","sourceRoot":"","sources":["../../../../../../repos/sharpee/packages/world-model/src/constants/directions.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"directions.d.ts","sourceRoot":"","sources":["../../../../../../repos/sharpee/packages/world-model/src/constants/directions.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,eAAO,MAAM,SAAS;;;;;;;;;;;;;CAaZ,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,OAAO,SAAS,CAAC,MAAM,OAAO,SAAS,CAAC,CAAC;AAErE;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,aAAa,EAAE,aAAa,CAanE,CAAC;AAEF;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,aAAa,GAAG,aAAa,CAE5E;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,aAAa,CAElE;AAMD;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC,CAAC;CACzD;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,mBAgB/B,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,eAAe,EAAE,mBAY7B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,EAAE,mBAQ/B,CAAC;AAEF;;;;;;GAMG;AACH,qBAAa,2BAA2B;IACtC,OAAO,CAAC,YAAY,CAA0C;IAC9D,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,SAAS,CAAmD;;IAUpE;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,mBAAmB,GAAG,IAAI;IAIxC;;OAEG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS;IAIhD;;;OAGG;IACH,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAS/B;;;OAGG;IACH,MAAM,CAAC,SAAS,EAAE,aAAa,EAAE,KAAK,EAAE,cAAc,GAAG,IAAI;IAY7D;;OAEG;IACH,KAAK,CAAC,SAAS,EAAE,aAAa,EAAE,KAAK,EAAE,cAAc,GAAG,IAAI;IAkB5D;;OAEG;IACH,SAAS,IAAI,mBAAmB;IAIhC;;;OAGG;IACH,cAAc,CAAC,SAAS,EAAE,aAAa,GAAG,MAAM;IAKhD;;;OAGG;IACH,kBAAkB,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,GAAG,IAAI;IAIxE,OAAO,CAAC,eAAe;CAKxB"}
|
package/constants/directions.js
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
3
|
* Language-agnostic direction constants for Interactive Fiction
|
|
4
|
-
*
|
|
4
|
+
*
|
|
5
|
+
* These constants represent spatial relationships, not English words.
|
|
6
|
+
* Direction vocabularies (ADR-143) control how these constants are
|
|
7
|
+
* presented to and accepted from the player.
|
|
5
8
|
*/
|
|
6
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.DirectionOpposites = exports.Direction = void 0;
|
|
10
|
+
exports.DirectionVocabularyRegistry = exports.MinimalVocabulary = exports.NavalVocabulary = exports.CompassVocabulary = exports.DirectionOpposites = exports.Direction = void 0;
|
|
8
11
|
exports.getOppositeDirection = getOppositeDirection;
|
|
9
12
|
exports.isDirection = isDirection;
|
|
10
13
|
exports.Direction = {
|
|
@@ -50,4 +53,163 @@ function getOppositeDirection(direction) {
|
|
|
50
53
|
function isDirection(value) {
|
|
51
54
|
return typeof value === 'string' && Object.values(exports.Direction).includes(value);
|
|
52
55
|
}
|
|
56
|
+
/**
|
|
57
|
+
* Pre-defined compass vocabulary (the default).
|
|
58
|
+
*/
|
|
59
|
+
exports.CompassVocabulary = {
|
|
60
|
+
id: 'compass',
|
|
61
|
+
entries: {
|
|
62
|
+
[exports.Direction.NORTH]: { display: 'north', words: ['north', 'n'] },
|
|
63
|
+
[exports.Direction.SOUTH]: { display: 'south', words: ['south', 's'] },
|
|
64
|
+
[exports.Direction.EAST]: { display: 'east', words: ['east', 'e'] },
|
|
65
|
+
[exports.Direction.WEST]: { display: 'west', words: ['west', 'w'] },
|
|
66
|
+
[exports.Direction.NORTHEAST]: { display: 'northeast', words: ['northeast', 'ne'] },
|
|
67
|
+
[exports.Direction.NORTHWEST]: { display: 'northwest', words: ['northwest', 'nw'] },
|
|
68
|
+
[exports.Direction.SOUTHEAST]: { display: 'southeast', words: ['southeast', 'se'] },
|
|
69
|
+
[exports.Direction.SOUTHWEST]: { display: 'southwest', words: ['southwest', 'sw'] },
|
|
70
|
+
[exports.Direction.UP]: { display: 'up', words: ['up', 'u'] },
|
|
71
|
+
[exports.Direction.DOWN]: { display: 'down', words: ['down', 'd'] },
|
|
72
|
+
[exports.Direction.IN]: { display: 'in', words: ['in', 'inside'] },
|
|
73
|
+
[exports.Direction.OUT]: { display: 'out', words: ['out', 'outside'] },
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
/**
|
|
77
|
+
* Naval vocabulary — relative to the vessel.
|
|
78
|
+
*
|
|
79
|
+
* Maps cardinal directions to shipboard equivalents.
|
|
80
|
+
* Diagonals are omitted (ships don't have northeast).
|
|
81
|
+
*/
|
|
82
|
+
exports.NavalVocabulary = {
|
|
83
|
+
id: 'naval',
|
|
84
|
+
entries: {
|
|
85
|
+
[exports.Direction.NORTH]: { display: 'fore', words: ['fore', 'f', 'forward', 'bow'] },
|
|
86
|
+
[exports.Direction.SOUTH]: { display: 'aft', words: ['aft', 'a', 'back', 'stern'] },
|
|
87
|
+
[exports.Direction.EAST]: { display: 'starboard', words: ['starboard', 'sb', 'right'] },
|
|
88
|
+
[exports.Direction.WEST]: { display: 'port', words: ['port', 'p', 'left'] },
|
|
89
|
+
[exports.Direction.UP]: { display: 'topside', words: ['topside', 'ts', 'up', 'u'] },
|
|
90
|
+
[exports.Direction.DOWN]: { display: 'below decks', words: ['below', 'below decks', 'bd', 'down', 'd'] },
|
|
91
|
+
[exports.Direction.IN]: { display: 'in', words: ['in', 'inside'] },
|
|
92
|
+
[exports.Direction.OUT]: { display: 'out', words: ['out', 'outside'] },
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
/**
|
|
96
|
+
* Minimal vocabulary — for caves, abstract spaces, interiors.
|
|
97
|
+
*
|
|
98
|
+
* Only vertical and threshold directions. No compass.
|
|
99
|
+
*/
|
|
100
|
+
exports.MinimalVocabulary = {
|
|
101
|
+
id: 'minimal',
|
|
102
|
+
entries: {
|
|
103
|
+
[exports.Direction.UP]: { display: 'up', words: ['up', 'u', 'climb'] },
|
|
104
|
+
[exports.Direction.DOWN]: { display: 'down', words: ['down', 'd', 'descend'] },
|
|
105
|
+
[exports.Direction.IN]: { display: 'in', words: ['in', 'inside', 'enter', 'deeper'] },
|
|
106
|
+
[exports.Direction.OUT]: { display: 'out', words: ['out', 'outside', 'exit', 'back'] },
|
|
107
|
+
}
|
|
108
|
+
};
|
|
109
|
+
/**
|
|
110
|
+
* Registry of named direction vocabularies.
|
|
111
|
+
*
|
|
112
|
+
* Stories retrieve the registry from the world model and call
|
|
113
|
+
* `useVocabulary()` or `rename()` to configure direction words
|
|
114
|
+
* from a single point.
|
|
115
|
+
*/
|
|
116
|
+
class DirectionVocabularyRegistry {
|
|
117
|
+
vocabularies = new Map();
|
|
118
|
+
active;
|
|
119
|
+
listeners = [];
|
|
120
|
+
constructor() {
|
|
121
|
+
// Register built-in vocabularies
|
|
122
|
+
this.vocabularies.set('compass', exports.CompassVocabulary);
|
|
123
|
+
this.vocabularies.set('naval', exports.NavalVocabulary);
|
|
124
|
+
this.vocabularies.set('minimal', exports.MinimalVocabulary);
|
|
125
|
+
this.active = exports.CompassVocabulary;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Register a custom vocabulary.
|
|
129
|
+
*/
|
|
130
|
+
define(vocab) {
|
|
131
|
+
this.vocabularies.set(vocab.id, vocab);
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Get a vocabulary by name.
|
|
135
|
+
*/
|
|
136
|
+
get(id) {
|
|
137
|
+
return this.vocabularies.get(id);
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Switch the active vocabulary by name.
|
|
141
|
+
* Notifies all listeners (parser, grammar) to rebuild their mappings.
|
|
142
|
+
*/
|
|
143
|
+
useVocabulary(id) {
|
|
144
|
+
const vocab = this.vocabularies.get(id);
|
|
145
|
+
if (!vocab) {
|
|
146
|
+
throw new Error(`Unknown direction vocabulary: '${id}'. Available: ${[...this.vocabularies.keys()].join(', ')}`);
|
|
147
|
+
}
|
|
148
|
+
this.active = vocab;
|
|
149
|
+
this.notifyListeners();
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Rename a single direction in the active vocabulary.
|
|
153
|
+
* Creates a modified copy so the original named vocabulary is not mutated.
|
|
154
|
+
*/
|
|
155
|
+
rename(direction, entry) {
|
|
156
|
+
// If active is a named vocabulary, clone it as 'custom'
|
|
157
|
+
if (this.active.id !== 'custom') {
|
|
158
|
+
this.active = {
|
|
159
|
+
id: 'custom',
|
|
160
|
+
entries: { ...this.active.entries }
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
this.active.entries[direction] = entry;
|
|
164
|
+
this.notifyListeners();
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Add alias words to a direction without replacing the existing ones.
|
|
168
|
+
*/
|
|
169
|
+
alias(direction, entry) {
|
|
170
|
+
if (this.active.id !== 'custom') {
|
|
171
|
+
this.active = {
|
|
172
|
+
id: 'custom',
|
|
173
|
+
entries: { ...this.active.entries }
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
const existing = this.active.entries[direction];
|
|
177
|
+
if (existing) {
|
|
178
|
+
// Merge words, use new display name
|
|
179
|
+
const mergedWords = [...new Set([...existing.words, ...entry.words])];
|
|
180
|
+
this.active.entries[direction] = { display: entry.display, words: mergedWords };
|
|
181
|
+
}
|
|
182
|
+
else {
|
|
183
|
+
this.active.entries[direction] = entry;
|
|
184
|
+
}
|
|
185
|
+
this.notifyListeners();
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Get the currently active vocabulary.
|
|
189
|
+
*/
|
|
190
|
+
getActive() {
|
|
191
|
+
return this.active;
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Get the display name for a direction in the active vocabulary.
|
|
195
|
+
* Falls back to lowercase direction constant if not in vocabulary.
|
|
196
|
+
*/
|
|
197
|
+
getDisplayName(direction) {
|
|
198
|
+
const entry = this.active.entries[direction];
|
|
199
|
+
return entry?.display ?? direction.toLowerCase();
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Register a listener that is called when the active vocabulary changes.
|
|
203
|
+
* Used by the parser to rebuild direction mappings.
|
|
204
|
+
*/
|
|
205
|
+
onVocabularyChange(listener) {
|
|
206
|
+
this.listeners.push(listener);
|
|
207
|
+
}
|
|
208
|
+
notifyListeners() {
|
|
209
|
+
for (const listener of this.listeners) {
|
|
210
|
+
listener(this.active);
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
exports.DirectionVocabularyRegistry = DirectionVocabularyRegistry;
|
|
53
215
|
//# sourceMappingURL=directions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"directions.js","sourceRoot":"","sources":["../../../../../../../repos/sharpee/packages/world-model/src/constants/directions.ts"],"names":[],"mappings":";AAAA;;;
|
|
1
|
+
{"version":3,"file":"directions.js","sourceRoot":"","sources":["../../../../../../../repos/sharpee/packages/world-model/src/constants/directions.ts"],"names":[],"mappings":"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"}
|
package/index.d.ts
CHANGED
|
@@ -31,6 +31,7 @@ export * from './traits/pushable';
|
|
|
31
31
|
export * from './traits/npc';
|
|
32
32
|
export * from './traits/vehicle';
|
|
33
33
|
export * from './traits/story-info';
|
|
34
|
+
export * from './traits/character-model';
|
|
34
35
|
export * from './extensions';
|
|
35
36
|
export * from './world';
|
|
36
37
|
export * from './scope';
|
package/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../repos/sharpee/packages/world-model/src/index.ts"],"names":[],"mappings":"AAGA,cAAc,YAAY,CAAC;AAG3B,cAAc,aAAa,CAAC;AAG5B,cAAc,aAAa,CAAC;AAG5B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAG7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AAGzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../repos/sharpee/packages/world-model/src/index.ts"],"names":[],"mappings":"AAGA,cAAc,YAAY,CAAC;AAG3B,cAAc,aAAa,CAAC;AAG5B,cAAc,aAAa,CAAC;AAG5B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAG7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AAGzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AAGzC,cAAc,cAAc,CAAC;AAG7B,cAAc,SAAS,CAAC;AAGxB,cAAc,SAAS,CAAC;AAGxB,cAAc,gBAAgB,CAAC;AAG/B,cAAc,gBAAgB,CAAC;AAG/B,cAAc,eAAe,CAAC"}
|
package/index.js
CHANGED
|
@@ -54,6 +54,7 @@ __exportStar(require("./traits/pushable"), exports);
|
|
|
54
54
|
__exportStar(require("./traits/npc"), exports);
|
|
55
55
|
__exportStar(require("./traits/vehicle"), exports);
|
|
56
56
|
__exportStar(require("./traits/story-info"), exports);
|
|
57
|
+
__exportStar(require("./traits/character-model"), exports);
|
|
57
58
|
// Extension system
|
|
58
59
|
__exportStar(require("./extensions"), exports);
|
|
59
60
|
// World model
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../repos/sharpee/packages/world-model/src/index.ts"],"names":[],"mappings":";AAAA,oCAAoC;;;;;;;;;;;;;;;;AAEpC,gBAAgB;AAChB,6CAA2B;AAE3B,iBAAiB;AACjB,8CAA4B;AAE5B,YAAY;AACZ,8CAA4B;AAE5B,8CAA8C;AAC9C,6CAA2B;AAC3B,+CAA6B;AAE7B,SAAS;AACT,iDAA+B;AAC/B,uDAAqC;AACrC,2DAAyC;AAEzC,2BAA2B;AAC3B,oDAAkC;AAClC,qDAAmC;AACnC,gDAA8B;AAC9B,oDAAkC;AAClC,oDAAkC;AAClC,oDAAkC;AAClC,wDAAsC;AACtC,gDAA8B;AAC9B,qDAAmC;AACnC,mDAAiC;AACjC,qDAAmC;AACnC,sDAAoC;AACpC,oDAAkC;AAClC,kDAAgC;AAChC,gDAA8B;AAC9B,iDAA+B;AAC/B,oDAAkC;AAClC,kDAAgC;AAChC,oDAAkC;AAClC,4DAA0C;AAC1C,oDAAkC;AAClC,oDAAkC;AAClC,+CAA6B;AAC7B,mDAAiC;AACjC,sDAAoC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../repos/sharpee/packages/world-model/src/index.ts"],"names":[],"mappings":";AAAA,oCAAoC;;;;;;;;;;;;;;;;AAEpC,gBAAgB;AAChB,6CAA2B;AAE3B,iBAAiB;AACjB,8CAA4B;AAE5B,YAAY;AACZ,8CAA4B;AAE5B,8CAA8C;AAC9C,6CAA2B;AAC3B,+CAA6B;AAE7B,SAAS;AACT,iDAA+B;AAC/B,uDAAqC;AACrC,2DAAyC;AAEzC,2BAA2B;AAC3B,oDAAkC;AAClC,qDAAmC;AACnC,gDAA8B;AAC9B,oDAAkC;AAClC,oDAAkC;AAClC,oDAAkC;AAClC,wDAAsC;AACtC,gDAA8B;AAC9B,qDAAmC;AACnC,mDAAiC;AACjC,qDAAmC;AACnC,sDAAoC;AACpC,oDAAkC;AAClC,kDAAgC;AAChC,gDAA8B;AAC9B,iDAA+B;AAC/B,oDAAkC;AAClC,kDAAgC;AAChC,oDAAkC;AAClC,4DAA0C;AAC1C,oDAAkC;AAClC,oDAAkC;AAClC,+CAA6B;AAC7B,mDAAiC;AACjC,sDAAoC;AACpC,2DAAyC;AAEzC,mBAAmB;AACnB,+CAA6B;AAE7B,cAAc;AACd,0CAAwB;AAExB,eAAe;AACf,0CAAwB;AAExB,mFAAmF;AACnF,iDAA+B;AAE/B,uCAAuC;AACvC,iDAA+B;AAE/B,wBAAwB;AACxB,gDAA8B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sharpee/world-model",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.106",
|
|
4
4
|
"description": "World model for Sharpee IF platform - entities, traits, and behaviors",
|
|
5
5
|
"main": "./index.js",
|
|
6
6
|
"types": "./index.d.ts",
|
|
@@ -12,8 +12,8 @@
|
|
|
12
12
|
}
|
|
13
13
|
},
|
|
14
14
|
"dependencies": {
|
|
15
|
-
"@sharpee/core": "^0.9.
|
|
16
|
-
"@sharpee/if-domain": "^0.9.
|
|
15
|
+
"@sharpee/core": "^0.9.106",
|
|
16
|
+
"@sharpee/if-domain": "^0.9.106"
|
|
17
17
|
},
|
|
18
18
|
"keywords": [
|
|
19
19
|
"interactive-fiction",
|
package/traits/all-traits.d.ts
CHANGED
|
@@ -34,6 +34,7 @@ import { DestructibleTrait } from './destructible/destructibleTrait';
|
|
|
34
34
|
import { CombatantTrait } from './combatant/combatantTrait';
|
|
35
35
|
import { EquippedTrait } from './equipped/equippedTrait';
|
|
36
36
|
import { EnterableTrait } from './enterable/enterableTrait';
|
|
37
|
+
import { CharacterModelTrait } from './character-model/characterModelTrait';
|
|
37
38
|
export declare const Traits: {
|
|
38
39
|
readonly ActorTrait: typeof ActorTrait;
|
|
39
40
|
readonly AttachedTrait: typeof AttachedTrait;
|
|
@@ -63,9 +64,10 @@ export declare const Traits: {
|
|
|
63
64
|
readonly CombatantTrait: typeof CombatantTrait;
|
|
64
65
|
readonly EquippedTrait: typeof EquippedTrait;
|
|
65
66
|
readonly EnterableTrait: typeof EnterableTrait;
|
|
67
|
+
readonly CharacterModelTrait: typeof CharacterModelTrait;
|
|
66
68
|
};
|
|
67
|
-
export type { ActorTrait, AttachedTrait, ButtonTrait, ClimbableTrait, ClothingTrait, ContainerTrait, DoorTrait, EdibleTrait, ExitTrait, IdentityTrait, LightSourceTrait, LockableTrait, MoveableSceneryTrait, OpenableTrait, PullableTrait, PushableTrait, ReadableTrait, RoomTrait, SceneryTrait, SupporterTrait, SwitchableTrait, WearableTrait, WeaponTrait, BreakableTrait, DestructibleTrait, CombatantTrait, EquippedTrait, EnterableTrait, };
|
|
68
|
-
export type AnyTrait = ActorTrait | AttachedTrait | ButtonTrait | ClimbableTrait | ClothingTrait | ContainerTrait | DoorTrait | EdibleTrait | ExitTrait | IdentityTrait | LightSourceTrait | LockableTrait | MoveableSceneryTrait | OpenableTrait | PullableTrait | PushableTrait | ReadableTrait | RoomTrait | SceneryTrait | SupporterTrait | SwitchableTrait | WearableTrait | WeaponTrait | BreakableTrait | DestructibleTrait | CombatantTrait | EquippedTrait | EnterableTrait;
|
|
69
|
+
export type { ActorTrait, AttachedTrait, ButtonTrait, ClimbableTrait, ClothingTrait, ContainerTrait, DoorTrait, EdibleTrait, ExitTrait, IdentityTrait, LightSourceTrait, LockableTrait, MoveableSceneryTrait, OpenableTrait, PullableTrait, PushableTrait, ReadableTrait, RoomTrait, SceneryTrait, SupporterTrait, SwitchableTrait, WearableTrait, WeaponTrait, BreakableTrait, DestructibleTrait, CombatantTrait, EquippedTrait, EnterableTrait, CharacterModelTrait, };
|
|
70
|
+
export type AnyTrait = ActorTrait | AttachedTrait | ButtonTrait | ClimbableTrait | ClothingTrait | ContainerTrait | DoorTrait | EdibleTrait | ExitTrait | IdentityTrait | LightSourceTrait | LockableTrait | MoveableSceneryTrait | OpenableTrait | PullableTrait | PushableTrait | ReadableTrait | RoomTrait | SceneryTrait | SupporterTrait | SwitchableTrait | WearableTrait | WeaponTrait | BreakableTrait | DestructibleTrait | CombatantTrait | EquippedTrait | EnterableTrait | CharacterModelTrait;
|
|
69
71
|
export declare function isActorTrait(trait: any): trait is ActorTrait;
|
|
70
72
|
export declare function isContainerTrait(trait: any): trait is ContainerTrait;
|
|
71
73
|
export declare function isDoorTrait(trait: any): trait is DoorTrait;
|
|
@@ -92,4 +94,5 @@ export declare function isBreakableTrait(trait: any): trait is BreakableTrait;
|
|
|
92
94
|
export declare function isDestructibleTrait(trait: any): trait is DestructibleTrait;
|
|
93
95
|
export declare function isCombatantTrait(trait: any): trait is CombatantTrait;
|
|
94
96
|
export declare function isEquippedTrait(trait: any): trait is EquippedTrait;
|
|
97
|
+
export declare function isCharacterModelTrait(trait: any): trait is CharacterModelTrait;
|
|
95
98
|
//# sourceMappingURL=all-traits.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"all-traits.d.ts","sourceRoot":"","sources":["../../../../../../repos/sharpee/packages/world-model/src/traits/all-traits.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"all-traits.d.ts","sourceRoot":"","sources":["../../../../../../repos/sharpee/packages/world-model/src/traits/all-traits.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAG5E,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8BT,CAAC;AAGX,YAAY,EACV,UAAU,EACV,aAAa,EACb,WAAW,EACX,cAAc,EACd,aAAa,EACb,cAAc,EACd,SAAS,EACT,WAAW,EACX,SAAS,EACT,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,oBAAoB,EACpB,aAAa,EACb,aAAa,EACb,aAAa,EACb,aAAa,EACb,SAAS,EACT,YAAY,EACZ,cAAc,EACd,eAAe,EACf,aAAa,EACb,WAAW,EACX,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,cAAc,EACd,mBAAmB,GACpB,CAAC;AAGF,MAAM,MAAM,QAAQ,GAChB,UAAU,GACV,aAAa,GACb,WAAW,GACX,cAAc,GACd,aAAa,GACb,cAAc,GACd,SAAS,GACT,WAAW,GACX,SAAS,GACT,aAAa,GACb,gBAAgB,GAChB,aAAa,GACb,oBAAoB,GACpB,aAAa,GACb,aAAa,GACb,aAAa,GACb,aAAa,GACb,SAAS,GACT,YAAY,GACZ,cAAc,GACd,eAAe,GACf,aAAa,GACb,WAAW,GACX,cAAc,GACd,iBAAiB,GACjB,cAAc,GACd,aAAa,GACb,cAAc,GACd,mBAAmB,CAAC;AAGxB,wBAAgB,YAAY,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,UAAU,CAE5D;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,cAAc,CAEpE;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,SAAS,CAE1D;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,WAAW,CAE9D;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,SAAS,CAE1D;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,aAAa,CAElE;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,gBAAgB,CAExE;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,aAAa,CAElE;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,aAAa,CAElE;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,aAAa,CAElE;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,SAAS,CAE1D;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,YAAY,CAEhE;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,cAAc,CAEpE;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,eAAe,CAEtE;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,aAAa,CAElE;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,aAAa,CAElE;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,aAAa,CAElE;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,aAAa,CAElE;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,aAAa,CAElE;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,WAAW,CAE9D;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,oBAAoB,CAEhF;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,WAAW,CAE9D;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,cAAc,CAEpE;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,iBAAiB,CAE1E;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,cAAc,CAEpE;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,aAAa,CAElE;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,mBAAmB,CAE9E"}
|
package/traits/all-traits.js
CHANGED
|
@@ -35,6 +35,7 @@ exports.isBreakableTrait = isBreakableTrait;
|
|
|
35
35
|
exports.isDestructibleTrait = isDestructibleTrait;
|
|
36
36
|
exports.isCombatantTrait = isCombatantTrait;
|
|
37
37
|
exports.isEquippedTrait = isEquippedTrait;
|
|
38
|
+
exports.isCharacterModelTrait = isCharacterModelTrait;
|
|
38
39
|
// Import all trait classes
|
|
39
40
|
const actorTrait_1 = require("./actor/actorTrait");
|
|
40
41
|
const attachedTrait_1 = require("./attached/attachedTrait");
|
|
@@ -64,6 +65,7 @@ const destructibleTrait_1 = require("./destructible/destructibleTrait");
|
|
|
64
65
|
const combatantTrait_1 = require("./combatant/combatantTrait");
|
|
65
66
|
const equippedTrait_1 = require("./equipped/equippedTrait");
|
|
66
67
|
const enterableTrait_1 = require("./enterable/enterableTrait");
|
|
68
|
+
const characterModelTrait_1 = require("./character-model/characterModelTrait");
|
|
67
69
|
// Export as namespace for easy access
|
|
68
70
|
exports.Traits = {
|
|
69
71
|
ActorTrait: actorTrait_1.ActorTrait,
|
|
@@ -94,6 +96,7 @@ exports.Traits = {
|
|
|
94
96
|
CombatantTrait: combatantTrait_1.CombatantTrait,
|
|
95
97
|
EquippedTrait: equippedTrait_1.EquippedTrait,
|
|
96
98
|
EnterableTrait: enterableTrait_1.EnterableTrait,
|
|
99
|
+
CharacterModelTrait: characterModelTrait_1.CharacterModelTrait,
|
|
97
100
|
};
|
|
98
101
|
// Type guards for each trait
|
|
99
102
|
function isActorTrait(trait) {
|
|
@@ -174,5 +177,8 @@ function isCombatantTrait(trait) {
|
|
|
174
177
|
function isEquippedTrait(trait) {
|
|
175
178
|
return trait?.type === 'equipped';
|
|
176
179
|
}
|
|
180
|
+
function isCharacterModelTrait(trait) {
|
|
181
|
+
return trait?.type === 'characterModel';
|
|
182
|
+
}
|
|
177
183
|
// Note: isEnterableTrait is exported from ./enterable/enterableTrait.ts
|
|
178
184
|
//# sourceMappingURL=all-traits.js.map
|
package/traits/all-traits.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"all-traits.js","sourceRoot":"","sources":["../../../../../../../repos/sharpee/packages/world-model/src/traits/all-traits.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;
|
|
1
|
+
{"version":3,"file":"all-traits.js","sourceRoot":"","sources":["../../../../../../../repos/sharpee/packages/world-model/src/traits/all-traits.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Character model vocabulary types (ADR-141)
|
|
3
|
+
*
|
|
4
|
+
* String literal union types for all word-based authoring inputs.
|
|
5
|
+
* Authors interact with these words; internal numeric values are
|
|
6
|
+
* implementation details managed by CharacterModelTrait.
|
|
7
|
+
*
|
|
8
|
+
* Public interface: All exported types and maps.
|
|
9
|
+
* Owner context: world-model / character-model trait
|
|
10
|
+
*/
|
|
11
|
+
/** Core personality traits — fixed at character creation. */
|
|
12
|
+
export type PersonalityTrait = 'honest' | 'loyal' | 'cowardly' | 'paranoid' | 'cruel' | 'cunning' | 'curious' | 'stubborn' | 'generous' | 'vain' | 'devout' | 'impulsive';
|
|
13
|
+
/** Intensity modifiers for personality traits. */
|
|
14
|
+
export type Intensity = 'slightly' | 'somewhat' | 'very' | 'extremely';
|
|
15
|
+
/** A personality expression: bare trait or intensity-qualified. */
|
|
16
|
+
export type PersonalityExpr = PersonalityTrait | `${Intensity} ${PersonalityTrait}`;
|
|
17
|
+
/** Maps intensity words to internal 0-1 values. */
|
|
18
|
+
export declare const INTENSITY_VALUES: Record<Intensity | 'bare', number>;
|
|
19
|
+
/**
|
|
20
|
+
* Parse a PersonalityExpr into trait name and numeric value.
|
|
21
|
+
*
|
|
22
|
+
* @param expr - A personality expression like 'very honest' or 'loyal'
|
|
23
|
+
* @returns Tuple of [trait name, intensity value]
|
|
24
|
+
*/
|
|
25
|
+
export declare function parsePersonalityExpr(expr: PersonalityExpr): [PersonalityTrait, number];
|
|
26
|
+
/**
|
|
27
|
+
* Disposition words — how the NPC feels about a specific entity.
|
|
28
|
+
* Directed and persistent. Distinct from mood (transient, undirected)
|
|
29
|
+
* and threat (situational).
|
|
30
|
+
*/
|
|
31
|
+
export type DispositionWord = 'despises' | 'hates' | 'dislikes' | 'wary of' | 'neutral' | 'likes' | 'trusts' | 'devoted to';
|
|
32
|
+
/** Internal numeric ranges for each disposition word. */
|
|
33
|
+
export declare const DISPOSITION_RANGES: Record<DispositionWord, {
|
|
34
|
+
min: number;
|
|
35
|
+
max: number;
|
|
36
|
+
midpoint: number;
|
|
37
|
+
}>;
|
|
38
|
+
/**
|
|
39
|
+
* Resolve a disposition word to its midpoint numeric value.
|
|
40
|
+
*
|
|
41
|
+
* @param word - A disposition word
|
|
42
|
+
* @returns The midpoint of the disposition range
|
|
43
|
+
*/
|
|
44
|
+
export declare function dispositionToValue(word: DispositionWord): number;
|
|
45
|
+
/**
|
|
46
|
+
* Resolve a numeric disposition value back to the nearest word.
|
|
47
|
+
*
|
|
48
|
+
* @param value - A numeric disposition value (-100 to 100)
|
|
49
|
+
* @returns The disposition word whose range contains the value
|
|
50
|
+
*/
|
|
51
|
+
export declare function valueToDisposition(value: number): DispositionWord;
|
|
52
|
+
/**
|
|
53
|
+
* Mood words — the NPC's current transient emotional state.
|
|
54
|
+
* Undirected (not about anyone in particular). Changes frequently
|
|
55
|
+
* based on events and decays toward a baseline.
|
|
56
|
+
*/
|
|
57
|
+
export type Mood = 'calm' | 'content' | 'cheerful' | 'nervous' | 'anxious' | 'panicked' | 'angry' | 'furious' | 'sad' | 'grieving' | 'suspicious' | 'confused' | 'resigned';
|
|
58
|
+
/**
|
|
59
|
+
* Internal valence-arousal coordinates for each mood.
|
|
60
|
+
* Valence: -1 (negative) to +1 (positive).
|
|
61
|
+
* Arousal: 0 (low energy) to 1 (high energy).
|
|
62
|
+
*/
|
|
63
|
+
export declare const MOOD_AXES: Record<Mood, {
|
|
64
|
+
valence: number;
|
|
65
|
+
arousal: number;
|
|
66
|
+
}>;
|
|
67
|
+
/**
|
|
68
|
+
* Find the closest mood word to a valence-arousal coordinate.
|
|
69
|
+
*
|
|
70
|
+
* @param valence - Valence value (-1 to 1)
|
|
71
|
+
* @param arousal - Arousal value (0 to 1)
|
|
72
|
+
* @returns The mood word with the smallest Euclidean distance
|
|
73
|
+
*/
|
|
74
|
+
export declare function nearestMood(valence: number, arousal: number): Mood;
|
|
75
|
+
/**
|
|
76
|
+
* Threat level — how endangered the NPC feels.
|
|
77
|
+
* Situational and distinct from mood and disposition.
|
|
78
|
+
*/
|
|
79
|
+
export type ThreatLevel = 'safe' | 'uneasy' | 'wary' | 'threatened' | 'cornered' | 'desperate';
|
|
80
|
+
/** Maps threat words to internal 0-100 values. */
|
|
81
|
+
export declare const THREAT_VALUES: Record<ThreatLevel, number>;
|
|
82
|
+
/**
|
|
83
|
+
* Resolve a numeric threat value back to the nearest threat level.
|
|
84
|
+
*
|
|
85
|
+
* @param value - A numeric threat value (0-100)
|
|
86
|
+
* @returns The threat level word
|
|
87
|
+
*/
|
|
88
|
+
export declare function valueToThreat(value: number): ThreatLevel;
|
|
89
|
+
/** How the NPC perceives events. */
|
|
90
|
+
export type PerceptionMode = 'accurate' | 'filtered' | 'augmented';
|
|
91
|
+
/** How the NPC forms and updates beliefs from evidence. */
|
|
92
|
+
export type BeliefFormation = 'flexible' | 'rigid' | 'resistant';
|
|
93
|
+
/** How coherently the NPC maintains topic focus. */
|
|
94
|
+
export type Coherence = 'focused' | 'drifting' | 'fragmented';
|
|
95
|
+
/** How stable the NPC's cognitive profile is over time. */
|
|
96
|
+
export type Lucidity = 'stable' | 'fluctuating' | 'episodic';
|
|
97
|
+
/** How intact the NPC's sense of identity is. */
|
|
98
|
+
export type SelfModel = 'intact' | 'uncertain' | 'fractured';
|
|
99
|
+
/** The five-dimensional cognitive profile. */
|
|
100
|
+
export interface CognitiveProfile {
|
|
101
|
+
perception: PerceptionMode;
|
|
102
|
+
beliefFormation: BeliefFormation;
|
|
103
|
+
coherence: Coherence;
|
|
104
|
+
lucidity: Lucidity;
|
|
105
|
+
selfModel: SelfModel;
|
|
106
|
+
}
|
|
107
|
+
/** Default stable cognitive profile. */
|
|
108
|
+
export declare const STABLE_COGNITIVE_PROFILE: Readonly<CognitiveProfile>;
|
|
109
|
+
/** How the NPC acquired a piece of knowledge. */
|
|
110
|
+
export type FactSource = 'witnessed' | 'told' | 'inferred' | 'assumed' | 'hallucinated';
|
|
111
|
+
/** How confident the NPC is in a piece of knowledge. */
|
|
112
|
+
export type ConfidenceWord = 'uncertain' | 'suspects' | 'believes' | 'certain';
|
|
113
|
+
/** Maps confidence words to internal 0-1 values. */
|
|
114
|
+
export declare const CONFIDENCE_VALUES: Record<ConfidenceWord, number>;
|
|
115
|
+
/** A single fact in the NPC's knowledge base. */
|
|
116
|
+
export interface Fact {
|
|
117
|
+
source: FactSource;
|
|
118
|
+
confidence: ConfidenceWord;
|
|
119
|
+
turnLearned: number;
|
|
120
|
+
}
|
|
121
|
+
/** How resistant a belief is to counter-evidence. */
|
|
122
|
+
export type ResistanceMode = 'none' | 'reinterprets' | 'ignores';
|
|
123
|
+
/** A belief held by the NPC, which may differ from facts. */
|
|
124
|
+
export interface Belief {
|
|
125
|
+
strength: ConfidenceWord;
|
|
126
|
+
resistance: ResistanceMode;
|
|
127
|
+
}
|
|
128
|
+
/** A goal with author-assigned priority. Higher priority = more important. */
|
|
129
|
+
export interface Goal {
|
|
130
|
+
id: string;
|
|
131
|
+
priority: number;
|
|
132
|
+
}
|
|
133
|
+
/** Timing for a lucidity transition. */
|
|
134
|
+
export type TransitionTiming = 'immediate' | 'next turn';
|
|
135
|
+
/** Rate at which lucidity decays back to baseline. */
|
|
136
|
+
export type DecayRate = 'slow' | 'moderate' | 'fast';
|
|
137
|
+
/** A single lucidity trigger rule. */
|
|
138
|
+
export interface LucidityTrigger {
|
|
139
|
+
target: string;
|
|
140
|
+
transition: TransitionTiming;
|
|
141
|
+
}
|
|
142
|
+
/** Full lucidity window configuration. */
|
|
143
|
+
export interface LucidityConfig {
|
|
144
|
+
baseline: string;
|
|
145
|
+
triggers: Record<string, LucidityTrigger>;
|
|
146
|
+
decay: 'gradual' | 'sudden';
|
|
147
|
+
decayRate: DecayRate;
|
|
148
|
+
}
|
|
149
|
+
/** Configuration for filtered/augmented perception. */
|
|
150
|
+
export interface PerceptionFilterConfig {
|
|
151
|
+
misses: string[];
|
|
152
|
+
amplifies: string[];
|
|
153
|
+
}
|
|
154
|
+
/** A hallucinated perceived event definition. */
|
|
155
|
+
export interface PerceivedEvent {
|
|
156
|
+
when: string;
|
|
157
|
+
as: FactSource;
|
|
158
|
+
content: string;
|
|
159
|
+
}
|
|
160
|
+
//# sourceMappingURL=character-vocabulary.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"character-vocabulary.d.ts","sourceRoot":"","sources":["../../../../../../../repos/sharpee/packages/world-model/src/traits/character-model/character-vocabulary.ts"],"names":[],"mappings":"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"}
|