Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions Content.Client/Lobby/UI/HumanoidProfileEditor.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -1555,6 +1555,9 @@ private void OpenLoadout(JobPrototype? jobProto, RoleLoadout roleLoadout, RoleLo
JobOverride = jobProto;
var session = _playerManager.LocalSession;

// Forge-Change: role loadouts can gain new groups after a profile was saved.
roleLoadout.EnsureValid(Profile, session, collection);

_loadoutWindow = new LoadoutWindow(Profile, roleLoadout, roleLoadoutProto, _playerManager.LocalSession, collection)
{
Title = jobProto?.LocalizedName + " loadout", // Mono - replace the "-" with a space in "-loadout", change to LocalizedName from ID
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ private static readonly (string Title, string Department)[] DebugSquadDepartment
("ТСФ", "TSF"),
("НаноТразен", "NanoTrasen"),
("СИВ", "Empire"),
("СССП", "UnionOfSovietSocialistPlanets"),
("СПН", "SPN"),
("Ренегаты", "Renegates")
};

Expand All @@ -53,7 +53,7 @@ private static readonly (string Title, string Department)[] DebugSquadDepartment
["TSF"] = false,
["NanoTrasen"] = false,
["CIV"] = false,
["USSP"] = false,
["SPN"] = false,
["Renegates"] = false
};
private List<CrewMemberInfo> _lastUnassignedCrew = new();
Expand Down Expand Up @@ -329,7 +329,7 @@ private void SetThemedPanel(PanelContainer panel, Color background, Color border
};

// AngleRect stylesheet modulates panels to #292929 — washes out light palettes.
if (_styles.Theme.ID == "SecApUiThemeUSSP")
if (_styles.Theme.ID == "SecApUiThemeSPN")
panel.ModulateSelfOverride = Color.White;
}

Expand Down Expand Up @@ -482,7 +482,7 @@ private void UpdateSquadsList(List<Squad> squads, bool debug)
AddSquadCategory("TSF", "ТСФ", squads.Where(squad => squad.Department == "TSF").ToList(), debug);
AddSquadCategory("NanoTrasen", "НаноТразен", squads.Where(IsNanoTrasenSquad).ToList(), debug);
AddSquadCategory("CIV", "СИВ", squads.Where(IsCivilianSquad).ToList(), debug);
AddSquadCategory("USSP", "СССП", squads.Where(IsUsspSquad).ToList(), debug);
AddSquadCategory("SPN", "СПН", squads.Where(IsSpnSquad).ToList(), debug);
AddSquadCategory("Renegates", "Ренегаты", squads.Where(squad => squad.Department == "Renegates").ToList(), debug);
return;
}
Expand Down Expand Up @@ -575,9 +575,9 @@ private static bool IsCivilianSquad(Squad squad)
return squad.Department is "CIV" or "Empire";
}

private static bool IsUsspSquad(Squad squad)
private static bool IsSpnSquad(Squad squad)
{
return squad.Department is "USSP" or "СССП" or "UnionOfSovietSocialistPlanets";
return squad.Department is "SPN" or "СПН";
}

private void UpdateTimersList(List<TimerEntry> timers)
Expand Down
3 changes: 2 additions & 1 deletion Content.Server/_Forge/GuardImplant/GuardSystem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,8 @@
namespace Content.Server._Forge.Guard;

/// <summary>
/// Adds or removes the guard overlay component when the empire guard implant is inserted or removed.
/// Adds or removes the guard overlay component when a guard implant is inserted or removed.
/// Faction-specific guard icons are configured in implant YAML via SubdermalImplant.onAdd.
/// </summary>
public sealed class GuardSystem : EntitySystem
{
Expand Down
4 changes: 2 additions & 2 deletions Content.Server/_Wega/Security/SecApartmentSystem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ public sealed partial class SecApartmentSystem : EntitySystem
"TSF",
"NanoTrasen",
"Empire",
"UnionOfSovietSocialistPlanets",
"SPN",
"Renegates"
};

Expand Down Expand Up @@ -193,7 +193,7 @@ private static string GetSquadIconPrefix(string department, string fallback)
{
"TSF" => "TSFSquadIcon",
"Empire" => "EmpireSquadIcon",
"UnionOfSovietSocialistPlanets" => "USSPSquadIcon",
"SPN" => "USSPSquadIcon",
"Renegates" => "RenegateSquadIcon",
_ => fallback
};
Expand Down
1 change: 1 addition & 0 deletions Content.Shared/_Forge/Company/FactionCompanyResolver.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ public static class FactionCompanyResolver
"Renegates",
"Colonial",
"MD",
"SPN",
};

public static bool IsFactionCompany(string? companyId) =>
Expand Down
4 changes: 2 additions & 2 deletions Content.Shared/_Forge/GuardImplant/GuardComponent.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@

namespace Content.Shared._Forge.Guard.Components;

[RegisterComponent, NetworkedComponent]
[RegisterComponent, NetworkedComponent, AutoGenerateComponentState]
public sealed partial class GuardComponent : Component
{
[DataField, ViewVariables(VVAccess.ReadWrite)]
[DataField, AutoNetworkedField, ViewVariables(VVAccess.ReadWrite)]
public ProtoId<SecurityIconPrototype> GuardStatusIcon = "GuardIcon";
}
4 changes: 4 additions & 0 deletions Resources/Locale/en-US/_Forge/cybernetics.ftl
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,12 @@ ent-ForgeRiplyRightHand = R.I.P.L.Y right hand
.desc = A cybernetic right hand with reinforced fingertip anchors. It helps drag and carry heavy bodies only when paired with the matching hand.
ent-ImplantGuard = guard implant
.desc = A technological chip that shields loyal minds of the Holy Empire's subjects.
ent-SpnMindShieldImplant = SPN mindshield implant
.desc = A subdermal implant that shields SPN personnel from external influence and mind control devices.
ent-GuardImplanter = guard implanter
.desc = A disposable syringe preloaded with a guard implant.
ent-SpnMindShieldImplanter = SPN mindshield implanter
.desc = A disposable syringe preloaded with an SPN mindshield implant.
ent-ForgeVoiceModuleImplanter = voice module implanter
.desc = A disposable syringe preloaded with a configurable voice module implant.
ent-ForgeCyberneticLiver = cybernetic liver
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
comms-console-announcement-title-renegate = ВКР
comms-console-announcement-title-tsf = ТСФ
comms-console-announcement-title-empire = СИВ
comms-console-announcement-title-ussp = СССП
comms-console-announcement-title-ussp = СПН
comms-console-announcement-title-nt = НТ
comms-console-announcement-title-tti = TTI
comms-console-announcement-title-ads = ADS
4 changes: 2 additions & 2 deletions Resources/Locale/ru-RU/_Forge/contractors/nationality.ftl
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ nationality_description_solfed = Гражданин ТСФ.
nationality_name_imperial = Священная Империя Вермиллионов
nationality_description_imperial = Гражданин империи.

nationality_name_ussp = Союз Советских Социалистических Планет
nationality_description_ussp = Гражданин СССП.
nationality_name_ussp = Союз Прогрессивных Народов
nationality_description_ussp = Гражданин СПН.

nationality_name_freecolonies = Свободные Колонии
nationality_description_freecolonies = Гражданин Свободных Колоний.
4 changes: 4 additions & 0 deletions Resources/Locale/ru-RU/_Forge/cybernetics.ftl
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ reagent-effect-guidebook-transmutin-mutate-monkey = Мутирует обезь

ent-ImplantGuard = имплант "Страж"
.desc = Технологичный чип, защищающий светлые умы подданных Священной Империи
ent-SpnMindShieldImplant = имплант «щит разума» СПН
.desc = Подкожный имплант, защищающий разум бойца СПН от внешнего контроля и устройств влияния на сознание.
ent-ForgeVoiceModuleImplant = голосовой модуль
.desc = Настраиваемый подкожный TTS-модулятор голоса. Настройте его в руке до имплантации.
ent-ForgeSubdermalArmorImplant = подкожная броня
Expand All @@ -24,6 +26,8 @@ ent-ForgeRiplyRightHand = правая кисть R.I.P.L.Y
.desc = Кибернетическая правая кисть с усиленными опорами в кончиках пальцев. Упрощает перетаскивание и перенос тяжёлых тел только в паре со второй кистью.
ent-GuardImplanter = имплантер "Страж"
.desc = Технологичный чип, защищающий светлые умы подданных Священной Империи
ent-SpnMindShieldImplanter = имплантер «щит разума» СПН
.desc = Одноразовый шприц с имплантом щита разума СПН.
ent-ForgeVoiceModuleImplanter = имплантер голосового модуля
.desc = Одноразовый шприц с настроенным голосовым модулем.
ent-ForgeCyberneticLiver = кибернетическая печень
Expand Down
12 changes: 12 additions & 0 deletions Resources/Locale/ru-RU/_Forge/job/job-description.ftl
Original file line number Diff line number Diff line change
Expand Up @@ -66,3 +66,15 @@ job-description-tsf-Medic = Спасайте жизни своих товари
job-description-tsf-sl = Командуйте приставленным в ваш отряд людьми и приведите их к победе.
job-description-tsf-Crew = Обслуживайте Халкион, следите за питанием, изучайте РнД, производите снаряжение.
job-description-tsf-crewofficer = Руководите экипажем Халкиона и будьте главным стрелком-наводчиком аванпоста.

department-SPN-description = Военные и дипломатические силы Союза Прогрессивных Народов в секторе.
forge-job-desc-spn-council-member = Высшее командование СПН. Определяйте стратегию, распределяйте ресурсы и руководите флотом Союза.
forge-job-desc-spn-union-diplomat = Представляйте Союз Прогрессивных Народов в переговорах и ведите дипломатию от его имени.
forge-job-desc-spn-fleet-officer = Командуйте подразделениями СПН, поддерживайте дисциплину и исполняйте решения Совета.
forge-job-desc-spn-squad-leader = Командуйте звеном пехотинцев, ведите отряд в бой и выполняйте приказы офицеров.
forge-job-desc-spn-corpsman = Оказывайте медицинскую помощь бойцам СПН в полевых условиях.
forge-job-desc-spn-sapper = Уничтожайте укрепления врага, обезвреживайте мины и прокладывайте путь для наступления.
forge-job-desc-spn-rifleman = Основная боевая сила СПН. Исполняйте приказы командиров и держите линию фронта.
forge-job-desc-spn-trainee = Проходите подготовку, учитесь дисциплине и службе в рядах Союза Прогрессивных Народов.
job-supervisors-spn-council = члены совета СПН
job-supervisors-spn-fleet-officer = офицеры флота СПН
10 changes: 10 additions & 0 deletions Resources/Locale/ru-RU/_Forge/job/job-names.ftl
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
department-Empire = Священная Империя Вермиллионов
department-Renegates = Восставшие колонии Ренегатов
department-TSF = Транс-Солнечная Федерация
department-SPN = Союз Прогрессивных Народов
department-UnionOfSovietSocialistPlanets = Союз Советских Социалистических Планет

# Outpost
Expand Down Expand Up @@ -84,3 +85,12 @@ job-name-tsf-crew = ТСФ Экипаж «Халкиона»
job-name-tsf-crewofficer = ТСФ Офицер «Халкиона»
job-name-nt-medic-pilot = Пилот TTI
job-name-nt-medic-gunner = Стрелок TTI

forge-job-name-spn-council-member = СПН Член Совета
forge-job-name-spn-union-diplomat = СПН Дипломат Союза
forge-job-name-spn-fleet-officer = СПН Офицер Флота
forge-job-name-spn-squad-leader = СПН Командир Звена
forge-job-name-spn-corpsman = СПН Санитар
forge-job-name-spn-sapper = СПН Сапёр
forge-job-name-spn-rifleman = СПН Пехотинец
forge-job-name-spn-trainee = СПН Курсант
2 changes: 2 additions & 0 deletions Resources/Locale/ru-RU/_Forge/loadout.ftl
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
loadout-spn-boots-black = чёрные ботинки СПН
loadout-spn-boots-jungle = камуфляжные ботинки СПН
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,5 @@ ent-TsfRankComputerCircuitboard = плата консоли должностей
.desc = Печатная плата компьютера для консоли должностей ТСФ.
ent-TtiRankComputerCircuitboard = плата консоли должностей TTI
.desc = Печатная плата компьютера для консоли должностей TTI.
ent-UspRankComputerCircuitboard = плата консоли должностей USSP
ent-UspRankComputerCircuitboard = плата консоли должностей СПН
.desc = Печатная плата компьютера для консоли должностей USSP.
2 changes: 2 additions & 0 deletions Resources/Locale/ru-RU/_Forge/radio.ftl
Original file line number Diff line number Diff line change
Expand Up @@ -23,3 +23,5 @@ chat-radio-tl = TechnicLogistic
chat-radio-harmony = Harmony
chat-radio-drake-industries = Drake Industries
chat-radio-nexus = Nexus
chat-radio-spn = ТАККОММ СПН
chat-radio-spn-command = СТРАТКОММ СПН
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,6 @@ id-card-access-level-tsf-diplomacy = Дипломатия Федерации
id-card-access-level-tsf-sec-apartment = Командование ТСФ
id-card-access-level-renegate-sec-apartment = Командование Ренегатов
id-card-access-level-empire-sec-apartment = Командование Империи
id-card-access-level-spn-sec-apartment = Командование СПН

id-card-access-level-basic-remnant = Предтеч
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,9 @@ ent-EmpireBoxSurvivalMonoNitrogenExtended = { ent-BoxSurvivalMonoNitrogenExtende
ent-EmpireBoxSurvivalMonoOxygenExtended = { ent-BoxSurvivalMonoOxygenExtended }
.desc = { ent-BoxSurvivalMonoOxygenExtended.desc }
.suffix = Кислород, Империя
ent-SpnBoxSurvivalMonoNitrogenExtended = { ent-BoxSurvivalMonoNitrogenExtended }
.desc = { ent-BoxSurvivalMonoNitrogenExtended.desc }
.suffix = Азот, СПН
ent-SpnBoxSurvivalMonoOxygenExtended = { ent-BoxSurvivalMonoOxygenExtended }
.desc = { ent-BoxSurvivalMonoOxygenExtended.desc }
.suffix = Кислород, СПН
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,9 @@ ent-ClothingHeadsetRenegade = гарнитура ренегатов

ent-ClothingHeadsetMdMedical = медицинская гарнитура TTI
.desc = Гарнитура с особым ключом шифрования для сотрудников Травмы Тима.

ent-ClothingHeadsetSpn = гарнитура СПН
.desc = Модульная гарнитура СПН с тактическим ключом шифрования.

ent-ClothingHeadsetSpnCommand = командная гарнитура СПН
.desc = Командная гарнитура СПН с тактическим и командным ключами шифрования.
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,7 @@ ent-ClothingMaskGasContractor = противогаз DCN™
.desc = Плотно прилегающая тактическая маска, которую можно подключить к дыхательному баллону.
ent-ClothingMaskGasRenegate = противогаз ренегатов
.desc = Базовый военный противогаз с оранжевыми линзами.
ent-ClothingMaskGasSpn = противогаз СПН
.desc = Стандартный противогаз Союза Прогрессивных Народов.
ent-ClothingMaskGasNexus = противогаз VSS
.desc = Базовый военный противогаз компании Vanguard Security Systems.
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
ent-ClothingBeltSpnBrown = тактический пояс СПН
.desc = Устаревший, но надёжный тактический пояс армии СПН.
ent-ClothingBeltSpnCoSabreSheath = кобура шпаги CO СПН
.desc = Парадная кобура для офицерской шпаги.
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
ent-ClothingHeadHatSpnCap = кепка курсанта СПН
.desc = Полевая кепка UL2 для курсантов Союза Прогрессивных Народов.
ent-ClothingHeadHatSpnBeret = берет пехотинца СПН
.desc = Берет UL3 стандартной пехоты СПН.
ent-ClothingHeadHatSpnPeaked = фуражка UL3 СПН
.desc = Офицерская фуражка UL3 для командного состава СПН.
ent-ClothingHeadHatSpnPeakedDiplomat = фуражка UL3 PaP СПН
.desc = Фуражка UL3 дипломатического корпуса СПН.
ent-ClothingHeadHatSpnKomWhite = фуражка UL5 СПН
.desc = Белая фуражка UL5 C-1 для членов совета СПН.
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
ent-ClothingOuterCoatSpnOfficer = куртка UL4 офицера СПН
.desc = Лёгкая куртка командного состава СПН.
ent-ClothingOuterCoatSpnSenior = куртка UL4 старшего офицера СПН
.desc = Куртка старшего офицерского состава СПН.
ent-ClothingOuterCoatSpnMp = камуфляжная куртка UL4 СПН
.desc = Лёгкая камуфляжная куртка для низкоугроженных постов.
ent-ClothingOuterCoatSpnPap = куртка PaP СПН
.desc = Верхняя одежда дипломатического корпуса СПН.
ent-ClothingOuterCoatSpnKomWhite = куртка UL5-W СПН
.desc = Белая бронированная куртка командования.
ent-ClothingOuterArmorSpnArmy = броня 6B80 СПН
.desc = Устаревший бронежилет тыловых подразделений.
ent-ClothingOuterArmorSpnSofPlated = усиленный жилет CCC5-L СПН
.desc = Вариант CCC5-L с дополнительными пластинами.
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
ent-ClothingShoesBootsSpnBlack = чёрные ботинки СПН
.desc = Стандартные чёрные армейские ботинки Союза Прогрессивных Народов.
ent-ClothingShoesBootsSpnJungle = камуфляжные ботинки СПН
.desc = Ботинки в джунглевом камуфляже для полевых подразделений СПН.

ent-ClothingShoesBootsSpnBlackFilled = { ent-ClothingShoesBootsSpnBlack }
.suffix = { ent-ClothingShoesBootsSpnBlack.suffix }, Заполненный, Боевой нож
.desc = { ent-ClothingShoesBootsSpnBlack.desc }
ent-ClothingShoesBootsSpnJungleFilled = { ent-ClothingShoesBootsSpnJungle }
.suffix = { ent-ClothingShoesBootsSpnJungle.suffix }, Заполненный, Боевой нож
.desc = { ent-ClothingShoesBootsSpnJungle.desc }
Loading
Loading