From 5a9b16405f31fcacf09066e25ce289215c42274c Mon Sep 17 00:00:00 2001 From: Kirus59 <145689588+Kirus59@users.noreply.github.com> Date: Tue, 13 Aug 2024 14:36:51 +0300 Subject: [PATCH 1/8] Engraved knukleduster hot fix (#1577) --- Resources/Locale/ru-RU/ss220/misc/case.ftl | 6 +++--- .../{brass_knuckles.ftl => knuckleduster.ftl} | 2 +- .../Catalog/Fills/Lockers/heads.yml | 2 +- .../Prototypes/Objectives/objectiveGroups.yml | 2 +- .../SS220/Entities/Objects/Misc/case.yml | 18 +++++++++--------- .../{brass_knuckles.yml => knuckleduster.yml} | 14 +++++++------- .../SS220/Objectives/stealTargetGroups.yml | 6 +++--- .../Prototypes/SS220/Objectives/traitor.yml | 4 ++-- Resources/Prototypes/SS220/tags.yml | 2 +- .../base.png | Bin .../closed.png | Bin .../icon.png | Bin .../knuckleduster.png} | Bin .../locked.png | Bin .../meta.json | 2 +- .../open.png | Bin .../unlocked.png | Bin .../equipped-HAND.png | Bin .../icon.png | Bin .../inhand-left.png | Bin .../inhand-right.png | Bin .../meta.json | 0 22 files changed, 29 insertions(+), 29 deletions(-) rename Resources/Locale/ru-RU/ss220/weapons/{brass_knuckles.ftl => knuckleduster.ftl} (84%) rename Resources/Prototypes/SS220/Entities/Weapons/Melee/{brass_knuckles.yml => knuckleduster.yml} (66%) rename Resources/Textures/SS220/Misc/{etched_brass_knuckles_case.rsi => engraved_knuckleduster_case.rsi}/base.png (100%) rename Resources/Textures/SS220/Misc/{etched_brass_knuckles_case.rsi => engraved_knuckleduster_case.rsi}/closed.png (100%) rename Resources/Textures/SS220/Misc/{etched_brass_knuckles_case.rsi => engraved_knuckleduster_case.rsi}/icon.png (100%) rename Resources/Textures/SS220/Misc/{etched_brass_knuckles_case.rsi/brassknukles.png => engraved_knuckleduster_case.rsi/knuckleduster.png} (100%) rename Resources/Textures/SS220/Misc/{etched_brass_knuckles_case.rsi => engraved_knuckleduster_case.rsi}/locked.png (100%) rename Resources/Textures/SS220/Misc/{etched_brass_knuckles_case.rsi => engraved_knuckleduster_case.rsi}/meta.json (94%) rename Resources/Textures/SS220/Misc/{etched_brass_knuckles_case.rsi => engraved_knuckleduster_case.rsi}/open.png (100%) rename Resources/Textures/SS220/Misc/{etched_brass_knuckles_case.rsi => engraved_knuckleduster_case.rsi}/unlocked.png (100%) rename Resources/Textures/SS220/Objects/Weapons/Melee/{etched_brass_knuckles.rsi => engraved_knuckleduster.rsi}/equipped-HAND.png (100%) rename Resources/Textures/SS220/Objects/Weapons/Melee/{etched_brass_knuckles.rsi => engraved_knuckleduster.rsi}/icon.png (100%) rename Resources/Textures/SS220/Objects/Weapons/Melee/{etched_brass_knuckles.rsi => engraved_knuckleduster.rsi}/inhand-left.png (100%) rename Resources/Textures/SS220/Objects/Weapons/Melee/{etched_brass_knuckles.rsi => engraved_knuckleduster.rsi}/inhand-right.png (100%) rename Resources/Textures/SS220/Objects/Weapons/Melee/{etched_brass_knuckles.rsi => engraved_knuckleduster.rsi}/meta.json (100%) diff --git a/Resources/Locale/ru-RU/ss220/misc/case.ftl b/Resources/Locale/ru-RU/ss220/misc/case.ftl index cd813ef31fd6..3fdd6dce4730 100644 --- a/Resources/Locale/ru-RU/ss220/misc/case.ftl +++ b/Resources/Locale/ru-RU/ss220/misc/case.ftl @@ -1,7 +1,7 @@ -ent-GlassCaseEtchedBrassKnuckles = стеклянный кейс +ent-GlassCaseEngravedKnuckleduster = стеклянный кейс .desc = Изготовлен на заказ для хранения ценных предметов. Крышка выполнена из закалённого стекла, а основание из дерева, выращенного на тропических планетах. Коробка украшена бархатной подушкой, чтобы предотвратить возможные царапины. .suffix = Гравированный кастет -ent-GlassCaseEtchedBrassKnucklesFilled = стеклянный кейс - .desc = { ent-GlassCase.desc } +ent-GlassCaseEngravedKnuckledusterFilled = стеклянный кейс + .desc = { ent-GlassCaseEngravedKnuckleduster.desc } .suffix = Гравированный кастет, Заполненый diff --git a/Resources/Locale/ru-RU/ss220/weapons/brass_knuckles.ftl b/Resources/Locale/ru-RU/ss220/weapons/knuckleduster.ftl similarity index 84% rename from Resources/Locale/ru-RU/ss220/weapons/brass_knuckles.ftl rename to Resources/Locale/ru-RU/ss220/weapons/knuckleduster.ftl index 5faf431076ac..a8888b0e5c5f 100644 --- a/Resources/Locale/ru-RU/ss220/weapons/brass_knuckles.ftl +++ b/Resources/Locale/ru-RU/ss220/weapons/knuckleduster.ftl @@ -1,2 +1,2 @@ -ent-EtchedBrassKnuckles = гравированный кастет +ent-EngravedKnuckleduster = гравированный кастет .desc = Гравированный кастет квартирмейстера, изготовленный по специальному заказу. Выдан в качестве средства борьбы с участившимися случаями краж личных вещей и материалов из отдела снабжения. diff --git a/Resources/Prototypes/Catalog/Fills/Lockers/heads.yml b/Resources/Prototypes/Catalog/Fills/Lockers/heads.yml index 1287fbfd593e..40cc309e6db1 100644 --- a/Resources/Prototypes/Catalog/Fills/Lockers/heads.yml +++ b/Resources/Prototypes/Catalog/Fills/Lockers/heads.yml @@ -22,7 +22,7 @@ - id: ClothingHeadsetAltCargo - id: BoxEncryptionKeyCargo - id: ClothingWristWatchGold # SS220 Wrist Watch - - id: GlassCaseEtchedBrassKnucklesFilled # SS220 New Qm highrisk + - id: GlassCaseEngravedKnuckledusterFilled # SS220 New Qm highrisk - type: entity id: LockerCaptainFilledHardsuit diff --git a/Resources/Prototypes/Objectives/objectiveGroups.yml b/Resources/Prototypes/Objectives/objectiveGroups.yml index 086979ecb5e0..f173131fd759 100644 --- a/Resources/Prototypes/Objectives/objectiveGroups.yml +++ b/Resources/Prototypes/Objectives/objectiveGroups.yml @@ -18,7 +18,7 @@ MagbootsStealObjective: 1 CorgiMeatStealObjective: 1 ClipboardStealObjective: 1 - EtchedBrassKnucklesStealObjective: 1 #SS220 New Qm highrisk + EngravedKnuckledusterStealObjective: 1 #SS220 New Qm highrisk CaptainGunStealObjective: 0.5 CaptainJetpackStealObjective: 0.5 HandTeleporterStealObjective: 0.5 diff --git a/Resources/Prototypes/SS220/Entities/Objects/Misc/case.yml b/Resources/Prototypes/SS220/Entities/Objects/Misc/case.yml index 91a4886fbd60..c6b948147efc 100644 --- a/Resources/Prototypes/SS220/Entities/Objects/Misc/case.yml +++ b/Resources/Prototypes/SS220/Entities/Objects/Misc/case.yml @@ -2,9 +2,9 @@ - type: entity parent: [BaseItem, BaseItemCabinet] - id: GlassCaseEtchedBrassKnuckles + id: GlassCaseEngravedKnuckleduster name: glass case - suffix: Etched brass knuckles + suffix: Engraved knuckleduster description: Made to order for storing valuables. The lid is made of tempered glass, and the base is made of wood grown on tropical planets and decorated with a velvet pad to prevent possible scratches. components: - type: Item @@ -12,11 +12,11 @@ - type: Lock - type: LockVisuals - type: Sprite - sprite: SS220/Misc/etched_brass_knuckles_case.rsi + sprite: SS220/Misc/engraved_knuckleduster_case.rsi layers: - state: base map: ["enum.StorageVisualLayers.Base"] - - state: brassknukles + - state: knuckleduster map: ["enum.ItemCabinetVisuals.Layer"] visible: true - state: closed @@ -31,7 +31,7 @@ ejectOnInteract: true whitelist: tags: - - EtchedBrassKnuckles + - EngravedKnuckleduster ejectSound: /Audio/Machines/machine_switch.ogg - type: GenericVisualizer visuals: @@ -74,14 +74,14 @@ price: 200 - type: entity - parent: GlassCaseEtchedBrassKnuckles - id: GlassCaseEtchedBrassKnucklesFilled + parent: GlassCaseEngravedKnuckleduster + id: GlassCaseEngravedKnuckledusterFilled name: glass case - suffix: Etched brass knuckles, Filled + suffix: Engraved knuckleduster, Filled components: - type: AccessReader access: [["Quartermaster"]] - type: ContainerFill containers: ItemCabinet: - - EtchedBrassKnuckles + - EngravedKnuckleduster diff --git a/Resources/Prototypes/SS220/Entities/Weapons/Melee/brass_knuckles.yml b/Resources/Prototypes/SS220/Entities/Weapons/Melee/knuckleduster.yml similarity index 66% rename from Resources/Prototypes/SS220/Entities/Weapons/Melee/brass_knuckles.yml rename to Resources/Prototypes/SS220/Entities/Weapons/Melee/knuckleduster.yml index f56e2e24f6d8..982e80e955ab 100644 --- a/Resources/Prototypes/SS220/Entities/Weapons/Melee/brass_knuckles.yml +++ b/Resources/Prototypes/SS220/Entities/Weapons/Melee/knuckleduster.yml @@ -2,16 +2,16 @@ #Quartermaster - type: entity - name: brass knuckles + name: engraved knuckleduster parent: BaseItem - id: EtchedBrassKnuckles - description: кастет + id: EngravedKnuckleduster + description: The quartermaster's engraved knuckleduster, made by special order. It was issued as a means of combating the increased cases of theft of personal belongings and materials from the supply department. components: - type: Sprite - sprite: SS220/Objects/Weapons/Melee/etched_brass_knuckles.rsi + sprite: SS220/Objects/Weapons/Melee/engraved_knuckleduster.rsi state: icon - type: Clothing - sprite: SS220/Objects/Weapons/Melee/etched_brass_knuckles.rsi + sprite: SS220/Objects/Weapons/Melee/engraved_knuckleduster.rsi slots: [gloves] - type: Item size: Small @@ -36,8 +36,8 @@ damageSound: /Audio/SS220/Weapons/brassKnukles/critical-hit.ogg - type: Tag tags: - - EtchedBrassKnuckles + - EngravedKnuckleduster - type: StaticPrice price: 1000 - type: StealTarget - stealGroup: EtchedBrassKnuckles + stealGroup: EngravedKnuckleduster diff --git a/Resources/Prototypes/SS220/Objectives/stealTargetGroups.yml b/Resources/Prototypes/SS220/Objectives/stealTargetGroups.yml index 49d5b7616d13..2c6887b4f211 100644 --- a/Resources/Prototypes/SS220/Objectives/stealTargetGroups.yml +++ b/Resources/Prototypes/SS220/Objectives/stealTargetGroups.yml @@ -6,8 +6,8 @@ state: icon - type: stealTargetGroup - id: EtchedBrassKnuckles - name: engraved brass knuckles + id: EngravedKnuckleduster + name: engraved knuckleduster sprite: - sprite: SS220/Objects/Weapons/Melee/etched_brass_knuckles.rsi + sprite: SS220/Objects/Weapons/Melee/engraved_knuckleduster.rsi state: icon diff --git a/Resources/Prototypes/SS220/Objectives/traitor.yml b/Resources/Prototypes/SS220/Objectives/traitor.yml index 330f44d2241e..62fbb5c639d5 100644 --- a/Resources/Prototypes/SS220/Objectives/traitor.yml +++ b/Resources/Prototypes/SS220/Objectives/traitor.yml @@ -2,10 +2,10 @@ - type: entity parent: BaseTraitorStealObjective - id: EtchedBrassKnucklesStealObjective + id: EngravedKnuckledusterStealObjective components: - type: NotJobRequirement job: Quartermaster - type: StealCondition - stealGroup: EtchedBrassKnuckles + stealGroup: EngravedKnuckleduster owner: job-name-qm diff --git a/Resources/Prototypes/SS220/tags.yml b/Resources/Prototypes/SS220/tags.yml index e4bb91bcc6ef..81a0cac86b1f 100644 --- a/Resources/Prototypes/SS220/tags.yml +++ b/Resources/Prototypes/SS220/tags.yml @@ -90,4 +90,4 @@ # New Qm highrisk - type: Tag - id: EtchedBrassKnuckles + id: EngravedKnuckleduster diff --git a/Resources/Textures/SS220/Misc/etched_brass_knuckles_case.rsi/base.png b/Resources/Textures/SS220/Misc/engraved_knuckleduster_case.rsi/base.png similarity index 100% rename from Resources/Textures/SS220/Misc/etched_brass_knuckles_case.rsi/base.png rename to Resources/Textures/SS220/Misc/engraved_knuckleduster_case.rsi/base.png diff --git a/Resources/Textures/SS220/Misc/etched_brass_knuckles_case.rsi/closed.png b/Resources/Textures/SS220/Misc/engraved_knuckleduster_case.rsi/closed.png similarity index 100% rename from Resources/Textures/SS220/Misc/etched_brass_knuckles_case.rsi/closed.png rename to Resources/Textures/SS220/Misc/engraved_knuckleduster_case.rsi/closed.png diff --git a/Resources/Textures/SS220/Misc/etched_brass_knuckles_case.rsi/icon.png b/Resources/Textures/SS220/Misc/engraved_knuckleduster_case.rsi/icon.png similarity index 100% rename from Resources/Textures/SS220/Misc/etched_brass_knuckles_case.rsi/icon.png rename to Resources/Textures/SS220/Misc/engraved_knuckleduster_case.rsi/icon.png diff --git a/Resources/Textures/SS220/Misc/etched_brass_knuckles_case.rsi/brassknukles.png b/Resources/Textures/SS220/Misc/engraved_knuckleduster_case.rsi/knuckleduster.png similarity index 100% rename from Resources/Textures/SS220/Misc/etched_brass_knuckles_case.rsi/brassknukles.png rename to Resources/Textures/SS220/Misc/engraved_knuckleduster_case.rsi/knuckleduster.png diff --git a/Resources/Textures/SS220/Misc/etched_brass_knuckles_case.rsi/locked.png b/Resources/Textures/SS220/Misc/engraved_knuckleduster_case.rsi/locked.png similarity index 100% rename from Resources/Textures/SS220/Misc/etched_brass_knuckles_case.rsi/locked.png rename to Resources/Textures/SS220/Misc/engraved_knuckleduster_case.rsi/locked.png diff --git a/Resources/Textures/SS220/Misc/etched_brass_knuckles_case.rsi/meta.json b/Resources/Textures/SS220/Misc/engraved_knuckleduster_case.rsi/meta.json similarity index 94% rename from Resources/Textures/SS220/Misc/etched_brass_knuckles_case.rsi/meta.json rename to Resources/Textures/SS220/Misc/engraved_knuckleduster_case.rsi/meta.json index 951196bbfb71..db695e50f3ad 100644 --- a/Resources/Textures/SS220/Misc/etched_brass_knuckles_case.rsi/meta.json +++ b/Resources/Textures/SS220/Misc/engraved_knuckleduster_case.rsi/meta.json @@ -26,7 +26,7 @@ "name": "unlocked" }, { - "name": "brassknukles" + "name": "knuckleduster" } ] } diff --git a/Resources/Textures/SS220/Misc/etched_brass_knuckles_case.rsi/open.png b/Resources/Textures/SS220/Misc/engraved_knuckleduster_case.rsi/open.png similarity index 100% rename from Resources/Textures/SS220/Misc/etched_brass_knuckles_case.rsi/open.png rename to Resources/Textures/SS220/Misc/engraved_knuckleduster_case.rsi/open.png diff --git a/Resources/Textures/SS220/Misc/etched_brass_knuckles_case.rsi/unlocked.png b/Resources/Textures/SS220/Misc/engraved_knuckleduster_case.rsi/unlocked.png similarity index 100% rename from Resources/Textures/SS220/Misc/etched_brass_knuckles_case.rsi/unlocked.png rename to Resources/Textures/SS220/Misc/engraved_knuckleduster_case.rsi/unlocked.png diff --git a/Resources/Textures/SS220/Objects/Weapons/Melee/etched_brass_knuckles.rsi/equipped-HAND.png b/Resources/Textures/SS220/Objects/Weapons/Melee/engraved_knuckleduster.rsi/equipped-HAND.png similarity index 100% rename from Resources/Textures/SS220/Objects/Weapons/Melee/etched_brass_knuckles.rsi/equipped-HAND.png rename to Resources/Textures/SS220/Objects/Weapons/Melee/engraved_knuckleduster.rsi/equipped-HAND.png diff --git a/Resources/Textures/SS220/Objects/Weapons/Melee/etched_brass_knuckles.rsi/icon.png b/Resources/Textures/SS220/Objects/Weapons/Melee/engraved_knuckleduster.rsi/icon.png similarity index 100% rename from Resources/Textures/SS220/Objects/Weapons/Melee/etched_brass_knuckles.rsi/icon.png rename to Resources/Textures/SS220/Objects/Weapons/Melee/engraved_knuckleduster.rsi/icon.png diff --git a/Resources/Textures/SS220/Objects/Weapons/Melee/etched_brass_knuckles.rsi/inhand-left.png b/Resources/Textures/SS220/Objects/Weapons/Melee/engraved_knuckleduster.rsi/inhand-left.png similarity index 100% rename from Resources/Textures/SS220/Objects/Weapons/Melee/etched_brass_knuckles.rsi/inhand-left.png rename to Resources/Textures/SS220/Objects/Weapons/Melee/engraved_knuckleduster.rsi/inhand-left.png diff --git a/Resources/Textures/SS220/Objects/Weapons/Melee/etched_brass_knuckles.rsi/inhand-right.png b/Resources/Textures/SS220/Objects/Weapons/Melee/engraved_knuckleduster.rsi/inhand-right.png similarity index 100% rename from Resources/Textures/SS220/Objects/Weapons/Melee/etched_brass_knuckles.rsi/inhand-right.png rename to Resources/Textures/SS220/Objects/Weapons/Melee/engraved_knuckleduster.rsi/inhand-right.png diff --git a/Resources/Textures/SS220/Objects/Weapons/Melee/etched_brass_knuckles.rsi/meta.json b/Resources/Textures/SS220/Objects/Weapons/Melee/engraved_knuckleduster.rsi/meta.json similarity index 100% rename from Resources/Textures/SS220/Objects/Weapons/Melee/etched_brass_knuckles.rsi/meta.json rename to Resources/Textures/SS220/Objects/Weapons/Melee/engraved_knuckleduster.rsi/meta.json From b4d15923ba92707854a1df53b5a126f5061b95d3 Mon Sep 17 00:00:00 2001 From: ReeZer2 <63300653+ReeZer2@users.noreply.github.com> Date: Tue, 13 Aug 2024 16:57:48 +0300 Subject: [PATCH 2/8] FIX rev spectating (#1576) --- Resources/Prototypes/Entities/Mobs/NPCs/revenant.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/revenant.yml b/Resources/Prototypes/Entities/Mobs/NPCs/revenant.yml index a29d2b3e65c8..9b9fbed8f585 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/revenant.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/revenant.yml @@ -97,3 +97,9 @@ - RevenantTheme - type: Speech speechVerb: Ghost + #ss220 spec fix start + - type: MobState + allowedStates: + - Alive + - Dead + #ss220 spec fix end From 831c9cee3b440498a838529b8a1d94adb52729f3 Mon Sep 17 00:00:00 2001 From: Maxon Date: Tue, 13 Aug 2024 13:58:54 +0000 Subject: [PATCH 3/8] Automatic changelog update --- Resources/Changelog/Changelog220.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/Resources/Changelog/Changelog220.yml b/Resources/Changelog/Changelog220.yml index da1228a2a7f4..640af327f2ab 100644 --- a/Resources/Changelog/Changelog220.yml +++ b/Resources/Changelog/Changelog220.yml @@ -4714,3 +4714,13 @@ id: 373 time: '2024-08-12T14:13:16.0000000+00:00' url: https://github.com/SerbiaStrong-220/space-station-14/pull/1574 +- author: ReeZii + changes: + - message: "\u0418\u0441\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0430 \u043D\u0435\ + \u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E\u0441\u0442\u044C \u0441\u043B\ + \u0435\u0434\u0438\u0442\u044C \u0437\u0430 \u0440\u0435\u0432\u0435\u043D\u0430\ + \u043D\u0442\u043E\u043C" + type: Fix + id: 374 + time: '2024-08-13T13:57:48.0000000+00:00' + url: https://github.com/SerbiaStrong-220/space-station-14/pull/1576 From 0616261d0e8772491ac4f5a020675afe0362020f Mon Sep 17 00:00:00 2001 From: ReeZer2 <63300653+ReeZer2@users.noreply.github.com> Date: Wed, 14 Aug 2024 00:50:46 +0300 Subject: [PATCH 4/8] ADD traitor codewords highlight (#1582) --- .../Systems/Chat/Widgets/ChatBox.xaml.cs | 16 ++++++++++++++++ .../GameTicking/Rules/TraitorRuleSystem.cs | 8 ++++++++ .../ShowCodewords/ShowCodewordsComponent.cs | 11 +++++++++++ 3 files changed, 35 insertions(+) create mode 100644 Content.Shared/SS220/ShowCodewords/ShowCodewordsComponent.cs diff --git a/Content.Client/UserInterface/Systems/Chat/Widgets/ChatBox.xaml.cs b/Content.Client/UserInterface/Systems/Chat/Widgets/ChatBox.xaml.cs index 9853ddcf411d..a8a0ee2d284b 100644 --- a/Content.Client/UserInterface/Systems/Chat/Widgets/ChatBox.xaml.cs +++ b/Content.Client/UserInterface/Systems/Chat/Widgets/ChatBox.xaml.cs @@ -1,9 +1,11 @@ using Content.Client.UserInterface.Systems.Chat.Controls; using Content.Shared.Chat; using Content.Shared.Input; +using Content.Shared.SS220.ShowCodewords; using Robust.Client.Audio; using Robust.Client.AutoGenerated; using Robust.Client.GameObjects; +using Robust.Client.Player; using Robust.Client.UserInterface; using Robust.Client.UserInterface.Controls; using Robust.Client.UserInterface.XAML; @@ -65,6 +67,20 @@ private void OnMessageAdded(ChatMessage msg) var color = msg.MessageColorOverride ?? msg.Channel.TextColor(); + //ss220 codewords highlight add start + var playerManager = IoCManager.Resolve(); + var entManager = IoCManager.Resolve(); + + if (playerManager.LocalEntity != null && + entManager.TryGetComponent(playerManager.LocalEntity, out var showCodewordsComponent)) + { + foreach (var codeword in showCodewordsComponent.CodeWords) + { + msg.WrappedMessage = msg.WrappedMessage.Replace(codeword, $"[color=pink]{codeword}[/color]"); + } + } + //ss220 codewords highlight add end + AddLine(msg.WrappedMessage, color); } diff --git a/Content.Server/GameTicking/Rules/TraitorRuleSystem.cs b/Content.Server/GameTicking/Rules/TraitorRuleSystem.cs index a75d43169043..e033d37c645a 100644 --- a/Content.Server/GameTicking/Rules/TraitorRuleSystem.cs +++ b/Content.Server/GameTicking/Rules/TraitorRuleSystem.cs @@ -18,6 +18,7 @@ using System.Text; using Content.Shared.GameTicking.Components; using Content.Server.SS220.MindSlave; +using Content.Shared.SS220.ShowCodewords; namespace Content.Server.GameTicking.Rules; @@ -106,6 +107,13 @@ public bool MakeTraitor(EntityUid traitor, TraitorRuleComponent component, bool component.TraitorMinds.Add(mindId); + //ss220 codewords highlight add start + + var showCodewordsComp = EnsureComp(traitor); + showCodewordsComp.CodeWords = component.Codewords; + + //ss220 codewords highlight add end + // Assign briefing _roleSystem.MindAddRole(mindId, new RoleBriefingComponent { diff --git a/Content.Shared/SS220/ShowCodewords/ShowCodewordsComponent.cs b/Content.Shared/SS220/ShowCodewords/ShowCodewordsComponent.cs new file mode 100644 index 000000000000..2f82b2c3d61e --- /dev/null +++ b/Content.Shared/SS220/ShowCodewords/ShowCodewordsComponent.cs @@ -0,0 +1,11 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.SS220.ShowCodewords; + +[RegisterComponent, NetworkedComponent] +[AutoGenerateComponentState] +public sealed partial class ShowCodewordsComponent : Component +{ + [DataField("codewords"), ViewVariables(VVAccess.ReadWrite), AutoNetworkedField] + public string[] CodeWords; +} From 85e3ecf3e01559332618b09d0b6c8cd1cad2811b Mon Sep 17 00:00:00 2001 From: Maxon Date: Tue, 13 Aug 2024 21:51:51 +0000 Subject: [PATCH 5/8] Automatic changelog update --- Resources/Changelog/Changelog220.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/Resources/Changelog/Changelog220.yml b/Resources/Changelog/Changelog220.yml index 640af327f2ab..086239b9aa34 100644 --- a/Resources/Changelog/Changelog220.yml +++ b/Resources/Changelog/Changelog220.yml @@ -4724,3 +4724,13 @@ id: 374 time: '2024-08-13T13:57:48.0000000+00:00' url: https://github.com/SerbiaStrong-220/space-station-14/pull/1576 +- author: ReeZii + changes: + - message: "\u0414\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0430 \u043F\u043E\u0434\ + \u0441\u0432\u0435\u0442\u043A\u0430 \u043A\u043E\u0434\u043E\u0432\u044B\u0445\ + \ \u0441\u043B\u043E\u0432 \u0434\u043B\u044F \u0442\u0440\u0435\u0439\u0442\ + \u0435\u0440\u043E\u0432" + type: Add + id: 375 + time: '2024-08-13T21:50:47.0000000+00:00' + url: https://github.com/SerbiaStrong-220/space-station-14/pull/1582 From 4c1f8f93352839fd0272816aa27ef70fe7976b4f Mon Sep 17 00:00:00 2001 From: Stalen <33173619+stalengd@users.noreply.github.com> Date: Wed, 14 Aug 2024 01:06:20 +0300 Subject: [PATCH 6/8] Texture fade overlay (#1580) --- Content.Client/SS220/Overlays/OverlayStack.cs | 119 ++++++++++++++++++ .../SS220/TextureFade/TextureFadeOverlay.cs | 75 +++++++++++ .../TextureFadeOverlayComponent.cs | 36 ++++++ .../TextureFade/TextureFadeOverlaySystem.cs | 82 ++++++++++++ .../TextureFadeOverlayComponent.cs | 9 ++ .../SharedTextureFadeOverlayComponent.cs | 10 ++ .../Prototypes/SS220/Shaders/texture_fade.yml | 5 + .../Textures/SS220/Shaders/texture_fade.swsl | 12 ++ 8 files changed, 348 insertions(+) create mode 100644 Content.Client/SS220/Overlays/OverlayStack.cs create mode 100644 Content.Client/SS220/TextureFade/TextureFadeOverlay.cs create mode 100644 Content.Client/SS220/TextureFade/TextureFadeOverlayComponent.cs create mode 100644 Content.Client/SS220/TextureFade/TextureFadeOverlaySystem.cs create mode 100644 Content.Server/SS220/TextureFade/TextureFadeOverlayComponent.cs create mode 100644 Content.Shared/SS220/TextureFade/SharedTextureFadeOverlayComponent.cs create mode 100644 Resources/Prototypes/SS220/Shaders/texture_fade.yml create mode 100644 Resources/Textures/SS220/Shaders/texture_fade.swsl diff --git a/Content.Client/SS220/Overlays/OverlayStack.cs b/Content.Client/SS220/Overlays/OverlayStack.cs new file mode 100644 index 000000000000..80d243354283 --- /dev/null +++ b/Content.Client/SS220/Overlays/OverlayStack.cs @@ -0,0 +1,119 @@ +// © SS220, An EULA/CLA with a hosting restriction, full text: https://raw.githubusercontent.com/SerbiaStrong-220/space-station-14/master/CLA.txt +using Robust.Client.Graphics; +using Robust.Shared.Enums; +using Robust.Shared.Timing; + +namespace Content.Client.SS220.Overlays +{ + /// + /// Special overlays container created to bypass limits of not supporting multiple overlays of the same type. + /// + public sealed class OverlayStack : Overlay + { + public override OverlaySpace Space => _space; + private readonly SortedDictionary _overlays = new(OverlayComparer.Instance); + + private OverlaySpace _space; + + public bool AddOverlay(StackableOverlay overlay) + { + if (_overlays.ContainsKey(overlay)) + return false; + _overlays.Add(overlay, new()); + _space |= overlay.Space; + return true; + } + + public bool RemoveOverlay(StackableOverlay overlay) + { + if (!_overlays.ContainsKey(overlay)) + return false; + _overlays.Remove(overlay); + return true; + } + + protected override void FrameUpdate(FrameEventArgs args) + { + foreach (var (overlay, _) in _overlays) + { + overlay.FrameUpdatePublic(args); + } + } + + protected override bool BeforeDraw(in OverlayDrawArgs args) + { + var result = false; + foreach (var (overlay, data) in _overlays) + { + if (!ShouldDraw(overlay, args)) + continue; + var shouldDraw = overlay.BeforeDrawPublic(in args); + data.ShouldDrawThisFrame = shouldDraw; + result |= shouldDraw; + } + return result; + } + + protected override void Draw(in OverlayDrawArgs args) + { + foreach (var (overlay, data) in _overlays) + { + if (!ShouldDraw(overlay, args) || !data.ShouldDrawThisFrame) + continue; + overlay.DrawPublic(in args); + } + } + + public static OverlayStack Get(IOverlayManager overlayManager) + { + if (overlayManager.TryGetOverlay(out var overlay)) + return overlay; + overlay = new OverlayStack(); + overlayManager.AddOverlay(overlay); + return overlay; + } + + private static bool ShouldDraw(StackableOverlay overlay, OverlayDrawArgs drawArgs) + { + return (overlay.Space & drawArgs.Space) != 0; + } + + private sealed class OverlayData + { + public bool ShouldDrawThisFrame; + } + + private sealed class OverlayComparer : IComparer + { + public static readonly OverlayComparer Instance = new(); + + public int Compare(Overlay? x, Overlay? y) + { + var zX = x?.ZIndex ?? 0; + var zY = y?.ZIndex ?? 0; + return zX.CompareTo(zY); + } + } + } + + /// + /// An overlay supported by + /// + public abstract class StackableOverlay : Overlay + { + public void FrameUpdatePublic(FrameEventArgs args) + { + FrameUpdate(args); + } + + public bool BeforeDrawPublic(in OverlayDrawArgs args) + { + return BeforeDraw(in args); + } + + public void DrawPublic(in OverlayDrawArgs args) + { + Draw(in args); + } + } +} diff --git a/Content.Client/SS220/TextureFade/TextureFadeOverlay.cs b/Content.Client/SS220/TextureFade/TextureFadeOverlay.cs new file mode 100644 index 000000000000..e0be72beb976 --- /dev/null +++ b/Content.Client/SS220/TextureFade/TextureFadeOverlay.cs @@ -0,0 +1,75 @@ +// © SS220, An EULA/CLA with a hosting restriction, full text: https://raw.githubusercontent.com/SerbiaStrong-220/space-station-14/master/CLA.txt +using System.Numerics; +using Content.Client.SS220.Overlays; +using Robust.Client.GameObjects; +using Robust.Client.Graphics; +using Robust.Shared.Enums; +using Robust.Shared.Prototypes; +using Robust.Shared.Timing; +using Robust.Shared.Utility; + +namespace Content.Client.SS220.TextureFade; + +/// +/// Performs alpha clip on the privided texture with variable threshold (threshold filter). See for more automatic use. +/// +public sealed class TextureFadeOverlay : StackableOverlay +{ + [Dependency] private readonly IPrototypeManager _prototypeManager = default!; + [Dependency] private readonly IEntityManager _entityManager = default!; + private readonly SpriteSystem _spriteSystem = default!; + + public override OverlaySpace Space => OverlaySpace.WorldSpace; + public SpriteSpecifier? Sprite; + public Color Modulate = Color.White; + public float FadeProgress = 0f; + public TimeSpan Time; + public bool Loop = true; + + private readonly ShaderInstance _shader; + + public TextureFadeOverlay() + { + IoCManager.InjectDependencies(this); + _spriteSystem = _entityManager.EntitySysManager.GetEntitySystem(); + _shader = _prototypeManager.Index("TextureFade").InstanceUnique(); + } + + protected override void FrameUpdate(FrameEventArgs args) + { + Time += TimeSpan.FromSeconds(args.DeltaSeconds); + } + + protected override void Draw(in OverlayDrawArgs args) + { + if (Sprite == null) + return; + + var texture = _spriteSystem.GetFrame(Sprite, Time, Loop); + + var worldHandle = args.WorldHandle; + _shader.SetParameter("FadeProgress", FadeProgress); + + var viewQuad = args.WorldBounds; + var viewSize = viewQuad.Box.Size; + var viewRatio = viewSize.X / viewSize.Y; + var regionSize = texture.Size; + var regionRatio = (float)regionSize.X / regionSize.Y; + var scaleBy = Vector2.One; + if (viewRatio > regionRatio) + { + scaleBy.Y = viewRatio / regionRatio; + } + else + { + scaleBy.X = regionRatio / viewRatio; + } + viewQuad.Box = viewQuad.Box.Scale(scaleBy); + + worldHandle.Modulate = Modulate; + worldHandle.UseShader(_shader); + worldHandle.DrawTextureRectRegion(texture, viewQuad); + worldHandle.UseShader(null); + worldHandle.Modulate = Color.White; + } +} diff --git a/Content.Client/SS220/TextureFade/TextureFadeOverlayComponent.cs b/Content.Client/SS220/TextureFade/TextureFadeOverlayComponent.cs new file mode 100644 index 000000000000..52c1642e0286 --- /dev/null +++ b/Content.Client/SS220/TextureFade/TextureFadeOverlayComponent.cs @@ -0,0 +1,36 @@ +// © SS220, An EULA/CLA with a hosting restriction, full text: https://raw.githubusercontent.com/SerbiaStrong-220/space-station-14/master/CLA.txt +using Content.Shared.SS220.TextureFade; +using Robust.Shared.Utility; + +namespace Content.Client.SS220.TextureFade; + +/// +/// Component for automatic texture fade processing, you can still use directly. +/// You can use all this data fiels directly in code to enable/disable, set progress, etc. +/// +[RegisterComponent] +public sealed partial class TextureFadeOverlayComponent : SharedTextureFadeOverlayComponent +{ + [DataField, ViewVariables(VVAccess.ReadWrite)] + public bool IsEnabled = false; + [DataField, ViewVariables(VVAccess.ReadWrite)] + public float FadeProgress = 1; + [DataField, ViewVariables(VVAccess.ReadWrite)] + public SpriteSpecifier Sprite = SpriteSpecifier.Invalid; + [DataField, ViewVariables(VVAccess.ReadWrite)] + public Color Modulate = Color.White; + [DataField, ViewVariables(VVAccess.ReadWrite)] + public int ZIndex = 0; + [DataField, ViewVariables(VVAccess.ReadWrite)] + public float ProgressSpeed = 0; + [DataField, ViewVariables(VVAccess.ReadWrite)] + public float MinProgress = 0; + [DataField, ViewVariables(VVAccess.ReadWrite)] + public float MaxProgress = 1; + [DataField, ViewVariables(VVAccess.ReadWrite)] + public float PulseMagnitude = 0; + [DataField, ViewVariables(VVAccess.ReadWrite)] + public float PulseRate = 0; + + public TextureFadeOverlay? Overlay; +} diff --git a/Content.Client/SS220/TextureFade/TextureFadeOverlaySystem.cs b/Content.Client/SS220/TextureFade/TextureFadeOverlaySystem.cs new file mode 100644 index 000000000000..166a9c5a94ca --- /dev/null +++ b/Content.Client/SS220/TextureFade/TextureFadeOverlaySystem.cs @@ -0,0 +1,82 @@ +// © SS220, An EULA/CLA with a hosting restriction, full text: https://raw.githubusercontent.com/SerbiaStrong-220/space-station-14/master/CLA.txt +using Content.Client.SS220.Overlays; +using Robust.Client.Graphics; + +namespace Content.Client.SS220.TextureFade; + +public sealed class TextureFadeOverlaySystem : EntitySystem +{ + [Dependency] private readonly IOverlayManager _overlayManager = default!; + + public override void Initialize() + { + SubscribeLocalEvent(OnRemove); + } + + public override void FrameUpdate(float frameTime) + { + var componentsQuery = EntityQueryEnumerator(); + while (componentsQuery.MoveNext(out var comp)) + { + HandleOverlayActivityUpdate(comp); + HandleOverlayProgressUpdate(comp, frameTime); + } + } + + private void OnRemove(Entity entity, ref ComponentRemove args) + { + DestroyOverlay(entity.Comp); + } + + private void HandleOverlayActivityUpdate(TextureFadeOverlayComponent component) + { + if (component.IsEnabled && component.Overlay is null) + { + component.Overlay = CreateOverlay(component); + return; + } + if (!component.IsEnabled && component.Overlay is { }) + { + DestroyOverlay(component); + return; + } + } + + private void HandleOverlayProgressUpdate(TextureFadeOverlayComponent component, float frameTime) + { + if (component.Overlay == null) + return; + if (component.ProgressSpeed != 0f) + { + component.FadeProgress += component.ProgressSpeed * frameTime; + component.FadeProgress = Math.Clamp(component.FadeProgress, component.MinProgress, component.MaxProgress); + } + var fadeProgressMod = component.FadeProgress; + fadeProgressMod += (float)Math.Sin(Math.PI * component.Overlay.Time.TotalSeconds * component.PulseRate) * component.PulseMagnitude; + fadeProgressMod = Math.Clamp(fadeProgressMod, 0f, 1f); + component.Overlay.FadeProgress = fadeProgressMod; + component.Overlay.Modulate = component.Modulate; + component.Overlay.ZIndex = component.ZIndex; + } + + private TextureFadeOverlay CreateOverlay(TextureFadeOverlayComponent component) + { + var overlay = new TextureFadeOverlay() + { + Sprite = component.Sprite, + Modulate = component.Modulate, + ZIndex = component.ZIndex, + }; + OverlayStack.Get(_overlayManager).AddOverlay(overlay); + return overlay; + } + + private void DestroyOverlay(TextureFadeOverlayComponent component) + { + if (component.Overlay is null) + return; + OverlayStack.Get(_overlayManager).RemoveOverlay(component.Overlay); + component.Overlay.Dispose(); + component.Overlay = null; + } +} diff --git a/Content.Server/SS220/TextureFade/TextureFadeOverlayComponent.cs b/Content.Server/SS220/TextureFade/TextureFadeOverlayComponent.cs new file mode 100644 index 000000000000..8b0b48d9ab93 --- /dev/null +++ b/Content.Server/SS220/TextureFade/TextureFadeOverlayComponent.cs @@ -0,0 +1,9 @@ +// © SS220, An EULA/CLA with a hosting restriction, full text: https://raw.githubusercontent.com/SerbiaStrong-220/space-station-14/master/CLA.txt +using Content.Shared.SS220.TextureFade; + +namespace Content.Server.SS220.TextureFade; + +[RegisterComponent] +public sealed partial class TextureFadeOverlayComponent : SharedTextureFadeOverlayComponent +{ +} diff --git a/Content.Shared/SS220/TextureFade/SharedTextureFadeOverlayComponent.cs b/Content.Shared/SS220/TextureFade/SharedTextureFadeOverlayComponent.cs new file mode 100644 index 000000000000..595f847e86e7 --- /dev/null +++ b/Content.Shared/SS220/TextureFade/SharedTextureFadeOverlayComponent.cs @@ -0,0 +1,10 @@ +// © SS220, An EULA/CLA with a hosting restriction, full text: https://raw.githubusercontent.com/SerbiaStrong-220/space-station-14/master/CLA.txt +namespace Content.Shared.SS220.TextureFade; + +/// +/// Component for automatic texture fade processing. +/// Makes sense only on client. +/// +public abstract partial class SharedTextureFadeOverlayComponent : Component +{ +} diff --git a/Resources/Prototypes/SS220/Shaders/texture_fade.yml b/Resources/Prototypes/SS220/Shaders/texture_fade.yml new file mode 100644 index 000000000000..8b2bc8ebd7fc --- /dev/null +++ b/Resources/Prototypes/SS220/Shaders/texture_fade.yml @@ -0,0 +1,5 @@ +# © SS220, An EULA/CLA with a hosting restriction, full text: https://raw.githubusercontent.com/SerbiaStrong-220/space-station-14/master/CLA.txt +- type: shader + id: TextureFade + kind: source + path: "/Textures/SS220/Shaders/texture_fade.swsl" \ No newline at end of file diff --git a/Resources/Textures/SS220/Shaders/texture_fade.swsl b/Resources/Textures/SS220/Shaders/texture_fade.swsl new file mode 100644 index 000000000000..af5ad221f9f7 --- /dev/null +++ b/Resources/Textures/SS220/Shaders/texture_fade.swsl @@ -0,0 +1,12 @@ +// © SS220, An EULA/CLA with a hosting restriction, full text: https://raw.githubusercontent.com/SerbiaStrong-220/space-station-14/master/CLA.txt +uniform highp float FadeProgress; + +void fragment() { + + highp vec4 color = texture2D(TEXTURE, UV.xy); + if (color.a <= FadeProgress) { + discard; + } + color.a = 1; + COLOR = color; +} \ No newline at end of file From 1debfd45fd7e26ff8833d347afbadc366a27360c Mon Sep 17 00:00:00 2001 From: gogenych Date: Wed, 14 Aug 2024 19:06:14 +0300 Subject: [PATCH 7/8] RoleTime 2 (#1588) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * SS220-RoleTime №2 * roletime * fix checks * fix checks 2 * fix checks 3 * fix check 4 * fix checks 7 --- .../Roles/Jobs/Cargo/cargo_technician.yml | 3 +++ .../Prototypes/Roles/Jobs/Cargo/quartermaster.yml | 3 +++ .../Roles/Jobs/Cargo/salvage_specialist.yml | 2 ++ Resources/Prototypes/Roles/Jobs/Civilian/clown.yml | 4 +++- .../Prototypes/Roles/Jobs/Civilian/lawyer.yml | 4 ++-- Resources/Prototypes/Roles/Jobs/Civilian/mime.yml | 4 +++- .../Roles/Jobs/Civilian/service_worker.yml | 3 +++ .../Prototypes/Roles/Jobs/Command/captain.yml | 2 +- .../Roles/Jobs/Command/head_of_personnel.yml | 3 +++ .../Jobs/Engineering/atmospheric_technician.yml | 2 +- .../Roles/Jobs/Engineering/technical_assistant.yml | 2 +- .../Prototypes/Roles/Jobs/Medical/chemist.yml | 2 +- .../Roles/Jobs/Medical/chief_medical_officer.yml | 3 +++ .../Roles/Jobs/Medical/medical_intern.yml | 2 +- .../Prototypes/Roles/Jobs/Medical/paramedic.yml | 2 +- .../Roles/Jobs/Science/research_assistant.yml | 2 +- .../Roles/Jobs/Security/head_of_security.yml | 3 +++ .../Roles/Jobs/Security/security_cadet.yml | 2 +- .../Prototypes/SS220/Roles/Jobs/security_pilot.yml | 2 +- .../Prototypes/SS220/Roles/Jobs/senior_sec.yml | 5 +---- .../Prototypes/SS220/Roles/Jobs/senior_service.yml | 14 ++++++++++---- 21 files changed, 48 insertions(+), 21 deletions(-) diff --git a/Resources/Prototypes/Roles/Jobs/Cargo/cargo_technician.yml b/Resources/Prototypes/Roles/Jobs/Cargo/cargo_technician.yml index 655e103bca25..18d3a3168066 100644 --- a/Resources/Prototypes/Roles/Jobs/Cargo/cargo_technician.yml +++ b/Resources/Prototypes/Roles/Jobs/Cargo/cargo_technician.yml @@ -3,6 +3,9 @@ name: job-name-cargotech description: job-description-cargotech playTimeTracker: JobCargoTechnician + requirements: + - !type:OverallPlaytimeRequirement + time: 3600 # SS220-RoleTime 2 startingGear: CargoTechGear icon: "JobIconCargoTechnician" supervisors: job-supervisors-qm diff --git a/Resources/Prototypes/Roles/Jobs/Cargo/quartermaster.yml b/Resources/Prototypes/Roles/Jobs/Cargo/quartermaster.yml index 8f64d1c60287..45b49369a7e6 100644 --- a/Resources/Prototypes/Roles/Jobs/Cargo/quartermaster.yml +++ b/Resources/Prototypes/Roles/Jobs/Cargo/quartermaster.yml @@ -7,6 +7,9 @@ - !type:DepartmentTimeRequirement department: Cargo time: 108000 # SS220-RoleTime + - !type:RoleTimeRequirement + role: JobSalvageSpecialist + time: 18000 # SS220-RoleTime 2 - !type:OverallPlaytimeRequirement time: 180000 # SS220-RoleTime - !type:AgeRequirement diff --git a/Resources/Prototypes/Roles/Jobs/Cargo/salvage_specialist.yml b/Resources/Prototypes/Roles/Jobs/Cargo/salvage_specialist.yml index 150938a05b45..46a9d302cda7 100644 --- a/Resources/Prototypes/Roles/Jobs/Cargo/salvage_specialist.yml +++ b/Resources/Prototypes/Roles/Jobs/Cargo/salvage_specialist.yml @@ -7,6 +7,8 @@ - !type:DepartmentTimeRequirement department: Cargo time: 36000 # SS220-RoleTime + - !type:OverallPlaytimeRequirement + time: 72000 # SS220-RoleTime 2 icon: "JobIconShaftMiner" startingGear: SalvageSpecialistGear supervisors: job-supervisors-qm diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/clown.yml b/Resources/Prototypes/Roles/Jobs/Civilian/clown.yml index d67c81fdef8b..264533a27c1c 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/clown.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/clown.yml @@ -6,7 +6,9 @@ requirements: - !type:DepartmentTimeRequirement department: Civilian - time: 18000 # SS220-RoleTime + time: 36000 # SS220-RoleTime 2 + - !type:OverallPlaytimeRequirement + time: 72000 # SS220-RoleTime 2 startingGear: ClownGear icon: "JobIconClown" supervisors: job-supervisors-hop diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/lawyer.yml b/Resources/Prototypes/Roles/Jobs/Civilian/lawyer.yml index 09cf08fb5852..11013e52182d 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/lawyer.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/lawyer.yml @@ -5,8 +5,8 @@ playTimeTracker: JobLawyer requirements: - !type:DepartmentTimeRequirement - department: Civilian - time: 72000 # SS220-RoleTime + department: Security + time: 36000 # SS220-RoleTime 2 startingGear: LawyerGear setPreference: true # SS220 return-of-the-lawyer icon: "JobIconLawyer" diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/mime.yml b/Resources/Prototypes/Roles/Jobs/Civilian/mime.yml index 2d15247f1950..2db3f7d9c092 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/mime.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/mime.yml @@ -6,7 +6,9 @@ requirements: - !type:DepartmentTimeRequirement department: Civilian - time: 18000 # SS220-RoleTime + time: 36000 # SS220-RoleTime 2 + - !type:OverallPlaytimeRequirement + time: 72000 # SS220-RoleTime 2 startingGear: MimeGear icon: "JobIconMime" supervisors: job-supervisors-hop diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/service_worker.yml b/Resources/Prototypes/Roles/Jobs/Civilian/service_worker.yml index 1ccc8fada1e3..8e66a680b6f6 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/service_worker.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/service_worker.yml @@ -3,6 +3,9 @@ name: job-name-serviceworker description: job-description-serviceworker playTimeTracker: JobServiceWorker + requirements: + - !type:OverallPlaytimeRequirement + time: 3600 # SS220-RoleTime 2 startingGear: ServiceWorkerGear icon: "JobIconServiceWorker" supervisors: job-supervisors-service diff --git a/Resources/Prototypes/Roles/Jobs/Command/captain.yml b/Resources/Prototypes/Roles/Jobs/Command/captain.yml index ee297bf8887a..6bc7f58e1ca0 100644 --- a/Resources/Prototypes/Roles/Jobs/Command/captain.yml +++ b/Resources/Prototypes/Roles/Jobs/Command/captain.yml @@ -6,7 +6,7 @@ requirements: - !type:DepartmentTimeRequirement department: Command - time: 180000 # SS220-RoleTime + time: 288000 # SS220-RoleTime 2 - !type:AgeRequirement requiredAge: 20 - !type:SpeciesRequirement #SS220-jobbans begin diff --git a/Resources/Prototypes/Roles/Jobs/Command/head_of_personnel.yml b/Resources/Prototypes/Roles/Jobs/Command/head_of_personnel.yml index 81b917075812..8a28fe8ab60d 100644 --- a/Resources/Prototypes/Roles/Jobs/Command/head_of_personnel.yml +++ b/Resources/Prototypes/Roles/Jobs/Command/head_of_personnel.yml @@ -6,6 +6,9 @@ requirements: - !type:OverallPlaytimeRequirement time: 180000 # SS220-RoleTime + - !type:DepartmentTimeRequirement + department: Civilian + time: 72000 # SS220-RoleTime 2 - !type:AgeRequirement requiredAge: 20 - !type:SpeciesRequirement #SS220-jobbans begin diff --git a/Resources/Prototypes/Roles/Jobs/Engineering/atmospheric_technician.yml b/Resources/Prototypes/Roles/Jobs/Engineering/atmospheric_technician.yml index f819dfc8a83f..bd99624e3aec 100644 --- a/Resources/Prototypes/Roles/Jobs/Engineering/atmospheric_technician.yml +++ b/Resources/Prototypes/Roles/Jobs/Engineering/atmospheric_technician.yml @@ -6,7 +6,7 @@ requirements: - !type:DepartmentTimeRequirement department: Engineering - time: 18000 # SS220-RoleTime + time: 36000 # SS220-RoleTime 2 startingGear: AtmosphericTechnicianGear icon: "JobIconAtmosphericTechnician" supervisors: job-supervisors-ce diff --git a/Resources/Prototypes/Roles/Jobs/Engineering/technical_assistant.yml b/Resources/Prototypes/Roles/Jobs/Engineering/technical_assistant.yml index 87c9b0587d21..fb31768c7e8a 100644 --- a/Resources/Prototypes/Roles/Jobs/Engineering/technical_assistant.yml +++ b/Resources/Prototypes/Roles/Jobs/Engineering/technical_assistant.yml @@ -5,7 +5,7 @@ playTimeTracker: JobTechnicalAssistant requirements: - !type:OverallPlaytimeRequirement - time: 18000 # SS220-RoleTime + time: 3600 # SS220-RoleTime 2 startingGear: TechnicalAssistantGear icon: "JobIconTechnicalAssistant" supervisors: job-supervisors-engineering diff --git a/Resources/Prototypes/Roles/Jobs/Medical/chemist.yml b/Resources/Prototypes/Roles/Jobs/Medical/chemist.yml index edde75e96749..b2c63562f540 100644 --- a/Resources/Prototypes/Roles/Jobs/Medical/chemist.yml +++ b/Resources/Prototypes/Roles/Jobs/Medical/chemist.yml @@ -6,7 +6,7 @@ requirements: - !type:DepartmentTimeRequirement department: Medical - time: 18000 # SS220-RoleTime + time: 36000 # SS220-RoleTime 2 startingGear: ChemistGear icon: "JobIconChemist" supervisors: job-supervisors-cmo diff --git a/Resources/Prototypes/Roles/Jobs/Medical/chief_medical_officer.yml b/Resources/Prototypes/Roles/Jobs/Medical/chief_medical_officer.yml index 59f87d46ef6e..1527a2cb6a7f 100644 --- a/Resources/Prototypes/Roles/Jobs/Medical/chief_medical_officer.yml +++ b/Resources/Prototypes/Roles/Jobs/Medical/chief_medical_officer.yml @@ -9,6 +9,9 @@ - !type:DepartmentTimeRequirement department: Medical time: 180000 # SS220-RoleTime + - !type:RoleTimeRequirement + role: JobChemist + time: 18000 # SS220-RoleTime 2 - !type:AgeRequirement requiredAge: 20 - !type:SpeciesRequirement #SS220-jobbans begin diff --git a/Resources/Prototypes/Roles/Jobs/Medical/medical_intern.yml b/Resources/Prototypes/Roles/Jobs/Medical/medical_intern.yml index 9d683f2fa8ae..f55de0d2e57e 100644 --- a/Resources/Prototypes/Roles/Jobs/Medical/medical_intern.yml +++ b/Resources/Prototypes/Roles/Jobs/Medical/medical_intern.yml @@ -5,7 +5,7 @@ playTimeTracker: JobMedicalIntern requirements: - !type:OverallPlaytimeRequirement - time: 18000 # SS220-RoleTime + time: 3600 # SS220-RoleTime 2 startingGear: MedicalInternGear icon: "JobIconMedicalIntern" supervisors: job-supervisors-medicine diff --git a/Resources/Prototypes/Roles/Jobs/Medical/paramedic.yml b/Resources/Prototypes/Roles/Jobs/Medical/paramedic.yml index 643274481867..bba55da9686a 100644 --- a/Resources/Prototypes/Roles/Jobs/Medical/paramedic.yml +++ b/Resources/Prototypes/Roles/Jobs/Medical/paramedic.yml @@ -6,7 +6,7 @@ requirements: - !type:DepartmentTimeRequirement department: Medical - time: 36000 # SS220-RoleTime + time: 54000 # SS220-RoleTime 2 startingGear: ParamedicGear icon: "JobIconParamedic" supervisors: job-supervisors-cmo diff --git a/Resources/Prototypes/Roles/Jobs/Science/research_assistant.yml b/Resources/Prototypes/Roles/Jobs/Science/research_assistant.yml index d522618bc1c6..fd82928b846d 100644 --- a/Resources/Prototypes/Roles/Jobs/Science/research_assistant.yml +++ b/Resources/Prototypes/Roles/Jobs/Science/research_assistant.yml @@ -5,7 +5,7 @@ playTimeTracker: JobResearchAssistant requirements: - !type:OverallPlaytimeRequirement - time: 18000 # SS220-RoleTime + time: 3600 # SS220-RoleTime №2 startingGear: ResearchAssistantGear icon: "JobIconResearchAssistant" supervisors: job-supervisors-science diff --git a/Resources/Prototypes/Roles/Jobs/Security/head_of_security.yml b/Resources/Prototypes/Roles/Jobs/Security/head_of_security.yml index d6793919e60b..872460d65ee3 100644 --- a/Resources/Prototypes/Roles/Jobs/Security/head_of_security.yml +++ b/Resources/Prototypes/Roles/Jobs/Security/head_of_security.yml @@ -7,6 +7,9 @@ - !type:DepartmentTimeRequirement department: Security time: 180000 # SS220-RoleTime + - !type:RoleTimeRequirement + role: JobWarden + time: 43200 # SS220-RoleTime 2 - !type:AgeRequirement requiredAge: 20 - !type:SpeciesRequirement #SS220-jobbans begin diff --git a/Resources/Prototypes/Roles/Jobs/Security/security_cadet.yml b/Resources/Prototypes/Roles/Jobs/Security/security_cadet.yml index 8b88733a14d5..b8531e63ac5f 100644 --- a/Resources/Prototypes/Roles/Jobs/Security/security_cadet.yml +++ b/Resources/Prototypes/Roles/Jobs/Security/security_cadet.yml @@ -5,7 +5,7 @@ playTimeTracker: JobSecurityCadet requirements: - !type:OverallPlaytimeRequirement - time: 18000 # SS220-RoleTime + time: 36000 # SS220-RoleTime 2 - !type:SpeciesRequirement #SS220-jobbans begin inverted: true species: diff --git a/Resources/Prototypes/SS220/Roles/Jobs/security_pilot.yml b/Resources/Prototypes/SS220/Roles/Jobs/security_pilot.yml index 4b677e38b917..fd3e59fa4376 100644 --- a/Resources/Prototypes/SS220/Roles/Jobs/security_pilot.yml +++ b/Resources/Prototypes/SS220/Roles/Jobs/security_pilot.yml @@ -6,7 +6,7 @@ requirements: - !type:DepartmentTimeRequirement department: Security - time: 36000 # SS220-RoleTime + time: 54000 # SS220-RoleTime 2 - !type:SpeciesRequirement #SS220-jobbans begin inverted: true species: diff --git a/Resources/Prototypes/SS220/Roles/Jobs/senior_sec.yml b/Resources/Prototypes/SS220/Roles/Jobs/senior_sec.yml index 02e77924a147..26fcb292645c 100644 --- a/Resources/Prototypes/SS220/Roles/Jobs/senior_sec.yml +++ b/Resources/Prototypes/SS220/Roles/Jobs/senior_sec.yml @@ -7,9 +7,6 @@ - !type:RoleTimeRequirement role: JobWarden time: 43200 #12 hrs - - !type:RoleTimeRequirement - role: JobDetective - time: 15400 #4 hrs - !type:RoleTimeRequirement role: JobSecurityOfficer time: 72000 #20 hrs @@ -47,4 +44,4 @@ - MagazinePistolRubber #SS220-DeleteSecurityLetal-Begin - MagazinePistolRubber - FlashlightSeclite - - DrinkRelaxingPeachCan #SS220-DeleteSecurityLetal-End + - DrinkRelaxingPeachCan #SS220-DeleteSecurityLetal-End \ No newline at end of file diff --git a/Resources/Prototypes/SS220/Roles/Jobs/senior_service.yml b/Resources/Prototypes/SS220/Roles/Jobs/senior_service.yml index 9fcea673f5b4..5e20a86adc26 100644 --- a/Resources/Prototypes/SS220/Roles/Jobs/senior_service.yml +++ b/Resources/Prototypes/SS220/Roles/Jobs/senior_service.yml @@ -4,12 +4,18 @@ description: job-description-senior-service playTimeTracker: JobSeniorService requirements: - - !type:RoleTimeRequirement - role: JobServiceWorker - time: 43200 #12 ч - !type:RoleTimeRequirement role: JobJanitor - time: 43200 #12 ч + time: 18000 # SS220-RoleTime 2 + - !type:RoleTimeRequirement + role: JobChef + time: 18000 # SS220-RoleTime 2 + - !type:RoleTimeRequirement + role: JobBotanist + time: 18000 # SS220-RoleTime 2 + - !type:RoleTimeRequirement + role: JobBartender + time: 18000 # SS220-RoleTime 2 - !type:DepartmentTimeRequirement department: Civilian time: 216000 # 60 ч From 67af4adca3331fc76f7a1797433904581b75365e Mon Sep 17 00:00:00 2001 From: Maxon Date: Wed, 14 Aug 2024 16:07:18 +0000 Subject: [PATCH 8/8] Automatic changelog update --- Resources/Changelog/Changelog220.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Resources/Changelog/Changelog220.yml b/Resources/Changelog/Changelog220.yml index 086239b9aa34..29537a3bd968 100644 --- a/Resources/Changelog/Changelog220.yml +++ b/Resources/Changelog/Changelog220.yml @@ -4734,3 +4734,12 @@ id: 375 time: '2024-08-13T21:50:47.0000000+00:00' url: https://github.com/SerbiaStrong-220/space-station-14/pull/1582 +- author: gogenych + changes: + - message: "\u0418\u0437\u043C\u0435\u043D\u0435\u043D\u044B \u0447\u0430\u0441\u044B\ + \ \u043D\u0430 \u043E\u0442\u043A\u0440\u044B\u0442\u0438\u0435 \u0440\u043E\ + \u043B\u0435\u0439." + type: Tweak + id: 376 + time: '2024-08-14T16:06:14.0000000+00:00' + url: https://github.com/SerbiaStrong-220/space-station-14/pull/1588