Implanter draw rework (#32136)

* Initial commit

* Clean-up

* Fix ftl, new damage

* ftl fix for real

* Updates based on feedback

* Child implant fix

* Make the UI only open when implanter is in draw mode

* Review fixes

* shunting
This commit is contained in:
SlamBamActionman
2025-02-27 18:57:28 +01:00
committed by GitHub
parent 5fdf702e3c
commit 41c51e2905
11 changed files with 396 additions and 36 deletions

View File

@@ -1,4 +1,5 @@
using Content.Shared.Containers.ItemSlots;
using Content.Shared.Containers.ItemSlots;
using Content.Shared.Damage;
using Content.Shared.Whitelist;
using Robust.Shared.GameStates;
using Robust.Shared.Prototypes;
@@ -49,7 +50,7 @@ public sealed partial class ImplanterComponent : Component
/// </summary>
[ViewVariables(VVAccess.ReadWrite)]
[DataField]
public float DrawTime = 60f;
public float DrawTime = 25f;
/// <summary>
/// Good for single-use injectors
@@ -82,6 +83,30 @@ public sealed partial class ImplanterComponent : Component
[DataField(required: true)]
public ItemSlot ImplanterSlot = new();
/// <summary>
/// If true, the implanter may be used to remove all kinds of (deimplantable) implants without selecting any.
/// </summary>
[DataField]
public bool AllowDeimplantAll = false;
/// <summary>
/// The subdermal implants that may be removed via this implanter
/// </summary>
[DataField]
public List<EntProtoId> DeimplantWhitelist = new();
/// <summary>
/// The subdermal implants that may be removed via this implanter
/// </summary>
[DataField]
public DamageSpecifier DeimplantFailureDamage = new();
/// <summary>
/// Chosen implant to remove, if necessary.
/// </summary>
[AutoNetworkedField]
public EntProtoId? DeimplantChosen = null;
public bool UiUpdateNeeded;
}