@sharpee/world-model 2.2.0 → 3.1.0
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/behaviors/index.d.ts +1 -0
- package/behaviors/index.d.ts.map +1 -1
- package/behaviors/index.js +4 -1
- package/behaviors/index.js.map +1 -1
- package/capabilities/action-interceptor.d.ts +93 -6
- package/capabilities/action-interceptor.d.ts.map +1 -1
- package/capabilities/action-interceptor.js +59 -2
- package/capabilities/action-interceptor.js.map +1 -1
- package/capabilities/index.d.ts +1 -1
- package/capabilities/index.d.ts.map +1 -1
- package/capabilities/index.js +2 -1
- package/capabilities/index.js.map +1 -1
- package/index.d.ts +13 -0
- package/index.d.ts.map +1 -1
- package/index.js +23 -0
- package/index.js.map +1 -1
- package/package.json +3 -3
- package/traits/combatant/combatantBehavior.d.ts +23 -18
- package/traits/combatant/combatantBehavior.d.ts.map +1 -1
- package/traits/combatant/combatantBehavior.js +47 -45
- package/traits/combatant/combatantBehavior.js.map +1 -1
- package/traits/combatant/combatantTrait.d.ts +14 -48
- package/traits/combatant/combatantTrait.d.ts.map +1 -1
- package/traits/combatant/combatantTrait.js +13 -80
- package/traits/combatant/combatantTrait.js.map +1 -1
- package/traits/cuttable/cuttableBehavior.d.ts +23 -0
- package/traits/cuttable/cuttableBehavior.d.ts.map +1 -0
- package/traits/cuttable/cuttableBehavior.js +39 -0
- package/traits/cuttable/cuttableBehavior.js.map +1 -0
- package/traits/cuttable/cuttableTrait.d.ts +37 -0
- package/traits/cuttable/cuttableTrait.d.ts.map +1 -0
- package/traits/cuttable/cuttableTrait.js +30 -0
- package/traits/cuttable/cuttableTrait.js.map +1 -0
- package/traits/cuttable/index.d.ts +3 -0
- package/traits/cuttable/index.d.ts.map +1 -0
- package/traits/cuttable/index.js +20 -0
- package/traits/cuttable/index.js.map +1 -0
- package/traits/deadly-room/deadlyRoomBehavior.d.ts +48 -0
- package/traits/deadly-room/deadlyRoomBehavior.d.ts.map +1 -0
- package/traits/deadly-room/deadlyRoomBehavior.js +59 -0
- package/traits/deadly-room/deadlyRoomBehavior.js.map +1 -0
- package/traits/deadly-room/deadlyRoomTrait.d.ts +51 -0
- package/traits/deadly-room/deadlyRoomTrait.d.ts.map +1 -0
- package/traits/deadly-room/deadlyRoomTrait.js +37 -0
- package/traits/deadly-room/deadlyRoomTrait.js.map +1 -0
- package/traits/deadly-room/index.d.ts +3 -0
- package/traits/deadly-room/index.d.ts.map +1 -0
- package/traits/deadly-room/index.js +8 -0
- package/traits/deadly-room/index.js.map +1 -0
- package/traits/diggable/diggableBehavior.d.ts +23 -0
- package/traits/diggable/diggableBehavior.d.ts.map +1 -0
- package/traits/diggable/diggableBehavior.js +39 -0
- package/traits/diggable/diggableBehavior.js.map +1 -0
- package/traits/diggable/diggableTrait.d.ts +37 -0
- package/traits/diggable/diggableTrait.d.ts.map +1 -0
- package/traits/diggable/diggableTrait.js +30 -0
- package/traits/diggable/diggableTrait.js.map +1 -0
- package/traits/diggable/index.d.ts +3 -0
- package/traits/diggable/index.d.ts.map +1 -0
- package/traits/diggable/index.js +20 -0
- package/traits/diggable/index.js.map +1 -0
- package/traits/health/healthBehavior.d.ts +66 -0
- package/traits/health/healthBehavior.d.ts.map +1 -0
- package/traits/health/healthBehavior.js +98 -0
- package/traits/health/healthBehavior.js.map +1 -0
- package/traits/health/healthTrait.d.ts +60 -0
- package/traits/health/healthTrait.d.ts.map +1 -0
- package/traits/health/healthTrait.js +49 -0
- package/traits/health/healthTrait.js.map +1 -0
- package/traits/health/index.d.ts +3 -0
- package/traits/health/index.d.ts.map +1 -0
- package/traits/health/index.js +8 -0
- package/traits/health/index.js.map +1 -0
- package/traits/implementations.d.ts +5 -1
- package/traits/implementations.d.ts.map +1 -1
- package/traits/implementations.js +15 -1
- package/traits/implementations.js.map +1 -1
- package/traits/index.d.ts +4 -0
- package/traits/index.d.ts.map +1 -1
- package/traits/index.js +5 -0
- package/traits/index.js.map +1 -1
- package/traits/npc/npcTrait.d.ts +5 -27
- package/traits/npc/npcTrait.d.ts.map +1 -1
- package/traits/npc/npcTrait.js +0 -38
- package/traits/npc/npcTrait.js.map +1 -1
- package/traits/openable/openableBehavior.d.ts +10 -0
- package/traits/openable/openableBehavior.d.ts.map +1 -1
- package/traits/openable/openableBehavior.js +21 -0
- package/traits/openable/openableBehavior.js.map +1 -1
- package/traits/openable/openableTrait.d.ts +7 -0
- package/traits/openable/openableTrait.d.ts.map +1 -1
- package/traits/openable/openableTrait.js +4 -0
- package/traits/openable/openableTrait.js.map +1 -1
- package/traits/room/roomTrait.d.ts +8 -3
- package/traits/room/roomTrait.d.ts.map +1 -1
- package/traits/room/roomTrait.js +2 -2
- package/traits/room/roomTrait.js.map +1 -1
- package/traits/trait-types.d.ts +4 -0
- package/traits/trait-types.d.ts.map +1 -1
- package/traits/trait-types.js +12 -0
- package/traits/trait-types.js.map +1 -1
- package/world/AuthorModel.d.ts +2 -1
- package/world/AuthorModel.d.ts.map +1 -1
- package/world/AuthorModel.js +3 -0
- package/world/AuthorModel.js.map +1 -1
- package/world/VisibilityBehavior.d.ts +1 -1
- package/world/VisibilityBehavior.js +4 -4
- package/world/VisibilityBehavior.js.map +1 -1
- package/world/WorldModel.d.ts +38 -0
- package/world/WorldModel.d.ts.map +1 -1
- package/world/WorldModel.js +34 -1
- package/world/WorldModel.js.map +1 -1
- package/world/index.d.ts +1 -1
- package/world/index.d.ts.map +1 -1
- package/world/index.js.map +1 -1
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Health Trait (ADR-226 — the HEALTH layer of ADR-223's four-layer NPC model).
|
|
3
|
+
*
|
|
4
|
+
* The single creature life-state model: current/max health, a derived
|
|
5
|
+
* consciousness threshold, an `asleep` flag, and a first-class terminal
|
|
6
|
+
* dead-by-cause state. This is the one source of mortality/consciousness truth —
|
|
7
|
+
* `CombatantTrait` and `NpcTrait` no longer carry their own `isAlive`/`isConscious`.
|
|
8
|
+
*
|
|
9
|
+
* Data only — no methods. All derivation (alive/conscious/can-act) and mutation
|
|
10
|
+
* (takeDamage/heal/kill) live in {@link HealthBehavior}, because a getter on the
|
|
11
|
+
* trait does not survive `loadJSON()` deserialization (the `npc-service` `canAct`
|
|
12
|
+
* footgun this layer removes).
|
|
13
|
+
*
|
|
14
|
+
* Public interface: read life-state via `HealthBehavior.{isAlive,isConscious,canAct}`
|
|
15
|
+
* and mutate via `HealthBehavior.{takeDamage,heal,kill}`.
|
|
16
|
+
* Owner context: `@sharpee/world-model` — HEALTH layer (ADR-223 child A).
|
|
17
|
+
*/
|
|
18
|
+
import { ITrait } from '../trait';
|
|
19
|
+
/**
|
|
20
|
+
* Constructor/serialization data for {@link HealthTrait}. Every field is optional;
|
|
21
|
+
* see the class constructor for defaults.
|
|
22
|
+
*/
|
|
23
|
+
export interface IHealthData {
|
|
24
|
+
/** Current health. Defaults to `maxHealth`. */
|
|
25
|
+
health?: number;
|
|
26
|
+
/** Maximum health; `heal` clamps to this. Defaults to `health`, else 10. */
|
|
27
|
+
maxHealth?: number;
|
|
28
|
+
/** Terminal dead-by-cause flag (ADR-224). Defaults to `false`. */
|
|
29
|
+
dead?: boolean;
|
|
30
|
+
/** Cause recorded alongside `dead` (e.g. 'combat', 'grue', 'fall'). */
|
|
31
|
+
causeOfDeath?: string;
|
|
32
|
+
/** Full health but voluntarily not acting (a daemon/story concern). Defaults to `false`. */
|
|
33
|
+
asleep?: boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Fraction of `maxHealth` at/below which the entity is unconscious.
|
|
36
|
+
* Defaults to `0.2` (ADR-072 20%-health parity).
|
|
37
|
+
*/
|
|
38
|
+
unconsciousThreshold?: number;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* The creature life-state trait. Data-only; see file header.
|
|
42
|
+
*
|
|
43
|
+
* Invariants (enforced by {@link HealthBehavior}, not by getters here):
|
|
44
|
+
* - `alive` ⇔ `!dead && health > 0`
|
|
45
|
+
* - `conscious` ⇔ `alive && !asleep && health > maxHealth * unconsciousThreshold`
|
|
46
|
+
* There is no stored knocked-out flag and no recovery timer — consciousness is
|
|
47
|
+
* purely derived from `health` (ADR-226 §1 F1).
|
|
48
|
+
*/
|
|
49
|
+
export declare class HealthTrait implements ITrait, IHealthData {
|
|
50
|
+
static readonly type: "health";
|
|
51
|
+
readonly type: "health";
|
|
52
|
+
health: number;
|
|
53
|
+
maxHealth: number;
|
|
54
|
+
dead: boolean;
|
|
55
|
+
causeOfDeath?: string;
|
|
56
|
+
asleep: boolean;
|
|
57
|
+
unconsciousThreshold: number;
|
|
58
|
+
constructor(data?: IHealthData);
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=healthTrait.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"healthTrait.d.ts","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/health/healthTrait.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,+CAA+C;IAC/C,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,kEAAkE;IAClE,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf,uEAAuE;IACvE,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,4FAA4F;IAC5F,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;;OAGG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED;;;;;;;;GAQG;AACH,qBAAa,WAAY,YAAW,MAAM,EAAE,WAAW;IACrD,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAG,QAAQ,CAAU;IACzC,QAAQ,CAAC,IAAI,EAAG,QAAQ,CAAU;IAElC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,OAAO,CAAC;IAChB,oBAAoB,EAAE,MAAM,CAAC;gBAEjB,IAAI,GAAE,WAAgB;CAQnC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Health Trait (ADR-226 — the HEALTH layer of ADR-223's four-layer NPC model).
|
|
4
|
+
*
|
|
5
|
+
* The single creature life-state model: current/max health, a derived
|
|
6
|
+
* consciousness threshold, an `asleep` flag, and a first-class terminal
|
|
7
|
+
* dead-by-cause state. This is the one source of mortality/consciousness truth —
|
|
8
|
+
* `CombatantTrait` and `NpcTrait` no longer carry their own `isAlive`/`isConscious`.
|
|
9
|
+
*
|
|
10
|
+
* Data only — no methods. All derivation (alive/conscious/can-act) and mutation
|
|
11
|
+
* (takeDamage/heal/kill) live in {@link HealthBehavior}, because a getter on the
|
|
12
|
+
* trait does not survive `loadJSON()` deserialization (the `npc-service` `canAct`
|
|
13
|
+
* footgun this layer removes).
|
|
14
|
+
*
|
|
15
|
+
* Public interface: read life-state via `HealthBehavior.{isAlive,isConscious,canAct}`
|
|
16
|
+
* and mutate via `HealthBehavior.{takeDamage,heal,kill}`.
|
|
17
|
+
* Owner context: `@sharpee/world-model` — HEALTH layer (ADR-223 child A).
|
|
18
|
+
*/
|
|
19
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
+
exports.HealthTrait = void 0;
|
|
21
|
+
/**
|
|
22
|
+
* The creature life-state trait. Data-only; see file header.
|
|
23
|
+
*
|
|
24
|
+
* Invariants (enforced by {@link HealthBehavior}, not by getters here):
|
|
25
|
+
* - `alive` ⇔ `!dead && health > 0`
|
|
26
|
+
* - `conscious` ⇔ `alive && !asleep && health > maxHealth * unconsciousThreshold`
|
|
27
|
+
* There is no stored knocked-out flag and no recovery timer — consciousness is
|
|
28
|
+
* purely derived from `health` (ADR-226 §1 F1).
|
|
29
|
+
*/
|
|
30
|
+
class HealthTrait {
|
|
31
|
+
static type = 'health';
|
|
32
|
+
type = 'health';
|
|
33
|
+
health;
|
|
34
|
+
maxHealth;
|
|
35
|
+
dead;
|
|
36
|
+
causeOfDeath;
|
|
37
|
+
asleep;
|
|
38
|
+
unconsciousThreshold;
|
|
39
|
+
constructor(data = {}) {
|
|
40
|
+
this.maxHealth = data.maxHealth ?? data.health ?? 10;
|
|
41
|
+
this.health = data.health ?? this.maxHealth;
|
|
42
|
+
this.dead = data.dead ?? false;
|
|
43
|
+
this.causeOfDeath = data.causeOfDeath;
|
|
44
|
+
this.asleep = data.asleep ?? false;
|
|
45
|
+
this.unconsciousThreshold = data.unconsciousThreshold ?? 0.2;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
exports.HealthTrait = HealthTrait;
|
|
49
|
+
//# sourceMappingURL=healthTrait.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"healthTrait.js","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/health/healthTrait.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;GAgBG;;;AA+BH;;;;;;;;GAQG;AACH,MAAa,WAAW;IACtB,MAAM,CAAU,IAAI,GAAG,QAAiB,CAAC;IAChC,IAAI,GAAG,QAAiB,CAAC;IAElC,MAAM,CAAS;IACf,SAAS,CAAS;IAClB,IAAI,CAAU;IACd,YAAY,CAAU;IACtB,MAAM,CAAU;IAChB,oBAAoB,CAAS;IAE7B,YAAY,OAAoB,EAAE;QAChC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;QACrD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC;QAC5C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC;QAC/B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACtC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC;QACnC,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,IAAI,GAAG,CAAC;IAC/D,CAAC;;AAlBH,kCAmBC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/health/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.HealthBehavior = exports.HealthTrait = void 0;
|
|
4
|
+
var healthTrait_1 = require("./healthTrait");
|
|
5
|
+
Object.defineProperty(exports, "HealthTrait", { enumerable: true, get: function () { return healthTrait_1.HealthTrait; } });
|
|
6
|
+
var healthBehavior_1 = require("./healthBehavior");
|
|
7
|
+
Object.defineProperty(exports, "HealthBehavior", { enumerable: true, get: function () { return healthBehavior_1.HealthBehavior; } });
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/health/index.ts"],"names":[],"mappings":";;;AAAA,6CAAyD;AAAhD,0GAAA,WAAW,OAAA;AACpB,mDAAkD;AAAzC,gHAAA,cAAc,OAAA"}
|
|
@@ -15,6 +15,8 @@ import { EdibleTrait } from './edible/edibleTrait';
|
|
|
15
15
|
import { SceneryTrait } from './scenery/sceneryTrait';
|
|
16
16
|
import { OpenableTrait } from './openable/openableTrait';
|
|
17
17
|
import { LockableTrait } from './lockable/lockableTrait';
|
|
18
|
+
import { CuttableTrait } from './cuttable/cuttableTrait';
|
|
19
|
+
import { DiggableTrait } from './diggable/diggableTrait';
|
|
18
20
|
import { SwitchableTrait } from './switchable/switchableTrait';
|
|
19
21
|
import { ReadableTrait } from './readable/readableTrait';
|
|
20
22
|
import { LightSourceTrait } from './light-source/lightSourceTrait';
|
|
@@ -34,6 +36,8 @@ import { BreakableTrait } from './breakable/breakableTrait';
|
|
|
34
36
|
import { DestructibleTrait } from './destructible/destructibleTrait';
|
|
35
37
|
import { CombatantTrait } from './combatant/combatantTrait';
|
|
36
38
|
import { EquippedTrait } from './equipped/equippedTrait';
|
|
39
|
+
import { HealthTrait } from './health/healthTrait';
|
|
40
|
+
import { DeadlyRoomTrait } from './deadly-room/deadlyRoomTrait';
|
|
37
41
|
import { NpcTrait } from './npc/npcTrait';
|
|
38
42
|
import { OpenInventoryTrait } from './open-inventory/openInventoryTrait';
|
|
39
43
|
import { CharacterModelTrait } from './character-model/characterModelTrait';
|
|
@@ -52,5 +56,5 @@ export declare function getTraitImplementation(type: TraitType): ITraitConstruct
|
|
|
52
56
|
* Create trait instance by type
|
|
53
57
|
*/
|
|
54
58
|
export declare function createTrait(type: TraitType, data?: any): InstanceType<ITraitConstructor>;
|
|
55
|
-
export { IdentityTrait, ContainerTrait, SupporterTrait, RoomTrait, WearableTrait, ClothingTrait, EdibleTrait, SceneryTrait, OpenableTrait, LockableTrait, SwitchableTrait, ReadableTrait, LightSourceTrait, DoorTrait, RegionTrait, SceneTrait, ActorTrait, ExitTrait, ClimbableTrait, PullableTrait, AttachedTrait, PushableTrait, ButtonTrait, MoveableSceneryTrait, WeaponTrait, BreakableTrait, DestructibleTrait, CombatantTrait, EquippedTrait, NpcTrait, OpenInventoryTrait, CharacterModelTrait, VehicleTrait, EnterableTrait, StoryInfoTrait };
|
|
59
|
+
export { IdentityTrait, ContainerTrait, SupporterTrait, RoomTrait, WearableTrait, ClothingTrait, EdibleTrait, SceneryTrait, OpenableTrait, LockableTrait, CuttableTrait, DiggableTrait, SwitchableTrait, ReadableTrait, LightSourceTrait, DoorTrait, RegionTrait, SceneTrait, ActorTrait, ExitTrait, ClimbableTrait, PullableTrait, AttachedTrait, PushableTrait, ButtonTrait, MoveableSceneryTrait, WeaponTrait, BreakableTrait, DestructibleTrait, CombatantTrait, EquippedTrait, HealthTrait, DeadlyRoomTrait, NpcTrait, OpenInventoryTrait, CharacterModelTrait, VehicleTrait, EnterableTrait, StoryInfoTrait };
|
|
56
60
|
//# sourceMappingURL=implementations.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"implementations.d.ts","sourceRoot":"","sources":["../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/implementations.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAG5C,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAGnE,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,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGhD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGhD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAG7C,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,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAG/E,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;AAGzD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAGzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAG5E,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAY5D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE7D;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,SAAS,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"implementations.d.ts","sourceRoot":"","sources":["../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/implementations.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Maps trait types to their implementation classes
|
|
6
6
|
*/
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
-
exports.StoryInfoTrait = exports.EnterableTrait = exports.VehicleTrait = exports.CharacterModelTrait = exports.OpenInventoryTrait = exports.NpcTrait = exports.EquippedTrait = exports.CombatantTrait = exports.DestructibleTrait = exports.BreakableTrait = exports.WeaponTrait = exports.MoveableSceneryTrait = exports.ButtonTrait = exports.PushableTrait = exports.AttachedTrait = exports.PullableTrait = exports.ClimbableTrait = exports.ExitTrait = exports.ActorTrait = exports.SceneTrait = exports.RegionTrait = exports.DoorTrait = exports.LightSourceTrait = exports.ReadableTrait = exports.SwitchableTrait = exports.LockableTrait = exports.OpenableTrait = exports.SceneryTrait = exports.EdibleTrait = exports.ClothingTrait = exports.WearableTrait = exports.RoomTrait = exports.SupporterTrait = exports.ContainerTrait = exports.IdentityTrait = exports.TRAIT_IMPLEMENTATIONS = void 0;
|
|
8
|
+
exports.StoryInfoTrait = exports.EnterableTrait = exports.VehicleTrait = exports.CharacterModelTrait = exports.OpenInventoryTrait = exports.NpcTrait = exports.DeadlyRoomTrait = exports.HealthTrait = exports.EquippedTrait = exports.CombatantTrait = exports.DestructibleTrait = exports.BreakableTrait = exports.WeaponTrait = exports.MoveableSceneryTrait = exports.ButtonTrait = exports.PushableTrait = exports.AttachedTrait = exports.PullableTrait = exports.ClimbableTrait = exports.ExitTrait = exports.ActorTrait = exports.SceneTrait = exports.RegionTrait = exports.DoorTrait = exports.LightSourceTrait = exports.ReadableTrait = exports.SwitchableTrait = exports.DiggableTrait = exports.CuttableTrait = exports.LockableTrait = exports.OpenableTrait = exports.SceneryTrait = exports.EdibleTrait = exports.ClothingTrait = exports.WearableTrait = exports.RoomTrait = exports.SupporterTrait = exports.ContainerTrait = exports.IdentityTrait = exports.TRAIT_IMPLEMENTATIONS = void 0;
|
|
9
9
|
exports.getTraitImplementation = getTraitImplementation;
|
|
10
10
|
exports.createTrait = createTrait;
|
|
11
11
|
const trait_types_1 = require("./trait-types");
|
|
@@ -30,6 +30,10 @@ const openableTrait_1 = require("./openable/openableTrait");
|
|
|
30
30
|
Object.defineProperty(exports, "OpenableTrait", { enumerable: true, get: function () { return openableTrait_1.OpenableTrait; } });
|
|
31
31
|
const lockableTrait_1 = require("./lockable/lockableTrait");
|
|
32
32
|
Object.defineProperty(exports, "LockableTrait", { enumerable: true, get: function () { return lockableTrait_1.LockableTrait; } });
|
|
33
|
+
const cuttableTrait_1 = require("./cuttable/cuttableTrait");
|
|
34
|
+
Object.defineProperty(exports, "CuttableTrait", { enumerable: true, get: function () { return cuttableTrait_1.CuttableTrait; } });
|
|
35
|
+
const diggableTrait_1 = require("./diggable/diggableTrait");
|
|
36
|
+
Object.defineProperty(exports, "DiggableTrait", { enumerable: true, get: function () { return diggableTrait_1.DiggableTrait; } });
|
|
33
37
|
const switchableTrait_1 = require("./switchable/switchableTrait");
|
|
34
38
|
Object.defineProperty(exports, "SwitchableTrait", { enumerable: true, get: function () { return switchableTrait_1.SwitchableTrait; } });
|
|
35
39
|
const readableTrait_1 = require("./readable/readableTrait");
|
|
@@ -73,6 +77,11 @@ const combatantTrait_1 = require("./combatant/combatantTrait");
|
|
|
73
77
|
Object.defineProperty(exports, "CombatantTrait", { enumerable: true, get: function () { return combatantTrait_1.CombatantTrait; } });
|
|
74
78
|
const equippedTrait_1 = require("./equipped/equippedTrait");
|
|
75
79
|
Object.defineProperty(exports, "EquippedTrait", { enumerable: true, get: function () { return equippedTrait_1.EquippedTrait; } });
|
|
80
|
+
// Health / life-state (ADR-226, ADR-223 child A)
|
|
81
|
+
const healthTrait_1 = require("./health/healthTrait");
|
|
82
|
+
Object.defineProperty(exports, "HealthTrait", { enumerable: true, get: function () { return healthTrait_1.HealthTrait; } });
|
|
83
|
+
const deadlyRoomTrait_1 = require("./deadly-room/deadlyRoomTrait");
|
|
84
|
+
Object.defineProperty(exports, "DeadlyRoomTrait", { enumerable: true, get: function () { return deadlyRoomTrait_1.DeadlyRoomTrait; } });
|
|
76
85
|
// NPC traits (ADR-070)
|
|
77
86
|
const npcTrait_1 = require("./npc/npcTrait");
|
|
78
87
|
Object.defineProperty(exports, "NpcTrait", { enumerable: true, get: function () { return npcTrait_1.NpcTrait; } });
|
|
@@ -112,6 +121,8 @@ exports.TRAIT_IMPLEMENTATIONS = {
|
|
|
112
121
|
// Interactive traits
|
|
113
122
|
[trait_types_1.TraitType.OPENABLE]: openableTrait_1.OpenableTrait,
|
|
114
123
|
[trait_types_1.TraitType.LOCKABLE]: lockableTrait_1.LockableTrait,
|
|
124
|
+
[trait_types_1.TraitType.CUTTABLE]: cuttableTrait_1.CuttableTrait,
|
|
125
|
+
[trait_types_1.TraitType.DIGGABLE]: diggableTrait_1.DiggableTrait,
|
|
115
126
|
[trait_types_1.TraitType.SWITCHABLE]: switchableTrait_1.SwitchableTrait,
|
|
116
127
|
[trait_types_1.TraitType.READABLE]: readableTrait_1.ReadableTrait,
|
|
117
128
|
[trait_types_1.TraitType.LIGHT_SOURCE]: lightSourceTrait_1.LightSourceTrait,
|
|
@@ -136,6 +147,9 @@ exports.TRAIT_IMPLEMENTATIONS = {
|
|
|
136
147
|
[trait_types_1.TraitType.DESTRUCTIBLE]: destructibleTrait_1.DestructibleTrait,
|
|
137
148
|
[trait_types_1.TraitType.COMBATANT]: combatantTrait_1.CombatantTrait,
|
|
138
149
|
[trait_types_1.TraitType.EQUIPPED]: equippedTrait_1.EquippedTrait,
|
|
150
|
+
// Health / life-state (ADR-226, ADR-223 child A)
|
|
151
|
+
[trait_types_1.TraitType.HEALTH]: healthTrait_1.HealthTrait,
|
|
152
|
+
[trait_types_1.TraitType.DEADLY_ROOM]: deadlyRoomTrait_1.DeadlyRoomTrait,
|
|
139
153
|
// NPC traits (ADR-070)
|
|
140
154
|
[trait_types_1.TraitType.NPC]: npcTrait_1.NpcTrait,
|
|
141
155
|
[trait_types_1.TraitType.OPEN_INVENTORY]: openInventoryTrait_1.OpenInventoryTrait,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"implementations.js","sourceRoot":"","sources":["../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/implementations.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;
|
|
1
|
+
{"version":3,"file":"implementations.js","sourceRoot":"","sources":["../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/implementations.ts"],"names":[],"mappings":"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"}
|
package/traits/index.d.ts
CHANGED
|
@@ -6,6 +6,8 @@ export * from './container';
|
|
|
6
6
|
export * from './room';
|
|
7
7
|
export * from './openable';
|
|
8
8
|
export * from './lockable';
|
|
9
|
+
export * from './cuttable';
|
|
10
|
+
export * from './diggable';
|
|
9
11
|
export * from './readable';
|
|
10
12
|
export * from './light-source';
|
|
11
13
|
export * from './exit';
|
|
@@ -30,6 +32,8 @@ export * from './breakable';
|
|
|
30
32
|
export * from './destructible';
|
|
31
33
|
export * from './combatant';
|
|
32
34
|
export * from './equipped';
|
|
35
|
+
export * from './health';
|
|
36
|
+
export * from './deadly-room';
|
|
33
37
|
export * from './vehicle';
|
|
34
38
|
export * from './enterable';
|
|
35
39
|
export * from './npc';
|
package/traits/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/index.ts"],"names":[],"mappings":"AAIA,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAGlC,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AAGxB,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC;AAGnC,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAG3B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAG5B,cAAc,OAAO,CAAC;AACtB,cAAc,kBAAkB,CAAC;AAGjC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,eAAe,CAAC;AAG9B,cAAc,cAAc,CAAC;AAG7B,cAAc,uBAAuB,CAAC;AAGtC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAG3B,cAAc,gBAAgB,CAAC;AAG/B,cAAc,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/index.ts"],"names":[],"mappings":"AAIA,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAGlC,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AAGxB,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC;AAGnC,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAG3B,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAG9B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAG5B,cAAc,OAAO,CAAC;AACtB,cAAc,kBAAkB,CAAC;AAGjC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,eAAe,CAAC;AAG9B,cAAc,cAAc,CAAC;AAG7B,cAAc,uBAAuB,CAAC;AAGtC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAG3B,cAAc,gBAAgB,CAAC;AAG/B,cAAc,cAAc,CAAC"}
|
package/traits/index.js
CHANGED
|
@@ -26,6 +26,8 @@ __exportStar(require("./container"), exports);
|
|
|
26
26
|
__exportStar(require("./room"), exports);
|
|
27
27
|
__exportStar(require("./openable"), exports);
|
|
28
28
|
__exportStar(require("./lockable"), exports);
|
|
29
|
+
__exportStar(require("./cuttable"), exports);
|
|
30
|
+
__exportStar(require("./diggable"), exports);
|
|
29
31
|
__exportStar(require("./readable"), exports);
|
|
30
32
|
__exportStar(require("./light-source"), exports);
|
|
31
33
|
__exportStar(require("./exit"), exports);
|
|
@@ -52,6 +54,9 @@ __exportStar(require("./breakable"), exports);
|
|
|
52
54
|
__exportStar(require("./destructible"), exports);
|
|
53
55
|
__exportStar(require("./combatant"), exports);
|
|
54
56
|
__exportStar(require("./equipped"), exports);
|
|
57
|
+
// Health / life-state (ADR-226, ADR-223 child A)
|
|
58
|
+
__exportStar(require("./health"), exports);
|
|
59
|
+
__exportStar(require("./deadly-room"), exports);
|
|
55
60
|
// Transport traits
|
|
56
61
|
__exportStar(require("./vehicle"), exports);
|
|
57
62
|
__exportStar(require("./enterable"), exports);
|
package/traits/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/index.ts"],"names":[],"mappings":";AAAA,2CAA2C;AAC3C,sCAAsC;;;;;;;;;;;;;;;;AAEtC,mBAAmB;AACnB,0CAAwB;AACxB,gDAA8B;AAC9B,oDAAkC;AAElC,kEAAkE;AAClE,6CAA2B;AAC3B,8CAA4B;AAC5B,yCAAuB;AACvB,6CAA2B;AAC3B,6CAA2B;AAC3B,6CAA2B;AAC3B,iDAA+B;AAC/B,yCAAuB;AACvB,8CAA4B;AAC5B,4CAA0B;AAC1B,8CAA4B;AAC5B,+CAA6B;AAC7B,6CAA2B;AAC3B,6CAA2B;AAC3B,2CAAyB;AACzB,yCAAuB;AACvB,2CAAyB;AACzB,0CAAwB;AACxB,0CAAwB;AAExB,sBAAsB;AACtB,6CAA2B;AAC3B,6CAA2B;AAC3B,6CAA2B;AAC3B,2CAAyB;AACzB,qDAAmC;AAEnC,gBAAgB;AAChB,2CAAyB;AACzB,8CAA4B;AAC5B,iDAA+B;AAC/B,8CAA4B;AAC5B,6CAA2B;AAE3B,mBAAmB;AACnB,4CAA0B;AAC1B,8CAA4B;AAE5B,aAAa;AACb,wCAAsB;AACtB,mDAAiC;AAEjC,4BAA4B;AAC5B,oDAAkC;AAElC,+BAA+B;AAC/B,gDAA8B;AAE9B,gBAAgB;AAChB,+CAA6B;AAE7B,6CAA6C;AAC7C,wDAAsC;AAEtC,yCAAyC;AACzC,6CAA2B;AAC3B,6CAA2B;AAE3B,oBAAoB;AACpB,iDAA+B;AAE/B,2BAA2B;AAC3B,+CAA6B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/index.ts"],"names":[],"mappings":";AAAA,2CAA2C;AAC3C,sCAAsC;;;;;;;;;;;;;;;;AAEtC,mBAAmB;AACnB,0CAAwB;AACxB,gDAA8B;AAC9B,oDAAkC;AAElC,kEAAkE;AAClE,6CAA2B;AAC3B,8CAA4B;AAC5B,yCAAuB;AACvB,6CAA2B;AAC3B,6CAA2B;AAC3B,6CAA2B;AAC3B,6CAA2B;AAC3B,6CAA2B;AAC3B,iDAA+B;AAC/B,yCAAuB;AACvB,8CAA4B;AAC5B,4CAA0B;AAC1B,8CAA4B;AAC5B,+CAA6B;AAC7B,6CAA2B;AAC3B,6CAA2B;AAC3B,2CAAyB;AACzB,yCAAuB;AACvB,2CAAyB;AACzB,0CAAwB;AACxB,0CAAwB;AAExB,sBAAsB;AACtB,6CAA2B;AAC3B,6CAA2B;AAC3B,6CAA2B;AAC3B,2CAAyB;AACzB,qDAAmC;AAEnC,gBAAgB;AAChB,2CAAyB;AACzB,8CAA4B;AAC5B,iDAA+B;AAC/B,8CAA4B;AAC5B,6CAA2B;AAE3B,iDAAiD;AACjD,2CAAyB;AACzB,gDAA8B;AAE9B,mBAAmB;AACnB,4CAA0B;AAC1B,8CAA4B;AAE5B,aAAa;AACb,wCAAsB;AACtB,mDAAiC;AAEjC,4BAA4B;AAC5B,oDAAkC;AAElC,+BAA+B;AAC/B,gDAA8B;AAE9B,gBAAgB;AAChB,+CAA6B;AAE7B,6CAA6C;AAC7C,wDAAsC;AAEtC,yCAAyC;AACzC,6CAA2B;AAC3B,6CAA2B;AAE3B,oBAAoB;AACpB,iDAA+B;AAE/B,2BAA2B;AAC3B,+CAA6B"}
|
package/traits/npc/npcTrait.d.ts
CHANGED
|
@@ -10,11 +10,11 @@ import { EntityId } from '@sharpee/core';
|
|
|
10
10
|
* Interface for NPC trait data
|
|
11
11
|
*/
|
|
12
12
|
export interface INpcData {
|
|
13
|
-
/**
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
13
|
+
/**
|
|
14
|
+
* Whether this NPC is hostile to the player.
|
|
15
|
+
* (Life-state — alive/conscious — lives on HealthTrait, ADR-226; hostility moves
|
|
16
|
+
* to disposition in ADR-223 child C.)
|
|
17
|
+
*/
|
|
18
18
|
isHostile?: boolean;
|
|
19
19
|
/** Whether this NPC can move between rooms */
|
|
20
20
|
canMove?: boolean;
|
|
@@ -61,8 +61,6 @@ export interface INpcData {
|
|
|
61
61
|
export declare class NpcTrait implements ITrait, INpcData {
|
|
62
62
|
static readonly type: "npc";
|
|
63
63
|
readonly type: "npc";
|
|
64
|
-
isAlive: boolean;
|
|
65
|
-
isConscious: boolean;
|
|
66
64
|
isHostile: boolean;
|
|
67
65
|
canMove: boolean;
|
|
68
66
|
allowedRooms?: EntityId[];
|
|
@@ -80,10 +78,6 @@ export declare class NpcTrait implements ITrait, INpcData {
|
|
|
80
78
|
goals?: string[];
|
|
81
79
|
customProperties?: Record<string, unknown>;
|
|
82
80
|
constructor(data?: INpcData);
|
|
83
|
-
/**
|
|
84
|
-
* Check if NPC can act (alive and conscious)
|
|
85
|
-
*/
|
|
86
|
-
get canAct(): boolean;
|
|
87
81
|
/**
|
|
88
82
|
* Check if NPC can enter a specific room
|
|
89
83
|
*/
|
|
@@ -96,22 +90,6 @@ export declare class NpcTrait implements ITrait, INpcData {
|
|
|
96
90
|
* Make this NPC non-hostile
|
|
97
91
|
*/
|
|
98
92
|
makePassive(): void;
|
|
99
|
-
/**
|
|
100
|
-
* Knock out this NPC (unconscious but alive)
|
|
101
|
-
*/
|
|
102
|
-
knockOut(): void;
|
|
103
|
-
/**
|
|
104
|
-
* Wake up this NPC
|
|
105
|
-
*/
|
|
106
|
-
wakeUp(): void;
|
|
107
|
-
/**
|
|
108
|
-
* Kill this NPC
|
|
109
|
-
*/
|
|
110
|
-
kill(): void;
|
|
111
|
-
/**
|
|
112
|
-
* Revive this NPC
|
|
113
|
-
*/
|
|
114
|
-
revive(): void;
|
|
115
93
|
/**
|
|
116
94
|
* Set a knowledge item
|
|
117
95
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"npcTrait.d.ts","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/npc/npcTrait.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB
|
|
1
|
+
{"version":3,"file":"npcTrait.d.ts","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/npc/npcTrait.ts"],"names":[],"mappings":"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"}
|
package/traits/npc/npcTrait.js
CHANGED
|
@@ -23,8 +23,6 @@ class NpcTrait {
|
|
|
23
23
|
static type = 'npc';
|
|
24
24
|
type = 'npc';
|
|
25
25
|
// State properties
|
|
26
|
-
isAlive;
|
|
27
|
-
isConscious;
|
|
28
26
|
isHostile;
|
|
29
27
|
// Movement properties
|
|
30
28
|
canMove;
|
|
@@ -43,8 +41,6 @@ class NpcTrait {
|
|
|
43
41
|
customProperties;
|
|
44
42
|
constructor(data = {}) {
|
|
45
43
|
// Set defaults and merge with provided data
|
|
46
|
-
this.isAlive = data.isAlive ?? true;
|
|
47
|
-
this.isConscious = data.isConscious ?? true;
|
|
48
44
|
this.isHostile = data.isHostile ?? false;
|
|
49
45
|
this.canMove = data.canMove ?? false;
|
|
50
46
|
this.allowedRooms = data.allowedRooms;
|
|
@@ -57,12 +53,6 @@ class NpcTrait {
|
|
|
57
53
|
this.goals = data.goals;
|
|
58
54
|
this.customProperties = data.customProperties;
|
|
59
55
|
}
|
|
60
|
-
/**
|
|
61
|
-
* Check if NPC can act (alive and conscious)
|
|
62
|
-
*/
|
|
63
|
-
get canAct() {
|
|
64
|
-
return this.isAlive && this.isConscious;
|
|
65
|
-
}
|
|
66
56
|
/**
|
|
67
57
|
* Check if NPC can enter a specific room
|
|
68
58
|
*/
|
|
@@ -91,34 +81,6 @@ class NpcTrait {
|
|
|
91
81
|
makePassive() {
|
|
92
82
|
this.isHostile = false;
|
|
93
83
|
}
|
|
94
|
-
/**
|
|
95
|
-
* Knock out this NPC (unconscious but alive)
|
|
96
|
-
*/
|
|
97
|
-
knockOut() {
|
|
98
|
-
this.isConscious = false;
|
|
99
|
-
}
|
|
100
|
-
/**
|
|
101
|
-
* Wake up this NPC
|
|
102
|
-
*/
|
|
103
|
-
wakeUp() {
|
|
104
|
-
if (this.isAlive) {
|
|
105
|
-
this.isConscious = true;
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
/**
|
|
109
|
-
* Kill this NPC
|
|
110
|
-
*/
|
|
111
|
-
kill() {
|
|
112
|
-
this.isAlive = false;
|
|
113
|
-
this.isConscious = false;
|
|
114
|
-
}
|
|
115
|
-
/**
|
|
116
|
-
* Revive this NPC
|
|
117
|
-
*/
|
|
118
|
-
revive() {
|
|
119
|
-
this.isAlive = true;
|
|
120
|
-
this.isConscious = true;
|
|
121
|
-
}
|
|
122
84
|
/**
|
|
123
85
|
* Set a knowledge item
|
|
124
86
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"npcTrait.js","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/npc/npcTrait.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;
|
|
1
|
+
{"version":3,"file":"npcTrait.js","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/npc/npcTrait.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { EntityId } from '@sharpee/core';
|
|
1
2
|
import { Behavior } from '../../behaviors/behavior';
|
|
2
3
|
import { IFEntity } from '../../entities/if-entity';
|
|
3
4
|
/**
|
|
@@ -37,6 +38,15 @@ export declare class OpenableBehavior extends Behavior {
|
|
|
37
38
|
* Check if an entity can be closed
|
|
38
39
|
*/
|
|
39
40
|
static canClose(entity: IFEntity): boolean;
|
|
41
|
+
/**
|
|
42
|
+
* Check if this entity requires a tool to open (ADR-230 D3b;
|
|
43
|
+
* mirrors LockableBehavior.requiresKey)
|
|
44
|
+
*/
|
|
45
|
+
static requiresTool(entity: IFEntity): boolean;
|
|
46
|
+
/**
|
|
47
|
+
* Check if a tool can open this entity (mirrors LockableBehavior.canUnlockWith)
|
|
48
|
+
*/
|
|
49
|
+
static canOpenWith(entity: IFEntity, toolId: EntityId): boolean;
|
|
40
50
|
/**
|
|
41
51
|
* Open the entity
|
|
42
52
|
* @returns Result describing what happened
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openableBehavior.d.ts","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/openable/openableBehavior.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAIpD;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;GAIG;AACH,qBAAa,gBAAiB,SAAQ,QAAQ;IAC5C,MAAM,CAAC,cAAc,eAAwB;IAE7C;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO;IAKzC;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO;IAK1C;;;OAGG;IACH,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,GAAG,WAAW;IAuB1C;;;OAGG;IACH,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,GAAG,YAAY;IA8B5C;;;OAGG;IACH,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,GAAG,WAAW,GAAG,YAAY;IAU3D;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO;IAKxC;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO;CAIlD"}
|
|
1
|
+
{"version":3,"file":"openableBehavior.d.ts","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/openable/openableBehavior.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAIpD;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;GAIG;AACH,qBAAa,gBAAiB,SAAQ,QAAQ;IAC5C,MAAM,CAAC,cAAc,eAAwB;IAE7C;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO;IAKzC;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO;IAK1C;;;OAGG;IACH,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO;IAK9C;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,GAAG,OAAO;IAc/D;;;OAGG;IACH,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,GAAG,WAAW;IAuB1C;;;OAGG;IACH,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,GAAG,YAAY;IA8B5C;;;OAGG;IACH,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,GAAG,WAAW,GAAG,YAAY;IAU3D;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO;IAKxC;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO;CAIlD"}
|
|
@@ -25,6 +25,27 @@ class OpenableBehavior extends behavior_1.Behavior {
|
|
|
25
25
|
const openable = OpenableBehavior.require(entity, trait_types_1.TraitType.OPENABLE);
|
|
26
26
|
return openable.isOpen && openable.canClose;
|
|
27
27
|
}
|
|
28
|
+
/**
|
|
29
|
+
* Check if this entity requires a tool to open (ADR-230 D3b;
|
|
30
|
+
* mirrors LockableBehavior.requiresKey)
|
|
31
|
+
*/
|
|
32
|
+
static requiresTool(entity) {
|
|
33
|
+
const openable = OpenableBehavior.require(entity, trait_types_1.TraitType.OPENABLE);
|
|
34
|
+
return !!(openable.toolId || openable.toolIds?.length);
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Check if a tool can open this entity (mirrors LockableBehavior.canUnlockWith)
|
|
38
|
+
*/
|
|
39
|
+
static canOpenWith(entity, toolId) {
|
|
40
|
+
const openable = OpenableBehavior.require(entity, trait_types_1.TraitType.OPENABLE);
|
|
41
|
+
if (openable.toolId === toolId) {
|
|
42
|
+
return true;
|
|
43
|
+
}
|
|
44
|
+
if (openable.toolIds && openable.toolIds.includes(toolId)) {
|
|
45
|
+
return true;
|
|
46
|
+
}
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
28
49
|
/**
|
|
29
50
|
* Open the entity
|
|
30
51
|
* @returns Result describing what happened
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openableBehavior.js","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/openable/openableBehavior.ts"],"names":[],"mappings":";AAAA,+DAA+D;;;
|
|
1
|
+
{"version":3,"file":"openableBehavior.js","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/openable/openableBehavior.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { EntityId } from '@sharpee/core';
|
|
1
2
|
import { ITrait } from '../trait';
|
|
2
3
|
export interface IOpenableData {
|
|
3
4
|
/** Whether the entity is currently open */
|
|
@@ -24,6 +25,10 @@ export interface IOpenableData {
|
|
|
24
25
|
openDescription?: string;
|
|
25
26
|
/** Description when closed (used by computed description getter on IFEntity) */
|
|
26
27
|
closedDescription?: string;
|
|
28
|
+
/** Single tool entity required to open this (ADR-230 D3b; mirrors ILockableData.keyId) */
|
|
29
|
+
toolId?: EntityId;
|
|
30
|
+
/** Multiple tool entities that can open this (mirrors ILockableData.keyIds) */
|
|
31
|
+
toolIds?: EntityId[];
|
|
27
32
|
}
|
|
28
33
|
/**
|
|
29
34
|
* Openable trait for entities that can be opened and closed.
|
|
@@ -47,6 +52,8 @@ export declare class OpenableTrait implements ITrait, IOpenableData {
|
|
|
47
52
|
closeSound?: string;
|
|
48
53
|
openDescription?: string;
|
|
49
54
|
closedDescription?: string;
|
|
55
|
+
toolId?: EntityId;
|
|
56
|
+
toolIds?: EntityId[];
|
|
50
57
|
constructor(data?: IOpenableData);
|
|
51
58
|
}
|
|
52
59
|
//# sourceMappingURL=openableTrait.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openableTrait.d.ts","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/openable/openableTrait.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC,MAAM,WAAW,aAAa;IAC5B,2CAA2C;IAC3C,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,qCAAqC;IACrC,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,kCAAkC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,kCAAkC;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,uCAAuC;IACvC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B,yCAAyC;IACzC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAE9B,wDAAwD;IACxD,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,8BAA8B;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,8BAA8B;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,8EAA8E;IAC9E,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,gFAAgF;IAChF,iBAAiB,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"openableTrait.d.ts","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/openable/openableTrait.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC,MAAM,WAAW,aAAa;IAC5B,2CAA2C;IAC3C,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,qCAAqC;IACrC,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,kCAAkC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,kCAAkC;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,uCAAuC;IACvC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B,yCAAyC;IACzC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAE9B,wDAAwD;IACxD,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,8BAA8B;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,8BAA8B;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,8EAA8E;IAC9E,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,gFAAgF;IAChF,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,0FAA0F;IAC1F,MAAM,CAAC,EAAE,QAAQ,CAAC;IAElB,+EAA+E;IAC/E,OAAO,CAAC,EAAE,QAAQ,EAAE,CAAC;CACtB;AAED;;;;;;GAMG;AACH,qBAAa,aAAc,YAAW,MAAM,EAAE,aAAa;IACzD,MAAM,CAAC,QAAQ,CAAC,IAAI,aAAsB;IAC1C,QAAQ,CAAC,IAAI,aAAsB;IAGnC,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,eAAe,EAAE,OAAO,CAAC;IACzB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,MAAM,CAAC,EAAE,QAAQ,CAAC;IAClB,OAAO,CAAC,EAAE,QAAQ,EAAE,CAAC;gBAET,IAAI,GAAE,aAAkB;CAiBrC"}
|
|
@@ -26,6 +26,8 @@ class OpenableTrait {
|
|
|
26
26
|
closeSound;
|
|
27
27
|
openDescription;
|
|
28
28
|
closedDescription;
|
|
29
|
+
toolId;
|
|
30
|
+
toolIds;
|
|
29
31
|
constructor(data = {}) {
|
|
30
32
|
// Set defaults and merge with provided data
|
|
31
33
|
this.startsOpen = data.startsOpen ?? false;
|
|
@@ -40,6 +42,8 @@ class OpenableTrait {
|
|
|
40
42
|
this.closeSound = data.closeSound;
|
|
41
43
|
this.openDescription = data.openDescription;
|
|
42
44
|
this.closedDescription = data.closedDescription;
|
|
45
|
+
this.toolId = data.toolId;
|
|
46
|
+
this.toolIds = data.toolIds;
|
|
43
47
|
}
|
|
44
48
|
}
|
|
45
49
|
exports.OpenableTrait = OpenableTrait;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openableTrait.js","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/openable/openableTrait.ts"],"names":[],"mappings":";AAAA,4DAA4D;;;
|
|
1
|
+
{"version":3,"file":"openableTrait.js","sourceRoot":"","sources":["../../../../../../../../repos/sharpee_v2/packages/world-model/src/traits/openable/openableTrait.ts"],"names":[],"mappings":";AAAA,4DAA4D;;;AAI5D,gDAA2C;AA8C3C;;;;;;GAMG;AACH,MAAa,aAAa;IACxB,MAAM,CAAU,IAAI,GAAG,uBAAS,CAAC,QAAQ,CAAC;IACjC,IAAI,GAAG,uBAAS,CAAC,QAAQ,CAAC;IAEnC,0BAA0B;IAC1B,MAAM,CAAU;IAChB,UAAU,CAAU;IACpB,WAAW,CAAU;IACrB,YAAY,CAAU;IACtB,kBAAkB,CAAU;IAC5B,oBAAoB,CAAU;IAC9B,eAAe,CAAU;IACzB,QAAQ,CAAU;IAClB,SAAS,CAAU;IACnB,UAAU,CAAU;IACpB,eAAe,CAAU;IACzB,iBAAiB,CAAU;IAC3B,MAAM,CAAY;IAClB,OAAO,CAAc;IAErB,YAAY,OAAsB,EAAE;QAClC,4CAA4C;QAC5C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC;QAC3C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC;QAC7C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACpC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACtC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC;QAClD,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAC;QACtD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC;QACpD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC;QACtC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAChC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QAC5C,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAChD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAC9B,CAAC;;AApCH,sCAqCC"}
|