Refactor magic speak system to be a component added to actions (#36328)

This commit is contained in:
J
2025-05-04 18:34:19 +01:00
committed by GitHub
parent 81cbb31425
commit 7b352643d5
28 changed files with 115 additions and 115 deletions

View File

@@ -1,5 +1,4 @@
using System.Numerics;
using Content.Shared.Actions;
using Content.Shared.Body.Components;
using Content.Shared.Body.Systems;
using Content.Shared.Coordinates.Helpers;
@@ -141,7 +140,6 @@ public abstract class SharedMagicSystem : EntitySystem
SpawnSpellHelper(args.Prototype, position, args.Performer, preventCollide: args.PreventCollideWithCaster);
}
Speak(args);
args.Handled = true;
}
@@ -235,7 +233,6 @@ public abstract class SharedMagicSystem : EntitySystem
var targetMapCoords = args.Target;
WorldSpawnSpellHelper(args.Prototypes, targetMapCoords, args.Performer, args.Lifetime, args.Offset);
Speak(args);
args.Handled = true;
}
@@ -271,7 +268,6 @@ public abstract class SharedMagicSystem : EntitySystem
return;
ev.Handled = true;
Speak(ev);
var xform = Transform(ev.Performer);
var fromCoords = xform.Coordinates;
@@ -299,8 +295,6 @@ public abstract class SharedMagicSystem : EntitySystem
return;
ev.Handled = true;
if (ev.DoSpeech)
Speak(ev);
RemoveComponents(ev.Target, ev.ToRemove);
AddComponents(ev.Target, ev.ToAdd);
@@ -324,7 +318,6 @@ public abstract class SharedMagicSystem : EntitySystem
_transform.SetCoordinates(args.Performer, args.Target);
_transform.AttachToGridOrMap(args.Performer, transform);
Speak(args);
args.Handled = true;
}
@@ -334,7 +327,6 @@ public abstract class SharedMagicSystem : EntitySystem
return;
ev.Handled = true;
Speak(ev);
_transform.SwapPositions(ev.Performer, ev.Target);
}
@@ -392,7 +384,6 @@ public abstract class SharedMagicSystem : EntitySystem
return;
ev.Handled = true;
Speak(ev);
var direction = _transform.GetMapCoordinates(ev.Target, Transform(ev.Target)).Position - _transform.GetMapCoordinates(ev.Performer, Transform(ev.Performer)).Position;
var impulseVector = direction * 10000;
@@ -418,7 +409,6 @@ public abstract class SharedMagicSystem : EntitySystem
return;
args.Handled = true;
Speak(args);
var transform = Transform(args.Performer);
@@ -457,7 +447,6 @@ public abstract class SharedMagicSystem : EntitySystem
}
ev.Handled = true;
Speak(ev);
if (wand == null || !TryComp<BasicEntityAmmoProviderComponent>(wand, out var basicAmmoComp) || basicAmmoComp.Count == null)
return;
@@ -475,7 +464,6 @@ public abstract class SharedMagicSystem : EntitySystem
return;
ev.Handled = true;
Speak(ev);
var allHumans = _mind.GetAliveHumans();
@@ -509,7 +497,6 @@ public abstract class SharedMagicSystem : EntitySystem
return;
ev.Handled = true;
Speak(ev);
// Need performer mind, but target mind is unnecessary, such as taking over a NPC
// Need to get target mind before putting performer mind into their body if they have one
@@ -535,14 +522,4 @@ public abstract class SharedMagicSystem : EntitySystem
// End Spells
#endregion
// When any spell is cast it will raise this as an event, so then it can be played in server or something. At least until chat gets moved to shared
// TODO: Temp until chat is in shared
private void Speak(BaseActionEvent args)
{
if (args is not ISpeakSpell speak || string.IsNullOrWhiteSpace(speak.Speech))
return;
var ev = new SpeakSpellEvent(args.Performer, speak.Speech);
RaiseLocalEvent(ref ev);
}
}