Help and inventory commands open menu

main
Ashelyn Dawn 4 years ago
parent 3f83517484
commit 93477a290c

@ -212,6 +212,9 @@ export default class Game {
findObjectByName(name : string | undefined | null, type : ObjectType) : GameObject | null {
if(!name) return null;
if(/^the /.test(name))
return this.findObjectByName(name.replace(/^the /, ''), type)
let lowerCaseName = name.toLocaleLowerCase()
let collection

@ -0,0 +1,16 @@
import Parser from "../Parser";
import RulesEngine from "../RulesEngine";
import Game from "../Game";
import {updateSharedState} from '../../hooks/useSharedState'
export default function(parser : Parser, rules : RulesEngine, game : Game) {
parser.understand('help')
.as('help')
.as('h')
rules.onCommand('help', () => {
updateSharedState('currentMenu', 'help')
document.getElementById('gameInput')?.blur()
})
}

@ -5,5 +5,7 @@ export default [
require('./go'),
require('./open'),
require('./unlockDoor'),
require('./take')
]
require('./take'),
require('./inventory'),
require('./help')
]

@ -0,0 +1,17 @@
import Parser from "../Parser";
import RulesEngine from "../RulesEngine";
import Game from "../Game";
import {updateSharedState} from '../../hooks/useSharedState'
export default function(parser : Parser, rules : RulesEngine, game : Game) {
parser.understand('inventory')
.as('i')
.as('inventory')
.as('inv')
rules.onCommand('inventory', () => {
updateSharedState('currentMenu', 'inventory')
document.getElementById('gameInput')?.blur()
})
}

@ -4,7 +4,7 @@ import {EventEmitter} from 'events'
const sharedState = {}
const stateChanged = new EventEmitter()
const updateSharedState = (key, state) => {
export const updateSharedState = (key, state) => {
sharedState[key] = state
stateChanged.emit(key)
}

Loading…
Cancel
Save