mirror of
https://github.com/WWhiteDreamProject/wwdpublic.git
synced 2026-04-17 21:48:58 +03:00
* I hate it * Added ability to choose target body part on item throwing * забыл * WeaponRandom works with throwable weapon * RadialEntityMorph & RadialBUI fix * ru&en localization * Я себя зарежу нахуй за такое * Правки рисованной хуйни и прототипы с лодаутами * fuck * ну хорошо блять, убедил, одну пустую строчку уберу * loadout move to _White * Я после тех 3х банок не помню нахуй это нужно было * 1 more fix
55 lines
1.5 KiB
C#
55 lines
1.5 KiB
C#
using Content.Shared.Item.ItemToggle.Components;
|
|
using Content.Shared.Mobs.Components;
|
|
using Content.Shared.Standing;
|
|
using Content.Shared.Weapons.Melee.Events;
|
|
using Robust.Shared.Serialization;
|
|
using Robust.Shared.Timing;
|
|
|
|
namespace Content.Shared._White.Animations;
|
|
|
|
public abstract class SharedFlipOnHitSystem : EntitySystem
|
|
{
|
|
[Dependency] private readonly IGameTiming _timing = default!;
|
|
[Dependency] private readonly StandingStateSystem _standingState = default!;
|
|
|
|
public override void Initialize()
|
|
{
|
|
base.Initialize();
|
|
|
|
SubscribeLocalEvent<FlipOnHitComponent, MeleeHitEvent>(OnHit);
|
|
}
|
|
|
|
private void OnHit(Entity<FlipOnHitComponent> ent, ref MeleeHitEvent args)
|
|
{
|
|
if (!_timing.IsFirstTimePredicted)
|
|
return;
|
|
|
|
if (args.HitEntities.Count == 0)
|
|
return;
|
|
|
|
if (TryComp(ent, out ItemToggleComponent? itemToggle) && !itemToggle.Activated)
|
|
return;
|
|
|
|
var target = ent.Comp.ApplyToSelf
|
|
? args.User
|
|
: args.HitEntities[0];
|
|
|
|
if (_standingState.IsDown(args.User))
|
|
return;
|
|
|
|
if (!HasComp<MobStateComponent>(target))
|
|
return;
|
|
|
|
PlayAnimation(args.User, target);
|
|
}
|
|
|
|
protected abstract void PlayAnimation(EntityUid user, EntityUid target);
|
|
}
|
|
|
|
[Serializable, NetSerializable]
|
|
public sealed class FlipOnHitEvent(NetEntity user, NetEntity target) : EntityEventArgs
|
|
{
|
|
public NetEntity User = user;
|
|
public NetEntity Target = target;
|
|
}
|