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.go10
1 files changed, 9 insertions, 1 deletions
diff --git a/internal/game/cmd_estate_directory.go b/internal/game/cmd_estate_directory.go
index 3da2c18..9966e52 100644
--- a/internal/game/cmd_estate_directory.go
+++ b/internal/game/cmd_estate_directory.go
@@ -182,7 +182,7 @@ func (g *Game) getOwnedHouseRoom(p *player.Player, flagKey string) int {
}
houseMap := map[string]int{
- "local_neighborhood": 300,
+ "local_neighborhood": 99999300,
}
return houseMap[v]
}
@@ -196,6 +196,14 @@ func (g *Game) teleportPlayer(sess *net.Session, p *player.Player, roomID int) {
}
}
+ // A teleport changes rooms just like a walk, so it must clear any safespot
+ // cover: isSafespotted/safespotBlocksMelee/safespotBlocksHazard compare no
+ // room, so leaving the state active grants melee and hazard immunity in the
+ // destination and keeps the player as a phantom occupant of the old cover.
+ if ss, ok := g.safespot.Get(p.Name); ok {
+ g.forceLeaveSafespot(sess, p, &ss, "")
+ }
+
p.RoomID = roomID
p.Stats.RecordRoomVisit(roomID)
if g.Hub != nil {