- fix: Chameleon projector. (#484)

This commit is contained in:
Aviu00
2024-07-23 15:34:12 +00:00
committed by GitHub
parent 541c463098
commit b64eea4b3f
9 changed files with 294 additions and 128 deletions

View File

@@ -1,4 +1,3 @@
using Content.Shared.Polymorph;
using Content.Shared.Polymorph.Systems;
using Content.Shared.Whitelist;
using Robust.Shared.Prototypes;
@@ -25,22 +24,26 @@ public sealed partial class ChameleonProjectorComponent : Component
public EntityWhitelist? Blacklist;
/// <summary>
/// Polymorph configuration for the disguise entity.
/// Disguise entity to spawn and use.
/// </summary>
[DataField(required: true)]
public PolymorphConfiguration Polymorph = new();
public EntProtoId DisguiseProto = string.Empty;
/// <summary>
/// Action for disabling your disguise's rotation.
/// </summary>
[DataField]
public EntProtoId NoRotAction = "ActionDisguiseNoRot";
[DataField]
public EntityUid? NoRotActionEntity;
/// <summary>
/// Action for anchoring your disguise in place.
/// </summary>
[DataField]
public EntProtoId AnchorAction = "ActionDisguiseAnchor";
[DataField]
public EntityUid? AnchorActionEntity;
/// <summary>
/// Minimum health to give the disguise.
@@ -54,6 +57,12 @@ public sealed partial class ChameleonProjectorComponent : Component
[DataField]
public float MaxHealth = 100f;
/// <summary>
/// Popup shown to the user when they try to disguise as an entity inside a container.
/// </summary>
[DataField]
public LocId ContainerPopup = "chameleon-projector-inside-container";
/// <summary>
/// Popup shown to the user when they try to disguise as an invalid entity.
/// </summary>
@@ -65,4 +74,10 @@ public sealed partial class ChameleonProjectorComponent : Component
/// </summary>
[DataField]
public LocId SuccessPopup = "chameleon-projector-success";
/// <summary>
/// User currently disguised by this projector, if any
/// </summary>
[DataField]
public EntityUid? Disguised;
}