Add gold coffers (#10)
parent
cbdcf58063
commit
e45b72a655
|
@ -56,6 +56,14 @@ namespace Pal.Client.Configuration
|
||||||
OnlyVisibleAfterPomander = false,
|
OnlyVisibleAfterPomander = false,
|
||||||
Fill = true
|
Fill = true
|
||||||
};
|
};
|
||||||
|
|
||||||
|
public MarkerConfiguration GoldCoffers { get; set; } = new()
|
||||||
|
{
|
||||||
|
Show = false,
|
||||||
|
Color = ImGui.ColorConvertFloat4ToU32(new Vector4(1, 1, 0, 0.4f)),
|
||||||
|
OnlyVisibleAfterPomander = false,
|
||||||
|
Fill = true
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
public class MarkerConfiguration
|
public class MarkerConfiguration
|
||||||
|
|
|
@ -250,6 +250,12 @@ namespace Pal.Client.Floors
|
||||||
CreateRenderElement(location, elements, DetermineColor(location),
|
CreateRenderElement(location, elements, DetermineColor(location),
|
||||||
_configuration.DeepDungeons.SilverCoffers);
|
_configuration.DeepDungeons.SilverCoffers);
|
||||||
}
|
}
|
||||||
|
else if (location.Type == MemoryLocation.EType.GoldCoffer &&
|
||||||
|
_configuration.DeepDungeons.GoldCoffers.Show)
|
||||||
|
{
|
||||||
|
CreateRenderElement(location, elements, DetermineColor(location),
|
||||||
|
_configuration.DeepDungeons.GoldCoffers);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (elements.Count == 0)
|
if (elements.Count == 0)
|
||||||
|
@ -279,10 +285,12 @@ namespace Pal.Client.Floors
|
||||||
|
|
||||||
private uint DetermineColor(EphemeralLocation location)
|
private uint DetermineColor(EphemeralLocation location)
|
||||||
{
|
{
|
||||||
if (location.Type == MemoryLocation.EType.SilverCoffer)
|
return location.Type switch
|
||||||
return _configuration.DeepDungeons.SilverCoffers.Color;
|
{
|
||||||
|
MemoryLocation.EType.SilverCoffer => _configuration.DeepDungeons.SilverCoffers.Color,
|
||||||
return RenderData.ColorInvisible;
|
MemoryLocation.EType.GoldCoffer => _configuration.DeepDungeons.GoldCoffers.Color,
|
||||||
|
_ => RenderData.ColorInvisible
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
private void CreateRenderElement(MemoryLocation location, List<IRenderElement> elements, uint color,
|
private void CreateRenderElement(MemoryLocation location, List<IRenderElement> elements, uint color,
|
||||||
|
@ -411,6 +419,15 @@ namespace Pal.Client.Floors
|
||||||
Seen = true,
|
Seen = true,
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 2007358:
|
||||||
|
ephemeralLocations.Add(new EphemeralLocation
|
||||||
|
{
|
||||||
|
Type = MemoryLocation.EType.GoldCoffer,
|
||||||
|
Position = obj.Position,
|
||||||
|
Seen = true
|
||||||
|
});
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -26,6 +26,7 @@ namespace Pal.Client.Floors
|
||||||
Hoard,
|
Hoard,
|
||||||
|
|
||||||
SilverCoffer,
|
SilverCoffer,
|
||||||
|
GoldCoffer,
|
||||||
}
|
}
|
||||||
|
|
||||||
public override bool Equals(object? obj)
|
public override bool Equals(object? obj)
|
||||||
|
|
|
@ -176,6 +176,43 @@ namespace Pal.Client.Properties {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Gold Coffer color.
|
||||||
|
/// </summary>
|
||||||
|
internal static string Config_GoldCoffer_Color {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("Config_GoldCoffer_Color", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Draw filled.
|
||||||
|
/// </summary>
|
||||||
|
internal static string Config_GoldCoffer_Filled {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("Config_GoldCoffer_Filled", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Show gold coffers on current floor.
|
||||||
|
/// </summary>
|
||||||
|
internal static string Config_GoldCoffer_Show {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("Config_GoldCoffer_Show", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Shows nearby gold coffers (containing pomanders) on the current floor.
|
||||||
|
///This is not synchronized with other players and not saved between floors/runs..
|
||||||
|
/// </summary>
|
||||||
|
internal static string Config_GoldCoffers_ToolTip {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("Config_GoldCoffers_ToolTip", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to Hoard Coffer color.
|
/// Looks up a localized string similar to Hoard Coffer color.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -357,7 +394,7 @@ namespace Pal.Client.Properties {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to Shows all the silver coffers visible to you on the current floor.
|
/// Looks up a localized string similar to Shows nearby silver coffers (gear upgrades and magicites) on the current floor.
|
||||||
///This is not synchronized with other players and not saved between floors/runs..
|
///This is not synchronized with other players and not saved between floors/runs..
|
||||||
/// </summary>
|
/// </summary>
|
||||||
internal static string Config_SilverCoffers_ToolTip {
|
internal static string Config_SilverCoffers_ToolTip {
|
||||||
|
|
|
@ -146,7 +146,7 @@ When using a Pomander of Safety, all traps are hidden.</value>
|
||||||
<value>Show silver coffers on current floor</value>
|
<value>Show silver coffers on current floor</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Config_SilverCoffers_ToolTip" xml:space="preserve">
|
<data name="Config_SilverCoffers_ToolTip" xml:space="preserve">
|
||||||
<value>Shows all the silver coffers visible to you on the current floor.
|
<value>Shows nearby silver coffers (gear upgrades and magicites) on the current floor.
|
||||||
This is not synchronized with other players and not saved between floors/runs.</value>
|
This is not synchronized with other players and not saved between floors/runs.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Config_SilverCoffer_Color" xml:space="preserve">
|
<data name="Config_SilverCoffer_Color" xml:space="preserve">
|
||||||
|
@ -156,6 +156,20 @@ This is not synchronized with other players and not saved between floors/runs.</
|
||||||
<value>Draw filled</value>
|
<value>Draw filled</value>
|
||||||
<comment>Whether silver coffers should only be drawn with the circle outline or as filled circle.</comment>
|
<comment>Whether silver coffers should only be drawn with the circle outline or as filled circle.</comment>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="Config_GoldCoffer_Show" xml:space="preserve">
|
||||||
|
<value>Show gold coffers on current floor</value>
|
||||||
|
</data>
|
||||||
|
<data name="Config_GoldCoffers_ToolTip" xml:space="preserve">
|
||||||
|
<value>Shows nearby gold coffers (containing pomanders) on the current floor.
|
||||||
|
This is not synchronized with other players and not saved between floors/runs.</value>
|
||||||
|
</data>
|
||||||
|
<data name="Config_GoldCoffer_Color" xml:space="preserve">
|
||||||
|
<value>Gold Coffer color</value>
|
||||||
|
</data>
|
||||||
|
<data name="Config_GoldCoffer_Filled" xml:space="preserve">
|
||||||
|
<value>Draw filled</value>
|
||||||
|
<comment>Whether gold coffers should only be drawn with the circle outline or as filled circle.</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
<!-- Config Window: Community -->
|
<!-- Config Window: Community -->
|
||||||
<data name="ConfigTab_Community" xml:space="preserve">
|
<data name="ConfigTab_Community" xml:space="preserve">
|
||||||
|
|
|
@ -12,6 +12,7 @@ namespace Pal.Client.Rendering
|
||||||
{ MemoryLocation.EType.Trap, new MarkerConfig { Radius = 1.7f } },
|
{ MemoryLocation.EType.Trap, new MarkerConfig { Radius = 1.7f } },
|
||||||
{ MemoryLocation.EType.Hoard, new MarkerConfig { Radius = 1.7f, OffsetY = -0.03f } },
|
{ MemoryLocation.EType.Hoard, new MarkerConfig { Radius = 1.7f, OffsetY = -0.03f } },
|
||||||
{ MemoryLocation.EType.SilverCoffer, new MarkerConfig { Radius = 1f } },
|
{ MemoryLocation.EType.SilverCoffer, new MarkerConfig { Radius = 1f } },
|
||||||
|
{ MemoryLocation.EType.GoldCoffer, new MarkerConfig { Radius = 1f } },
|
||||||
};
|
};
|
||||||
|
|
||||||
public float OffsetY { get; private init; }
|
public float OffsetY { get; private init; }
|
||||||
|
|
|
@ -22,7 +22,6 @@ namespace Pal.Client.Scheduled
|
||||||
|
|
||||||
protected override void Run(QueuedConfigUpdate queued, ref bool recreateLayout)
|
protected override void Run(QueuedConfigUpdate queued, ref bool recreateLayout)
|
||||||
{
|
{
|
||||||
// TODO filter stuff if offline
|
|
||||||
_renderAdapter.ConfigUpdated();
|
_renderAdapter.ConfigUpdated();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -47,6 +47,7 @@ namespace Pal.Client.Windows
|
||||||
private ConfigurableMarker _trapConfig = new();
|
private ConfigurableMarker _trapConfig = new();
|
||||||
private ConfigurableMarker _hoardConfig = new();
|
private ConfigurableMarker _hoardConfig = new();
|
||||||
private ConfigurableMarker _silverConfig = new();
|
private ConfigurableMarker _silverConfig = new();
|
||||||
|
private ConfigurableMarker _goldConfig = new();
|
||||||
|
|
||||||
private string? _connectionText;
|
private string? _connectionText;
|
||||||
private bool _switchToCommunityTab;
|
private bool _switchToCommunityTab;
|
||||||
|
@ -124,6 +125,7 @@ namespace Pal.Client.Windows
|
||||||
_trapConfig = new ConfigurableMarker(_configuration.DeepDungeons.Traps);
|
_trapConfig = new ConfigurableMarker(_configuration.DeepDungeons.Traps);
|
||||||
_hoardConfig = new ConfigurableMarker(_configuration.DeepDungeons.HoardCoffers);
|
_hoardConfig = new ConfigurableMarker(_configuration.DeepDungeons.HoardCoffers);
|
||||||
_silverConfig = new ConfigurableMarker(_configuration.DeepDungeons.SilverCoffers);
|
_silverConfig = new ConfigurableMarker(_configuration.DeepDungeons.SilverCoffers);
|
||||||
|
_goldConfig = new ConfigurableMarker(_configuration.DeepDungeons.GoldCoffers);
|
||||||
_connectionText = null;
|
_connectionText = null;
|
||||||
|
|
||||||
UpdateLastImport();
|
UpdateLastImport();
|
||||||
|
@ -162,6 +164,7 @@ namespace Pal.Client.Windows
|
||||||
_configuration.DeepDungeons.Traps = _trapConfig.Build();
|
_configuration.DeepDungeons.Traps = _trapConfig.Build();
|
||||||
_configuration.DeepDungeons.HoardCoffers = _hoardConfig.Build();
|
_configuration.DeepDungeons.HoardCoffers = _hoardConfig.Build();
|
||||||
_configuration.DeepDungeons.SilverCoffers = _silverConfig.Build();
|
_configuration.DeepDungeons.SilverCoffers = _silverConfig.Build();
|
||||||
|
_configuration.DeepDungeons.GoldCoffers = _goldConfig.Build();
|
||||||
|
|
||||||
_configurationManager.Save(_configuration);
|
_configurationManager.Save(_configuration);
|
||||||
|
|
||||||
|
@ -174,6 +177,7 @@ namespace Pal.Client.Windows
|
||||||
{
|
{
|
||||||
if (ImGui.BeginTabItem($"{Localization.ConfigTab_DeepDungeons}###TabDeepDungeons"))
|
if (ImGui.BeginTabItem($"{Localization.ConfigTab_DeepDungeons}###TabDeepDungeons"))
|
||||||
{
|
{
|
||||||
|
ImGui.PushID("trap");
|
||||||
ImGui.Checkbox(Localization.Config_Traps_Show, ref _trapConfig.Show);
|
ImGui.Checkbox(Localization.Config_Traps_Show, ref _trapConfig.Show);
|
||||||
ImGui.Indent();
|
ImGui.Indent();
|
||||||
ImGui.BeginDisabled(!_trapConfig.Show);
|
ImGui.BeginDisabled(!_trapConfig.Show);
|
||||||
|
@ -184,9 +188,11 @@ namespace Pal.Client.Windows
|
||||||
ImGuiComponents.HelpMarker(Localization.Config_Traps_HideImpossible_ToolTip);
|
ImGuiComponents.HelpMarker(Localization.Config_Traps_HideImpossible_ToolTip);
|
||||||
ImGui.EndDisabled();
|
ImGui.EndDisabled();
|
||||||
ImGui.Unindent();
|
ImGui.Unindent();
|
||||||
|
ImGui.PopID();
|
||||||
|
|
||||||
ImGui.Separator();
|
ImGui.Separator();
|
||||||
|
|
||||||
|
ImGui.PushID("hoard");
|
||||||
ImGui.Checkbox(Localization.Config_HoardCoffers_Show, ref _hoardConfig.Show);
|
ImGui.Checkbox(Localization.Config_HoardCoffers_Show, ref _hoardConfig.Show);
|
||||||
ImGui.Indent();
|
ImGui.Indent();
|
||||||
ImGui.BeginDisabled(!_hoardConfig.Show);
|
ImGui.BeginDisabled(!_hoardConfig.Show);
|
||||||
|
@ -199,9 +205,11 @@ namespace Pal.Client.Windows
|
||||||
ImGuiComponents.HelpMarker(Localization.Config_HoardCoffers_HideImpossible_ToolTip);
|
ImGuiComponents.HelpMarker(Localization.Config_HoardCoffers_HideImpossible_ToolTip);
|
||||||
ImGui.EndDisabled();
|
ImGui.EndDisabled();
|
||||||
ImGui.Unindent();
|
ImGui.Unindent();
|
||||||
|
ImGui.PopID();
|
||||||
|
|
||||||
ImGui.Separator();
|
ImGui.Separator();
|
||||||
|
|
||||||
|
ImGui.PushID("silver");
|
||||||
ImGui.Checkbox(Localization.Config_SilverCoffer_Show, ref _silverConfig.Show);
|
ImGui.Checkbox(Localization.Config_SilverCoffer_Show, ref _silverConfig.Show);
|
||||||
ImGuiComponents.HelpMarker(Localization.Config_SilverCoffers_ToolTip);
|
ImGuiComponents.HelpMarker(Localization.Config_SilverCoffers_ToolTip);
|
||||||
ImGui.Indent();
|
ImGui.Indent();
|
||||||
|
@ -212,6 +220,22 @@ namespace Pal.Client.Windows
|
||||||
ImGui.Checkbox(Localization.Config_SilverCoffer_Filled, ref _silverConfig.Fill);
|
ImGui.Checkbox(Localization.Config_SilverCoffer_Filled, ref _silverConfig.Fill);
|
||||||
ImGui.EndDisabled();
|
ImGui.EndDisabled();
|
||||||
ImGui.Unindent();
|
ImGui.Unindent();
|
||||||
|
ImGui.PopID();
|
||||||
|
|
||||||
|
ImGui.Separator();
|
||||||
|
|
||||||
|
ImGui.PushID("gold");
|
||||||
|
ImGui.Checkbox(Localization.Config_GoldCoffer_Show, ref _goldConfig.Show);
|
||||||
|
ImGuiComponents.HelpMarker(Localization.Config_GoldCoffers_ToolTip);
|
||||||
|
ImGui.Indent();
|
||||||
|
ImGui.BeginDisabled(!_goldConfig.Show);
|
||||||
|
ImGui.Spacing();
|
||||||
|
ImGui.ColorEdit4(Localization.Config_GoldCoffer_Color, ref _goldConfig.Color,
|
||||||
|
ImGuiColorEditFlags.NoInputs);
|
||||||
|
ImGui.Checkbox(Localization.Config_GoldCoffer_Filled, ref _goldConfig.Fill);
|
||||||
|
ImGui.EndDisabled();
|
||||||
|
ImGui.Unindent();
|
||||||
|
ImGui.PopID();
|
||||||
|
|
||||||
ImGui.Separator();
|
ImGui.Separator();
|
||||||
|
|
||||||
|
@ -408,6 +432,15 @@ namespace Pal.Client.Windows
|
||||||
$"{silverCoffers} silver coffer{(silverCoffers == 1 ? "" : "s")} visible on current floor");
|
$"{silverCoffers} silver coffer{(silverCoffers == 1 ? "" : "s")} visible on current floor");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (_goldConfig.Show)
|
||||||
|
{
|
||||||
|
int goldCoffers =
|
||||||
|
_floorService.EphemeralLocations.Count(x =>
|
||||||
|
x.Type == MemoryLocation.EType.GoldCoffer);
|
||||||
|
ImGui.Text(
|
||||||
|
$"{goldCoffers} silver coffer{(goldCoffers == 1 ? "" : "s")} visible on current floor");
|
||||||
|
}
|
||||||
|
|
||||||
ImGui.Text($"Pomander of Sight: {_territoryState.PomanderOfSight}");
|
ImGui.Text($"Pomander of Sight: {_territoryState.PomanderOfSight}");
|
||||||
ImGui.Text($"Pomander of Intuition: {_territoryState.PomanderOfIntuition}");
|
ImGui.Text($"Pomander of Intuition: {_territoryState.PomanderOfIntuition}");
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue