Increase disposal dragging delay for other people (#3086)
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
This commit is contained in:
@@ -80,9 +80,18 @@ namespace Content.Server.GameObjects.Components.Disposal
|
|||||||
[ViewVariables(VVAccess.ReadWrite)]
|
[ViewVariables(VVAccess.ReadWrite)]
|
||||||
private TimeSpan _flushDelay;
|
private TimeSpan _flushDelay;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Delay from trying to enter disposals ourselves.
|
||||||
|
/// </summary>
|
||||||
[ViewVariables(VVAccess.ReadWrite)]
|
[ViewVariables(VVAccess.ReadWrite)]
|
||||||
private float _entryDelay;
|
private float _entryDelay;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Delay from trying to shove someone else into disposals.
|
||||||
|
/// </summary>
|
||||||
|
[ViewVariables(VVAccess.ReadWrite)]
|
||||||
|
private float _draggedEntryDelay;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Token used to cancel the automatic engage of a disposal unit
|
/// Token used to cancel the automatic engage of a disposal unit
|
||||||
/// after an entity enters it.
|
/// after an entity enters it.
|
||||||
@@ -192,11 +201,15 @@ namespace Content.Server.GameObjects.Components.Disposal
|
|||||||
if (!CanInsert(entity))
|
if (!CanInsert(entity))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (user != null && _entryDelay > 0f)
|
var delay = user == entity ? _entryDelay : _draggedEntryDelay;
|
||||||
|
|
||||||
|
if (user != null && delay > 0.0f)
|
||||||
{
|
{
|
||||||
var doAfterSystem = EntitySystem.Get<DoAfterSystem>();
|
var doAfterSystem = EntitySystem.Get<DoAfterSystem>();
|
||||||
|
|
||||||
var doAfterArgs = new DoAfterEventArgs(user, _entryDelay, default, Owner)
|
// Can't check if our target AND disposals moves currently so we'll just check target.
|
||||||
|
// if you really want to check if disposals moves then add a predicate.
|
||||||
|
var doAfterArgs = new DoAfterEventArgs(user, delay, default, entity)
|
||||||
{
|
{
|
||||||
BreakOnDamage = true,
|
BreakOnDamage = true,
|
||||||
BreakOnStun = true,
|
BreakOnStun = true,
|
||||||
@@ -209,7 +222,6 @@ namespace Content.Server.GameObjects.Components.Disposal
|
|||||||
|
|
||||||
if (result == DoAfterStatus.Cancelled)
|
if (result == DoAfterStatus.Cancelled)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!_container.Insert(entity))
|
if (!_container.Insert(entity))
|
||||||
@@ -535,7 +547,8 @@ namespace Content.Server.GameObjects.Components.Disposal
|
|||||||
() => (int) _flushDelay.TotalSeconds);
|
() => (int) _flushDelay.TotalSeconds);
|
||||||
|
|
||||||
serializer.DataField(this, x => x.Air, "air", new GasMixture(Atmospherics.CellVolume));
|
serializer.DataField(this, x => x.Air, "air", new GasMixture(Atmospherics.CellVolume));
|
||||||
serializer.DataField(ref _entryDelay, "entryDelay", 0.5f);
|
serializer.DataField(ref _entryDelay, "entryDelay", 1.0f);
|
||||||
|
serializer.DataField(ref _draggedEntryDelay, "draggedEntryDelay", 3.0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Initialize()
|
public override void Initialize()
|
||||||
|
|||||||
Reference in New Issue
Block a user