diff --git a/Content.Server/Strip/StrippableComponent.cs b/Content.Server/Strip/StrippableComponent.cs index f48ab805f0..10221bc8dd 100644 --- a/Content.Server/Strip/StrippableComponent.cs +++ b/Content.Server/Strip/StrippableComponent.cs @@ -47,8 +47,8 @@ namespace Content.Server.Strip _strippableSystem = EntitySystem.Get(); Owner.EnsureComponentWarn(); - var cuffed = Owner.EnsureComponentWarn(); - cuffed.OnCuffedStateChanged += UpdateState; + if(_entities.TryGetComponent(Owner, out var cuffed)) + cuffed.OnCuffedStateChanged += UpdateState; } protected override void Shutdown() diff --git a/Resources/Prototypes/Entities/Mobs/Player/silicon.yml b/Resources/Prototypes/Entities/Mobs/Player/silicon.yml index 744439318a..e8f483940d 100644 --- a/Resources/Prototypes/Entities/Mobs/Player/silicon.yml +++ b/Resources/Prototypes/Entities/Mobs/Player/silicon.yml @@ -65,6 +65,13 @@ - id: WelderExperimental - type: NameIdentifier group: Drone + - type: Inventory + templateId: drone + - type: Strippable + - type: UserInterface + interfaces: + - key: enum.StrippingUiKey.Key + type: StrippableBoundUserInterface - type: GhostTakeoverAvailable makeSentient: true name: Maintenance Drone @@ -87,6 +94,8 @@ layers: - state: shell sprite: Mobs/Silicon/drone.rsi + - map: [ "head" ] + offset: 0, -0.45 - type: MovementIgnoreGravity - type: Fixtures fixtures: diff --git a/Resources/Prototypes/InventoryTemplates/drone_inventory_template.yml b/Resources/Prototypes/InventoryTemplates/drone_inventory_template.yml new file mode 100644 index 0000000000..94959bb94a --- /dev/null +++ b/Resources/Prototypes/InventoryTemplates/drone_inventory_template.yml @@ -0,0 +1,9 @@ +- type: inventoryTemplate + id: drone + slots: + - name: head + slotTexture: head + slotFlags: HEAD + uiContainer: BottomLeft + uiWindowPos: 0,0 + displayName: Head