From 44c5e31d79fa7ebf1915393b7608c4eafded2e25 Mon Sep 17 00:00:00 2001 From: Artur Date: Sat, 28 Oct 2023 06:29:36 +0300 Subject: [PATCH] Ebent fixes (#485) * USSP channel fix * Update ebent species blacklist * Change ussp energy weapon colors * Added event role icons --- .../SS220/AdmemeEvents/EventRoleIcons.cs | 49 ++++++++ .../SS220/AdmemeEvents/EventRoleComponent.cs | 21 ++++ .../Entities/Mobs/Player/observer.yml | 1 + .../SS220/Entities/Weapons/Melee/e-hammer.yml | 4 +- .../SS220/Entities/Weapons/Melee/e-sickle.yml | 4 +- .../Prototypes/SS220/Shitspawn/Ebent/Jobs.yml | 27 ++++- .../SS220/Shitspawn/Ebent/JobsERT.yml | 27 ++++- .../SS220/Shitspawn/Ebent/JobsUssp.yml | 27 ++++- .../Prototypes/SS220/StatusIcons/antag.yml | 105 ++++++++++++++++++ .../Misc/event-job-icons.rsi/IOTCombatant.png | Bin 0 -> 199 bytes .../Misc/event-job-icons.rsi/IOTCommand.png | Bin 0 -> 211 bytes .../IOTEngineerOfficer.png | Bin 0 -> 1499 bytes .../Misc/event-job-icons.rsi/IOTMedic.png | Bin 0 -> 1475 bytes .../event-job-icons.rsi/IOTMedicalOfficer.png | Bin 0 -> 1700 bytes .../Misc/event-job-icons.rsi/NTCombatant.png | Bin 0 -> 139 bytes .../event-job-icons.rsi/NTEngineerOfficer.png | Bin 0 -> 175 bytes .../Misc/event-job-icons.rsi/NTMedic.png | Bin 0 -> 132 bytes .../event-job-icons.rsi/NTMedicalOfficer.png | Bin 0 -> 167 bytes .../event-job-icons.rsi/NTSpecOpsOfficer.png | Bin 0 -> 1704 bytes .../event-job-icons.rsi/USSPCombatant.png | Bin 0 -> 1701 bytes .../USSPEngineerOfficer.png | Bin 0 -> 178 bytes .../Misc/event-job-icons.rsi/USSPMarshal.png | Bin 0 -> 1517 bytes .../Misc/event-job-icons.rsi/USSPMedic.png | Bin 0 -> 153 bytes .../USSPMedicalOfficer.png | Bin 0 -> 1519 bytes .../Misc/event-job-icons.rsi/meta.json | 56 ++++++++++ 25 files changed, 301 insertions(+), 20 deletions(-) create mode 100644 Content.Client/SS220/AdmemeEvents/EventRoleIcons.cs create mode 100644 Content.Shared/SS220/AdmemeEvents/EventRoleComponent.cs create mode 100644 Resources/Prototypes/SS220/StatusIcons/antag.yml create mode 100644 Resources/Textures/SS220/Interface/Misc/event-job-icons.rsi/IOTCombatant.png create mode 100644 Resources/Textures/SS220/Interface/Misc/event-job-icons.rsi/IOTCommand.png create mode 100644 Resources/Textures/SS220/Interface/Misc/event-job-icons.rsi/IOTEngineerOfficer.png create mode 100644 Resources/Textures/SS220/Interface/Misc/event-job-icons.rsi/IOTMedic.png create mode 100644 Resources/Textures/SS220/Interface/Misc/event-job-icons.rsi/IOTMedicalOfficer.png create mode 100644 Resources/Textures/SS220/Interface/Misc/event-job-icons.rsi/NTCombatant.png create mode 100644 Resources/Textures/SS220/Interface/Misc/event-job-icons.rsi/NTEngineerOfficer.png create mode 100644 Resources/Textures/SS220/Interface/Misc/event-job-icons.rsi/NTMedic.png create mode 100644 Resources/Textures/SS220/Interface/Misc/event-job-icons.rsi/NTMedicalOfficer.png create mode 100644 Resources/Textures/SS220/Interface/Misc/event-job-icons.rsi/NTSpecOpsOfficer.png create mode 100644 Resources/Textures/SS220/Interface/Misc/event-job-icons.rsi/USSPCombatant.png create mode 100644 Resources/Textures/SS220/Interface/Misc/event-job-icons.rsi/USSPEngineerOfficer.png create mode 100644 Resources/Textures/SS220/Interface/Misc/event-job-icons.rsi/USSPMarshal.png create mode 100644 Resources/Textures/SS220/Interface/Misc/event-job-icons.rsi/USSPMedic.png create mode 100644 Resources/Textures/SS220/Interface/Misc/event-job-icons.rsi/USSPMedicalOfficer.png create mode 100644 Resources/Textures/SS220/Interface/Misc/event-job-icons.rsi/meta.json diff --git a/Content.Client/SS220/AdmemeEvents/EventRoleIcons.cs b/Content.Client/SS220/AdmemeEvents/EventRoleIcons.cs new file mode 100644 index 00000000000000..2b707adc52663c --- /dev/null +++ b/Content.Client/SS220/AdmemeEvents/EventRoleIcons.cs @@ -0,0 +1,49 @@ +// © 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.Antag; +using Content.Shared.Ghost; +using Content.Shared.SS220.AdmemeEvents; +using Content.Shared.StatusIcon; +using Content.Shared.StatusIcon.Components; +using Robust.Client.Player; +using Robust.Shared.Prototypes; + +namespace Content.Client.SS220.AdmemeEvents; + +/// +/// Used for the client to get status icons from other event roles. +/// +public sealed class EventRoleIconsSystem : AntagStatusIconSystem +{ + [Dependency] private readonly IPlayerManager _player = default!; + [Dependency] private readonly IPrototypeManager _prototype = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(GetRoleIcon); + } + + /// + /// Obtains a status icon from proto id mentioned in component + /// + private void GetRoleIcon(EntityUid uid, EventRoleComponent comp, ref GetStatusIconsEvent args) + { + GetStatusIcon(comp, ref args); + } + + private void GetStatusIcon(EventRoleComponent targetRoleComp, ref GetStatusIconsEvent args) + { + var ent = _player.LocalPlayer?.ControlledEntity; + + if (!HasComp(ent)) + { + if (!TryComp(ent, out var playerRoleComp)) + return; + else if (targetRoleComp.RoleGroupKey != playerRoleComp.RoleGroupKey) + return; + } + + args.StatusIcons.Add(_prototype.Index(targetRoleComp.StatusIcon)); + } +} diff --git a/Content.Shared/SS220/AdmemeEvents/EventRoleComponent.cs b/Content.Shared/SS220/AdmemeEvents/EventRoleComponent.cs new file mode 100644 index 00000000000000..846bf4e1052101 --- /dev/null +++ b/Content.Shared/SS220/AdmemeEvents/EventRoleComponent.cs @@ -0,0 +1,21 @@ +// © 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.StatusIcon; +using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; + +namespace Content.Shared.SS220.AdmemeEvents; + +/// +/// Компонент добавляет возможность видеть указанный StatusIcon энтити, +/// при условии что у наблюдателя тоже есть этот компонент с одинаковым RoleGroupKey. +/// Используется чтобы ивентовые рольки видели друг-друга. +/// +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] +public sealed partial class EventRoleComponent : Component +{ + [DataField(required: true), ViewVariables(VVAccess.ReadWrite), AutoNetworkedField] + public ProtoId StatusIcon; + + [DataField(required: true), ViewVariables(VVAccess.ReadWrite), AutoNetworkedField] + public string RoleGroupKey; +} diff --git a/Resources/Prototypes/Entities/Mobs/Player/observer.yml b/Resources/Prototypes/Entities/Mobs/Player/observer.yml index c7cac426a41b7d..193517584ea882 100644 --- a/Resources/Prototypes/Entities/Mobs/Player/observer.yml +++ b/Resources/Prototypes/Entities/Mobs/Player/observer.yml @@ -51,6 +51,7 @@ - Service - Supply - Syndicate + - USSPChannel globalReceive: true - type: Physics bodyType: KinematicController diff --git a/Resources/Prototypes/SS220/Entities/Weapons/Melee/e-hammer.yml b/Resources/Prototypes/SS220/Entities/Weapons/Melee/e-hammer.yml index 7f6d99b177f44f..27dfaf62dc9e09 100644 --- a/Resources/Prototypes/SS220/Entities/Weapons/Melee/e-hammer.yml +++ b/Resources/Prototypes/SS220/Entities/Weapons/Melee/e-hammer.yml @@ -11,6 +11,8 @@ Blunt: 10 Structural: 60 litDisarmMalus: 0.6 + colorOptions: + - "#ff0000" - type: Sprite sprite: SS220/Objects/Weapons/Melee/e_hammer.rsi layers: @@ -51,4 +53,4 @@ - type: DisarmMalus malus: 0 - type: Reflect - enabled: false \ No newline at end of file + enabled: false diff --git a/Resources/Prototypes/SS220/Entities/Weapons/Melee/e-sickle.yml b/Resources/Prototypes/SS220/Entities/Weapons/Melee/e-sickle.yml index 6ae2321144864a..cf82b7a4297c72 100644 --- a/Resources/Prototypes/SS220/Entities/Weapons/Melee/e-sickle.yml +++ b/Resources/Prototypes/SS220/Entities/Weapons/Melee/e-sickle.yml @@ -11,6 +11,8 @@ Slash: 30 Blunt: -4.5 litDisarmMalus: 0.6 + colorOptions: + - "#ffcc00" - type: Sprite sprite: SS220/Objects/Weapons/Melee/e_sickle.rsi layers: @@ -51,4 +53,4 @@ - type: DisarmMalus malus: 0 - type: Reflect - enabled: false \ No newline at end of file + enabled: false diff --git a/Resources/Prototypes/SS220/Shitspawn/Ebent/Jobs.yml b/Resources/Prototypes/SS220/Shitspawn/Ebent/Jobs.yml index 058d6028c4cb8c..de35426571b64a 100644 --- a/Resources/Prototypes/SS220/Shitspawn/Ebent/Jobs.yml +++ b/Resources/Prototypes/SS220/Shitspawn/Ebent/Jobs.yml @@ -77,10 +77,13 @@ - type: randomHumanoidSettings id: EbentIronSquadLeader randomizeName: true - speciesBlacklist: [ Arachnid, Diona, Dwarf, Reptilian, Skeleton, SlimePerson, Vox, Moth ] + speciesBlacklist: [ Arachnid, Diona, Dwarf, Reptilian, Skeleton, SlimePerson, Vox, Moth, Felinid ] components: - type: Loadout prototypes: [ EbentIronSquadLeaderGear ] + - type: EventRole + roleGroupKey: IronSquad + statusIcon: IOTCommand - type: job id: IronSquadLeader @@ -200,10 +203,13 @@ - type: randomHumanoidSettings id: EbentIronSquadEngineer randomizeName: true - speciesBlacklist: [ Arachnid, Diona, Dwarf, Reptilian, Skeleton, SlimePerson, Vox, Moth ] + speciesBlacklist: [ Arachnid, Diona, Dwarf, Reptilian, Skeleton, SlimePerson, Vox, Moth, Felinid ] components: - type: Loadout prototypes: [ EbentIronSquadEngineerGear ] + - type: EventRole + roleGroupKey: IronSquad + statusIcon: IOTEngineerOfficer - type: job id: IronSquadEngineer @@ -314,7 +320,7 @@ - type: randomHumanoidSettings id: EbentIronSquadCorpsman randomizeName: true - speciesBlacklist: [ Arachnid, Diona, Dwarf, Reptilian, Skeleton, SlimePerson, Vox, Moth ] + speciesBlacklist: [ Arachnid, Diona, Dwarf, Reptilian, Skeleton, SlimePerson, Vox, Moth, Felinid ] components: - type: Loadout prototypes: [ EbentIronSquadCorpsmanGear ] @@ -322,6 +328,9 @@ makeSentient: true name: Полевой медик Железного Отряда - type: GhostTakeoverAvailable + - type: EventRole + roleGroupKey: IronSquad + statusIcon: IOTMedic - type: job id: IronSquadCorpsman @@ -442,10 +451,13 @@ - type: randomHumanoidSettings id: EbentIronSquadCMO randomizeName: true - speciesBlacklist: [ Arachnid, Diona, Dwarf, Reptilian, Skeleton, SlimePerson, Vox, Moth ] + speciesBlacklist: [ Arachnid, Diona, Dwarf, Reptilian, Skeleton, SlimePerson, Vox, Moth, Felinid ] components: - type: Loadout prototypes: [ EbentIronSquadCMOGear ] + - type: EventRole + roleGroupKey: IronSquad + statusIcon: IOTMedicalOfficer - type: job id: IronSquadCMO @@ -554,7 +566,7 @@ - type: randomHumanoidSettings id: EbentIronSquadTrooper randomizeName: true - speciesBlacklist: [ Arachnid, Diona, Dwarf, Reptilian, Skeleton, SlimePerson, Vox, Moth ] + speciesBlacklist: [ Arachnid, Diona, Dwarf, Reptilian, Skeleton, SlimePerson, Vox, Moth, Felinid ] components: - type: Loadout prototypes: [ EbentIronSquadTrooperGear ] @@ -562,6 +574,9 @@ makeSentient: true name: Боец Железного Отряда - type: GhostTakeoverAvailable + - type: EventRole + roleGroupKey: IronSquad + statusIcon: IOTCombatant - type: job id: IronSquadFighter @@ -599,4 +614,4 @@ suffix: Агент, Щитспавн, Ebent components: - type: Pda - id: AgentIDCardCmd \ No newline at end of file + id: AgentIDCardCmd diff --git a/Resources/Prototypes/SS220/Shitspawn/Ebent/JobsERT.yml b/Resources/Prototypes/SS220/Shitspawn/Ebent/JobsERT.yml index 6a0c0227daf126..9e77a0f5f69296 100644 --- a/Resources/Prototypes/SS220/Shitspawn/Ebent/JobsERT.yml +++ b/Resources/Prototypes/SS220/Shitspawn/Ebent/JobsERT.yml @@ -86,10 +86,13 @@ - type: randomHumanoidSettings id: EbentSpecOpsLeader randomizeName: true - speciesBlacklist: [ Arachnid, Diona, Dwarf, Reptilian, Skeleton, SlimePerson, Vox, Moth ] + speciesBlacklist: [ Arachnid, Diona, Dwarf, Reptilian, Skeleton, SlimePerson, Vox, Moth, Felinid ] components: - type: Loadout prototypes: [ EbentSpecOpsLeaderGear ] + - type: EventRole + roleGroupKey: SpecOps + statusIcon: NTSpecOpsOfficer - type: job id: SpecOpsLeader @@ -156,10 +159,13 @@ - type: randomHumanoidSettings id: EbentSpecOpsEngineer randomizeName: true - speciesBlacklist: [ Arachnid, Diona, Dwarf, Reptilian, Skeleton, SlimePerson, Vox, Moth ] + speciesBlacklist: [ Arachnid, Diona, Dwarf, Reptilian, Skeleton, SlimePerson, Vox, Moth, Felinid ] components: - type: Loadout prototypes: [ EbentSpecOpsEngineerGear ] + - type: EventRole + roleGroupKey: SpecOps + statusIcon: NTEngineerOfficer - type: job id: SpecOpsEngineer @@ -226,7 +232,7 @@ - type: randomHumanoidSettings id: EbentSpecOpsCorpsman randomizeName: true - speciesBlacklist: [ Arachnid, Diona, Dwarf, Reptilian, Skeleton, SlimePerson, Vox, Moth ] + speciesBlacklist: [ Arachnid, Diona, Dwarf, Reptilian, Skeleton, SlimePerson, Vox, Moth, Felinid ] components: - type: Loadout prototypes: [ EbentSpecOpsCorpsmanGear ] @@ -234,6 +240,9 @@ makeSentient: true name: Парамедик Специальных Операций - type: GhostTakeoverAvailable + - type: EventRole + roleGroupKey: SpecOps + statusIcon: NTMedic - type: job id: SpecOpsCorpsman @@ -300,10 +309,13 @@ - type: randomHumanoidSettings id: EbentSpecOpsCMO randomizeName: true - speciesBlacklist: [ Arachnid, Diona, Dwarf, Reptilian, Skeleton, SlimePerson, Vox, Moth ] + speciesBlacklist: [ Arachnid, Diona, Dwarf, Reptilian, Skeleton, SlimePerson, Vox, Moth, Felinid ] components: - type: Loadout prototypes: [ EbentSpecOpsCMOGear ] + - type: EventRole + roleGroupKey: SpecOps + statusIcon: NTMedicalOfficer - type: job id: SpecOpsCMO @@ -370,7 +382,7 @@ - type: randomHumanoidSettings id: EbentSpecOpsTrooper randomizeName: true - speciesBlacklist: [ Arachnid, Diona, Dwarf, Reptilian, Skeleton, SlimePerson, Vox, Moth ] + speciesBlacklist: [ Arachnid, Diona, Dwarf, Reptilian, Skeleton, SlimePerson, Vox, Moth, Felinid ] components: - type: Loadout prototypes: [ EbentSpecOpsTrooperGear ] @@ -378,6 +390,9 @@ makeSentient: true name: Рядовой Специальных Операций - type: GhostTakeoverAvailable + - type: EventRole + roleGroupKey: SpecOps + statusIcon: NTCombatant - type: job id: SpecOpsFighter @@ -410,4 +425,4 @@ suffix: СпецОпер, Щитспавн, Ebent components: - type: Pda - id: IDCardSpecOpsFighter \ No newline at end of file + id: IDCardSpecOpsFighter diff --git a/Resources/Prototypes/SS220/Shitspawn/Ebent/JobsUssp.yml b/Resources/Prototypes/SS220/Shitspawn/Ebent/JobsUssp.yml index 933f1d4d1cf08b..8d31bfe4193860 100644 --- a/Resources/Prototypes/SS220/Shitspawn/Ebent/JobsUssp.yml +++ b/Resources/Prototypes/SS220/Shitspawn/Ebent/JobsUssp.yml @@ -80,10 +80,13 @@ - type: randomHumanoidSettings id: EbentUSSPLeader randomizeName: true - speciesBlacklist: [ Arachnid, Diona, Dwarf, Reptilian, Skeleton, SlimePerson, Vox, Moth ] + speciesBlacklist: [ Arachnid, Diona, Dwarf, Reptilian, Skeleton, SlimePerson, Vox, Moth, Felinid ] components: - type: Loadout prototypes: [ EbentUSSPLeaderGear ] + - type: EventRole + roleGroupKey: USSPEbent + statusIcon: USSPMarshal - type: job id: USSPLeader @@ -165,10 +168,13 @@ - type: randomHumanoidSettings id: EbentUSSPEngineer randomizeName: true - speciesBlacklist: [ Arachnid, Diona, Dwarf, Reptilian, Skeleton, SlimePerson, Vox, Moth ] + speciesBlacklist: [ Arachnid, Diona, Dwarf, Reptilian, Skeleton, SlimePerson, Vox, Moth, Felinid ] components: - type: Loadout prototypes: [ EbentUSSPEngineerGear ] + - type: EventRole + roleGroupKey: USSPEbent + statusIcon: USSPCombatant - type: job id: USSPEngineer @@ -250,7 +256,7 @@ - type: randomHumanoidSettings id: EbentUSSPCorpsman randomizeName: true - speciesBlacklist: [ Arachnid, Diona, Dwarf, Reptilian, Skeleton, SlimePerson, Vox, Moth ] + speciesBlacklist: [ Arachnid, Diona, Dwarf, Reptilian, Skeleton, SlimePerson, Vox, Moth, Felinid ] components: - type: Loadout prototypes: [ EbentUSSPCorpsmanGear ] @@ -258,6 +264,9 @@ makeSentient: true name: Полевой медик СССП - type: GhostTakeoverAvailable + - type: EventRole + roleGroupKey: USSPEbent + statusIcon: USSPMedic - type: job id: USSPCorpsman @@ -339,10 +348,13 @@ - type: randomHumanoidSettings id: EbentUSSPCMO randomizeName: true - speciesBlacklist: [ Arachnid, Diona, Dwarf, Reptilian, Skeleton, SlimePerson, Vox, Moth ] + speciesBlacklist: [ Arachnid, Diona, Dwarf, Reptilian, Skeleton, SlimePerson, Vox, Moth, Felinid ] components: - type: Loadout prototypes: [ EbentUSSPCMOGear ] + - type: EventRole + roleGroupKey: USSPEbent + statusIcon: USSPMedicalOfficer - type: job id: USSPCMO @@ -424,7 +436,7 @@ - type: randomHumanoidSettings id: EbentUSSPTrooper randomizeName: true - speciesBlacklist: [ Arachnid, Diona, Dwarf, Reptilian, Skeleton, SlimePerson, Vox, Moth ] + speciesBlacklist: [ Arachnid, Diona, Dwarf, Reptilian, Skeleton, SlimePerson, Vox, Moth, Felinid ] components: - type: Loadout prototypes: [ EbentUSSPTrooperGear ] @@ -432,6 +444,9 @@ makeSentient: true name: Красноармеец - type: GhostTakeoverAvailable + - type: EventRole + roleGroupKey: USSPEbent + statusIcon: USSPCombatant - type: job id: USSPFighter @@ -461,4 +476,4 @@ suffix: СССП, Ebent components: - type: Pda - id: UsspIDCardFighter \ No newline at end of file + id: UsspIDCardFighter diff --git a/Resources/Prototypes/SS220/StatusIcons/antag.yml b/Resources/Prototypes/SS220/StatusIcons/antag.yml new file mode 100644 index 00000000000000..86a26b880151d4 --- /dev/null +++ b/Resources/Prototypes/SS220/StatusIcons/antag.yml @@ -0,0 +1,105 @@ +# © SS220, An EULA/CLA with a hosting restriction, full text: https://raw.githubusercontent.com/SerbiaStrong-220/space-station-14/master/CLA.txt +- type: statusIcon + id: IOTCommand + priority: 11 + icon: + sprite: SS220/Interface/Misc/event-job-icons.rsi + state: IOTCommand + +- type: statusIcon + id: IOTEngineerOfficer + priority: 11 + icon: + sprite: SS220/Interface/Misc/event-job-icons.rsi + state: IOTEngineerOfficer + +- type: statusIcon + id: IOTMedic + priority: 11 + icon: + sprite: SS220/Interface/Misc/event-job-icons.rsi + state: IOTMedic + +- type: statusIcon + id: IOTMedicalOfficer + priority: 11 + icon: + sprite: SS220/Interface/Misc/event-job-icons.rsi + state: IOTMedicalOfficer + +- type: statusIcon + id: IOTCombatant + priority: 11 + icon: + sprite: SS220/Interface/Misc/event-job-icons.rsi + state: IOTCombatant + +- type: statusIcon + id: NTCombatant + priority: 11 + icon: + sprite: SS220/Interface/Misc/event-job-icons.rsi + state: NTCombatant + +- type: statusIcon + id: NTEngineerOfficer + priority: 11 + icon: + sprite: SS220/Interface/Misc/event-job-icons.rsi + state: NTEngineerOfficer + +- type: statusIcon + id: NTMedic + priority: 11 + icon: + sprite: SS220/Interface/Misc/event-job-icons.rsi + state: NTMedic + +- type: statusIcon + id: NTMedicalOfficer + priority: 11 + icon: + sprite: SS220/Interface/Misc/event-job-icons.rsi + state: NTMedicalOfficer + +- type: statusIcon + id: NTSpecOpsOfficer + priority: 11 + icon: + sprite: SS220/Interface/Misc/event-job-icons.rsi + state: NTSpecOpsOfficer + +- type: statusIcon + id: USSPCombatant + priority: 11 + icon: + sprite: SS220/Interface/Misc/event-job-icons.rsi + state: USSPCombatant + +- type: statusIcon + id: USSPEngineerOfficer + priority: 11 + icon: + sprite: SS220/Interface/Misc/event-job-icons.rsi + state: USSPEngineerOfficer + +- type: statusIcon + id: USSPMarshal + priority: 11 + icon: + sprite: SS220/Interface/Misc/event-job-icons.rsi + state: USSPMarshal + +- type: statusIcon + id: USSPMedic + priority: 11 + icon: + sprite: SS220/Interface/Misc/event-job-icons.rsi + state: USSPMedic + +- type: statusIcon + id: USSPMedicalOfficer + priority: 11 + icon: + sprite: SS220/Interface/Misc/event-job-icons.rsi + state: USSPMedicalOfficer diff --git a/Resources/Textures/SS220/Interface/Misc/event-job-icons.rsi/IOTCombatant.png b/Resources/Textures/SS220/Interface/Misc/event-job-icons.rsi/IOTCombatant.png new file mode 100644 index 0000000000000000000000000000000000000000..bab43f5dda874e62e2bf77ddac16ef3d137af032 GIT binary patch literal 199 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqjKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1quc!5B{$#}JL+QvXig0}32_th%@jxVcMqL1w{OV literal 0 HcmV?d00001 diff --git a/Resources/Textures/SS220/Interface/Misc/event-job-icons.rsi/IOTCommand.png b/Resources/Textures/SS220/Interface/Misc/event-job-icons.rsi/IOTCommand.png new file mode 100644 index 0000000000000000000000000000000000000000..7b7faebe2af39d0ce9540c4a95357f3af2455ece GIT binary patch literal 211 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1SGw4HSYi^#^NA%Cx&(BWL^R}Ea{HEjtmSN z`?>!lvI6;>1s;*b3=G`DAk4@xYmNj^FvHWuF+?If`QQKl|Cf4CulxJ!>4OIh>i73n zA78L!$q@#&?gJc5Ow7zPzkL0=&_<=;<0DtM1$}MR-xn|$Y>-=|%y+7lNkM!?GiS#_ zCJ%-cQcIYV)B_Y7-ta&oH}K#2Xcn`6K$F+^^?Sen_y7II z(!&0|hxba7w7Qt#@pLb7SvOeRO4*sMr54@V zpti4^I4&O>U?7N?Ao3sz;|vcRWyp(RogX7b9zw*1qs-?5SA ztr=FSY};?jrf$q3eGVBV)v$0`$EGQdKLwHJNSIF2^mnbSkWTJK+ z%osalS9I3eOc-jijQ3K?YUe@Cqq#K+c2h(qSlxJBnO*61zO)DF_DbN;}W%uG>g?I|$(-Yc8CW>owOhY|Bzj%^0fddAJ^D zg2a^7tBwNx(SpFomdQ$Ov&>Y>Vy5cb<+8eNnnblpdA3AK6b|U*eU;N*o&}Tl{u91m zP6Mby5IR<|)8@WqcewwFgGD{VoI2 zf60pxEaPp_Cn=lnfVcin>LJh{h|TS8;9uh=>y?H z^Wi7Yzq)7YV(zn8L_dmM)?E_S~bNA0%dhf%p iuDvq7jBYO-IDYT?DdpXt9xdnXw_aPSesS{Ldw&7=fZP25 literal 0 HcmV?d00001 diff --git a/Resources/Textures/SS220/Interface/Misc/event-job-icons.rsi/IOTMedic.png b/Resources/Textures/SS220/Interface/Misc/event-job-icons.rsi/IOTMedic.png new file mode 100644 index 0000000000000000000000000000000000000000..8c4ffa00dbb5252c95fb27c1b50944753752a985 GIT binary patch literal 1475 zcmbVMO^DQ198bZPb&IX&MY@8ItcRAGkC&N=lUJkNO;&fntm`_9+naA*US`53c`T@mwCF{VBe|3{zRyDX-i>EbuJBz?TM7#~PK{jyJzKHMKR*Z7)u z5)l@w*k>)O_TyBbCF#hqeu~LD<)B5|VPeaF-n}n_(6{BYHBa|ahjzlnjf|ezSZb1u zbz=GQv7_Kf9|?k(at!)$l;o&y%R^oy*2S?VgCT^k+wxo?5UhF2z+o8$HPuuItk%F` zONC~oYFUSXp~JeS*ELvCpoywFG7K>OWFal{1GM5EAIlOuTkde4B2DY{dTOttvaGE^ z%d#}x&L~} zRWD2$0)0~A(ry+Fh5JOK5shiWbAg2=HtjIZ@(%k4>hk(60m8MOSIXE{mpCp(Sug)$ z%Ny!qPHoxH4G}V3f%PV|kX}bR{8FzVT^~U`=7+&xJ1DH7TJA;v`kYmR5(=E^H3wn zIZg;|xV9|(qlTf6V4YNIR<)*>7NLqys#t0H5Gydyu@zKW0fDW_dzX=Jkp+|Y{{MV` zDhovw;^@73irOsF2Q7xV2<%{7J!k0o@hS?zFk=uVMJ3oWDN=y?^7uG>Zx4)UdmSoB z-;oz1Sk408!x^1x3vd0G)YF9iT2ZzmQ?$QZIlS9a;uE;&8^yA0SYlJQJer6;mx+dU z&ii>uG()f9&NcU4yMASJ=S6Av{DIAbcOE=`{-g5b(BaKLZhZUe%h@@1$LZ$Pwbf^< z-`(7^JN;_#*Fp8S$1}nA-Qa2R@Wrd-=*(;O^^4zIdsaU=etZ5^G-aAan{6yCxwq!e GU3vqAxY0cT literal 0 HcmV?d00001 diff --git a/Resources/Textures/SS220/Interface/Misc/event-job-icons.rsi/IOTMedicalOfficer.png b/Resources/Textures/SS220/Interface/Misc/event-job-icons.rsi/IOTMedicalOfficer.png new file mode 100644 index 0000000000000000000000000000000000000000..a82607d8d4574de7897829849d102f0e8756e407 GIT binary patch literal 1700 zcmbVNOK9a(7)}?Xb)={WG7KUivruQuJ2$yGOq^+x+Fmi8(z#`-pw78DC-;VXlM|EN z-rKH3TqrISM8pSzu6%$lgd$i+7a|G;apTT~u3U(Zm9r82b049Vb}SP}a&pdhzW@6l z=g*6)D@$`HPoLyCZmzNHt-*V?yk~EL=ht^!dkJ2*rOS`!9C!QOJ4zhkkI%mp_=q^dm71^ksY^T2@^(fq zZ?80i?QUQb;ljiG`5^*=m=>5H#=Rs*Lq{0#A{dv`vcQiZMb{DLON0D|zskETqkK&= z#XvP`yk$$OsT;Qa5U(j}T~_L{s*9?L3Y zAYk$kr?M(3rAs3q2`XIL&w3-{B#>#3#xyB%z^WBC?XZI79d-nDwS2$;gx2>f8;5F% zs@5RQ2cS?j1Q+;! z!6ZN-%VG>ZM=@?wIZfIEUquqRtj97i4C?g#^9|Qs%~%-qU?E>yTHqUtuBqClDQc2B zlI#1Zk>mwV0^0B#0pcS?5kY2X>C~dO*wWQdv~?pCTf{cRFr=DpwnAdmz|bgZ$YVjj ztb*x&0{b<~&;v{ZF|;gGG!(-S>jZ~lotm1aVN0cEwf|BU!70SOo8~FcW?4RHIm#ii zTa(jsnLaZa^&);$F$f3cNpOUqECEV{$#ir`1divyn0C;iKzf6^7{hWF76Y8o`8GuB zIHe~ar9a1;H&%bV{2i_SK&jrO`bltu4o=z>nyW07{>Wt;8mC77Z`MX@`&!l%4t=m3 zRt*?FsuoTYpw6H{U%%()E;RS28s2>K)NB2hf0%pz;_Qk0zj?It>=T`@e%YDnzWd%^ zOMmZu@apcx1&uqqPQB|-ufH%mbL+QneDulL*Z0Vug!}0qeV3lT_G|Lv@9&)3dF#Hb p-;?k5?9V=Z(t3aQi;eXU?=`l)yLRq;e?qA;i8T$YL literal 0 HcmV?d00001 diff --git a/Resources/Textures/SS220/Interface/Misc/event-job-icons.rsi/NTCombatant.png b/Resources/Textures/SS220/Interface/Misc/event-job-icons.rsi/NTCombatant.png new file mode 100644 index 0000000000000000000000000000000000000000..aa15aaa084787affc1162eb02f83f088b403d224 GIT binary patch literal 139 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqL7py-Are!Q|NQ^|zkcI_G`5@v zS9e9Rxm`T4?0-(uDIWhcmxU`Po{Tv5;q}#6HZ=iuHBKRx#1uoZ9Jj+FjSM$fY8X~C nP55Y_&0!_9-~9SjBL;>!EgGv89_-lyG@ZfI)z4*}Q$iB}21YOM literal 0 HcmV?d00001 diff --git a/Resources/Textures/SS220/Interface/Misc/event-job-icons.rsi/NTEngineerOfficer.png b/Resources/Textures/SS220/Interface/Misc/event-job-icons.rsi/NTEngineerOfficer.png new file mode 100644 index 0000000000000000000000000000000000000000..67c235958418d282d82627f1250f808f4fb5d25e GIT binary patch literal 175 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqWu7jMAre!Q|NQ^|zkcI_w6^^4 z?*;{#yBA!D&y!0@coMexxBi0}=NfqbRFzI|WL+Y~Ht$SF)8|_zE!J?N<18bypM{ Z!@UiuY6_tj^?@#6@O1TaS?83{1OOBbLCF9B literal 0 HcmV?d00001 diff --git a/Resources/Textures/SS220/Interface/Misc/event-job-icons.rsi/NTMedic.png b/Resources/Textures/SS220/Interface/Misc/event-job-icons.rsi/NTMedic.png new file mode 100644 index 0000000000000000000000000000000000000000..1b20403aad6d5afdb0d5ee1b52ab08bd69d82e12 GIT binary patch literal 132 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFq-kvUwAre!Q|NQ^|zkcI_G`5@v zS9e9Rxm`T4?0-(usf3^E#)}SY@i}H>@b~rAST?maQ4<+Yu*5K^xL;rqOR>Iqmw}1J g_rUwJrCWIzdNWPW^1smI1RBfW>FVdQ&MBb@045198vpfN22DN!1wQQD z3fdD+MjZR_`f4oO4$c>o41^8tH1GiN8tHdz6TIX~t9kUBUWC8Sl4Pj*p7OA0(ON~I O%?zHdelF{r5}E+C20m^8 literal 0 HcmV?d00001 diff --git a/Resources/Textures/SS220/Interface/Misc/event-job-icons.rsi/NTSpecOpsOfficer.png b/Resources/Textures/SS220/Interface/Misc/event-job-icons.rsi/NTSpecOpsOfficer.png new file mode 100644 index 0000000000000000000000000000000000000000..4a4e9aef5c5e2f065983fab7cb16b3078e3bc7ea GIT binary patch literal 1704 zcmbVMO^@3|7bk&CJ#nAqbuPR44w+D$??XdOZ}QkN4u8IKdQvB%in zO?HJi^nk=qXvKjG95^5$aX}n<<%HnGg#-V912=>e-pPmAR%uxg$?=Tmd7t-rKj!_c z+qr%D;?;|qrd@9DG<)#gP|wEG@c-v8o$ulGe0R6sn$2dHuHSm;y}K_Dzl8O{?_Ycj zN6+NF&YlMQ*(*O^SH{mKJMU+jcIgH6T+r@+eg!~(h5h|}-`jP$j7rRx15uhr37|FY z=H@hE{7~d*AckRF*Z=t8fsR7IuHUJ6rk6CtDBL+s#olSB&rc6I_4UnL=;qV~f=J{H zO`~y~xzoBn=XGJNJ{vlkL-NDAzNH+ZeXoleG8L#&axf=$1yyN@IAxpCw~%F$nqk%q zQpUt_ZPT?ZwEXGdE%gJp*L-{F3wCvVl;??S7?a7QG%1&4Iy4BS)G#f>vM?ZUb`s}o zisS6silHeoo`y*t$`~m|HjqboT?eI$5Tc}@jk9H%AYsOoB?c*(Dx^8k=LIe~O2>2O zJ~zZzL?X^Jz>)%+jASmek$enwar}@2NUi4;KGtf9qQXU%w~irZ4yG+8d{x@B5WG82

>)qZ)?N-Af)N!y?B6GQ(=eFZ4XE7J;W?hH;l)}(=om$ml zwlHzcr#9xcZQ=o=RqOA6_fwEs*2w!sG_*b57+G0R>8PfqJSO~j} znIkH=%BW8`AN-~qAt0W`=WtCv&gFS&KN$%ieL|Nk z++;GyCoC0PL&)8E8qs*1{)`oWKh-aj!$&M03K+G9uHrG&P+FA6 zc(iKsvoiy11&67qmc=-RO)=0#4Ad!%>-)nG0~qx;+Rd&0#=Xjq-(Jv=_7wVV_Q6kI sU7=sUlkWcZ>A|bpSO31Z$%o}%U-Qi8Ui{?2>&ixJw>r&lwh!+914KX-h5!Hn literal 0 HcmV?d00001 diff --git a/Resources/Textures/SS220/Interface/Misc/event-job-icons.rsi/USSPCombatant.png b/Resources/Textures/SS220/Interface/Misc/event-job-icons.rsi/USSPCombatant.png new file mode 100644 index 0000000000000000000000000000000000000000..3c3998d1a7982a8977b1250ca19ea91e7da39da7 GIT binary patch literal 1701 zcmbVN-;3Nt98W9Kv-N~xK`AI9hvHR}$z*r4$K%Wq@ex>&g_qHt#|ckAUl(p&wRe0?~nQJ z`&*mq%V#g1RTO2pwb5vcaY?>Qr^W9}$?DHycqrR=jVsEzN9B7;`Si2L73IM{LeMa98ElJ%8SHYE(1-SLW*5aTayOWonTA#Sx(iOVe28R z*3`OdK)X_P-RD%xgbpwr04qAQQPo72rOqEsSj$O-+Km_Iw#1jG4T>T|0F1|DV_Y#< z-UrZiU0_j9iJtP61w(`KFpsk$W~nL}agU7(PZLUKE+kn=oAP;>M8LoV zX8;NDGMO4yjM z9y&uCxS*b9nU+YIsY9m=9aM3U={##zkZI1K0V8p=|6iz!U>#NJcR)qe5M1E@1(Og( zEKjiTIZkk&f-LQ8Y8gr7vmwicVWF;ac)jKOTRDs3q1fQ<^{Z;D>D$n?ZQU~9RBjNU zR>}*UhP2i2G!Y*ojtQzmyGO#1>XkaK>V#Blx@$p8w@H;m5sZ2!EYCMsIFePcI8Vg+ z9yYOS)hxYMCw1MaR3ja`HCuP6Q;%%oVh1`4``7YV+(JCOZytF!W%;0un2W^j&u>qM zUZ2l~u{y07ghP1~JS~(ZK#4YAj*p1I$vl|Rjt5kb-lHyNFwUZ4jB~oy7tuON>4D?) zbG&zN^(V{Uaq90X)%#RG4{kWXX`hPb3N+~tkZov|8gO^krhA84)&eg2pq!QsSbUT% zoTh?07Y+K=^PMxIxi?#lweHdb*|IU2)^kdgPXs=#>H*LQ0(TBIb;(tHzp8xgD z?{DBg-Z}M~cIJtTo#mycy(gdg{gq$Oft4>l|K*?8Z@uu=7+m<~!lj?Ke_R)YkIm8F_(Wm^10plSPre`X5-7NZ@&F6n4k+f literal 0 HcmV?d00001 diff --git a/Resources/Textures/SS220/Interface/Misc/event-job-icons.rsi/USSPEngineerOfficer.png b/Resources/Textures/SS220/Interface/Misc/event-job-icons.rsi/USSPEngineerOfficer.png new file mode 100644 index 0000000000000000000000000000000000000000..4cac56f86203c714eecd77dc72ea076cfad367ef GIT binary patch literal 178 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFq@t!V@Arezd{ZDc>I0$%)b#G$I zzOcOag_n!~S^ycZI_Hfz6qJU8eLlWgXV z7$wEYFaN2jqzmumRFj(NVs?Bs_sV~+=R=cN7aiBpRAVnc2egVWHNrE^*Ox&HoiW(%M=q-2=-9u0UilC5#KOkOmR`4R(Lqdcg;;Z>-HX8rZ&|TG4Uwz+u zuiksF)YneU9eU)DBuR6%YGob9S@F&ufbW+_K06P?!KC_JCP{~nig!kO`<;17y8l?% zX!54_EcRKXl7O|SI*bxPOVZNvFd_aX<)}qFVeH6zS3Z|f7&!8oqNjU_OS@rpC#4%Z zYYl&A)3*b8`6;wC#6S>HPS7yw#Tgzt@`xA1Tr6uc8bSD`Bd-WS)b#4eWhq5PwWRn) zp@45jvSwI{QNjfsnDZu%-o9lH=EIc=Ox!UO@+ zh9uDpRTnOefPtUml78A7i3h$$do-dk&j4%W*rdxi%ew4usPpYR1R%7YmuuYBmMF?4 zGQPS6ZcGAlS9I3cPN=p{GuBUiy1E5s9v9vu*i9+nENw8>n_g6XYBF+NaWOV}{7e`J zY>+MNJ3}jkQ%5#+6Ru2GjB>*$<3bth_7l2=b$tx=SP-_i{|dFSQNTs(4k%e-+#PG-FjjWPxkUsQr4`yvHsAWxRV zdyc@EcF?6j`VVeci zKXd7=!|&bP{pPVxrJ1jPz5LaITkmh}EPt`kyd-@f{qSvdZ>He>e(~pPA6?y?zrA$r z1?y_*%1?XeXO3Nd^vB!kksI%xI}Jh)(q^sgdD01(ixw`P?>F8MLv3}f^5My|FaH4~ CDcXhr literal 0 HcmV?d00001 diff --git a/Resources/Textures/SS220/Interface/Misc/event-job-icons.rsi/USSPMedic.png b/Resources/Textures/SS220/Interface/Misc/event-job-icons.rsi/USSPMedic.png new file mode 100644 index 0000000000000000000000000000000000000000..850a41d7e176a71b4e743251df5f3b8d883d341b GIT binary patch literal 153 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqZk{fVAre!Q|NQ@Nf4Ii&*ngfI zjLL^?*xLU8PyE3m;`~#=QccF{VFT+Kt41}h$I%7`0+~&$%lsr1GMFCQaP(fC-O0n# r!;lm&m6N{t`5d5$e5nzhX}-P;S|F={7z8c_PXEpm6gEVGrZn`>15pLSa&ssJdu;Dd)}xpxwL`O2973|9TcHXjtK&lD|D$Yn$fKbGtNFb`-L6x{yy;6w_1@*?8{jpLgf3;-Kc;=h$d+*JA z@13>P6Vv+-@0TQLy1wkL!?;hp`yPSs^@HDDfMF_LKAlR^V~521ko3{z8A+OaGH5ij zrniDA4>jWRO{V2x3}{K3U&v!Zw^$}`vUU*J$}iu1r^tbCE2k=+?!^x41j{=K+t^uc z(48%6`O3oc@_degAY>Vl^ROGGIJcDnFNV2TMv6RuWLvhfC zmd=73qk!BOoi_S0L+dQ%+X-b$XTi)P!kZX72_qR#8k~2>7qvDvS#}(8F_wJvR1o>R zmp-%S40B1wY{k?~xH4TeY7L`?%N1-|&*~+t>qDr={h-zVE7Zb98JEp_ppZ2_$;iKg zeTrK=2?_Wdgrv<-9JLj>h$MD+mnR?$)|K|I*Bxgq;jN$x8|nIq<8pn;sTx+bs+yWH zFxT^NJxVhYQC4?t1>&OxfsbpfWa*Y}s-?}jnmR|zzDjCzP9?f!k}_k|Foy2Jd6&~| zkp<)P{{KAxViG_VlI{cZh}snCgO`I8F1A0ao(=Z;Xx0tnLB?Q0MJ3n@6)C`cWwabT za0G_5y$%D?f5?j=Eak1NM-sN!hG_kl)I(rD5@kDd1^wB}!QP${AH$(