Files
Delta-v/Content.Client/_Impstation/Revenant/RevenantAnimatedSystem.cs
T
39a2b652a6 Add 3 abilities to revenant, salt weaknesses, and evil bible interaction (#3063)
* Added the blood writing ability to revenants

(cherry picked from commit 8157d155e1f7a3840992b54475c59031d2a75f25)

* Added the revenant Animate action

(cherry picked from commit 1b53520849a60538598cae641c6e598b1a5d7534)

* Added Animate action sprite and fixed revenant action sprites being small

(cherry picked from commit 5c88ce9b21cf517023cd136ddb8aaa361f72fbfe)

* Revenants in stasis can now be crafted into sentient revenant plushies

Revenants in stasis can now talk

(cherry picked from commit af84083da6e17bb7671d9f00993dc6bcc0b0a583)

* Revenant plushies and ectoplasm now talk with their trapped revenant's name

(cherry picked from commit 855b25aeb7f29ed6ff2dcc0d4ab1e589ae7e2e16)

* Added a yml nerf option in case revenant is too powerful

(cherry picked from commit 6895a5ca929f32267dea1e326aee62302dc151b8)

* Added a yml nerf option in case revenant is too powerful

(cherry picked from commit 6895a5ca929f32267dea1e326aee62302dc151b8)

* Passing over salt ore now reveals revenants

(cherry picked from commit beea55885f98adc72e34751ba6f798bfadd8dd31)

* Salt puddles now reveal revenants

Hooray for EnsureTileReaction!

(cherry picked from commit b69304747e3b5aa867c5afd8917d2c170c65253e)

* Bibles now reveal revenants

Localization strings added

(cherry picked from commit 62f7ec604748697e5fecc942c4a5d14ff682c596)

* Added the revenant Haunt action

(cherry picked from commit fb692c4cab3f411c11a3004fa73f30122e0ff7f9)

* Haunt witnesses now have an icon over their head on the revenant's client

(cherry picked from commit 5d1b3c6b0af4508ebee7aa8738f7a5f3aa9e53ca)

* Slight revenant nerfs and an additional escape hatch

(cherry picked from commit 490e4c525b75b03502497bfa89827f915f6c7fb2)

* Fixed revenant speech name, and other fixes

This is a few changes clumped into one. I should've broken this one up, but I got overzealous.
- Revenant's ectoplasm now properly uses TransformSpeakerNameEvent
- Revenants crafted into plushies now use VoiceOverrideComponent instead of VoiceMaskComponent
- Plushies now have a custom speaking noise
- Moved Impstation-specific revenant code to the _Impstation subdirectory

(cherry picked from commit a5e0b0c9383e4011e69edc0592c8a4cf40b06402)

* Fixed revenant haunt witness sprite not disappearing

(cherry picked from commit 0c06d4a8f48f6eee324cd944dbcb1fce3258eb58)

* New artifact effectr: animate nearby items (like a revenant)

(cherry picked from commit 6ba1b4d8b313eda9e5ff82246ed7425e80287d0f)

* Revenant cleanups

* Revenant Fixes

* add audio

* haunt fixes

* salt fixes

* grinder gamer

* stasis

* cleanup and comments

* deltav ectoplasm

* clean up imp comment

* event weight and guidebook gaming

* catalog

* alert fix

* window nerf

* effectprobfake

* mapinit

* no braincells ops

Signed-off-by: Lyndomen <49795619+Lyndomen@users.noreply.github.com>

* add physics

* remove phyiscs

* add physics realer

* bible

---------

Signed-off-by: Lyndomen <49795619+Lyndomen@users.noreply.github.com>
Co-authored-by: TGRCDev <tgrc@tgrc.dev>
Co-authored-by: TheGrimbeeper <thegrimbeeper.11@gmail.com>
2025-03-19 16:15:29 +00:00

51 lines
1.6 KiB
C#

using Robust.Client.GameObjects;
using Robust.Shared.Map;
namespace Content.Client.Revenant;
public sealed class RevenantAnimatedSystem : EntitySystem
{
[Dependency] private readonly SharedPointLightSystem _lights = default!;
public override void Initialize()
{
base.Initialize();
SubscribeLocalEvent<RevenantAnimatedComponent, ComponentStartup>(OnStartup);
SubscribeLocalEvent<RevenantAnimatedComponent, ComponentShutdown>(OnShutdown);
}
public override void Update(float frameTime)
{
base.Update(frameTime);
var enumerator = EntityQueryEnumerator<RevenantAnimatedComponent>();
while (enumerator.MoveNext(out var uid, out var comp))
{
if (comp.LightOverlay == null)
continue;
comp.Accumulator += frameTime;
_lights.SetEnergy(comp.LightOverlay.Value.Owner, 2f * Math.Abs((float)Math.Sin(0.25 * Math.PI * comp.Accumulator)), comp.LightOverlay.Value.Comp);
}
}
private void OnStartup(EntityUid uid, RevenantAnimatedComponent comp, ComponentStartup args)
{
var lightEnt = Spawn(null, new EntityCoordinates(uid, 0, 0));
var light = AddComp<PointLightComponent>(lightEnt);
comp.LightOverlay = (lightEnt, light);
_lights.SetEnabled(lightEnt, true, light);
_lights.SetColor(lightEnt, comp.LightColor, light);
_lights.SetRadius(lightEnt, comp.LightRadius, light);
}
private void OnShutdown(EntityUid uid, RevenantAnimatedComponent comp, ComponentShutdown args)
{
if (comp.LightOverlay != null)
Del(comp.LightOverlay);
}
}