More DoAfter Changes (#14609)
* DoAfters * Compact Clone() * Fix mice and cuffables * Try generalize attempt events * moves climbabledoafter event to shared, fixes issue with climbable target * Fix merge (cuffing) * Make all events netserializable * handful of doafter events moved * moves the rest of the events to their respective shared folders * Changes all mentions of server doafter to shared * stop stripping cancellation * fix merge errors * draw paused doafters * handle unpausing * missing netserializable ref * removes break on stun reference * removes cuffing state reference * Fix tools * Fix door prying. * Fix construction * Fix dumping * Fix wielding assert * fix rev * Fix test * more test fixes --------- Co-authored-by: keronshb <keronshb@live.com>
This commit is contained in:
@@ -26,6 +26,7 @@ using Content.Shared.Mobs;
|
||||
using Content.Shared.Mobs.Components;
|
||||
using Content.Shared.Mobs.Systems;
|
||||
using Content.Shared.Revenant.Components;
|
||||
using Content.Shared.Revenant.EntitySystems;
|
||||
using Robust.Shared.Physics.Components;
|
||||
using Robust.Shared.Utility;
|
||||
|
||||
@@ -46,8 +47,8 @@ public sealed partial class RevenantSystem
|
||||
private void InitializeAbilities()
|
||||
{
|
||||
SubscribeLocalEvent<RevenantComponent, InteractNoHandEvent>(OnInteract);
|
||||
SubscribeLocalEvent<RevenantComponent, DoAfterEvent<SoulEvent>>(OnSoulSearch);
|
||||
SubscribeLocalEvent<RevenantComponent, DoAfterEvent<HarvestEvent>>(OnHarvest);
|
||||
SubscribeLocalEvent<RevenantComponent, SoulEvent>(OnSoulSearch);
|
||||
SubscribeLocalEvent<RevenantComponent, HarvestEvent>(OnHarvest);
|
||||
|
||||
SubscribeLocalEvent<RevenantComponent, RevenantDefileActionEvent>(OnDefileAction);
|
||||
SubscribeLocalEvent<RevenantComponent, RevenantOverloadLightsActionEvent>(OnOverloadLightsAction);
|
||||
@@ -84,17 +85,19 @@ public sealed partial class RevenantSystem
|
||||
|
||||
private void BeginSoulSearchDoAfter(EntityUid uid, EntityUid target, RevenantComponent revenant)
|
||||
{
|
||||
_popup.PopupEntity(Loc.GetString("revenant-soul-searching", ("target", target)), uid, uid, PopupType.Medium);
|
||||
var soulSearchEvent = new SoulEvent();
|
||||
var searchDoAfter = new DoAfterEventArgs(uid, revenant.SoulSearchDuration, target:target)
|
||||
var searchDoAfter = new DoAfterArgs(uid, revenant.SoulSearchDuration, new SoulEvent(), uid, target: target)
|
||||
{
|
||||
BreakOnUserMove = true,
|
||||
DistanceThreshold = 2
|
||||
};
|
||||
_doAfter.DoAfter(searchDoAfter, soulSearchEvent);
|
||||
|
||||
if (!_doAfter.TryStartDoAfter(searchDoAfter))
|
||||
return;
|
||||
|
||||
_popup.PopupEntity(Loc.GetString("revenant-soul-searching", ("target", target)), uid, uid, PopupType.Medium);
|
||||
}
|
||||
|
||||
private void OnSoulSearch(EntityUid uid, RevenantComponent component, DoAfterEvent<SoulEvent> args)
|
||||
private void OnSoulSearch(EntityUid uid, RevenantComponent component, SoulEvent args)
|
||||
{
|
||||
if (args.Handled || args.Cancelled)
|
||||
return;
|
||||
@@ -135,25 +138,25 @@ public sealed partial class RevenantSystem
|
||||
return;
|
||||
}
|
||||
|
||||
var harvestEvent = new HarvestEvent();
|
||||
|
||||
var doAfter = new DoAfterEventArgs(uid, revenant.HarvestDebuffs.X, target:target)
|
||||
var doAfter = new DoAfterArgs(uid, revenant.HarvestDebuffs.X, new HarvestEvent(), uid, target: target)
|
||||
{
|
||||
DistanceThreshold = 2,
|
||||
BreakOnUserMove = true,
|
||||
NeedHand = false
|
||||
RequireCanInteract = false, // stuns itself
|
||||
};
|
||||
|
||||
if (!_doAfter.TryStartDoAfter(doAfter))
|
||||
return;
|
||||
|
||||
_appearance.SetData(uid, RevenantVisuals.Harvesting, true);
|
||||
|
||||
_popup.PopupEntity(Loc.GetString("revenant-soul-begin-harvest", ("target", target)),
|
||||
target, PopupType.Large);
|
||||
|
||||
TryUseAbility(uid, revenant, 0, revenant.HarvestDebuffs);
|
||||
_doAfter.DoAfter(doAfter, harvestEvent);
|
||||
}
|
||||
|
||||
private void OnHarvest(EntityUid uid, RevenantComponent component, DoAfterEvent<HarvestEvent> args)
|
||||
private void OnHarvest(EntityUid uid, RevenantComponent component, HarvestEvent args)
|
||||
{
|
||||
if (args.Cancelled)
|
||||
{
|
||||
@@ -327,14 +330,4 @@ public sealed partial class RevenantSystem
|
||||
_emag.DoEmagEffect(ent, ent); //it emags itself. spooky.
|
||||
}
|
||||
}
|
||||
|
||||
private sealed class SoulEvent : EntityEventArgs
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
private sealed class HarvestEvent : EntityEventArgs
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,7 +3,6 @@ using Content.Shared.Popups;
|
||||
using Content.Shared.Alert;
|
||||
using Content.Shared.Damage;
|
||||
using Content.Shared.Interaction;
|
||||
using Content.Server.DoAfter;
|
||||
using Content.Server.GameTicking;
|
||||
using Content.Shared.Stunnable;
|
||||
using Content.Shared.Revenant;
|
||||
@@ -17,6 +16,7 @@ using Content.Shared.Actions.ActionTypes;
|
||||
using Content.Shared.Tag;
|
||||
using Content.Server.Store.Components;
|
||||
using Content.Server.Store.Systems;
|
||||
using Content.Shared.DoAfter;
|
||||
using Content.Shared.FixedPoint;
|
||||
using Content.Shared.Maps;
|
||||
using Content.Shared.Mobs.Systems;
|
||||
@@ -32,7 +32,7 @@ public sealed partial class RevenantSystem : EntitySystem
|
||||
[Dependency] private readonly ActionsSystem _action = default!;
|
||||
[Dependency] private readonly AlertsSystem _alerts = default!;
|
||||
[Dependency] private readonly DamageableSystem _damage = default!;
|
||||
[Dependency] private readonly DoAfterSystem _doAfter = default!;
|
||||
[Dependency] private readonly SharedDoAfterSystem _doAfter = default!;
|
||||
[Dependency] private readonly EntityLookupSystem _lookup = default!;
|
||||
[Dependency] private readonly MobStateSystem _mobState = default!;
|
||||
[Dependency] private readonly PhysicsSystem _physics = default!;
|
||||
|
||||
Reference in New Issue
Block a user