diff options
Diffstat (limited to 'internal/game/cmd_estate_directory.go')
| -rw-r--r-- | internal/game/cmd_estate_directory.go | 27 |
1 files changed, 10 insertions, 17 deletions
diff --git a/internal/game/cmd_estate_directory.go b/internal/game/cmd_estate_directory.go index 6c66ca4..c79135f 100644 --- a/internal/game/cmd_estate_directory.go +++ b/internal/game/cmd_estate_directory.go @@ -15,12 +15,7 @@ import ( ) func (g *Game) startEstateDirectory(sess *net.Session, verb string) { - p := sess.Player.(*player.Player) - - if verb == "toggle" { - sess.WriteLine("You can't do that with the directory.") - return - } + p := sess.Player homeowners := g.scanHomeowners("owns_house_local_neighborhood") ownedByMe := false @@ -40,7 +35,7 @@ func (g *Game) startEstateDirectory(sess *net.Session, verb string) { if ownedByMe { houseRoom := g.getOwnedHouseRoom(p, "owns_house_local_neighborhood") if houseRoom > 0 { - g.CancelAction(p) + g.cancelAction(p) g.teleportPlayer(sess, p, houseRoom) return } @@ -82,7 +77,7 @@ func (g *Game) showEstateDirectoryTalk(sess *net.Session, p *player.Player, home Type: "talk", TargetID: "estate_directory", TargetName: "Estate Directory", - Data: map[string]any{"node": "start", "behavior_id": "estate_directory_talk"}, + Data: map[string]any{"node": "start", "estate_directory": true}, } sess.Write("\nChoice: ") return @@ -101,8 +96,8 @@ func (g *Game) handleEstateDirectoryTalk(sess *net.Session, input string) { switch input { case "enter": - p, ok := sess.Player.(*player.Player) - if !ok { + p := sess.Player + if p == nil { return } houseRoom := g.getOwnedHouseRoom(p, "owns_house_local_neighborhood") @@ -118,8 +113,8 @@ func (g *Game) handleEstateDirectoryTalk(sess *net.Session, input string) { p.ActionState = nil g.writePrompt(sess) case "leave", "bye", "exit", "quit": - p, ok := sess.Player.(*player.Player) - if ok { + p := sess.Player + if p != nil { p.Action = nil p.ActionState = nil } @@ -134,7 +129,7 @@ func (g *Game) handleEstateDirectoryTalk(sess *net.Session, input string) { func (g *Game) scanHomeowners(flagKey string) []string { var homeowners []string - charsDir := filepath.Join(g.dataDir, "players", "characters") + charsDir := filepath.Join(g.DataDir, "players", "characters") entries, err := os.ReadDir(charsDir) if err != nil { return homeowners @@ -179,9 +174,7 @@ func (g *Game) scanHomeowners(flagKey string) []string { } func (g *Game) getOwnedHouseRoom(p *player.Player, flagKey string) int { - if p.Flags == nil { - return 0 - } + p.EnsureFlags() val, ok := p.Flags[flagKey] if !ok || val == nil { return 0 @@ -218,6 +211,6 @@ func (g *Game) teleportPlayer(sess *net.Session, p *player.Player, roomID int) { g.seedRoomObjects(p.RoomID) g.AccountStore.SaveCharacter(p) g.doLook(sess) - g.RunEnterSteps(sess, p.RoomID) + g.runEnterSteps(sess, p.RoomID) g.writePrompt(sess) } |
