diff --git a/RoleplayersToolbox/Tools/Housing/HousingArea.cs b/RoleplayersToolbox/Tools/Housing/HousingArea.cs index e4667ac..ed2fc39 100755 --- a/RoleplayersToolbox/Tools/Housing/HousingArea.cs +++ b/RoleplayersToolbox/Tools/Housing/HousingArea.cs @@ -30,5 +30,14 @@ namespace RoleplayersToolbox.Tools.Housing { public static TerritoryType CityState(this HousingArea area, DataManager data) { return data.GetExcelSheet().GetRow(area.CityStateTerritoryType()); } + + public static bool CanWorldTravel(this HousingArea area) { + return area switch { + HousingArea.Mist => true, + HousingArea.LavenderBeds => true, + HousingArea.Goblet => true, + _ => false, + }; + } } } diff --git a/RoleplayersToolbox/Tools/Housing/HousingTool.cs b/RoleplayersToolbox/Tools/Housing/HousingTool.cs index 9a59bb0..230d4dd 100755 --- a/RoleplayersToolbox/Tools/Housing/HousingTool.cs +++ b/RoleplayersToolbox/Tools/Housing/HousingTool.cs @@ -172,9 +172,14 @@ namespace RoleplayersToolbox.Tools.Housing { if (this.Destination?.Area != null) { ImGui.SameLine(); - var name = this.Destination.Area.Value.CityState(this.Plugin.Interface.Data).PlaceName.Value.Name; + var destArea = this.Destination.Area.Value; + if (!destArea.CanWorldTravel() && this.Destination?.World != null && this.Destination?.World != this.Plugin.Interface.ClientState.LocalPlayer?.CurrentWorld?.GameData) { + destArea = HousingArea.Mist; + } + + var name = destArea.CityState(this.Plugin.Interface.Data).PlaceName.Value.Name; if (ImGui.Button($"Teleport to {name}")) { - this.Teleport.TeleportToHousingArea(this.Destination.Area.Value); + this.Teleport.TeleportToHousingArea(destArea); } }