From 6463b1885aaf6671cc0c16b54875f1fae52727e9 Mon Sep 17 00:00:00 2001 From: JDtrimble Date: Thu, 4 Jul 2024 19:40:35 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20?= =?UTF-8?q?=D0=B0=D0=B2=D1=82=D0=BE=D0=BC=D0=B0=D1=82=D0=B8=D1=87=D0=B5?= =?UTF-8?q?=D1=81=D0=BA=D0=B8=D0=B9=20=D1=82=D0=B5=D0=BB=D0=B5=D0=BF=D0=BE?= =?UTF-8?q?=D1=80=D1=82=20=D0=B2=20=D0=BA=D1=80=D0=B8=D0=BE=D0=BA=D0=B0?= =?UTF-8?q?=D0=BF=D1=81=D1=83=D0=BB=D1=83=20=D0=BF=D1=80=D0=BE=D1=84=D0=B5?= =?UTF-8?q?=D1=81=D1=81=D0=B8=D0=B9.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: JDtrimble --- .../AutoCryostorageComponent.cs | 23 +++++ .../AutoCryostorage/AutoCryostorageSystem.cs | 83 +++++++++++++++++++ .../_sunrise/auto_cryostorage/portal.ftl | 2 + .../_sunrise/auto_cryostorage/portal.ftl | 2 + .../Roles/Jobs/Civilian/assistant.yml | 4 + .../Roles/Jobs/Civilian/bartender.yml | 4 + .../Roles/Jobs/Civilian/botanist.yml | 4 + .../Roles/Jobs/Civilian/chaplain.yml | 1 + .../Prototypes/Roles/Jobs/Civilian/chef.yml | 4 + .../Prototypes/Roles/Jobs/Civilian/clown.yml | 1 + .../Roles/Jobs/Civilian/janitor.yml | 3 + .../Prototypes/Roles/Jobs/Civilian/lawyer.yml | 4 + .../Roles/Jobs/Civilian/librarian.yml | 4 + .../Prototypes/Roles/Jobs/Civilian/mime.yml | 1 + .../Roles/Jobs/Civilian/musician.yml | 3 + .../Roles/Jobs/Civilian/service_worker.yml | 4 + .../Prototypes/Roles/Jobs/Command/captain.yml | 1 + .../Roles/Jobs/Command/head_of_personnel.yml | 1 + .../Engineering/atmospheric_technician.yml | 4 + .../Roles/Jobs/Engineering/chief_engineer.yml | 1 + .../Jobs/Engineering/station_engineer.yml | 4 + .../Jobs/Engineering/technical_assistant.yml | 4 + .../Prototypes/Roles/Jobs/Medical/chemist.yml | 4 + .../Jobs/Medical/chief_medical_officer.yml | 1 + .../Roles/Jobs/Medical/medical_doctor.yml | 4 + .../Roles/Jobs/Medical/medical_intern.yml | 4 + .../Roles/Jobs/Medical/paramedic.yml | 4 + .../Roles/Jobs/Science/research_assistant.yml | 4 + .../Roles/Jobs/Science/research_director.yml | 1 + .../Roles/Jobs/Science/scientist.yml | 4 + .../Roles/Jobs/Security/detective.yml | 3 + .../Roles/Jobs/Security/head_of_security.yml | 1 + .../Roles/Jobs/Security/security_cadet.yml | 3 + .../Roles/Jobs/Security/security_officer.yml | 3 + .../Prototypes/Roles/Jobs/Security/warden.yml | 3 + .../_Sunrise/AutoCryostorage/portal.yml | 31 +++++++ .../Roles/Jobs/Blueshield/blueshield.yml | 3 + .../Jobs/Engineering/senior_engineer.yml | 4 + .../_Sunrise/Roles/Jobs/Law/Magistrat.yml | 1 + .../_Sunrise/Roles/Jobs/Law/iaa.yml | 3 + .../Roles/Jobs/Medical/senior_physician.yml | 4 + .../Roles/Jobs/Science/roboticist.yml | 4 + .../Roles/Jobs/Science/senior_researcher.yml | 4 + .../Roles/Jobs/Security/brigmedic.yml | 3 + .../Roles/Jobs/Security/senior_officer.yml | 3 + 45 files changed, 261 insertions(+) create mode 100644 Content.Server/_Sunrise/AutoCryostorage/AutoCryostorageComponent.cs create mode 100644 Content.Server/_Sunrise/AutoCryostorage/AutoCryostorageSystem.cs create mode 100644 Resources/Locale/en-US/_sunrise/auto_cryostorage/portal.ftl create mode 100644 Resources/Locale/ru-RU/_sunrise/auto_cryostorage/portal.ftl create mode 100644 Resources/Prototypes/_Sunrise/AutoCryostorage/portal.yml diff --git a/Content.Server/_Sunrise/AutoCryostorage/AutoCryostorageComponent.cs b/Content.Server/_Sunrise/AutoCryostorage/AutoCryostorageComponent.cs new file mode 100644 index 00000000000..96f33e3c91d --- /dev/null +++ b/Content.Server/_Sunrise/AutoCryostorage/AutoCryostorageComponent.cs @@ -0,0 +1,23 @@ +using System.Threading; +using Robust.Shared.Audio; + +namespace Content.Server._Sunrise.AutoCryostorage; + +/// +/// This is used for... +/// +[RegisterComponent] +public sealed partial class AutoCryostorageComponent : Component +{ + [DataField] + public TimeSpan TransferDelay = TimeSpan.FromSeconds(600); // 600 секунд перед перемещением в крио + + [DataField] + public bool IsCounting = false; + + [DataField] + public string? PortalPrototype = "PortalCryo"; + + [DataField] + public SoundSpecifier? EnterSound = new SoundPathSpecifier("/Audio/Effects/teleport_departure.ogg"); +} diff --git a/Content.Server/_Sunrise/AutoCryostorage/AutoCryostorageSystem.cs b/Content.Server/_Sunrise/AutoCryostorage/AutoCryostorageSystem.cs new file mode 100644 index 00000000000..b2487cb7dd6 --- /dev/null +++ b/Content.Server/_Sunrise/AutoCryostorage/AutoCryostorageSystem.cs @@ -0,0 +1,83 @@ +using Robust.Shared.Player; +using Robust.Shared.Timing; +using Content.Server.Bed.Cryostorage; +using Content.Shared.Bed.Cryostorage; +using Content.Shared.Mind; +using Content.Shared.Objectives.Systems; +using Robust.Shared.Audio.Systems; +using Timer = Robust.Shared.Timing.Timer; + +namespace Content.Server._Sunrise.AutoCryostorage; + +public sealed class AutoCryostorageSystem : EntitySystem +{ + [Dependency] private readonly CryostorageSystem _cryostorageSystem = default!; + [Dependency] private readonly SharedMindSystem Mind = default!; + [Dependency] private readonly IGameTiming Timing = default!; + [Dependency] private readonly IEntityManager _entMan = default!; + [Dependency] private readonly SharedAudioSystem _audio = default!; + + public override void Initialize() + { + SubscribeLocalEvent(OnPlayerAttached); + SubscribeLocalEvent(OnPlayerDetached); + } + + private void OnPlayerAttached(EntityUid uid, AutoCryostorageComponent comp, PlayerAttachedEvent ev) + { + if (!comp.IsCounting) + return; + + comp.IsCounting = false; + } + + private void OnPlayerDetached(EntityUid uid, AutoCryostorageComponent comp, PlayerDetachedEvent ev) + { + if (comp.IsCounting) + return; + + comp.IsCounting = true; + Timer.Spawn(comp.TransferDelay, () => TransferToCryo(uid, comp)); + } + + private void TransferToCryo(EntityUid uid, AutoCryostorageComponent comp) + { + if (!comp.IsCounting) + return; + + if (!HasComp(uid)) + return; + + if (!TryComp(uid, out var entityXform)) + return; + + var cryos = AllEntityQuery(); + var found = false; + while (cryos.MoveNext(out var cryoUid, out var cryoComp)) + { + if (entityXform.MapUid != Transform(cryoUid).MapUid) + continue; + + _entMan.SpawnEntity(comp.PortalPrototype, entityXform.Coordinates); + _audio.PlayPredicted(comp.EnterSound, entityXform.Coordinates, uid); + + var containedComp = EnsureComp(uid); + var delay = Mind.TryGetMind(uid, out var mindId, out var mindComp) + ? cryoComp.GracePeriod + : cryoComp.NoMindGracePeriod; + containedComp.GracePeriodEndTime = Timing.CurTime + delay; + containedComp.Cryostorage = cryoUid; + var id = mindComp?.UserId ?? containedComp.UserId; + + _cryostorageSystem.HandleEnterCryostorage((uid, containedComp), id); + + cryos.Dispose(); + found = true; + } + + if (!found) + { + Console.WriteLine($"Haven't found any cryos to insert entity {uid}"); + } + } +} diff --git a/Resources/Locale/en-US/_sunrise/auto_cryostorage/portal.ftl b/Resources/Locale/en-US/_sunrise/auto_cryostorage/portal.ftl new file mode 100644 index 00000000000..a45aef3cfcb --- /dev/null +++ b/Resources/Locale/en-US/_sunrise/auto_cryostorage/portal.ftl @@ -0,0 +1,2 @@ +ent-PortalCryo = { ent-BasePortal } + .desc = { ent-BasePortal.desc } diff --git a/Resources/Locale/ru-RU/_sunrise/auto_cryostorage/portal.ftl b/Resources/Locale/ru-RU/_sunrise/auto_cryostorage/portal.ftl new file mode 100644 index 00000000000..a45aef3cfcb --- /dev/null +++ b/Resources/Locale/ru-RU/_sunrise/auto_cryostorage/portal.ftl @@ -0,0 +1,2 @@ +ent-PortalCryo = { ent-BasePortal } + .desc = { ent-BasePortal.desc } diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/assistant.yml b/Resources/Prototypes/Roles/Jobs/Civilian/assistant.yml index 5155c8ca00e..aca06d83a9f 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/assistant.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/assistant.yml @@ -8,6 +8,10 @@ supervisors: job-supervisors-everyone access: - Maintenance + special: + - !type:AddComponentSpecial + components: + - type: AutoCryostorage # Sunrise-Cryo - type: startingGear id: PassengerGear diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/bartender.yml b/Resources/Prototypes/Roles/Jobs/Civilian/bartender.yml index 1b3baf1e466..e8575ac0c0c 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/bartender.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/bartender.yml @@ -17,6 +17,10 @@ extendedAccess: - Kitchen - Hydroponics + special: + - !type:AddComponentSpecial + components: + - type: AutoCryostorage # Sunrise-Cryo - type: startingGear id: BartenderGear diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/botanist.yml b/Resources/Prototypes/Roles/Jobs/Civilian/botanist.yml index dd25a2abe2e..7ba7419e523 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/botanist.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/botanist.yml @@ -13,6 +13,10 @@ extendedAccess: - Kitchen - Bar + special: + - !type:AddComponentSpecial + components: + - type: AutoCryostorage # Sunrise-Cryo - type: startingGear id: BotanistGear diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/chaplain.yml b/Resources/Prototypes/Roles/Jobs/Civilian/chaplain.yml index 1ab77dbae58..3696051f1da 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/chaplain.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/chaplain.yml @@ -12,6 +12,7 @@ special: - !type:AddComponentSpecial components: + - type: AutoCryostorage # Sunrise-Cryo - type: BibleUser #Lets them heal with bibles - type: startingGear diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/chef.yml b/Resources/Prototypes/Roles/Jobs/Civilian/chef.yml index 43c448aac91..311c924b40d 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/chef.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/chef.yml @@ -17,6 +17,10 @@ extendedAccess: - Hydroponics - Bar + special: + - !type:AddComponentSpecial + components: + - type: AutoCryostorage # Sunrise-Cryo - type: startingGear id: ChefGear diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/clown.yml b/Resources/Prototypes/Roles/Jobs/Civilian/clown.yml index c862135fd77..27e15c49e14 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/clown.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/clown.yml @@ -25,6 +25,7 @@ - type: SleepEmitSound snore: /Audio/Voice/Misc/silly_snore.ogg interval: 10 + - type: AutoCryostorage # Sunrise-Cryo - !type:AddImplantSpecial implants: [ SadTromboneImplant ] diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/janitor.yml b/Resources/Prototypes/Roles/Jobs/Civilian/janitor.yml index d361348a6e0..0136b1c3d9b 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/janitor.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/janitor.yml @@ -14,6 +14,9 @@ - !type:GiveItemOnHolidaySpecial holiday: GarbageDay prototype: WeaponRevolverInspector + - !type:AddComponentSpecial + components: + - type: AutoCryostorage # Sunrise-Cryo - type: startingGear id: JanitorGear diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/lawyer.yml b/Resources/Prototypes/Roles/Jobs/Civilian/lawyer.yml index 713cde0e0c3..aaa1fc7e388 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/lawyer.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/lawyer.yml @@ -14,6 +14,10 @@ - Lawyer - Brig - Maintenance + special: + - !type:AddComponentSpecial + components: + - type: AutoCryostorage # Sunrise-Cryo - type: startingGear id: LawyerGear diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/librarian.yml b/Resources/Prototypes/Roles/Jobs/Civilian/librarian.yml index d865d57cab3..735f3037fb5 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/librarian.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/librarian.yml @@ -9,6 +9,10 @@ access: - Service - Maintenance + special: + - !type:AddComponentSpecial + components: + - type: AutoCryostorage # Sunrise-Cryo - type: startingGear id: LibrarianGear diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/mime.yml b/Resources/Prototypes/Roles/Jobs/Civilian/mime.yml index 601a1179f84..f04c0b4a85b 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/mime.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/mime.yml @@ -17,6 +17,7 @@ components: - type: MimePowers - type: FrenchAccent + - type: AutoCryostorage # Sunrise-Cryo - type: startingGear id: MimeGear diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/musician.yml b/Resources/Prototypes/Roles/Jobs/Civilian/musician.yml index e08c6aec8cc..81f81c94dcf 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/musician.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/musician.yml @@ -13,6 +13,9 @@ - !type:GiveItemOnHolidaySpecial holiday: MikuDay prototype: BoxPerformer + - !type:AddComponentSpecial + components: + - type: AutoCryostorage # Sunrise-Cryo - type: startingGear id: MusicianGear diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/service_worker.yml b/Resources/Prototypes/Roles/Jobs/Civilian/service_worker.yml index e883f4cc669..2dc70785317 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/service_worker.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/service_worker.yml @@ -14,6 +14,10 @@ - Kitchen extendedAccess: - Hydroponics + special: + - !type:AddComponentSpecial + components: + - type: AutoCryostorage # Sunrise-Cryo - type: startingGear id: ServiceWorkerGear diff --git a/Resources/Prototypes/Roles/Jobs/Command/captain.yml b/Resources/Prototypes/Roles/Jobs/Command/captain.yml index 81b4fb183fe..7d516308429 100644 --- a/Resources/Prototypes/Roles/Jobs/Command/captain.yml +++ b/Resources/Prototypes/Roles/Jobs/Command/captain.yml @@ -31,6 +31,7 @@ - !type:AddComponentSpecial components: - type: CommandStaff + - type: AutoCryostorage # Sunrise-Cryo speciesBlacklist: - Vox diff --git a/Resources/Prototypes/Roles/Jobs/Command/head_of_personnel.yml b/Resources/Prototypes/Roles/Jobs/Command/head_of_personnel.yml index 119d1fc43eb..d5064b83b37 100644 --- a/Resources/Prototypes/Roles/Jobs/Command/head_of_personnel.yml +++ b/Resources/Prototypes/Roles/Jobs/Command/head_of_personnel.yml @@ -55,6 +55,7 @@ - !type:AddComponentSpecial components: - type: CommandStaff + - type: AutoCryostorage # Sunrise-Cryo speciesBlacklist: - Vox diff --git a/Resources/Prototypes/Roles/Jobs/Engineering/atmospheric_technician.yml b/Resources/Prototypes/Roles/Jobs/Engineering/atmospheric_technician.yml index 27d1d276d8e..f074e52b9a2 100644 --- a/Resources/Prototypes/Roles/Jobs/Engineering/atmospheric_technician.yml +++ b/Resources/Prototypes/Roles/Jobs/Engineering/atmospheric_technician.yml @@ -15,6 +15,10 @@ - Engineering - External - Atmospherics + special: + - !type:AddComponentSpecial + components: + - type: AutoCryostorage # Sunrise-Cryo - type: startingGear id: AtmosphericTechnicianGear diff --git a/Resources/Prototypes/Roles/Jobs/Engineering/chief_engineer.yml b/Resources/Prototypes/Roles/Jobs/Engineering/chief_engineer.yml index 67619e73e8d..d2c40ff7645 100644 --- a/Resources/Prototypes/Roles/Jobs/Engineering/chief_engineer.yml +++ b/Resources/Prototypes/Roles/Jobs/Engineering/chief_engineer.yml @@ -32,6 +32,7 @@ - !type:AddComponentSpecial components: - type: CommandStaff + - type: AutoCryostorage # Sunrise-Cryo speciesBlacklist: - Vox diff --git a/Resources/Prototypes/Roles/Jobs/Engineering/station_engineer.yml b/Resources/Prototypes/Roles/Jobs/Engineering/station_engineer.yml index 3a2314b3460..28f3f9665da 100644 --- a/Resources/Prototypes/Roles/Jobs/Engineering/station_engineer.yml +++ b/Resources/Prototypes/Roles/Jobs/Engineering/station_engineer.yml @@ -16,6 +16,10 @@ - External extendedAccess: - Atmospherics + special: + - !type:AddComponentSpecial + components: + - type: AutoCryostorage # Sunrise-Cryo - type: startingGear id: StationEngineerGear diff --git a/Resources/Prototypes/Roles/Jobs/Engineering/technical_assistant.yml b/Resources/Prototypes/Roles/Jobs/Engineering/technical_assistant.yml index 7efce252dcb..386005a75f7 100644 --- a/Resources/Prototypes/Roles/Jobs/Engineering/technical_assistant.yml +++ b/Resources/Prototypes/Roles/Jobs/Engineering/technical_assistant.yml @@ -18,6 +18,10 @@ - Maintenance - Engineering - External + special: + - !type:AddComponentSpecial + components: + - type: AutoCryostorage # Sunrise-Cryo - type: startingGear id: TechnicalAssistantGear diff --git a/Resources/Prototypes/Roles/Jobs/Medical/chemist.yml b/Resources/Prototypes/Roles/Jobs/Medical/chemist.yml index 56adbb52ddb..22d1351fe1f 100644 --- a/Resources/Prototypes/Roles/Jobs/Medical/chemist.yml +++ b/Resources/Prototypes/Roles/Jobs/Medical/chemist.yml @@ -14,6 +14,10 @@ - Medical - Chemistry - Maintenance + special: + - !type:AddComponentSpecial + components: + - type: AutoCryostorage # Sunrise-Cryo - type: startingGear id: ChemistGear diff --git a/Resources/Prototypes/Roles/Jobs/Medical/chief_medical_officer.yml b/Resources/Prototypes/Roles/Jobs/Medical/chief_medical_officer.yml index d6ea7a962d0..7a859f030b4 100644 --- a/Resources/Prototypes/Roles/Jobs/Medical/chief_medical_officer.yml +++ b/Resources/Prototypes/Roles/Jobs/Medical/chief_medical_officer.yml @@ -33,6 +33,7 @@ - !type:AddComponentSpecial components: - type: CommandStaff + - type: AutoCryostorage # Sunrise-Cryo speciesBlacklist: - Vox diff --git a/Resources/Prototypes/Roles/Jobs/Medical/medical_doctor.yml b/Resources/Prototypes/Roles/Jobs/Medical/medical_doctor.yml index 9b999f7ef46..f81359687db 100644 --- a/Resources/Prototypes/Roles/Jobs/Medical/medical_doctor.yml +++ b/Resources/Prototypes/Roles/Jobs/Medical/medical_doctor.yml @@ -15,6 +15,10 @@ - Maintenance extendedAccess: - Chemistry + special: + - !type:AddComponentSpecial + components: + - type: AutoCryostorage # Sunrise-Cryo - type: startingGear id: DoctorGear diff --git a/Resources/Prototypes/Roles/Jobs/Medical/medical_intern.yml b/Resources/Prototypes/Roles/Jobs/Medical/medical_intern.yml index cb67e753f6e..9177094bca4 100644 --- a/Resources/Prototypes/Roles/Jobs/Medical/medical_intern.yml +++ b/Resources/Prototypes/Roles/Jobs/Medical/medical_intern.yml @@ -15,6 +15,10 @@ access: - Medical - Maintenance + special: + - !type:AddComponentSpecial + components: + - type: AutoCryostorage # Sunrise-Cryo - type: startingGear id: MedicalInternGear diff --git a/Resources/Prototypes/Roles/Jobs/Medical/paramedic.yml b/Resources/Prototypes/Roles/Jobs/Medical/paramedic.yml index bac5270c47f..40908329c23 100644 --- a/Resources/Prototypes/Roles/Jobs/Medical/paramedic.yml +++ b/Resources/Prototypes/Roles/Jobs/Medical/paramedic.yml @@ -17,6 +17,10 @@ - Maintenance extendedAccess: - Chemistry + special: + - !type:AddComponentSpecial + components: + - type: AutoCryostorage # Sunrise-Cryo - type: startingGear id: ParamedicGear diff --git a/Resources/Prototypes/Roles/Jobs/Science/research_assistant.yml b/Resources/Prototypes/Roles/Jobs/Science/research_assistant.yml index f5ea610651f..a9ccda96bac 100644 --- a/Resources/Prototypes/Roles/Jobs/Science/research_assistant.yml +++ b/Resources/Prototypes/Roles/Jobs/Science/research_assistant.yml @@ -15,6 +15,10 @@ access: - Research - Maintenance + special: + - !type:AddComponentSpecial + components: + - type: AutoCryostorage # Sunrise-Cryo - type: startingGear id: ResearchAssistantGear diff --git a/Resources/Prototypes/Roles/Jobs/Science/research_director.yml b/Resources/Prototypes/Roles/Jobs/Science/research_director.yml index 913f1980eba..49d6a9991bf 100644 --- a/Resources/Prototypes/Roles/Jobs/Science/research_director.yml +++ b/Resources/Prototypes/Roles/Jobs/Science/research_director.yml @@ -27,6 +27,7 @@ - !type:AddComponentSpecial components: - type: CommandStaff + - type: AutoCryostorage # Sunrise-Cryo speciesBlacklist: - Vox diff --git a/Resources/Prototypes/Roles/Jobs/Science/scientist.yml b/Resources/Prototypes/Roles/Jobs/Science/scientist.yml index b0609a51277..1fe6748f520 100644 --- a/Resources/Prototypes/Roles/Jobs/Science/scientist.yml +++ b/Resources/Prototypes/Roles/Jobs/Science/scientist.yml @@ -13,6 +13,10 @@ access: - Research - Maintenance + special: + - !type:AddComponentSpecial + components: + - type: AutoCryostorage # Sunrise-Cryo - type: startingGear id: ScientistGear diff --git a/Resources/Prototypes/Roles/Jobs/Security/detective.yml b/Resources/Prototypes/Roles/Jobs/Security/detective.yml index b45aaa97af3..6733dc11ffb 100644 --- a/Resources/Prototypes/Roles/Jobs/Security/detective.yml +++ b/Resources/Prototypes/Roles/Jobs/Security/detective.yml @@ -20,6 +20,9 @@ special: - !type:AddImplantSpecial implants: [ MindShieldImplant ] + - !type:AddComponentSpecial + components: + - type: AutoCryostorage # Sunrise-Cryo speciesBlacklist: - Vox diff --git a/Resources/Prototypes/Roles/Jobs/Security/head_of_security.yml b/Resources/Prototypes/Roles/Jobs/Security/head_of_security.yml index 3b3d79521b0..b178e2228b9 100644 --- a/Resources/Prototypes/Roles/Jobs/Security/head_of_security.yml +++ b/Resources/Prototypes/Roles/Jobs/Security/head_of_security.yml @@ -34,6 +34,7 @@ - !type:AddComponentSpecial components: - type: CommandStaff + - type: AutoCryostorage # Sunrise-Cryo speciesBlacklist: - Vox diff --git a/Resources/Prototypes/Roles/Jobs/Security/security_cadet.yml b/Resources/Prototypes/Roles/Jobs/Security/security_cadet.yml index 6e39d24b58d..2ab8fc78238 100644 --- a/Resources/Prototypes/Roles/Jobs/Security/security_cadet.yml +++ b/Resources/Prototypes/Roles/Jobs/Security/security_cadet.yml @@ -24,6 +24,9 @@ special: - !type:AddImplantSpecial implants: [ MindShieldImplant ] + - !type:AddComponentSpecial + components: + - type: AutoCryostorage # Sunrise-Cryo speciesBlacklist: - Vox diff --git a/Resources/Prototypes/Roles/Jobs/Security/security_officer.yml b/Resources/Prototypes/Roles/Jobs/Security/security_officer.yml index fb5c4871dc4..987ec2b1ba4 100644 --- a/Resources/Prototypes/Roles/Jobs/Security/security_officer.yml +++ b/Resources/Prototypes/Roles/Jobs/Security/security_officer.yml @@ -21,6 +21,9 @@ special: - !type:AddImplantSpecial implants: [ MindShieldImplant ] + - !type:AddComponentSpecial + components: + - type: AutoCryostorage # Sunrise-Cryo speciesBlacklist: - Vox diff --git a/Resources/Prototypes/Roles/Jobs/Security/warden.yml b/Resources/Prototypes/Roles/Jobs/Security/warden.yml index bb08115cd08..139de02f7f5 100644 --- a/Resources/Prototypes/Roles/Jobs/Security/warden.yml +++ b/Resources/Prototypes/Roles/Jobs/Security/warden.yml @@ -23,6 +23,9 @@ special: - !type:AddImplantSpecial implants: [ MindShieldImplant ] + - !type:AddComponentSpecial + components: + - type: AutoCryostorage # Sunrise-Cryo speciesBlacklist: - Vox diff --git a/Resources/Prototypes/_Sunrise/AutoCryostorage/portal.yml b/Resources/Prototypes/_Sunrise/AutoCryostorage/portal.yml new file mode 100644 index 00000000000..42169639ef0 --- /dev/null +++ b/Resources/Prototypes/_Sunrise/AutoCryostorage/portal.yml @@ -0,0 +1,31 @@ +- type: entity + id: PortalCryo + components: + - type: Transform + anchored: False + - type: InteractionOutline + - type: Clickable + - type: Physics + bodyType: Static + - type: Sprite + sprite: /Textures/Effects/portal.rsi + layers: + - state: portal-blue + - type: Fixtures + fixtures: + portalFixture: + shape: + !type:PhysShapeAabb + bounds: "-0.25,-0.48,0.25,0.48" + mask: + - FullTileMask + layer: + - WallLayer + hard: false + - type: PointLight + color: SkyBlue + radius: 3 + energy: 1 + netsync: false + - type: TimedDespawn + lifetime: 2 diff --git a/Resources/Prototypes/_Sunrise/Roles/Jobs/Blueshield/blueshield.yml b/Resources/Prototypes/_Sunrise/Roles/Jobs/Blueshield/blueshield.yml index e15d50e6807..e211d54b663 100644 --- a/Resources/Prototypes/_Sunrise/Roles/Jobs/Blueshield/blueshield.yml +++ b/Resources/Prototypes/_Sunrise/Roles/Jobs/Blueshield/blueshield.yml @@ -40,6 +40,9 @@ special: - !type:AddImplantSpecial implants: [MindShieldImplant] + - !type:AddComponentSpecial + components: + - type: AutoCryostorage # Sunrise-Cryo - type: startingGear id: BlueShieldGear diff --git a/Resources/Prototypes/_Sunrise/Roles/Jobs/Engineering/senior_engineer.yml b/Resources/Prototypes/_Sunrise/Roles/Jobs/Engineering/senior_engineer.yml index 586af69c2a3..a8dcd471047 100644 --- a/Resources/Prototypes/_Sunrise/Roles/Jobs/Engineering/senior_engineer.yml +++ b/Resources/Prototypes/_Sunrise/Roles/Jobs/Engineering/senior_engineer.yml @@ -22,6 +22,10 @@ - Engineering - External - Atmospherics + special: + - !type:AddComponentSpecial + components: + - type: AutoCryostorage # Sunrise-Cryo - type: startingGear id: SeniorEngineerGear diff --git a/Resources/Prototypes/_Sunrise/Roles/Jobs/Law/Magistrat.yml b/Resources/Prototypes/_Sunrise/Roles/Jobs/Law/Magistrat.yml index ed69badd1c8..7944ddbf873 100644 --- a/Resources/Prototypes/_Sunrise/Roles/Jobs/Law/Magistrat.yml +++ b/Resources/Prototypes/_Sunrise/Roles/Jobs/Law/Magistrat.yml @@ -36,6 +36,7 @@ - !type:AddComponentSpecial components: - type: CommandStaff + - type: AutoCryostorage # Sunrise-Cryo speciesBlacklist: - Vox diff --git a/Resources/Prototypes/_Sunrise/Roles/Jobs/Law/iaa.yml b/Resources/Prototypes/_Sunrise/Roles/Jobs/Law/iaa.yml index 4a35b6b891f..3d587573c61 100644 --- a/Resources/Prototypes/_Sunrise/Roles/Jobs/Law/iaa.yml +++ b/Resources/Prototypes/_Sunrise/Roles/Jobs/Law/iaa.yml @@ -24,6 +24,9 @@ special: - !type:AddImplantSpecial implants: [ MindShieldImplant ] + - !type:AddComponentSpecial + components: + - type: AutoCryostorage # Sunrise-Cryo speciesBlacklist: - Vox diff --git a/Resources/Prototypes/_Sunrise/Roles/Jobs/Medical/senior_physician.yml b/Resources/Prototypes/_Sunrise/Roles/Jobs/Medical/senior_physician.yml index 1ae6ad39a25..28b784cc535 100644 --- a/Resources/Prototypes/_Sunrise/Roles/Jobs/Medical/senior_physician.yml +++ b/Resources/Prototypes/_Sunrise/Roles/Jobs/Medical/senior_physician.yml @@ -20,6 +20,10 @@ - Medical - Maintenance - Chemistry + special: + - !type:AddComponentSpecial + components: + - type: AutoCryostorage # Sunrise-Cryo - type: startingGear id: SeniorPhysicianGear diff --git a/Resources/Prototypes/_Sunrise/Roles/Jobs/Science/roboticist.yml b/Resources/Prototypes/_Sunrise/Roles/Jobs/Science/roboticist.yml index 0569ba27294..c840e106837 100644 --- a/Resources/Prototypes/_Sunrise/Roles/Jobs/Science/roboticist.yml +++ b/Resources/Prototypes/_Sunrise/Roles/Jobs/Science/roboticist.yml @@ -17,6 +17,10 @@ - Research - Maintenance - Engineering + special: + - !type:AddComponentSpecial + components: + - type: AutoCryostorage # Sunrise-Cryo - type: startingGear id: RoboticistGear diff --git a/Resources/Prototypes/_Sunrise/Roles/Jobs/Science/senior_researcher.yml b/Resources/Prototypes/_Sunrise/Roles/Jobs/Science/senior_researcher.yml index 2be3ad935f9..ef83f1ead07 100644 --- a/Resources/Prototypes/_Sunrise/Roles/Jobs/Science/senior_researcher.yml +++ b/Resources/Prototypes/_Sunrise/Roles/Jobs/Science/senior_researcher.yml @@ -13,6 +13,10 @@ access: - Research - Maintenance + special: + - !type:AddComponentSpecial + components: + - type: AutoCryostorage # Sunrise-Cryo - type: startingGear id: SeniorResearcherGear diff --git a/Resources/Prototypes/_Sunrise/Roles/Jobs/Security/brigmedic.yml b/Resources/Prototypes/_Sunrise/Roles/Jobs/Security/brigmedic.yml index bdc69173740..939213881b5 100644 --- a/Resources/Prototypes/_Sunrise/Roles/Jobs/Security/brigmedic.yml +++ b/Resources/Prototypes/_Sunrise/Roles/Jobs/Security/brigmedic.yml @@ -23,6 +23,9 @@ special: - !type:AddImplantSpecial implants: [ MindShieldImplant ] + - !type:AddComponentSpecial + components: + - type: AutoCryostorage # Sunrise-Cryo - type: startingGear id: BrigmedicGear diff --git a/Resources/Prototypes/_Sunrise/Roles/Jobs/Security/senior_officer.yml b/Resources/Prototypes/_Sunrise/Roles/Jobs/Security/senior_officer.yml index 7c4f3507004..984908c75b6 100644 --- a/Resources/Prototypes/_Sunrise/Roles/Jobs/Security/senior_officer.yml +++ b/Resources/Prototypes/_Sunrise/Roles/Jobs/Security/senior_officer.yml @@ -29,6 +29,9 @@ special: - !type:AddImplantSpecial implants: [ MindShieldImplant ] + - !type:AddComponentSpecial + components: + - type: AutoCryostorage # Sunrise-Cryo - type: startingGear id: SeniorOfficerGear