@maka/maka-cli 5.1.24 → 5.1.26

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 (49) hide show
  1. package/bundle/typescript/package.json +2 -2
  2. package/bundle/typescript/src/commands/game/sideQuest/commands/command.js +1 -0
  3. package/bundle/typescript/src/commands/game/sideQuest/commands/command.js.map +1 -1
  4. package/bundle/typescript/src/commands/game/sideQuest/commands/look.js +8 -2
  5. package/bundle/typescript/src/commands/game/sideQuest/commands/look.js.map +1 -1
  6. package/bundle/typescript/src/commands/game/sideQuest/commands/store.d.ts +8 -0
  7. package/bundle/typescript/src/commands/game/sideQuest/commands/store.js +32 -0
  8. package/bundle/typescript/src/commands/game/sideQuest/commands/store.js.map +1 -0
  9. package/bundle/typescript/src/commands/game/sideQuest/factories/roomsF.js +3 -1
  10. package/bundle/typescript/src/commands/game/sideQuest/factories/roomsF.js.map +1 -1
  11. package/bundle/typescript/src/commands/game/sideQuest/factories/sceneSynthesizer.d.ts +6 -0
  12. package/bundle/typescript/src/commands/game/sideQuest/factories/sceneSynthesizer.js +65 -0
  13. package/bundle/typescript/src/commands/game/sideQuest/factories/sceneSynthesizer.js.map +1 -0
  14. package/bundle/typescript/src/commands/game/sideQuest/game.d.ts +5 -4
  15. package/bundle/typescript/src/commands/game/sideQuest/game.js +7 -5
  16. package/bundle/typescript/src/commands/game/sideQuest/game.js.map +1 -1
  17. package/bundle/typescript/src/commands/game/sideQuest/models/inventory.d.ts +3 -0
  18. package/bundle/typescript/src/commands/game/sideQuest/models/inventory.js +10 -0
  19. package/bundle/typescript/src/commands/game/sideQuest/models/inventory.js.map +1 -1
  20. package/bundle/typescript/src/commands/game/sideQuest/models/item.d.ts +12 -0
  21. package/bundle/typescript/src/commands/game/sideQuest/models/item.js +51 -1
  22. package/bundle/typescript/src/commands/game/sideQuest/models/item.js.map +1 -1
  23. package/bundle/typescript/src/commands/game/sideQuest/models/player.d.ts +8 -1
  24. package/bundle/typescript/src/commands/game/sideQuest/models/player.js +61 -70
  25. package/bundle/typescript/src/commands/game/sideQuest/models/player.js.map +1 -1
  26. package/bundle/typescript/src/commands/game/sideQuest/models/puzzle.d.ts +1 -0
  27. package/bundle/typescript/src/commands/game/sideQuest/models/puzzle.js +2 -0
  28. package/bundle/typescript/src/commands/game/sideQuest/models/puzzle.js.map +1 -1
  29. package/bundle/typescript/src/commands/game/sideQuest/models/room.d.ts +17 -0
  30. package/bundle/typescript/src/commands/game/sideQuest/models/room.js +76 -21
  31. package/bundle/typescript/src/commands/game/sideQuest/models/room.js.map +1 -1
  32. package/bundle/typescript/src/commands/game/sideQuest/models/scene.d.ts +21 -1
  33. package/bundle/typescript/src/commands/game/sideQuest/models/scene.js +104 -15
  34. package/bundle/typescript/src/commands/game/sideQuest/models/scene.js.map +1 -1
  35. package/bundle/typescript/src/commands/game/sideQuest/scenes/items.d.ts +3 -0
  36. package/bundle/typescript/src/commands/game/sideQuest/scenes/items.js +15 -0
  37. package/bundle/typescript/src/commands/game/sideQuest/scenes/items.js.map +1 -1
  38. package/bundle/typescript/src/commands/game/sideQuest/scenes/rooms.js +1 -1
  39. package/bundle/typescript/src/commands/game/sideQuest/scenes/scene1.json +143 -0
  40. package/bundle/typescript/src/commands/game/sideQuest/types/enums.d.ts +6 -3
  41. package/bundle/typescript/src/commands/game/sideQuest/types/enums.js +3 -0
  42. package/bundle/typescript/src/commands/game/sideQuest/types/enums.js.map +1 -1
  43. package/bundle/typescript/src/commands/game/sideQuest/types/interfaces.d.ts +84 -0
  44. package/bundle/typescript/src/commands/game/sideQuest/ui.d.ts +2 -2
  45. package/bundle/typescript/src/commands/game/sideQuest/ui.js +19 -8
  46. package/bundle/typescript/src/commands/game/sideQuest/ui.js.map +1 -1
  47. package/bundle/typescript/src/commands/game/sideQuest.sub.cmd.js +3 -2
  48. package/bundle/typescript/src/commands/game/sideQuest.sub.cmd.js.map +1 -1
  49. package/package.json +2 -2
