From 030c3c8698ba32772841092ae4761ac586c37dfb Mon Sep 17 00:00:00 2001 From: Finket Date: Thu, 22 Feb 2024 14:10:09 +0200 Subject: [PATCH] Clean SetDarkened to Darkened and UnDarkened functions --- .../Systems/ShadowkinPowerSystem.DarkSwap.cs | 85 +++++++------------ 1 file changed, 32 insertions(+), 53 deletions(-) diff --git a/Content.Server/SimpleStation14/Species/Shadowkin/Systems/ShadowkinPowerSystem.DarkSwap.cs b/Content.Server/SimpleStation14/Species/Shadowkin/Systems/ShadowkinPowerSystem.DarkSwap.cs index 00e93c1e47..e681ec15de 100644 --- a/Content.Server/SimpleStation14/Species/Shadowkin/Systems/ShadowkinPowerSystem.DarkSwap.cs +++ b/Content.Server/SimpleStation14/Species/Shadowkin/Systems/ShadowkinPowerSystem.DarkSwap.cs @@ -79,43 +79,15 @@ private void DarkSwap(EntityUid uid, ShadowkinDarkSwapPowerComponent component, var hasComp = _entity.HasComponent(args.Performer); - SetDarkened( - performer, - !hasComp, - !hasComp, - !hasComp, - true, - args.StaminaCostOn, - args.PowerCostOn, - args.SoundOn, - args.VolumeOn, - args.StaminaCostOff, - args.PowerCostOff, - args.SoundOff, - args.VolumeOff, - args - ); + if (hasComp) + Darkened(performer, args.StaminaCostOff, args.PowerCostOff, args.SoundOff, args.VolumeOff, args); + else + UnDarkened(performer, args.StaminaCostOn, args.PowerCostOn, args.SoundOn, args.VolumeOn, args); _magic.Speak(args, false); } - - public void SetDarkened( - NetEntity performer, - bool addComp, - bool invisible, - bool pacify, - bool darken, - float staminaCostOn, - float powerCostOn, - SoundSpecifier soundOn, - float volumeOn, - float staminaCostOff, - float powerCostOff, - SoundSpecifier soundOff, - float volumeOff, - ShadowkinDarkSwapEvent? args - ) + public void Darkened(NetEntity performer, float staminaCostOff, float powerCostOff, SoundSpecifier soundOff, float volumeOff, ShadowkinDarkSwapEvent? args) { var performerUid = _entity.GetEntity(performer); @@ -124,36 +96,43 @@ public void SetDarkened( if (ev.Cancelled) return; - if (addComp) - { - var comp = _entity.EnsureComponent(performerUid); - comp.Invisible = invisible; - comp.Pacify = pacify; - comp.Darken = darken; + _entity.RemoveComponent(performerUid); + RaiseNetworkEvent(new ShadowkinDarkSwappedEvent(performer, false)); - RaiseNetworkEvent(new ShadowkinDarkSwappedEvent(performer, true)); + _audio.PlayPvs(soundOff, performerUid, AudioParams.Default.WithVolume(volumeOff)); - _audio.PlayPvs(soundOn, performerUid, AudioParams.Default.WithVolume(volumeOn)); + _power.TryAddPowerLevel(performerUid, -powerCostOff); + _stamina.TakeStaminaDamage(performerUid, staminaCostOff); - _power.TryAddPowerLevel(performerUid, -powerCostOn); - _stamina.TakeStaminaDamage(performerUid, staminaCostOn); - } - else - { - _entity.RemoveComponent(performerUid); - RaiseNetworkEvent(new ShadowkinDarkSwappedEvent(performer, false)); + if (args != null) + args.Handled = true; + } - _audio.PlayPvs(soundOff, performerUid, AudioParams.Default.WithVolume(volumeOff)); + public void UnDarkened(NetEntity performer, float staminaCostOn, float powerCostOn, SoundSpecifier soundOn, float volumeOn, ShadowkinDarkSwapEvent? args) + { + var performerUid = _entity.GetEntity(performer); - _power.TryAddPowerLevel(performerUid, -powerCostOff); - _stamina.TakeStaminaDamage(performerUid, staminaCostOff); - } + var ev = new ShadowkinDarkSwapAttemptEvent(performerUid); + RaiseLocalEvent(ev); + if (ev.Cancelled) + return; + + var comp = _entity.EnsureComponent(performerUid); + comp.Invisible = true; + comp.Pacify = true; + comp.Darken = true; + + RaiseNetworkEvent(new ShadowkinDarkSwappedEvent(performer, true)); + + _audio.PlayPvs(soundOn, performerUid, AudioParams.Default.WithVolume(volumeOn)); + + _power.TryAddPowerLevel(performerUid, -powerCostOn); + _stamina.TakeStaminaDamage(performerUid, staminaCostOn); if (args != null) args.Handled = true; } - private void OnInvisStartup(EntityUid uid, ShadowkinDarkSwappedComponent component, ComponentStartup args) { if (component.Pacify)