@maka/maka-cli 5.1.28 → 5.1.30

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.
Files changed (167) hide show
  1. package/bundle/typescript/package.json +1 -1
  2. package/bundle/typescript/src/commands/_index.d.ts +1 -0
  3. package/bundle/typescript/src/commands/_index.js +1 -1
  4. package/bundle/typescript/src/commands/_index.js.map +1 -1
  5. package/bundle/typescript/src/commands/ai.js +0 -1
  6. package/bundle/typescript/src/commands/ai.js.map +1 -1
  7. package/bundle/typescript/src/commands/game/sideQuest/commands/command.d.ts +12 -6
  8. package/bundle/typescript/src/commands/game/sideQuest/commands/command.js +1 -1
  9. package/bundle/typescript/src/commands/game/sideQuest/commands/command.js.map +1 -1
  10. package/bundle/typescript/src/commands/game/sideQuest/commands/drop.d.ts +1 -2
  11. package/bundle/typescript/src/commands/game/sideQuest/commands/drop.js +2 -1
  12. package/bundle/typescript/src/commands/game/sideQuest/commands/drop.js.map +1 -1
  13. package/bundle/typescript/src/commands/game/sideQuest/commands/equip.d.ts +1 -2
  14. package/bundle/typescript/src/commands/game/sideQuest/commands/equip.js +1 -0
  15. package/bundle/typescript/src/commands/game/sideQuest/commands/equip.js.map +1 -1
  16. package/bundle/typescript/src/commands/game/sideQuest/commands/go.d.ts +1 -2
  17. package/bundle/typescript/src/commands/game/sideQuest/commands/go.js +3 -0
  18. package/bundle/typescript/src/commands/game/sideQuest/commands/go.js.map +1 -1
  19. package/bundle/typescript/src/commands/game/sideQuest/commands/lock.d.ts +1 -2
  20. package/bundle/typescript/src/commands/game/sideQuest/commands/lock.js +1 -0
  21. package/bundle/typescript/src/commands/game/sideQuest/commands/lock.js.map +1 -1
  22. package/bundle/typescript/src/commands/game/sideQuest/commands/look.d.ts +1 -2
  23. package/bundle/typescript/src/commands/game/sideQuest/commands/look.js +2 -1
  24. package/bundle/typescript/src/commands/game/sideQuest/commands/look.js.map +1 -1
  25. package/bundle/typescript/src/commands/game/sideQuest/commands/say.d.ts +3 -4
  26. package/bundle/typescript/src/commands/game/sideQuest/commands/say.js +5 -3
  27. package/bundle/typescript/src/commands/game/sideQuest/commands/say.js.map +1 -1
  28. package/bundle/typescript/src/commands/game/sideQuest/commands/search.d.ts +1 -2
  29. package/bundle/typescript/src/commands/game/sideQuest/commands/search.js +1 -0
  30. package/bundle/typescript/src/commands/game/sideQuest/commands/search.js.map +1 -1
  31. package/bundle/typescript/src/commands/game/sideQuest/commands/solve.d.ts +1 -2
  32. package/bundle/typescript/src/commands/game/sideQuest/commands/solve.js +1 -0
  33. package/bundle/typescript/src/commands/game/sideQuest/commands/solve.js.map +1 -1
  34. package/bundle/typescript/src/commands/game/sideQuest/commands/store.d.ts +1 -2
  35. package/bundle/typescript/src/commands/game/sideQuest/commands/store.js +1 -0
  36. package/bundle/typescript/src/commands/game/sideQuest/commands/store.js.map +1 -1
  37. package/bundle/typescript/src/commands/game/sideQuest/commands/take.d.ts +1 -2
  38. package/bundle/typescript/src/commands/game/sideQuest/commands/take.js +1 -0
  39. package/bundle/typescript/src/commands/game/sideQuest/commands/take.js.map +1 -1
  40. package/bundle/typescript/src/commands/game/sideQuest/commands/talk.d.ts +9 -0
  41. package/bundle/typescript/src/commands/game/sideQuest/commands/talk.js +52 -0
  42. package/bundle/typescript/src/commands/game/sideQuest/commands/talk.js.map +1 -0
  43. package/bundle/typescript/src/commands/game/sideQuest/commands/unequip.d.ts +1 -2
  44. package/bundle/typescript/src/commands/game/sideQuest/commands/unequip.js +1 -0
  45. package/bundle/typescript/src/commands/game/sideQuest/commands/unequip.js.map +1 -1
  46. package/bundle/typescript/src/commands/game/sideQuest/commands/unlock.d.ts +1 -2
  47. package/bundle/typescript/src/commands/game/sideQuest/commands/unlock.js +1 -0
  48. package/bundle/typescript/src/commands/game/sideQuest/commands/unlock.js.map +1 -1
  49. package/bundle/typescript/src/commands/game/sideQuest/commands/use.d.ts +1 -2
  50. package/bundle/typescript/src/commands/game/sideQuest/commands/use.js +1 -0
  51. package/bundle/typescript/src/commands/game/sideQuest/commands/use.js.map +1 -1
  52. package/bundle/typescript/src/commands/game/sideQuest/factories/command-factory.d.ts +9 -0
  53. package/bundle/typescript/src/commands/game/sideQuest/factories/{commandF.js → command-factory.js} +1 -1
  54. package/bundle/typescript/src/commands/game/sideQuest/factories/command-factory.js.map +1 -0
  55. package/bundle/typescript/src/commands/game/sideQuest/factories/item-factory.d.ts +5 -0
  56. package/bundle/typescript/src/commands/game/sideQuest/factories/item-factory.js +24 -0
  57. package/bundle/typescript/src/commands/game/sideQuest/factories/item-factory.js.map +1 -0
  58. package/bundle/typescript/src/commands/game/sideQuest/factories/npc-factory.d.ts +9 -0
  59. package/bundle/typescript/src/commands/game/sideQuest/factories/npc-factory.js +33 -0
  60. package/bundle/typescript/src/commands/game/sideQuest/factories/npc-factory.js.map +1 -0
  61. package/bundle/typescript/src/commands/game/sideQuest/factories/puzzle-factory.d.ts +6 -0
  62. package/bundle/typescript/src/commands/game/sideQuest/factories/puzzle-factory.js +24 -0
  63. package/bundle/typescript/src/commands/game/sideQuest/factories/puzzle-factory.js.map +1 -0
  64. package/bundle/typescript/src/commands/game/sideQuest/factories/room-factory.d.ts +6 -0
  65. package/bundle/typescript/src/commands/game/sideQuest/factories/room-factory.js +19 -0
  66. package/bundle/typescript/src/commands/game/sideQuest/factories/room-factory.js.map +1 -0
  67. package/bundle/typescript/src/commands/game/sideQuest/factories/{sceneSynthesizer.d.ts → scene-factory.d.ts} +2 -2
  68. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-factory.js +116 -0
  69. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-factory.js.map +1 -0
  70. package/bundle/typescript/src/commands/game/sideQuest/game.d.ts +7 -5
  71. package/bundle/typescript/src/commands/game/sideQuest/game.js +40 -10
  72. package/bundle/typescript/src/commands/game/sideQuest/game.js.map +1 -1
  73. package/bundle/typescript/src/commands/game/sideQuest/models/door.d.ts +7 -3
  74. package/bundle/typescript/src/commands/game/sideQuest/models/door.js +1 -2
  75. package/bundle/typescript/src/commands/game/sideQuest/models/door.js.map +1 -1
  76. package/bundle/typescript/src/commands/game/sideQuest/models/inventory.d.ts +1 -1
  77. package/bundle/typescript/src/commands/game/sideQuest/models/inventory.js +1 -1
  78. package/bundle/typescript/src/commands/game/sideQuest/models/inventory.js.map +1 -1
  79. package/bundle/typescript/src/commands/game/sideQuest/models/item.d.ts +25 -4
  80. package/bundle/typescript/src/commands/game/sideQuest/models/item.js +27 -13
  81. package/bundle/typescript/src/commands/game/sideQuest/models/item.js.map +1 -1
  82. package/bundle/typescript/src/commands/game/sideQuest/models/npc.d.ts +15 -12
  83. package/bundle/typescript/src/commands/game/sideQuest/models/npc.js +97 -29
  84. package/bundle/typescript/src/commands/game/sideQuest/models/npc.js.map +1 -1
  85. package/bundle/typescript/src/commands/game/sideQuest/models/player.d.ts +16 -4
  86. package/bundle/typescript/src/commands/game/sideQuest/models/player.js +85 -56
  87. package/bundle/typescript/src/commands/game/sideQuest/models/player.js.map +1 -1
  88. package/bundle/typescript/src/commands/game/sideQuest/models/puzzle.d.ts +11 -2
  89. package/bundle/typescript/src/commands/game/sideQuest/models/puzzle.js +2 -2
  90. package/bundle/typescript/src/commands/game/sideQuest/models/puzzle.js.map +1 -1
  91. package/bundle/typescript/src/commands/game/sideQuest/models/room.d.ts +29 -6
  92. package/bundle/typescript/src/commands/game/sideQuest/models/room.js +78 -6
  93. package/bundle/typescript/src/commands/game/sideQuest/models/room.js.map +1 -1
  94. package/bundle/typescript/src/commands/game/sideQuest/models/scene.d.ts +25 -17
  95. package/bundle/typescript/src/commands/game/sideQuest/models/scene.js +76 -68
  96. package/bundle/typescript/src/commands/game/sideQuest/models/scene.js.map +1 -1
  97. package/bundle/typescript/src/commands/game/sideQuest/scenes/scene1.json +55 -108
  98. package/bundle/typescript/src/commands/game/sideQuest/scenes/scene2.json +131 -151
  99. package/bundle/typescript/src/commands/game/sideQuest/types/enums.d.ts +16 -7
  100. package/bundle/typescript/src/commands/game/sideQuest/types/enums.js +15 -6
  101. package/bundle/typescript/src/commands/game/sideQuest/types/enums.js.map +1 -1
  102. package/bundle/typescript/src/commands/game/sideQuest/types/{types.d.ts → player-equipment.d.ts} +8 -10
  103. package/bundle/typescript/src/commands/game/sideQuest/types/player-equipment.js +2 -0
  104. package/bundle/typescript/src/commands/game/sideQuest/types/player-equipment.js.map +1 -0
  105. package/bundle/typescript/src/commands/game/sideQuest/types/seed/exit-seed.d.ts +6 -0
  106. package/bundle/typescript/src/commands/game/sideQuest/types/seed/exit-seed.js +2 -0
  107. package/bundle/typescript/src/commands/game/sideQuest/types/seed/exit-seed.js.map +1 -0
  108. package/bundle/typescript/src/commands/game/sideQuest/types/seed/item-seed.d.ts +22 -0
  109. package/bundle/typescript/src/commands/game/sideQuest/types/seed/item-seed.js +2 -0
  110. package/bundle/typescript/src/commands/game/sideQuest/types/seed/item-seed.js.map +1 -0
  111. package/bundle/typescript/src/commands/game/sideQuest/types/seed/lifestyle-seed.d.ts +22 -0
  112. package/bundle/typescript/src/commands/game/sideQuest/types/seed/lifestyle-seed.js +2 -0
  113. package/bundle/typescript/src/commands/game/sideQuest/types/seed/lifestyle-seed.js.map +1 -0
  114. package/bundle/typescript/src/commands/game/sideQuest/types/seed/npc-seed.d.ts +6 -0
  115. package/bundle/typescript/src/commands/game/sideQuest/types/seed/npc-seed.js +2 -0
  116. package/bundle/typescript/src/commands/game/sideQuest/types/seed/npc-seed.js.map +1 -0
  117. package/bundle/typescript/src/commands/game/sideQuest/types/seed/player-seed.d.ts +6 -0
  118. package/bundle/typescript/src/commands/game/sideQuest/types/seed/player-seed.js +2 -0
  119. package/bundle/typescript/src/commands/game/sideQuest/types/seed/player-seed.js.map +1 -0
  120. package/bundle/typescript/src/commands/game/sideQuest/types/seed/puzzle-seed.d.ts +11 -0
  121. package/bundle/typescript/src/commands/game/sideQuest/types/seed/puzzle-seed.js +2 -0
  122. package/bundle/typescript/src/commands/game/sideQuest/types/seed/puzzle-seed.js.map +1 -0
  123. package/bundle/typescript/src/commands/game/sideQuest/types/seed/room-seed.d.ts +16 -0
  124. package/bundle/typescript/src/commands/game/sideQuest/types/seed/room-seed.js +2 -0
  125. package/bundle/typescript/src/commands/game/sideQuest/types/seed/room-seed.js.map +1 -0
  126. package/bundle/typescript/src/commands/game/sideQuest/types/seed/scene-seed.d.ts +16 -0
  127. package/bundle/typescript/src/commands/game/sideQuest/types/seed/scene-seed.js +2 -0
  128. package/bundle/typescript/src/commands/game/sideQuest/types/seed/scene-seed.js.map +1 -0
  129. package/bundle/typescript/src/commands/game/sideQuest/types/{abstracts.d.ts → shared/abstracts.d.ts} +13 -9
  130. package/bundle/typescript/src/commands/game/sideQuest/types/{abstracts.js → shared/abstracts.js} +7 -2
  131. package/bundle/typescript/src/commands/game/sideQuest/types/shared/abstracts.js.map +1 -0
  132. package/bundle/typescript/src/commands/game/sideQuest/types/shared/direction-enum.d.ts +8 -0
  133. package/bundle/typescript/src/commands/game/sideQuest/types/shared/direction-enum.js +10 -0
  134. package/bundle/typescript/src/commands/game/sideQuest/types/shared/direction-enum.js.map +1 -0
  135. package/bundle/typescript/src/commands/game/sideQuest/types/shared/equipment-enum.d.ts +25 -0
  136. package/bundle/typescript/src/commands/game/sideQuest/types/shared/equipment-enum.js +27 -0
  137. package/bundle/typescript/src/commands/game/sideQuest/types/shared/equipment-enum.js.map +1 -0
  138. package/bundle/typescript/src/commands/game/sideQuest/types/shared/item-enum.d.ts +34 -0
  139. package/bundle/typescript/src/commands/game/sideQuest/types/shared/item-enum.js +38 -0
  140. package/bundle/typescript/src/commands/game/sideQuest/types/shared/item-enum.js.map +1 -0
  141. package/bundle/typescript/src/commands/game/sideQuest/ui.d.ts +6 -2
  142. package/bundle/typescript/src/commands/game/sideQuest/ui.js +47 -25
  143. package/bundle/typescript/src/commands/game/sideQuest/ui.js.map +1 -1
  144. package/bundle/typescript/src/commands/game/sideQuest/utilities/logger.d.ts +4 -2
  145. package/bundle/typescript/src/commands/game/sideQuest/utilities/logger.js +8 -4
  146. package/bundle/typescript/src/commands/game/sideQuest/utilities/logger.js.map +1 -1
  147. package/bundle/typescript/src/commands/game/sideQuest.sub.cmd.js +19 -12
  148. package/bundle/typescript/src/commands/game/sideQuest.sub.cmd.js.map +1 -1
  149. package/bundle/typescript/src/tools/https/https.class.d.ts +4 -1
  150. package/bundle/typescript/src/tools/https/https.class.js +67 -12
  151. package/bundle/typescript/src/tools/https/https.class.js.map +1 -1
  152. package/bundle/typescript/src/tools/https/https.interface.d.ts +2 -1
  153. package/package.json +1 -1
  154. package/bundle/typescript/src/commands/game/sideQuest/factories/commandF.d.ts +0 -10
  155. package/bundle/typescript/src/commands/game/sideQuest/factories/commandF.js.map +0 -1
  156. package/bundle/typescript/src/commands/game/sideQuest/factories/roomsF.d.ts +0 -6
  157. package/bundle/typescript/src/commands/game/sideQuest/factories/roomsF.js +0 -18
  158. package/bundle/typescript/src/commands/game/sideQuest/factories/roomsF.js.map +0 -1
  159. package/bundle/typescript/src/commands/game/sideQuest/factories/sceneSynthesizer.js +0 -77
  160. package/bundle/typescript/src/commands/game/sideQuest/factories/sceneSynthesizer.js.map +0 -1
  161. package/bundle/typescript/src/commands/game/sideQuest/scenes/scene3.json +0 -380
  162. package/bundle/typescript/src/commands/game/sideQuest/types/abstracts.js.map +0 -1
  163. package/bundle/typescript/src/commands/game/sideQuest/types/interfaces.d.ts +0 -197
  164. package/bundle/typescript/src/commands/game/sideQuest/types/interfaces.js +0 -2
  165. package/bundle/typescript/src/commands/game/sideQuest/types/interfaces.js.map +0 -1
  166. package/bundle/typescript/src/commands/game/sideQuest/types/types.js +0 -2
  167. package/bundle/typescript/src/commands/game/sideQuest/types/types.js.map +0 -1