@@ -1,27 +1,34 @@
1
1
  import { Logger } from '../utilities/logger.js';
2
- import { Direction } from '../types/enums.js';
2
+ import { Direction, Size } from '../types/enums.js';
3
3
  import { AbstractScene } from '../types/abstracts.js';
4
4
  import { RoomFactory } from '../factories/roomsF.js';
5
5
  export class Scene extends AbstractScene {
6
6
  rooms;
7
7
  player;
8
8
  logger;
9
- actors; // Using a map to store actors by a unique identifier, assuming an id or name
10
- characterLocations = new Map(); // key can be player/npc's name or ID and value is their location.
9
+ actors;
10
+ characterLocations = new Map();
11
11
  roomFactory;
12
+ _residenceTiers = [];
13
+ currency;
12
14
  constructor(config) {
13
15
  super();
14
16
  this.roomFactory = new RoomFactory();
15
17
  this.player = config.player;
16
- this.rooms = this.generateRoomsFromConfig(config.roomConfiguration); // Replace rooms with roomsConfiguration
18
+ this.rooms = this.generateRoomsFromConfig(config.roomConfiguration);
17
19
  this.logger = Logger.getInstance();
18
20
  this.actors = new Map();
21
+ this.currency = config.currency ?? {
22
+ type: 'nuyen',
23
+ carrierItemSizes: [Size.Small, Size.Medium, Size.Large],
24
+ authorityRoomTags: ['Bank'],
25
+ };
26
+ this.residenceTiers = config.residenceTiers ?? [];
19
27
  this.createExitsFromConfig(config.roomConfiguration);
20
28
  this.logger.write(`Scene initialized with rooms: ${Object.keys(this.rooms).join(", ")}`);
29
+ this.validateLifestyleSupport();
21
30
  }
22
31
  initialize() {
23
- // Initialize scene. This could set the starting room for the player or handle other initialization logic.
24
- // For instance:
25
32
  this.player.currentLocation = this.determineStartRoom();
26
33
  }
27
34
  generateRoomsFromConfig(roomsConfig) {
@@ -51,12 +58,11 @@ export class Scene extends AbstractScene {
51
58
  }
52
59
  }
53
60
  }
54
- // Methods to manage actors
55
61
  addActor(actor) {
56
- // Assuming the actor has a unique 'name' property
57
62
  if (this.actors.has(actor.name)) {
58
63
  throw new Error(`Actor with name ${actor.name} already exists in the scene.`);
59
64
  }
65
+ this.logger.write(`Actor with name ${actor.name} has been added to the scene.`);
60
66
  this.actors.set(actor.name, actor);
61
67
  }
