Fix Telegnosis issue

This commit is contained in:
Sir Warock 2026-07-14 16:06:09 +02:00
parent b6a0bf8053
commit afc31d36a9
1 changed files with 11 additions and 11 deletions

View File

@ -21,9 +21,9 @@ public abstract class SharedTelegnosisPowerSystem : BasePsionicPowerSystem<Teleg
SubscribeLocalEvent<TelegnosticProjectionComponent, MindRemovedMessage>(OnMindRemoved);
SubscribeLocalEvent<TelegnosticProjectionComponent, InteractionAttemptEvent>(OnInteractionAttempt);
SubscribeLocalEvent<TelegnosticProjectionComponent, MindSwapLinkSeveredEvent>(OnLinkSevered);
SubscribeLocalEvent<TelegnosisPowerComponent, ShowSSDIndicatorEvent>(OnShowSSDIndicator);
SubscribeLocalEvent<TelegnosisPowerComponent, ExaminedEvent>(OnExamine);
SubscribeLocalEvent<TelegnosisPowerComponent, MindSwapLinkSeveredEvent>(OnLinkSevered);
}
private void OnMindRemoved(Entity<TelegnosticProjectionComponent> projection, ref MindRemovedMessage args)
@ -37,6 +37,16 @@ public abstract class SharedTelegnosisPowerSystem : BasePsionicPowerSystem<Teleg
args.Cancelled = true;
}
private void OnLinkSevered(Entity<TelegnosticProjectionComponent> victim, ref MindSwapLinkSeveredEvent args)
{
RemComp<PsionicallyInvisibleComponent>(victim);
RemComp<StealthComponent>(victim);
EnsureComp<SpeechComponent>(victim);
EnsureComp<DispellableComponent>(victim);
_metaData.SetEntityName(victim, Loc.GetString("telegnostic-trapped-entity-name"));
_metaData.SetEntityDescription(victim, Loc.GetString("telegnostic-trapped-entity-desc"));
}
private void OnShowSSDIndicator(Entity<TelegnosisPowerComponent> psionic, ref ShowSSDIndicatorEvent args)
{
if (!TryComp<MindSwappedReturnPowerComponent>(psionic, out var mindSwapped) || !HasComp<TelegnosticProjectionComponent>(mindSwapped.OriginalEntity))
@ -53,16 +63,6 @@ public abstract class SharedTelegnosisPowerSystem : BasePsionicPowerSystem<Teleg
args.PushMarkup($"[color=yellow]{Loc.GetString("telegnosis-power-ssd", ("ent", entity))}[/color]");
}
private void OnLinkSevered(Entity<TelegnosisPowerComponent> victim, ref MindSwapLinkSeveredEvent args)
{
RemComp<PsionicallyInvisibleComponent>(victim);
RemComp<StealthComponent>(victim);
EnsureComp<SpeechComponent>(victim);
EnsureComp<DispellableComponent>(victim);
_metaData.SetEntityName(victim, Loc.GetString("telegnostic-trapped-entity-name"));
_metaData.SetEntityDescription(victim, Loc.GetString("telegnostic-trapped-entity-desc"));
}
public EntityUid GetCasterProjection(Entity<TelegnosisPowerComponent> entity)
{
if (!TryComp<MindSwappedReturnPowerComponent>(entity, out var mindSwapped) ||