From: Cojoke <83733158+Cojoke-dot@users.noreply.github.com> Date: Sun, 23 Jun 2024 00:28:20 +0000 (-0500) Subject: Add the ability to put hats on medibots (#28584) X-Git-Url: https://git.smokeofanarchy.ru/gitweb.cgi?a=commitdiff_plain;h=966aca437cac78f453a5ef4d3feb6cf7af0b6277;p=space-station-14.git Add the ability to put hats on medibots (#28584) --- diff --git a/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml b/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml index 6ff9a9ec90..4e935f4db5 100644 --- a/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml +++ b/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml @@ -1,5 +1,5 @@ - type: entity - parent: BaseMob + parent: [BaseMob, StripableInventoryBase] id: BaseBorgChassis name: cyborg description: A man-machine hybrid that assists in station activity. They love being asked to state their laws over and over. @@ -77,8 +77,6 @@ - type: SiliconLawProvider laws: Crewsimov - type: IonStormTarget - - type: Strippable - - type: InventorySlots - type: Inventory templateId: borg - type: Hands diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml index 3bc5779b52..a79fbfbf24 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml @@ -1049,7 +1049,10 @@ - type: entity name: kangaroo - parent: [ SimpleMobBase, MobCombat ] + parent: + - SimpleMobBase + - MobCombat + - StripableInventoryBase id: MobKangaroo description: A large marsupial herbivore. It has powerful hind legs, with nails that resemble long claws. components: @@ -1079,15 +1082,9 @@ templateId: kangaroo - type: ReplacementAccent accent: kangaroo - - type: InventorySlots - - type: Strippable - type: Butcherable spawned: - id: FoodMeat - - type: UserInterface - interfaces: - enum.StrippingUiKey.Key: - type: StrippableBoundUserInterface - type: DamageStateVisuals states: Alive: @@ -1151,7 +1148,7 @@ - type: entity name: genetic ancestor id: MobBaseAncestor - parent: SimpleMobBase + parent: [SimpleMobBase, StripableInventoryBase] description: The genetic bipedal ancestor of... Uh... Something. Yeah, there's definitely something on the station that descended from whatever this is. abstract: true components: @@ -1159,7 +1156,6 @@ - type: Inventory templateId: monkey speciesId: monkey - - type: InventorySlots - type: Deathgasp prototype: MonkeyDeathgasp - type: Cuffable @@ -1178,11 +1174,6 @@ layer: - MobLayer - type: Stripping - - type: Strippable - - type: UserInterface - interfaces: - enum.StrippingUiKey.Key: - type: StrippableBoundUserInterface - type: Sprite drawdepth: Mobs layers: @@ -2371,7 +2362,7 @@ - type: entity name: possum - parent: SimpleMobBase + parent: [SimpleMobBase, StripableInventoryBase] id: MobPossum description: '"O Possum! My Possum!" -- Walt Whitman, 1865' components: @@ -2396,12 +2387,6 @@ - type: Inventory speciesId: possum templateId: pet - - type: InventorySlots - - type: Strippable - - type: UserInterface - interfaces: - enum.StrippingUiKey.Key: - type: StrippableBoundUserInterface - type: DamageStateVisuals states: Alive: @@ -2446,7 +2431,7 @@ - type: entity name: raccoon - parent: SimpleMobBase + parent: [SimpleMobBase, StripableInventoryBase] id: MobRaccoon description: Trash panda! components: @@ -2471,12 +2456,6 @@ - type: Inventory speciesId: possum #close enough templateId: pet - - type: InventorySlots - - type: Strippable - - type: UserInterface - interfaces: - enum.StrippingUiKey.Key: - type: StrippableBoundUserInterface - type: DamageStateVisuals states: Alive: @@ -2503,7 +2482,7 @@ - type: entity name: fox - parent: SimpleMobBase + parent: [SimpleMobBase, StripableInventoryBase] id: MobFox description: They're a fox. components: @@ -2535,12 +2514,6 @@ - type: Inventory speciesId: fox templateId: pet - - type: InventorySlots - - type: Strippable - - type: UserInterface - interfaces: - enum.StrippingUiKey.Key: - type: StrippableBoundUserInterface - type: DamageStateVisuals states: Alive: @@ -2585,7 +2558,7 @@ - type: entity name: corgi - parent: SimpleMobBase + parent: [SimpleMobBase, StripableInventoryBase] id: MobCorgi description: Finally, a space corgi! components: @@ -2612,12 +2585,6 @@ - type: Inventory speciesId: dog templateId: pet - - type: InventorySlots - - type: Strippable - - type: UserInterface - interfaces: - enum.StrippingUiKey.Key: - type: StrippableBoundUserInterface - type: DamageStateVisuals states: Alive: @@ -2721,7 +2688,6 @@ - type: Inventory speciesId: puppy templateId: pet - - type: InventorySlots - type: DamageStateVisuals states: Alive: @@ -2736,7 +2702,7 @@ - type: entity name: cat - parent: SimpleMobBase + parent: [SimpleMobBase, StripableInventoryBase] id: MobCat description: Feline pet, very funny. components: @@ -2761,12 +2727,6 @@ - type: Inventory speciesId: cat templateId: pet - - type: InventorySlots - - type: Strippable - - type: UserInterface - interfaces: - enum.StrippingUiKey.Key: - type: StrippableBoundUserInterface - type: DamageStateVisuals states: Alive: @@ -2958,7 +2918,7 @@ - type: entity name: sloth - parent: SimpleMobBase + parent: [SimpleMobBase, StripableInventoryBase] id: MobSloth description: Very slow animal. For people with low energy. components: @@ -2986,12 +2946,6 @@ - type: Inventory speciesId: sloth templateId: pet - - type: InventorySlots - - type: Strippable - - type: UserInterface - interfaces: - enum.StrippingUiKey.Key: - type: StrippableBoundUserInterface - type: DamageStateVisuals states: Alive: @@ -3018,7 +2972,7 @@ - type: entity name: ferret - parent: SimpleMobBase + parent: [SimpleMobBase, StripableInventoryBase] id: MobFerret description: Just a silly little guy! components: @@ -3043,12 +2997,6 @@ - type: Inventory speciesId: fox #close enough templateId: pet - - type: InventorySlots - - type: Strippable - - type: UserInterface - interfaces: - enum.StrippingUiKey.Key: - type: StrippableBoundUserInterface - type: DamageStateVisuals states: Alive: @@ -3076,7 +3024,7 @@ - type: entity name: hamster - parent: [ SimpleMobBase, MobCombat ] + parent: [ SimpleMobBase, MobCombat, StripableInventoryBase] id: MobHamster description: A cute, fluffy, robust hamster. components: @@ -3140,12 +3088,6 @@ - type: Inventory speciesId: hamster templateId: hamster - - type: InventorySlots - - type: Strippable - - type: UserInterface - interfaces: - enum.StrippingUiKey.Key: - type: StrippableBoundUserInterface - type: DamageStateVisuals states: Alive: @@ -3222,7 +3164,7 @@ - type: entity name: pig - parent: SimpleMobBase + parent: [SimpleMobBase, StripableInventoryBase] id: MobPig description: Oink. components: @@ -3258,12 +3200,6 @@ offspring: - id: MobPig - type: ReproductivePartner - - type: InventorySlots - - type: Strippable - - type: UserInterface - interfaces: - enum.StrippingUiKey.Key: - type: StrippableBoundUserInterface - type: DamageStateVisuals states: Alive: @@ -3294,7 +3230,7 @@ - type: entity name: diona nymph - parent: SimpleMobBase + parent: [SimpleMobBase, StripableInventoryBase] id: MobDionaNymph description: It's like a cat, only.... branch-ier. components: @@ -3319,15 +3255,9 @@ - type: Inventory speciesId: cat templateId: pet - - type: InventorySlots - - type: Strippable - type: Bloodstream bloodReagent: Sap bloodMaxVolume: 60 - - type: UserInterface - interfaces: - enum.StrippingUiKey.Key: - type: StrippableBoundUserInterface - type: DamageStateVisuals states: Alive: diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/pets.yml b/Resources/Prototypes/Entities/Mobs/NPCs/pets.yml index 32c71408d5..718c4236cf 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/pets.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/pets.yml @@ -182,7 +182,7 @@ - type: entity name: Bingus - parent: SimpleMobBase + parent: [SimpleMobBase, StripableInventoryBase] id: MobBingus description: Bingus my beloved... components: @@ -207,12 +207,6 @@ - type: Inventory speciesId: cat templateId: pet - - type: InventorySlots - - type: Strippable - - type: UserInterface - interfaces: - enum.StrippingUiKey.Key: - type: StrippableBoundUserInterface - type: DamageStateVisuals states: Alive: @@ -245,7 +239,7 @@ - type: entity name: McGriff - parent: SimpleMobBase + parent: [SimpleMobBase, StripableInventoryBase] id: MobMcGriff description: This dog can tell something smells around here, and that something is CRIME! components: @@ -270,12 +264,6 @@ - type: Inventory speciesId: puppy templateId: pet - - type: InventorySlots - - type: Strippable - - type: UserInterface - interfaces: - enum.StrippingUiKey.Key: - type: StrippableBoundUserInterface - type: DamageStateVisuals states: Alive: @@ -344,7 +332,7 @@ - type: entity name: Walter - parent: SimpleMobBase + parent: [SimpleMobBase, StripableInventoryBase] id: MobWalter description: He likes chems and treats. Walter. components: @@ -369,12 +357,6 @@ - type: Inventory speciesId: dog templateId: pet - - type: InventorySlots - - type: Strippable - - type: UserInterface - interfaces: - enum.StrippingUiKey.Key: - type: StrippableBoundUserInterface - type: DamageStateVisuals states: Alive: diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/silicon.yml b/Resources/Prototypes/Entities/Mobs/NPCs/silicon.yml index b3bb5d4d07..1686b723b5 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/silicon.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/silicon.yml @@ -249,7 +249,10 @@ path: /Audio/Ambience/Objects/periodic_beep.ogg - type: entity - parent: [MobSiliconBase, ShowMedicalIcons] + parent: + - MobSiliconBase + - ShowMedicalIcons + - StripableInventoryBase id: MobMedibot name: medibot description: No substitute for a doctor, but better than nothing. @@ -291,19 +294,17 @@ path: /Audio/Ambience/Objects/periodic_beep.ogg - type: Advertise pack: MedibotAds + - type: Inventory + templateId: medibot - type: entity - parent: MobSiliconBase + parent: + - MobSiliconBase + - StripableInventoryBase id: MobMimeBot name: mimebot description: Why not give mimebot a friendly wave. components: - - type: InventorySlots - - type: Strippable - - type: UserInterface - interfaces: - enum.StrippingUiKey.Key: - type: StrippableBoundUserInterface - type: Sprite layers: - map: ["enum.DamageStateVisualLayers.Base"] diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/space.yml b/Resources/Prototypes/Entities/Mobs/NPCs/space.yml index 7b321e80df..91f5e952e9 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/space.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/space.yml @@ -121,7 +121,7 @@ - type: entity name: space kangaroo id: MobKangarooSpace - parent: MobSpaceBasic + parent: [MobSpaceBasic, StripableInventoryBase] description: It looks friendly. Why don't you give it a hug? components: - type: Sprite @@ -167,12 +167,6 @@ collection: FootstepBounce - type: ReplacementAccent accent: kangaroo - - type: InventorySlots - - type: Strippable - - type: UserInterface - interfaces: - enum.StrippingUiKey.Key: - type: StrippableBoundUserInterface - type: entity id: MobKangarooSpaceSalvage diff --git a/Resources/Prototypes/Entities/Mobs/Player/admin_ghost.yml b/Resources/Prototypes/Entities/Mobs/Player/admin_ghost.yml index 8b0f60ca58..a0eb01e03b 100644 --- a/Resources/Prototypes/Entities/Mobs/Player/admin_ghost.yml +++ b/Resources/Prototypes/Entities/Mobs/Player/admin_ghost.yml @@ -1,5 +1,5 @@ - type: entity - parent: MobObserver + parent: [MobObserver, InventoryBase] id: AdminObserver name: admin observer noSpawn: true @@ -87,7 +87,6 @@ - type: ShowAntagIcons - type: Inventory templateId: aghost - - type: InventorySlots - type: Loadout prototypes: [ MobAghostGear ] - type: BypassInteractionChecks diff --git a/Resources/Prototypes/Entities/Mobs/Player/guardian.yml b/Resources/Prototypes/Entities/Mobs/Player/guardian.yml index 6a11c96686..eececb70da 100644 --- a/Resources/Prototypes/Entities/Mobs/Player/guardian.yml +++ b/Resources/Prototypes/Entities/Mobs/Player/guardian.yml @@ -176,7 +176,7 @@ - type: entity name: HoloClown id: MobHoloClownGuardian - parent: MobGuardianBase + parent: [MobGuardianBase, InventoryBase] description: A mesmerising whirl of hard-light patterns weaves a blue colored clown of dubious origin. components: - type: GhostRole @@ -237,7 +237,6 @@ Piercing: 4 groups: Burn: 3 - - type: InventorySlots - type: MeleeWeapon angle: 30 animation: WeaponArcFist diff --git a/Resources/Prototypes/Entities/Mobs/Species/base.yml b/Resources/Prototypes/Entities/Mobs/Species/base.yml index eeabecef8b..d956f1871d 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/base.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/base.yml @@ -4,6 +4,7 @@ - BaseMob - MobDamageable - MobCombat + - StripableInventoryBase id: BaseMobSpecies abstract: true components: @@ -152,8 +153,6 @@ - type: Hands - type: ComplexInteraction - type: Internals - - type: Inventory - - type: InventorySlots - type: FloatingVisuals - type: Climbing - type: Cuffable @@ -191,7 +190,6 @@ - NanoTrasen - type: CreamPied - type: Stripping - - type: Strippable - type: UserInterface interfaces: enum.VoiceMaskUIKey.Key: @@ -290,12 +288,11 @@ - type: entity save: false id: BaseSpeciesDummy + parent: InventoryBase abstract: true components: - type: Hands - type: ComplexInteraction - - type: Inventory - - type: InventorySlots - type: ContainerContainer - type: Icon sprite: Mobs/Species/Human/parts.rsi diff --git a/Resources/Prototypes/Entities/Structures/Decoration/mannequin.yml b/Resources/Prototypes/Entities/Structures/Decoration/mannequin.yml index 4a2b0d3c3f..39d58973bb 100644 --- a/Resources/Prototypes/Entities/Structures/Decoration/mannequin.yml +++ b/Resources/Prototypes/Entities/Structures/Decoration/mannequin.yml @@ -1,6 +1,6 @@ - type: entity id: Mannequin - parent: BaseStructureDynamic + parent: [BaseStructureDynamic, StripableInventoryBase] name: mannequin description: It can wear any clothing with style. components: @@ -19,7 +19,7 @@ - map: [ "neck" ] - map: [ "back" ] - map: [ "mask" ] - - map: [ "head" ] + - map: [ "head" ] - type: Rotatable - type: Fixtures fixtures: @@ -87,9 +87,3 @@ ent: null - type: Inventory templateId: mannequin - - type: InventorySlots - - type: Strippable - - type: UserInterface - interfaces: - enum.StrippingUiKey.Key: - type: StrippableBoundUserInterface \ No newline at end of file diff --git a/Resources/Prototypes/InventoryTemplates/inventorybase.yml b/Resources/Prototypes/InventoryTemplates/inventorybase.yml new file mode 100644 index 0000000000..2334c6784e --- /dev/null +++ b/Resources/Prototypes/InventoryTemplates/inventorybase.yml @@ -0,0 +1,17 @@ +- type: entity + abstract: true + id: InventoryBase + components: + - type: Inventory + - type: InventorySlots + +- type: entity + abstract: true + parent: InventoryBase + id: StripableInventoryBase + components: + - type: Strippable + - type: UserInterface + interfaces: + enum.StrippingUiKey.Key: + type: StrippableBoundUserInterface diff --git a/Resources/Prototypes/InventoryTemplates/medibot_inventory_template.yml b/Resources/Prototypes/InventoryTemplates/medibot_inventory_template.yml new file mode 100644 index 0000000000..bfc561486b --- /dev/null +++ b/Resources/Prototypes/InventoryTemplates/medibot_inventory_template.yml @@ -0,0 +1,11 @@ +- type: inventoryTemplate + id: medibot + slots: + - name: head + slotTexture: head + slotFlags: HEAD + stripTime: 3 + uiWindowPos: 1,0 + strippingWindowPos: 0,0 + displayName: Head + offset: 0.10, -0.35