2024-01-27 15:19:52 +03:00
|
|
|
|
using System.Linq;
|
|
|
|
|
|
using Content.Client._White.Cult.UI.TeleportRunesList;
|
2024-01-28 17:32:55 +07:00
|
|
|
|
using Content.Client.Eui;
|
2024-01-27 15:19:52 +03:00
|
|
|
|
using Content.Shared.Eui;
|
2024-01-28 18:37:24 +07:00
|
|
|
|
using Content.Shared._White.Cult.UI;
|
2024-06-11 20:07:47 +00:00
|
|
|
|
using JetBrains.Annotations;
|
2024-01-27 15:19:52 +03:00
|
|
|
|
|
|
|
|
|
|
namespace Content.Client._White.Cult.UI.TeleportSpell;
|
|
|
|
|
|
|
2024-06-11 20:07:47 +00:00
|
|
|
|
[UsedImplicitly]
|
|
|
|
|
|
public sealed class CultTeleportSpellEui : BaseEui
|
2024-01-27 15:19:52 +03:00
|
|
|
|
{
|
2024-06-11 20:07:47 +00:00
|
|
|
|
private readonly TeleportRunesListWindow _window = new();
|
2024-01-27 15:19:52 +03:00
|
|
|
|
|
|
|
|
|
|
public override void Opened()
|
|
|
|
|
|
{
|
|
|
|
|
|
_window.OpenCentered();
|
2024-06-11 20:07:47 +00:00
|
|
|
|
_window.ItemSelected += (index, _) => SendMessage(new TeleportSpellTargetRuneSelected {RuneUid = index});
|
2024-01-27 15:19:52 +03:00
|
|
|
|
_window.OnClose += () => SendMessage(new CloseEuiMessage());
|
|
|
|
|
|
|
|
|
|
|
|
base.Opened();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override void Closed()
|
|
|
|
|
|
{
|
|
|
|
|
|
base.Closed();
|
|
|
|
|
|
_window.Close();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override void HandleState(EuiStateBase state)
|
|
|
|
|
|
{
|
2024-06-11 20:07:47 +00:00
|
|
|
|
if (state is not CultTeleportSpellEuiState cast)
|
|
|
|
|
|
return;
|
2024-01-27 15:19:52 +03:00
|
|
|
|
|
|
|
|
|
|
_window.Clear();
|
|
|
|
|
|
_window.PopulateList(cast.Runes.Keys.ToList(), cast.Runes.Values.ToList());
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|