- Add gravestone management with max stack and lifetime settings - Introduce new commands for grave interactions in scenarios - Update Lore handling to include gravestone context and details - Refactor death cause formatting for improved readability - Increment version to 0.28.11 in mod.json
62 lines
1.3 KiB
C#
62 lines
1.3 KiB
C#
using UnityEngine;
|
|
|
|
namespace IdleSpectator;
|
|
|
|
/// <summary>
|
|
/// Shared dismiss for skull-opened Lore + paused dossier pin.
|
|
/// </summary>
|
|
public static class InspectUi
|
|
{
|
|
/// <summary>True after a skull open until <see cref="DismissAll"/>.</summary>
|
|
public static bool GraveSessionActive { get; private set; }
|
|
|
|
public static void MarkGraveSession()
|
|
{
|
|
GraveSessionActive = true;
|
|
}
|
|
|
|
public static void DismissAll()
|
|
{
|
|
GraveSessionActive = false;
|
|
ChronicleHud.ClearGraveStackScope();
|
|
if (ChronicleHud.DetailUnitId != 0)
|
|
{
|
|
ChronicleHud.ClearUnitDetail();
|
|
}
|
|
|
|
if (ChronicleHud.Visible)
|
|
{
|
|
ChronicleHud.SetVisible(false);
|
|
}
|
|
|
|
WatchCaption.ClearPausePin();
|
|
WatchCaption.ClearStatusBanner();
|
|
}
|
|
|
|
public static void Update()
|
|
{
|
|
if (!GraveSessionActive)
|
|
{
|
|
return;
|
|
}
|
|
|
|
if (!InputHelpers.GetMouseButtonDown(0))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if (Time.unscaledTime < ChronicleHud.IgnoreDismissUntil)
|
|
{
|
|
return;
|
|
}
|
|
|
|
if (ChronicleHud.IsPointerOverPanel()
|
|
|| WatchCaption.IsPointerOverPanel())
|
|
{
|
|
return;
|
|
}
|
|
|
|
// Click outside Lore / dossier closes the skull inspect session.
|
|
DismissAll();
|
|
}
|
|
}
|