mirror of
https://github.com/DeltaV-Station/Delta-v.git
synced 2026-10-01 16:47:26 +00:00
* 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>
58 lines
2.1 KiB
C#
58 lines
2.1 KiB
C#
using Content.Shared.Revenant.EntitySystems;
|
|
using Content.Shared.Revenant.Components;
|
|
using Content.Shared.Physics;
|
|
using Robust.Shared.Physics.Systems;
|
|
using Robust.Shared.Physics.Collision.Shapes;
|
|
using Robust.Shared.Physics;
|
|
using Robust.Shared.Physics.Components; // DeltaV
|
|
|
|
namespace Content.Server.Revenant.EntitySystems;
|
|
|
|
public sealed partial class RevealRevenantOnCollideSystem : SharedRevealRevenantOnCollideSystem
|
|
{
|
|
[Dependency] private readonly FixtureSystem _fixtures = default!;
|
|
[Dependency] private readonly CollisionWakeSystem _collisionWake = default!;
|
|
|
|
private const string FixtureId = "revenantReveal";
|
|
|
|
public override void Initialize()
|
|
{
|
|
base.Initialize();
|
|
|
|
SubscribeLocalEvent<RevealRevenantOnCollideComponent, ComponentStartup>(MapInitEvent);
|
|
SubscribeLocalEvent<RevealRevenantOnCollideComponent, ComponentShutdown>(OnShutdown);
|
|
}
|
|
|
|
private IPhysShape GetOrCreateShape(EntityUid uid, FixturesComponent? fixtures = null)
|
|
{
|
|
if (Resolve(uid, ref fixtures))
|
|
if (fixtures.Fixtures.TryGetValue("fix1", out var fix))
|
|
return fix.Shape;
|
|
|
|
return new PhysShapeCircle(0.35f);
|
|
}
|
|
|
|
private void MapInitEvent(EntityUid uid, RevealRevenantOnCollideComponent comp, ComponentStartup args)
|
|
{
|
|
var fixtures = EnsureComp<FixturesComponent>(uid);
|
|
EnsureComp<PhysicsComponent>(uid);
|
|
_fixtures.TryCreateFixture(uid,
|
|
GetOrCreateShape(uid, fixtures),
|
|
FixtureId,
|
|
hard: false,
|
|
collisionMask: (int)CollisionGroup.GhostImpassable,
|
|
collisionLayer: (int)CollisionGroup.GhostImpassable,
|
|
manager: fixtures
|
|
);
|
|
|
|
// Disable collision wake so that it can trigger collisions even when sitting still
|
|
var collisionWake = EnsureComp<CollisionWakeComponent>(uid);
|
|
_collisionWake.SetEnabled(uid, false, collisionWake);
|
|
}
|
|
|
|
private void OnShutdown(EntityUid uid, RevealRevenantOnCollideComponent comp, ComponentShutdown args)
|
|
{
|
|
_fixtures.DestroyFixture(uid, FixtureId);
|
|
}
|
|
}
|