Fixes mostly (#292)
* - fix: Fix animals standing. * - fix: Stuff drop from hands on stun or death even if lying. * - tweak: Tentacle gun no longer stuns. * - fix: Space cleaner now evaporates. * - remove: No crew monitor objective. * - fix: Fix time beacon. * - tweak: Revert neuro implant buff. * - tweak: Nerf dagger. * - fix: Fix void adaptation not working.
This commit is contained in:
@@ -264,6 +264,17 @@ public sealed partial class StoreSystem
|
||||
RaiseLocalEvent(buyer, listing.ProductEvent);
|
||||
}
|
||||
|
||||
// WD START
|
||||
foreach (var name in listing.Components)
|
||||
{
|
||||
if (EntityManager.HasComponent(buyer, EntityManager.ComponentFactory.GetRegistration(name).Type))
|
||||
continue;
|
||||
|
||||
var newComp = (Component) EntityManager.ComponentFactory.GetComponent(name);
|
||||
EntityManager.AddComponent(buyer, newComp);
|
||||
}
|
||||
// WD END
|
||||
|
||||
//log dat shit.
|
||||
_admin.Add(LogType.StorePurchase, LogImpact.Low,
|
||||
$"{ToPrettyString(buyer):player} purchased listing \"{ListingLocalisationHelpers.GetLocalisedNameOrEntityName(listing, _prototypeManager)}\" from {ToPrettyString(uid)}");
|
||||
|
||||
@@ -4,11 +4,11 @@ namespace Content.Server._White.Other.CritSystem;
|
||||
public sealed partial class BloodLustComponent : Component
|
||||
{
|
||||
[ViewVariables(VVAccess.ReadWrite)]
|
||||
public float SprintModifier = 1.4f;
|
||||
public float SprintModifier = 1.2f;
|
||||
|
||||
[ViewVariables(VVAccess.ReadWrite)]
|
||||
public float WalkModifier = 1.3f;
|
||||
public float WalkModifier = 1.2f;
|
||||
|
||||
[ViewVariables(VVAccess.ReadWrite)]
|
||||
public float AttackRateModifier = 1.5f;
|
||||
public float AttackRateModifier = 1.3f;
|
||||
}
|
||||
|
||||
@@ -95,25 +95,41 @@ public sealed class CritSystem : EntitySystem
|
||||
return;
|
||||
|
||||
var ohio = 0;
|
||||
var absorbed = 0;
|
||||
|
||||
if (component.IsBloodDagger)
|
||||
{
|
||||
var bruteGroup = _prototypeManager.Index<DamageGroupPrototype>("Brute");
|
||||
var burnGroup = _prototypeManager.Index<DamageGroupPrototype>("Burn");
|
||||
var airlossGroup = _prototypeManager.Index<DamageGroupPrototype>("Airloss");
|
||||
|
||||
ohio = _random.Next(1, 21);
|
||||
|
||||
if (args.Direction != null) // Heavy attack
|
||||
ohio = (int) MathF.Round(ohio * 0.7f);
|
||||
|
||||
foreach (var target in args.HitEntities)
|
||||
{
|
||||
if (!TryComp(target, out BloodstreamComponent? bloodstream))
|
||||
continue;
|
||||
|
||||
var blood = bloodstream.BloodSolution;
|
||||
|
||||
if (blood == null)
|
||||
continue;
|
||||
|
||||
var bloodLevel = blood.Value.Comp.Solution.Volume.Int();
|
||||
|
||||
if (!_bloodstream.TryModifyBloodLevel(target, -ohio, bloodstream, false))
|
||||
continue;
|
||||
|
||||
_bloodstream.TryModifyBloodLevel(args.User, ohio);
|
||||
_damageableSystem.TryChangeDamage(args.User, new DamageSpecifier(bruteGroup, -ohio));
|
||||
_damageableSystem.TryChangeDamage(args.User, new DamageSpecifier(burnGroup, -ohio));
|
||||
var toHeal = Math.Min(ohio, bloodLevel);
|
||||
|
||||
absorbed += toHeal;
|
||||
_bloodstream.TryModifyBloodLevel(args.User, toHeal);
|
||||
_damageableSystem.TryChangeDamage(args.User, new DamageSpecifier(bruteGroup, -toHeal));
|
||||
_damageableSystem.TryChangeDamage(args.User, new DamageSpecifier(burnGroup, -toHeal));
|
||||
_damageableSystem.TryChangeDamage(args.User, new DamageSpecifier(airlossGroup, -toHeal));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -122,7 +138,9 @@ public sealed class CritSystem : EntitySystem
|
||||
args.BonusDamage = new DamageSpecifier(_prototypeManager.Index<DamageTypePrototype>("Slash"),
|
||||
damage - args.BaseDamage.GetTotal());
|
||||
|
||||
_popup.PopupEntity($"Crit! {damage}", args.User, args.User, PopupType.MediumCaution);
|
||||
var extra = component.IsBloodDagger ? $" Высосано крови: {absorbed}" : "";
|
||||
|
||||
_popup.PopupEntity($"Crit! {damage}" + extra, args.User, args.User, PopupType.MediumCaution);
|
||||
}
|
||||
|
||||
private bool IsCriticalHit(CritComponent component)
|
||||
|
||||
@@ -6,6 +6,7 @@ using Content.Shared.Movement.Pulling.Systems;
|
||||
using Content.Shared.Popups;
|
||||
using Robust.Server.Audio;
|
||||
using Robust.Server.GameObjects;
|
||||
using Robust.Shared.Map;
|
||||
using Robust.Shared.Timing;
|
||||
|
||||
namespace Content.Server._White.TimeBeacon;
|
||||
@@ -13,6 +14,7 @@ namespace Content.Server._White.TimeBeacon;
|
||||
public sealed class TimeBeaconSystem : EntitySystem
|
||||
{
|
||||
[Dependency] private readonly IGameTiming _timing = default!;
|
||||
[Dependency] private readonly IMapManager _mapManager = default!;
|
||||
[Dependency] private readonly PopupSystem _popup = default!;
|
||||
[Dependency] private readonly AudioSystem _audio = default!;
|
||||
[Dependency] private readonly TransformSystem _transform = default!;
|
||||
@@ -42,7 +44,8 @@ public sealed class TimeBeaconSystem : EntitySystem
|
||||
if (!TryComp(ent, out TransformComponent? xform) || !TryComp(entity, out TransformComponent? entXform))
|
||||
return;
|
||||
|
||||
if (xform.MapID != entXform.MapID)
|
||||
// If entity polymorphed or something
|
||||
if (_mapManager.IsMapPaused(entXform.MapID))
|
||||
return;
|
||||
|
||||
// break pulls before portal enter so we dont break shit
|
||||
|
||||
Reference in New Issue
Block a user