Spellblade update (#346)

* - tweak: Don't close eui too quickly.

* - add: Spellblade update.

* - fix: Cult teleport spell.
This commit is contained in:
Aviu00
2024-06-11 20:07:47 +00:00
committed by GitHub
parent ee41166fc0
commit 4d09ed9245
31 changed files with 583 additions and 65 deletions

View File

@@ -148,7 +148,7 @@ public partial class CultSystem
_bloodstreamSystem.TryModifyBloodLevel(uid, -5, bloodstream, createPuddle: false);
var eui = new TeleportSpellEui(args.Performer, args.Target);
var eui = new CultTeleportSpellEui(args.Performer, args.Target);
_euiManager.OpenEui(eui, actor.PlayerSession);
eui.StateDirty();

View File

@@ -631,6 +631,18 @@ public sealed partial class CultSystem : EntitySystem
}
private bool Teleport(EntityUid rune, EntityUid user, List<EntityUid>? victims = null)
{
if (!OpenTeleportUi(user, rune))
return false;
_entityManager.EnsureComponent<CultTeleportRuneProviderComponent>(user, out var providerComponent);
providerComponent.Targets = victims;
providerComponent.BaseRune = rune;
return true;
}
private bool OpenTeleportUi(EntityUid user, EntityUid? exceptRune = null)
{
var runesQuery = EntityQueryEnumerator<CultRuneTeleportComponent>();
var list = new List<int>();
@@ -641,7 +653,7 @@ public sealed partial class CultSystem : EntitySystem
if (teleportComponent.Label == null)
continue;
if (runeUid == rune)
if (runeUid == exceptRune)
continue;
if (!int.TryParse(runeUid.ToString(), out var intValue))
@@ -665,10 +677,6 @@ public sealed partial class CultSystem : EntitySystem
return false;
}
_entityManager.EnsureComponent<CultTeleportRuneProviderComponent>(user, out var providerComponent);
providerComponent.Targets = victims;
providerComponent.BaseRune = rune;
_ui.SetUiState(ui, new TeleportRunesListWindowBUIState(list, labels));
if (_ui.IsUiOpen(user, ui.UiKey))

View File

@@ -10,7 +10,7 @@ using Robust.Shared.Timing;
namespace Content.Server._White.Cult.UI;
public sealed class TeleportSpellEui : BaseEui
public sealed class CultTeleportSpellEui : BaseEui
{
[Dependency] private readonly EntityManager _entityManager = default!;
private readonly SharedTransformSystem _transformSystem;
@@ -22,7 +22,7 @@ public sealed class TeleportSpellEui : BaseEui
private bool _used;
public TeleportSpellEui(EntityUid performer, EntityUid target)
public CultTeleportSpellEui(EntityUid performer, EntityUid target)
{
IoCManager.InjectDependencies(this);
@@ -39,7 +39,7 @@ public sealed class TeleportSpellEui : BaseEui
public override EuiStateBase GetNewState()
{
var runesQuery = _entityManager.EntityQueryEnumerator<CultRuneTeleportComponent>();
var state = new TeleportSpellEuiState();
var state = new CultTeleportSpellEuiState();
while (runesQuery.MoveNext(out var runeUid, out var rune))
{
@@ -110,4 +110,4 @@ public sealed class TeleportSpellEui : BaseEui
_transformSystem.SetCoordinates(_target, runeTransform.Coordinates);
Close();
}
}
}