--- /dev/null
+using Robust.Shared.GameStates;
+
+namespace Content.Shared.Ghost;
+
+/// <summary>
+/// Marker component to identify "ghostly" entities.
+/// </summary>
+[RegisterComponent, NetworkedComponent]
+public sealed partial class SpectralComponent : Component { }
layer:
- GhostImpassable
+# shared parent between aghosts, replay spectators and normal observers
- type: entity
parent:
- Incorporeal
- BaseMob
- id: MobObserver
+ id: MobObserverBase
+ abstract: true
name: observer
description: Boo!
categories: [ HideSpawnMenu ]
tags:
- BypassInteractionRangeChecks
+# proto for player ghosts specifically
+- type: entity
+ parent: MobObserverBase
+ id: MobObserver
+ components:
+ - type: Spectral
+
- type: entity
id: ActionGhostBoo
name: Boo!
--- /dev/null
+- type: entity
+ id: SpectralLocatorUnpowered
+ parent: BaseItem
+ name: spectral locator
+ description: Appears to be a modified anomaly locator. Seems very old.
+ suffix: Unpowered
+ components:
+ - type: Sprite
+ sprite: Objects/Fun/spectrallocator.rsi
+ layers:
+ - state: icon
+ - state: screen
+ shader: unshaded
+ visible: false
+ map: ["enum.ToggleVisuals.Layer"]
+ - type: Appearance
+ - type: GenericVisualizer
+ visuals:
+ enum.ToggleVisuals.Toggled:
+ enum.ToggleVisuals.Layer:
+ True: { visible: true }
+ False: { visible: false }
+ - type: ItemToggle
+ - type: ProximityBeeper
+ - type: ProximityDetector
+ range: 12
+ criteria:
+ components:
+ - Spectral # reacts to AI eye, intentional
+ - type: Beeper
+ isMuted: true
+ minBeepInterval: 0.25
+ maxBeepInterval: 0.5
+ beepSound:
+ path: "/Audio/Items/locator_beep.ogg"
+ params:
+ maxDistance: 1
+ volume: -8
+
+- type: entity
+ id: SpectralLocator
+ parent: [ SpectralLocatorUnpowered, PowerCellSlotSmallItem ]
+ suffix: Powered
+ components:
+ - type: PowerCellDraw
+ drawRate: 1
+ useRate: 0
+ - type: ToggleCellDraw
+
+- type: entity
+ id: SpectralLocatorEmpty
+ parent: SpectralLocator
+ suffix: Empty
+ components:
+ - type: ItemSlots
+ slots:
+ cell_slot:
+ name: power-cell-slot-component-slot-name-default
--- /dev/null
+{
+ "version": 1,
+ "license": "CC0-1.0",
+ "copyright": "Originally created by EmoGarbage404 (github) for Space Station 14, modified by Ilya246 (github) for Space Station 14.",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "icon"
+ },
+ {
+ "name": "inhand-left",
+ "directions": 4
+ },
+ {
+ "name": "inhand-right",
+ "directions": 4
+ },
+ {
+ "name": "screen",
+ "delays": [
+ [
+ 0.2,
+ 0.2,
+ 0.2,
+ 0.2
+ ]
+ ]
+ }
+ ]
+}