diff --git a/Content.Client/UserInterface/Systems/Storage/Controls/ItemGridPiece.cs b/Content.Client/UserInterface/Systems/Storage/Controls/ItemGridPiece.cs index f4c4158b5ce..a2decacc4e8 100644 --- a/Content.Client/UserInterface/Systems/Storage/Controls/ItemGridPiece.cs +++ b/Content.Client/UserInterface/Systems/Storage/Controls/ItemGridPiece.cs @@ -1,5 +1,7 @@ using System.Numerics; +using Content.Client._Forge.Item; using Content.Client.Items.Systems; +using Content.Shared._Forge.Item; using Content.Shared.Item; using Content.Shared.Storage; using Robust.Client.GameObjects; @@ -165,24 +167,44 @@ protected override void Draw(DrawingHandleScreen handle) // typically you'd divide by two, but since the textures are half a tile, this is done implicitly var iconPosition = new Vector2((boundingGrid.Width + 1) * size.X + itemComponent.StoredOffset.X * 2, (boundingGrid.Height + 1) * size.Y + itemComponent.StoredOffset.Y * 2); + var iconRotation = Location.Rotation + Angle.FromDegrees(itemComponent.StoredRotation); if (itemComponent.StoredSprite is { } storageSprite) { - var scale = 2 * UIScale; - var offset = (((Box2) boundingGrid).Size - Vector2.One) * size; - var sprite = _entityManager.System().Frame0(storageSprite); - - var spriteBox = new Box2Rotated(new Box2(0f, sprite.Height * scale, sprite.Width * scale, 0f), -iconRotation, Vector2.Zero); - var root = spriteBox.CalcBoundingBox().BottomLeft; - var pos = PixelPosition * 2 - + (Parent?.GlobalPixelPosition ?? Vector2.Zero) - + offset; - - handle.SetTransform(pos, iconRotation); - var box = new UIBox2(root, root + sprite.Size * scale); - handle.DrawTextureRect(sprite, box); - handle.SetTransform(GlobalPixelPosition, Angle.Zero); + // Forge-Change-Start: optional scaled storage draw for ForgeScaledStorageItemComponent only. + if (_entityManager.TryGetComponent(Entity, out ForgeScaledStorageItemComponent? forgeStorage) + && ForgeScaledStorageDraw.TryDraw( + _entityManager, + itemComponent, + forgeStorage, + handle, + boundingGrid, + size, + PixelPosition, + Parent?.GlobalPixelPosition, + GlobalPixelPosition, + UIScale)) + { + } + else + // Forge-Change-End + { + var scale = 2 * UIScale; + var offset = (((Box2) boundingGrid).Size - Vector2.One) * size; + var sprite = _entityManager.System().Frame0(storageSprite); + + var spriteBox = new Box2Rotated(new Box2(0f, sprite.Height * scale, sprite.Width * scale, 0f), -iconRotation, Vector2.Zero); + var root = spriteBox.CalcBoundingBox().BottomLeft; + var pos = PixelPosition * 2 + + (Parent?.GlobalPixelPosition ?? Vector2.Zero) + + offset; + + handle.SetTransform(pos, iconRotation); + var box = new UIBox2(root, root + sprite.Size * scale); + handle.DrawTextureRect(sprite, box); + handle.SetTransform(GlobalPixelPosition, Angle.Zero); + } } else { diff --git a/Content.Client/_Forge/Clothing/HandsOpenMantleClothingSystem.cs b/Content.Client/_Forge/Clothing/HandsOpenMantleClothingSystem.cs new file mode 100644 index 00000000000..8c52cec662e --- /dev/null +++ b/Content.Client/_Forge/Clothing/HandsOpenMantleClothingSystem.cs @@ -0,0 +1,106 @@ +using Content.Client.Items.Systems; +using Content.Shared._Forge.Clothing; +using Content.Shared.Clothing; +using Content.Shared.Clothing.Components; +using Content.Shared.Clothing.EntitySystems; +using Content.Shared.Hands; +using Content.Shared.Hands.Components; +using Content.Shared.Inventory; +using Content.Shared.Inventory.Events; + +namespace Content.Client._Forge.Clothing; + +/// +/// Swaps equipped mantle RSI states when the wearer's hand contents change. +/// +public sealed class HandsOpenMantleClothingSystem : EntitySystem +{ + [Dependency] private readonly InventorySystem _inventory = default!; + [Dependency] private readonly ItemSystem _item = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnGetVisuals, + after: [typeof(ClothingSystem)]); + SubscribeLocalEvent(OnMantleEquipped); + SubscribeLocalEvent(OnHandsChanged); + SubscribeLocalEvent(OnHandsChanged); + } + + private void OnGetVisuals(Entity ent, ref GetEquipmentVisualsEvent args) + { + if (!TryComp(ent, out ClothingComponent? clothing) || clothing.MappedLayer == null) + return; + + if (!TryComp(args.Equipee, out HandsComponent? hands)) + return; + + var state = GetEquippedState(hands, ent.Comp); + + foreach (var layer in args.Layers) + { + if (layer.Item1 != clothing.MappedLayer) + continue; + + layer.Item2.State = state; + } + } + + private void OnMantleEquipped(Entity ent, ref GotEquippedEvent args) + { + _item.VisualsChanged(ent); + } + + private void OnHandsChanged(EntityUid uid, HandsComponent hands, T args) + where T : notnull + { + RefreshWearerMantle(uid); + } + + private void RefreshWearerMantle(EntityUid wearer) + { + if (!_inventory.TryGetSlotEntity(wearer, "neck", out var mantle) || mantle == null) + return; + + if (!HasComp(mantle)) + return; + + _item.VisualsChanged(mantle.Value); + } + + private static string GetEquippedState(HandsComponent hands, HandsOpenMantleClothingComponent comp) + { + var leftOccupied = false; + var rightOccupied = false; + + foreach (var hand in hands.Hands.Values) + { + if (hand.HeldEntity == null) + continue; + + switch (hand.Location) + { + case HandLocation.Left: + leftOccupied = true; + break; + case HandLocation.Right: + case HandLocation.Middle: + rightOccupied = true; + break; + } + } + + if (leftOccupied && rightOccupied) + return comp.BothHandsState; + + if (rightOccupied) + return comp.RightHandState; + + if (leftOccupied) + return comp.LeftHandState; + + return comp.ClosedState; + } +} diff --git a/Content.Client/_Forge/Item/ForgeScaledStorageDraw.cs b/Content.Client/_Forge/Item/ForgeScaledStorageDraw.cs new file mode 100644 index 00000000000..ffce95c4142 --- /dev/null +++ b/Content.Client/_Forge/Item/ForgeScaledStorageDraw.cs @@ -0,0 +1,56 @@ +using System.Numerics; +using Content.Shared._Forge.Item; +using Content.Shared.Item; +using Robust.Client.GameObjects; +using Robust.Client.Graphics; +using Robust.Client.UserInterface; +using Robust.Shared.Maths; + +namespace Content.Client._Forge.Item; + +/// +/// Client-only storage UI drawing for entities with . +/// +public static class ForgeScaledStorageDraw +{ + public static bool TryDraw( + IEntityManager entityManager, + ItemComponent item, + ForgeScaledStorageItemComponent forgeStorage, + DrawingHandleScreen handle, + Box2i boundingGrid, + Vector2 size, + Vector2 pixelPosition, + Vector2? parentGlobalPixelPosition, + Vector2 globalPixelPosition, + float uiScale) + { + if (item.StoredSprite is not { } storageSprite) + return false; + + var slotWide = boundingGrid.Width >= boundingGrid.Height; + var iconRotation = (slotWide ? Angle.Zero : Angle.FromDegrees(90)) + + Angle.FromDegrees(item.StoredRotation); + var baseScale = 2 * uiScale; + var drawScale = new Vector2(baseScale * forgeStorage.Scale.X, baseScale * forgeStorage.Scale.Y); + var offset = (((Box2) boundingGrid).Size - Vector2.One) * size; + var sprite = entityManager.System().Frame0(storageSprite); + var spriteSize = sprite.Size * drawScale; + + var gridPixelSize = new Vector2((boundingGrid.Width + 1) * size.X, (boundingGrid.Height + 1) * size.Y); + var gridCenter = pixelPosition * 2 + + (parentGlobalPixelPosition ?? Vector2.Zero) + + offset + + gridPixelSize / 2f; + + var half = spriteSize / 2f; + var storedOffset = slotWide && forgeStorage.OffsetWide != Vector2i.Zero + ? forgeStorage.OffsetWide + : item.StoredOffset; + var localOffset = new Vector2(storedOffset.X * 2f, storedOffset.Y * 2f); + handle.SetTransform(gridCenter, iconRotation); + handle.DrawTextureRect(sprite, new UIBox2(-half.X + localOffset.X, -half.Y + localOffset.Y, half.X + localOffset.X, half.Y + localOffset.Y)); + handle.SetTransform(globalPixelPosition, Angle.Zero); + return true; + } +} diff --git a/Content.Server/_Forge/Access/Systems/ForgeIdCardJobIconOverrideSystem.cs b/Content.Server/_Forge/Access/Systems/ForgeIdCardJobIconOverrideSystem.cs new file mode 100644 index 00000000000..1c40f2cecec --- /dev/null +++ b/Content.Server/_Forge/Access/Systems/ForgeIdCardJobIconOverrideSystem.cs @@ -0,0 +1,109 @@ +using Content.Server.Access.Components; +using Content.Server.Access.Systems; +using Content.Server.GameTicking; +using Content.Shared._Forge.Access.Components; +using Content.Shared.GameTicking; +using Content.Shared.Inventory; +using Content.Shared.PDA; +using Content.Shared.Roles; +using Content.Shared.StatusIcon; +using Robust.Shared.Containers; +using Robust.Shared.Prototypes; +using Robust.Shared.Timing; + +namespace Content.Server._Forge.Access.Systems; + +/// +/// Applies visual-only job icon overrides after preset ID cards are configured. +/// +public sealed class ForgeIdCardJobIconOverrideSystem : EntitySystem +{ + [Dependency] private IdCardSystem _idCard = default!; + [Dependency] private InventorySystem _inventory = default!; + [Dependency] private IPrototypeManager _prototypes = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent( + OnMapInit, + after: [typeof(PresetIdCardComponent)]); + + SubscribeLocalEvent( + OnInsertedIntoContainer); + + SubscribeLocalEvent( + OnJobsAssigned, + after: [typeof(PresetIdCardSystem)]); + + SubscribeLocalEvent(OnPlayerSpawnComplete); + + SubscribeLocalEvent(OnStartingGearEquipped); + } + + private void OnMapInit(EntityUid uid, ForgeIdCardJobIconOverrideComponent comp, MapInitEvent args) + { + ApplyOverride(uid, comp); + } + + private void OnInsertedIntoContainer( + EntityUid uid, + ForgeIdCardJobIconOverrideComponent comp, + EntInsertedIntoContainerMessage args) + { + ApplyOverride(uid, comp); + } + + private void OnJobsAssigned(RulePlayerJobsAssignedEvent args) + { + ReapplyAllOverrides(); + } + + private void OnPlayerSpawnComplete(PlayerSpawnCompleteEvent args) + { + Timer.Spawn(0, () => TryApplyOverrideForPlayer(args.Mob)); + } + + private void OnStartingGearEquipped( + EntityUid uid, + InventoryComponent component, + ref StartingGearEquippedEvent args) + { + // SetPdaAndIdCardData runs synchronously after StartingGearEquippedEvent and resets the icon from the mind job. + Timer.Spawn(0, () => TryApplyOverrideForPlayer(uid)); + } + + private void ReapplyAllOverrides() + { + var query = EntityQueryEnumerator(); + while (query.MoveNext(out var uid, out var comp)) + { + ApplyOverride(uid, comp); + } + } + + private void TryApplyOverrideForPlayer(EntityUid player) + { + if (!Exists(player)) + return; + + if (!_inventory.TryGetSlotEntity(player, "id", out var idUid)) + return; + + var cardId = idUid.Value; + if (TryComp(idUid, out var pda) && pda.ContainedId != null) + cardId = pda.ContainedId.Value; + + if (TryComp(cardId, out var comp)) + ApplyOverride(cardId, comp); + } + + private void ApplyOverride(EntityUid uid, ForgeIdCardJobIconOverrideComponent comp) + { + if (!_prototypes.TryIndex(comp.JobIcon, out JobIconPrototype? icon)) + return; + + _idCard.TryChangeJobIcon(uid, icon); + } +} diff --git a/Content.Shared/_Forge/Access/Components/ForgeIdCardJobIconOverrideComponent.cs b/Content.Shared/_Forge/Access/Components/ForgeIdCardJobIconOverrideComponent.cs new file mode 100644 index 00000000000..808e3932f4b --- /dev/null +++ b/Content.Shared/_Forge/Access/Components/ForgeIdCardJobIconOverrideComponent.cs @@ -0,0 +1,14 @@ +using Content.Shared.StatusIcon; +using Robust.Shared.Prototypes; + +namespace Content.Shared._Forge.Access.Components; + +/// +/// Overrides the job icon on an ID card without changing its preset job (access, title, playtime role). +/// +[RegisterComponent] +public sealed partial class ForgeIdCardJobIconOverrideComponent : Component +{ + [DataField(required: true)] + public ProtoId JobIcon; +} diff --git a/Content.Shared/_Forge/Clothing/HandsOpenMantleClothingComponent.cs b/Content.Shared/_Forge/Clothing/HandsOpenMantleClothingComponent.cs new file mode 100644 index 00000000000..3950252f2a5 --- /dev/null +++ b/Content.Shared/_Forge/Clothing/HandsOpenMantleClothingComponent.cs @@ -0,0 +1,23 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared._Forge.Clothing; + +/// +/// Neck mantle that switches equipped sprite based on what the wearer holds in their hands. +/// Visual updates are handled on the client (HandsOpenMantleClothingSystem). +/// +[RegisterComponent, NetworkedComponent] +public sealed partial class HandsOpenMantleClothingComponent : Component +{ + [DataField] + public string ClosedState = "equipped-NECK"; + + [DataField] + public string RightHandState = "open-1"; + + [DataField] + public string BothHandsState = "open-2"; + + [DataField] + public string LeftHandState = "open-3"; +} diff --git a/Content.Shared/_Forge/Item/ForgeScaledStorageItemComponent.cs b/Content.Shared/_Forge/Item/ForgeScaledStorageItemComponent.cs new file mode 100644 index 00000000000..2f114462025 --- /dev/null +++ b/Content.Shared/_Forge/Item/ForgeScaledStorageItemComponent.cs @@ -0,0 +1,20 @@ +using System.Numerics; +using Robust.Shared.GameStates; + +namespace Content.Shared._Forge.Item; + +/// +/// Optional per-item storage UI scaling and wide-slot offset. Used by empire energy spear only. +/// +[RegisterComponent, NetworkedComponent] +public sealed partial class ForgeScaledStorageItemComponent : Component +{ + [DataField] + public Vector2 Scale = Vector2.One; + + /// + /// Offset override when the item occupies a wider-than-tall grid area (e.g. 6x2 vs 2x6). + /// + [DataField] + public Vector2i OffsetWide; +} diff --git a/Resources/Locale/ru-RU/_Forge/job/job-description.ftl b/Resources/Locale/ru-RU/_Forge/job/job-description.ftl index 74e10b3e9f3..23ccf94ec6a 100644 --- a/Resources/Locale/ru-RU/_Forge/job/job-description.ftl +++ b/Resources/Locale/ru-RU/_Forge/job/job-description.ftl @@ -29,8 +29,9 @@ forge-job-desc-praefect = Высокородный аристократ Свящ forge-job-desc-consul = Полномочный представитель Священной Империи, отвечающий за её дипломатические интересы в регионе. Следит за соблюдением договорённостей, ведёт переговоры и предотвращает эскалацию конфликтов. Его задача - сдерживать военные решения, способные привести к нежелательным последствиям для Империи. # forge-job-desc-inquisitor = Высший служитель Имперской веры, следящий за чистотой доктрины и искореняющий ересь. Проводит расследования, допросы и духовные проверки, обладает правом вмешательства в дела военных и гражданских при угрозе идеологической или религиозной скверны. forge-job-desc-inquisitor = Высший служитель Имперской веры, блюститель доктрины и духовной чистоты. Проводит расследования, выявляет ересь и направляет действия Империи в соответствии с религиозными догматами. Его долг: это служение вере, даже если это, возможно, противоречит военным или дипломатическим интересам. +forge-job-desc-praetorian = Боец преторианской гарнизонной службы. Охраняет лично Лорда-Префекта или иное лицо, если на то дан указ Лорда-Префекта. Держится рядом с подопечным и не уходит на передовую без приказа. forge-job-desc-tessarian = Старший офицер, отвечающий за общее руководство подразделениями, стратегическое планирование и координацию офицерского состава. Руководит Преторами и иными младшими командирами, контролирует выполнение боевых задач и поддерживает дисциплину на уровне всей операции. -forge-job-desc-praetorian = Младший офицер, непосредственно командующий солдатами на поле боя. Исполняет приказы Тессарианов и высшего командования, ведёт отряды в бой, отвечает за тактические действия и удержание позиций. +forge-job-desc-praetor = Младший офицер, непосредственно командующий солдатами на поле боя. Исполняет приказы Тессарианов и высшего командования, ведёт отряды в бой, отвечает за тактические действия и удержание позиций. forge-job-desc-auxilia = Рядовой боец Имперской Гвардии, составляющий основу её военной мощи. Исполняет приказы командиров, участвует в боевых операциях, охране и патрулировании, демонстрируя дисциплину и преданность Империи. forge-job-desc-neophyte = Новобранец гвардии, ещё не заслуживший звания солдата. Подчиняется безоговорочно, выполняет любую порученную работу и проходит проверку дисциплины и верности. Лишь доказав свою ценность, он может стать частью военной машины Империи. diff --git a/Resources/Locale/ru-RU/_Forge/job/job-names.ftl b/Resources/Locale/ru-RU/_Forge/job/job-names.ftl index 01d8dd21162..2be082747a3 100644 --- a/Resources/Locale/ru-RU/_Forge/job/job-names.ftl +++ b/Resources/Locale/ru-RU/_Forge/job/job-names.ftl @@ -37,9 +37,11 @@ guide-entry-roles-consul = Консул forge-job-name-praefect = СИВ Лорд-Префект forge-job-name-inquisitor = СИВ Эклезиарх +forge-job-name-praetorian = СИВ Преторианец +forge-job-name-praetorian-officer = СИВ Преторианец (офицерский ID) forge-job-name-consul = СИВ Консул forge-job-name-tessarian = СИВ Тессариан -forge-job-name-praetorian = СИВ Претор +forge-job-name-praetor = СИВ Претор forge-job-name-auxilia = СИВ Ауксилий forge-job-name-neophyte = СИВ Неофит diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/_Forge/entities/clothing/head/hardsuits.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/_Forge/entities/clothing/head/hardsuits.ftl index 5d182386b78..f042d139890 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/_Forge/entities/clothing/head/hardsuits.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/_Forge/entities/clothing/head/hardsuits.ftl @@ -37,6 +37,10 @@ ent-ClothingHeadHelmetHardsuitRI22 = шлем RI-22 .desc = Шлем для боевых скафандров RI-22. Оборудован ночным видением. ent-ClothingHeadHelmetHardsuitRI22c = шлем RI-22c .desc = Шлем RI-22 для высшего командного состава с отличительной маркировкой. Оборудован ночным видением. +ent-ClothingHeadHelmetHardsuitEmpirePraetorian = шлем RI-22 преторианца + .desc = Шлем к скафандру RI-22 преторианца. Оборудован ночным видением, рассчитан на долгое дежурство рядом с подопечным. +ent-ClothingHeadHelmetHardsuitEmpirePraetorianOfficer = шлем RI-22 преторианца (офицерский) + .desc = Офицерский шлем RI-22 с тем же ночным видением. Отличается маркировкой старшего состава охраны. ent-ClothingHeadHelmetHardsuitRI22i = шлем RI-22i .desc = Шлем RI-22 для отрядов имперских инквизиторов. Оборудован ночным и тепловым видением. ent-ClothingHeadHelmetHardsuitHV7 = шлем HV-7 diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/_Forge/entities/clothing/mask.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/_Forge/entities/clothing/mask.ftl index ed85a3b1100..084d2b895e5 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/_Forge/entities/clothing/mask.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/_Forge/entities/clothing/mask.ftl @@ -1,4 +1,8 @@ ent-ClothingMaskSterileTrauma = стерильный респиратор .desc = Респиратор из стерильных материалов с встроенным фильтром воздуха, обеспечивает защиту от распространения инфекций. Имеет бирюзовый оттенок, что распространён среди врачей. Имеет крепление для носа - удобно и практично. ent-ClothingMaskGasEmpire = противогаз империи - .desc = Практичный противогаз военных империй, почему вас так манит в окопы? \ No newline at end of file + .desc = Практичный противогаз военных империй, почему вас так манит в окопы? +ent-ClothingMaskGasEmpirePraetorian = противогаз преторианца + .desc = Коричневый противогаз преторианской охраны. Плотно сидит на лице, подключается к баллону. +ent-ClothingMaskGasEmpirePraetorianOfficer = { ent-ClothingMaskGasEmpirePraetorian } + .desc = Белый офицерский противогаз преторианской охраны. Защищает от газов, вспышек и сварки. \ No newline at end of file diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/_Forge/entities/clothing/neck.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/_Forge/entities/clothing/neck.ftl index aef39995971..944050844f5 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/_Forge/entities/clothing/neck.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/_Forge/entities/clothing/neck.ftl @@ -7,6 +7,11 @@ ent-ClothingNeckCloakTrauma = плащ командира TTI ent-ClothingNeckMantleTrauma = мантия специалиста травматологии .desc = Мантия средней длины, что покрывает плечи опытного врача Trauma Team. Окрашена в бирюзовые оттенки, а материал из стерильных компонентов и тканей. Вы точно можете доверять этому санитару! +ent-ClothingNeckMantleEmpire = имперская мантия + .desc = Длинная мантия Священной Империи с застёжкой на плечах. Когда носитель берёт что-то в руки, расходится по сторонам и не мешает держать оружие. Носят преторианцы. +ent-ClothingNeckMantleEmpireOfficer = офицерская имперская мантия + .desc = { ent-ClothingNeckMantleEmpire.desc } + ent-ClothingNeckScarfBlackNiko = длинный чёрный кошачий шарф .desc = Я не кот! ent-ClothingNeckScarfBlueNiko = длинный синий кошачий шарф diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/_Forge/entities/clothing/outerclothing/hardsuits.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/_Forge/entities/clothing/outerclothing/hardsuits.ftl index fbbacc51b5e..c66a75c6101 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/_Forge/entities/clothing/outerclothing/hardsuits.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/_Forge/entities/clothing/outerclothing/hardsuits.ftl @@ -50,6 +50,10 @@ ent-ClothingOuterHardsuitRI22i = боевой скафандр RI-22i .desc = Скафандр, выдаваемый отрядам имперских инквизиторов для операций в среде с низким давлением и высоким риском. ent-ClothingOuterHardsuitRI22c = боевой скафандр RI-22c .desc = Скафандр, выдаваемый высшему командному составу имперских командиров для операций в среде с низким давлением и высоким риском. +ent-ClothingOuterHardsuitEmpirePraetorian = боевой скафандр RI-22p + .desc = Боевой скафандр RI-22 для преторианской охраны. Выдаётся тем, кого поставили охранять Лорда-Префекта. Усилен против стрелкового оружия, как и положено телохранителю. +ent-ClothingOuterHardsuitEmpirePraetorianOfficer = боевой скафандр RI-22pc + .desc = Офицерский вариант RI-22 для старших преторианцев. Те же баллистические характеристики, но с маркировкой командира охраны. ent-ClothingOuterHardsuitHV7 = тяжелый скафандр HV-7 .desc = Огромный скафандр, выдаваемый штурмовым отрядам имперских штурмовиков для смертельных операций в среде с низким давлением и высоким риском. Пусть враги императора познают страх. diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/_Forge/entities/clothing/uniforms/jumpsuits.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/_Forge/entities/clothing/uniforms/jumpsuits.ftl index 9695a476320..de7e00677b1 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/_Forge/entities/clothing/uniforms/jumpsuits.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/_Forge/entities/clothing/uniforms/jumpsuits.ftl @@ -44,10 +44,10 @@ ent-ClothingUniformJumpsuitAuxilia = униформа гвардии .desc = Служебная форма гвардейцев Империи, узнаваемая по строгому крою и знакам службы. Эта имеет знаки отличия Ауксилия. ent-ClothingUniformJumpsuitAuxiliaAlt = униформа гвардии .desc = Униформа действующих подразделений Имперской Гвардии, привычная для строя и дежурств. Эта имеет знаки отличия Ауксилия. -ent-ClothingUniformJumpsuitPraetorian = униформа гвардии - .desc = Служебная форма гвардейцев Империи, узнаваемая по строгому крою и знакам службы. Эта имеет знаки отличия Претора. -ent-ClothingUniformJumpsuitPraetorianAlt = униформа гвардии - .desc = Униформа действующих подразделений Имперской Гвардии, привычная для строя и дежурств. Эта имеет знаки отличия Претора. +ent-ClothingUniformJumpsuitPraetor = униформа гвардии + .desc = Служебная форма старшего состава Имперской Гвардии с знаками отличия Претора. Выдаётся командирам отделений и бойцам преторианской охраны. +ent-ClothingUniformJumpsuitPraetorAlt = униформа гвардии + .desc = Рабочий вариант той же формы с знаками Претора. Удобнее на длинных сменах, носится преторианцами и младшими командирами вне парада. ent-ClothingUniformJumpsuitTessarian = униформа гвардии .desc = Костюм свободного кроя и наивысшего качества ткани, разработанный специально для старшего офицерского состава. Очень удобный. ent-ClothingUniformJumpsuitTessarianAlt = униформа гвардии diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/_Forge/entities/objects/Weapons/melee/e_spear.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/_Forge/entities/objects/Weapons/melee/e_spear.ftl new file mode 100644 index 00000000000..e793df50b5b --- /dev/null +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/_Forge/entities/objects/Weapons/melee/e_spear.ftl @@ -0,0 +1,4 @@ +ent-EmpireEnergySpear = имперское энергокопьё + .desc = Длинное оружие ближнего боя с плазменным наконечником на древке. Лезвие включается только в двух руках. Служебное оружие преторианской охраны, в карман не лезет. +ent-EmpireEnergySpearOfficer = имперское офицерское энергокопьё + .desc = { ent-EmpireEnergySpear.desc } diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/_Forge/entities/objects/devices/misc/identification_cards.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/_Forge/entities/objects/devices/misc/identification_cards.ftl index 08fc7cacd42..b0898720aee 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/_Forge/entities/objects/devices/misc/identification_cards.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/_Forge/entities/objects/devices/misc/identification_cards.ftl @@ -9,6 +9,12 @@ ent-EmpireInqIDCard = ID карта .desc = { ent-IDCardStandard.desc } ent-EmpireCommanderIDCard = ID карта .desc = { ent-IDCardStandard.desc } +ent-EmpirePraetorianIDCard = ID карта + .desc = { ent-IDCardStandard.desc } + .suffix = СИВ, Преторианец +ent-EmpirePraetorianOfficerIDCard = ID карта + .desc = { ent-IDCardStandard.desc } + .suffix = СИВ, Преторианец ent-RenegateBaronIDCard = ID карта коммодора diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/_Forge/entities/objects/devices/pda.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/_Forge/entities/objects/devices/pda.ftl index 7cad3bf2853..ba73a76507c 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/_Forge/entities/objects/devices/pda.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/_Forge/entities/objects/devices/pda.ftl @@ -27,6 +27,12 @@ ent-EmpireInqPDA = КПК Эклизиарха .desc = { ent-BasePDA.desc } ent-EmpireCommanderPDA = КПК Лорда-Префекта .desc = { ent-BasePDA.desc } +ent-EmpirePraetorianPDA = КПК имперца + .desc = { ent-BasePDA.desc } + .suffix = СИВ, Преторианец +ent-EmpirePraetorianOfficerPDA = КПК имперца + .desc = { ent-BasePDA.desc } + .suffix = СИВ, Преторианец, Офицер ent-RenegateBaronPDA = КПК коммодора .desc = Вероятно его владелец тот ещё псих. diff --git a/Resources/Maps/_Forge/POI/EmpireOutpost.yml b/Resources/Maps/_Forge/POI/EmpireOutpost.yml index 61bb7afa16d..bf157047baf 100644 --- a/Resources/Maps/_Forge/POI/EmpireOutpost.yml +++ b/Resources/Maps/_Forge/POI/EmpireOutpost.yml @@ -64618,6 +64618,18 @@ entities: parent: 1 - type: DeltaPressure gridUid: 1 +- proto: ForgeSpawnPointPraetorian + entities: + - uid: 9695 + components: + - type: Transform + pos: 13.5,-30.5 + parent: 1 + - uid: 9696 + components: + - type: Transform + pos: 14.5,-29.5 + parent: 1 - proto: Wrench entities: - uid: 9686 diff --git a/Resources/Maps/_Mono/Test/dev_map.yml b/Resources/Maps/_Mono/Test/dev_map.yml index bb07a8831c5..2a4bb7f3906 100644 --- a/Resources/Maps/_Mono/Test/dev_map.yml +++ b/Resources/Maps/_Mono/Test/dev_map.yml @@ -7888,6 +7888,13 @@ entities: - type: Transform pos: -6.5,2.5 parent: 2 +- proto: ForgeSpawnPointPraetorian #Forge-Change + entities: + - uid: 100009 + components: + - type: Transform + pos: -5.5,2.5 + parent: 2 - proto: ForgeSpawnPointNeophyte entities: - uid: 100006 @@ -7902,7 +7909,7 @@ entities: - type: Transform pos: -6.5,2.5 parent: 2 -- proto: ForgeSpawnPointPraetorian +- proto: ForgeSpawnPointPraetor #Forge-Change entities: - uid: 100008 components: diff --git a/Resources/Prototypes/Entities/Mobs/Species/human.yml b/Resources/Prototypes/Entities/Mobs/Species/human.yml index 5f966b11d22..a45da55a679 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/human.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/human.yml @@ -25,6 +25,7 @@ hideLayersOnEquip: - Hair - Snout + - FacialHair #Forge-Change: praetorian gas mask hides beard - type: Inventory femaleDisplacements: jumpsuit: diff --git a/Resources/Prototypes/_Forge/Catalog/Fills/Crates/lockers.yml b/Resources/Prototypes/_Forge/Catalog/Fills/Crates/lockers.yml index 00d1d4ff2fe..6885b5d479e 100644 --- a/Resources/Prototypes/_Forge/Catalog/Fills/Crates/lockers.yml +++ b/Resources/Prototypes/_Forge/Catalog/Fills/Crates/lockers.yml @@ -66,8 +66,8 @@ components: - type: StorageFill contents: - - id: ClothingUniformJumpsuitPraetorian - - id: ClothingUniformJumpsuitPraetorianAlt + - id: ClothingUniformJumpsuitPraetor + - id: ClothingUniformJumpsuitPraetorAlt - id: ClothingOuterCoatEmpireWindbreaker - id: ClothingShoesBootsJackFilled - id: ClothingBeltWebbingsBigBlack diff --git a/Resources/Prototypes/_Forge/Entities/Clothing/Head/Hardsuits/empire.yml b/Resources/Prototypes/_Forge/Entities/Clothing/Head/Hardsuits/empire.yml index efa5a82d0ad..c1e32a0ca23 100644 --- a/Resources/Prototypes/_Forge/Entities/Clothing/Head/Hardsuits/empire.yml +++ b/Resources/Prototypes/_Forge/Entities/Clothing/Head/Hardsuits/empire.yml @@ -185,6 +185,83 @@ - HeadTop - HeadSide +# region RI-22 Praetorian +- type: entity + parent: [ClothingHeadHardsuitBase, ShowMedicalIcons] + id: ClothingHeadHelmetHardsuitEmpirePraetorian + name: RI-22 praetorian helmet + suffix: Empire, Praetorian + description: Helmet for the RI-22 praetorian hardsuit. + categories: [ HideSpawnMenu ] + components: + - type: Sprite + sprite: Forge/Clothing/Head/Hardsuits/empire_praetorian.rsi + - type: Clothing + sprite: Forge/Clothing/Head/Hardsuits/empire_praetorian.rsi + clothingVisuals: + head: + - state: equipped-HELMET + sprite: Forge/Clothing/Head/Hardsuits/empire_praetorian.rsi + offset: "0, -0.03125" + - type: PressureProtection + highPressureMultiplier: 0.08 + lowPressureMultiplier: 1000 + - type: NightVision + flashDurationMultiplier: 3.5 + isEquipment: true + - type: Armor + modifiers: + coefficients: + Blunt: 0.9 + Slash: 0.9 + Piercing: 0.9 + Heat: 0.9 + - type: HideLayerClothing + slots: + - Hair + - Snout + - HeadTop + - HeadSide + +# region RI-22 Praetorian Officer +- type: entity + parent: [ClothingHeadHardsuitBase, ShowMedicalIcons] + id: ClothingHeadHelmetHardsuitEmpirePraetorianOfficer + name: RI-22 praetorian officer helmet + suffix: Empire, Praetorian, Officer + description: Helmet for the RI-22 praetorian officer hardsuit. + categories: [ HideSpawnMenu ] + components: + - type: Sprite + sprite: Forge/Clothing/Head/Hardsuits/empire_praetorian_officer_item.rsi + state: icon-off + - type: Clothing + sprite: Forge/Clothing/Head/Hardsuits/empire_praetorian_officer.rsi + clothingVisuals: + head: + - state: equipped-HELMET + sprite: Forge/Clothing/Head/Hardsuits/empire_praetorian_officer.rsi + offset: "0, 0.125" + - type: PressureProtection + highPressureMultiplier: 0.08 + lowPressureMultiplier: 1000 + - type: NightVision + flashDurationMultiplier: 3.5 + isEquipment: true + - type: Armor + modifiers: + coefficients: + Blunt: 0.9 + Slash: 0.9 + Piercing: 0.9 + Heat: 0.9 + - type: HideLayerClothing + slots: + - Hair + - Snout + - HeadTop + - HeadSide + # region HV-7 Heavy - type: entity parent: [ClothingHeadHardsuitBase, ShowMedicalIcons] diff --git a/Resources/Prototypes/_Forge/Entities/Clothing/Mask/gasmask.yml b/Resources/Prototypes/_Forge/Entities/Clothing/Mask/gasmask.yml index 1d64b3171f5..b6c90b1caee 100644 --- a/Resources/Prototypes/_Forge/Entities/Clothing/Mask/gasmask.yml +++ b/Resources/Prototypes/_Forge/Entities/Clothing/Mask/gasmask.yml @@ -27,6 +27,54 @@ - type: Clothing sprite: Forge/Clothing/Mask/empire.rsi +# region Praetorian +- type: entity + parent: ClothingMaskPullableBase + id: ClothingMaskGasEmpirePraetorian + name: empire praetorian gas mask + suffix: Empire, Praetorian + description: A praetorian guard gas mask. + components: + - type: Item + size: Tiny + - type: Sprite + sprite: Forge/Clothing/Mask/Pretorian_Mask_Regular.rsi + - type: Clothing + sprite: Forge/Clothing/Mask/Pretorian_Mask_Regular.rsi + - type: BreathMask + - type: IdentityBlocker + - type: Tag + tags: + - HamsterWearable + - WhitelistChameleon + - type: HideLayerClothing + slots: + - Hair + - FacialHair + - Snout + hideOnToggle: true + - type: Armor + modifiers: + coefficients: + Blunt: 0.95 + Slash: 0.95 + Piercing: 0.95 + Heat: 0.95 + - type: FlashImmunity + - type: EyeProtection + +- type: entity + parent: ClothingMaskGasEmpirePraetorian + id: ClothingMaskGasEmpirePraetorianOfficer + name: empire praetorian officer gas mask + suffix: Empire, Praetorian, Officer + description: An officer-variant praetorian gas mask. + components: + - type: Sprite + sprite: Forge/Clothing/Mask/Pretorian_Mask_Officer.rsi + - type: Clothing + sprite: Forge/Clothing/Mask/Pretorian_Mask_Officer.rsi + # region Company - type: entity parent: ClothingMaskGasSecurity diff --git a/Resources/Prototypes/_Forge/Entities/Clothing/Neck/empire_mantles.yml b/Resources/Prototypes/_Forge/Entities/Clothing/Neck/empire_mantles.yml new file mode 100644 index 00000000000..c9ee75dde40 --- /dev/null +++ b/Resources/Prototypes/_Forge/Entities/Clothing/Neck/empire_mantles.yml @@ -0,0 +1,23 @@ +- type: entity + parent: ClothingNeckBase + id: ClothingNeckMantleEmpire + name: empire mantle + suffix: Empire, Praetorian + description: A long imperial mantle that opens when the wearer takes items in hand. + components: + - type: Sprite + sprite: Forge/Clothing/Neck/mantles/empire/Regular_Mantle.rsi + - type: Clothing + sprite: Forge/Clothing/Neck/mantles/empire/Regular_Mantle.rsi + - type: HandsOpenMantleClothing + +- type: entity + parent: ClothingNeckMantleEmpire + id: ClothingNeckMantleEmpireOfficer + name: imperial officer mantle + suffix: Empire, Praetorian, Officer + components: + - type: Sprite + sprite: Forge/Clothing/Neck/mantles/empire/Officer_Mantle.rsi + - type: Clothing + sprite: Forge/Clothing/Neck/mantles/empire/Officer_Mantle.rsi diff --git a/Resources/Prototypes/_Forge/Entities/Clothing/OuterClothing/Hardsuits/empire.yml b/Resources/Prototypes/_Forge/Entities/Clothing/OuterClothing/Hardsuits/empire.yml index 66b936095f7..4ffe19d9535 100644 --- a/Resources/Prototypes/_Forge/Entities/Clothing/OuterClothing/Hardsuits/empire.yml +++ b/Resources/Prototypes/_Forge/Entities/Clothing/OuterClothing/Hardsuits/empire.yml @@ -329,6 +329,50 @@ price: 12500 vendPrice: 5000 +# region RI-22 Praetorian +- type: entity + parent: ClothingOuterHardsuitRI22 + id: ClothingOuterHardsuitEmpirePraetorian + name: RI-22p battle hardsuit + suffix: Empire, Praetorian + description: A RI-22p-pattern hardsuit issued to Imperial Praetorian guards. Specialized in bullet protection. + components: + - type: Sprite + sprite: Forge/Clothing/OuterClothing/Hardsuits/empire_praetorian.rsi + - type: Clothing + sprite: Forge/Clothing/OuterClothing/Hardsuits/empire_praetorian.rsi + equippedState: equipped-OUTHERCLOTH + - type: ToggleableClothing + requiredSlot: outerclothing + blockUnequipWhenAttached: false + replaceCurrentClothing: true + clothingPrototypes: + head: ClothingHeadHelmetHardsuitEmpirePraetorian + helmetcover: ClothingHeadHelmetCoverBlock + helmetattachment: ClothingHeadHelmetAttachmentBlock + +# region RI-22 Praetorian Officer +- type: entity + parent: ClothingOuterHardsuitRI22 + id: ClothingOuterHardsuitEmpirePraetorianOfficer + name: RI-22pc battle hardsuit + suffix: Empire, Praetorian, Officer + description: A RI-22pc-pattern hardsuit issued to Imperial Praetorian officers. Specialized in bullet protection. + components: + - type: Sprite + sprite: Forge/Clothing/OuterClothing/Hardsuits/empire_praetorian_officer.rsi + - type: Clothing + sprite: Forge/Clothing/OuterClothing/Hardsuits/empire_praetorian_officer.rsi + equippedState: equipped-OUTHERCLOTH + - type: ToggleableClothing + requiredSlot: outerclothing + blockUnequipWhenAttached: false + replaceCurrentClothing: true + clothingPrototypes: + head: ClothingHeadHelmetHardsuitEmpirePraetorianOfficer + helmetcover: ClothingHeadHelmetCoverBlock + helmetattachment: ClothingHeadHelmetAttachmentBlock + # region ~HV~RI-7 Heavy - type: entity parent: [ClothingOuterHardsuitJuggernaut, BaseFactionGearOtherFactionT3] diff --git a/Resources/Prototypes/_Forge/Entities/Clothing/Uniforms/jumpsuits.yml b/Resources/Prototypes/_Forge/Entities/Clothing/Uniforms/jumpsuits.yml index 1ee14629717..260224bf253 100644 --- a/Resources/Prototypes/_Forge/Entities/Clothing/Uniforms/jumpsuits.yml +++ b/Resources/Prototypes/_Forge/Entities/Clothing/Uniforms/jumpsuits.yml @@ -100,9 +100,9 @@ - type: entity parent: ClothingUniformBase - id: ClothingUniformJumpsuitPraetorian - name: praetorian uniform - description: Empire praetorian uniform. + id: ClothingUniformJumpsuitPraetor + name: praetor uniform + description: Empire praetor uniform. components: - type: Sprite sprite: Forge/Clothing/Uniforms/Jumpsuits/empire_pre.rsi @@ -111,9 +111,9 @@ - type: entity parent: ClothingUniformBase - id: ClothingUniformJumpsuitPraetorianAlt - name: praetorian uniform - description: Empire praetorian uniform. + id: ClothingUniformJumpsuitPraetorAlt + name: praetor uniform + description: Empire praetor uniform. components: - type: Sprite sprite: Forge/Clothing/Uniforms/Jumpsuits/empire_pre_alt.rsi diff --git a/Resources/Prototypes/_Forge/Entities/Markers/Spawners/jobs.yml b/Resources/Prototypes/_Forge/Entities/Markers/Spawners/jobs.yml index 1a4076aa06e..5bfb508dbbc 100644 --- a/Resources/Prototypes/_Forge/Entities/Markers/Spawners/jobs.yml +++ b/Resources/Prototypes/_Forge/Entities/Markers/Spawners/jobs.yml @@ -37,6 +37,15 @@ - type: SpawnPoint job_id: Inquisitor +- type: entity + id: ForgeSpawnPointPraetorian + parent: ForgeSpawnPointPraefect + name: spawn point Praetorian + suffix: Empire, Praetorian + components: + - type: SpawnPoint + job_id: Praetorian + - type: entity id: ForgeSpawnPointConsul parent: ForgeSpawnPointPraefect @@ -46,12 +55,12 @@ job_id: Consul - type: entity - id: ForgeSpawnPointPraetorian + id: ForgeSpawnPointPraetor parent: ForgeSpawnPointPraefect - name: spawn point Praetorian + name: spawn point Praetor components: - type: SpawnPoint - job_id: Praetorian + job_id: Praetor - type: entity id: ForgeSpawnPointTessarian diff --git a/Resources/Prototypes/_Forge/Entities/Objects/Devices/pda.yml b/Resources/Prototypes/_Forge/Entities/Objects/Devices/pda.yml index 256ec3615e1..dc3b40013fe 100644 --- a/Resources/Prototypes/_Forge/Entities/Objects/Devices/pda.yml +++ b/Resources/Prototypes/_Forge/Entities/Objects/Devices/pda.yml @@ -110,6 +110,84 @@ - type: PdaBorderColor borderColor: "#ab7a52" +- type: entity + parent: BaseEmpirePDA + id: EmpirePraetorianPDA + name: praetorian PDA + suffix: Empire, Praetorian + components: + - type: Pda + id: EmpirePraetorianIDCard + - type: Sprite + sprite: Forge/Objects/Devices/pda.rsi + layers: + - map: [ "enum.PdaVisualLayers.Base" ] + state: pda-empire-praetorian + - sprite: _Mono/Objects/Devices/pda.rsi + state: light_overlay + map: [ "enum.PdaVisualLayers.Flashlight" ] + shader: unshaded + visible: false + - sprite: _Mono/Objects/Devices/pda.rsi + state: id_overlay + map: [ "enum.PdaVisualLayers.IdLight" ] + shader: unshaded + visible: false + - type: Appearance + appearanceDataInit: + enum.PdaVisuals.PdaType: + !type:String + pda-empire-praetorian + - type: Geiger # Mono + showExamine: true + showControl: true + isEnabled: true + attachedToSuit: true # Mono + - type: PdaBorderColor + borderColor: "#ab7a52" + - type: Icon + sprite: Forge/Objects/Devices/pda.rsi + state: pda-empire-praetorian + +- type: entity + parent: BaseEmpirePDA + id: EmpirePraetorianOfficerPDA + name: praetorian officer PDA + suffix: Empire, Praetorian, Officer + components: + - type: Pda + id: EmpirePraetorianOfficerIDCard + - type: Sprite + sprite: Forge/Objects/Devices/pda.rsi + layers: + - map: [ "enum.PdaVisualLayers.Base" ] + state: pda-empire-praetorian-officer + - sprite: _Mono/Objects/Devices/pda.rsi + state: light_overlay + map: [ "enum.PdaVisualLayers.Flashlight" ] + shader: unshaded + visible: false + - sprite: _Mono/Objects/Devices/pda.rsi + state: id_overlay + map: [ "enum.PdaVisualLayers.IdLight" ] + shader: unshaded + visible: false + - type: Appearance + appearanceDataInit: + enum.PdaVisuals.PdaType: + !type:String + pda-empire-praetorian-officer + - type: Geiger # Mono + showExamine: true + showControl: true + isEnabled: true + attachedToSuit: true # Mono + - type: PdaBorderColor + borderColor: "#ab7a52" + - type: Icon + sprite: Forge/Objects/Devices/pda.rsi + state: pda-empire-praetorian-officer + #region Renegates - type: entity parent: BasePDA diff --git a/Resources/Prototypes/_Forge/Entities/Objects/Misc/identification_cards.yml b/Resources/Prototypes/_Forge/Entities/Objects/Misc/identification_cards.yml index c220d76d53a..2c00b7a3848 100644 --- a/Resources/Prototypes/_Forge/Entities/Objects/Misc/identification_cards.yml +++ b/Resources/Prototypes/_Forge/Entities/Objects/Misc/identification_cards.yml @@ -22,7 +22,7 @@ - state: imperial - state: idempgold - type: PresetIdCard - job: Praetorian + job: Praetor - type: entity parent: IDCardStandard @@ -50,6 +50,36 @@ - type: PresetIdCard job: Praefect +- type: entity + parent: IDCardStandard + id: EmpirePraetorianIDCard + name: empire praetorian ID card + suffix: Empire, Praetorian + components: + - type: Sprite + sprite: Forge/Objects/Misc/id_cards.rsi + layers: + - state: imperial + - state: idemppraetorian + - type: PresetIdCard + job: Praetorian + +- type: entity + parent: IDCardStandard + id: EmpirePraetorianOfficerIDCard + name: empire praetorian officer ID card + suffix: Empire, Praetorian, Officer + components: + - type: Sprite + sprite: Forge/Objects/Misc/id_cards.rsi + layers: + - state: praetorian + - state: idemppraetorianofficer + - type: PresetIdCard + job: Praetorian + - type: ForgeIdCardJobIconOverride + jobIcon: JobIconPraetorianOfficer + #region Renegates - type: entity diff --git a/Resources/Prototypes/_Forge/Entities/Objects/Weapons/Melee/e_spear.yml b/Resources/Prototypes/_Forge/Entities/Objects/Weapons/Melee/e_spear.yml new file mode 100644 index 00000000000..7c995f3837c --- /dev/null +++ b/Resources/Prototypes/_Forge/Entities/Objects/Weapons/Melee/e_spear.yml @@ -0,0 +1,160 @@ +- type: entity + name: empire energy spear + parent: BaseMeleeWeaponEnergy + id: EmpireEnergySpear + suffix: Empire, Praetorian + description: An imperial energy spear with a single plasma blade. + components: + - type: ItemToggle + onUse: false # wielding events control it instead + onActivate: false # prevents the weapon from being able to be turned on when it is on the ground + soundActivate: + path: /Audio/Weapons/ebladeon.ogg + params: + volume: 3 + soundDeactivate: + path: /Audio/Weapons/ebladeoff.ogg + params: + volume: 3 + - type: ItemToggleMeleeWeapon + activatedSoundOnSwing: + path: /Audio/Weapons/eblademiss.ogg + params: + volume: 3 + variation: 0.250 + activatedDamage: + types: + Slash: 20 + Heat: 30 + Structural: 100 + - type: ItemToggleActiveSound + activeSound: + path: /Audio/Weapons/ebladehum.ogg + params: + volume: 3 + - type: ComponentToggler + components: + - type: Sharp + - type: DisarmMalus + malus: 0.7 + - type: Execution + doAfterDuration: 4.0 + - type: Wieldable + wieldSound: null # esword light sound instead + - type: MeleeRequiresWield + - type: MeleeWeapon + heavyStaminaCost: 0 # goob edit + wideAnimationRotation: -90 + attackRate: 1.04 + range: 2 + angle: 0 + animation: WeaponArcThrust + wideAnimation: WeaponArcSlash + damage: + types: + Blunt: 4.5 + soundHit: + path: /Audio/Weapons/bladeslice.ogg + - type: EnergySword + activatedColor: "#FFFFFF" + colorOptions: [] + blockHacking: true + - type: ItemTogglePointLight + toggleableVisualsColorModulatesLights: false + - type: PointLight + enabled: false + radius: 2 + energy: 2 + color: "#ffe17a" + netsync: false + - type: Sprite + sprite: Forge/Objects/Weapons/Melee/empire_e_spear.rsi + layers: + - state: icon-off + - state: icon-on-regular + color: "#FFFFFF" + visible: false + shader: unshaded + map: [ "blade" ] + - type: ToggleableVisuals + spriteLayer: blade + inhandVisuals: + left: + - state: inhand-left-blade + shader: unshaded + right: + - state: inhand-right-blade + shader: unshaded + - type: Clothing + sprite: Forge/Objects/Weapons/Melee/empire_e_spear_inhands.rsi + slots: + - back + - suitStorage + - type: ItemToggleSize + activatedSize: Normal + deactivatedSize: Normal + activatedShape: + - 0,0,1,5 # 2 wide, 6 tall; too large for pockets + deactivatedShape: + - 0,0,1,5 + - type: Item + size: Normal # above Small so it cannot go in pockets + shape: + - 0,0,1,5 + storedSprite: + sprite: Forge/Objects/Weapons/Melee/empire_e_spear.rsi + state: icon-off + storedRotation: 0 + storedOffset: 3, -9 + sprite: Forge/Objects/Weapons/Melee/empire_e_spear_inhands.rsi + - type: ForgeScaledStorageItem + scale: 2.3, 1.5 + offsetWide: 2, 7 + - type: Reflect + reflectProb: 0.25 + spread: 75 + reflects: + - Energy + - NonEnergy + - type: PirateBountyItem # Mono + id: TSFEnergyWeapon + +- type: entity + parent: EmpireEnergySpear + id: EmpireEnergySpearOfficer + suffix: Empire, Praetorian, Officer + description: An officer-variant imperial energy spear with a blue plasma blade. + components: + - type: EnergySword + activatedColor: "#FFFFFF" + colorOptions: [] + blockHacking: true + - type: PointLight + color: "#66ccff" + - type: Sprite + sprite: Forge/Objects/Weapons/Melee/empire_e_spear_officer.rsi + layers: + - state: icon-off + - state: icon-on-officer + color: "#FFFFFF" + visible: false + shader: unshaded + map: [ "blade" ] + - type: ToggleableVisuals + spriteLayer: blade + inhandVisuals: + left: + - state: inhand-left-blade + shader: unshaded + right: + - state: inhand-right-blade + shader: unshaded + - type: Clothing + sprite: Forge/Objects/Weapons/Melee/empire_e_spear_officer_inhands.rsi + - type: Item + sprite: Forge/Objects/Weapons/Melee/empire_e_spear_officer_inhands.rsi + storedSprite: + sprite: Forge/Objects/Weapons/Melee/empire_e_spear_officer.rsi + state: icon-off + storedRotation: 0 + storedOffset: 0, 2 \ No newline at end of file diff --git a/Resources/Prototypes/_Forge/Entities/Structures/Machines/Computers/computers_job_preset.yml b/Resources/Prototypes/_Forge/Entities/Structures/Machines/Computers/computers_job_preset.yml index fc7f31c4354..9612aec52cf 100644 --- a/Resources/Prototypes/_Forge/Entities/Structures/Machines/Computers/computers_job_preset.yml +++ b/Resources/Prototypes/_Forge/Entities/Structures/Machines/Computers/computers_job_preset.yml @@ -233,7 +233,7 @@ # - Consul # - Tessarian - EmpireSmallInquisitor - - Praetorian + - Praetor - EmpireTechnican - EmpireApotek - Auxilia diff --git a/Resources/Prototypes/_Forge/Loadouts/Empire/jumpsuits.yml b/Resources/Prototypes/_Forge/Loadouts/Empire/jumpsuits.yml index b822596bd0b..c8e9b3feb52 100644 --- a/Resources/Prototypes/_Forge/Loadouts/Empire/jumpsuits.yml +++ b/Resources/Prototypes/_Forge/Loadouts/Empire/jumpsuits.yml @@ -36,18 +36,18 @@ equipment: jumpsuit: ClothingUniformJumpsuitAuxiliaAlt -# region Praetorian +# region Praetor - type: loadout - id: ClothingUniformJumpsuitPraetorian + id: ClothingUniformJumpsuitPraetor price: 0 equipment: - jumpsuit: ClothingUniformJumpsuitPraetorian + jumpsuit: ClothingUniformJumpsuitPraetor - type: loadout - id: ClothingUniformJumpsuitPraetorianAlt + id: ClothingUniformJumpsuitPraetorAlt price: 0 equipment: - jumpsuit: ClothingUniformJumpsuitPraetorianAlt + jumpsuit: ClothingUniformJumpsuitPraetorAlt # region Tessarian - type: loadout diff --git a/Resources/Prototypes/_Forge/Loadouts/Empire/loadout_groups.yml b/Resources/Prototypes/_Forge/Loadouts/Empire/loadout_groups.yml index 9da002204d1..0d0ec2a32d7 100644 --- a/Resources/Prototypes/_Forge/Loadouts/Empire/loadout_groups.yml +++ b/Resources/Prototypes/_Forge/Loadouts/Empire/loadout_groups.yml @@ -153,16 +153,16 @@ fallbacks: - ClothingUniformJumpsuitTessarianAlt -# region Praetorian +# region Praetor - type: loadoutGroup - id: EmpirePraetorianJumpsuit + id: EmpirePraetorJumpsuit name: loadout-group-contractor-jumpsuit minLimit: 1 loadouts: - - ClothingUniformJumpsuitPraetorianAlt - - ClothingUniformJumpsuitPraetorian + - ClothingUniformJumpsuitPraetorAlt + - ClothingUniformJumpsuitPraetor fallbacks: - - ClothingUniformJumpsuitPraetorianAlt + - ClothingUniformJumpsuitPraetorAlt subgroups: - EmpireJumpsuit diff --git a/Resources/Prototypes/_Forge/Loadouts/Empire/pda.yml b/Resources/Prototypes/_Forge/Loadouts/Empire/pda.yml index 35225c9fcc3..5417d1e3ed5 100644 --- a/Resources/Prototypes/_Forge/Loadouts/Empire/pda.yml +++ b/Resources/Prototypes/_Forge/Loadouts/Empire/pda.yml @@ -53,3 +53,27 @@ - EmpireCommanderPDA fallbacks: - EmpireCommanderPDA + +- type: loadout + id: EmpirePraetorianPDA + equipment: + id: EmpirePraetorianPDA + +- type: loadout + id: EmpirePraetorianOfficerPDA + effects: + - !type:GroupLoadoutEffect + proto: PraetorianOfficerUnlock + equipment: + id: EmpirePraetorianOfficerPDA + +- type: loadoutGroup + id: EmpirePraetorianPDA + name: loadout-group-contractor-id + minLimit: 1 + maxLimit: 1 + loadouts: + - EmpirePraetorianPDA + - EmpirePraetorianOfficerPDA + fallbacks: + - EmpirePraetorianPDA diff --git a/Resources/Prototypes/_Forge/Loadouts/Empire/praetorian.yml b/Resources/Prototypes/_Forge/Loadouts/Empire/praetorian.yml new file mode 100644 index 00000000000..19a708be912 --- /dev/null +++ b/Resources/Prototypes/_Forge/Loadouts/Empire/praetorian.yml @@ -0,0 +1,143 @@ +# region Praetorian loadouts + +- type: loadoutEffectGroup + id: PraetorianOfficerUnlock + effects: + - !type:JobRequirementLoadoutEffect + requirement: + !type:RoleTimeRequirement + role: JobPraetorianGuard + time: 180000 # 50 hours + +- type: loadout + id: ClothingNeckMantleEmpireLoadout + price: 0 + equipment: + neck: ClothingNeckMantleEmpire + +- type: loadout + id: ClothingNeckMantleEmpireOfficerLoadout + price: 0 + effects: + - !type:GroupLoadoutEffect + proto: PraetorianOfficerUnlock + equipment: + neck: ClothingNeckMantleEmpireOfficer + +- type: loadout + id: ClothingOuterHardsuitEmpirePraetorianLoadout + price: 0 + equipment: + outerClothing: ClothingOuterHardsuitEmpirePraetorian + +- type: loadout + id: ClothingOuterHardsuitEmpirePraetorianOfficerLoadout + price: 0 + effects: + - !type:GroupLoadoutEffect + proto: PraetorianOfficerUnlock + equipment: + outerClothing: ClothingOuterHardsuitEmpirePraetorianOfficer + +- type: loadout + id: EmpireEnergySpearLoadout + price: 0 + storage: + back: + - EmpireEnergySpear + +- type: loadout + id: EmpireEnergySpearOfficerLoadout + price: 0 + effects: + - !type:GroupLoadoutEffect + proto: PraetorianOfficerUnlock + storage: + back: + - EmpireEnergySpearOfficer + +- type: loadout + id: EmpirePraetorianIDCardLoadout + equipment: + id: EmpirePraetorianIDCard + +- type: loadout + id: EmpirePraetorianClothingMask + price: 0 + equipment: + mask: ClothingMaskGasEmpirePraetorian + +- type: loadout + id: EmpirePraetorianOfficerClothingMask + price: 0 + effects: + - !type:GroupLoadoutEffect + proto: PraetorianOfficerUnlock + equipment: + mask: ClothingMaskGasEmpirePraetorianOfficer + +# region Praetorian groups + +- type: loadoutGroup + id: EmpirePraetorianFace + name: loadout-group-contractor-face + minLimit: 1 + maxLimit: 1 + loadouts: + - EmpirePraetorianClothingMask + - EmpirePraetorianOfficerClothingMask + fallbacks: + - EmpirePraetorianClothingMask + +- type: loadoutGroup + id: EmpireNeckPraetorian + name: loadout-group-contractor-neck + minLimit: 1 + maxLimit: 1 + loadouts: + - ClothingNeckMantleEmpireLoadout + - ClothingNeckMantleEmpireOfficerLoadout + fallbacks: + - ClothingNeckMantleEmpireLoadout + +- type: loadoutGroup + id: EmpirePraetorianJumpsuit + name: loadout-group-contractor-jumpsuit + minLimit: 1 + loadouts: + - ClothingUniformJumpsuitPraetorAlt + - ClothingUniformJumpsuitPraetor + fallbacks: + - ClothingUniformJumpsuitPraetorAlt + +- type: loadoutGroup + id: EmpirePraetorianOuterClothing + name: loadout-group-contractor-outerclothing + minLimit: 1 + maxLimit: 1 + loadouts: + - ClothingOuterHardsuitEmpirePraetorianLoadout + - ClothingOuterHardsuitEmpirePraetorianOfficerLoadout + fallbacks: + - ClothingOuterHardsuitEmpirePraetorianLoadout + +- type: loadoutGroup + id: EmpirePraetorianWeapon + name: loadout-group-weapon + minLimit: 1 + maxLimit: 1 + loadouts: + - EmpireEnergySpearLoadout + - EmpireEnergySpearOfficerLoadout + fallbacks: + - EmpireEnergySpearLoadout + +- type: loadoutGroup + id: EmpirePraetorianID + name: loadout-group-contractor-id + hidden: true + minLimit: 1 + loadouts: + - EmpirePraetorianIDCardLoadout + fallbacks: + - EmpirePraetorianIDCardLoadout diff --git a/Resources/Prototypes/_Forge/Loadouts/Empire/role_loadout.yml b/Resources/Prototypes/_Forge/Loadouts/Empire/role_loadout.yml index b5a5b96017a..7003ac08d90 100644 --- a/Resources/Prototypes/_Forge/Loadouts/Empire/role_loadout.yml +++ b/Resources/Prototypes/_Forge/Loadouts/Empire/role_loadout.yml @@ -54,15 +54,15 @@ - EmpireMag canCustomizeName: true -# region Praetorian +# region Praetor - type: roleLoadout - id: JobPraetorian # Officer + id: JobPraetor # Officer groups: - EmpireNeck - EmpireFace - EmpireGlasses - EmpireBalaclava - - EmpirePraetorianJumpsuit + - EmpirePraetorJumpsuit - EmpireOuterClothing - EmpireBelt - EmpireGloves @@ -222,3 +222,28 @@ - EmpireFirearm - EmpireMag canCustomizeName: true + +# region Praetorian +- type: roleLoadout + id: JobPraetorian + groups: + - EmpireNeckPraetorian + - EmpirePraetorianFace + - EmpireGlasses + - EmpireBalaclava + - EmpirePraetorianJumpsuit + - EmpirePraetorianOuterClothing + - EmpireBelt + - EmpireGloves + - EmpireShoes + - EmpireBackpack + - EmpireEarsCommand + - EmpireBoxSurvival + - EmpirePraetorianPDA + - ContractorWallet + - ContractorCartridge + - ContractorEncryptionKey + - ContractorFun + - ContractorTrinkets + - EmpirePraetorianWeapon + canCustomizeName: true diff --git a/Resources/Prototypes/_Forge/PointsOflnterest/EmpireOutpost.yml b/Resources/Prototypes/_Forge/PointsOflnterest/EmpireOutpost.yml index bc9ee3601ad..37e06037b32 100644 --- a/Resources/Prototypes/_Forge/PointsOflnterest/EmpireOutpost.yml +++ b/Resources/Prototypes/_Forge/PointsOflnterest/EmpireOutpost.yml @@ -51,8 +51,9 @@ Consul: [ 1, 1 ] Arbiter: [ 1, 1 ] Cardinal: [ 1, 1 ] + Praetorian: [ 2, 2 ] # Tessarian: [ 2, 2 ] - Praetorian: [ 3, 3] + Praetor: [ 3, 3 ] Auxilia: [ -1, -1 ] Neophyte: [ -1, -1] - type: StationDeadDropReporting diff --git a/Resources/Prototypes/_Forge/Recipes/Lathes/Factions/Empire/clothing.yml b/Resources/Prototypes/_Forge/Recipes/Lathes/Factions/Empire/clothing.yml index 59dcd81ffba..f7efa8e66e8 100644 --- a/Resources/Prototypes/_Forge/Recipes/Lathes/Factions/Empire/clothing.yml +++ b/Resources/Prototypes/_Forge/Recipes/Lathes/Factions/Empire/clothing.yml @@ -39,8 +39,8 @@ - type: latheRecipe parent: BaseJumpsuitRecipe - id: ClothingUniformJumpsuitPraetorian - result: ClothingUniformJumpsuitPraetorian + id: ClothingUniformJumpsuitPraetor + result: ClothingUniformJumpsuitPraetor materials: Cloth: 300 Durathread: 100 @@ -49,8 +49,8 @@ - type: latheRecipe parent: BaseJumpsuitRecipe - id: ClothingUniformJumpsuitPraetorianAlt - result: ClothingUniformJumpsuitPraetorianAlt + id: ClothingUniformJumpsuitPraetorAlt + result: ClothingUniformJumpsuitPraetorAlt materials: Cloth: 300 Durathread: 100 diff --git a/Resources/Prototypes/_Forge/Recipes/Lathes/Packs/Empire/empire.yml b/Resources/Prototypes/_Forge/Recipes/Lathes/Packs/Empire/empire.yml index 2df01bb5626..8f29635c1e2 100644 --- a/Resources/Prototypes/_Forge/Recipes/Lathes/Packs/Empire/empire.yml +++ b/Resources/Prototypes/_Forge/Recipes/Lathes/Packs/Empire/empire.yml @@ -9,8 +9,8 @@ - ClothingUniformJumpsuitNeophyteAlt - ClothingUniformJumpsuitAuxilia - ClothingUniformJumpsuitAuxiliaAlt - - ClothingUniformJumpsuitPraetorian - - ClothingUniformJumpsuitPraetorianAlt + - ClothingUniformJumpsuitPraetor + - ClothingUniformJumpsuitPraetorAlt - ClothingUniformJumpsuitTessarian - ClothingUniformJumpsuitTessarianAlt # Outer's diff --git a/Resources/Prototypes/_Forge/Research/Empire/equipment.yml b/Resources/Prototypes/_Forge/Research/Empire/equipment.yml index 17437f6aede..c06e7044f71 100644 --- a/Resources/Prototypes/_Forge/Research/Empire/equipment.yml +++ b/Resources/Prototypes/_Forge/Research/Empire/equipment.yml @@ -12,8 +12,8 @@ - ClothingUniformJumpsuitNeophyteAlt - ClothingUniformJumpsuitAuxilia - ClothingUniformJumpsuitAuxiliaAlt - - ClothingUniformJumpsuitPraetorian - - ClothingUniformJumpsuitPraetorianAlt + - ClothingUniformJumpsuitPraetor + - ClothingUniformJumpsuitPraetorAlt - ClothingUniformJumpsuitTessarian - ClothingUniformJumpsuitTessarianAlt - ClothingOuterCoatEmpireWindbreaker diff --git a/Resources/Prototypes/_Forge/Roles/Jobs/Empire/Arbiter.yml b/Resources/Prototypes/_Forge/Roles/Jobs/Empire/Arbiter.yml index f0112f14af7..1dfc9ac8d46 100644 --- a/Resources/Prototypes/_Forge/Roles/Jobs/Empire/Arbiter.yml +++ b/Resources/Prototypes/_Forge/Roles/Jobs/Empire/Arbiter.yml @@ -27,8 +27,8 @@ assignedCompany: Imperial assignedNationality: Imperial supervisors: job-supervisors-praefect - weight: 40 - displayWeight: 40 + weight: 26 + displayWeight: 26 canBeAntag: false accessGroups: - CommandEmpireAccess diff --git a/Resources/Prototypes/_Forge/Roles/Jobs/Empire/Cardinal.yml b/Resources/Prototypes/_Forge/Roles/Jobs/Empire/Cardinal.yml index 58d61195618..2a7bcf51add 100644 --- a/Resources/Prototypes/_Forge/Roles/Jobs/Empire/Cardinal.yml +++ b/Resources/Prototypes/_Forge/Roles/Jobs/Empire/Cardinal.yml @@ -27,8 +27,8 @@ assignedCompany: Imperial assignedNationality: Imperial supervisors: job-supervisors-praefect - weight: 40 - displayWeight: 40 + weight: 26 + displayWeight: 26 canBeAntag: false accessGroups: - CommandEmpireAccess diff --git a/Resources/Prototypes/_Forge/Roles/Jobs/Empire/Praetor.yml b/Resources/Prototypes/_Forge/Roles/Jobs/Empire/Praetor.yml new file mode 100644 index 00000000000..a21de51d38b --- /dev/null +++ b/Resources/Prototypes/_Forge/Roles/Jobs/Empire/Praetor.yml @@ -0,0 +1,56 @@ +- type: job + id: Praetor # Officer + name: forge-job-name-praetor + description: forge-job-desc-praetor + supervisors: job-supervisors-tessarian + playTimeTracker: JobPraetorian + icon: JobIconEmpirePraetor + requirements: + - !type:OverallPlaytimeRequirement + time: 64800 # 18 hours + - !type:DepartmentTimeRequirement + department: Empire + time: 43200 # 12 hours + - !type:SpeciesRequirement + species: + - Human + - Dwarf + - !type:AgeRequirement + requiredAge: 28 + - !type:SexRequirement + sex: + - Male + - Female + # alternateRequirementSets: + # longerPlaytimeLessSec: + # - !type:RoleTimeRequirement + # role: # Позже добавить альтернативные тебования времени за аналогичную роль у ТСФ + # time: 43200 # 12 hours + startingGear: PraetorGear + assignedCompany: Imperial + assignedNationality: Imperial + weight: 20 + displayWeight: 20 + canBeAntag: false + setPreference: true + accessGroups: + - SpecialEmpireAccess + special: + - !type:AddComponentSpecial + components: + - type: NpcFactionMember + factions: + - Empire + - !type:AddImplantSpecial + implants: [ ImplantGuard , EmpireTrackingImplant] + +- type: startingGear + id: PraetorGear + # equipment: + # ears: + # belt: + # pocket1: + # pocket2: + # storage: + # back: + # - RadioHandheldNF diff --git a/Resources/Prototypes/_Forge/Roles/Jobs/Empire/Praetorian.yml b/Resources/Prototypes/_Forge/Roles/Jobs/Empire/Praetorian.yml index ab23d808eae..9fc47ee7c57 100644 --- a/Resources/Prototypes/_Forge/Roles/Jobs/Empire/Praetorian.yml +++ b/Resources/Prototypes/_Forge/Roles/Jobs/Empire/Praetorian.yml @@ -1,40 +1,44 @@ - type: job - id: Praetorian # Officer + id: Praetorian name: forge-job-name-praetorian description: forge-job-desc-praetorian - supervisors: job-supervisors-tessarian - playTimeTracker: JobPraetorian - icon: JobIconEmpirePraetorian + playTimeTracker: JobPraetorianGuard + supervisors: job-supervisors-praefect requirements: - !type:OverallPlaytimeRequirement - time: 64800 # 18 hours + time: 129600 # 36 hours - !type:DepartmentTimeRequirement department: Empire - time: 43200 # 12 hours + time: 108000 # 30 hours + - !type:RoleTimeRequirement + role: JobArbiter + time: 21600 # 6 hours + - !type:RoleTimeRequirement + role: JobCardinal + time: 21600 # 6 hours - !type:SpeciesRequirement species: - Human - - Dwarf - !type:AgeRequirement - requiredAge: 28 + requiredAge: 40 - !type:SexRequirement sex: - Male - - Female - # alternateRequirementSets: - # longerPlaytimeLessSec: - # - !type:RoleTimeRequirement - # role: # Позже добавить альтернативные тебования времени за аналогичную роль у ТСФ - # time: 43200 # 12 hours + whitelisted: true startingGear: PraetorianGear + alwaysUseSpawner: true + icon: JobIconPraetorian assignedCompany: Imperial assignedNationality: Imperial - weight: 20 - displayWeight: 20 + weight: 25 + displayWeight: 25 canBeAntag: false setPreference: true + access: + - EmpireInqusitor + - EmpireSmallInq accessGroups: - - SpecialEmpireAccess + - CommandEmpireAccess special: - !type:AddComponentSpecial components: @@ -42,15 +46,10 @@ factions: - Empire - !type:AddImplantSpecial - implants: [ ImplantGuard , EmpireTrackingImplant] + implants: [ ImplantGuard , EmpireTrackingImplant ] - type: startingGear id: PraetorianGear - # equipment: - # ears: - # belt: - # pocket1: - # pocket2: - # storage: - # back: - # - RadioHandheldNF + storage: + back: + - PinpointerUniversal diff --git a/Resources/Prototypes/_Forge/Roles/Jobs/Empire/Presets/PraetorianOfficer.yml b/Resources/Prototypes/_Forge/Roles/Jobs/Empire/Presets/PraetorianOfficer.yml new file mode 100644 index 00000000000..02d1eac693e --- /dev/null +++ b/Resources/Prototypes/_Forge/Roles/Jobs/Empire/Presets/PraetorianOfficer.yml @@ -0,0 +1,15 @@ +- type: job + id: PraetorianOfficer + name: forge-job-name-praetorian-officer + description: forge-job-desc-praetorian + playTimeTracker: JobPraetorianOfficer + icon: JobIconPraetorianOfficer + setPreference: false + canBeAntag: false + assignedCompany: Imperial + assignedNationality: Imperial + access: + - EmpireInqusitor + - EmpireSmallInq + accessGroups: + - CommandEmpireAccess diff --git a/Resources/Prototypes/_Forge/Roles/Jobs/departments.yml b/Resources/Prototypes/_Forge/Roles/Jobs/departments.yml index 966deef34e4..98331ba4d4a 100644 --- a/Resources/Prototypes/_Forge/Roles/Jobs/departments.yml +++ b/Resources/Prototypes/_Forge/Roles/Jobs/departments.yml @@ -12,6 +12,7 @@ - Arbiter # Senior Officer: Sheriff - Cardinal # Senior Officer: idk what he do - Praetorian # Sub Officer + - Praetor # Sub Officer - EmpireSmallInquisitor # Sub Officer: Inquisitor squad # - EmpireOperator # Sub Officer: Drone Operator - Auxilia # Soldier diff --git a/Resources/Prototypes/_Forge/Roles/play_time_trackers.yml b/Resources/Prototypes/_Forge/Roles/play_time_trackers.yml index 1512499fc6b..77b962b0f6b 100644 --- a/Resources/Prototypes/_Forge/Roles/play_time_trackers.yml +++ b/Resources/Prototypes/_Forge/Roles/play_time_trackers.yml @@ -10,6 +10,12 @@ - type: playTimeTracker id: JobInquisitor +- type: playTimeTracker + id: JobPraetorianGuard + +- type: playTimeTracker + id: JobPraetorianOfficer + - type: playTimeTracker id: JobConsul diff --git a/Resources/Prototypes/_Forge/StatusIcon/job.yml b/Resources/Prototypes/_Forge/StatusIcon/job.yml index dc120e8c831..0a48211bcbc 100644 --- a/Resources/Prototypes/_Forge/StatusIcon/job.yml +++ b/Resources/Prototypes/_Forge/StatusIcon/job.yml @@ -17,11 +17,11 @@ - type: jobIcon parent: JobIcon - id: JobIconEmpirePraetorian + id: JobIconEmpirePraetor icon: sprite: /Textures/Forge/Interface/Misc/job_icons.rsi state: emp_pretor - jobName: forge-job-name-praetorian + jobName: forge-job-name-praetor - type: jobIcon parent: JobIcon @@ -47,6 +47,22 @@ state: emp_inq jobName: forge-job-name-inquisitor +- type: jobIcon + parent: JobIcon + id: JobIconPraetorian + icon: + sprite: /Textures/Forge/Interface/Misc/job_icons.rsi + state: emp_praetorian + jobName: forge-job-name-praetorian + +- type: jobIcon + parent: JobIcon + id: JobIconPraetorianOfficer + icon: + sprite: /Textures/Forge/Interface/Misc/job_icons.rsi + state: emp_praetorian_officer + jobName: forge-job-name-praetorian-officer + - type: jobIcon parent: JobIcon id: JobIconEmpirePraefect diff --git a/Resources/Prototypes/_NF/Maps/debug.yml b/Resources/Prototypes/_NF/Maps/debug.yml index 1d14e7234c9..54789b6efe4 100644 --- a/Resources/Prototypes/_NF/Maps/debug.yml +++ b/Resources/Prototypes/_NF/Maps/debug.yml @@ -67,10 +67,11 @@ Praefect: [ -1, -1 ] Consul: [ -1, -1 ] Inquisitor: [ -1, -1 ] + Praetorian: [ -1, -1 ] #Forge-Change Arbiter: [ -1, -1 ] Cardinal: [ -1, -1 ] # Tessarian: [ -1, -1 ] - Praetorian: [ -1, -1 ] + Praetor: [ -1, -1 ] #Forge-Change Auxilia: [ -1, -1 ] Neophyte: [ -1, -1 ] # Renegates diff --git a/Resources/Textures/Forge/Clothing/Head/Hardsuits/empire_praetorian.rsi/equipped-HELMET.png b/Resources/Textures/Forge/Clothing/Head/Hardsuits/empire_praetorian.rsi/equipped-HELMET.png new file mode 100644 index 00000000000..05cff8e8f4d Binary files /dev/null and b/Resources/Textures/Forge/Clothing/Head/Hardsuits/empire_praetorian.rsi/equipped-HELMET.png differ diff --git a/Resources/Textures/Forge/Clothing/Head/Hardsuits/empire_praetorian.rsi/icon.png b/Resources/Textures/Forge/Clothing/Head/Hardsuits/empire_praetorian.rsi/icon.png new file mode 100644 index 00000000000..79a6cc9c5b4 Binary files /dev/null and b/Resources/Textures/Forge/Clothing/Head/Hardsuits/empire_praetorian.rsi/icon.png differ diff --git a/Resources/Textures/Forge/Clothing/Head/Hardsuits/empire_praetorian.rsi/meta.json b/Resources/Textures/Forge/Clothing/Head/Hardsuits/empire_praetorian.rsi/meta.json new file mode 100644 index 00000000000..5af0ee5de57 --- /dev/null +++ b/Resources/Textures/Forge/Clothing/Head/Hardsuits/empire_praetorian.rsi/meta.json @@ -0,0 +1,18 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Created by ifi07 (Discord)", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Forge/Clothing/Head/Hardsuits/empire_praetorian_officer.rsi/equipped-HELMET.png b/Resources/Textures/Forge/Clothing/Head/Hardsuits/empire_praetorian_officer.rsi/equipped-HELMET.png new file mode 100644 index 00000000000..1fea152f035 Binary files /dev/null and b/Resources/Textures/Forge/Clothing/Head/Hardsuits/empire_praetorian_officer.rsi/equipped-HELMET.png differ diff --git a/Resources/Textures/Forge/Clothing/Head/Hardsuits/empire_praetorian_officer.rsi/meta.json b/Resources/Textures/Forge/Clothing/Head/Hardsuits/empire_praetorian_officer.rsi/meta.json new file mode 100644 index 00000000000..c23cd81cbc0 --- /dev/null +++ b/Resources/Textures/Forge/Clothing/Head/Hardsuits/empire_praetorian_officer.rsi/meta.json @@ -0,0 +1,15 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Created by ifi07 (Discord)", + "size": { + "x": 32, + "y": 40 + }, + "states": [ + { + "name": "equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Forge/Clothing/Head/Hardsuits/empire_praetorian_officer_item.rsi/icon-off.png b/Resources/Textures/Forge/Clothing/Head/Hardsuits/empire_praetorian_officer_item.rsi/icon-off.png new file mode 100644 index 00000000000..dcb3dd8eb84 Binary files /dev/null and b/Resources/Textures/Forge/Clothing/Head/Hardsuits/empire_praetorian_officer_item.rsi/icon-off.png differ diff --git a/Resources/Textures/Forge/Clothing/Head/Hardsuits/empire_praetorian_officer_item.rsi/icon-on.png b/Resources/Textures/Forge/Clothing/Head/Hardsuits/empire_praetorian_officer_item.rsi/icon-on.png new file mode 100644 index 00000000000..1e28f76fc1f Binary files /dev/null and b/Resources/Textures/Forge/Clothing/Head/Hardsuits/empire_praetorian_officer_item.rsi/icon-on.png differ diff --git a/Resources/Textures/Forge/Clothing/Head/Hardsuits/empire_praetorian_officer_item.rsi/meta.json b/Resources/Textures/Forge/Clothing/Head/Hardsuits/empire_praetorian_officer_item.rsi/meta.json new file mode 100644 index 00000000000..70ff9919630 --- /dev/null +++ b/Resources/Textures/Forge/Clothing/Head/Hardsuits/empire_praetorian_officer_item.rsi/meta.json @@ -0,0 +1,17 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Created by ifi07 (Discord)", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon-off" + }, + { + "name": "icon-on" + } + ] +} diff --git a/Resources/Textures/Forge/Clothing/Mask/Pretorian_Mask_Officer.rsi/equipped-MASK.png b/Resources/Textures/Forge/Clothing/Mask/Pretorian_Mask_Officer.rsi/equipped-MASK.png new file mode 100644 index 00000000000..a5f282908c7 Binary files /dev/null and b/Resources/Textures/Forge/Clothing/Mask/Pretorian_Mask_Officer.rsi/equipped-MASK.png differ diff --git a/Resources/Textures/Forge/Clothing/Mask/Pretorian_Mask_Officer.rsi/icon.png b/Resources/Textures/Forge/Clothing/Mask/Pretorian_Mask_Officer.rsi/icon.png new file mode 100644 index 00000000000..4ed2abec55d Binary files /dev/null and b/Resources/Textures/Forge/Clothing/Mask/Pretorian_Mask_Officer.rsi/icon.png differ diff --git a/Resources/Textures/Forge/Clothing/Mask/Pretorian_Mask_Officer.rsi/meta.json b/Resources/Textures/Forge/Clothing/Mask/Pretorian_Mask_Officer.rsi/meta.json new file mode 100644 index 00000000000..2dbe9c89cd6 --- /dev/null +++ b/Resources/Textures/Forge/Clothing/Mask/Pretorian_Mask_Officer.rsi/meta.json @@ -0,0 +1,18 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Created by: ifi07 (Discord)", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-MASK", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Forge/Clothing/Mask/Pretorian_Mask_Regular.rsi/equipped-MASK.png b/Resources/Textures/Forge/Clothing/Mask/Pretorian_Mask_Regular.rsi/equipped-MASK.png new file mode 100644 index 00000000000..eff30b9448d Binary files /dev/null and b/Resources/Textures/Forge/Clothing/Mask/Pretorian_Mask_Regular.rsi/equipped-MASK.png differ diff --git a/Resources/Textures/Forge/Clothing/Mask/Pretorian_Mask_Regular.rsi/icon.png b/Resources/Textures/Forge/Clothing/Mask/Pretorian_Mask_Regular.rsi/icon.png new file mode 100644 index 00000000000..65f28e013e7 Binary files /dev/null and b/Resources/Textures/Forge/Clothing/Mask/Pretorian_Mask_Regular.rsi/icon.png differ diff --git a/Resources/Textures/Forge/Clothing/Mask/Pretorian_Mask_Regular.rsi/meta.json b/Resources/Textures/Forge/Clothing/Mask/Pretorian_Mask_Regular.rsi/meta.json new file mode 100644 index 00000000000..2dbe9c89cd6 --- /dev/null +++ b/Resources/Textures/Forge/Clothing/Mask/Pretorian_Mask_Regular.rsi/meta.json @@ -0,0 +1,18 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Created by: ifi07 (Discord)", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-MASK", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Forge/Clothing/Neck/mantles/empire/Officer_Mantle.rsi/equipped-NECK.png b/Resources/Textures/Forge/Clothing/Neck/mantles/empire/Officer_Mantle.rsi/equipped-NECK.png new file mode 100644 index 00000000000..530a820c9d5 Binary files /dev/null and b/Resources/Textures/Forge/Clothing/Neck/mantles/empire/Officer_Mantle.rsi/equipped-NECK.png differ diff --git a/Resources/Textures/Forge/Clothing/Neck/mantles/empire/Officer_Mantle.rsi/icon.png b/Resources/Textures/Forge/Clothing/Neck/mantles/empire/Officer_Mantle.rsi/icon.png new file mode 100644 index 00000000000..c98b4855d1d Binary files /dev/null and b/Resources/Textures/Forge/Clothing/Neck/mantles/empire/Officer_Mantle.rsi/icon.png differ diff --git a/Resources/Textures/Forge/Clothing/Neck/mantles/empire/Officer_Mantle.rsi/meta.json b/Resources/Textures/Forge/Clothing/Neck/mantles/empire/Officer_Mantle.rsi/meta.json new file mode 100644 index 00000000000..4f78c7e5fa0 --- /dev/null +++ b/Resources/Textures/Forge/Clothing/Neck/mantles/empire/Officer_Mantle.rsi/meta.json @@ -0,0 +1,30 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Created by ifi07 (Discord)", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-NECK", + "directions": 4 + }, + { + "name": "open-1", + "directions": 4 + }, + { + "name": "open-2", + "directions": 4 + }, + { + "name": "open-3", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Forge/Clothing/Neck/mantles/empire/Officer_Mantle.rsi/open-1.png b/Resources/Textures/Forge/Clothing/Neck/mantles/empire/Officer_Mantle.rsi/open-1.png new file mode 100644 index 00000000000..71823677d35 Binary files /dev/null and b/Resources/Textures/Forge/Clothing/Neck/mantles/empire/Officer_Mantle.rsi/open-1.png differ diff --git a/Resources/Textures/Forge/Clothing/Neck/mantles/empire/Officer_Mantle.rsi/open-2.png b/Resources/Textures/Forge/Clothing/Neck/mantles/empire/Officer_Mantle.rsi/open-2.png new file mode 100644 index 00000000000..6b677d4bcec Binary files /dev/null and b/Resources/Textures/Forge/Clothing/Neck/mantles/empire/Officer_Mantle.rsi/open-2.png differ diff --git a/Resources/Textures/Forge/Clothing/Neck/mantles/empire/Officer_Mantle.rsi/open-3.png b/Resources/Textures/Forge/Clothing/Neck/mantles/empire/Officer_Mantle.rsi/open-3.png new file mode 100644 index 00000000000..f0ea2c506d8 Binary files /dev/null and b/Resources/Textures/Forge/Clothing/Neck/mantles/empire/Officer_Mantle.rsi/open-3.png differ diff --git a/Resources/Textures/Forge/Clothing/Neck/mantles/empire/Regular_Mantle.rsi/equipped-NECK.png b/Resources/Textures/Forge/Clothing/Neck/mantles/empire/Regular_Mantle.rsi/equipped-NECK.png new file mode 100644 index 00000000000..09d6085d424 Binary files /dev/null and b/Resources/Textures/Forge/Clothing/Neck/mantles/empire/Regular_Mantle.rsi/equipped-NECK.png differ diff --git a/Resources/Textures/Forge/Clothing/Neck/mantles/empire/Regular_Mantle.rsi/icon.png b/Resources/Textures/Forge/Clothing/Neck/mantles/empire/Regular_Mantle.rsi/icon.png new file mode 100644 index 00000000000..bb49db56877 Binary files /dev/null and b/Resources/Textures/Forge/Clothing/Neck/mantles/empire/Regular_Mantle.rsi/icon.png differ diff --git a/Resources/Textures/Forge/Clothing/Neck/mantles/empire/Regular_Mantle.rsi/meta.json b/Resources/Textures/Forge/Clothing/Neck/mantles/empire/Regular_Mantle.rsi/meta.json new file mode 100644 index 00000000000..4f78c7e5fa0 --- /dev/null +++ b/Resources/Textures/Forge/Clothing/Neck/mantles/empire/Regular_Mantle.rsi/meta.json @@ -0,0 +1,30 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Created by ifi07 (Discord)", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-NECK", + "directions": 4 + }, + { + "name": "open-1", + "directions": 4 + }, + { + "name": "open-2", + "directions": 4 + }, + { + "name": "open-3", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Forge/Clothing/Neck/mantles/empire/Regular_Mantle.rsi/open-1.png b/Resources/Textures/Forge/Clothing/Neck/mantles/empire/Regular_Mantle.rsi/open-1.png new file mode 100644 index 00000000000..0477dd3b95e Binary files /dev/null and b/Resources/Textures/Forge/Clothing/Neck/mantles/empire/Regular_Mantle.rsi/open-1.png differ diff --git a/Resources/Textures/Forge/Clothing/Neck/mantles/empire/Regular_Mantle.rsi/open-2.png b/Resources/Textures/Forge/Clothing/Neck/mantles/empire/Regular_Mantle.rsi/open-2.png new file mode 100644 index 00000000000..11695a7263e Binary files /dev/null and b/Resources/Textures/Forge/Clothing/Neck/mantles/empire/Regular_Mantle.rsi/open-2.png differ diff --git a/Resources/Textures/Forge/Clothing/Neck/mantles/empire/Regular_Mantle.rsi/open-3.png b/Resources/Textures/Forge/Clothing/Neck/mantles/empire/Regular_Mantle.rsi/open-3.png new file mode 100644 index 00000000000..5215028c99d Binary files /dev/null and b/Resources/Textures/Forge/Clothing/Neck/mantles/empire/Regular_Mantle.rsi/open-3.png differ diff --git a/Resources/Textures/Forge/Clothing/OuterClothing/Hardsuits/empire_praetorian.rsi/equipped-OUTHERCLOTH.png b/Resources/Textures/Forge/Clothing/OuterClothing/Hardsuits/empire_praetorian.rsi/equipped-OUTHERCLOTH.png new file mode 100644 index 00000000000..952ba444f61 Binary files /dev/null and b/Resources/Textures/Forge/Clothing/OuterClothing/Hardsuits/empire_praetorian.rsi/equipped-OUTHERCLOTH.png differ diff --git a/Resources/Textures/Forge/Clothing/OuterClothing/Hardsuits/empire_praetorian.rsi/icon.png b/Resources/Textures/Forge/Clothing/OuterClothing/Hardsuits/empire_praetorian.rsi/icon.png new file mode 100644 index 00000000000..bb53776bc60 Binary files /dev/null and b/Resources/Textures/Forge/Clothing/OuterClothing/Hardsuits/empire_praetorian.rsi/icon.png differ diff --git a/Resources/Textures/Forge/Clothing/OuterClothing/Hardsuits/empire_praetorian.rsi/inhand-left.png b/Resources/Textures/Forge/Clothing/OuterClothing/Hardsuits/empire_praetorian.rsi/inhand-left.png new file mode 100644 index 00000000000..c0f27eac7b3 Binary files /dev/null and b/Resources/Textures/Forge/Clothing/OuterClothing/Hardsuits/empire_praetorian.rsi/inhand-left.png differ diff --git a/Resources/Textures/Forge/Clothing/OuterClothing/Hardsuits/empire_praetorian.rsi/inhand-right.png b/Resources/Textures/Forge/Clothing/OuterClothing/Hardsuits/empire_praetorian.rsi/inhand-right.png new file mode 100644 index 00000000000..c460f80c6ac Binary files /dev/null and b/Resources/Textures/Forge/Clothing/OuterClothing/Hardsuits/empire_praetorian.rsi/inhand-right.png differ diff --git a/Resources/Textures/Forge/Clothing/OuterClothing/Hardsuits/empire_praetorian.rsi/meta.json b/Resources/Textures/Forge/Clothing/OuterClothing/Hardsuits/empire_praetorian.rsi/meta.json new file mode 100644 index 00000000000..af5c7be361b --- /dev/null +++ b/Resources/Textures/Forge/Clothing/OuterClothing/Hardsuits/empire_praetorian.rsi/meta.json @@ -0,0 +1,26 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Created by ifi07 (Discord)", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-OUTHERCLOTH", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Forge/Clothing/OuterClothing/Hardsuits/empire_praetorian_officer.rsi/equipped-OUTHERCLOTH.png b/Resources/Textures/Forge/Clothing/OuterClothing/Hardsuits/empire_praetorian_officer.rsi/equipped-OUTHERCLOTH.png new file mode 100644 index 00000000000..62da8d3c58c Binary files /dev/null and b/Resources/Textures/Forge/Clothing/OuterClothing/Hardsuits/empire_praetorian_officer.rsi/equipped-OUTHERCLOTH.png differ diff --git a/Resources/Textures/Forge/Clothing/OuterClothing/Hardsuits/empire_praetorian_officer.rsi/icon.png b/Resources/Textures/Forge/Clothing/OuterClothing/Hardsuits/empire_praetorian_officer.rsi/icon.png new file mode 100644 index 00000000000..8e0f2fe0014 Binary files /dev/null and b/Resources/Textures/Forge/Clothing/OuterClothing/Hardsuits/empire_praetorian_officer.rsi/icon.png differ diff --git a/Resources/Textures/Forge/Clothing/OuterClothing/Hardsuits/empire_praetorian_officer.rsi/inhand-left.png b/Resources/Textures/Forge/Clothing/OuterClothing/Hardsuits/empire_praetorian_officer.rsi/inhand-left.png new file mode 100644 index 00000000000..1639f6f2612 Binary files /dev/null and b/Resources/Textures/Forge/Clothing/OuterClothing/Hardsuits/empire_praetorian_officer.rsi/inhand-left.png differ diff --git a/Resources/Textures/Forge/Clothing/OuterClothing/Hardsuits/empire_praetorian_officer.rsi/inhand-right.png b/Resources/Textures/Forge/Clothing/OuterClothing/Hardsuits/empire_praetorian_officer.rsi/inhand-right.png new file mode 100644 index 00000000000..14d836bf9a0 Binary files /dev/null and b/Resources/Textures/Forge/Clothing/OuterClothing/Hardsuits/empire_praetorian_officer.rsi/inhand-right.png differ diff --git a/Resources/Textures/Forge/Clothing/OuterClothing/Hardsuits/empire_praetorian_officer.rsi/meta.json b/Resources/Textures/Forge/Clothing/OuterClothing/Hardsuits/empire_praetorian_officer.rsi/meta.json new file mode 100644 index 00000000000..af5c7be361b --- /dev/null +++ b/Resources/Textures/Forge/Clothing/OuterClothing/Hardsuits/empire_praetorian_officer.rsi/meta.json @@ -0,0 +1,26 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Created by ifi07 (Discord)", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-OUTHERCLOTH", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Forge/Interface/Misc/job_icons.rsi/emp_praetorian.png b/Resources/Textures/Forge/Interface/Misc/job_icons.rsi/emp_praetorian.png new file mode 100644 index 00000000000..35d9d283171 Binary files /dev/null and b/Resources/Textures/Forge/Interface/Misc/job_icons.rsi/emp_praetorian.png differ diff --git a/Resources/Textures/Forge/Interface/Misc/job_icons.rsi/emp_praetorian_officer.png b/Resources/Textures/Forge/Interface/Misc/job_icons.rsi/emp_praetorian_officer.png new file mode 100644 index 00000000000..ed7ad713180 Binary files /dev/null and b/Resources/Textures/Forge/Interface/Misc/job_icons.rsi/emp_praetorian_officer.png differ diff --git a/Resources/Textures/Forge/Interface/Misc/job_icons.rsi/meta.json b/Resources/Textures/Forge/Interface/Misc/job_icons.rsi/meta.json index 7706712f446..fd55a8db9a3 100644 --- a/Resources/Textures/Forge/Interface/Misc/job_icons.rsi/meta.json +++ b/Resources/Textures/Forge/Interface/Misc/job_icons.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Create by autsaider_m, StRep Eifall, overlord by v6st, emp_ icons by v6st, ren_, tsf_, nt_, doc, paramed by sodakent (discord) for Forge", + "copyright": "Create by autsaider_m, StRep Eifall, overlord by v6st, emp_ icons by v6st, ren_, tsf_, nt_, doc, paramed by sodakent (discord), praetorians by ifi07 (discord) for Forge", "size": { "x": 8, @@ -81,6 +81,12 @@ { "name": "emp_tech" }, + { + "name": "emp_praetorian" + }, + { + "name": "emp_praetorian_officer" + }, { "name": "ren_baron" }, diff --git a/Resources/Textures/Forge/Objects/Devices/pda.rsi/meta.json b/Resources/Textures/Forge/Objects/Devices/pda.rsi/meta.json index 5a50ce7a530..5b8f4484cd1 100644 --- a/Resources/Textures/Forge/Objects/Devices/pda.rsi/meta.json +++ b/Resources/Textures/Forge/Objects/Devices/pda.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Made by BombasterDS - https://github.com/MetalSage/space-stories-archive/commit/26812e79c19c5f998bcbc445afbdceea625bc887, pda-highcommand based on syndi PDA and drawn by SolsticeOfTheWinter, pda-syndi-agent drawn by Ubaser, pda-renegate & pda-tti by sodakent (discord)", + "copyright": "Made by BombasterDS - https://github.com/MetalSage/space-stories-archive/commit/26812e79c19c5f998bcbc445afbdceea625bc887, pda-highcommand based on syndi PDA and drawn by SolsticeOfTheWinter, pda-syndi-agent drawn by Ubaser, pda-renegate & pda-tti by sodakent (discord), pda-empire-praetorian by ifi07 (discord) for Forge", "size": { "x": 32, "y": 32 @@ -43,6 +43,12 @@ { "name": "pda-lord" }, + { + "name": "pda-empire-praetorian" + }, + { + "name": "pda-empire-praetorian-officer" + }, { "name": "pda-renegate" }, diff --git a/Resources/Textures/Forge/Objects/Devices/pda.rsi/pda-empire-praetorian-officer.png b/Resources/Textures/Forge/Objects/Devices/pda.rsi/pda-empire-praetorian-officer.png new file mode 100644 index 00000000000..7c31ef6b4b5 Binary files /dev/null and b/Resources/Textures/Forge/Objects/Devices/pda.rsi/pda-empire-praetorian-officer.png differ diff --git a/Resources/Textures/Forge/Objects/Devices/pda.rsi/pda-empire-praetorian.png b/Resources/Textures/Forge/Objects/Devices/pda.rsi/pda-empire-praetorian.png new file mode 100644 index 00000000000..c3e0187fbb3 Binary files /dev/null and b/Resources/Textures/Forge/Objects/Devices/pda.rsi/pda-empire-praetorian.png differ diff --git a/Resources/Textures/Forge/Objects/Misc/id_cards.rsi/idemppraetorian.png b/Resources/Textures/Forge/Objects/Misc/id_cards.rsi/idemppraetorian.png new file mode 100644 index 00000000000..2ba5d1e6821 Binary files /dev/null and b/Resources/Textures/Forge/Objects/Misc/id_cards.rsi/idemppraetorian.png differ diff --git a/Resources/Textures/Forge/Objects/Misc/id_cards.rsi/idemppraetorianofficer.png b/Resources/Textures/Forge/Objects/Misc/id_cards.rsi/idemppraetorianofficer.png new file mode 100644 index 00000000000..a1eba7076ae Binary files /dev/null and b/Resources/Textures/Forge/Objects/Misc/id_cards.rsi/idemppraetorianofficer.png differ diff --git a/Resources/Textures/Forge/Objects/Misc/id_cards.rsi/meta.json b/Resources/Textures/Forge/Objects/Misc/id_cards.rsi/meta.json index c32adf4da3d..132ca139d01 100644 --- a/Resources/Textures/Forge/Objects/Misc/id_cards.rsi/meta.json +++ b/Resources/Textures/Forge/Objects/Misc/id_cards.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/d917f4c2a088419d5c3aec7656b7ff8cebd1822e | idsr state Eifall, emp by v6st, ren & tti by sodakent (discord), tsf by ryan55555 (discord) for Forge", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/d917f4c2a088419d5c3aec7656b7ff8cebd1822e | idsr state Eifall, emp by v6st, ren & tti by sodakent (discord), tsf by ryan55555 (discord), idemppraetorian by ifi07 (discord) for Forge", "size": { "x": 32, "y": 32 @@ -19,6 +19,9 @@ { "name": "default" }, + { + "name": "praetorian" + }, { "name": "default-inhand-left", "directions": 4 @@ -53,6 +56,12 @@ { "name": "idempsilver" }, + { + "name": "idemppraetorian" + }, + { + "name": "idemppraetorianofficer" + }, { "name": "idrenbaron" }, diff --git a/Resources/Textures/Forge/Objects/Misc/id_cards.rsi/praetorian.png b/Resources/Textures/Forge/Objects/Misc/id_cards.rsi/praetorian.png new file mode 100644 index 00000000000..a68b39b4591 Binary files /dev/null and b/Resources/Textures/Forge/Objects/Misc/id_cards.rsi/praetorian.png differ diff --git a/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear.rsi/icon-off.png b/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear.rsi/icon-off.png new file mode 100644 index 00000000000..d1c352e2d24 Binary files /dev/null and b/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear.rsi/icon-off.png differ diff --git a/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear.rsi/icon-on-regular.png b/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear.rsi/icon-on-regular.png new file mode 100644 index 00000000000..93654d313e0 Binary files /dev/null and b/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear.rsi/icon-on-regular.png differ diff --git a/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear.rsi/meta.json b/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear.rsi/meta.json new file mode 100644 index 00000000000..001a85a416f --- /dev/null +++ b/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear.rsi/meta.json @@ -0,0 +1,23 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Made by ifi07 (discord)", + "size": { + "x": 48, + "y": 32 + }, + "states": [ + { + "name": "icon-off" + }, + { + "name": "icon-on-regular", + "delays": [ + [ + 0.1, + 0.1 + ] + ] + } + ] +} diff --git a/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_inhands.rsi/equipped-BACKPACK.png b/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_inhands.rsi/equipped-BACKPACK.png new file mode 100644 index 00000000000..b8aca9f963c Binary files /dev/null and b/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_inhands.rsi/equipped-BACKPACK.png differ diff --git a/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_inhands.rsi/equipped-SUITSTORAGE.png b/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_inhands.rsi/equipped-SUITSTORAGE.png new file mode 100644 index 00000000000..b8aca9f963c Binary files /dev/null and b/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_inhands.rsi/equipped-SUITSTORAGE.png differ diff --git a/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_inhands.rsi/inhand-left-blade.png b/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_inhands.rsi/inhand-left-blade.png new file mode 100644 index 00000000000..0b0b86e3b28 Binary files /dev/null and b/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_inhands.rsi/inhand-left-blade.png differ diff --git a/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_inhands.rsi/inhand-left.png b/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_inhands.rsi/inhand-left.png new file mode 100644 index 00000000000..3224afac189 Binary files /dev/null and b/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_inhands.rsi/inhand-left.png differ diff --git a/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_inhands.rsi/inhand-right-blade.png b/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_inhands.rsi/inhand-right-blade.png new file mode 100644 index 00000000000..a9cf97aee01 Binary files /dev/null and b/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_inhands.rsi/inhand-right-blade.png differ diff --git a/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_inhands.rsi/inhand-right.png b/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_inhands.rsi/inhand-right.png new file mode 100644 index 00000000000..a1df096dd8f Binary files /dev/null and b/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_inhands.rsi/inhand-right.png differ diff --git a/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_inhands.rsi/meta.json b/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_inhands.rsi/meta.json new file mode 100644 index 00000000000..bcb8f009857 --- /dev/null +++ b/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_inhands.rsi/meta.json @@ -0,0 +1,75 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Made by ifi07 (discord)", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "wielded-inhand-left", + "directions": 4 + }, + { + "name": "inhand-left-blade", + "directions": 4, + "delays": [ + [0.1, 0.1], + [0.1, 0.1], + [0.1, 0.1], + [0.1, 0.1] + ] + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "wielded-inhand-right", + "directions": 4 + }, + { + "name": "wielded-inhand-left-on-regular", + "directions": 4, + "delays": [ + [0.1, 0.1], + [0.1, 0.1], + [0.1, 0.1], + [0.1, 0.1] + ] + }, + { + "name": "wielded-inhand-right-on-regular", + "directions": 4, + "delays": [ + [0.1, 0.1], + [0.1, 0.1], + [0.1, 0.1], + [0.1, 0.1] + ] + }, + { + "name": "inhand-right-blade", + "directions": 4, + "delays": [ + [0.1, 0.1], + [0.1, 0.1], + [0.1, 0.1], + [0.1, 0.1] + ] + }, + { + "name": "equipped-BACKPACK", + "directions": 4 + }, + { + "name": "equipped-SUITSTORAGE", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_inhands.rsi/wielded-inhand-left-on-regular.png b/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_inhands.rsi/wielded-inhand-left-on-regular.png new file mode 100644 index 00000000000..29505d00b73 Binary files /dev/null and b/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_inhands.rsi/wielded-inhand-left-on-regular.png differ diff --git a/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_inhands.rsi/wielded-inhand-left.png b/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_inhands.rsi/wielded-inhand-left.png new file mode 100644 index 00000000000..5f9c6ebc0a5 Binary files /dev/null and b/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_inhands.rsi/wielded-inhand-left.png differ diff --git a/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_inhands.rsi/wielded-inhand-right-on-regular.png b/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_inhands.rsi/wielded-inhand-right-on-regular.png new file mode 100644 index 00000000000..f7b04d23cdd Binary files /dev/null and b/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_inhands.rsi/wielded-inhand-right-on-regular.png differ diff --git a/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_inhands.rsi/wielded-inhand-right.png b/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_inhands.rsi/wielded-inhand-right.png new file mode 100644 index 00000000000..26d1e027ff4 Binary files /dev/null and b/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_inhands.rsi/wielded-inhand-right.png differ diff --git a/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_officer.rsi/icon-off.png b/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_officer.rsi/icon-off.png new file mode 100644 index 00000000000..d1c352e2d24 Binary files /dev/null and b/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_officer.rsi/icon-off.png differ diff --git a/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_officer.rsi/icon-on-officer.png b/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_officer.rsi/icon-on-officer.png new file mode 100644 index 00000000000..484135677d1 Binary files /dev/null and b/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_officer.rsi/icon-on-officer.png differ diff --git a/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_officer.rsi/meta.json b/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_officer.rsi/meta.json new file mode 100644 index 00000000000..9895e098e46 --- /dev/null +++ b/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_officer.rsi/meta.json @@ -0,0 +1,23 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Made by ifi07 (discord)", + "size": { + "x": 48, + "y": 32 + }, + "states": [ + { + "name": "icon-off" + }, + { + "name": "icon-on-officer", + "delays": [ + [ + 0.1, + 0.1 + ] + ] + } + ] +} diff --git a/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_officer_inhands.rsi/equipped-BACKPACK.png b/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_officer_inhands.rsi/equipped-BACKPACK.png new file mode 100644 index 00000000000..b8aca9f963c Binary files /dev/null and b/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_officer_inhands.rsi/equipped-BACKPACK.png differ diff --git a/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_officer_inhands.rsi/equipped-SUITSTORAGE.png b/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_officer_inhands.rsi/equipped-SUITSTORAGE.png new file mode 100644 index 00000000000..b8aca9f963c Binary files /dev/null and b/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_officer_inhands.rsi/equipped-SUITSTORAGE.png differ diff --git a/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_officer_inhands.rsi/inhand-left-blade.png b/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_officer_inhands.rsi/inhand-left-blade.png new file mode 100644 index 00000000000..1cfe68c1d1f Binary files /dev/null and b/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_officer_inhands.rsi/inhand-left-blade.png differ diff --git a/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_officer_inhands.rsi/inhand-left.png b/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_officer_inhands.rsi/inhand-left.png new file mode 100644 index 00000000000..3224afac189 Binary files /dev/null and b/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_officer_inhands.rsi/inhand-left.png differ diff --git a/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_officer_inhands.rsi/inhand-right-blade.png b/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_officer_inhands.rsi/inhand-right-blade.png new file mode 100644 index 00000000000..1cfe68c1d1f Binary files /dev/null and b/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_officer_inhands.rsi/inhand-right-blade.png differ diff --git a/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_officer_inhands.rsi/inhand-right.png b/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_officer_inhands.rsi/inhand-right.png new file mode 100644 index 00000000000..a1df096dd8f Binary files /dev/null and b/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_officer_inhands.rsi/inhand-right.png differ diff --git a/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_officer_inhands.rsi/meta.json b/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_officer_inhands.rsi/meta.json new file mode 100644 index 00000000000..f0ebbfefebc --- /dev/null +++ b/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_officer_inhands.rsi/meta.json @@ -0,0 +1,75 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Made by ifi07 (discord)", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "wielded-inhand-left", + "directions": 4 + }, + { + "name": "inhand-left-blade", + "directions": 4, + "delays": [ + [0.1, 0.1], + [0.1, 0.1], + [0.1, 0.1], + [0.1, 0.1] + ] + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "wielded-inhand-right", + "directions": 4 + }, + { + "name": "wielded-inhand-left-on-officer", + "directions": 4, + "delays": [ + [0.1, 0.1], + [0.1, 0.1], + [0.1, 0.1], + [0.1, 0.1] + ] + }, + { + "name": "wielded-inhand-right-on-officer", + "directions": 4, + "delays": [ + [0.1, 0.1], + [0.1, 0.1], + [0.1, 0.1], + [0.1, 0.1] + ] + }, + { + "name": "inhand-right-blade", + "directions": 4, + "delays": [ + [0.1, 0.1], + [0.1, 0.1], + [0.1, 0.1], + [0.1, 0.1] + ] + }, + { + "name": "equipped-BACKPACK", + "directions": 4 + }, + { + "name": "equipped-SUITSTORAGE", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_officer_inhands.rsi/wielded-inhand-left-on-officer.png b/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_officer_inhands.rsi/wielded-inhand-left-on-officer.png new file mode 100644 index 00000000000..9ceeb9bb2d5 Binary files /dev/null and b/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_officer_inhands.rsi/wielded-inhand-left-on-officer.png differ diff --git a/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_officer_inhands.rsi/wielded-inhand-left.png b/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_officer_inhands.rsi/wielded-inhand-left.png new file mode 100644 index 00000000000..f927c73fee4 Binary files /dev/null and b/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_officer_inhands.rsi/wielded-inhand-left.png differ diff --git a/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_officer_inhands.rsi/wielded-inhand-right-on-officer.png b/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_officer_inhands.rsi/wielded-inhand-right-on-officer.png new file mode 100644 index 00000000000..9ceeb9bb2d5 Binary files /dev/null and b/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_officer_inhands.rsi/wielded-inhand-right-on-officer.png differ diff --git a/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_officer_inhands.rsi/wielded-inhand-right.png b/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_officer_inhands.rsi/wielded-inhand-right.png new file mode 100644 index 00000000000..26d1e027ff4 Binary files /dev/null and b/Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_officer_inhands.rsi/wielded-inhand-right.png differ