if (component.Target is not { } target || message.Session.AttachedEntity is not { } user)
return;
+ _doAfterSystem.Cancel(component.DoAfter);
+ component.DoAfter = null;
+
var doAfter = new MagicMirrorSelectDoAfterEvent()
{
Category = message.Category,
BreakOnUserMove = true,
BreakOnWeightlessMove = false,
NeedHand = true
- });
+ }, out var doAfterId);
+ component.DoAfter = doAfterId;
_audio.PlayPvs(component.ChangeHairSound, uid);
}
if (component.Target is not { } target || message.Session.AttachedEntity is not { } user)
return;
+ _doAfterSystem.Cancel(component.DoAfter);
+ component.DoAfter = null;
+
var doAfter = new MagicMirrorChangeColorDoAfterEvent()
{
Category = message.Category,
BreakOnUserMove = true,
BreakOnWeightlessMove = false,
NeedHand = true
- });
+ }, out var doAfterId);
+
+ component.DoAfter = doAfterId;
}
private void OnChangeColorDoAfter(EntityUid uid, MagicMirrorComponent component, MagicMirrorChangeColorDoAfterEvent args)
{
if (component.Target is not { } target || message.Session.AttachedEntity is not { } user)
return;
+ _doAfterSystem.Cancel(component.DoAfter);
+ component.DoAfter = null;
+
var doAfter = new MagicMirrorRemoveSlotDoAfterEvent()
{
Category = message.Category,
BreakOnUserMove = true,
BreakOnWeightlessMove = false,
NeedHand = true
- });
+ }, out var doAfterId);
+ component.DoAfter = doAfterId;
_audio.PlayPvs(component.ChangeHairSound, uid);
}
if (message.Session.AttachedEntity == null)
return;
+ _doAfterSystem.Cancel(component.DoAfter);
+ component.DoAfter = null;
+
var doAfter = new MagicMirrorAddSlotDoAfterEvent()
{
Category = message.Category,
BreakOnUserMove = true,
BreakOnWeightlessMove = false,
NeedHand = true
- });
+ }, out var doAfterId);
+ component.DoAfter = doAfterId;
_audio.PlayPvs(component.ChangeHairSound, uid);
}
private void OnAddSlotDoAfter(EntityUid uid, MagicMirrorComponent component, MagicMirrorAddSlotDoAfterEvent args)