Class Game

The main class of the library. This is the class that you will use to create a game.

Example

const game = new Game({
universe: 'Cyberpunk',
playerName: 'Punk',
playerClass: 'Hacker'
})

Constructors

Properties

chats: Chat[] = []
client: Client
data: GameData = ...
events: EventEmitter = ...
history: (ChatCompletionUserMessageParam | ChatCompletionMessage)[] = []
id: string = ...
options: GameOptions

Accessors

  • get level(): number
  • Calculate the player's level based on their experience

    Returns number

  • get overburdened(): boolean
  • Determine if the player is overburdened

    Returns boolean

  • get weightCarried(): number
  • Calculate the player's weight carried

    Returns number

Methods

  • Commit an action on the game

    Parameters

    • action: string

      The action to commit

    Returns Promise<Game>

  • Send a chat message to a character

    Listen for game.events.on(GameEvent.chat) to get the response

    Parameters

    • data: {
          character: Character;
          dialog: string;
      }

    Returns Promise<void>

    Todo

    Prune chat history to fit context window

  • Export the game data object

    Returns {
        chats: Chat[];
        data: GameData;
        history: (ChatCompletionUserMessageParam | ChatCompletionMessage)[];
        id: string;
        options: GameOptions;
        tokens: number;
    }

    • chats: Chat[]
    • data: GameData
    • history: (ChatCompletionUserMessageParam | ChatCompletionMessage)[]
    • id: string
    • options: GameOptions
    • tokens: number
  • Import a game data object

    Parameters

    • data: any

    Returns void

  • Initialize a new game

    Returns Promise<void>

  • Inspect the game data

    Returns string

  • Stop listening for game events

    Parameters

    • event: GameEvent
    • listener: ((...args) => void)
        • (...args): void
        • Parameters

          • Rest ...args: any[]

          Returns void

    Returns void

  • Listen for game events

    Parameters

    • event: GameEvent
    • listener: ((...args) => void)
        • (...args): void
        • Parameters

          • Rest ...args: any[]

          Returns void

    Returns void

  • Resolve a path in the game data

    Parameters

    • obj: any
    • path: string

    Returns {
        value: any;
    }

    • get value(): any
    • set value(newValue: any): void
  • Manually set a value in the game data

    Parameters

    • key: string
    • value: any

    Returns void