@sharpee/core 0.9.56-beta
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/LICENSE +21 -0
- package/README.md +48 -0
- package/dist/constants/attributes.d.ts +32 -0
- package/dist/constants/attributes.d.ts.map +1 -0
- package/dist/constants/attributes.js +53 -0
- package/dist/constants/attributes.js.map +1 -0
- package/dist/constants/core-events.d.ts +37 -0
- package/dist/constants/core-events.d.ts.map +1 -0
- package/dist/constants/core-events.js +50 -0
- package/dist/constants/core-events.js.map +1 -0
- package/dist/constants/entity-types.d.ts +15 -0
- package/dist/constants/entity-types.d.ts.map +1 -0
- package/dist/constants/entity-types.js +27 -0
- package/dist/constants/entity-types.js.map +1 -0
- package/dist/constants/index.d.ts +22 -0
- package/dist/constants/index.d.ts.map +1 -0
- package/dist/constants/index.js +41 -0
- package/dist/constants/index.js.map +1 -0
- package/dist/constants/relationships.d.ts +25 -0
- package/dist/constants/relationships.d.ts.map +1 -0
- package/dist/constants/relationships.js +55 -0
- package/dist/constants/relationships.js.map +1 -0
- package/dist/debug/index.d.ts +5 -0
- package/dist/debug/index.d.ts.map +1 -0
- package/dist/debug/index.js +21 -0
- package/dist/debug/index.js.map +1 -0
- package/dist/debug/types.d.ts +65 -0
- package/dist/debug/types.d.ts.map +1 -0
- package/dist/debug/types.js +39 -0
- package/dist/debug/types.js.map +1 -0
- package/dist/events/event-factory.d.ts +81 -0
- package/dist/events/event-factory.d.ts.map +1 -0
- package/dist/events/event-factory.js +74 -0
- package/dist/events/event-factory.js.map +1 -0
- package/dist/events/event-helpers.d.ts +118 -0
- package/dist/events/event-helpers.d.ts.map +1 -0
- package/dist/events/event-helpers.js +151 -0
- package/dist/events/event-helpers.js.map +1 -0
- package/dist/events/event-registry.d.ts +154 -0
- package/dist/events/event-registry.d.ts.map +1 -0
- package/dist/events/event-registry.js +24 -0
- package/dist/events/event-registry.js.map +1 -0
- package/dist/events/event-source.d.ts +39 -0
- package/dist/events/event-source.d.ts.map +1 -0
- package/dist/events/event-source.js +57 -0
- package/dist/events/event-source.js.map +1 -0
- package/dist/events/event-system.d.ts +27 -0
- package/dist/events/event-system.d.ts.map +1 -0
- package/dist/events/event-system.js +64 -0
- package/dist/events/event-system.js.map +1 -0
- package/dist/events/game-events.d.ts +245 -0
- package/dist/events/game-events.d.ts.map +1 -0
- package/dist/events/game-events.js +250 -0
- package/dist/events/game-events.js.map +1 -0
- package/dist/events/index.d.ts +19 -0
- package/dist/events/index.d.ts.map +1 -0
- package/dist/events/index.js +51 -0
- package/dist/events/index.js.map +1 -0
- package/dist/events/platform-events.d.ts +161 -0
- package/dist/events/platform-events.d.ts.map +1 -0
- package/dist/events/platform-events.js +135 -0
- package/dist/events/platform-events.js.map +1 -0
- package/dist/events/semantic-event-source.d.ts +85 -0
- package/dist/events/semantic-event-source.d.ts.map +1 -0
- package/dist/events/semantic-event-source.js +147 -0
- package/dist/events/semantic-event-source.js.map +1 -0
- package/dist/events/standard-events.d.ts +26 -0
- package/dist/events/standard-events.d.ts.map +1 -0
- package/dist/events/standard-events.js +27 -0
- package/dist/events/standard-events.js.map +1 -0
- package/dist/events/system-event.d.ts +62 -0
- package/dist/events/system-event.d.ts.map +1 -0
- package/dist/events/system-event.js +55 -0
- package/dist/events/system-event.js.map +1 -0
- package/dist/events/typed-event.d.ts +69 -0
- package/dist/events/typed-event.d.ts.map +1 -0
- package/dist/events/typed-event.js +20 -0
- package/dist/events/typed-event.js.map +1 -0
- package/dist/events/types.d.ts +105 -0
- package/dist/events/types.d.ts.map +1 -0
- package/dist/events/types.js +4 -0
- package/dist/events/types.js.map +1 -0
- package/dist/execution/index.d.ts +2 -0
- package/dist/execution/index.d.ts.map +1 -0
- package/dist/execution/index.js +23 -0
- package/dist/execution/index.js.map +1 -0
- package/dist/execution/types.d.ts +117 -0
- package/dist/execution/types.d.ts.map +1 -0
- package/dist/execution/types.js +4 -0
- package/dist/execution/types.js.map +1 -0
- package/dist/extensions/index.d.ts +3 -0
- package/dist/extensions/index.d.ts.map +1 -0
- package/dist/extensions/index.js +20 -0
- package/dist/extensions/index.js.map +1 -0
- package/dist/extensions/registry.d.ts +61 -0
- package/dist/extensions/registry.d.ts.map +1 -0
- package/dist/extensions/registry.js +153 -0
- package/dist/extensions/registry.js.map +1 -0
- package/dist/extensions/types.d.ts +84 -0
- package/dist/extensions/types.d.ts.map +1 -0
- package/dist/extensions/types.js +15 -0
- package/dist/extensions/types.js.map +1 -0
- package/dist/ifid/ifid.d.ts +30 -0
- package/dist/ifid/ifid.d.ts.map +1 -0
- package/dist/ifid/ifid.js +52 -0
- package/dist/ifid/ifid.js.map +1 -0
- package/dist/ifid/index.d.ts +2 -0
- package/dist/ifid/index.d.ts.map +1 -0
- package/dist/ifid/index.js +9 -0
- package/dist/ifid/index.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +36 -0
- package/dist/index.js.map +1 -0
- package/dist/metadata/index.d.ts +2 -0
- package/dist/metadata/index.d.ts.map +1 -0
- package/dist/metadata/index.js +3 -0
- package/dist/metadata/index.js.map +1 -0
- package/dist/metadata/story-metadata.d.ts +64 -0
- package/dist/metadata/story-metadata.d.ts.map +1 -0
- package/dist/metadata/story-metadata.js +5 -0
- package/dist/metadata/story-metadata.js.map +1 -0
- package/dist/query/index.d.ts +9 -0
- package/dist/query/index.d.ts.map +1 -0
- package/dist/query/index.js +25 -0
- package/dist/query/index.js.map +1 -0
- package/dist/query/query-manager.d.ts +86 -0
- package/dist/query/query-manager.d.ts.map +1 -0
- package/dist/query/query-manager.js +391 -0
- package/dist/query/query-manager.js.map +1 -0
- package/dist/query/types.d.ts +188 -0
- package/dist/query/types.d.ts.map +1 -0
- package/dist/query/types.js +106 -0
- package/dist/query/types.js.map +1 -0
- package/dist/random/index.d.ts +5 -0
- package/dist/random/index.d.ts.map +1 -0
- package/dist/random/index.js +9 -0
- package/dist/random/index.js.map +1 -0
- package/dist/random/seeded-random.d.ts +32 -0
- package/dist/random/seeded-random.d.ts.map +1 -0
- package/dist/random/seeded-random.js +62 -0
- package/dist/random/seeded-random.js.map +1 -0
- package/dist/rules/compatibility.d.ts +46 -0
- package/dist/rules/compatibility.d.ts.map +1 -0
- package/dist/rules/compatibility.js +62 -0
- package/dist/rules/compatibility.js.map +1 -0
- package/dist/rules/condition-builder.d.ts +23 -0
- package/dist/rules/condition-builder.d.ts.map +1 -0
- package/dist/rules/condition-builder.js +16 -0
- package/dist/rules/condition-builder.js.map +1 -0
- package/dist/rules/helpers.d.ts +51 -0
- package/dist/rules/helpers.d.ts.map +1 -0
- package/dist/rules/helpers.js +111 -0
- package/dist/rules/helpers.js.map +1 -0
- package/dist/rules/index.d.ts +12 -0
- package/dist/rules/index.d.ts.map +1 -0
- package/dist/rules/index.js +34 -0
- package/dist/rules/index.js.map +1 -0
- package/dist/rules/rule-system.d.ts +6 -0
- package/dist/rules/rule-system.d.ts.map +1 -0
- package/dist/rules/rule-system.js +10 -0
- package/dist/rules/rule-system.js.map +1 -0
- package/dist/rules/rule-world-adapter.d.ts +43 -0
- package/dist/rules/rule-world-adapter.d.ts.map +1 -0
- package/dist/rules/rule-world-adapter.js +74 -0
- package/dist/rules/rule-world-adapter.js.map +1 -0
- package/dist/rules/simple-rule-system.d.ts +36 -0
- package/dist/rules/simple-rule-system.d.ts.map +1 -0
- package/dist/rules/simple-rule-system.js +135 -0
- package/dist/rules/simple-rule-system.js.map +1 -0
- package/dist/rules/types.d.ts +64 -0
- package/dist/rules/types.d.ts.map +1 -0
- package/dist/rules/types.js +6 -0
- package/dist/rules/types.js.map +1 -0
- package/dist/types/attribute.d.ts +40 -0
- package/dist/types/attribute.d.ts.map +1 -0
- package/dist/types/attribute.js +4 -0
- package/dist/types/attribute.js.map +1 -0
- package/dist/types/entity.d.ts +47 -0
- package/dist/types/entity.d.ts.map +1 -0
- package/dist/types/entity.js +4 -0
- package/dist/types/entity.js.map +1 -0
- package/dist/types/index.d.ts +10 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +27 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/relationship.d.ts +44 -0
- package/dist/types/relationship.d.ts.map +1 -0
- package/dist/types/relationship.js +4 -0
- package/dist/types/relationship.js.map +1 -0
- package/dist/types/result.d.ts +81 -0
- package/dist/types/result.d.ts.map +1 -0
- package/dist/types/result.js +79 -0
- package/dist/types/result.js.map +1 -0
- package/dist/types/save-data.d.ts +264 -0
- package/dist/types/save-data.d.ts.map +1 -0
- package/dist/types/save-data.js +6 -0
- package/dist/types/save-data.js.map +1 -0
- package/package.json +65 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/query/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Core types for the PC communication query system
|
|
4
|
+
*
|
|
5
|
+
* These types define the structure of queries, responses, and validation
|
|
6
|
+
* for the client query system (ADR-018).
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.StandardValidators = exports.QueryType = exports.QuerySource = void 0;
|
|
10
|
+
/**
|
|
11
|
+
* Sources that can initiate queries
|
|
12
|
+
*/
|
|
13
|
+
var QuerySource;
|
|
14
|
+
(function (QuerySource) {
|
|
15
|
+
/** System-level queries (save, quit, restart) */
|
|
16
|
+
QuerySource["SYSTEM"] = "system";
|
|
17
|
+
/** Parser disambiguation queries */
|
|
18
|
+
QuerySource["DISAMBIGUATION"] = "disambiguation";
|
|
19
|
+
/** NPC dialogue queries */
|
|
20
|
+
QuerySource["NPC"] = "npc";
|
|
21
|
+
/** Game mechanic queries (passwords, combinations) */
|
|
22
|
+
QuerySource["GAME_MECHANIC"] = "mechanic";
|
|
23
|
+
/** Narrative-driven queries */
|
|
24
|
+
QuerySource["NARRATIVE"] = "narrative";
|
|
25
|
+
})(QuerySource || (exports.QuerySource = QuerySource = {}));
|
|
26
|
+
/**
|
|
27
|
+
* Types of queries that can be presented
|
|
28
|
+
*/
|
|
29
|
+
var QueryType;
|
|
30
|
+
(function (QueryType) {
|
|
31
|
+
/** Simple yes/no question */
|
|
32
|
+
QueryType["YES_NO"] = "yes_no";
|
|
33
|
+
/** Multiple choice with predefined options */
|
|
34
|
+
QueryType["MULTIPLE_CHOICE"] = "multiple_choice";
|
|
35
|
+
/** Open-ended text input */
|
|
36
|
+
QueryType["FREE_TEXT"] = "free_text";
|
|
37
|
+
/** Numeric input only */
|
|
38
|
+
QueryType["NUMERIC"] = "numeric";
|
|
39
|
+
/** Special type for disambiguation */
|
|
40
|
+
QueryType["DISAMBIGUATION"] = "disambiguation";
|
|
41
|
+
})(QueryType || (exports.QueryType = QueryType = {}));
|
|
42
|
+
/**
|
|
43
|
+
* Standard validators
|
|
44
|
+
*/
|
|
45
|
+
exports.StandardValidators = {
|
|
46
|
+
/** Validate yes/no responses */
|
|
47
|
+
yesNo: (response) => {
|
|
48
|
+
const normalized = response.toLowerCase().trim();
|
|
49
|
+
const yesVariants = ['yes', 'y', 'yeah', 'yep', 'sure', 'ok', 'okay'];
|
|
50
|
+
const noVariants = ['no', 'n', 'nope', 'nah', 'cancel'];
|
|
51
|
+
if (yesVariants.includes(normalized)) {
|
|
52
|
+
return { valid: true, normalized: true };
|
|
53
|
+
}
|
|
54
|
+
if (noVariants.includes(normalized)) {
|
|
55
|
+
return { valid: true, normalized: false };
|
|
56
|
+
}
|
|
57
|
+
return {
|
|
58
|
+
valid: false,
|
|
59
|
+
message: 'Please answer yes or no.',
|
|
60
|
+
hint: 'You can also use y/n'
|
|
61
|
+
};
|
|
62
|
+
},
|
|
63
|
+
/** Validate numeric responses */
|
|
64
|
+
numeric: (response, min, max) => {
|
|
65
|
+
const num = parseInt(response.trim(), 10);
|
|
66
|
+
if (isNaN(num)) {
|
|
67
|
+
return {
|
|
68
|
+
valid: false,
|
|
69
|
+
message: 'Please enter a number.'
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
if (min !== undefined && num < min) {
|
|
73
|
+
return {
|
|
74
|
+
valid: false,
|
|
75
|
+
message: `Please enter a number at least ${min}.`
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
if (max !== undefined && num > max) {
|
|
79
|
+
return {
|
|
80
|
+
valid: false,
|
|
81
|
+
message: `Please enter a number no more than ${max}.`
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
return { valid: true, normalized: num };
|
|
85
|
+
},
|
|
86
|
+
/** Validate multiple choice responses */
|
|
87
|
+
multipleChoice: (response, options) => {
|
|
88
|
+
const trimmed = response.trim();
|
|
89
|
+
// Check if it's a number
|
|
90
|
+
const num = parseInt(trimmed, 10);
|
|
91
|
+
if (!isNaN(num) && num >= 1 && num <= options.length) {
|
|
92
|
+
return { valid: true, normalized: num - 1 };
|
|
93
|
+
}
|
|
94
|
+
// Check if it matches an option (case insensitive)
|
|
95
|
+
const index = options.findIndex(opt => opt.toLowerCase().includes(trimmed.toLowerCase()) ||
|
|
96
|
+
trimmed.toLowerCase().includes(opt.toLowerCase()));
|
|
97
|
+
if (index >= 0) {
|
|
98
|
+
return { valid: true, normalized: index };
|
|
99
|
+
}
|
|
100
|
+
return {
|
|
101
|
+
valid: false,
|
|
102
|
+
message: `Please choose a number 1-${options.length} or type part of an option.`
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
};
|
|
106
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/query/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/random/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Random utilities exports
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.createSeededRandom = void 0;
|
|
7
|
+
var seeded_random_1 = require("./seeded-random");
|
|
8
|
+
Object.defineProperty(exports, "createSeededRandom", { enumerable: true, get: function () { return seeded_random_1.createSeededRandom; } });
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/random/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,iDAAmE;AAA5C,mHAAA,kBAAkB,OAAA"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Seeded Random Number Generator Interface
|
|
3
|
+
*
|
|
4
|
+
* Provides deterministic randomness for reproducible game behavior.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Seeded random number generator interface
|
|
8
|
+
*/
|
|
9
|
+
export interface SeededRandom {
|
|
10
|
+
/** Get a random number between 0 and 1 */
|
|
11
|
+
next(): number;
|
|
12
|
+
/** Get a random integer between min and max (inclusive) */
|
|
13
|
+
int(min: number, max: number): number;
|
|
14
|
+
/** Return true with given probability (0-1) */
|
|
15
|
+
chance(probability: number): boolean;
|
|
16
|
+
/** Pick a random element from an array */
|
|
17
|
+
pick<T>(array: T[]): T;
|
|
18
|
+
/** Shuffle an array */
|
|
19
|
+
shuffle<T>(array: T[]): T[];
|
|
20
|
+
/** Get the current seed */
|
|
21
|
+
getSeed(): number;
|
|
22
|
+
/** Set a new seed */
|
|
23
|
+
setSeed(seed: number): void;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Create a seeded random number generator
|
|
27
|
+
*
|
|
28
|
+
* Uses a Linear Congruential Generator (LCG) for deterministic randomness.
|
|
29
|
+
* This ensures reproducible behavior for testing and save/load.
|
|
30
|
+
*/
|
|
31
|
+
export declare function createSeededRandom(seed?: number): SeededRandom;
|
|
32
|
+
//# sourceMappingURL=seeded-random.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seeded-random.d.ts","sourceRoot":"","sources":["../../src/random/seeded-random.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,0CAA0C;IAC1C,IAAI,IAAI,MAAM,CAAC;IAEf,2DAA2D;IAC3D,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;IAEtC,+CAA+C;IAC/C,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC;IAErC,0CAA0C;IAC1C,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;IAEvB,uBAAuB;IACvB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;IAE5B,2BAA2B;IAC3B,OAAO,IAAI,MAAM,CAAC;IAElB,qBAAqB;IACrB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,YAAY,CAuD9D"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Seeded Random Number Generator Interface
|
|
4
|
+
*
|
|
5
|
+
* Provides deterministic randomness for reproducible game behavior.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.createSeededRandom = createSeededRandom;
|
|
9
|
+
/**
|
|
10
|
+
* Create a seeded random number generator
|
|
11
|
+
*
|
|
12
|
+
* Uses a Linear Congruential Generator (LCG) for deterministic randomness.
|
|
13
|
+
* This ensures reproducible behavior for testing and save/load.
|
|
14
|
+
*/
|
|
15
|
+
function createSeededRandom(seed) {
|
|
16
|
+
// Use current time as default seed
|
|
17
|
+
let currentSeed = seed ?? Date.now();
|
|
18
|
+
// LCG constants (same as glibc)
|
|
19
|
+
const a = 1103515245;
|
|
20
|
+
const c = 12345;
|
|
21
|
+
const m = 2 ** 31;
|
|
22
|
+
function next() {
|
|
23
|
+
currentSeed = (a * currentSeed + c) % m;
|
|
24
|
+
return currentSeed / m;
|
|
25
|
+
}
|
|
26
|
+
function int(min, max) {
|
|
27
|
+
return Math.floor(next() * (max - min + 1)) + min;
|
|
28
|
+
}
|
|
29
|
+
function chance(probability) {
|
|
30
|
+
return next() < probability;
|
|
31
|
+
}
|
|
32
|
+
function pick(array) {
|
|
33
|
+
if (array.length === 0) {
|
|
34
|
+
throw new Error('Cannot pick from empty array');
|
|
35
|
+
}
|
|
36
|
+
return array[int(0, array.length - 1)];
|
|
37
|
+
}
|
|
38
|
+
function shuffle(array) {
|
|
39
|
+
const result = [...array];
|
|
40
|
+
for (let i = result.length - 1; i > 0; i--) {
|
|
41
|
+
const j = int(0, i);
|
|
42
|
+
[result[i], result[j]] = [result[j], result[i]];
|
|
43
|
+
}
|
|
44
|
+
return result;
|
|
45
|
+
}
|
|
46
|
+
function getSeed() {
|
|
47
|
+
return currentSeed;
|
|
48
|
+
}
|
|
49
|
+
function setSeed(newSeed) {
|
|
50
|
+
currentSeed = newSeed;
|
|
51
|
+
}
|
|
52
|
+
return {
|
|
53
|
+
next,
|
|
54
|
+
int,
|
|
55
|
+
chance,
|
|
56
|
+
pick,
|
|
57
|
+
shuffle,
|
|
58
|
+
getSeed,
|
|
59
|
+
setSeed,
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=seeded-random.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seeded-random.js","sourceRoot":"","sources":["../../src/random/seeded-random.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AAkCH,gDAuDC;AA7DD;;;;;GAKG;AACH,SAAgB,kBAAkB,CAAC,IAAa;IAC9C,mCAAmC;IACnC,IAAI,WAAW,GAAG,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;IAErC,gCAAgC;IAChC,MAAM,CAAC,GAAG,UAAU,CAAC;IACrB,MAAM,CAAC,GAAG,KAAK,CAAC;IAChB,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;IAElB,SAAS,IAAI;QACX,WAAW,GAAG,CAAC,CAAC,GAAG,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QACxC,OAAO,WAAW,GAAG,CAAC,CAAC;IACzB,CAAC;IAED,SAAS,GAAG,CAAC,GAAW,EAAE,GAAW;QACnC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;IACpD,CAAC;IAED,SAAS,MAAM,CAAC,WAAmB;QACjC,OAAO,IAAI,EAAE,GAAG,WAAW,CAAC;IAC9B,CAAC;IAED,SAAS,IAAI,CAAI,KAAU;QACzB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;QACD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC;IAED,SAAS,OAAO,CAAI,KAAU;QAC5B,MAAM,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;QAC1B,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3C,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACpB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,SAAS,OAAO;QACd,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,SAAS,OAAO,CAAC,OAAe;QAC9B,WAAW,GAAG,OAAO,CAAC;IACxB,CAAC;IAED,OAAO;QACL,IAAI;QACJ,GAAG;QACH,MAAM;QACN,IAAI;QACJ,OAAO;QACP,OAAO;QACP,OAAO;KACR,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compatibility adapter for the old RuleSystem interface
|
|
3
|
+
* This allows existing code to work with the new simple rule system
|
|
4
|
+
*/
|
|
5
|
+
import { ISemanticEvent } from '../events/types';
|
|
6
|
+
import { SimpleRuleSystemImpl } from './simple-rule-system';
|
|
7
|
+
/**
|
|
8
|
+
* Game context interface that the old system expects
|
|
9
|
+
*/
|
|
10
|
+
interface GameContext {
|
|
11
|
+
worldState: any;
|
|
12
|
+
player: any;
|
|
13
|
+
currentLocation: any;
|
|
14
|
+
getEntity: (id: string) => any;
|
|
15
|
+
updateWorldState?: (updater: (state: any) => any) => GameContext;
|
|
16
|
+
[key: string]: any;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Result interface that the old system expects
|
|
20
|
+
*/
|
|
21
|
+
interface OldRuleResult {
|
|
22
|
+
prevented: boolean;
|
|
23
|
+
preventMessage?: string;
|
|
24
|
+
events: ISemanticEvent[];
|
|
25
|
+
context: GameContext;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Old RuleSystem interface for compatibility
|
|
29
|
+
*/
|
|
30
|
+
export interface IRuleSystem {
|
|
31
|
+
processEvent(event: ISemanticEvent, context: GameContext): OldRuleResult;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Adapter that makes the new SimpleRuleSystem compatible with old interfaces
|
|
35
|
+
*/
|
|
36
|
+
export declare class RuleSystemAdapter implements IRuleSystem {
|
|
37
|
+
private simpleRuleSystem;
|
|
38
|
+
constructor(simpleRuleSystem: SimpleRuleSystemImpl);
|
|
39
|
+
processEvent(event: ISemanticEvent, context: GameContext): OldRuleResult;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Create a compatible rule system
|
|
43
|
+
*/
|
|
44
|
+
export declare function createRuleSystem(): IRuleSystem;
|
|
45
|
+
export {};
|
|
46
|
+
//# sourceMappingURL=compatibility.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compatibility.d.ts","sourceRoot":"","sources":["../../src/rules/compatibility.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAG5D;;GAEG;AACH,UAAU,WAAW;IACnB,UAAU,EAAE,GAAG,CAAC;IAChB,MAAM,EAAE,GAAG,CAAC;IACZ,eAAe,EAAE,GAAG,CAAC;IACrB,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,GAAG,CAAC;IAC/B,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,KAAK,WAAW,CAAC;IACjE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED;;GAEG;AACH,UAAU,aAAa;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,OAAO,EAAE,WAAW,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,YAAY,CAAC,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,WAAW,GAAG,aAAa,CAAC;CAC1E;AAED;;GAEG;AACH,qBAAa,iBAAkB,YAAW,WAAW;IACvC,OAAO,CAAC,gBAAgB;gBAAhB,gBAAgB,EAAE,oBAAoB;IAE1D,YAAY,CAAC,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,WAAW,GAAG,aAAa;CAezE;AAwBD;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,WAAW,CAG9C"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Compatibility adapter for the old RuleSystem interface
|
|
4
|
+
* This allows existing code to work with the new simple rule system
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.RuleSystemAdapter = void 0;
|
|
8
|
+
exports.createRuleSystem = createRuleSystem;
|
|
9
|
+
const simple_rule_system_1 = require("./simple-rule-system");
|
|
10
|
+
/**
|
|
11
|
+
* Adapter that makes the new SimpleRuleSystem compatible with old interfaces
|
|
12
|
+
*/
|
|
13
|
+
class RuleSystemAdapter {
|
|
14
|
+
simpleRuleSystem;
|
|
15
|
+
constructor(simpleRuleSystem) {
|
|
16
|
+
this.simpleRuleSystem = simpleRuleSystem;
|
|
17
|
+
}
|
|
18
|
+
processEvent(event, context) {
|
|
19
|
+
// Create a RuleWorld adapter from the GameContext
|
|
20
|
+
const world = createRuleWorldFromGameContext(context);
|
|
21
|
+
// Process through the simple rule system
|
|
22
|
+
const result = this.simpleRuleSystem.processEvent(event, world);
|
|
23
|
+
// Convert back to old format
|
|
24
|
+
return {
|
|
25
|
+
prevented: result.prevent || false,
|
|
26
|
+
preventMessage: result.message,
|
|
27
|
+
events: result.events || [],
|
|
28
|
+
context: context // Return original context for now
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
exports.RuleSystemAdapter = RuleSystemAdapter;
|
|
33
|
+
/**
|
|
34
|
+
* Create a RuleWorld from a GameContext
|
|
35
|
+
*/
|
|
36
|
+
function createRuleWorldFromGameContext(context) {
|
|
37
|
+
return {
|
|
38
|
+
getEntity: (id) => context.getEntity(id),
|
|
39
|
+
updateEntity: (id, changes) => {
|
|
40
|
+
// For now, just update the entity directly
|
|
41
|
+
const entity = context.getEntity(id);
|
|
42
|
+
if (entity) {
|
|
43
|
+
if (entity.attributes) {
|
|
44
|
+
Object.assign(entity.attributes, changes);
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
Object.assign(entity, changes);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
getPlayer: () => context.player,
|
|
52
|
+
getCurrentLocation: () => context.currentLocation
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Create a compatible rule system
|
|
57
|
+
*/
|
|
58
|
+
function createRuleSystem() {
|
|
59
|
+
const simpleRuleSystem = new simple_rule_system_1.SimpleRuleSystemImpl();
|
|
60
|
+
return new RuleSystemAdapter(simpleRuleSystem);
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=compatibility.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compatibility.js","sourceRoot":"","sources":["../../src/rules/compatibility.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAmFH,4CAGC;AAnFD,6DAA4D;AAgC5D;;GAEG;AACH,MAAa,iBAAiB;IACR;IAApB,YAAoB,gBAAsC;QAAtC,qBAAgB,GAAhB,gBAAgB,CAAsB;IAAG,CAAC;IAE9D,YAAY,CAAC,KAAqB,EAAE,OAAoB;QACtD,kDAAkD;QAClD,MAAM,KAAK,GAAG,8BAA8B,CAAC,OAAO,CAAC,CAAC;QAEtD,yCAAyC;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAEhE,6BAA6B;QAC7B,OAAO;YACL,SAAS,EAAE,MAAM,CAAC,OAAO,IAAI,KAAK;YAClC,cAAc,EAAE,MAAM,CAAC,OAAO;YAC9B,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE;YAC3B,OAAO,EAAE,OAAO,CAAC,kCAAkC;SACpD,CAAC;IACJ,CAAC;CACF;AAlBD,8CAkBC;AAED;;GAEG;AACH,SAAS,8BAA8B,CAAC,OAAoB;IAC1D,OAAO;QACL,SAAS,EAAE,CAAC,EAAU,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QAChD,YAAY,EAAE,CAAC,EAAU,EAAE,OAA4B,EAAE,EAAE;YACzD,2CAA2C;YAC3C,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YACrC,IAAI,MAAM,EAAE,CAAC;gBACX,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;oBACtB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;gBAC5C,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBACjC,CAAC;YACH,CAAC;QACH,CAAC;QACD,SAAS,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM;QAC/B,kBAAkB,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,eAAe;KAClD,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,gBAAgB;IAC9B,MAAM,gBAAgB,GAAG,IAAI,yCAAoB,EAAE,CAAC;IACpD,OAAO,IAAI,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;AACjD,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Condition builder utilities
|
|
3
|
+
* TODO: Implement proper condition builders
|
|
4
|
+
*/
|
|
5
|
+
export declare const player: (property: string) => {
|
|
6
|
+
type: string;
|
|
7
|
+
property: string;
|
|
8
|
+
};
|
|
9
|
+
export declare const item: (property: string) => {
|
|
10
|
+
type: string;
|
|
11
|
+
property: string;
|
|
12
|
+
};
|
|
13
|
+
export declare const location: (property: string) => {
|
|
14
|
+
type: string;
|
|
15
|
+
property: string;
|
|
16
|
+
};
|
|
17
|
+
export declare const direction: (property: string) => {
|
|
18
|
+
type: string;
|
|
19
|
+
property: string;
|
|
20
|
+
};
|
|
21
|
+
export type EntityReference = ReturnType<typeof player | typeof item | typeof location>;
|
|
22
|
+
export type ValueReference = string | number | boolean;
|
|
23
|
+
//# sourceMappingURL=condition-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"condition-builder.d.ts","sourceRoot":"","sources":["../../src/rules/condition-builder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,MAAM,GAAI,UAAU,MAAM;;;CAAmC,CAAC;AAC3E,eAAO,MAAM,IAAI,GAAI,UAAU,MAAM;;;CAAiC,CAAC;AACvE,eAAO,MAAM,QAAQ,GAAI,UAAU,MAAM;;;CAAqC,CAAC;AAC/E,eAAO,MAAM,SAAS,GAAI,UAAU,MAAM;;;CAAsC,CAAC;AAEjF,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,MAAM,GAAG,OAAO,IAAI,GAAG,OAAO,QAAQ,CAAC,CAAC;AACxF,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Condition builder utilities
|
|
4
|
+
* TODO: Implement proper condition builders
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.direction = exports.location = exports.item = exports.player = void 0;
|
|
8
|
+
const player = (property) => ({ type: 'player', property });
|
|
9
|
+
exports.player = player;
|
|
10
|
+
const item = (property) => ({ type: 'item', property });
|
|
11
|
+
exports.item = item;
|
|
12
|
+
const location = (property) => ({ type: 'location', property });
|
|
13
|
+
exports.location = location;
|
|
14
|
+
const direction = (property) => ({ type: 'direction', property });
|
|
15
|
+
exports.direction = direction;
|
|
16
|
+
//# sourceMappingURL=condition-builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"condition-builder.js","sourceRoot":"","sources":["../../src/rules/condition-builder.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEI,MAAM,MAAM,GAAG,CAAC,QAAgB,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;AAA9D,QAAA,MAAM,UAAwD;AACpE,MAAM,IAAI,GAAG,CAAC,QAAgB,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;AAA1D,QAAA,IAAI,QAAsD;AAChE,MAAM,QAAQ,GAAG,CAAC,QAAgB,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC;AAAlE,QAAA,QAAQ,YAA0D;AACxE,MAAM,SAAS,GAAG,CAAC,QAAgB,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,CAAC;AAApE,QAAA,SAAS,aAA2D"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Helper functions for common rule patterns
|
|
3
|
+
*/
|
|
4
|
+
import { EntityId } from '../types/entity';
|
|
5
|
+
import { ISemanticEvent } from '../events/types';
|
|
6
|
+
import { IRuleWorld, IEntityChange } from './types';
|
|
7
|
+
/**
|
|
8
|
+
* Helper to get the target item from an event
|
|
9
|
+
*/
|
|
10
|
+
export declare function getTargetItem(event: ISemanticEvent, world: IRuleWorld): any;
|
|
11
|
+
/**
|
|
12
|
+
* Helper to get the actor from an event
|
|
13
|
+
*/
|
|
14
|
+
export declare function getActor(event: ISemanticEvent, world: IRuleWorld): any;
|
|
15
|
+
/**
|
|
16
|
+
* Helper to check if entity has a specific name/id
|
|
17
|
+
*/
|
|
18
|
+
export declare function entityIs(entity: any, nameOrId: string): boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Helper to get entity attribute value
|
|
21
|
+
*/
|
|
22
|
+
export declare function getAttribute(entity: any, attribute: string): any;
|
|
23
|
+
/**
|
|
24
|
+
* Helper to check if entity has an ability
|
|
25
|
+
*/
|
|
26
|
+
export declare function hasAbility(entity: any, ability: string): boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Helper to create an entity change that gives an ability
|
|
29
|
+
*/
|
|
30
|
+
export declare function giveAbility(entityId: EntityId, ability: string): IEntityChange;
|
|
31
|
+
/**
|
|
32
|
+
* Helper to create an entity change that removes an ability
|
|
33
|
+
*/
|
|
34
|
+
export declare function removeAbility(entityId: EntityId, ability: string): IEntityChange;
|
|
35
|
+
/**
|
|
36
|
+
* Helper to create an entity change that sets an attribute
|
|
37
|
+
*/
|
|
38
|
+
export declare function setAttribute(entityId: EntityId, attribute: string, value: any): IEntityChange;
|
|
39
|
+
/**
|
|
40
|
+
* Common condition: item weight vs player strength
|
|
41
|
+
*/
|
|
42
|
+
export declare function itemTooHeavy(event: ISemanticEvent, world: IRuleWorld): boolean;
|
|
43
|
+
/**
|
|
44
|
+
* Common condition: check if taking a specific item
|
|
45
|
+
*/
|
|
46
|
+
export declare function isTaking(itemNameOrId: string): (event: ISemanticEvent, world: IRuleWorld) => boolean;
|
|
47
|
+
/**
|
|
48
|
+
* Common condition: player has specific ability
|
|
49
|
+
*/
|
|
50
|
+
export declare function playerHasAbility(ability: string): (event: ISemanticEvent, world: IRuleWorld) => boolean;
|
|
51
|
+
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/rules/helpers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAEpD;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,UAAU,OAOrE;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,UAAU,OAGhE;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAE/D;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,GAAG,GAAG,CAEhE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAEhE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,GAAG,aAAa,CAM9E;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,GAAG,aAAa,CAMhF;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,aAAa,CAM7F;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAQ9E;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,YAAY,EAAE,MAAM,IACnC,OAAO,cAAc,EAAE,OAAO,UAAU,KAAG,OAAO,CAI3D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,IACtC,OAAO,cAAc,EAAE,OAAO,UAAU,KAAG,OAAO,CAI3D"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Helper functions for common rule patterns
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.getTargetItem = getTargetItem;
|
|
7
|
+
exports.getActor = getActor;
|
|
8
|
+
exports.entityIs = entityIs;
|
|
9
|
+
exports.getAttribute = getAttribute;
|
|
10
|
+
exports.hasAbility = hasAbility;
|
|
11
|
+
exports.giveAbility = giveAbility;
|
|
12
|
+
exports.removeAbility = removeAbility;
|
|
13
|
+
exports.setAttribute = setAttribute;
|
|
14
|
+
exports.itemTooHeavy = itemTooHeavy;
|
|
15
|
+
exports.isTaking = isTaking;
|
|
16
|
+
exports.playerHasAbility = playerHasAbility;
|
|
17
|
+
/**
|
|
18
|
+
* Helper to get the target item from an event
|
|
19
|
+
*/
|
|
20
|
+
function getTargetItem(event, world) {
|
|
21
|
+
const targetId = event.entities.target || event.data?.itemId;
|
|
22
|
+
// Ensure targetId is a string before passing to getEntity
|
|
23
|
+
if (typeof targetId === 'string') {
|
|
24
|
+
return world.getEntity(targetId);
|
|
25
|
+
}
|
|
26
|
+
return undefined;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Helper to get the actor from an event
|
|
30
|
+
*/
|
|
31
|
+
function getActor(event, world) {
|
|
32
|
+
const actorId = event.entities.actor;
|
|
33
|
+
return actorId ? world.getEntity(actorId) : undefined;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Helper to check if entity has a specific name/id
|
|
37
|
+
*/
|
|
38
|
+
function entityIs(entity, nameOrId) {
|
|
39
|
+
return entity?.id === nameOrId || entity?.attributes?.name === nameOrId;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Helper to get entity attribute value
|
|
43
|
+
*/
|
|
44
|
+
function getAttribute(entity, attribute) {
|
|
45
|
+
return entity?.attributes?.[attribute];
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Helper to check if entity has an ability
|
|
49
|
+
*/
|
|
50
|
+
function hasAbility(entity, ability) {
|
|
51
|
+
return entity?.attributes?.[`ability_${ability}`] === true;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Helper to create an entity change that gives an ability
|
|
55
|
+
*/
|
|
56
|
+
function giveAbility(entityId, ability) {
|
|
57
|
+
return {
|
|
58
|
+
entityId,
|
|
59
|
+
attribute: `ability_${ability}`,
|
|
60
|
+
value: true
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Helper to create an entity change that removes an ability
|
|
65
|
+
*/
|
|
66
|
+
function removeAbility(entityId, ability) {
|
|
67
|
+
return {
|
|
68
|
+
entityId,
|
|
69
|
+
attribute: `ability_${ability}`,
|
|
70
|
+
value: undefined
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Helper to create an entity change that sets an attribute
|
|
75
|
+
*/
|
|
76
|
+
function setAttribute(entityId, attribute, value) {
|
|
77
|
+
return {
|
|
78
|
+
entityId,
|
|
79
|
+
attribute,
|
|
80
|
+
value
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Common condition: item weight vs player strength
|
|
85
|
+
*/
|
|
86
|
+
function itemTooHeavy(event, world) {
|
|
87
|
+
const item = getTargetItem(event, world);
|
|
88
|
+
const player = world.getPlayer();
|
|
89
|
+
const itemWeight = getAttribute(item, 'weight') || 0;
|
|
90
|
+
const playerStrength = getAttribute(player, 'strength') || 10;
|
|
91
|
+
return itemWeight > playerStrength;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Common condition: check if taking a specific item
|
|
95
|
+
*/
|
|
96
|
+
function isTaking(itemNameOrId) {
|
|
97
|
+
return (event, world) => {
|
|
98
|
+
const item = getTargetItem(event, world);
|
|
99
|
+
return entityIs(item, itemNameOrId);
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Common condition: player has specific ability
|
|
104
|
+
*/
|
|
105
|
+
function playerHasAbility(ability) {
|
|
106
|
+
return (event, world) => {
|
|
107
|
+
const player = world.getPlayer();
|
|
108
|
+
return hasAbility(player, ability);
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/rules/helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Simple Rule System v2 - Main exports
|
|
3
|
+
*/
|
|
4
|
+
export * from './types';
|
|
5
|
+
export * from './simple-rule-system';
|
|
6
|
+
export * from './helpers';
|
|
7
|
+
export * from './rule-world-adapter';
|
|
8
|
+
export * from './compatibility';
|
|
9
|
+
export { createSimpleRuleSystem } from './simple-rule-system';
|
|
10
|
+
export { createSimpleRuleWorld } from './rule-world-adapter';
|
|
11
|
+
export { IRuleSystem, createRuleSystem } from './compatibility';
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/rules/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,SAAS,CAAC;AACxB,cAAc,sBAAsB,CAAC;AACrC,cAAc,WAAW,CAAC;AAC1B,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAGhC,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAG7D,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Simple Rule System v2 - Main exports
|
|
4
|
+
*/
|
|
5
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
8
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
9
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
10
|
+
}
|
|
11
|
+
Object.defineProperty(o, k2, desc);
|
|
12
|
+
}) : (function(o, m, k, k2) {
|
|
13
|
+
if (k2 === undefined) k2 = k;
|
|
14
|
+
o[k2] = m[k];
|
|
15
|
+
}));
|
|
16
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
17
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
18
|
+
};
|
|
19
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
+
exports.createRuleSystem = exports.createSimpleRuleWorld = exports.createSimpleRuleSystem = void 0;
|
|
21
|
+
__exportStar(require("./types"), exports);
|
|
22
|
+
__exportStar(require("./simple-rule-system"), exports);
|
|
23
|
+
__exportStar(require("./helpers"), exports);
|
|
24
|
+
__exportStar(require("./rule-world-adapter"), exports);
|
|
25
|
+
__exportStar(require("./compatibility"), exports);
|
|
26
|
+
// Re-export for convenience
|
|
27
|
+
var simple_rule_system_1 = require("./simple-rule-system");
|
|
28
|
+
Object.defineProperty(exports, "createSimpleRuleSystem", { enumerable: true, get: function () { return simple_rule_system_1.createSimpleRuleSystem; } });
|
|
29
|
+
var rule_world_adapter_1 = require("./rule-world-adapter");
|
|
30
|
+
Object.defineProperty(exports, "createSimpleRuleWorld", { enumerable: true, get: function () { return rule_world_adapter_1.createSimpleRuleWorld; } });
|
|
31
|
+
// Compatibility exports for old code
|
|
32
|
+
var compatibility_1 = require("./compatibility");
|
|
33
|
+
Object.defineProperty(exports, "createRuleSystem", { enumerable: true, get: function () { return compatibility_1.createRuleSystem; } });
|
|
34
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/rules/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;;AAEH,0CAAwB;AACxB,uDAAqC;AACrC,4CAA0B;AAC1B,uDAAqC;AACrC,kDAAgC;AAEhC,4BAA4B;AAC5B,2DAA8D;AAArD,4HAAA,sBAAsB,OAAA;AAC/B,2DAA6D;AAApD,2HAAA,qBAAqB,OAAA;AAE9B,qCAAqC;AACrC,iDAAgE;AAA1C,iHAAA,gBAAgB,OAAA"}
|