Разное (#385)

* - add: Meatspike changes.

* - fix: Fix socks.

* - remove: No light status.

* - tweak: Raptor tweak.

* - fix: Fix exception.

* - remove: Remove unsexed.

* - tweak: Crossbow tweak.

* - add: More meatspike.

* - tweak: Nerf buff rune.

* - tweak: No throwing during incorporeal.

* - add: Incorporeal magic cooldown.
This commit is contained in:
Aviu00
2024-06-26 11:56:29 +00:00
committed by GitHub
parent afa3325f60
commit 649ded64d6
21 changed files with 91 additions and 64 deletions

View File

@@ -12,6 +12,7 @@ using Content.Shared.Physics;
using Content.Shared.StatusEffect;
using Content.Shared._White.Cult;
using Content.Shared._White.Cult.Components;
using Content.Shared.Throwing;
namespace Content.Server._White.Cult.Runes.Systems;
@@ -34,6 +35,7 @@ public partial class CultSystem
SubscribeLocalEvent<WraithPhaseActionEvent>(OnWraithPhase);
SubscribeLocalEvent<IncorporealComponent, AttackAttemptEvent>(OnAttackAttempt);
SubscribeLocalEvent<IncorporealComponent, ThrowAttemptEvent>(OnThrowAttempt);
SubscribeLocalEvent<JuggernautCreateWallActionEvent>(OnJuggernautCreateWall);
@@ -163,6 +165,14 @@ public partial class CultSystem
}
}
private void OnThrowAttempt(Entity<IncorporealComponent> ent, ref ThrowAttemptEvent args)
{
if (_statusEffectsSystem.HasStatusEffect(args.Uid, "Incorporeal"))
{
_statusEffectsSystem.TryRemoveStatusEffect(args.Uid, "Incorporeal");
}
}
private void OnJuggernautCreateWall(JuggernautCreateWallActionEvent ev)
{
if (!TrySpawnWall(ev.Performer, ev.WallPrototypeId))

View File

@@ -1,20 +1,25 @@
using System.Linq;
using Content.Server.Actions;
using Content.Shared._White.Wizard.Magic;
using Content.Shared.Actions;
using Content.Shared.Eye;
using Content.Shared.Movement.Pulling.Components;
using Content.Shared.Movement.Pulling.Systems;
using Content.Shared.Movement.Systems;
using Content.Shared.Physics;
using Content.Shared.Stealth;
using Content.Shared.Stealth.Components;
using Robust.Server.GameObjects;
using Robust.Shared.Physics;
using Robust.Shared.Physics.Systems;
using Robust.Shared.Timing;
namespace Content.Server._White.IncorporealSystem;
public sealed class IncorporealSystem : EntitySystem
{
[Dependency] private readonly IGameTiming _timing = default!;
[Dependency] private readonly MovementSpeedModifierSystem _movement = default!;
[Dependency] private readonly ActionsSystem _actions = default!;
[Dependency] private readonly SharedPhysicsSystem _physics = default!;
[Dependency] private readonly VisibilitySystem _visibilitySystem = default!;
[Dependency] private readonly SharedStealthSystem _stealth = default!;
@@ -78,6 +83,21 @@ public sealed class IncorporealSystem : EntitySystem
_stealth.SetVisibility(uid, 1);
RemComp<StealthComponent>(uid);
_movement.RefreshMovementSpeedModifiers(uid);
if (!TryComp(uid, out ActionsContainerComponent? container))
return;
var cooldown = TimeSpan.FromSeconds(3);
foreach (var action in container.Container.ContainedEntities.Where(HasComp<MagicComponent>))
{
if (!_actions.TryGetActionData(action, out var comp, false))
continue;
if (comp.Cooldown.HasValue && comp.Cooldown.Value.End >= _timing.CurTime + cooldown)
continue;
_actions.SetCooldown(action, cooldown);
}
}
private void OnRefresh(EntityUid uid, IncorporealComponent component, RefreshMovementSpeedModifiersEvent args)

View File

@@ -24,7 +24,7 @@ public sealed class AmaterasuSystem : EntitySystem
if (flammable.OnFire)
{
_bodySystem.GibBody(uid);
_bodySystem.GibBody(uid, true);
return;
}