@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.
- package/bundle/typescript/package.json +2 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/command.js +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/command.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/look.js +8 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/look.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/store.d.ts +8 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/store.js +32 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/store.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/factories/roomsF.js +3 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/roomsF.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/sceneSynthesizer.d.ts +6 -0
- package/bundle/typescript/src/commands/game/sideQuest/factories/sceneSynthesizer.js +65 -0
- package/bundle/typescript/src/commands/game/sideQuest/factories/sceneSynthesizer.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/game.d.ts +5 -4
- package/bundle/typescript/src/commands/game/sideQuest/game.js +7 -5
- package/bundle/typescript/src/commands/game/sideQuest/game.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/inventory.d.ts +3 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/inventory.js +10 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/inventory.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/item.d.ts +12 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/item.js +51 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/item.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/player.d.ts +8 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/player.js +61 -70
- package/bundle/typescript/src/commands/game/sideQuest/models/player.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/puzzle.d.ts +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/puzzle.js +2 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/puzzle.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/room.d.ts +17 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/room.js +76 -21
- package/bundle/typescript/src/commands/game/sideQuest/models/room.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/scene.d.ts +21 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/scene.js +104 -15
- package/bundle/typescript/src/commands/game/sideQuest/models/scene.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/scenes/items.d.ts +3 -0
- package/bundle/typescript/src/commands/game/sideQuest/scenes/items.js +15 -0
- package/bundle/typescript/src/commands/game/sideQuest/scenes/items.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/scenes/rooms.js +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/scenes/scene1.json +143 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/enums.d.ts +6 -3
- package/bundle/typescript/src/commands/game/sideQuest/types/enums.js +3 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/enums.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/types/interfaces.d.ts +84 -0
- package/bundle/typescript/src/commands/game/sideQuest/ui.d.ts +2 -2
- package/bundle/typescript/src/commands/game/sideQuest/ui.js +19 -8
- package/bundle/typescript/src/commands/game/sideQuest/ui.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest.sub.cmd.js +3 -2
- package/bundle/typescript/src/commands/game/sideQuest.sub.cmd.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@maka/maka-cli",
|
|
3
|
-
"version": "5.1.
|
|
3
|
+
"version": "5.1.25",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"summary": "A command line tool for scaffolding Meteor 2.x applications using either React.",
|
|
6
6
|
"description": "A command line tool for scaffolding Meteor 2.x applications using React.",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"test": "jest",
|
|
24
24
|
"develop": "npm run build && concurrently \"tsc -w\" \"wait-on -d 10 ./src/exec.js && chmod +x ./src/exec.js\"",
|
|
25
25
|
"build": "rm -rf ./bundle && tsc && npm run prep",
|
|
26
|
-
"prep": " cp -R ./src/templates ./bundle/typescript/src/ && cp ./README.md ./bundle/typescript/src/ && cp ./package.json ./bundle/typescript/ && chmod +x ./bundle/typescript/src/exec.js",
|
|
26
|
+
"prep": " cp -R ./src/templates ./bundle/typescript/src/ && cp ./README.md ./bundle/typescript/src/ && cp ./package.json ./bundle/typescript/ && cp ./src/commands/game/sideQuest/scenes/*.json ./bundle/typescript/src/commands/game/sideQuest/scenes/ && chmod +x ./bundle/typescript/src/exec.js",
|
|
27
27
|
"//": "## es-build, and package are still experimental",
|
|
28
28
|
"es-build": "esbuild ./bundle/typescript/src/maka.js --bundle --platform=node --outfile=bundle/maka.cjs",
|
|
29
29
|
"package": "pkg ./bundle/maka.cjs -d --bundle --out-path=\"bundle/compiled\" --compress GZip",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAG9C,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAIhD,MAAM,OAAgB,OAAO;IACjB,MAAM,CAAC,IAAI,CAAS;IACpB,MAAM,CAAC,WAAW,CAAS,CAAE,mBAAmB;IAChD,KAAK,CAAS;IACd,KAAK,CAAU;IACf,MAAM,CAAS;IACf,KAAK,CAAQ;IAEvB,YAAY,OAAwB;QAClC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"command.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAG9C,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAIhD,MAAM,OAAgB,OAAO;IACjB,MAAM,CAAC,IAAI,CAAS;IACpB,MAAM,CAAC,WAAW,CAAS,CAAE,mBAAmB;IAChD,KAAK,CAAS;IACd,KAAK,CAAU;IACf,MAAM,CAAS;IACf,KAAK,CAAQ;IAEvB,YAAY,OAAwB;QAClC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;QACnC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAC7B,CAAC;IAIS,gBAAgB,CAAC,KAAa;QACtC,OAAO,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,KAAkB,CAAC,CAAC;IAC/D,CAAC;IAED,gDAAgD;IAChD,MAAM,CAAC,cAAc;QACnB,OAAO,IAAI,CAAC,WAAW,IAAI,2BAA2B,CAAC,CAAE,yDAAyD;IACpH,CAAC;CACF"}
|
|
@@ -36,9 +36,15 @@ export class LookCommand extends Command {
|
|
|
36
36
|
return "You're not in a valid room.";
|
|
37
37
|
}
|
|
38
38
|
let description = room.description;
|
|
39
|
-
|
|
39
|
+
const otherActors = this.scene
|
|
40
|
+
.getActorsInRoom(room)
|
|
41
|
+
.filter(a => a !== this.actor);
|
|
42
|
+
if (otherActors.length > 0) {
|
|
43
|
+
const actorList = otherActors.map(a => `• ${a.name}`).join('\n');
|
|
44
|
+
description += `\n\nYou see:\n${actorList}`;
|
|
45
|
+
}
|
|
40
46
|
if (room.puzzle) {
|
|
41
|
-
description += `\n${room.puzzle.riddle}`;
|
|
47
|
+
description += `\n\nPuzzle here: ${room.puzzle.riddle}`;
|
|
42
48
|
}
|
|
43
49
|
return description;
|
|
44
50
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"look.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/look.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAEzC,OAAO,EAAE,QAAQ,EAAa,MAAM,mBAAmB,CAAC;AAExD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAGvC,MAAM,OAAO,WAAY,SAAQ,OAAO;IAC5B,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC;IACrB,MAAM,CAAC,WAAW,GAAG,2BAA2B,CAAC;IAE3D,OAAO,CAAC,OAAiB,EAAE;QACzB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAE/C,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAE9B,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBACzC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,MAAM,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,aAAa,CAAC,CAAC;gBAClF,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACxD,CAAC;iBAAM,IAAI,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAChE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,MAAM,8BAA8B,CAAC,CAAC;gBAC5E,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;YACxE,CAAC;iBAAM,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC;gBACzC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4CAA4C,MAAM,IAAI,CAAC,CAAC;gBAC1E,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAClC,CAAC;iBAAM,CAAC;gBACN,OAAO,kBAAkB,MAAM,EAAE,CAAC;YACpC,CAAC;QAEH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,sCAAsC,CAAC,CAAC;YAC5E,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;QACrB,CAAC;IACH,CAAC;IAEO,IAAI;QACV,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC;QACxC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,0DAA0D,CAAC,CAAC;YAChG,OAAO,6BAA6B,CAAC;QACvC,CAAC;QAED,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"look.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/look.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Command } from './command.js';
|
|
2
|
+
import { ICommand } from '../types/interfaces.js';
|
|
3
|
+
export declare class StoreCommand extends Command implements ICommand {
|
|
4
|
+
protected static verb: string;
|
|
5
|
+
protected static description: string;
|
|
6
|
+
execute(args: string[]): string;
|
|
7
|
+
private store;
|
|
8
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Command } from './command.js';
|
|
2
|
+
export class StoreCommand extends Command {
|
|
3
|
+
static verb = 'store';
|
|
4
|
+
static description = 'Store an item from your inventory into your residence or bank.';
|
|
5
|
+
execute(args) {
|
|
6
|
+
this.logger.write(`${this.actor.name} is attempting 'Store' command with item: ${args.join(' ')}`);
|
|
7
|
+
return this.store(args);
|
|
8
|
+
}
|
|
9
|
+
store(args) {
|
|
10
|
+
const itemName = args.join(' ').toLowerCase(); // Handle multi-word item names
|
|
11
|
+
// Check if the item exists in the player's inventory
|
|
12
|
+
if (!this.actor.inventory.hasItem(itemName)) {
|
|
13
|
+
this.logger.write(`Item "${itemName}" not found in ${this.actor.name}'s inventory during 'Store' command.`);
|
|
14
|
+
return `You don't have ${itemName} in your inventory.`;
|
|
15
|
+
}
|
|
16
|
+
const itemToStore = this.actor.inventory.getItem(itemName);
|
|
17
|
+
if (!itemToStore) {
|
|
18
|
+
this.logger.write(`Item "${itemName}" could not be retrieved from ${this.actor.name}'s inventory during 'Store' command.`);
|
|
19
|
+
return `You don't have ${itemName} in your inventory.`;
|
|
20
|
+
}
|
|
21
|
+
// Remove item from player inventory and store it in the current room context
|
|
22
|
+
const itemStored = this.actor.currentLocation.storeItemFromActor(this.actor, itemToStore);
|
|
23
|
+
if (itemStored) {
|
|
24
|
+
this.actor.inventory.removeItem(itemName);
|
|
25
|
+
return `You stored ${itemName}.`;
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
return `There is no safe place to store this ${itemName}.`;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAGvC,MAAM,OAAO,YAAa,SAAQ,OAAO;IAC7B,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC;IACtB,MAAM,CAAC,WAAW,GAAG,gEAAgE,CAAC;IAEhG,OAAO,CAAC,IAAc;QACpB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,6CAA6C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACnG,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAEO,KAAK,CAAC,IAAc;QAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,+BAA+B;QAE9E,qDAAqD;QACrD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,QAAQ,kBAAkB,IAAI,CAAC,KAAK,CAAC,IAAI,sCAAsC,CAAC,CAAC;YAC5G,OAAO,kBAAkB,QAAQ,qBAAqB,CAAC;QACzD,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAE3D,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,QAAQ,iCAAiC,IAAI,CAAC,KAAK,CAAC,IAAI,sCAAsC,CAAC,CAAC;YAC3H,OAAO,kBAAkB,QAAQ,qBAAqB,CAAC;QACzD,CAAC;QAED,6EAA6E;QAC7E,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAC1F,IAAG,UAAU,EAAE,CAAC;YACd,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAC1C,OAAO,cAAc,QAAQ,GAAG,CAAC;QACnC,CAAC;aAAM,CAAC;YACN,OAAO,wCAAwC,QAAQ,GAAG,CAAC;QAC7D,CAAC;IAEH,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Room, Puzzle, Inventory } from '../models/_index.js';
|
|
2
2
|
import { RoomType } from '../types/enums.js';
|
|
3
|
-
import { Key, Book, BasicItem, Sword, Rifle, Helmet, BodyArmor, LegArmor, Boots, Gloves, Gauntlets } from '../scenes/items.js';
|
|
3
|
+
import { Key, Book, BasicItem, Sword, Rifle, Helmet, BodyArmor, LegArmor, Boots, Gloves, Gauntlets, Pistol } from '../scenes/items.js';
|
|
4
4
|
export class RoomFactory {
|
|
5
5
|
createRoom(config) {
|
|
6
6
|
const roomConfig = this.convertToRoomConfig(config);
|
|
@@ -27,6 +27,8 @@ export class RoomFactory {
|
|
|
27
27
|
return new Sword(config.name, config.description);
|
|
28
28
|
case 'rifle':
|
|
29
29
|
return new Rifle(config.name, config.description);
|
|
30
|
+
case 'pistol':
|
|
31
|
+
return new Pistol(config.name, config.description);
|
|
30
32
|
case 'helmet':
|
|
31
33
|
return new Helmet(config.name, config.description);
|
|
32
34
|
case 'bodyarmor':
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"roomsF.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/factories/roomsF.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAQ,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"roomsF.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/factories/roomsF.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Scene } from '../models/scene.js';
|
|
2
|
+
import { Player } from '../models/player.js';
|
|
3
|
+
import { ISceneSeedJson } from '../types/interfaces.js';
|
|
4
|
+
export declare class SceneSynthesizer {
|
|
5
|
+
static synthesizeFromJson(json: ISceneSeedJson, player: Player): Scene;
|
|
6
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { Scene } from '../models/scene.js';
|
|
2
|
+
import { NPC } from '../models/npc.js';
|
|
3
|
+
import { Item } from '../models/item.js';
|
|
4
|
+
import { Puzzle } from '../models/puzzle.js';
|
|
5
|
+
import { Size, Category, Shape, Color, Texture, Rating } from '../types/enums.js';
|
|
6
|
+
export class SceneSynthesizer {
|
|
7
|
+
static synthesizeFromJson(json, player) {
|
|
8
|
+
// Step 1: Create the Scene using the JSON’s room configuration
|
|
9
|
+
const scene = new Scene({
|
|
10
|
+
player,
|
|
11
|
+
currency: {
|
|
12
|
+
type: json.currency.type,
|
|
13
|
+
carrierItemSizes: json.currency.carrierItemSizes.map(size => Size[size]),
|
|
14
|
+
authorityRoomTags: json.currency.authorityRoomTags
|
|
15
|
+
},
|
|
16
|
+
roomConfiguration: json.rooms,
|
|
17
|
+
residenceTiers: json.residenceTiers
|
|
18
|
+
});
|
|
19
|
+
// Step 2: Add NPCs
|
|
20
|
+
for (const npcJson of json.npcs ?? []) {
|
|
21
|
+
const npc = new NPC(npcJson.name, npcJson.dialogue ?? ["..."], // Default if dialogue not supplied
|
|
22
|
+
scene.getRooms(), {
|
|
23
|
+
playerName: npcJson.name,
|
|
24
|
+
lifestyleChoices: npcJson.lifestyleChoices
|
|
25
|
+
});
|
|
26
|
+
scene.addActor(npc);
|
|
27
|
+
scene.setCharacterLocation(npc, npcJson.startRoom);
|
|
28
|
+
}
|
|
29
|
+
// Step 3: Add Items to Rooms
|
|
30
|
+
for (const itemJson of json.items ?? []) {
|
|
31
|
+
const item = new Item({
|
|
32
|
+
name: itemJson.name,
|
|
33
|
+
description: itemJson.description,
|
|
34
|
+
size: Size[itemJson.size],
|
|
35
|
+
category: Category[itemJson.category],
|
|
36
|
+
shape: Shape[itemJson.shape],
|
|
37
|
+
color: Color[itemJson.color],
|
|
38
|
+
texture: Texture[itemJson.texture],
|
|
39
|
+
rating: Rating[itemJson.rating],
|
|
40
|
+
weight: itemJson.weight,
|
|
41
|
+
satisfiesLifestyle: itemJson.satisfiesLifestyle
|
|
42
|
+
});
|
|
43
|
+
if (itemJson.currencyAmount && item.isCurrencyCarrier()) {
|
|
44
|
+
item.addCurrency(itemJson.currencyAmount);
|
|
45
|
+
}
|
|
46
|
+
scene.addItemToRoom(item, itemJson.room);
|
|
47
|
+
}
|
|
48
|
+
// Step 4: Add Puzzles to Rooms
|
|
49
|
+
for (const puzzleJson of json.puzzles ?? []) {
|
|
50
|
+
const puzzle = new Puzzle({
|
|
51
|
+
requiredItem: puzzleJson.requiredItem,
|
|
52
|
+
requiredPhrase: puzzleJson.requiredPhrase,
|
|
53
|
+
riddle: puzzleJson.riddle,
|
|
54
|
+
rewardItem: undefined, // could be enhanced later
|
|
55
|
+
successMessage: puzzleJson.successMessage,
|
|
56
|
+
failureMessage: puzzleJson.failureMessage,
|
|
57
|
+
hobbyTags: puzzleJson.hobbyTags
|
|
58
|
+
});
|
|
59
|
+
scene.addPuzzleToRoom(puzzle, puzzleJson.room);
|
|
60
|
+
}
|
|
61
|
+
// Done: the scene is now ready
|
|
62
|
+
return scene;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=sceneSynthesizer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sceneSynthesizer.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/factories/sceneSynthesizer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
import { IRooms } from './types/interfaces.js';
|
|
2
2
|
import { Room } from './models/room.js';
|
|
3
3
|
import { Player } from './models/player.js';
|
|
4
|
-
import {
|
|
4
|
+
import { Scene } from './models/scene.js';
|
|
5
|
+
import { ISceneSeedJson } from './types/interfaces.js';
|
|
5
6
|
export default class Game {
|
|
6
7
|
private static instance;
|
|
7
|
-
|
|
8
|
+
scene: Scene;
|
|
8
9
|
player: Player;
|
|
9
10
|
currentRoom: Room;
|
|
10
11
|
rooms: IRooms;
|
|
11
|
-
constructor(player: Player,
|
|
12
|
+
constructor(player: Player, sceneSeed: ISceneSeedJson);
|
|
12
13
|
private registerCommands;
|
|
13
14
|
private determineStartRoom;
|
|
14
15
|
getWelcomeMessage(): string;
|
|
15
|
-
static getInstance(player: Player,
|
|
16
|
+
static getInstance(player: Player, sceneSeed: ISceneSeedJson): Game;
|
|
16
17
|
handleInput(input: string): string | null;
|
|
17
18
|
private getHelpMessage;
|
|
18
19
|
}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { Scene } from './models/scene.js';
|
|
2
1
|
import { LookCommand } from './commands/look.js';
|
|
3
2
|
import { TakeCommand } from './commands/take.js';
|
|
4
3
|
import { GoCommand } from './commands/go.js';
|
|
@@ -11,16 +10,18 @@ import { UnlockCommand } from './commands/unlock.js';
|
|
|
11
10
|
import { LockCommand } from './commands/lock.js';
|
|
12
11
|
import { SearchCommand } from './commands/search.js';
|
|
13
12
|
import { SayCommand } from './commands/say.js';
|
|
13
|
+
import { StoreCommand } from './commands/store.js';
|
|
14
14
|
import { CommandFactory } from './factories/commandF.js';
|
|
15
|
+
import { SceneSynthesizer } from './factories/sceneSynthesizer.js';
|
|
15
16
|
export default class Game {
|
|
16
17
|
static instance;
|
|
17
18
|
scene;
|
|
18
19
|
player;
|
|
19
20
|
currentRoom;
|
|
20
21
|
rooms;
|
|
21
|
-
constructor(player,
|
|
22
|
+
constructor(player, sceneSeed) {
|
|
22
23
|
this.player = player;
|
|
23
|
-
this.scene =
|
|
24
|
+
this.scene = SceneSynthesizer.synthesizeFromJson(sceneSeed, player);
|
|
24
25
|
this.scene.initialize();
|
|
25
26
|
this.player.currentLocation = this.determineStartRoom();
|
|
26
27
|
this.registerCommands();
|
|
@@ -38,6 +39,7 @@ export default class Game {
|
|
|
38
39
|
CommandFactory.registerCommand('lock', LockCommand);
|
|
39
40
|
CommandFactory.registerCommand('search', SearchCommand);
|
|
40
41
|
CommandFactory.registerCommand('say', SayCommand);
|
|
42
|
+
CommandFactory.registerCommand('store', StoreCommand);
|
|
41
43
|
}
|
|
42
44
|
determineStartRoom() {
|
|
43
45
|
return this.scene.determineStartRoom();
|
|
@@ -46,9 +48,9 @@ export default class Game {
|
|
|
46
48
|
return `Welcome, ${this.player.name}`; // Replace with your own welcome message or initial room description
|
|
47
49
|
}
|
|
48
50
|
// Public method to get the instance of the Game class
|
|
49
|
-
static getInstance(player,
|
|
51
|
+
static getInstance(player, sceneSeed) {
|
|
50
52
|
if (!Game.instance) {
|
|
51
|
-
Game.instance = new Game(player,
|
|
53
|
+
Game.instance = new Game(player, sceneSeed);
|
|
52
54
|
}
|
|
53
55
|
return Game.instance;
|
|
54
56
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"game.js","sourceRoot":"","sources":["../../../../../../src/commands/game/sideQuest/game.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"game.js","sourceRoot":"","sources":["../../../../../../src/commands/game/sideQuest/game.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@ import { AbstractInventory } from '../types/abstracts.js';
|
|
|
4
4
|
export declare class Inventory extends AbstractInventory {
|
|
5
5
|
protected items: Map<string, Item>;
|
|
6
6
|
protected logger: Logger;
|
|
7
|
+
private secureItems;
|
|
7
8
|
constructor();
|
|
8
9
|
/**
|
|
9
10
|
* Adds an item to the inventory.
|
|
@@ -40,4 +41,6 @@ export declare class Inventory extends AbstractInventory {
|
|
|
40
41
|
listItems(): string[];
|
|
41
42
|
getWeight(): number;
|
|
42
43
|
getAllItems(): Item[];
|
|
44
|
+
addSecureItem(ownerId: string, item: Item): void;
|
|
45
|
+
getSecureItemsFor(ownerId: string): Item[];
|
|
43
46
|
}
|
|
@@ -4,6 +4,7 @@ import { AbstractInventory } from '../types/abstracts.js';
|
|
|
4
4
|
export class Inventory extends AbstractInventory {
|
|
5
5
|
items;
|
|
6
6
|
logger;
|
|
7
|
+
secureItems = new Map(); // keyed by player name
|
|
7
8
|
constructor() {
|
|
8
9
|
super();
|
|
9
10
|
this.items = new Map();
|
|
@@ -83,5 +84,14 @@ export class Inventory extends AbstractInventory {
|
|
|
83
84
|
getAllItems() {
|
|
84
85
|
return [...this.items.values()];
|
|
85
86
|
}
|
|
87
|
+
addSecureItem(ownerId, item) {
|
|
88
|
+
if (!this.secureItems.has(ownerId)) {
|
|
89
|
+
this.secureItems.set(ownerId, []);
|
|
90
|
+
}
|
|
91
|
+
this.secureItems.get(ownerId).push(item);
|
|
92
|
+
}
|
|
93
|
+
getSecureItemsFor(ownerId) {
|
|
94
|
+
return this.secureItems.get(ownerId) ?? [];
|
|
95
|
+
}
|
|
86
96
|
}
|
|
87
97
|
//# sourceMappingURL=inventory.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inventory.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/models/inventory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAGhD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,MAAM,OAAO,SAAU,SAAQ,iBAAiB;IACpC,KAAK,CAAoB;IACzB,MAAM,CAAS;
|
|
1
|
+
{"version":3,"file":"inventory.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/models/inventory.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,6 +12,18 @@ export declare class Item extends AbstractItem {
|
|
|
12
12
|
texture: Texture;
|
|
13
13
|
rating: Rating;
|
|
14
14
|
weight: number;
|
|
15
|
+
satisfiesLifestyle?: {
|
|
16
|
+
addictionTypes?: string[];
|
|
17
|
+
habitTags?: string[];
|
|
18
|
+
};
|
|
19
|
+
protected _currencyAmount: number;
|
|
20
|
+
protected _currencyCapacity?: number;
|
|
15
21
|
constructor(options: IItemConstructorConfig);
|
|
16
22
|
use(): string;
|
|
23
|
+
supportsAddiction(addiction: string): boolean;
|
|
24
|
+
supportsHabit(habit: string): boolean;
|
|
25
|
+
isCurrencyCarrier(): boolean;
|
|
26
|
+
get currencyAmount(): number;
|
|
27
|
+
addCurrency(amount: number): number;
|
|
28
|
+
deductCurrency(amount: number): number;
|
|
17
29
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Size, Category } from '../types/enums.js';
|
|
1
2
|
import { v4 as uuidv4 } from 'uuid';
|
|
2
3
|
import { AbstractItem } from '../types/abstracts.js';
|
|
3
4
|
export class Item extends AbstractItem {
|
|
@@ -11,6 +12,10 @@ export class Item extends AbstractItem {
|
|
|
11
12
|
texture;
|
|
12
13
|
rating;
|
|
13
14
|
weight;
|
|
15
|
+
satisfiesLifestyle;
|
|
16
|
+
// New currency-related fields
|
|
17
|
+
_currencyAmount = 0;
|
|
18
|
+
_currencyCapacity;
|
|
14
19
|
constructor(options) {
|
|
15
20
|
super();
|
|
16
21
|
this.name = options.name;
|
|
@@ -22,10 +27,55 @@ export class Item extends AbstractItem {
|
|
|
22
27
|
this.texture = options.texture;
|
|
23
28
|
this.rating = options.rating;
|
|
24
29
|
this.weight = options.weight;
|
|
25
|
-
this.
|
|
30
|
+
this.satisfiesLifestyle = options.satisfiesLifestyle;
|
|
31
|
+
this.uuid = uuidv4();
|
|
32
|
+
// Optional: you can define capacity by size
|
|
33
|
+
if (this.isCurrencyCarrier()) {
|
|
34
|
+
switch (this.size) {
|
|
35
|
+
case Size.Small:
|
|
36
|
+
this._currencyCapacity = 100;
|
|
37
|
+
break;
|
|
38
|
+
case Size.Medium:
|
|
39
|
+
this._currencyCapacity = 500;
|
|
40
|
+
break;
|
|
41
|
+
case Size.Large:
|
|
42
|
+
this._currencyCapacity = 1000;
|
|
43
|
+
break;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
26
46
|
}
|
|
27
47
|
use() {
|
|
28
48
|
return `You use the ${this.name}. Nothing special happens.`;
|
|
29
49
|
}
|
|
50
|
+
supportsAddiction(addiction) {
|
|
51
|
+
return this.satisfiesLifestyle?.addictionTypes?.includes(addiction) ?? false;
|
|
52
|
+
}
|
|
53
|
+
supportsHabit(habit) {
|
|
54
|
+
return this.satisfiesLifestyle?.habitTags?.includes(habit) ?? false;
|
|
55
|
+
}
|
|
56
|
+
// --- Currency Support ---
|
|
57
|
+
isCurrencyCarrier() {
|
|
58
|
+
return this.category === Category.CurrencyContainer;
|
|
59
|
+
}
|
|
60
|
+
get currencyAmount() {
|
|
61
|
+
return this._currencyAmount;
|
|
62
|
+
}
|
|
63
|
+
addCurrency(amount) {
|
|
64
|
+
if (!this.isCurrencyCarrier())
|
|
65
|
+
return 0;
|
|
66
|
+
const space = this._currencyCapacity !== undefined
|
|
67
|
+
? Math.max(0, this._currencyCapacity - this._currencyAmount)
|
|
68
|
+
: Infinity;
|
|
69
|
+
const added = Math.min(amount, space);
|
|
70
|
+
this._currencyAmount += added;
|
|
71
|
+
return added;
|
|
72
|
+
}
|
|
73
|
+
deductCurrency(amount) {
|
|
74
|
+
if (!this.isCurrencyCarrier())
|
|
75
|
+
return 0;
|
|
76
|
+
const deducted = Math.min(this._currencyAmount, amount);
|
|
77
|
+
this._currencyAmount -= deducted;
|
|
78
|
+
return deducted;
|
|
79
|
+
}
|
|
30
80
|
}
|
|
31
81
|
//# sourceMappingURL=item.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"item.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/models/item.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"item.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/models/item.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { PlayerEquipment } from '../types/types.js';
|
|
2
|
-
import { IPlayer, IPlayerConstructorConfig } from '../types/interfaces.js';
|
|
2
|
+
import { IPlayer, IPlayerConstructorConfig, LifestyleChoices } from '../types/interfaces.js';
|
|
3
3
|
import { Logger } from '../utilities/logger.js';
|
|
4
4
|
import { Room } from './room.js';
|
|
5
5
|
import { Item } from './item.js';
|
|
@@ -11,7 +11,9 @@ export declare class Player extends AbstractPlayer implements IPlayer {
|
|
|
11
11
|
protected _inventory: Inventory;
|
|
12
12
|
protected _equipment: PlayerEquipment;
|
|
13
13
|
protected _maxCarryingWeight: number;
|
|
14
|
+
protected _lifestyleChoices: LifestyleChoices;
|
|
14
15
|
protected logger: Logger;
|
|
16
|
+
private _currency;
|
|
15
17
|
constructor(config: IPlayerConstructorConfig);
|
|
16
18
|
get name(): string;
|
|
17
19
|
get currentLocation(): Room;
|
|
@@ -32,4 +34,9 @@ export declare class Player extends AbstractPlayer implements IPlayer {
|
|
|
32
34
|
hear(actor: Player, message: string): void;
|
|
33
35
|
enterRoom(room: Room): void;
|
|
34
36
|
leaveRoom(): void;
|
|
37
|
+
get lifestyleChoices(): LifestyleChoices;
|
|
38
|
+
set lifestyleChoices(choices: LifestyleChoices);
|
|
39
|
+
get currency(): number;
|
|
40
|
+
set currency(amount: number);
|
|
41
|
+
adjustCurrency(delta: number): void;
|
|
35
42
|
}
|