diff --git a/Content.Server/_White/AddImplant/AddImplantComponent.cs b/Content.Server/_White/AddImplant/AddImplantComponent.cs
new file mode 100644
index 0000000000..b5ff2d3021
--- /dev/null
+++ b/Content.Server/_White/AddImplant/AddImplantComponent.cs
@@ -0,0 +1,14 @@
+using Robust.Shared.Prototypes;
+using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.Set;
+
+namespace Content.Server._White.AddImplant;
+
+///
+/// WD.
+///
+[RegisterComponent]
+public sealed partial class AddImplantComponent : Component
+{
+ [DataField("implants", customTypeSerializer: typeof(PrototypeIdHashSetSerializer))]
+ public HashSet Implants { get; private set; } = new();
+}
diff --git a/Content.Server/_White/AddImplant/AddImplantSystem.cs b/Content.Server/_White/AddImplant/AddImplantSystem.cs
new file mode 100644
index 0000000000..34ee6eae10
--- /dev/null
+++ b/Content.Server/_White/AddImplant/AddImplantSystem.cs
@@ -0,0 +1,21 @@
+
+using Content.Shared.Examine;
+using Content.Shared.Implants;
+
+namespace Content.Server._White.AddImplant;
+
+public sealed class AddImplantSystem : EntitySystem
+{
+ [Dependency] private readonly SharedSubdermalImplantSystem _implantSystem = default!;
+ public override void Initialize()
+ {
+ base.Initialize();
+
+ SubscribeLocalEvent(OnMapInit);
+ }
+ public void OnMapInit(Entity ent, ref MapInitEvent args)
+ {
+ _implantSystem.AddImplants(ent.Owner, ent.Comp.Implants);
+ RemComp(ent.Owner);
+ }
+}
diff --git a/Content.Server/_White/FillIDCard/ContractorIDCardComponent.cs b/Content.Server/_White/FillIDCard/ContractorIDCardComponent.cs
new file mode 100644
index 0000000000..4ecf2b1bb9
--- /dev/null
+++ b/Content.Server/_White/FillIDCard/ContractorIDCardComponent.cs
@@ -0,0 +1,11 @@
+namespace Content.Server._White.ContractorIDCard;
+
+///
+/// WD.
+///
+[RegisterComponent]
+public sealed partial class ContractorIDCardComponent : Component
+{
+ [DataField]
+ public string Details = string.Empty;
+}
diff --git a/Content.Server/_White/FillIDCard/ContractorIDCardSystem.cs b/Content.Server/_White/FillIDCard/ContractorIDCardSystem.cs
new file mode 100644
index 0000000000..0306333d04
--- /dev/null
+++ b/Content.Server/_White/FillIDCard/ContractorIDCardSystem.cs
@@ -0,0 +1,24 @@
+
+using Content.Shared.Examine;
+
+namespace Content.Server._White.ContractorIDCard;
+
+public sealed class ContractorIDCardSystem : EntitySystem
+{
+ public override void Initialize()
+ {
+ base.Initialize();
+
+ SubscribeLocalEvent(OnExamined);
+ }
+ public void OnExamined(Entity ent, ref ExaminedEvent args)
+ {
+ if (!args.IsInDetailsRange)
+ return;
+
+ if (ent.Comp.Details == string.Empty)
+ return;
+
+ args.PushMarkup(ent.Comp.Details);
+ }
+}
diff --git a/Content.Server/_White/FillIDCard/FillIDCardComponent.cs b/Content.Server/_White/FillIDCard/FillIDCardComponent.cs
new file mode 100644
index 0000000000..21844b80e1
--- /dev/null
+++ b/Content.Server/_White/FillIDCard/FillIDCardComponent.cs
@@ -0,0 +1,11 @@
+namespace Content.Server._White.FillIDCard;
+
+///
+/// WD.
+///
+[RegisterComponent]
+public sealed partial class FillIDCardComponent : Component
+{
+ [DataField]
+ public bool IsContractor = false;
+}
diff --git a/Content.Server/_White/FillIDCard/FillIDCardSystem.cs b/Content.Server/_White/FillIDCard/FillIDCardSystem.cs
new file mode 100644
index 0000000000..b9b289f0fa
--- /dev/null
+++ b/Content.Server/_White/FillIDCard/FillIDCardSystem.cs
@@ -0,0 +1,72 @@
+
+using Content.Server._White.ContractorIDCard;
+using Content.Server.Access.Systems;
+using Content.Server.Forensics;
+using Content.Server.PDA;
+using Content.Shared.Access.Components;
+using Content.Shared.Inventory;
+using Content.Shared.PDA;
+using Robust.Server.Containers;
+using Robust.Shared.Timing;
+
+namespace Content.Server._White.FillIDCard;
+
+public sealed class FillIDCardSystem : EntitySystem
+{
+ [Dependency] private readonly InventorySystem _inventorySystem = default!;
+ [Dependency] private readonly PdaSystem _pdaSystem = default!;
+ [Dependency] private readonly ContainerSystem _containerSystem = default!;
+ [Dependency] private readonly IdCardSystem _idCardSystem = default!;
+
+ public override void Initialize()
+ {
+ base.Initialize();
+
+ SubscribeLocalEvent(OnMapInit);
+ }
+
+ private void OnMapInit(Entity ent, ref MapInitEvent args)
+ {
+ Timer.Spawn(15000, () => ItDoBeDoing(ent)); // 15 seconds and yes this is bad // TODO Make it less dogshit
+ }
+
+ private void ItDoBeDoing(Entity ent)
+ {
+ if (!TryComp(ent.Owner, out var targetMeta))
+ {
+ RemComp(ent.Owner);
+ return;
+ }
+
+ if (!_inventorySystem.TryGetSlotEntity(ent.Owner, "id", out var idcardSlot))
+ {
+ RemComp(ent.Owner);
+ return;
+ }
+
+ if (TryComp(idcardSlot, out var pda))
+ {
+ _pdaSystem.SetOwnerName((EntityUid) idcardSlot, pda, targetMeta.EntityName);
+
+ _containerSystem.TryGetContainer((EntityUid) idcardSlot, "PDA-id", out var container);
+
+ if (container != null)
+ {
+ var idCardInPda = container.ContainedEntities[0];
+ _idCardSystem.TryChangeFullName(idCardInPda, targetMeta.EntityName);
+ }
+ }
+ else if (HasComp(idcardSlot))
+ {
+ _idCardSystem.TryChangeFullName((EntityUid) idcardSlot, targetMeta.EntityName);
+ if (ent.Comp.IsContractor)
+ {
+ EnsureComp((EntityUid) idcardSlot, out var comp);
+ if (TryComp(ent.Owner, out var fingerprintComponent) && TryComp(ent.Owner, out var dnaComponent))
+ comp.Details = $"На карте имеется следующая информация:\nВладелец карты: {targetMeta.EntityName}\nОтпечаток пальцев владельца: {fingerprintComponent.Fingerprint}\nДНК владельца: {dnaComponent.DNA}";
+ }
+ }
+
+ RemComp(ent.Owner);
+ }
+}
diff --git a/Resources/Locale/ru-RU/_white/mercenary.ftl b/Resources/Locale/ru-RU/_white/mercenary.ftl
index 6936d94a8f..4da592d747 100644
--- a/Resources/Locale/ru-RU/_white/mercenary.ftl
+++ b/Resources/Locale/ru-RU/_white/mercenary.ftl
@@ -35,5 +35,31 @@ ent-DoorElectronicsMercenary = { ent-DoorElectronics }
.desc = { ent-DoorElectronics.desc }
ent-AirlockMercenaryLocked = { ent-Airlock }
- .suffix = Наёмник, Закрыт
- .desc = { ent-Airlock.desc } В углу имеется небольшой символ Администрации сектора.
+ .desc = { ent-Airlock.desc }
+
+ent-AirlockMercenaryGlassLocked = { ent-AirlockGlass }
+ .desc = { ent-AirlockGlass.desc }
+
+ent-AirlockMercenaryShuttleLocked = { ent-AirlockShuttle }
+ .desc = { ent-AirlockShuttle.desc }
+
+ent-AirlockMercenaryGlassShuttleLocked = { ent-AirlockGlassShuttle }
+ .desc = { ent-AirlockGlassShuttle.desc }
+
+ent-WindoorMercenaryLocked = { ent-Windoor }
+ .desc = { ent-Windoor.desc }
+
+ent-WindoorSecureMercenaryLocked = { ent-WindoorSecure }
+ .desc = { ent-WindoorSecure.desc }
+
+ent-PlasmaWindoorMercenaryLocked = { ent-WindoorPlasma }
+ .desc = { ent-WindoorPlasma.desc }
+
+ent-UraniumWindoorMercenaryLocked = { ent-WindoorUranium }
+ .desc = { ent-WindoorUranium.desc }
+
+ent-PlasmaWindoorSecureMercenaryLocked = { ent-WindoorSecurePlasma }
+ .desc = { ent-WindoorSecurePlasma.desc }
+
+ent-UraniumWindoorSecureMercenaryLocked = { ent-WindoorSecureUranium }
+ .desc = { ent-WindoorSecureUranium.desc }
diff --git a/Resources/Locale/ru-RU/_white/prototypes/entities/clothing/ears/headsets.ftl b/Resources/Locale/ru-RU/_white/prototypes/entities/clothing/ears/headsets.ftl
index a3f245f5e0..63e7ef6d9e 100644
--- a/Resources/Locale/ru-RU/_white/prototypes/entities/clothing/ears/headsets.ftl
+++ b/Resources/Locale/ru-RU/_white/prototypes/entities/clothing/ears/headsets.ftl
@@ -6,5 +6,5 @@ ent-ClothingHeadsetRDAnotherSector = { ent-ClothingHeadsetRD }
.desc = { ent-ClothingHeadsetRD.desc }
ent-ClothingHeadsetCargoAnotherSector = { ent-ClothingHeadsetCargo }
.desc = { ent-ClothingHeadsetCargo.desc }
-ent-ClothingHeadsetServiceContractor = { ent-ClothingHeadsetService }
- .desc = { ent-ClothingHeadsetService.desc }
+ent-ClothingHeadsetContractor = гарнитура контрактника
+ .desc = { ent-ClothingHeadsetGrey.desc }
diff --git a/Resources/Locale/ru-RU/_white/recipes/structures/airlocks.ftl b/Resources/Locale/ru-RU/_white/recipes/structures/airlocks.ftl
index 3df37da0ea..c734a5475f 100644
--- a/Resources/Locale/ru-RU/_white/recipes/structures/airlocks.ftl
+++ b/Resources/Locale/ru-RU/_white/recipes/structures/airlocks.ftl
@@ -2,4 +2,70 @@ ent-airlockExternal = { ent-AirlockExternal }
.desc = { ent-AirlockExternal.desc }
ent-airlockExternalGlass = стеклянный внешний шлюз
- .desc = { ent-airlockExternal.desc}
\ No newline at end of file
+ .desc = { ent-airlockExternal.desc }
+
+ent-DoorElectronicsClownContractor = { ent-DoorElectronics }
+ .desc = { ent-DoorElectronics.desc }
+
+ent-AirlockClownContractorLocked = { ent-Airlock }
+ .desc = { ent-Airlock.desc }
+
+ent-AirlockClownContractorGlassLocked = { ent-AirlockGlass }
+ .desc = { ent-AirlockGlass.desc }
+
+ent-AirlockClownContractorShuttleLocked = { ent-AirlockShuttle }
+ .desc = { ent-AirlockShuttle.desc }
+
+ent-AirlockClownContractorGlassShuttleLocked = { ent-AirlockGlassShuttle }
+ .desc = { ent-AirlockGlassShuttle.desc }
+
+ent-WindoorClownContractorLocked = { ent-Windoor }
+ .desc = { ent-Windoor.desc }
+
+ent-WindoorSecureClownContractorLocked = { ent-WindoorSecure }
+ .desc = { ent-WindoorSecure.desc }
+
+ent-PlasmaWindoorClownContractorLocked = { ent-WindoorPlasma }
+ .desc = { ent-WindoorPlasma.desc }
+
+ent-UraniumWindoorClownContractorLocked = { ent-WindoorUranium }
+ .desc = { ent-WindoorUranium.desc }
+
+ent-PlasmaWindoorSecureClownContractorLocked = { ent-WindoorSecurePlasma }
+ .desc = { ent-WindoorSecurePlasma.desc }
+
+ent-UraniumWindoorSecureClownContractorLocked = { ent-WindoorSecureUranium }
+ .desc = { ent-WindoorSecureUranium.desc }
+
+ent-DoorElectronicsChefContractor = { ent-DoorElectronics }
+ .desc = { ent-DoorElectronics.desc }
+
+ent-AirlockChefContractorLocked = { ent-Airlock }
+ .desc = { ent-Airlock.desc }
+
+ent-AirlockChefContractorGlassLocked = { ent-AirlockGlass }
+ .desc = { ent-AirlockGlass.desc }
+
+ent-AirlockChefContractorShuttleLocked = { ent-AirlockShuttle }
+ .desc = { ent-AirlockShuttle.desc }
+
+ent-AirlockChefContractorGlassShuttleLocked = { ent-AirlockGlassShuttle }
+ .desc = { ent-AirlockGlassShuttle.desc }
+
+ent-WindoorChefContractorLocked = { ent-Windoor }
+ .desc = { ent-Windoor.desc }
+
+ent-WindoorSecureChefContractorLocked = { ent-WindoorSecure }
+ .desc = { ent-WindoorSecure.desc }
+
+ent-PlasmaWindoorChefContractorLocked = { ent-WindoorPlasma }
+ .desc = { ent-WindoorPlasma.desc }
+
+ent-UraniumWindoorChefContractorLocked = { ent-WindoorUranium }
+ .desc = { ent-WindoorUranium.desc }
+
+ent-PlasmaWindoorSecureChefContractorLocked = { ent-WindoorSecurePlasma }
+ .desc = { ent-WindoorSecurePlasma.desc }
+
+ent-UraniumWindoorSecureChefContractorLocked = { ent-WindoorSecureUranium }
+ .desc = { ent-WindoorSecureUranium.desc }
diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/misc/identification_cards.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/misc/identification_cards.ftl
index 0aca8b73a1..8aa9bab67b 100644
--- a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/misc/identification_cards.ftl
+++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/misc/identification_cards.ftl
@@ -94,15 +94,3 @@ ent-CluwneIDCard = ID карта клувна
.suffix = Неснимаемое
ent-ResearchAssistantIDCard = ID карта научного ассистента
.desc = { ent-IDCardStandard.desc }
-ent-MaidIDCard = ID карта прислуги
- .desc = { ent-IDCardStandard.desc }
-ent-BomzhIDCard = грязная ID карта
- .desc = Старая и грязная карта дожившая до нашего времени.
-ent-CargoIDCardAnotherSector = { ent-CargoIDCard }
- .desc = { ent-CargoIDCard.desc }
-ent-CMOIDCardAnotherSector = { ent-CMOIDCard }
- .desc = { ent-CMOIDCard.desc }
-ent-CaptainIDCardAnotherSector = { ent-CaptainIDCard }
- .desc = { ent-CaptainIDCard.desc }
-ent-RDIDCardAnotherSector = { ent-RDIDCard }
- .desc = { ent-RDIDCard.desc }
diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/white/entities/objects/misc/identification_cards.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/white/entities/objects/misc/identification_cards.ftl
index da1b875c47..4d12474f05 100644
--- a/Resources/Locale/ru-RU/ss14-ru/prototypes/white/entities/objects/misc/identification_cards.ftl
+++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/white/entities/objects/misc/identification_cards.ftl
@@ -3,3 +3,27 @@ ent-IAAIDCard = ID карта агента внутренних дел
ent-MercenaryIDCard = ID карта резидента
.desc = Карта резидента выдаётся Администрацией сектора. Позволяет записывать данные для временного оформления и имеет доступ к личному судну владельца.
+
+ent-ClownIDCardContractor = { ent-MercenaryIDCard }
+ .desc = { ent-MercenaryIDCard.desc }
+
+ent-ChefIDCardContractor = { ent-MercenaryIDCard }
+ .desc = { ent-MercenaryIDCard.desc }
+
+ent-MaidIDCard = ID карта прислуги
+ .desc = { ent-IDCardStandard.desc }
+
+ent-BomzhIDCard = грязная ID карта
+ .desc = Старая и грязная карта дожившая до нашего времени.
+
+ent-CargoIDCardAnotherSector = { ent-CargoIDCard }
+ .desc = { ent-CargoIDCard.desc }
+
+ent-CMOIDCardAnotherSector = { ent-CMOIDCard }
+ .desc = { ent-CMOIDCard.desc }
+
+ent-CaptainIDCardAnotherSector = { ent-CaptainIDCard }
+ .desc = { ent-CaptainIDCard.desc }
+
+ent-RDIDCardAnotherSector = { ent-RDIDCard }
+ .desc = { ent-RDIDCard.desc }
diff --git a/Resources/Maps/Shuttles/ShuttleEvent/honki.yml b/Resources/Maps/Shuttles/ShuttleEvent/honki.yml
index 0fca6a8ba9..ade69b06ca 100644
--- a/Resources/Maps/Shuttles/ShuttleEvent/honki.yml
+++ b/Resources/Maps/Shuttles/ShuttleEvent/honki.yml
@@ -16,7 +16,7 @@ entities:
name: Honkomother
- type: Transform
pos: 1.212189,-1.7551664
- parent: invalid
+ parent: 313
- type: MapGrid
chunks:
0,0:
@@ -168,13 +168,16 @@ entities:
1,0:
1: 56
1,-1:
- 0: 30576
+ 2: 4112
+ 0: 10016
+ 3: 16448
0,-2:
0: 48051
-1,-2:
0: 48056
-1,-1:
- 0: 56784
+ 3: 16
+ 0: 56768
0,-3:
1: 32768
1,-3:
@@ -185,7 +188,8 @@ entities:
-2,0:
1: 130
-2,-1:
- 0: 52928
+ 0: 52800
+ 3: 128
-2,-2:
1: 8708
0: 34944
@@ -209,6 +213,14 @@ entities:
- 0
- 0
- 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
- volume: 2500
immutable: True
moles:
@@ -224,9 +236,76 @@ entities:
- 0
- 0
- 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - volume: 2500
+ temperature: 293.15
+ moles:
+ - 21.6852
+ - 81.57766
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - volume: 2500
+ temperature: 293.14975
+ moles:
+ - 20.078888
+ - 75.53487
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
chunkSize: 4
- type: GasTileOverlay
- type: RadiationGridResistance
+ - uid: 313
+ components:
+ - type: MetaData
+ name: Map Entity
+ - type: Transform
+ - type: Map
+ mapPaused: True
+ - type: PhysicsMap
+ - type: GridTree
+ - type: MovedGrids
+ - type: Broadphase
+ - type: OccluderTree
+ - type: LoadedMap
- proto: AirCanister
entities:
- uid: 2
@@ -237,6 +316,8 @@ entities:
parent: 1
- type: Physics
bodyType: Static
+ - type: PolymorphableCanister
+ currentPrototype: AirCanister
- uid: 3
components:
- type: Transform
@@ -245,7 +326,9 @@ entities:
parent: 1
- type: Physics
bodyType: Static
-- proto: AirlockShuttle
+ - type: PolymorphableCanister
+ currentPrototype: AirCanister
+- proto: AirlockClownContractorShuttleLocked
entities:
- uid: 4
components:
@@ -280,7 +363,7 @@ entities:
- uid: 7
components:
- type: Transform
- pos: -1.4946816,-0.2775966
+ pos: 2.268822,0.6392218
parent: 1
- proto: BananiumDoor
entities:
@@ -296,6 +379,9 @@ entities:
rot: 3.141592653589793 rad
pos: -2.5,-1.5
parent: 1
+ - type: Door
+ secondsUntilStateChange: -131.67447
+ state: Opening
- uid: 10
components:
- type: Transform
@@ -381,6 +467,15 @@ entities:
- type: Physics
canCollide: False
- type: InsideEntityStorage
+- proto: BorgModuleClowning
+ entities:
+ - uid: 379
+ components:
+ - type: Transform
+ parent: 115
+ - type: Physics
+ canCollide: False
+ - type: InsideEntityStorage
- proto: CableApcExtension
entities:
- uid: 31
@@ -836,8 +931,16 @@ entities:
immutable: False
temperature: 293.14673
moles:
- - 1.7459903
- - 6.568249
+ - 1.8856695
+ - 7.0937095
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
- 0
- 0
- 0
@@ -854,11 +957,11 @@ entities:
showEnts: False
occludes: True
ents:
- - 25
- - 23
- - 22
- - 24
- 261
+ - 22
+ - 23
+ - 25
+ - 24
paper_label: !type:ContainerSlot
showEnts: False
occludes: True
@@ -868,6 +971,52 @@ entities:
- type: Transform
pos: 4.5,-2.5
parent: 1
+ - type: EntityStorage
+ air:
+ volume: 200
+ immutable: False
+ temperature: 293.14673
+ moles:
+ - 1.8856695
+ - 7.0937095
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - type: ContainerContainer
+ containers:
+ entity_storage: !type:Container
+ showEnts: False
+ occludes: True
+ ents:
+ - 30
+ - 28
+ - 27
+ - 315
+ - 29
+ paper_label: !type:ContainerSlot
+ showEnts: False
+ occludes: True
+ ent: null
+ - uid: 115
+ components:
+ - type: Transform
+ pos: 6.5,-2.5
+ parent: 1
- type: EntityStorage
air:
volume: 200
@@ -886,43 +1035,32 @@ entities:
- 0
- 0
- 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
- type: ContainerContainer
containers:
entity_storage: !type:Container
showEnts: False
occludes: True
ents:
- - 29
- - 315
- - 27
- - 28
- - 30
- paper_label: !type:ContainerSlot
- showEnts: False
- occludes: True
- ent: null
- - uid: 115
- components:
- - type: Transform
- pos: 6.5,-2.5
- parent: 1
- - type: ContainerContainer
- containers:
- entity_storage: !type:Container
- showEnts: False
- occludes: True
- ents:
- - 125
- - 124
- - 123
- - 122
- - 121
- - 126
- - 120
- - 119
- - 118
- - 117
+ - 379
- 116
+ - 117
+ - 118
+ - 119
+ - 120
+ - 126
+ - 121
+ - 122
+ - 123
+ - 124
+ - 125
paper_label: !type:ContainerSlot
showEnts: False
occludes: True
@@ -932,27 +1070,68 @@ entities:
- type: Transform
pos: 6.5,-0.5
parent: 1
+ - type: EntityStorage
+ air:
+ volume: 200
+ immutable: False
+ temperature: 293.14673
+ moles:
+ - 1.7459903
+ - 6.568249
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
- type: ContainerContainer
containers:
entity_storage: !type:Container
showEnts: False
occludes: True
ents:
- - 128
- - 129
- - 130
- - 131
- - 132
- - 133
- - 134
- - 135
- - 138
- - 136
- 137
+ - 136
+ - 138
+ - 135
+ - 134
+ - 133
+ - 132
+ - 131
+ - 130
+ - 129
+ - 380
+ - 128
paper_label: !type:ContainerSlot
showEnts: False
occludes: True
ent: null
+- proto: CrayonRainbow
+ entities:
+ - uid: 382
+ components:
+ - type: Transform
+ pos: -1.2894332,-0.29621565
+ parent: 1
+- proto: DeepSpaceComWallMount
+ entities:
+ - uid: 384
+ components:
+ - type: Transform
+ pos: -0.5,2.5
+ parent: 1
- proto: DehydratedSpaceCarp
entities:
- uid: 24
@@ -962,6 +1141,9 @@ entities:
- type: Physics
canCollide: False
- type: InsideEntityStorage
+ - type: ContainerContainer
+ containers:
+ item: !type:ContainerSlot {}
- uid: 29
components:
- type: Transform
@@ -969,6 +1151,9 @@ entities:
- type: Physics
canCollide: False
- type: InsideEntityStorage
+ - type: ContainerContainer
+ containers:
+ item: !type:ContainerSlot {}
- proto: DeviceQuantumSpinInverter
entities:
- uid: 25
@@ -1008,6 +1193,13 @@ entities:
- type: Physics
canCollide: False
- type: InsideEntityStorage
+- proto: FaxMachineBase
+ entities:
+ - uid: 383
+ components:
+ - type: Transform
+ pos: -1.5,0.5
+ parent: 1
- proto: FloorBananiumEntity
entities:
- uid: 139
@@ -1106,12 +1298,12 @@ entities:
- uid: 144
components:
- type: Transform
- pos: -1.5971907,0.54355335
+ pos: 2.7644207,0.14128423
parent: 1
- uid: 145
components:
- type: Transform
- pos: -1.405974,0.27368832
+ pos: 2.2753637,0.14128423
parent: 1
- proto: FoodCakeClown
entities:
@@ -1909,6 +2101,13 @@ entities:
- type: Physics
canCollide: False
- type: InsideEntityStorage
+- proto: PaperBin10
+ entities:
+ - uid: 385
+ components:
+ - type: Transform
+ pos: -1.5,-0.5
+ parent: 1
- proto: PlasmaWindow
entities:
- uid: 262
@@ -2223,6 +2422,11 @@ entities:
- type: Physics
canCollide: False
- type: InsideEntityStorage
+ - uid: 381
+ components:
+ - type: Transform
+ pos: -1.6230972,-0.35871565
+ parent: 1
- proto: SpawnClownSpider
entities:
- uid: 312
@@ -2230,11 +2434,6 @@ entities:
- type: Transform
pos: -4.5,-4.5
parent: 1
- - uid: 313
- components:
- - type: Transform
- pos: -2.5,-5.5
- parent: 1
- uid: 314
components:
- type: Transform
@@ -2280,17 +2479,43 @@ entities:
parent: 1
- type: Lock
locked: False
+ - type: EntityStorage
+ air:
+ volume: 200
+ immutable: False
+ temperature: 293.14673
+ moles:
+ - 1.7459903
+ - 6.568249
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
- type: ContainerContainer
containers:
entity_storage: !type:Container
showEnts: False
occludes: True
ents:
- - 96
- 95
- - 97
- - 94
+ - 96
- 98
+ - 94
+ - 97
- uid: 99
components:
- type: Transform
@@ -2314,15 +2539,41 @@ entities:
parent: 1
- type: Lock
locked: False
+ - type: EntityStorage
+ air:
+ volume: 200
+ immutable: False
+ temperature: 293.14673
+ moles:
+ - 1.7459903
+ - 6.568249
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
- type: ContainerContainer
containers:
entity_storage: !type:Container
showEnts: False
occludes: True
ents:
- - 104
- - 105
- 106
+ - 105
+ - 104
- proto: TablePlasmaGlass
entities:
- uid: 317
@@ -2663,4 +2914,13 @@ entities:
- type: Transform
pos: 3.5,-2.5
parent: 1
+- proto: WhoopieCushion
+ entities:
+ - uid: 380
+ components:
+ - type: Transform
+ parent: 127
+ - type: Physics
+ canCollide: False
+ - type: InsideEntityStorage
...
diff --git a/Resources/Maps/Shuttles/ShuttleEvent/traveling_china_cuisine.yml b/Resources/Maps/Shuttles/ShuttleEvent/traveling_china_cuisine.yml
index 7b6812c493..2770768f42 100644
--- a/Resources/Maps/Shuttles/ShuttleEvent/traveling_china_cuisine.yml
+++ b/Resources/Maps/Shuttles/ShuttleEvent/traveling_china_cuisine.yml
@@ -26,7 +26,7 @@ entities:
name: SRV "Salami-Salami"
- type: Transform
pos: -0.5104167,-0.5
- parent: invalid
+ parent: 71
- type: MapGrid
chunks:
0,0:
@@ -86,34 +86,59 @@ entities:
data:
tiles:
0,0:
- 0: 7
- 1: 128
+ 0: 1
+ 1: 6
+ 2: 128
0,-1:
- 0: 29303
+ 1: 29303
-1,0:
- 1: 129
+ 2: 129
-1,-1:
- 0: 28686
- 1: 272
+ 1: 28686
+ 2: 272
-1,-2:
- 1: 28
- 0: 65024
+ 2: 28
+ 1: 65024
-1,-3:
- 1: 49152
+ 2: 49152
0,-3:
- 1: 61440
+ 2: 61440
0,-2:
- 0: 32624
- 1: 8
+ 1: 32624
+ 2: 8
1,-3:
- 1: 4096
+ 2: 4096
1,-2:
- 1: 65
- 0: 13056
+ 2: 65
+ 1: 12544
+ 3: 512
1,-1:
- 0: 3
- 1: 320
+ 1: 3
+ 2: 320
uniqueMixes:
+ - volume: 2500
+ temperature: 293.14978
+ moles:
+ - 21.813705
+ - 82.06108
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
- volume: 2500
temperature: 293.15
moles:
@@ -129,6 +154,14 @@ entities:
- 0
- 0
- 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
- volume: 2500
immutable: True
moles:
@@ -144,10 +177,62 @@ entities:
- 0
- 0
- 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - volume: 2500
+ temperature: 293.15
+ moles:
+ - 21.6852
+ - 81.57766
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
chunkSize: 4
- type: GasTileOverlay
- type: RadiationGridResistance
- type: NavMap
+ - uid: 71
+ components:
+ - type: MetaData
+ name: Map Entity
+ - type: Transform
+ - type: Map
+ mapPaused: True
+ - type: PhysicsMap
+ - type: GridTree
+ - type: MovedGrids
+ - type: Broadphase
+ - type: OccluderTree
+ - type: LoadedMap
+- proto: AirlockChefContractorShuttleLocked
+ entities:
+ - uid: 3
+ components:
+ - type: Transform
+ rot: -1.5707963267948966 rad
+ pos: -3.5,-0.5
+ parent: 1
- proto: AirlockShuttle
entities:
- uid: 2
@@ -156,12 +241,6 @@ entities:
rot: -1.5707963267948966 rad
pos: -3.5,-4.5
parent: 1
- - uid: 3
- components:
- - type: Transform
- rot: -1.5707963267948966 rad
- pos: -3.5,-0.5
- parent: 1
- proto: APCBasic
entities:
- uid: 4
@@ -169,6 +248,13 @@ entities:
- type: Transform
pos: 2.5,-1.5
parent: 1
+- proto: ATM
+ entities:
+ - uid: 235
+ components:
+ - type: Transform
+ pos: -1.5,-2.5
+ parent: 1
- proto: AtmosDeviceFanTiny
entities:
- uid: 5
@@ -374,73 +460,21 @@ entities:
rot: 3.141592653589793 rad
pos: 1.5,-0.5
parent: 1
-- proto: ClosetMaintenance
- entities:
- - uid: 71
- components:
- - type: Transform
- pos: 0.5,0.5
- parent: 1
- - type: EntityStorage
- air:
- volume: 200
- immutable: False
- temperature: 293.14786
- moles:
- - 1.8856695
- - 7.0937095
- - 0
- - 0
- - 0
- - 0
- - 0
- - 0
- - 0
- - 0
- - 0
- - 0
- - type: ContainerContainer
- containers:
- entity_storage: !type:Container
- showEnts: False
- occludes: True
- ents:
- - 80
- - 76
- - 73
- - 74
- - 78
- - 81
- - 77
- - 72
- - 75
- - 79
- paper_label: !type:ContainerSlot
- showEnts: False
- occludes: True
- ent: null
- proto: ClothingHeadHatCasa
entities:
- uid: 72
components:
- type: Transform
- parent: 71
+ parent: 74
- type: Physics
canCollide: False
- type: InsideEntityStorage
-- proto: ClothingHeadHelmetEVALarge
- entities:
- - uid: 82
- components:
- - type: Transform
- pos: 0.30235916,-0.6487955
- parent: 1
- proto: ClothingOuterDameDane
entities:
- uid: 79
components:
- type: Transform
- parent: 71
+ parent: 74
- type: Physics
canCollide: False
- type: InsideEntityStorage
@@ -449,16 +483,16 @@ entities:
- uid: 73
components:
- type: Transform
- parent: 71
+ parent: 74
- type: Physics
canCollide: False
- type: InsideEntityStorage
-- proto: ClothingOuterHardsuitAncientEVA
+- proto: ClothingOuterHardsuitBasic
entities:
- - uid: 74
+ - uid: 90
components:
- type: Transform
- parent: 71
+ parent: 74
- type: Physics
canCollide: False
- type: InsideEntityStorage
@@ -467,7 +501,7 @@ entities:
- uid: 75
components:
- type: Transform
- parent: 71
+ parent: 74
- type: Physics
canCollide: False
- type: InsideEntityStorage
@@ -476,7 +510,7 @@ entities:
- uid: 76
components:
- type: Transform
- parent: 71
+ parent: 74
- type: Physics
canCollide: False
- type: InsideEntityStorage
@@ -492,10 +526,17 @@ entities:
- uid: 77
components:
- type: Transform
- parent: 71
+ parent: 74
- type: Physics
canCollide: False
- type: InsideEntityStorage
+- proto: ComputerDeepSpaceCom
+ entities:
+ - uid: 232
+ components:
+ - type: Transform
+ pos: 2.5,0.5
+ parent: 1
- proto: ComputerShuttle
entities:
- uid: 84
@@ -516,8 +557,16 @@ entities:
immutable: False
temperature: 293.14783
moles:
- - 1.7459903
- - 6.568249
+ - 1.8856695
+ - 7.0937095
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
- 0
- 0
- 0
@@ -534,36 +583,36 @@ entities:
showEnts: False
occludes: True
ents:
- - 11
- - 29
- - 24
- - 13
- - 25
- - 37
- - 33
- - 32
- - 38
- - 16
- - 15
- - 19
- - 17
- - 18
- - 20
- - 40
- - 14
- - 22
- - 30
- - 21
- - 34
- - 23
- - 35
- - 28
- - 36
- - 27
- - 39
- - 31
- - 26
- 12
+ - 26
+ - 31
+ - 39
+ - 27
+ - 36
+ - 28
+ - 35
+ - 23
+ - 34
+ - 21
+ - 30
+ - 22
+ - 14
+ - 40
+ - 20
+ - 18
+ - 17
+ - 19
+ - 15
+ - 16
+ - 38
+ - 32
+ - 33
+ - 37
+ - 25
+ - 13
+ - 24
+ - 29
+ - 11
paper_label: !type:ContainerSlot
showEnts: False
occludes: True
@@ -595,6 +644,15 @@ entities:
rot: 3.141592653589793 rad
pos: 1.8425496,-6.086302
parent: 1
+- proto: Eftpos
+ entities:
+ - uid: 233
+ components:
+ - type: Transform
+ parent: 74
+ - type: Physics
+ canCollide: False
+ - type: InsideEntityStorage
- proto: EggySeeds
entities:
- uid: 89
@@ -607,16 +665,25 @@ entities:
- uid: 78
components:
- type: Transform
- parent: 71
+ parent: 74
- type: Physics
canCollide: False
- type: InsideEntityStorage
-- proto: FolderSpawner
+- proto: FaxMachineBase
entities:
- - uid: 90
+ - uid: 126
components:
- type: Transform
- pos: 2.6497245,-0.5822141
+ pos: 2.5,-0.5
+ parent: 1
+ - type: FaxMachine
+ name: Шаттл Бистро
+- proto: FolderSpawner
+ entities:
+ - uid: 188
+ components:
+ - type: Transform
+ pos: 2.6700735,-0.7461357
parent: 1
- proto: FoodBowlBig
entities:
@@ -1066,6 +1133,13 @@ entities:
rot: -1.5707963267948966 rad
pos: -1.5,0.5
parent: 1
+- proto: GrowingPot
+ entities:
+ - uid: 187
+ components:
+ - type: Transform
+ pos: 5.5,-4.5
+ parent: 1
- proto: Gyroscope
entities:
- uid: 123
@@ -1088,13 +1162,6 @@ entities:
- type: Transform
pos: 1.5,-1.5
parent: 1
-- proto: hydroponicsSoil
- entities:
- - uid: 126
- components:
- - type: Transform
- pos: 5.5,-4.5
- parent: 1
- proto: HydroponicsToolClippers
entities:
- uid: 127
@@ -1122,7 +1189,7 @@ entities:
- uid: 80
components:
- type: Transform
- parent: 71
+ parent: 74
- type: Physics
canCollide: False
- type: InsideEntityStorage
@@ -1147,6 +1214,9 @@ entities:
- type: Transform
pos: 0.5,-2.5
parent: 1
+ - type: PointLight
+ color: '#D56C6CFF'
+ enabled: True
- type: EntityStorage
air:
volume: 200
@@ -1165,6 +1235,14 @@ entities:
- 0
- 0
- 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
- type: ContainerContainer
containers:
entity_storage: !type:Container
@@ -1191,6 +1269,67 @@ entities:
showEnts: False
occludes: True
ent: null
+- proto: LockerSteel
+ entities:
+ - uid: 74
+ components:
+ - type: Transform
+ pos: 0.5,0.5
+ parent: 1
+ - type: PointLight
+ color: '#D56C6CFF'
+ enabled: True
+ - type: EntityStorage
+ air:
+ volume: 200
+ immutable: False
+ temperature: 293.14703
+ moles:
+ - 1.8968438
+ - 7.1357465
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - 0
+ - type: ContainerContainer
+ containers:
+ entity_storage: !type:Container
+ showEnts: False
+ occludes: True
+ ents:
+ - 233
+ - 133
+ - 80
+ - 76
+ - 73
+ - 78
+ - 81
+ - 77
+ - 72
+ - 79
+ - 75
+ - 185
+ - 90
+ - 82
+ - 147
+ paper_label: !type:ContainerSlot
+ showEnts: False
+ occludes: True
+ ent: null
- proto: MaterialSheetMeat
entities:
- uid: 39
@@ -1212,25 +1351,26 @@ entities:
- uid: 81
components:
- type: Transform
- parent: 71
+ parent: 74
- type: Physics
canCollide: False
- type: InsideEntityStorage
- proto: NoticeBoard
entities:
- - uid: 133
+ - uid: 234
components:
- type: Transform
- pos: -1.5,-2.5
+ pos: -0.5,-2.5
parent: 1
- proto: Pen
entities:
- - uid: 232
+ - uid: 82
components:
- type: Transform
- rot: -1.5707963267948966 rad
- pos: 2.27949,-0.47790605
- parent: 1
+ parent: 74
+ - type: Physics
+ canCollide: False
+ - type: InsideEntityStorage
- proto: PlushieVox
entities:
- uid: 134
@@ -1238,6 +1378,9 @@ entities:
- type: Transform
pos: -0.5571752,-4.2839594
parent: 1
+ - type: ContainerContainer
+ containers:
+ item: !type:ContainerSlot {}
- proto: PosterLegitFruitBowl
entities:
- uid: 135
@@ -1333,8 +1476,10 @@ entities:
- uid: 147
components:
- type: Transform
- pos: 2.6184745,-0.09783912
- parent: 1
+ parent: 74
+ - type: Physics
+ canCollide: False
+ - type: InsideEntityStorage
- proto: Shovel
entities:
- uid: 148
@@ -1350,6 +1495,7 @@ entities:
pos: -0.5,-4.5
parent: 1
- type: DeviceLinkSink
+ invokeCounter: 2
links:
- 160
- uid: 150
@@ -1358,6 +1504,7 @@ entities:
pos: -0.5,-3.5
parent: 1
- type: DeviceLinkSink
+ invokeCounter: 2
links:
- 160
- uid: 151
@@ -1366,6 +1513,7 @@ entities:
pos: -0.5,-5.5
parent: 1
- type: DeviceLinkSink
+ invokeCounter: 2
links:
- 160
- uid: 152
@@ -1374,6 +1522,7 @@ entities:
pos: -3.5,-4.5
parent: 1
- type: DeviceLinkSink
+ invokeCounter: 2
links:
- 160
- proto: ShuttleWindow
@@ -1459,7 +1608,7 @@ entities:
rot: 3.141592653589793 rad
pos: 0.5,-6.5
parent: 1
-- proto: soda_dispenser
+- proto: SodaDispenser
entities:
- uid: 164
components:
@@ -1467,6 +1616,17 @@ entities:
rot: 3.141592653589793 rad
pos: 2.5,-6.5
parent: 1
+- proto: SpaceCash2500
+ entities:
+ - uid: 133
+ components:
+ - type: Transform
+ parent: 74
+ - type: Stack
+ count: 7500
+ - type: Physics
+ canCollide: False
+ - type: InsideEntityStorage
- proto: StoolBar
entities:
- uid: 165
@@ -1603,8 +1763,10 @@ entities:
- uid: 185
components:
- type: Transform
- pos: 0.5731925,-0.16962886
- parent: 1
+ parent: 74
+ - type: Physics
+ canCollide: False
+ - type: InsideEntityStorage
- proto: TravelingChefSpawner
entities:
- uid: 186
@@ -1612,18 +1774,6 @@ entities:
- type: Transform
pos: 1.5,-0.5
parent: 1
- - uid: 187
- components:
- - type: Transform
- pos: 4.5,-5.5
- parent: 1
-- proto: VendingMachineChang
- entities:
- - uid: 188
- components:
- - type: Transform
- pos: 2.5,0.5
- parent: 1
- proto: WallShuttle
entities:
- uid: 189
diff --git a/Resources/Prototypes/Entities/Mobs/Player/admin_ghost.yml b/Resources/Prototypes/Entities/Mobs/Player/admin_ghost.yml
index edd74ab291..f3b82cb06a 100644
--- a/Resources/Prototypes/Entities/Mobs/Player/admin_ghost.yml
+++ b/Resources/Prototypes/Entities/Mobs/Player/admin_ghost.yml
@@ -30,6 +30,7 @@
- type: Access
groups:
- AllAccess
+ - Everything # WD
tags:
- NuclearOperative
- SyndicateAgent
diff --git a/Resources/Prototypes/Entities/Mobs/Player/humanoid.yml b/Resources/Prototypes/Entities/Mobs/Player/humanoid.yml
index 20883af760..7f1eaeaf2f 100644
--- a/Resources/Prototypes/Entities/Mobs/Player/humanoid.yml
+++ b/Resources/Prototypes/Entities/Mobs/Player/humanoid.yml
@@ -639,6 +639,7 @@
id: LostCargoTechnician
randomizeName: false
components:
+ - type: FillIDCard # WD
- type: GhostRole
name: ghost-role-information-lost-cargo-technical-name
description: ghost-role-information-lost-cargo-technical-description
@@ -706,7 +707,23 @@
- type: RandomMetadata
nameSegments:
- names_clown
- - type: Pacified # WD
+ # WD Edit start
+ - type: Pacified
+ - type: Clumsy
+ clumsyDamage:
+ types:
+ Blunt: 5
+ Piercing: 4
+ groups:
+ Burn: 3
+ - type: SleepEmitSound
+ snore: /Audio/Voice/Misc/silly_snore.ogg
+ interval: 10
+ - type: FillIDCard
+ isContractor: true
+ - type: AddImplant
+ implants: [ SadTromboneImplant ]
+ # WD Edit end
- type: randomHumanoidSettings
id: ClownTroupeBanana
@@ -722,7 +739,23 @@
- type: RandomMetadata
nameSegments:
- names_clown
- - type: Pacified # WD
+ # WD Edit start
+ - type: Pacified
+ - type: Clumsy
+ clumsyDamage:
+ types:
+ Blunt: 5
+ Piercing: 4
+ groups:
+ Burn: 3
+ - type: SleepEmitSound
+ snore: /Audio/Voice/Misc/silly_snore.ogg
+ interval: 10
+ - type: FillIDCard
+ isContractor: true
+ - type: AddImplant
+ implants: [ SadTromboneImplant ]
+ # WD Edit end
# Traveling exotic chef
@@ -767,6 +800,8 @@
nameSegments:
- names_first
- names_last
+ - type: FillIDCard # WD
+ isContractor: true
# Disaster victim
@@ -831,6 +866,7 @@
nameSegments:
- names_first
- names_last
+ - type: FillIDCard # WD
- type: randomHumanoidSettings
parent: Nanotrasen # WD
@@ -850,6 +886,7 @@
nameSegments:
- names_first
- names_last
+ - type: FillIDCard # WD
- type: randomHumanoidSettings
parent: Nanotrasen # WD
@@ -869,6 +906,9 @@
nameSegments:
- names_first
- names_last
+ - type: FillIDCard # WD
+ - type: AddImplant # WD
+ implants: [ MindShieldImplant ]
# Syndie Disaster Victim
diff --git a/Resources/Prototypes/Entities/Objects/Devices/door_remote.yml b/Resources/Prototypes/Entities/Objects/Devices/door_remote.yml
index 25ac56a6da..cfa7a579c2 100644
--- a/Resources/Prototypes/Entities/Objects/Devices/door_remote.yml
+++ b/Resources/Prototypes/Entities/Objects/Devices/door_remote.yml
@@ -176,5 +176,6 @@
- type: Access
groups:
- AllAccess
+ - Everything # WD
tags:
- CentralCommand
diff --git a/Resources/Prototypes/Roles/Jobs/Fun/misc_startinggear.yml b/Resources/Prototypes/Roles/Jobs/Fun/misc_startinggear.yml
index 3c457a3bdb..4dc59139ed 100644
--- a/Resources/Prototypes/Roles/Jobs/Fun/misc_startinggear.yml
+++ b/Resources/Prototypes/Roles/Jobs/Fun/misc_startinggear.yml
@@ -313,7 +313,7 @@
- type: startingGear
id: BananaClown
equipment:
- id: ClownPDA # TODO
+ id: ClownIDCardContractor # WD
back: ClothingBackpackClown
shoes: ClothingShoesClownBanana
jumpsuit: ClothingUniformJumpsuitClownBanana
@@ -328,7 +328,7 @@
equipment:
jumpsuit: ClothingUniformJumpsuitClown
shoes: ClothingShoesClown
- id: ClownPDA # TODO
+ id: ClownIDCardContractor # WD
back: ClothingBackpackClown
ears: ClothingHeadsetServiceContractor # WD
mask: ClothingMaskClown
@@ -365,7 +365,7 @@
equipment:
jumpsuit: ClothingUniformJumpsuitChef
shoes: ClothingShoesColorWhite
- id: ChefPDA # TODO
+ id: ChefIDCardContractor # WD
back: ClothingBackpackSatchel
ears: ClothingHeadsetServiceContractor # WD
belt: ClothingBeltChef
diff --git a/Resources/Prototypes/Roles/play_time_trackers.yml b/Resources/Prototypes/Roles/play_time_trackers.yml
index 159905dd3e..35b9235770 100644
--- a/Resources/Prototypes/Roles/play_time_trackers.yml
+++ b/Resources/Prototypes/Roles/play_time_trackers.yml
@@ -156,28 +156,3 @@
- type: playTimeTracker
id: JobZookeeper
-
-# WHITE
-- type: playTimeTracker
- id: JobInspector
-
-- type: playTimeTracker
- id: JobBomzh
-
-- type: playTimeTracker
- id: JobBrigmedic
-
-- type: playTimeTracker
- id: JobMaid
-
-- type: playTimeTracker
- id: JobCargoTechnicianAnotherSector
-
-- type: playTimeTracker
- id: JobChiefMedicalOfficerAnotherSector
-
-- type: playTimeTracker
- id: JobCaptainAnotherSector
-
-- type: playTimeTracker
- id: JobResearchDirectorAnotherSector
diff --git a/Resources/Prototypes/_White/Access/misc.yml b/Resources/Prototypes/_White/Access/misc.yml
new file mode 100644
index 0000000000..ce05dcc92b
--- /dev/null
+++ b/Resources/Prototypes/_White/Access/misc.yml
@@ -0,0 +1,18 @@
+- type: accessGroup
+ id: Everything
+ tags:
+ - AllAccess
+ - NuclearOperative
+ - SyndicateAgent
+ - CentralCommand
+ - Mercenary
+ - ClownContractor
+ - ChefContractor
+
+- type: accessLevel
+ id: ClownContractor
+ name: Клоун контрактник
+
+- type: accessLevel
+ id: ChefContractor
+ name: Шеф-повар контрактник
diff --git a/Resources/Prototypes/_White/Entities/Objects/Misc/airlocks.yml b/Resources/Prototypes/_White/Entities/Objects/Misc/airlocks.yml
new file mode 100644
index 0000000000..b23cd2f094
--- /dev/null
+++ b/Resources/Prototypes/_White/Entities/Objects/Misc/airlocks.yml
@@ -0,0 +1,235 @@
+- type: entity
+ parent: DoorElectronics
+ id: DoorElectronicsClownContractor
+ suffix: ClownContractor, Locked
+ components:
+ - type: AccessReader
+ access: [["ClownContractor"]]
+
+- type: entity
+ parent: Airlock
+ id: AirlockClownContractorLocked
+ suffix: ClownContractor, Locked
+ components:
+ - type: ContainerFill
+ containers:
+ board: [ DoorElectronicsClownContractor ]
+ - type: Wires
+ layoutId: AirlockArmory
+
+- type: entity
+ parent: AirlockGlass
+ id: AirlockClownContractorGlassLocked
+ suffix: ClownContractor, Locked
+ components:
+ - type: ContainerFill
+ containers:
+ board: [ DoorElectronicsClownContractor ]
+ - type: Wires
+ layoutId: AirlockArmory
+
+- type: entity
+ parent: AirlockShuttle
+ id: AirlockClownContractorShuttleLocked
+ suffix: ClownContractor, Docking, Locked
+ components:
+ - type: ContainerFill
+ containers:
+ board: [ DoorElectronicsClownContractor ]
+ - type: Wires
+ layoutId: AirlockArmory
+
+- type: entity
+ parent: AirlockGlassShuttle
+ id: AirlockClownContractorGlassShuttleLocked
+ suffix: ClownContractor, Glass, Docking, Locked
+ components:
+ - type: ContainerFill
+ containers:
+ board: [ DoorElectronicsClownContractor ]
+ - type: Wires
+ layoutId: AirlockArmory
+
+- type: entity
+ parent: Windoor
+ id: WindoorClownContractorLocked
+ suffix: ClownContractor, Locked
+ components:
+ - type: ContainerFill
+ containers:
+ board: [ DoorElectronicsClownContractor ]
+ - type: Wires
+ layoutId: AirlockArmory
+
+- type: entity
+ parent: WindoorSecure
+ id: WindoorSecureClownContractorLocked
+ suffix: ClownContractor, Locked
+ components:
+ - type: ContainerFill
+ containers:
+ board: [ DoorElectronicsClownContractor ]
+ - type: Wires
+ layoutId: AirlockArmory
+
+- type: entity
+ parent: WindoorPlasma
+ id: PlasmaWindoorClownContractorLocked
+ suffix: ClownContractor, Locked, Plasma
+ components:
+ - type: ContainerFill
+ containers:
+ board: [ DoorElectronicsClownContractor ]
+ - type: Wires
+ layoutId: AirlockArmory
+
+- type: entity
+ parent: WindoorUranium
+ id: UraniumWindoorClownContractorLocked
+ suffix: ClownContractor, Locked, Uranium
+ components:
+ - type: ContainerFill
+ containers:
+ board: [ DoorElectronicsClownContractor ]
+ - type: Wires
+ layoutId: AirlockArmory
+
+- type: entity
+ parent: WindoorSecurePlasma
+ id: PlasmaWindoorSecureClownContractorLocked
+ suffix: ClownContractor, Locked, Plasma
+ components:
+ - type: ContainerFill
+ containers:
+ board: [ DoorElectronicsClownContractor ]
+ - type: Wires
+ layoutId: AirlockArmory
+
+- type: entity
+ parent: WindoorSecureUranium
+ id: UraniumWindoorSecureClownContractorLocked
+ suffix: ClownContractor, Locked, Uranium
+ components:
+ - type: ContainerFill
+ containers:
+ board: [ DoorElectronicsClownContractor ]
+ - type: Wires
+ layoutId: AirlockArmory
+
+- type: entity
+ parent: DoorElectronics
+ id: DoorElectronicsChefContractor
+ suffix: ChefContractor, Locked
+ components:
+ - type: AccessReader
+ access: [["ChefContractor"]]
+
+- type: entity
+ parent: Airlock
+ id: AirlockChefContractorLocked
+ suffix: ChefContractor, Locked
+ components:
+ - type: ContainerFill
+ containers:
+ board: [ DoorElectronicsChefContractor ]
+ - type: Wires
+ layoutId: AirlockArmory
+
+- type: entity
+ parent: AirlockGlass
+ id: AirlockChefContractorGlassLocked
+ suffix: ChefContractor, Locked
+ components:
+ - type: ContainerFill
+ containers:
+ board: [ DoorElectronicsChefContractor ]
+ - type: Wires
+ layoutId: AirlockArmory
+
+- type: entity
+ parent: AirlockShuttle
+ id: AirlockChefContractorShuttleLocked
+ suffix: ChefContractor, Docking, Locked
+ components:
+ - type: ContainerFill
+ containers:
+ board: [ DoorElectronicsChefContractor ]
+ - type: Wires
+ layoutId: AirlockArmory
+
+- type: entity
+ parent: AirlockGlassShuttle
+ id: AirlockChefContractorGlassShuttleLocked
+ suffix: ChefContractor, Glass, Docking, Locked
+ components:
+ - type: ContainerFill
+ containers:
+ board: [ DoorElectronicsChefContractor ]
+ - type: Wires
+ layoutId: AirlockArmory
+
+- type: entity
+ parent: Windoor
+ id: WindoorChefContractorLocked
+ suffix: ChefContractor, Locked
+ components:
+ - type: ContainerFill
+ containers:
+ board: [ DoorElectronicsChefContractor ]
+ - type: Wires
+ layoutId: AirlockArmory
+
+- type: entity
+ parent: WindoorSecure
+ id: WindoorSecureChefContractorLocked
+ suffix: ChefContractor, Locked
+ components:
+ - type: ContainerFill
+ containers:
+ board: [ DoorElectronicsChefContractor ]
+ - type: Wires
+ layoutId: AirlockArmory
+
+- type: entity
+ parent: WindoorPlasma
+ id: PlasmaWindoorChefContractorLocked
+ suffix: ChefContractor, Locked, Plasma
+ components:
+ - type: ContainerFill
+ containers:
+ board: [ DoorElectronicsChefContractor ]
+ - type: Wires
+ layoutId: AirlockArmory
+
+- type: entity
+ parent: WindoorUranium
+ id: UraniumWindoorChefContractorLocked
+ suffix: ChefContractor, Locked, Uranium
+ components:
+ - type: ContainerFill
+ containers:
+ board: [ DoorElectronicsChefContractor ]
+ - type: Wires
+ layoutId: AirlockArmory
+
+- type: entity
+ parent: WindoorSecurePlasma
+ id: PlasmaWindoorSecureChefContractorLocked
+ suffix: ChefContractor, Locked, Plasma
+ components:
+ - type: ContainerFill
+ containers:
+ board: [ DoorElectronicsChefContractor ]
+ - type: Wires
+ layoutId: AirlockArmory
+
+- type: entity
+ parent: WindoorSecureUranium
+ id: UraniumWindoorSecureChefContractorLocked
+ suffix: ChefContractor, Locked, Uranium
+ components:
+ - type: ContainerFill
+ containers:
+ board: [ DoorElectronicsChefContractor ]
+ - type: Wires
+ layoutId: AirlockArmory
diff --git a/Resources/Prototypes/_White/Entities/Objects/Misc/identification_cards.yml b/Resources/Prototypes/_White/Entities/Objects/Misc/identification_cards.yml
index d47c352fd7..ccfa58f6f3 100644
--- a/Resources/Prototypes/_White/Entities/Objects/Misc/identification_cards.yml
+++ b/Resources/Prototypes/_White/Entities/Objects/Misc/identification_cards.yml
@@ -29,3 +29,23 @@
components:
- type: PresetIdCard
job: ResearchDirectorAnotherSector
+
+- type: entity
+ parent: IDCardStandard
+ id: ClownIDCardContractor
+ components:
+ - type: Sprite
+ layers:
+ - state: non_faction
+ - type: PresetIdCard
+ job: ClownContractor
+
+- type: entity
+ parent: IDCardStandard
+ id: ChefIDCardContractor
+ components:
+ - type: Sprite
+ layers:
+ - state: non_faction
+ - type: PresetIdCard
+ job: ChefContractor
diff --git a/Resources/Prototypes/_White/Roles/Jobs/another_sector.yml b/Resources/Prototypes/_White/Roles/Jobs/misc.yml
similarity index 65%
rename from Resources/Prototypes/_White/Roles/Jobs/another_sector.yml
rename to Resources/Prototypes/_White/Roles/Jobs/misc.yml
index 377c1d2363..9986d15b25 100644
--- a/Resources/Prototypes/_White/Roles/Jobs/another_sector.yml
+++ b/Resources/Prototypes/_White/Roles/Jobs/misc.yml
@@ -21,9 +21,6 @@
playTimeTracker: JobCaptainAnotherSector
icon: "JobIconCaptain"
supervisors: job-supervisors-centcom
- special:
- - !type:AddImplantSpecial
- implants: [ MindShieldImplant ]
- type: job
id: ResearchDirectorAnotherSector
@@ -32,3 +29,23 @@
playTimeTracker: JobResearchDirectorAnotherSector
icon: "JobIconResearchDirector"
supervisors: job-supervisors-captain
+
+- type: job
+ id: ClownContractor
+ name: клоун контрактник
+ description: job-description-clown
+ playTimeTracker: JobClownContractor
+ icon: "JobIconVisitor"
+ supervisors: job-supervisors-hop
+ access:
+ - ClownContractor
+
+- type: job
+ id: ChefContractor
+ name: шеф-повар контрактник
+ description: job-description-chef
+ playTimeTracker: JobChefContractor
+ icon: "JobIconVisitor"
+ supervisors: job-supervisors-hop
+ access:
+ - ChefContractor
diff --git a/Resources/Prototypes/_White/Roles/play_time_trackers.yml b/Resources/Prototypes/_White/Roles/play_time_trackers.yml
new file mode 100644
index 0000000000..bb3b7c5001
--- /dev/null
+++ b/Resources/Prototypes/_White/Roles/play_time_trackers.yml
@@ -0,0 +1,32 @@
+- type: playTimeTracker
+ id: JobInspector
+
+- type: playTimeTracker
+ id: JobBomzh
+
+- type: playTimeTracker
+ id: JobBrigmedic
+
+- type: playTimeTracker
+ id: JobMaid
+
+- type: playTimeTracker
+ id: JobCargoTechnicianAnotherSector
+
+- type: playTimeTracker
+ id: JobChiefMedicalOfficerAnotherSector
+
+- type: playTimeTracker
+ id: JobCaptainAnotherSector
+
+- type: playTimeTracker
+ id: JobResearchDirectorAnotherSector
+
+- type: playTimeTracker
+ id: JobClownContractor
+
+- type: playTimeTracker
+ id: JobChefContractor
+
+- type: playTimeTracker
+ id: JobMercenary
diff --git a/Resources/Prototypes/_White/mercenary.yml b/Resources/Prototypes/_White/mercenary.yml
index e63dfbe20b..4b423eb101 100644
--- a/Resources/Prototypes/_White/mercenary.yml
+++ b/Resources/Prototypes/_White/mercenary.yml
@@ -16,7 +16,7 @@
- id: Tourniquet
- id: Lighter
- id: CigPackBlack
- - id: SpaceCash500
+ - id: SpaceCash5000
- id: FlashlightLantern
- type: startingGear
@@ -79,6 +79,8 @@
nameSegments:
- names_first
- names_last
+ - type: FillIDCard
+ isContractor: true
# Book
- type: entity
@@ -120,7 +122,7 @@
# Airlock
- type: accessLevel
id: Mercenary
- name: id-card-access-level-mercenary
+ name: Наёмник
- type: entity
parent: DoorElectronics
@@ -139,9 +141,17 @@
- type: Sprite
layers:
- state: non_faction
- - type: Access
- tags:
- - Mercenary
+ - type: PresetIdCard
+ job: Mercenary
+
+- type: job
+ id: Mercenary
+ name: наёмник
+ description: ghost-role-information-mercenary-standard-description
+ playTimeTracker: JobMercenary
+ icon: "JobIconVisitor"
+ access:
+ - Mercenary
- type: entity
parent: Airlock
@@ -154,3 +164,101 @@
- type: Wires
layoutId: AirlockArmory
+- type: entity
+ parent: AirlockGlass
+ id: AirlockMercenaryGlassLocked
+ suffix: Mercenary, Locked
+ components:
+ - type: ContainerFill
+ containers:
+ board: [ DoorElectronicsMercenary ]
+ - type: Wires
+ layoutId: AirlockArmory
+
+- type: entity
+ parent: AirlockShuttle
+ id: AirlockMercenaryShuttleLocked
+ suffix: Mercenary, Docking, Locked
+ components:
+ - type: ContainerFill
+ containers:
+ board: [ DoorElectronicsMercenary ]
+ - type: Wires
+ layoutId: AirlockArmory
+
+- type: entity
+ parent: AirlockGlassShuttle
+ id: AirlockMercenaryGlassShuttleLocked
+ suffix: Mercenary, Glass, Docking, Locked
+ components:
+ - type: ContainerFill
+ containers:
+ board: [ DoorElectronicsMercenary ]
+ - type: Wires
+ layoutId: AirlockArmory
+
+- type: entity
+ parent: Windoor
+ id: WindoorMercenaryLocked
+ suffix: Mercenary, Locked
+ components:
+ - type: ContainerFill
+ containers:
+ board: [ DoorElectronicsMercenary ]
+ - type: Wires
+ layoutId: AirlockArmory
+
+- type: entity
+ parent: WindoorSecure
+ id: WindoorSecureMercenaryLocked
+ suffix: Mercenary, Locked
+ components:
+ - type: ContainerFill
+ containers:
+ board: [ DoorElectronicsMercenary ]
+ - type: Wires
+ layoutId: AirlockArmory
+
+- type: entity
+ parent: WindoorPlasma
+ id: PlasmaWindoorMercenaryLocked
+ suffix: Mercenary, Locked, Plasma
+ components:
+ - type: ContainerFill
+ containers:
+ board: [ DoorElectronicsMercenary ]
+ - type: Wires
+ layoutId: AirlockArmory
+
+- type: entity
+ parent: WindoorUranium
+ id: UraniumWindoorMercenaryLocked
+ suffix: Mercenary, Locked, Uranium
+ components:
+ - type: ContainerFill
+ containers:
+ board: [ DoorElectronicsMercenary ]
+ - type: Wires
+ layoutId: AirlockArmory
+
+- type: entity
+ parent: WindoorSecurePlasma
+ id: PlasmaWindoorSecureMercenaryLocked
+ suffix: Mercenary, Locked, Plasma
+ components:
+ - type: ContainerFill
+ containers:
+ board: [ DoorElectronicsMercenary ]
+ - type: Wires
+ layoutId: AirlockArmory
+
+- type: entity
+ parent: WindoorSecureUranium
+ id: UraniumWindoorSecureMercenaryLocked
+ suffix: Mercenary, Locked, Uranium
+ components:
+ - type: ContainerFill
+ containers:
+ board: [ DoorElectronicsMercenary ]
+ - type: Wires
+ layoutId: AirlockArmory