aboutsummaryrefslogtreecommitdiff
path: root/internal/game/cmd_estate_directory.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/game/cmd_estate_directory.go')
-rw-r--r--internal/game/cmd_estate_directory.go27
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)
}