This commit is contained in:
Kim Ravn Hansen
2025-09-04 16:54:03 +02:00
parent fc28f4ef55
commit 0acd46fb6b
16 changed files with 629 additions and 21 deletions

34
server/models/game.js Normal file
View File

@@ -0,0 +1,34 @@
/*
* The game object holds everything.
* All the locations, players, characters, items, npcs, quests, loot, etc.
*
* It is a pseudo-singleton in that you should only ever create one.
*
* Serializing this object effectively saves the game.
*/
import { Character } from "./character";
import { ItemTemplate } from "./item";
class Game{
/** @type {Map<string,ItemTemplate>} List of all item templates in the game */
_itemTemplates = new Map();
/** @type {Map<string,Location>} The list of locations in the game */
_locations = new Map();
/**
* The characters in the game.
*
* @protected
* @type {Map<string,Character>}
*/
_characters = new Map();
/**
* @protected
* @type {Map<string,Player>} The list of users in the game
*/
_players = new Map();
}