mirror of
https://github.com/space-syndicate/space-station-14.git
synced 2026-10-09 18:31:17 +03:00
* the great mindshield rework
* it just works :D
* glory to nyanotransen, I said with my very obviously fake mindshield.
* work on things to remove manual mindshield queries
* very wip impl
* yeah there we go apc destroyed mission accomplished
* some comments
* textures!
* i will stab the person who decided to spell it differently.
* rename things since i am crazy (i was also crazy once)
* minor spelling mistake :(
* Revert "minor spelling mistake :("
This reverts commit ece1f1c3509063d1c43b7f136509ed4df2cd62e7.
* Revert "rename things since i am crazy (i was also crazy once)"
This reverts commit e75411d4bb84e819ca525b9fa0fe1792b6ace0b6.
* Revert "i will stab the person who decided to spell it differently."
This reverts commit 696ffdc062094cc9e4cf382f1e39b4ae4e3d781d.
* fixed things + better texs
* aaaa
* INSANITY RAHHHHH
* e
* changing things a bit.
* testifying things actually no insanity
* cleaning
* only doing this cuz of heseintests failing
* cleanup
* Update Content.Server/Revolutionary/RevolutionarySystem.cs
Co-authored-by: ScarKy0 <106310278+ScarKy0@users.noreply.github.com>
* Apply suggestions from code review
fucking suggestions WHY IS THE BUTTON THERE EVEN WHEN ITS DISABLED!!!!
Co-authored-by: ScarKy0 <106310278+ScarKy0@users.noreply.github.com>
* half of things for scarky0
* event merging stub / beginning
* big rewrite
* there ya go scar
* e
* NETWORK YOU PRICK
* Update Content.Shared/Mindshield/SharedMindShieldSystem.cs
Co-authored-by: ScarKy0 <106310278+ScarKy0@users.noreply.github.com>
* Update Content.Shared/Mindshield/SharedMindShieldSystem.cs
Co-authored-by: ScarKy0 <106310278+ScarKy0@users.noreply.github.com>
* Update Content.Server/Revolutionary/RevolutionarySystem.cs
Co-authored-by: ScarKy0 <106310278+ScarKy0@users.noreply.github.com>
* Update Content.Shared/Mindshield/FakeMindshieldSystem.cs
Co-authored-by: ScarKy0 <106310278+ScarKy0@users.noreply.github.com>
* e
* RAHHHH
* cleaning
* Update changeling.yml
* Update meta.json
* slarti 1/3
* slarti things 2
* le real fix
* commit & push
* Update Content.Client/Overlays/ShowMindShieldIconsSystem.cs
Co-authored-by: ScarKy0 <106310278+ScarKy0@users.noreply.github.com>
* Update Content.Server/Implants/MindshieldImplantSystem.cs
Co-authored-by: ScarKy0 <106310278+ScarKy0@users.noreply.github.com>
* Update Content.Shared/Mindshield/SharedMindShieldSystem.cs
Co-authored-by: ScarKy0 <106310278+ScarKy0@users.noreply.github.com>
* Update Content.Shared/Mindshield/FakeMindshieldSystem.cs
Co-authored-by: ScarKy0 <106310278+ScarKy0@users.noreply.github.com>
* Update Content.Shared/Mindshield/Components/MindShieldStatusComponent.cs
Co-authored-by: ScarKy0 <106310278+ScarKy0@users.noreply.github.com>
* scarky0
* dirty
* fml
* robust thyself now
* minor fix
* stub
* Revert "stub"
This reverts commit c1204b88d3ae1bbdca2deeb075a9dd0d6c529326.
* s
* jrwebiwerhweir
* shrimple fix
* Apply suggestions from code review
Co-authored-by: ScarKy0 <106310278+ScarKy0@users.noreply.github.com>
* yeeeuuuwhqeheueuuu
* rweifohgeterwt
* cleaning, compiling
* container bs and icons
* werewrewr
* fix
* crisis averted
* howd i forget this
* leave me ALONE
---------
Co-authored-by: nomdéraisonnablementlong <you@example.com>
Co-authored-by: ScarKy0 <106310278+ScarKy0@users.noreply.github.com>
Co-authored-by: ScarKy0 <scarky0@onet.eu>
Co-authored-by: Pok245 <113675512+Pok27@users.noreply.github.com>
105 lines
3.7 KiB
C#
105 lines
3.7 KiB
C#
using Content.Shared.Revolutionary.Components;
|
|
using Robust.Shared.GameStates;
|
|
using Robust.Shared.Player;
|
|
using Content.Shared.Antag;
|
|
using Content.Shared.StatusIcon.Components;
|
|
|
|
namespace Content.Shared.Revolutionary;
|
|
|
|
public sealed partial class RevolutionarySystem : EntitySystem
|
|
{
|
|
public override void Initialize()
|
|
{
|
|
base.Initialize();
|
|
|
|
SubscribeLocalEvent<RevolutionaryComponent, ComponentStartup>(DirtyRevComps);
|
|
SubscribeLocalEvent<HeadRevolutionaryComponent, ComponentStartup>(DirtyRevComps);
|
|
SubscribeLocalEvent<ShowAntagIconsComponent, ComponentStartup>(DirtyRevComps);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Determines if a HeadRev component should be sent to the client.
|
|
/// </summary>
|
|
[SubscribeLocalEvent]
|
|
private void OnRevCompGetStateAttempt(EntityUid uid, HeadRevolutionaryComponent comp, ref ComponentGetStateAttemptEvent args)
|
|
{
|
|
args.Cancelled = !CanGetState(args.Player);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Determines if a Rev component should be sent to the client.
|
|
/// </summary>
|
|
[SubscribeLocalEvent]
|
|
private void OnRevCompGetStateAttempt(EntityUid uid, RevolutionaryComponent comp, ref ComponentGetStateAttemptEvent args)
|
|
{
|
|
args.Cancelled = !CanGetState(args.Player);
|
|
}
|
|
|
|
/// <summary>
|
|
/// The criteria that determine whether a Rev/HeadRev component should be sent to a client.
|
|
/// </summary>
|
|
/// <param name="player"> The Player the component will be sent to.</param>
|
|
/// <returns></returns>
|
|
private bool CanGetState(ICommonSession? player)
|
|
{
|
|
//Apparently this can be null in replays so I am just returning true.
|
|
if (player?.AttachedEntity is not {} uid)
|
|
return true;
|
|
|
|
if (HasComp<RevolutionaryComponent>(uid) || HasComp<HeadRevolutionaryComponent>(uid))
|
|
return true;
|
|
|
|
return HasComp<ShowAntagIconsComponent>(uid);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Dirties all the Rev components so they are sent to clients.
|
|
///
|
|
/// We need to do this because if a rev component was not earlier sent to a client and for example the client
|
|
/// becomes a rev then we need to send all the components to it. To my knowledge there is no way to do this on a
|
|
/// per client basis so we are just dirtying all the components.
|
|
/// </summary>
|
|
private void DirtyRevComps<T>(EntityUid someUid, T someComp, ComponentStartup ev)
|
|
{
|
|
var revComps = AllEntityQuery<RevolutionaryComponent>();
|
|
while (revComps.MoveNext(out var uid, out var comp))
|
|
{
|
|
Dirty(uid, comp);
|
|
}
|
|
|
|
var headRevComps = AllEntityQuery<HeadRevolutionaryComponent>();
|
|
while (headRevComps.MoveNext(out var uid, out var comp))
|
|
{
|
|
Dirty(uid, comp);
|
|
}
|
|
}
|
|
|
|
[SubscribeLocalEvent]
|
|
private void OnAttemptConvert(Entity<RevolutionaryComponent> ent, ref AttemptConvertRevolutionaryEvent args)
|
|
{
|
|
args.Cancelled = true;
|
|
}
|
|
|
|
[SubscribeLocalEvent]
|
|
private void OnAttemptConvertImmune(Entity<RevolutionaryImmuneComponent> ent, ref AttemptConvertRevolutionaryEvent args)
|
|
{
|
|
args.Cancelled = true;
|
|
}
|
|
|
|
[SubscribeLocalEvent]
|
|
private void GetRevIcon(Entity<RevolutionaryComponent> ent, ref GetStatusIconsEvent args)
|
|
{
|
|
if (HasComp<HeadRevolutionaryComponent>(ent))
|
|
return;
|
|
|
|
if (ProtoMan.Resolve(ent.Comp.StatusIcon, out var iconPrototype))
|
|
args.StatusIcons.Add(iconPrototype);
|
|
}
|
|
|
|
[SubscribeLocalEvent]
|
|
private void GetHeadRevIcon(Entity<HeadRevolutionaryComponent> ent, ref GetStatusIconsEvent args)
|
|
{
|
|
if (ProtoMan.Resolve(ent.Comp.StatusIcon, out var iconPrototype))
|
|
args.StatusIcons.Add(iconPrototype);
|
|
}
|
|
}
|