diff options
Diffstat (limited to 'internal/game/cmd_registry.go')
| -rw-r--r-- | internal/game/cmd_registry.go | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/internal/game/cmd_registry.go b/internal/game/cmd_registry.go index e5bf30e..0439cc2 100644 --- a/internal/game/cmd_registry.go +++ b/internal/game/cmd_registry.go @@ -168,3 +168,29 @@ func (g *Game) executeCommand(sess *net.Session, cmd string, args []string, rawI sess.WriteLine("Unknown command.") } + +func (g *Game) executeGather(sess *net.Session, args []string, rawInput string) { + verb := strings.TrimSpace(rawInput) + p := sess.Player + g.cancelAction(p) + if len(args) == 0 { + target := g.resolveDefaultTarget(p.RoomID, verb) + if target == "" { + sess.WriteLine(fmt.Sprintf("%s what?", verb)) + return + } + g.startAction(sess, verb, target) + } else { + g.startAction(sess, verb, strings.Join(args, " ")) + } +} + +func (g *Game) executeTalk(sess *net.Session, args []string, rawInput string) { + p := sess.Player + g.cancelAction(p) + if len(args) == 0 { + sess.WriteLine("Talk to whom?") + } else { + g.startAction(sess, "talk", strings.Join(args, " ")) + } +} |