62
68
  removeActor(name) {
@@ -71,7 +77,9 @@ export class Scene extends AbstractScene {
71
77
  get allActors() {
72
78
  return Array.from(this.actors.values());
73
79
  }
74
- // Methods to add/remove rooms
80
+ getActorsInRoom(room) {
81
+ return this.allActors.filter(actor => actor.currentLocation === room);
82
+ }
75
83
  addRoom(room) {
76
84
  this.rooms[room.name] = room;
77
85
  this.logger.write(`Added room to scene: ${room.name}`);
@@ -87,7 +95,6 @@ export class Scene extends AbstractScene {
87
95
  return false;
88
96
  }
89
97
  }
90
- // Method to add an item to a room's inventory
91
98
  addItemToRoom(item, roomName) {
92
99
  const room = this.rooms[roomName];
93
100
  if (room) {
@@ -98,7 +105,6 @@ export class Scene extends AbstractScene {
98
105
  this.logger.write(`Failed to add item ${item.name}. Room ${roomName} not found in scene.`);
99
106
  }
100
107
  }
101
- // Method to add a puzzle to a room
102
108
  addPuzzleToRoom(puzzle, roomName) {
103
109
  const room = this.rooms[roomName];
104
110
  if (room) {
@@ -113,6 +119,7 @@ export class Scene extends AbstractScene {
113
119
  const room = this.rooms[roomName];
114
120
  if (room) {
115
121
  this.characterLocations.set(character.name, room);
122
+ character.currentLocation = room; // ✅ FIXED LINE
116
123
  this.logger.write(`${character.name} is now in room ${room.name}`);
117
124
  }
118
125
  else {
@@ -124,7 +131,6 @@ export class Scene extends AbstractScene {
124
131
  }
125
132
  determineStartRoom() {
126
133
  const startRoomCandidates = [];
127
- // Search for rooms designated as the starting room
128
134
  for (const roomName in this.rooms) {
129
135
  if (this.rooms.hasOwnProperty(roomName)) {
130
136
  const room = this.rooms[roomName];
@@ -133,15 +139,12 @@ export class Scene extends AbstractScene {
133
139
  }
134
140
  }
135
141
  }
136
- // Check if there are multiple start rooms
137
142
  if (startRoomCandidates.length > 1) {
138
143
  throw new Error("Multiple starting rooms have been defined. Please ensure there's only one starting room.");
139
144
  }
140
- // If a starting room is found, return it
141
145
  if (startRoomCandidates.length === 1) {
142
146
  return startRoomCandidates[0];
143
147
  }
144
- // If no starting room is designated, throw an error or default to the first room
145
148
  const roomNames = Object.keys(this.rooms);
146
149
  if (roomNames.length === 0) {
147
150
  throw new Error("No rooms have been defined in the game.");
@@ -166,5 +169,91 @@ export class Scene extends AbstractScene {
166
169
  }
167
170
  roomA.addExit(direction, roomB, keyItemOrSolution);
168
171
  }
172
+ hasRoomSupportingResidence(type) {
173
+ return Object.values(this.rooms).some(room => room.supportsResidence?.(type));
174
+ }
175
+ hasRoomSupportingEmployment(role) {
176
+ return Object.values(this.rooms).some(room => room.supportsEmployment?.(role));
177
+ }
178
+ hasRoomSupportingHabit(habit) {
179
+ return Object.values(this.rooms).some(room => room.supportsHabit?.(habit));
180
+ }
181
+ hasItemSupportingAddiction(addiction) {
182
+ return Object.values(this.rooms).some(room => room.inventory.getAllItems().some(item => item.satisfiesLifestyle?.addictionTypes?.includes(addiction)));
183
+ }
184
+ hasItemSupportingHabit(habit) {
185
+ return Object.values(this.rooms).some(room => room.inventory.getAllItems().some(item => item.satisfiesLifestyle?.habitTags?.includes(habit)));
186
+ }
187
+ hasPuzzleSupportingHobby(hobby) {
188
+ return Object.values(this.rooms).some(room => room.puzzle?.hobbyTags?.includes(hobby));
189
+ }
190
+ validateLifestyleSupport() {
191
+ const allActors = [this.player, ...this.allActors];
192
+ for (const actor of allActors) {
193
+ const lifestyle = actor.lifestyleChoices ?? [];
194
+ const name = actor.name;
195
+ const residence = lifestyle.find(l => l.type === 'residence')?.metadata;
196
+ const employment = lifestyle.find(l => l.type === 'employment')?.metadata;
197
+ const vices = lifestyle.find(l => l.type === 'vice')?.metadata;
198
+ const hobbies = lifestyle.filter(l => l.type === 'hobby').map(l => l.metadata);
199
+ if (residence?.lifestyle && !this.hasRoomSupportingResidence(residence.lifestyle)) {
200
+ throw new Error(`No room supports residence lifestyle '${residence.lifestyle}' for ${name}`);
201
+ }
202
+ if (residence) {
203
+ const validTiers = this._residenceTiers ?? [];
204
+ if (!validTiers.includes(residence.lifestyle)) {
205
+ throw new Error(`${actor.name} has an invalid residence lifestyle tier '${residence.lifestyle}'`);
206
+ }
207
+ }
208
+ if (employment?.jobTitle && !this.hasRoomSupportingEmployment(employment.jobTitle)) {
209
+ throw new Error(`No room supports employment role '${employment.jobTitle}' for ${name}`);
210
+ }
211
+ for (const addiction of vices?.addictions ?? []) {
212
+ if (!this.hasItemSupportingAddiction(addiction)) {
213
+ throw new Error(`No item supports addiction '${addiction}' for ${name}`);
214
+ }
215
+ }
216
+ for (const habit of vices?.habits ?? []) {
217
+ if (!this.hasRoomSupportingHabit(habit) && !this.hasItemSupportingHabit(habit)) {
218
+ throw new Error(`No room or item supports habit '${habit}' for ${name}`);
219
+ }
220
+ }
221
+ for (const hobby of hobbies) {
222
+ if (!this.hasPuzzleSupportingHobby(hobby)) {
223
+ throw new Error(`No puzzle supports hobby '${hobby}' for ${name}`);
224
+ }
225
+ }
226
+ }
227
+ this.logger.write("Scene passed lifestyle support validation.");
228
+ }
229
+ getCurrencyType() {
230
+ return this.currency.type;
231
+ }
232
+ isValidCurrencyCarrier(item) {
233
+ return this.currency.carrierItemSizes.includes(item.size);
234
+ }
235
+ getCurrencyAggregationByTag() {
236
+ const result = {};
237
+ for (const tag of this.currency.authorityRoomTags) {
238
+ result[tag] = {};
239
+ const taggedRooms = Object.values(this.rooms).filter(room => room.tags?.includes(tag) && room.governsCurrency);
240
+ for (const room of taggedRooms) {
241
+ for (const [playerName, items] of room.currencyLedger.entries()) {
242
+ const playerTotal = items.reduce((sum, item) => sum + item.currencyAmount, 0);
243
+ result[tag][playerName] = (result[tag][playerName] ?? 0) + playerTotal;
244
+ }
245
+ }
246
+ }
247
+ return result;
248
+ }
249
+ get residenceTiers() {
250
+ return this._residenceTiers;
251
+ }
252
+ set residenceTiers(tiers) {
253
+ this._residenceTiers = tiers;
254
+ }
255
+ isValidResidenceTier(tier) {
256
+ return this._residenceTiers.includes(tier);
257
+ }
169
258
  }
170
259
  //# sourceMappingURL=scene.js.map
@@ -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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"}
@@ -9,6 +9,9 @@ export declare class Sword extends Item {
9
9
  export declare class Rifle extends Item {
10
10
  constructor(name: string, description: string);
11
11
  }
12
+ export declare class Pistol extends Item {
13
+ constructor(name: string, description: string);
14
+ }
12
15
  export declare class Helmet extends Item {
13
16
  constructor(name: string, description: string);
14
17
  }
@@ -49,6 +49,21 @@ export class Rifle extends Item {
49
49
  });
50
50
  }
51
51
  }
52
+ export class Pistol extends Item {
53
+ constructor(name, description) {
54
+ super({
55
+ name,
56
+ description,
57
+ size: Size.Small,
58
+ category: Category.Weapon,
59
+ shape: Shape.Pistol,
60
+ color: Color.Black,
61
+ texture: Texture.Metallic,
62
+ rating: Rating.Rare,
63
+ weight: 2
64
+ });
65
+ }
66
+ }
52
67
  export class Helmet extends Item {
53
68
  constructor(name, description) {
54
69
  super({
@@ -1 +1 @@
1
- {"version":3,"file":"items.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/scenes/items.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"items.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/scenes/items.ts"],"names":[],"mappings":"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"}
@@ -301,7 +301,7 @@ export const shadowrunConfig = [
301
301
  roomType: "outside",
302
302
  items: [
303
303
  {
304
- type: "weapon",
304
+ type: "pistol",
305
305
  name: "Ares Predator",
306
306
  description: "A popular heavy pistol among shadowrunners."
307
307
  }
@@ -0,0 +1,143 @@
1
+ {
2
+ "name": "Seattle Underground",
3
+
4
+ "residenceTiers": [
5
+ "Redmond Safehouse",
6
+ "Street Squatter",
7
+ "Capsule Hotel",
8
+ "Barrens Apartment",
9
+ "Puyallup Loft"
10
+ ],
11
+
12
+ "currency": {
13
+ "type": "nuyen",
14
+ "carrier": "credstick",
15
+ "carrierItemSizes": ["Small", "Medium"],
16
+ "authorityRoomTags": ["Bank"]
17
+ },
18
+
19
+ "rooms": [
20
+ {
21
+ "name": "Redmond Safehouse",
22
+ "description": "A hidden bolthole in the Redmond Barrens.",
23
+ "tags": ["residence"],
24
+ "supportedLifestyles": {
25
+ "residenceTiers": ["Redmond Safehouse"]
26
+ },
27
+ "exits": [
28
+ {
29
+ "direction": "north",
30
+ "targetRoom": "Krow’s Den"
31
+ }
32
+ ],
33
+ "isStartRoom": true
34
+ },
35
+ {
36
+ "name": "Krow’s Den",
37
+ "description": "The fixer’s office. Smells like cigars and secrets.",
38
+ "tags": ["employment", "gun-mods"],
39
+ "supportedLifestyles": {
40
+ "employmentRoles": ["Fixer"],
41
+ "hobbyTags": ["Gun Collecting"]
42
+ },
43
+ "exits": [
44
+ {
45
+ "direction": "south",
46
+ "targetRoom": "Redmond Safehouse"
47
+ },
48
+ {
49
+ "direction": "east",
50
+ "targetRoom": "Lucky Chummer"
51
+ }
52
+ ]
53
+ },
54
+ {
55
+ "name": "Lucky Chummer",
56
+ "description": "A neon casino buzzing with illicit energy.",
57
+ "tags": ["entertainment"],
58
+ "supportedLifestyles": {
59
+ "habitTags": ["Gambling"]
60
+ }
61
+ }
62
+ ],
63
+
64
+ "npcs": [
65
+ {
66
+ "name": "Mr. Krow",
67
+ "dialogue": [
68
+ "I've got what you need — if you can pay.",
69
+ "Never trust a smiling ork.",
70
+ "The shadows don't lie, chummer."
71
+ ],
72
+ "lifestyleChoices": [
73
+ {
74
+ "type": "residence",
75
+ "metadata": {
76
+ "lifestyle": "Redmond Safehouse"
77
+ }
78
+ },
79
+ {
80
+ "type": "employment",
81
+ "metadata": {
82
+ "jobTitle": "Fixer"
83
+ }
84
+ },
85
+ {
86
+ "type": "vice",
87
+ "metadata": {
88
+ "habits": ["Cigars"]
89
+ }
90
+ },
91
+ {
92
+ "type": "hobby",
93
+ "metadata": "Gun Collecting"
94
+ }
95
+ ],
96
+ "startRoom": "Redmond Safehouse"
97
+ }
98
+ ],
99
+
100
+ "items": [
101
+ {
102
+ "name": "Certified Credstick",
103
+ "description": "Black-market certified nuyen chip.",
104
+ "size": "Small",
105
+ "category": "CurrencyContainer",
106
+ "shape": "Rectangle",
107
+ "color": "Silver",
108
+ "texture": "Smooth",
109
+ "rating": "Standard",
110
+ "weight": 0.2,
111
+ "currencyAmount": 500,
112
+ "room": "Redmond Safehouse"
113
+ },
114
+ {
115
+ "name": "Cuban Cigar",
116
+ "description": "Hand-rolled and smuggled from Amazonia.",
117
+ "size": "Tiny",
118
+ "category": "Consumable",
119
+ "shape": "Cylinder",
120
+ "color": "Brown",
121
+ "texture": "Rough",
122
+ "rating": "Standard",
123
+ "weight": 0.1,
124
+ "satisfiesLifestyle": {
125
+ "habitTags": ["Cigars"]
126
+ },
127
+ "room": "Krow’s Den"
128
+ }
129
+ ],
130
+
131
+ "puzzles": [
132
+ {
133
+ "requiredItem": "Wrench",
134
+ "requiredPhrase": "recalibrate",
135
+ "riddle": "What fires but has no flame?",
136
+ "successMessage": "You fine-tuned the gun into a masterpiece.",
137
+ "failureMessage": "You lack the tools or insight to fix this weapon.",
138
+ "hobbyTags": ["Gun Collecting"],
139
+ "room": "Krow’s Den"
140
+ }
141
+ ]
142
+ }
143
+
@@ -23,7 +23,8 @@ export declare enum Category {
23
23
  BodyArmor = "body armor",
24
24
  Book = "book",
25
25
  Cup = "cup",
26
- Unknown = "unknown"
26
+ Unknown = "unknown",
27
+ CurrencyContainer = "currency container"
27
28
  }
28
29
  export declare enum Shape {
29
30
  Circle = "circle",
@@ -31,7 +32,8 @@ export declare enum Shape {
31
32
  Triangle = "triangle",
32
33
  Rectangle = "rectangle",
33
34
  Blade = "blade",
34
- Rifle = "rifle"
35
+ Rifle = "rifle",
36
+ Pistol = "pistol"
35
37
  }
36
38
  export declare enum Color {
37
39
  Red = "red",
@@ -42,7 +44,8 @@ export declare enum Color {
42
44
  Purple = "purple",
43
45
  Grey = "grey",
44
46
  Brown = "brown",
45
- Gold = "gold"
47
+ Gold = "gold",
48
+ Black = "black"
46
49
  }
47
50
  export declare enum Texture {
48
51
  Smooth = "smooth",
@@ -27,6 +27,7 @@ export var Category;
27
27
  Category["Book"] = "book";
28
28
  Category["Cup"] = "cup";
29
29
  Category["Unknown"] = "unknown";
30
+ Category["CurrencyContainer"] = "currency container";
30
31
  })(Category || (Category = {}));
31
32
  export var Shape;
32
33
  (function (Shape) {
@@ -36,6 +37,7 @@ export var Shape;
36
37
  Shape["Rectangle"] = "rectangle";
37
38
  Shape["Blade"] = "blade";
38
39
  Shape["Rifle"] = "rifle";
40
+ Shape["Pistol"] = "pistol";
39
41
  })(Shape || (Shape = {}));
40
42
  export var Color;
41
43
  (function (Color) {
@@ -48,6 +50,7 @@ export var Color;
48
50
  Color["Grey"] = "grey";
49
51
  Color["Brown"] = "brown";
50
52
  Color["Gold"] = "gold";
53
+ Color["Black"] = "black";
51
54
  })(Color || (Color = {}));
52
55
  export var Texture;
53
56
  (function (Texture) {
@@ -1 +1 @@
1
- {"version":3,"file":"enums.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/types/enums.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,IAMX;AAND,WAAY,IAAI;IACd,qBAAa,CAAA;IACX,uBAAe,CAAA;IACf,yBAAiB,CAAA;IACjB,uBAAe,CAAA;IACf,gCAAwB,CAAA;AAC5B,CAAC,EANW,IAAI,KAAJ,IAAI,QAMf;AAED,MAAM,CAAN,IAAY,MAIX;AAJD,WAAY,MAAM;IAChB,2BAAiB,CAAA;IACf,uBAAa,CAAA;IACb,iCAAuB,CAAA;AAC3B,CAAC,EAJW,MAAM,KAAN,MAAM,QAIjB;AAED,MAAM,CAAN,IAAY,QAcX;AAdD,WAAY,QAAQ;IAClB,6BAAiB,CAAA;IACf,6BAAiB,CAAA;IACjB,uBAAW,CAAA;IACX,6BAAiB,CAAA;IACjB,6BAAiB,CAAA;IACjB,uBAAW,CAAA;IACX,2BAAe,CAAA;IACf,kCAAsB,CAAA;IACtB,kCAAsB,CAAA;IACtB,oCAAwB,CAAA;IACxB,yBAAa,CAAA;IACb,uBAAW,CAAA;IACX,+BAAmB,CAAA;AACvB,CAAC,EAdW,QAAQ,KAAR,QAAQ,QAcnB;AAED,MAAM,CAAN,IAAY,KAOX;AAPD,WAAY,KAAK;IACf,0BAAiB,CAAA;IACf,0BAAiB,CAAA;IACjB,8BAAqB,CAAA;IACrB,gCAAuB,CAAA;IACvB,wBAAe,CAAA;IACf,wBAAe,CAAA;AACnB,CAAC,EAPW,KAAK,KAAL,KAAK,QAOhB;AAED,MAAM,CAAN,IAAY,KAUX;AAVD,WAAY,KAAK;IACf,oBAAW,CAAA;IACT,sBAAa,CAAA;IACb,wBAAe,CAAA;IACf,0BAAiB,CAAA;IACjB,0BAAiB,CAAA;IACjB,0BAAiB,CAAA;IACjB,sBAAa,CAAA;IACb,wBAAe,CAAA;IACf,sBAAa,CAAA;AACjB,CAAC,EAVW,KAAK,KAAL,KAAK,QAUhB;AAED,MAAM,CAAN,IAAY,OAOX;AAPD,WAAY,OAAO;IACjB,4BAAiB,CAAA;IACf,0BAAe,CAAA;IACf,0BAAe,CAAA;IACf,0BAAe,CAAA;IACf,4BAAiB,CAAA;IACjB,gCAAqB,CAAA;AACzB,CAAC,EAPW,OAAO,KAAP,OAAO,QAOlB;AAED,MAAM,CAAN,IAAY,QAWX;AAXD,WAAY,QAAQ;IAClB,6BAAiB,CAAA;IACf,+BAAmB,CAAA;IACnB,uCAA2B,CAAA;IAC3B,yBAAa,CAAA;IACb,2BAAe,CAAA;IACf,6BAAiB,CAAA;IACjB,6BAAiB,CAAA;IACjB,iCAAqB,CAAA;IACrB,2BAAe,CAAA;IACf,uBAAW,CAAA;AACf,CAAC,EAXW,QAAQ,KAAR,QAAQ,QAWnB;AAED,MAAM,CAAN,IAAY,SAOX;AAPD,WAAY,SAAS;IACnB,4BAAe,CAAA;IACf,0BAAa,CAAA;IACb,4BAAe,CAAA;IACf,0BAAa,CAAA;IACb,sBAAS,CAAA;IACT,0BAAa,CAAA;AACf,CAAC,EAPW,SAAS,KAAT,SAAS,QAOpB"}
1
+ {"version":3,"file":"enums.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/types/enums.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,IAMX;AAND,WAAY,IAAI;IACd,qBAAa,CAAA;IACX,uBAAe,CAAA;IACf,yBAAiB,CAAA;IACjB,uBAAe,CAAA;IACf,gCAAwB,CAAA;AAC5B,CAAC,EANW,IAAI,KAAJ,IAAI,QAMf;AAED,MAAM,CAAN,IAAY,MAIX;AAJD,WAAY,MAAM;IAChB,2BAAiB,CAAA;IACf,uBAAa,CAAA;IACb,iCAAuB,CAAA;AAC3B,CAAC,EAJW,MAAM,KAAN,MAAM,QAIjB;AAED,MAAM,CAAN,IAAY,QAeX;AAfD,WAAY,QAAQ;IAClB,6BAAiB,CAAA;IACjB,6BAAiB,CAAA;IACjB,uBAAW,CAAA;IACX,6BAAiB,CAAA;IACjB,6BAAiB,CAAA;IACjB,uBAAW,CAAA;IACX,2BAAe,CAAA;IACf,kCAAsB,CAAA;IACtB,kCAAsB,CAAA;IACtB,oCAAwB,CAAA;IACxB,yBAAa,CAAA;IACb,uBAAW,CAAA;IACX,+BAAmB,CAAA;IACnB,oDAAwC,CAAA;AAC1C,CAAC,EAfW,QAAQ,KAAR,QAAQ,QAenB;AAED,MAAM,CAAN,IAAY,KAQX;AARD,WAAY,KAAK;IACf,0BAAiB,CAAA;IACf,0BAAiB,CAAA;IACjB,8BAAqB,CAAA;IACrB,gCAAuB,CAAA;IACvB,wBAAe,CAAA;IACf,wBAAe,CAAA;IACf,0BAAiB,CAAA;AACrB,CAAC,EARW,KAAK,KAAL,KAAK,QAQhB;AAED,MAAM,CAAN,IAAY,KAWX;AAXD,WAAY,KAAK;IACf,oBAAW,CAAA;IACT,sBAAa,CAAA;IACb,wBAAe,CAAA;IACf,0BAAiB,CAAA;IACjB,0BAAiB,CAAA;IACjB,0BAAiB,CAAA;IACjB,sBAAa,CAAA;IACb,wBAAe,CAAA;IACf,sBAAa,CAAA;IACb,wBAAe,CAAA;AACnB,CAAC,EAXW,KAAK,KAAL,KAAK,QAWhB;AAED,MAAM,CAAN,IAAY,OAOX;AAPD,WAAY,OAAO;IACjB,4BAAiB,CAAA;IACf,0BAAe,CAAA;IACf,0BAAe,CAAA;IACf,0BAAe,CAAA;IACf,4BAAiB,CAAA;IACjB,gCAAqB,CAAA;AACzB,CAAC,EAPW,OAAO,KAAP,OAAO,QAOlB;AAED,MAAM,CAAN,IAAY,QAWX;AAXD,WAAY,QAAQ;IAClB,6BAAiB,CAAA;IACf,+BAAmB,CAAA;IACnB,uCAA2B,CAAA;IAC3B,yBAAa,CAAA;IACb,2BAAe,CAAA;IACf,6BAAiB,CAAA;IACjB,6BAAiB,CAAA;IACjB,iCAAqB,CAAA;IACrB,2BAAe,CAAA;IACf,uBAAW,CAAA;AACf,CAAC,EAXW,QAAQ,KAAR,QAAQ,QAWnB;AAED,MAAM,CAAN,IAAY,SAOX;AAPD,WAAY,SAAS;IACnB,4BAAe,CAAA;IACb,0BAAa,CAAA;IACb,4BAAe,CAAA;IACf,0BAAa,CAAA;IACb,sBAAS,CAAA;IACT,0BAAa,CAAA;AACjB,CAAC,EAPW,SAAS,KAAT,SAAS,QAOpB"}
@@ -5,6 +5,7 @@ import { Scene } from '../models/scene.js';
5
5
  import { Player } from '../models/player.js';
6
6
  import { Inventory } from '../models/inventory.js';
7
7
  import { Puzzle } from '../models/puzzle.js';
8
+ import { NPC } from '../models/npc.js';
8
9
  import { PlayerEquipment, RoomConfiguration } from './types.js';
9
10
  import { Size, Category, Shape, Color, Texture, Rating, RoomType, Direction } from '../types/enums.js';
10
11
  export interface IRooms {
@@ -22,6 +23,12 @@ export interface IRoomConfig {
22
23
  inventory?: Inventory;
23
24
  puzzle?: Puzzle;
24
25
  isStartRoom?: boolean;
26
+ tags?: string[];
27
+ supportedLifestyles?: {
28
+ residenceTypes?: ('Street' | 'Squatter' | 'Low' | 'Middle' | 'High' | 'Luxury')[];
29
+ employmentRoles?: string[];
30
+ habitTags?: string[];
31
+ };
25
32
  }
26
33
  export interface IPuzzleConstructorConfig {
27
34
  requiredItem?: string;
@@ -30,10 +37,17 @@ export interface IPuzzleConstructorConfig {
30
37
  rewardItem?: Item;
31
38
  successMessage?: string;
32
39
  failureMessage?: string;
40
+ hobbyTags?: string[];
33
41
  }
34
42
  export interface ISceneConstructorConfig {
35
43
  player: Player;
36
44
  roomConfiguration: RoomConfiguration;
45
+ currency?: {
46
+ type: string;
47
+ carrierItemSizes: Size[];
48
+ authorityRoomTags: string[];
49
+ };
50
+ residenceTiers: string[];
37
51
  }
38
52
  export interface IPlayer {
39
53
  readonly _playerName: string;
@@ -47,6 +61,7 @@ export interface IPlayerConstructorConfig {
47
61
  startLocation?: Room;
48
62
  inventoryItems?: Item[];
49
63
  initialEquipment?: PlayerEquipment;
64
+ lifestyleChoices?: LifestyleChoices;
50
65
  }
51
66
  export interface ILogger {
52
67
  write(message: string): void;
@@ -76,6 +91,10 @@ export interface IItemConstructorConfig {
76
91
  texture: Texture;
77
92
  rating: Rating;
78
93
  weight: number;
94
+ satisfiesLifestyle?: {
95
+ addictionTypes?: string[];
96
+ habitTags?: string[];
97
+ };
79
98
  }
80
99
  export interface IItem {
81
100
  type: string;
@@ -89,6 +108,7 @@ export interface IPuzzle {
89
108
  rewardItem: IItem;
90
109
  successMessage: string;
91
110
  failureMessage: string;
111
+ hobbyTags?: string[];
92
112
  }
93
113
  export interface IExit {
94
114
  direction: string;
@@ -103,4 +123,68 @@ export interface IRoomConfiguration {
103
123
  items?: IItem[];
104
124
  puzzle?: IPuzzle;
105
125
  exits?: IExit[];
126
+ npcs?: NPC[];
127
+ }
128
+ export interface LifestyleChoice {
129
+ type: 'residence' | 'employment' | 'vice' | 'hobby';
130
+ metadata: ResidenceChoice | EmploymentChoice | ViceChoice | HobbyChoice;
131
+ }
132
+ export interface ResidenceChoice {
133
+ lifestyle: string;
134
+ description?: string;
135
+ location?: string;
136
+ }
137
+ export interface EmploymentChoice {
138
+ jobTitle: string;
139
+ employer?: string;
140
+ SINRegistered?: boolean;
141
+ }
142
+ export interface ViceChoice {
143
+ addictions?: string[];
144
+ habits?: string[];
145
+ mentalHealthFlags?: string[];
146
+ }
147
+ export type HobbyChoice = string;
148
+ export type LifestyleChoices = LifestyleChoice[];
149
+ export interface ISceneSeedJson {
150
+ name: string;
151
+ currency: {
152
+ type: string;
153
+ carrierItemSizes: string[];
154
+ authorityRoomTags: string[];
155
+ };
156
+ rooms: IRoomConfiguration[];
157
+ residenceTiers: string[];
158
+ npcs?: Array<{
159
+ name: string;
160
+ dialogue?: string[];
161
+ lifestyleChoices: LifestyleChoice[];
162
+ startRoom: string;
163
+ }>;
164
+ items?: Array<{
165
+ name: string;
166
+ description: string;
167
+ size: keyof typeof Size;
168
+ category: keyof typeof Category;
169
+ shape: keyof typeof Shape;
170
+ color: keyof typeof Color;
171
+ texture: keyof typeof Texture;
172
+ rating: keyof typeof Rating;
173
+ weight: number;
174
+ currencyAmount?: number;
175
+ satisfiesLifestyle?: {
176
+ addictionTypes?: string[];
177
+ habitTags?: string[];
178
+ };
179
+ room: string;
180
+ }>;
181
+ puzzles?: Array<{
182
+ requiredItem?: string;
183
+ requiredPhrase?: string;
184
+ riddle?: string;
185
+ successMessage?: string;
186
+ failureMessage?: string;
187
+ hobbyTags?: string[];
188
+ room: string;
189
+ }>;
106
190
  }
@@ -1,3 +1,3 @@
1
- import { RoomConfiguration } from './types/types.js';
2
1
  import { IMainGameConfig } from './types/interfaces.js';
3
- export declare function main(playerName: string, roomConfiguration: RoomConfiguration, options: IMainGameConfig): Promise<void>;
2
+ import { ISceneSeedJson } from './types/interfaces.js';
3
+ export declare function main(playerName: string, sceneSeed: ISceneSeedJson, options: IMainGameConfig): Promise<void>;