@@ -1,15 +1,34 @@
1
- import { Direction } from '../types/enums.js';
2
- import { IRoomConfig } from '../types/interfaces.js';
1
+ import { Direction } from '../types/shared/direction-enum.js';
3
2
  import { Item } from './item.js';
4
3
  import { Puzzle } from './puzzle.js';
5
4
  import { Door } from './door.js';
6
5
  import { Inventory } from './inventory.js';
7
6
  import { Player } from './player.js';
8
- import { AbstractRoom } from '../types/abstracts.js';
7
+ import { AbstractRoom } from '../types/shared/abstracts.js';
8
+ export interface IRoomConstructorConfig {
9
+ name: string;
10
+ description: string;
11
+ details?: string;
12
+ roomType: string;
13
+ exits?: Map<Direction, Door | string>;
14
+ inventory?: Inventory;
15
+ puzzle?: Puzzle;
16
+ isStartRoom?: boolean;
17
+ tags?: string[];
18
+ supportedLifestyles?: {
19
+ residenceTypes?: ('Street' | 'Squatter' | 'Low' | 'Middle' | 'High' | 'Luxury')[];
20
+ employmentRoles?: string[];
21
+ habitTags?: string[];
22
+ };
23
+ }
9
24
  export declare class Room extends AbstractRoom {
10
25
  private logger;
26
+ private actors;
27
+ private _owner?;
28
+ private hasAIDescription?;
11
29
  name: string;
12
30
  description: string;
31
+ details?: string;
13
32
  exits: Map<Direction, Door | string>;
14
33
  roomType: string;
15
34
  isStartRoom: boolean;
@@ -17,12 +36,17 @@ export declare class Room extends AbstractRoom {
17
36
  supportedLifestyles?: {
18
37
  residenceTypes?: string[];
19
38
  employmentRoles?: string[];
20
- habitTags?: string[];
21
39
  };
22
40
  governsCurrency: boolean;
23
41
  tags?: string[];
24
42
  private _currencyLedger;
25
- constructor(config: IRoomConfig);
43
+ constructor(config: IRoomConstructorConfig);
44
+ get owner(): string | undefined;
45
+ set owner(owner: string | undefined);
46
+ ensureAIDescription(sceneContext: string): Promise<void>;
47
+ addActor(actor: Player): void;
48
+ removeActor(actor: Player): void;
49
+ getActors(): Player[];
26
50
  say(actor: Player, message: string): void;
27
51
  addExit(direction: Direction, targetRoom: Room, keyItemOrSolution?: string): void;
28
52
  attemptUnlockExit(direction: Direction, itemOrSolution: string): string;
@@ -35,7 +59,6 @@ export declare class Room extends AbstractRoom {
35
59
  findExistingDoor(targetRoom: Room): Door | undefined;
36
60
  supportsResidence(type: string): boolean;
37
61
  supportsEmployment(role: string): boolean;
38
- supportsHabit(habit: string): boolean;
39
62
  depositCurrencyCarrier(player: Player, item: Item): boolean;
40
63
  getPlayerCurrency(player: Player): number;
41
64
  withdrawCurrencyCarrier(player: Player, itemName: string): Item | null;
@@ -1,12 +1,17 @@
1
1
  import { Logger } from '../utilities/logger.js';
2
- import { Direction } from '../types/enums.js';
2
+ import { Direction } from '../types/shared/direction-enum.js';
3
3
  import { Door } from './door.js';
4
4
  import { Inventory } from './inventory.js';
5
- import { AbstractRoom } from '../types/abstracts.js';
5
+ import { HTTPS } from '../../../../tools/https/https.class.js';
6
+ import { AbstractRoom } from '../types/shared/abstracts.js';
6
7
  export class Room extends AbstractRoom {
7
8
  logger = Logger.getInstance();
9
+ actors = [];
10
+ _owner;
11
+ hasAIDescription;
8
12
  name;
9
13
  description;
14
+ details;
10
15
  exits = new Map();
11
16
  roomType;
12
17
  isStartRoom;
@@ -28,6 +33,76 @@ export class Room extends AbstractRoom {
28
33
  this.logger.write(`Room created: ${this.name}`);
29
34
  this.tags = config.tags;
30
35
  }
36
+ get owner() {
37
+ return this._owner;
38
+ }
39
+ set owner(owner) {
40
+ this._owner = owner;
41
+ }
42
+ async ensureAIDescription(sceneContext) {
43
+ if (!this.hasAIDescription) {
44
+ const prompt = `
45
+ You are a game narrator. Based on the following context, generate a rich, immersive description of the current room that enhances but does not repeat the existing description.
46
+
47
+ Scene context: ${sceneContext}
48
+
49
+ Room name: ${this.name}
50
+ Room description: ${this.description}
51
+
52
+ Include any mood, atmosphere, or inferred meaning from the surroundings.
53
+ Keep it concise and dramatic.`;
54
+ try {
55
+ const result = await HTTPS.askGPT({
56
+ prompt,
57
+ openApiKey: process.env.OPENAI_API_KEY || '',
58
+ model: 'gpt-4.1'
59
+ });
60
+ if (JSON.parse(result.data).error) {
61
+ throw new Error(JSON.parse(result.data).error.message);
62
+ }
63
+ const reply = JSON.parse(result.data)?.choices?.[0]?.message?.content?.trim();
64
+ if (reply) {
65
+ this.details = reply;
66
+ this.hasAIDescription = true;
67
+ this.logger.write(`Generated AI description for ${this.name}`);
68
+ }
69
+ }
70
+ catch (err) {
71
+ this.logger.write(`GPT fallback for AI description: ${err}`);
72
+ }
73
+ }
74
+ }
75
+ addActor(actor) {
76
+ this.actors.push(actor);
77
+ this.emit('enter', actor);
78
+ // Bind hearing
79
+ this.on('speak', actor.hear.bind(actor));
80
+ // Bind mutual vision
81
+ for (const other of this.actors) {
82
+ if (other !== actor) {
83
+ other.on('action', actor._onSeenAction); // actor sees other
84
+ this.logger.write(`${actor.name} will observe ${other.name}`);
85
+ actor.on('action', other._onSeenAction); // other sees actor
86
+ this.logger.write(`${other.name} will observe ${actor.name}`);
87
+ }
88
+ }
89
+ }
90
+ removeActor(actor) {
91
+ this.actors = this.actors.filter(a => a !== actor);
92
+ this.emit('leave', actor);
93
+ // Unbind hearing
94
+ this.off('speak', actor.hear.bind(actor));
95
+ // Unbind mutual vision
96
+ for (const other of this.actors) {
97
+ if (other !== actor) {
98
+ other.off('action', actor._onSeenAction);
99
+ actor.off('action', other._onSeenAction);
100
+ }
101
+ }
102
+ }
103
+ getActors() {
104
+ return [...this.actors];
105
+ }
31
106
  say(actor, message) {
32
107
  this.emit('speak', actor, message);
33
108
  }
@@ -108,9 +183,6 @@ export class Room extends AbstractRoom {
108
183
  supportsEmployment(role) {
109
184
  return this.supportedLifestyles?.employmentRoles?.includes(role) ?? false;
110
185
  }
111
- supportsHabit(habit) {
112
- return this.supportedLifestyles?.habitTags?.includes(habit) ?? false;
113
- }
114
186
  depositCurrencyCarrier(player, item) {
115
187
  if (!this.governsCurrency || !item.isCurrencyCarrier())
116
188
  return false;
@@ -150,7 +222,7 @@ export class Room extends AbstractRoom {
150
222
  const residenceLifestyle = typeof rawResidence === 'object' && rawResidence !== null && 'lifestyle' in rawResidence
151
223
  ? rawResidence
152
224
  : undefined;
153
- const actorResidence = residenceLifestyle?.lifestyle;
225
+ const actorResidence = residenceLifestyle?.location;
154
226
  if (actorResidence && this.supportsResidence(actorResidence)) {
155
227
  this.inventory.addSecureItem?.(actor.name, item); // assumes secure storage per actor
156
228
  this.logger.write(`Item securely stored for ${actor.name} in their residence: ${this.name}`);
@@ -1 +1 @@
1
- {"version":3,"file":"room.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/models/room.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"room.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/models/room.ts"],"names":[],"mappings":"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"}
@@ -1,34 +1,43 @@
1
- import { Room } from './room.js';
2
- import { Player } from './player.js';
3
- import { Item } from './item.js';
4
- import { Puzzle } from './puzzle.js';
5
- import { NPC } from './npc.js';
1
+ import { Room, Player, Item, Puzzle, NPC } from './_index.js';
6
2
  import { Logger } from '../utilities/logger.js';
7
- import { ISceneConstructorConfig, IRooms } from '../types/interfaces.js';
8
- import { Direction, Size } from '../types/enums.js';
9
- import { AbstractScene } from '../types/abstracts.js';
3
+ import { Direction } from '../types/shared/direction-enum.js';
4
+ import { AbstractScene } from '../types/shared/abstracts.js';
5
+ export interface ISceneConstructorConfig {
6
+ player: Player;
7
+ currency?: {
8
+ type: string;
9
+ authorityRoomTags: string[];
10
+ };
11
+ residenceTiers: string[];
12
+ puzzles?: Puzzle[];
13
+ items?: Item[];
14
+ }
10
15
  export declare class Scene extends AbstractScene {
11
- protected rooms: IRooms;
16
+ name: string;
12
17
  protected player: Player;
13
18
  protected logger: Logger;
14
19
  protected actors: Map<string, (Player | NPC)>;
15
20
  protected characterLocations: Map<string, Room>;
16
- private roomFactory;
17
21
  private _residenceTiers;
22
+ protected rooms: Record<string, Room>;
23
+ private roomOwnership;
24
+ private itemOwnership;
18
25
  currency: {
19
26
  type: string;
20
- carrierItemSizes: Size[];
21
27
  authorityRoomTags: string[];
22
28
  };
23
29
  constructor(config: ISceneConstructorConfig);
24
30
  initialize(): void;
25
- private generateRoomsFromConfig;
26
- private createExitsFromConfig;
31
+ setOwner(entity: Room | Item, owner: string): void;
32
+ getOwner(entity: Room | Item): string | undefined;
33
+ getOwnedItemsBy(owner: string): Item[];
34
+ getOwnedRoomsBy(owner: string): Room[];
27
35
  addActor(actor: Player | NPC): void;
28
36
  removeActor(name: string): void;
29
37
  getActor(name: string): Player | NPC | undefined;
30
38
  get allActors(): (Player | NPC)[];
31
39
  getActorsInRoom(room: Room): (Player | NPC)[];
40
+ private normalize;
32
41
  addRoom(room: Room): void;
33
42
  removeRoom(roomName: string): boolean;
34
43
  addItemToRoom(item: Item, roomName: string): void;
@@ -37,14 +46,13 @@ export declare class Scene extends AbstractScene {
37
46
  getCharacterLocation(character: Player | NPC): Room | undefined;
38
47
  determineStartRoom(): Room;
39
48
  getPlayer(): Player;
40
- getRooms(): IRooms;
49
+ getRooms(): Record<string, Room>;
50
+ listRooms(): string[];
51
+ getRoom(roomName: string): Room;
41
52
  connectRooms(roomNameA: string, direction: Direction, roomNameB: string, keyItemOrSolution?: string): void;
42
53
  private hasRoomSupportingResidence;
43
54
  private hasRoomSupportingEmployment;
44
- private hasRoomSupportingHabit;
45
55
  private hasItemSupportingAddiction;
46
- private hasItemSupportingHabit;
47
- private hasPuzzleSupportingHobby;
48
56
  validateLifestyleSupport(): void;
49
57
  private validatePuzzleRequirements;
50
58
  getCurrencyType(): string;
@@ -1,63 +1,69 @@
1
1
  import { Logger } from '../utilities/logger.js';
2
- import { Direction, Size } from '../types/enums.js';
3
- import { AbstractScene } from '../types/abstracts.js';
4
- import { RoomFactory } from '../factories/roomsF.js';
2
+ import { Category } from '../types/shared/item-enum.js';
3
+ import { AbstractScene } from '../types/shared/abstracts.js';
5
4
  export class Scene extends AbstractScene {
6
- rooms;
5
+ name;
7
6
  player;
8
7
  logger;
9
8
  actors;
10
9
  characterLocations = new Map();
11
- roomFactory;
12
10
  _residenceTiers = [];
11
+ rooms = {};
12
+ roomOwnership = new Map(); // Room name → owner name
13
+ itemOwnership = new Map(); // Item name → owner name
13
14
  currency;
14
15
  constructor(config) {
15
16
  super();
16
- this.roomFactory = new RoomFactory();
17
17
  this.player = config.player;
18
- this.rooms = this.generateRoomsFromConfig(config.roomConfiguration);
19
18
  this.logger = Logger.getInstance();
20
19
  this.actors = new Map();
21
20
  this.currency = config.currency ?? {
22
21
  type: 'nuyen',
23
- carrierItemSizes: [Size.Small, Size.Medium, Size.Large],
24
22
  authorityRoomTags: ['Bank'],
25
23
  };
26
24
  this.residenceTiers = config.residenceTiers ?? [];
27
- this.createExitsFromConfig(config.roomConfiguration);
28
- this.logger.write(`Scene initialized with rooms: ${Object.keys(this.rooms).join(", ")}`);
25
+ this.logger.write(`Scene initialized.`);
29
26
  this.validateLifestyleSupport();
30
27
  this.validatePuzzleRequirements(config.puzzles ?? [], config.items ?? []);
31
28
  }
32
29
  initialize() {
33
30
  this.player.currentLocation = this.determineStartRoom();
34
31
  }
35
- generateRoomsFromConfig(roomsConfig) {
36
- if (!this.roomFactory) {
37
- throw new Error(`Room Factory was not correctly initialized`);
32
+ setOwner(entity, owner) {
33
+ if ('addItem' in entity) {
34
+ // It's a Room
35
+ this.roomOwnership.set(entity.name, owner);
36
+ entity.owner = owner;
37
+ this.logger.write(`Set owner of room "${entity.name}" to "${owner}"`);
38
38
  }
39
- const generatedRooms = {};
40
- for (const roomConfig of roomsConfig) {
41
- const room = this.roomFactory.createRoom(roomConfig);
42
- generatedRooms[roomConfig.name] = room;
39
+ else {
40
+ // It's an Item
41
+ this.itemOwnership.set(entity.name, owner);
42
+ entity.owner = owner;
43
+ this.logger.write(`Set owner of item "${entity.name}" to "${owner}"`);
44
+ }
45
+ }
46
+ getOwner(entity) {
47
+ if ('addItem' in entity) {
48
+ return this.roomOwnership.get(entity.name);
49
+ }
50
+ else {
51
+ return this.itemOwnership.get(entity.name);
43
52
  }
44
- return generatedRooms;
45
- }
46
- createExitsFromConfig(roomsConfig) {
47
- for (const roomConfig of roomsConfig) {
48
- const room = this.rooms[roomConfig.name];
49
- if (roomConfig.exits) {
50
- for (const exit of roomConfig.exits) {
51
- const exitDirection = exit.direction.toUpperCase();
52
- const exitTargetName = exit.targetRoom;
53
- const keyOrSolution = exit.keyRequired;
54
- const targetRoom = this.rooms[exitTargetName];
55
- if (targetRoom) {
56
- room.addExit(Direction[exitDirection], targetRoom, keyOrSolution);
57
- }
53
+ }
54
+ getOwnedItemsBy(owner) {
55
+ const items = [];
56
+ for (const room of Object.values(this.rooms)) {
57
+ for (const item of room.inventory.getAllItems()) {
58
+ if (this.itemOwnership.get(item.name) === owner) {
59
+ items.push(item);
58
60
  }
59
61
  }
60
62
  }
63
+ return items;
64
+ }
65
+ getOwnedRoomsBy(owner) {
66
+ return Object.values(this.rooms).filter(room => this.roomOwnership.get(room.name) === owner);
61
67
  }
62
68
  addActor(actor) {
63
69
  if (this.actors.has(actor.name)) {
@@ -81,13 +87,16 @@ export class Scene extends AbstractScene {
81
87
  getActorsInRoom(room) {
82
88
  return this.allActors.filter(actor => actor.currentLocation === room);
83
89
  }
90
+ normalize(input) {
91
+ return input.normalize('NFKD').replace(/[’']/g, "'").trim().toLowerCase();
92
+ }
84
93
  addRoom(room) {
85
- this.rooms[room.name] = room;
94
+ this.rooms[this.normalize(room.name)] = room;
86
95
  this.logger.write(`Added room to scene: ${room.name}`);
87
96
  }
88
97
  removeRoom(roomName) {
89
- if (this.rooms[roomName]) {
90
- delete this.rooms[roomName];
98
+ if (this.getRoom(roomName)) {
99
+ delete this.rooms[this.normalize(roomName)];
91
100
  this.logger.write(`Removed room from scene: ${roomName}`);
92
101
  return true;
93
102
  }
@@ -97,7 +106,7 @@ export class Scene extends AbstractScene {
97
106
  }
98
107
  }
99
108
  addItemToRoom(item, roomName) {
100
- const room = this.rooms[roomName];
109
+ const room = this.getRoom(roomName);
101
110
  if (room) {
102
111
  room.addItem(item);
103
112
  this.logger.write(`Added item ${item.name} to room ${room.name}`);
@@ -107,7 +116,7 @@ export class Scene extends AbstractScene {
107
116
  }
108
117
  }
109
118
  addPuzzleToRoom(puzzle, roomName) {
110
- const room = this.rooms[roomName];
119
+ const room = this.getRoom(roomName);
111
120
  if (room) {
112
121
  room.setPuzzle(puzzle);
113
122
  this.logger.write(`Added puzzle to room ${room.name}`);
@@ -117,14 +126,21 @@ export class Scene extends AbstractScene {
117
126
  }
118
127
  }
119
128
  setCharacterLocation(character, roomName) {
120
- const room = this.rooms[roomName];
129
+ const room = this.getRoom(roomName);
121
130
  if (room) {
122
131
  this.characterLocations.set(character.name, room);
123
- character.currentLocation = room; // FIXED LINE
132
+ // Remove from old room first, if needed
133
+ const currentRoom = character.currentLocation;
134
+ if (currentRoom && currentRoom !== room) {
135
+ currentRoom.removeActor(character);
136
+ }
137
+ // Add to new room
138
+ room.addActor(character);
139
+ character.currentLocation = room;
124
140
  this.logger.write(`${character.name} is now in room ${room.name}`);
125
141
  }
126
142
  else {
127
- this.logger.write(`Failed to set ${character.name}'s location. Room ${roomName} not found in scene.`);
143
+ this.logger.error(`Failed to set ${character.name}'s location. Room ${roomName} not found in scene.`);
128
144
  }
129
145
  }
130
146
  getCharacterLocation(character) {
@@ -134,7 +150,7 @@ export class Scene extends AbstractScene {
134
150
  const startRoomCandidates = [];
135
151
  for (const roomName in this.rooms) {
136
152
  if (this.rooms.hasOwnProperty(roomName)) {
137
- const room = this.rooms[roomName];
153
+ const room = this.getRoom(roomName);
138
154
  if (room.isStartRoom) {
139
155
  startRoomCandidates.push(room);
140
156
  }
@@ -151,7 +167,7 @@ export class Scene extends AbstractScene {
151
167
  throw new Error("No rooms have been defined in the game.");
152
168
  }
153
169
  console.warn("No starting room designated. Defaulting to the first room.");
154
- return this.rooms[roomNames[0]];
170
+ return this.getRoom(roomNames[0]);
155
171
  }
156
172
  getPlayer() {
157
173
  return this.player;
@@ -159,9 +175,21 @@ export class Scene extends AbstractScene {
159
175
  getRooms() {
160
176
  return this.rooms;
161
177
  }
178
+ listRooms() {
179
+ return Object.keys(this.rooms).sort();
180
+ }
181
+ getRoom(roomName) {
182
+ const rooms = this.getRooms();
183
+ const room = rooms[this.normalize(roomName?.toLowerCase())];
184
+ if (!room) {
185
+ this.logger.error(`Could not find room ${roomName} in scene`);
186
+ throw new Error(`Room not found: ${roomName}`);
187
+ }
188
+ return room;
189
+ }
162
190
  connectRooms(roomNameA, direction, roomNameB, keyItemOrSolution) {
163
- const roomA = this.rooms[roomNameA];
164
- const roomB = this.rooms[roomNameB];
191
+ const roomA = this.getRoom(roomNameA);
192
+ const roomB = this.getRoom(roomNameB);
165
193
  if (!roomA) {
166
194
  throw new Error(`Room "${roomNameA}" does not exist.`);
167
195
  }
@@ -176,18 +204,9 @@ export class Scene extends AbstractScene {
176
204
  hasRoomSupportingEmployment(role) {
177
205
  return Object.values(this.rooms).some(room => room.supportsEmployment?.(role));
178
206
  }
179
- hasRoomSupportingHabit(habit) {
180
- return Object.values(this.rooms).some(room => room.supportsHabit?.(habit));
181
- }
182
207
  hasItemSupportingAddiction(addiction) {
183
208
  return Object.values(this.rooms).some(room => room.inventory.getAllItems().some(item => item.satisfiesLifestyle?.addictionTypes?.includes(addiction)));
184
209
  }
185
- hasItemSupportingHabit(habit) {
186
- return Object.values(this.rooms).some(room => room.inventory.getAllItems().some(item => item.satisfiesLifestyle?.habitTags?.includes(habit)));
187
- }
188
- hasPuzzleSupportingHobby(hobby) {
189
- return Object.values(this.rooms).some(room => room.puzzle?.hobbyTags?.includes(hobby));
190
- }
191
210
  validateLifestyleSupport() {
192
211
  const allActors = [this.player, ...this.allActors];
193
212
  for (const actor of allActors) {
@@ -196,14 +215,13 @@ export class Scene extends AbstractScene {
196
215
  const residence = lifestyle.find(l => l.type === 'residence')?.metadata;
197
216
  const employment = lifestyle.find(l => l.type === 'employment')?.metadata;
198
217
  const vices = lifestyle.find(l => l.type === 'vice')?.metadata;
199
- const hobbies = lifestyle.filter(l => l.type === 'hobby').map(l => l.metadata);
200
- if (residence?.lifestyle && !this.hasRoomSupportingResidence(residence.lifestyle)) {
201
- throw new Error(`No room supports residence lifestyle '${residence.lifestyle}' for ${name}`);
218
+ if (residence?.location && !this.hasRoomSupportingResidence(residence.location)) {
219
+ throw new Error(`No room supports residence lifestyle '${residence.location}' for ${name}`);
202
220
  }
203
221
  if (residence) {
204
222
  const validTiers = this._residenceTiers ?? [];
205
- if (!validTiers.includes(residence.lifestyle)) {
206
- throw new Error(`${actor.name} has an invalid residence lifestyle tier '${residence.lifestyle}'`);
223
+ if (!validTiers.includes(residence.tier)) {
224
+ throw new Error(`${actor.name} has an invalid residence lifestyle tier '${residence.tier}'`);
207
225
  }
208
226
  }
209
227
  if (employment?.jobTitle && !this.hasRoomSupportingEmployment(employment.jobTitle)) {
@@ -214,16 +232,6 @@ export class Scene extends AbstractScene {
214
232
  throw new Error(`No item supports addiction '${addiction}' for ${name}`);
215
233
  }
216
234
  }
217
- for (const habit of vices?.habits ?? []) {
218
- if (!this.hasRoomSupportingHabit(habit) && !this.hasItemSupportingHabit(habit)) {
219
- throw new Error(`No room or item supports habit '${habit}' for ${name}`);
220
- }
221
- }
222
- for (const hobby of hobbies) {
223
- if (!this.hasPuzzleSupportingHobby(hobby)) {
224
- throw new Error(`No puzzle supports hobby '${hobby}' for ${name}`);
225
- }
226
- }
227
235
  }
228
236
  this.logger.write("Scene passed lifestyle support validation.");
229
237
  }
@@ -242,7 +250,7 @@ export class Scene extends AbstractScene {
242
250
  return this.currency.type;
243
251
  }
244
252
  isValidCurrencyCarrier(item) {
245
- return this.currency.carrierItemSizes.includes(item.size);
253
+ return item.category === Category.CurrencyContainer;
246
254
  }
247
255
  getCurrencyAggregationByTag() {
248
256
  const result = {};
@@ -1 +1 @@
1
- {"version":3,"file":"scene.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/models/scene.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scene.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/models/scene.ts"],"names":[],"mappings":"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"}