[Tweak] Баланс да (#39)

* tweak: hardsuits size ginormous -> huge

* tweak: made common hardsuits slow less

* tweak: materails&coils are smaller

* tweak: AME parts in crate 9 ->18

* tweak: increase ame efficiency 10x

* Revert "tweak: increase ame efficiency 10x"

This reverts commit add91b3b42db78efd37c9a9099911803c72caf71.

* tweak: increased ame injection amount

* tweak: static storage disabled by default

* tweak: show loco above head disabled by default

* tweak: melee attacks system changed

* add: removed alt attack from stunbaton

* add: stamina damage on heavy attack

* tweak: reduced changeling gamerule chance

* tweak: reduced total armblade damage 40 -> 34. Added structural damage

* tweak: limited tentacle gun range

* fix: fixed windoors damagegroups

* fix: fix functions localization
This commit is contained in:
Remuchi
2024-02-11 21:16:07 +07:00
committed by GitHub
parent 3fee07c317
commit a38166ed0f
21 changed files with 144 additions and 105 deletions

View File

@@ -34,9 +34,28 @@ public abstract class SharedTentacleGun : EntitySystem
base.Initialize();
SubscribeLocalEvent<TentacleGunComponent, GunShotEvent>(OnTentacleShot);
SubscribeLocalEvent<TentacleProjectileComponent, MapInitEvent>(OnMapInit); // WD
SubscribeLocalEvent<TentacleProjectileComponent, ProjectileEmbedEvent>(OnTentacleCollide);
}
// WD EDIT START
private void OnMapInit(Entity<TentacleProjectileComponent> ent, ref MapInitEvent args)
{
if (ent.Comp.DespawnTime <= 0)
{
return;
}
_timerManager.AddTimer(new Timer(ent.Comp.DespawnTime, false, () =>
{
if (!ent.Comp.GrabbedUid.HasValue)
{
Del(ent.Owner);
}
}));
}
// WD EDIT END
private void OnTentacleShot(EntityUid uid, TentacleGunComponent component, ref GunShotEvent args)
{
foreach (var (shotUid, _) in args.Ammo)
@@ -90,6 +109,7 @@ public abstract class SharedTentacleGun : EntitySystem
{
DeleteProjectile(uid);
}));
component.GrabbedUid = args.Embedded;
break;
case SelectiveFire.PullItem:
PullItem(args);
@@ -117,7 +137,7 @@ public abstract class SharedTentacleGun : EntitySystem
private bool PullMob(ProjectileEmbedEvent args)
{
var stunTime = _random.Next(TimeSpan.FromSeconds(3), TimeSpan.FromSeconds(8));
var stunTime = _random.Next(TimeSpan.FromSeconds(2), TimeSpan.FromSeconds(5));
if (!_stunSystem.TryParalyze(args.Embedded, stunTime, true))
return false;

View File

@@ -2,8 +2,15 @@
namespace Content.Shared.Changeling;
[RegisterComponent, NetworkedComponent]
[RegisterComponent, NetworkedComponent, AutoGenerateComponentState]
public sealed partial class TentacleProjectileComponent : Component
{
/// <summary>
/// Time until projectile despawns in miliseconds.
/// </summary>
[DataField, AutoNetworkedField]
public int DespawnTime = -1;
[ViewVariables, AutoNetworkedField]
public EntityUid? GrabbedUid;
}