diff --git a/Resources/Prototypes/Catalog/Fills/Lockers/heads.yml b/Resources/Prototypes/Catalog/Fills/Lockers/heads.yml index 973cbaba3f..714ba01582 100644 --- a/Resources/Prototypes/Catalog/Fills/Lockers/heads.yml +++ b/Resources/Prototypes/Catalog/Fills/Lockers/heads.yml @@ -48,7 +48,7 @@ - type: entity id: LockerCaptainFilled - suffix: Filled + suffix: Filled, AntiqueLaser parent: LockerCaptain components: - type: StorageFill @@ -72,6 +72,31 @@ - id: JetpackCaptainFilled - id: MedalCase +- type: entity + id: LockerCaptainFilledNoLaser + suffix: Filled + parent: LockerCaptain + components: + - type: StorageFill + contents: + - id: ClothingOuterArmorCaptainCarapace + - id: NukeDisk + - id: PinpointerNuclear + - id: CaptainIDCard + - id: WeaponDisabler + - id: CommsComputerCircuitboard + - id: ClothingHeadsetAltCommand + - id: SpaceCash1000 + - id: PlushieNuke + prob: 0.1 + - id: CigarGoldCase + prob: 0.25 + - id: ClothingBeltSheathFilled + - id: DoorRemoteCommand + - id: RubberStampCaptain + - id: JetpackCaptainFilled + - id: MedalCase + - type: entity id: LockerHeadOfPersonnelFilled suffix: Filled diff --git a/Resources/Prototypes/Entities/Structures/Storage/glass_box.yml b/Resources/Prototypes/Entities/Structures/Storage/glass_box.yml new file mode 100644 index 0000000000..bdb02d2bc3 --- /dev/null +++ b/Resources/Prototypes/Entities/Structures/Storage/glass_box.yml @@ -0,0 +1,139 @@ +- type: entity + id: GlassBoxLaser + name: glass box + description: A sturdy showcase for an expensive exhibit. + parent: BaseStructureDynamic + placement: + mode: SnapgridCenter + components: + - type: Anchorable + delay: 4 + - type: Transform + anchored: true + - type: Damageable + damageContainer: Inorganic + damageModifierSet: Glass + - type: MeleeSound + soundGroups: + Brute: + collection: GlassSmash + - type: Physics + bodyType: Static + - type: Clickable + - type: InteractionOutline + - type: Sprite + sprite: Structures/Storage/glassbox.rsi + layers: + - state: glassbox + - state: caplaser + map: ["enum.ItemCabinetVisualLayers.ContainsItem"] + visible: true + - state: glass + map: ["enum.ItemCabinetVisualLayers.Door"] + - type: ItemCabinet + cabinetSlot: + ejectOnInteract: true + whitelist: + tags: + - WeaponAntiqueLaser + doorSound: + path: /Audio/Machines/machine_switch.ogg + openState: glass-up + closedState: glass + - type: Lock + - type: AccessReader + access: [["Captain"]] + - type: ItemSlots + - type: ContainerContainer + containers: + ItemCabinet: !type:ContainerSlot + - type: Repairable + - type: Appearance + - type: DamageVisuals + thresholds: [4, 8, 12] + damageDivisor: 7.555 + trackAllDamage: true + damageOverlay: + sprite: Structures/Storage/glassbox.rsi + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 150 + behaviors: + - !type:EmptyAllContainersBehaviour + - !type:PlaySoundBehavior + sound: + collection: WindowShatter + - !type:SpawnEntitiesBehavior + spawn: + ShardGlassReinforced: + min: 1 + max: 1 + GlassBoxLaserBroken: + min: 1 + max: 1 + - !type:DoActsBehavior + acts: [ "Destruction" ] + +- type: entity + id: GlassBoxLaserOpen + parent: GlassBoxLaser + suffix: Open + components: + - type: ItemCabinet + opened: true + doorSound: + path: /Audio/Machines/machine_switch.ogg + openState: glass-up + closedState: glass + +- type: entity + id: GlassBoxLaserFilled + parent: GlassBoxLaser + suffix: Filled + components: + - type: ItemCabinet + cabinetSlot: + startingItem: WeaponAntiqueLaser + ejectOnInteract: true + whitelist: + tags: + - WeaponAntiqueLaser + doorSound: + path: /Audio/Machines/machine_switch.ogg + openState: glass-up + closedState: glass + +- type: entity + id: GlassBoxLaserFilledOpen + parent: GlassBoxLaserFilled + suffix: Filled, Open + components: + - type: ItemCabinet + opened: true + doorSound: + path: /Audio/Machines/machine_switch.ogg + openState: glass-up + closedState: glass + +- type: entity + id: GlassBoxLaserBroken + name: broken glass box + description: A broken showcase for a stolen expensive exhibit. + parent: BaseStructureDynamic + suffix: Broken + placement: + mode: SnapgridCenter + components: + - type: Transform + anchored: true + - type: Physics + bodyType: Static + - type: Sprite + sprite: Structures/Storage/glassbox.rsi + layers: + - state: glassbox + - state: glass-4 + - type: Clickable + - type: InteractionOutline diff --git a/Resources/Prototypes/tags.yml b/Resources/Prototypes/tags.yml index 4d85f488a1..8e94128ce6 100644 --- a/Resources/Prototypes/tags.yml +++ b/Resources/Prototypes/tags.yml @@ -1160,6 +1160,9 @@ - type: Tag id: WallmountSubstationElectronics +- type: Tag + id: WeaponAntiqueLaser + - type: Tag id: WeaponPistolCHIMPUpgradeKit diff --git a/Resources/Textures/Structures/Storage/glassbox.rsi/DamageOverlay_12.png b/Resources/Textures/Structures/Storage/glassbox.rsi/DamageOverlay_12.png new file mode 100644 index 0000000000..6ed908b682 Binary files /dev/null and b/Resources/Textures/Structures/Storage/glassbox.rsi/DamageOverlay_12.png differ diff --git a/Resources/Textures/Structures/Storage/glassbox.rsi/DamageOverlay_4.png b/Resources/Textures/Structures/Storage/glassbox.rsi/DamageOverlay_4.png new file mode 100644 index 0000000000..e6a50bde32 Binary files /dev/null and b/Resources/Textures/Structures/Storage/glassbox.rsi/DamageOverlay_4.png differ diff --git a/Resources/Textures/Structures/Storage/glassbox.rsi/DamageOverlay_8.png b/Resources/Textures/Structures/Storage/glassbox.rsi/DamageOverlay_8.png new file mode 100644 index 0000000000..f1b8f6f516 Binary files /dev/null and b/Resources/Textures/Structures/Storage/glassbox.rsi/DamageOverlay_8.png differ diff --git a/Resources/Textures/Structures/Storage/glassbox.rsi/caplaser.png b/Resources/Textures/Structures/Storage/glassbox.rsi/caplaser.png new file mode 100644 index 0000000000..4af9023cd0 Binary files /dev/null and b/Resources/Textures/Structures/Storage/glassbox.rsi/caplaser.png differ diff --git a/Resources/Textures/Structures/Storage/glassbox.rsi/glass-4.png b/Resources/Textures/Structures/Storage/glassbox.rsi/glass-4.png new file mode 100644 index 0000000000..acb2054a66 Binary files /dev/null and b/Resources/Textures/Structures/Storage/glassbox.rsi/glass-4.png differ diff --git a/Resources/Textures/Structures/Storage/glassbox.rsi/glass-up.png b/Resources/Textures/Structures/Storage/glassbox.rsi/glass-up.png new file mode 100644 index 0000000000..39a32dfef5 Binary files /dev/null and b/Resources/Textures/Structures/Storage/glassbox.rsi/glass-up.png differ diff --git a/Resources/Textures/Structures/Storage/glassbox.rsi/glass.png b/Resources/Textures/Structures/Storage/glassbox.rsi/glass.png new file mode 100644 index 0000000000..1737ee03bd Binary files /dev/null and b/Resources/Textures/Structures/Storage/glassbox.rsi/glass.png differ diff --git a/Resources/Textures/Structures/Storage/glassbox.rsi/glassbox-empty-open.png b/Resources/Textures/Structures/Storage/glassbox.rsi/glassbox-empty-open.png new file mode 100644 index 0000000000..3a3bf591ca Binary files /dev/null and b/Resources/Textures/Structures/Storage/glassbox.rsi/glassbox-empty-open.png differ diff --git a/Resources/Textures/Structures/Storage/glassbox.rsi/glassbox-filled-closed.png b/Resources/Textures/Structures/Storage/glassbox.rsi/glassbox-filled-closed.png new file mode 100644 index 0000000000..b558cf5212 Binary files /dev/null and b/Resources/Textures/Structures/Storage/glassbox.rsi/glassbox-filled-closed.png differ diff --git a/Resources/Textures/Structures/Storage/glassbox.rsi/glassbox-filled-open.png b/Resources/Textures/Structures/Storage/glassbox.rsi/glassbox-filled-open.png new file mode 100644 index 0000000000..48db8e88e5 Binary files /dev/null and b/Resources/Textures/Structures/Storage/glassbox.rsi/glassbox-filled-open.png differ diff --git a/Resources/Textures/Structures/Storage/glassbox.rsi/glassbox.png b/Resources/Textures/Structures/Storage/glassbox.rsi/glassbox.png new file mode 100644 index 0000000000..3a3bf591ca Binary files /dev/null and b/Resources/Textures/Structures/Storage/glassbox.rsi/glassbox.png differ diff --git a/Resources/Textures/Structures/Storage/glassbox.rsi/locked.png b/Resources/Textures/Structures/Storage/glassbox.rsi/locked.png new file mode 100644 index 0000000000..f5739c8058 Binary files /dev/null and b/Resources/Textures/Structures/Storage/glassbox.rsi/locked.png differ diff --git a/Resources/Textures/Structures/Storage/glassbox.rsi/meta.json b/Resources/Textures/Structures/Storage/glassbox.rsi/meta.json new file mode 100644 index 0000000000..12f1e9bc0a --- /dev/null +++ b/Resources/Textures/Structures/Storage/glassbox.rsi/meta.json @@ -0,0 +1,50 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation https://github.com/tgstation/tgstation/commit/0129a094635aac51e00fdc7aa3b4248affc1f49d Sprite modified and updated by Nimfar11 (Github)", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "glass" + }, + { + "name": "DamageOverlay_4" + }, + { + "name": "DamageOverlay_8" + }, + { + "name": "DamageOverlay_12" + }, + { + "name": "glass-4" + }, + { + "name": "glass-up" + }, + { + "name": "locked" + }, + { + "name": "caplaser" + }, + { + "name": "unlocked" + }, + { + "name": "glassbox" + }, + { + "name": "glassbox-empty-open" + }, + { + "name": "glassbox-filled-closed" + }, + { + "name": "glassbox-filled-open" + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Structures/Storage/glassbox.rsi/unlocked.png b/Resources/Textures/Structures/Storage/glassbox.rsi/unlocked.png new file mode 100644 index 0000000000..1c92900339 Binary files /dev/null and b/Resources/Textures/Structures/Storage/glassbox.rsi/unlocked.png differ