diff --git a/Content.Server/Nyanotrasen/Item/ShockCollar/ShockCollarComponent.cs b/Content.Server/Nyanotrasen/Item/ShockCollar/ShockCollarComponent.cs new file mode 100644 index 00000000000..781f2d00030 --- /dev/null +++ b/Content.Server/Nyanotrasen/Item/ShockCollar/ShockCollarComponent.cs @@ -0,0 +1,6 @@ +namespace Content.Server.ShockCollar; + +[RegisterComponent] +public sealed partial class ShockCollarComponent : Component +{} + diff --git a/Content.Server/Nyanotrasen/Item/ShockCollar/ShockCollarSystem.cs b/Content.Server/Nyanotrasen/Item/ShockCollar/ShockCollarSystem.cs new file mode 100644 index 00000000000..d6bba3b0d76 --- /dev/null +++ b/Content.Server/Nyanotrasen/Item/ShockCollar/ShockCollarSystem.cs @@ -0,0 +1,31 @@ +using Content.Shared.Mobs.Components; +using Content.Server.Explosion.EntitySystems; // Why is trigger under explosions by the way? Even doors already use it. +using Content.Server.Electrocution; +using Robust.Shared.Containers; + +namespace Content.Server.ShockCollar; + +public sealed partial class ShockCollarSystem : EntitySystem +{ + [Dependency] private readonly SharedContainerSystem _container = default!; + [Dependency] private readonly ElectrocutionSystem _electrocutionSystem = default!; + public override void Initialize() + { + base.Initialize(); + SubscribeLocalEvent(OnTrigger); + } + + private void OnTrigger(EntityUid uid, ShockCollarComponent component, TriggerEvent args) + { + if (!_container.TryGetContainingContainer(uid, out var container)) // Try to get the entity directly containing this + return; + + var containerEnt = container.Owner; + + if (!HasComp(containerEnt)) // If it's not a mob we don't care + return; + + _electrocutionSystem.TryDoElectrocution(containerEnt, null, 5, TimeSpan.FromSeconds(2), true); + } +} + diff --git a/Resources/Prototypes/DeltaV/Research/arsenal.yml b/Resources/Prototypes/DeltaV/Research/arsenal.yml index 2309360f2d8..23006e3723b 100644 --- a/Resources/Prototypes/DeltaV/Research/arsenal.yml +++ b/Resources/Prototypes/DeltaV/Research/arsenal.yml @@ -12,4 +12,4 @@ recipeUnlocks: - CartridgeSpecialHoly # DeltaV - .38 Special revolver, Holy ammo - CartridgeSpecialMindbreaker # DeltaV - .38 Special revolver, Mindbreaker ammo - # - ShellSoulbreaker # Nyanotrasen - Soulbreaker shotgun ammo + - ShellSoulbreaker # Nyanotrasen - Soulbreaker shotgun ammo diff --git a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml index 136ecd3e475..ab0062c9eda 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml @@ -582,6 +582,7 @@ - MagazineBoxRifleIncendiary - CartridgeSpecialHoly # DeltaV - .38 Special revolver, Holy ammo - CartridgeSpecialMindbreaker # DeltaV - .38 Special revolver, Mindbreaker ammo + - ShellSoulbreaker # Nyanotrasen - Shotgun shell to get rid of psionics - MagazineBoxLightRiflePractice - MagazineBoxMagnumPractice - MagazineBoxPistolPractice @@ -607,6 +608,7 @@ - WeaponTaser - ClothingHeadHelmetInsulated # Nyanotrasen - Insulative headgear - ClothingHeadCage # Nyanotrasen - Insulative headgear + - ShockCollar # Nyanotrasen - Shock Collar - WeaponXrayCannon - type: MaterialStorage whitelist: diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Devices/shock_collar.yml b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Devices/shock_collar.yml new file mode 100644 index 00000000000..396db81819d --- /dev/null +++ b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Devices/shock_collar.yml @@ -0,0 +1,20 @@ +- type: entity + parent: ClothingNeckBase + id: ShockCollar + name: shock collar + description: Shocking. Placeholder sprite. + components: + - type: Sprite + sprite: Nyanotrasen/Clothing/Neck/Misc/shock.rsi + - type: Clothing + sprite: Nyanotrasen/Clothing/Neck/Misc/shock.rsi + - type: ShockCollar + - type: TriggerOnSignal + - type: DeviceNetwork + deviceNetId: Wireless + receiveFrequencyId: BasicDevice + - type: WirelessNetworkConnection + range: 200 + - type: DeviceLinkSink + ports: + - Trigger diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Chapel/bibles.yml b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Chapel/bibles.yml new file mode 100644 index 00000000000..c3a1dfa4362 --- /dev/null +++ b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Chapel/bibles.yml @@ -0,0 +1,14 @@ +- type: entity + parent: Bible + id: BibleMystagogue + name: book of mysteries + description: The mystagogue's holy book. + components: + - type: Summonable + specialItem: SpawnPointGhostIfrit + - type: Sprite + sprite: Nyanotrasen/Objects/Specific/Chapel/holylight.rsi + state: icon + - type: Item + size: 15 + sprite: Nyanotrasen/Objects/Specific/Chapel/holylight.rsi diff --git a/Resources/Prototypes/Nyanotrasen/Recipes/Lathes/security.yml b/Resources/Prototypes/Nyanotrasen/Recipes/Lathes/security.yml index c7ca6a40ae6..34aa7e7ce85 100644 --- a/Resources/Prototypes/Nyanotrasen/Recipes/Lathes/security.yml +++ b/Resources/Prototypes/Nyanotrasen/Recipes/Lathes/security.yml @@ -16,3 +16,28 @@ materials: Steel: 400 Bluespace: 20 + +- type: latheRecipe + id: ShockCollar + icon: + sprite: Nyanotrasen/Clothing/Neck/Misc/shock.rsi + state: icon + result: ShockCollar + completetime: 2 + materials: + Steel: 300 + Glass: 100 + Plastic: 100 + +- type: latheRecipe + id: ShellSoulbreaker + icon: + sprite: Objects/Weapons/Guns/Ammunition/Casings/shotgun_shell.rsi + state: practice + result: ShellSoulbreaker + completetime: 4 + materials: + Plastic: 15 + Steel: 10 + Bluespace: 10 + Glass: 5 diff --git a/Resources/Prototypes/Nyanotrasen/Research/experimental.yml b/Resources/Prototypes/Nyanotrasen/Research/experimental.yml index 262b24067d5..b5b65b842ef 100644 --- a/Resources/Prototypes/Nyanotrasen/Research/experimental.yml +++ b/Resources/Prototypes/Nyanotrasen/Research/experimental.yml @@ -12,7 +12,7 @@ recipeUnlocks: - ClothingHeadHelmetInsulated - ClothingHeadCage - # - ShellSoulbreaker + # - ShellSoulbreaker # DeltaV - Placing it under Exotic Ammunition because that's what it is. # Tier 3 diff --git a/Resources/Prototypes/Roles/Jobs/Science/research_director.yml b/Resources/Prototypes/Roles/Jobs/Science/research_director.yml index 4d177ad1d44..c109747b830 100644 --- a/Resources/Prototypes/Roles/Jobs/Science/research_director.yml +++ b/Resources/Prototypes/Roles/Jobs/Science/research_director.yml @@ -42,6 +42,7 @@ outerClothing: ClothingOuterCoatRndMysta # DeltaV - Mystagogue new coat id: RnDPDA ears: ClothingHeadsetRD + belt: BibleMystagogue # Nyanotrasen - Mystagogue book for their Ifrit innerclothingskirt: ClothingUniformJumpskirtResearchDirector satchel: ClothingBackpackSatchelResearchDirectorFilled duffelbag: ClothingBackpackDuffelResearchDirectorFilled diff --git a/Resources/Textures/Nyanotrasen/Objects/Specific/Chapel/holylight.rsi/icon.png b/Resources/Textures/Nyanotrasen/Objects/Specific/Chapel/holylight.rsi/icon.png new file mode 100644 index 00000000000..cf04b405150 Binary files /dev/null and b/Resources/Textures/Nyanotrasen/Objects/Specific/Chapel/holylight.rsi/icon.png differ diff --git a/Resources/Textures/Nyanotrasen/Objects/Specific/Chapel/holylight.rsi/inhand-left.png b/Resources/Textures/Nyanotrasen/Objects/Specific/Chapel/holylight.rsi/inhand-left.png new file mode 100644 index 00000000000..71aaa79558e Binary files /dev/null and b/Resources/Textures/Nyanotrasen/Objects/Specific/Chapel/holylight.rsi/inhand-left.png differ diff --git a/Resources/Textures/Nyanotrasen/Objects/Specific/Chapel/holylight.rsi/inhand-right.png b/Resources/Textures/Nyanotrasen/Objects/Specific/Chapel/holylight.rsi/inhand-right.png new file mode 100644 index 00000000000..8a5776b54ed Binary files /dev/null and b/Resources/Textures/Nyanotrasen/Objects/Specific/Chapel/holylight.rsi/inhand-right.png differ diff --git a/Resources/Textures/Nyanotrasen/Objects/Specific/Chapel/holylight.rsi/meta.json b/Resources/Textures/Nyanotrasen/Objects/Specific/Chapel/holylight.rsi/meta.json new file mode 100644 index 00000000000..a253b74d975 --- /dev/null +++ b/Resources/Textures/Nyanotrasen/Objects/Specific/Chapel/holylight.rsi/meta.json @@ -0,0 +1,22 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at https://github.com/tgstation/tgstation/commit/40d89d11ea4a5cb81d61dc1018b46f4e7d32c62a", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +}