diff --git a/Content.Client/SS220/AdmemeEvents/EventRoleIcons.cs b/Content.Client/SS220/AdmemeEvents/EventRoleIcons.cs
new file mode 100644
index 000000000000..2b707adc5266
--- /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 000000000000..846bf4e10521
--- /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 c7cac426a41b..193517584ea8 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 7f6d99b177f4..27dfaf62dc9e 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 6ae232114486..cf82b7a4297c 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 058d6028c4cb..de35426571b6 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 6a0c0227daf1..9e77a0f5f692 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 933f1d4d1cf0..8d31bfe41938 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 000000000000..86a26b880151
--- /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 000000000000..bab43f5dda87
Binary files /dev/null and b/Resources/Textures/SS220/Interface/Misc/event-job-icons.rsi/IOTCombatant.png differ
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 000000000000..7b7faebe2af3
Binary files /dev/null and b/Resources/Textures/SS220/Interface/Misc/event-job-icons.rsi/IOTCommand.png differ
diff --git a/Resources/Textures/SS220/Interface/Misc/event-job-icons.rsi/IOTEngineerOfficer.png b/Resources/Textures/SS220/Interface/Misc/event-job-icons.rsi/IOTEngineerOfficer.png
new file mode 100644
index 000000000000..b3f1d91d36db
Binary files /dev/null and b/Resources/Textures/SS220/Interface/Misc/event-job-icons.rsi/IOTEngineerOfficer.png differ
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 000000000000..8c4ffa00dbb5
Binary files /dev/null and b/Resources/Textures/SS220/Interface/Misc/event-job-icons.rsi/IOTMedic.png differ
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 000000000000..a82607d8d457
Binary files /dev/null and b/Resources/Textures/SS220/Interface/Misc/event-job-icons.rsi/IOTMedicalOfficer.png differ
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 000000000000..aa15aaa08478
Binary files /dev/null and b/Resources/Textures/SS220/Interface/Misc/event-job-icons.rsi/NTCombatant.png differ
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 000000000000..67c235958418
Binary files /dev/null and b/Resources/Textures/SS220/Interface/Misc/event-job-icons.rsi/NTEngineerOfficer.png differ
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 000000000000..1b20403aad6d
Binary files /dev/null and b/Resources/Textures/SS220/Interface/Misc/event-job-icons.rsi/NTMedic.png differ
diff --git a/Resources/Textures/SS220/Interface/Misc/event-job-icons.rsi/NTMedicalOfficer.png b/Resources/Textures/SS220/Interface/Misc/event-job-icons.rsi/NTMedicalOfficer.png
new file mode 100644
index 000000000000..a62a310b18ff
Binary files /dev/null and b/Resources/Textures/SS220/Interface/Misc/event-job-icons.rsi/NTMedicalOfficer.png differ
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 000000000000..4a4e9aef5c5e
Binary files /dev/null and b/Resources/Textures/SS220/Interface/Misc/event-job-icons.rsi/NTSpecOpsOfficer.png differ
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 000000000000..3c3998d1a798
Binary files /dev/null and b/Resources/Textures/SS220/Interface/Misc/event-job-icons.rsi/USSPCombatant.png differ
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 000000000000..4cac56f86203
Binary files /dev/null and b/Resources/Textures/SS220/Interface/Misc/event-job-icons.rsi/USSPEngineerOfficer.png differ
diff --git a/Resources/Textures/SS220/Interface/Misc/event-job-icons.rsi/USSPMarshal.png b/Resources/Textures/SS220/Interface/Misc/event-job-icons.rsi/USSPMarshal.png
new file mode 100644
index 000000000000..be8751a0cd77
Binary files /dev/null and b/Resources/Textures/SS220/Interface/Misc/event-job-icons.rsi/USSPMarshal.png differ
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 000000000000..850a41d7e176
Binary files /dev/null and b/Resources/Textures/SS220/Interface/Misc/event-job-icons.rsi/USSPMedic.png differ
diff --git a/Resources/Textures/SS220/Interface/Misc/event-job-icons.rsi/USSPMedicalOfficer.png b/Resources/Textures/SS220/Interface/Misc/event-job-icons.rsi/USSPMedicalOfficer.png
new file mode 100644
index 000000000000..3afc12c71b0b
Binary files /dev/null and b/Resources/Textures/SS220/Interface/Misc/event-job-icons.rsi/USSPMedicalOfficer.png differ
diff --git a/Resources/Textures/SS220/Interface/Misc/event-job-icons.rsi/meta.json b/Resources/Textures/SS220/Interface/Misc/event-job-icons.rsi/meta.json
new file mode 100644
index 000000000000..7b0cb077bfe6
--- /dev/null
+++ b/Resources/Textures/SS220/Interface/Misc/event-job-icons.rsi/meta.json
@@ -0,0 +1,56 @@
+{
+ "version": 1,
+ "license": "EULA/CLA with a hosting restriction, full text: https://raw.githubusercontent.com/SerbiaStrong-220/space-station-14/master/CLA.txt",
+ "copyright": "Made by SuBL for SS220",
+ "size": {
+ "x": 8,
+ "y": 8
+ },
+ "states": [
+ {
+ "name": "IOTCommand"
+ },
+ {
+ "name": "IOTEngineerOfficer"
+ },
+ {
+ "name": "IOTMedic"
+ },
+ {
+ "name": "IOTMedicalOfficer"
+ },
+ {
+ "name": "IOTCombatant"
+ },
+ {
+ "name": "NTCombatant"
+ },
+ {
+ "name": "NTEngineerOfficer"
+ },
+ {
+ "name": "NTMedic"
+ },
+ {
+ "name": "NTMedicalOfficer"
+ },
+ {
+ "name": "NTSpecOpsOfficer"
+ },
+ {
+ "name": "USSPCombatant"
+ },
+ {
+ "name": "USSPEngineerOfficer"
+ },
+ {
+ "name": "USSPMarshal"
+ },
+ {
+ "name": "USSPMedic"
+ },
+ {
+ "name": "USSPMedicalOfficer"
+ }
+ ]
+}