[Hotfix] Wizard Rod doesn't gib the wizard. (#40041)
* Title * Tired * That shit did nothing goddamn * Fix for real * Use og code * Hmmm borgaer --------- Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
This commit is contained in:
committed by
Princess Cheeseballs
parent
8a1a1b98c4
commit
3ea9321d25
@@ -20,6 +20,12 @@ public sealed partial class PolymorphedEntityComponent : Component
|
||||
[DataField(required: true)]
|
||||
public EntityUid? Parent;
|
||||
|
||||
/// <summary>
|
||||
/// Whether this polymorph has been reverted.
|
||||
/// </summary>
|
||||
[DataField]
|
||||
public bool Reverted;
|
||||
|
||||
/// <summary>
|
||||
/// The amount of time that has passed since the entity was created
|
||||
/// used for tracking the duration
|
||||
|
||||
@@ -128,12 +128,11 @@ public sealed partial class PolymorphSystem : EntitySystem
|
||||
|
||||
private void OnBeforeFullySliced(Entity<PolymorphedEntityComponent> ent, ref BeforeFullySlicedEvent args)
|
||||
{
|
||||
var (_, comp) = ent;
|
||||
if (comp.Configuration.RevertOnEat)
|
||||
{
|
||||
args.Cancel();
|
||||
Revert((ent, ent));
|
||||
}
|
||||
if (ent.Comp.Reverted || !ent.Comp.Configuration.RevertOnEat)
|
||||
return;
|
||||
|
||||
args.Cancel();
|
||||
Revert((ent, ent));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -142,14 +141,17 @@ public sealed partial class PolymorphSystem : EntitySystem
|
||||
/// </summary>
|
||||
private void OnDestruction(Entity<PolymorphedEntityComponent> ent, ref DestructionEventArgs args)
|
||||
{
|
||||
if (ent.Comp.Configuration.RevertOnDeath)
|
||||
{
|
||||
Revert((ent, ent));
|
||||
}
|
||||
if (ent.Comp.Reverted || !ent.Comp.Configuration.RevertOnDeath)
|
||||
return;
|
||||
|
||||
Revert((ent, ent));
|
||||
}
|
||||
|
||||
private void OnPolymorphedTerminating(Entity<PolymorphedEntityComponent> ent, ref EntityTerminatingEvent args)
|
||||
{
|
||||
if (ent.Comp.Reverted)
|
||||
return;
|
||||
|
||||
if (ent.Comp.Configuration.RevertOnDelete)
|
||||
Revert(ent.AsNullable());
|
||||
|
||||
@@ -298,8 +300,6 @@ public sealed partial class PolymorphSystem : EntitySystem
|
||||
if (component.Parent is not { } parent)
|
||||
return null;
|
||||
|
||||
// Clear our reference to the original entity
|
||||
component.Parent = null;
|
||||
if (Deleted(parent))
|
||||
return null;
|
||||
|
||||
@@ -316,6 +316,8 @@ public sealed partial class PolymorphSystem : EntitySystem
|
||||
_transform.SetParent(parent, parentXform, uidXform.ParentUid);
|
||||
_transform.SetCoordinates(parent, parentXform, uidXform.Coordinates, uidXform.LocalRotation);
|
||||
|
||||
component.Reverted = true;
|
||||
|
||||
if (component.Configuration.TransferDamage &&
|
||||
TryComp<DamageableComponent>(parent, out var damageParent) &&
|
||||
_mobThreshold.GetScaledDamage(uid, parent, out var damage) &&
|
||||
|
||||
Reference in New Issue
Block a user