Refactor magic speak system to be a component added to actions (#36328)
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user