Neuro control implant (#253)

* - add: Neuro control implanter.

* - tweak: Less beanbag stamina damage.

* - tweak: No heat damage.
This commit is contained in:
Aviu00
2024-03-30 21:02:10 +09:00
committed by GitHub
parent 034a18b1d0
commit a2a5459a07
12 changed files with 111 additions and 5 deletions

View File

@@ -1,4 +1,5 @@
using Content.Server.Stunnable.Components;
using Content.Shared._White.Implants.NeuroControl;
using Content.Shared.Standing;
using Content.Shared.StatusEffect;
using JetBrains.Annotations;
@@ -12,6 +13,7 @@ namespace Content.Server.Stunnable
internal sealed class StunOnCollideSystem : EntitySystem
{
[Dependency] private readonly StunSystem _stunSystem = default!;
[Dependency] private readonly NeuroControlSystem _neuroControl = default!; // WD EDIT
public override void Initialize()
{
@@ -22,14 +24,32 @@ namespace Content.Server.Stunnable
private void TryDoCollideStun(EntityUid uid, StunOnCollideComponent component, EntityUid target)
{
// WD START
var neuroControlled = HasComp<NeuroControlComponent>(target);
var stunAmount = component.StunAmount;
var knockdownAmount = component.KnockdownAmount;
if (neuroControlled)
{
stunAmount = Math.Max(1, stunAmount / 6);
knockdownAmount = Math.Max(1, knockdownAmount / 6);
}
// WD END
if (EntityManager.TryGetComponent<StatusEffectsComponent>(target, out var status))
{
_stunSystem.TryStun(target, TimeSpan.FromSeconds(component.StunAmount), true, status);
// WD EDIT START
_stunSystem.TryStun(target, TimeSpan.FromSeconds(stunAmount), true, status);
_stunSystem.TryKnockdown(target, TimeSpan.FromSeconds(component.KnockdownAmount), true,
_stunSystem.TryKnockdown(target, TimeSpan.FromSeconds(knockdownAmount), true,
status);
if (neuroControlled)
{
_neuroControl.Electrocute(target, component.StunAmount * 6, status);
return;
}
// WD EDIT END
_stunSystem.TrySlowdown(target, TimeSpan.FromSeconds(component.SlowdownAmount), true,
component.WalkSpeedMultiplier, component.RunSpeedMultiplier, status);
}