diff --git a/Exiled.API/Features/Scp3114Ragdoll.cs b/Exiled.API/Features/Scp3114Ragdoll.cs new file mode 100644 index 0000000000..01bb1869fd --- /dev/null +++ b/Exiled.API/Features/Scp3114Ragdoll.cs @@ -0,0 +1,76 @@ +// ----------------------------------------------------------------------- +// +// Copyright (c) Exiled Team. All rights reserved. +// Licensed under the CC BY-SA 3.0 license. +// +// ----------------------------------------------------------------------- + +namespace Exiled.API.Features +{ + using Exiled.API.Interfaces; + using PlayerRoles; + + using BaseRagdoll = PlayerRoles.PlayableScps.Scp3114.Scp3114Ragdoll; + + /// + /// A wrapper for SCP-3114 ragdolls. + /// + public class Scp3114Ragdoll : Ragdoll, IWrapper + { + /// + /// Initializes a new instance of the class. + /// + /// The base ragdoll to wrap. + internal Scp3114Ragdoll(BaseRagdoll ragdoll) : base(ragdoll) + { + Base = ragdoll; + } + + /// + public new BaseRagdoll Base { get; } + + /// + /// Gets or sets the role that the corpse is disguised as. + /// + public RoleTypeId DisguiseRole + { + get => Base._disguiseRole; + set => Base.Network_disguiseRole = value; + } + + /// + /// Gets or sets the delay between when SCP-3114 can disguise this corpse. + /// + public float RevealDelay + { + get => Base._revealDelay; + set => Base._revealDelay = value; + } + + /// + /// Gets or sets the time required to reveal this corpse. + /// + public float RevealDuration + { + get => Base._revealDuration; + set => Base._revealDuration = value; + } + + /// + /// Gets or sets the current time of revealing this corpse. + /// + public float RevealElapsed + { + get => Base._revealElapsed; + set => Base._revealElapsed = value; + } + + /// + /// Gets or sets a value indicating whether or not this corpse will trigger animation. + /// + public bool IsPlayingAnimation + { + get => Base._playingAnimation; + set => Base._playingAnimation = value; + } +}