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