Разное (#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:
@@ -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))
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -24,7 +24,7 @@ public sealed class AmaterasuSystem : EntitySystem
|
||||
|
||||
if (flammable.OnFire)
|
||||
{
|
||||
_bodySystem.GibBody(uid);
|
||||
_bodySystem.GibBody(uid, true);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user