From 132025596007c78e27e762a677a22c97c61cd266 Mon Sep 17 00:00:00 2001 From: LeviyNosok Date: Sun, 7 Jun 2026 03:07:20 +0300 Subject: [PATCH 1/3] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20=D1=80=D0=BE=D0=BB=D1=8C=20Praetorian=20=D1=81=20?= =?UTF-8?q?=D0=BB=D0=BE=D0=B0=D0=B4=D0=B0=D1=83=D1=82=D0=BE=D0=BC,=20?= =?UTF-8?q?=D1=8D=D0=BA=D0=B8=D0=BF=D0=B8=D1=80=D0=BE=D0=B2=D0=BA=D0=BE?= =?UTF-8?q?=D0=B9=20=D0=B8=20=D0=BE=D1=84=D0=B8=D1=86=D0=B5=D1=80=D1=81?= =?UTF-8?q?=D0=BA=D0=B8=D0=BC=D0=B8=20=D0=B2=D0=B0=D1=80=D0=B8=D0=B0=D0=BD?= =?UTF-8?q?=D1=82=D0=B0=D0=BC=D0=B8.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Включает RI-22 скафандры, маски, мантии, энергокопья, КПК/ID, спавнеры на оплоте и Forge-систему override иконки ID без смены роли. Co-authored-by: Cursor --- .../Systems/Storage/Controls/ItemGridPiece.cs | 50 ++++-- .../Clothing/HandsOpenMantleClothingSystem.cs | 106 ++++++++++++ .../_Forge/Item/ForgeScaledStorageDraw.cs | 56 ++++++ .../ForgeIdCardJobIconOverrideSystem.cs | 109 ++++++++++++ .../ForgeIdCardJobIconOverrideComponent.cs | 14 ++ .../HandsOpenMantleClothingComponent.cs | 23 +++ .../Item/ForgeScaledStorageItemComponent.cs | 20 +++ .../ru-RU/_Forge/job/job-description.ftl | 3 +- .../Locale/ru-RU/_Forge/job/job-names.ftl | 4 +- .../entities/clothing/head/hardsuits.ftl | 4 + .../_Forge/entities/clothing/mask.ftl | 6 +- .../_Forge/entities/clothing/neck.ftl | 5 + .../clothing/outerclothing/hardsuits.ftl | 4 + .../entities/clothing/uniforms/jumpsuits.ftl | 8 +- .../objects/Weapons/melee/e_spear.ftl | 4 + .../devices/misc/identification_cards.ftl | 6 + .../_Forge/entities/objects/devices/pda.ftl | 6 + Resources/Maps/_Forge/POI/EmpireOutpost.yml | 12 ++ Resources/Maps/_Mono/Test/dev_map.yml | 9 +- .../Entities/Mobs/Species/human.yml | 1 + .../_Forge/Catalog/Fills/Crates/lockers.yml | 4 +- .../Clothing/Head/Hardsuits/empire.yml | 77 +++++++++ .../_Forge/Entities/Clothing/Mask/gasmask.yml | 48 ++++++ .../Entities/Clothing/Neck/empire_mantles.yml | 23 +++ .../OuterClothing/Hardsuits/empire.yml | 44 +++++ .../Entities/Clothing/Uniforms/jumpsuits.yml | 12 +- .../_Forge/Entities/Markers/Spawners/jobs.yml | 15 +- .../_Forge/Entities/Objects/Devices/pda.yml | 78 +++++++++ .../Objects/Misc/identification_cards.yml | 32 +++- .../Objects/Weapons/Melee/e_spear.yml | 160 ++++++++++++++++++ .../Computers/computers_job_preset.yml | 2 +- .../_Forge/Loadouts/Empire/jumpsuits.yml | 10 +- .../_Forge/Loadouts/Empire/loadout_groups.yml | 10 +- .../Prototypes/_Forge/Loadouts/Empire/pda.yml | 24 +++ .../_Forge/Loadouts/Empire/praetorian.yml | 143 ++++++++++++++++ .../_Forge/Loadouts/Empire/role_loadout.yml | 31 +++- .../_Forge/PointsOflnterest/EmpireOutpost.yml | 3 +- .../Lathes/Factions/Empire/clothing.yml | 8 +- .../Recipes/Lathes/Packs/Empire/empire.yml | 4 +- .../_Forge/Research/Empire/equipment.yml | 4 +- .../_Forge/Roles/Jobs/Empire/Arbiter.yml | 4 +- .../_Forge/Roles/Jobs/Empire/Cardinal.yml | 4 +- .../_Forge/Roles/Jobs/Empire/Praetor.yml | 56 ++++++ .../_Forge/Roles/Jobs/Empire/Praetorian.yml | 48 +++--- .../Jobs/Empire/Presets/PraetorianOfficer.yml | 15 ++ .../_Forge/Roles/Jobs/departments.yml | 1 + .../_Forge/Roles/play_time_trackers.yml | 6 + .../Prototypes/_Forge/StatusIcon/job.yml | 20 ++- Resources/Prototypes/_NF/Maps/debug.yml | 3 +- .../empire_praetorian.rsi/equipped-HELMET.png | Bin 0 -> 888 bytes .../Hardsuits/empire_praetorian.rsi/icon.png | Bin 0 -> 402 bytes .../Hardsuits/empire_praetorian.rsi/meta.json | 18 ++ .../equipped-HELMET.png | Bin 0 -> 1390 bytes .../empire_praetorian_officer.rsi/meta.json | 15 ++ .../icon-off.png | Bin 0 -> 563 bytes .../icon-on.png | Bin 0 -> 714 bytes .../meta.json | 17 ++ .../equipped-MASK.png | Bin 0 -> 730 bytes .../Mask/Pretorian_Mask_Officer.rsi/icon.png | Bin 0 -> 434 bytes .../Mask/Pretorian_Mask_Officer.rsi/meta.json | 18 ++ .../equipped-MASK.png | Bin 0 -> 365 bytes .../Mask/Pretorian_Mask_Regular.rsi/icon.png | Bin 0 -> 527 bytes .../Mask/Pretorian_Mask_Regular.rsi/meta.json | 18 ++ .../Officer_Mantle.rsi/equipped-NECK.png | Bin 0 -> 1499 bytes .../empire/Officer_Mantle.rsi/icon.png | Bin 0 -> 644 bytes .../empire/Officer_Mantle.rsi/meta.json | 30 ++++ .../empire/Officer_Mantle.rsi/open-1.png | Bin 0 -> 1453 bytes .../empire/Officer_Mantle.rsi/open-2.png | Bin 0 -> 1303 bytes .../empire/Officer_Mantle.rsi/open-3.png | Bin 0 -> 1367 bytes .../Regular_Mantle.rsi/equipped-NECK.png | Bin 0 -> 1343 bytes .../empire/Regular_Mantle.rsi/icon.png | Bin 0 -> 600 bytes .../empire/Regular_Mantle.rsi/meta.json | 30 ++++ .../empire/Regular_Mantle.rsi/open-1.png | Bin 0 -> 1350 bytes .../empire/Regular_Mantle.rsi/open-2.png | Bin 0 -> 1225 bytes .../empire/Regular_Mantle.rsi/open-3.png | Bin 0 -> 1314 bytes .../equipped-OUTHERCLOTH.png | Bin 0 -> 1934 bytes .../Hardsuits/empire_praetorian.rsi/icon.png | Bin 0 -> 837 bytes .../empire_praetorian.rsi/inhand-left.png | Bin 0 -> 461 bytes .../empire_praetorian.rsi/inhand-right.png | Bin 0 -> 466 bytes .../Hardsuits/empire_praetorian.rsi/meta.json | 26 +++ .../equipped-OUTHERCLOTH.png | Bin 0 -> 1951 bytes .../empire_praetorian_officer.rsi/icon.png | Bin 0 -> 794 bytes .../inhand-left.png | Bin 0 -> 538 bytes .../inhand-right.png | Bin 0 -> 593 bytes .../empire_praetorian_officer.rsi/meta.json | 26 +++ .../Misc/job_icons.rsi/emp_praetorian.png | Bin 0 -> 192 bytes .../job_icons.rsi/emp_praetorian_officer.png | Bin 0 -> 200 bytes .../Interface/Misc/job_icons.rsi/meta.json | 8 +- .../Forge/Objects/Devices/pda.rsi/meta.json | 8 +- .../pda.rsi/pda-empire-praetorian-officer.png | Bin 0 -> 486 bytes .../Devices/pda.rsi/pda-empire-praetorian.png | Bin 0 -> 488 bytes .../Misc/id_cards.rsi/idemppraetorian.png | Bin 0 -> 182 bytes .../id_cards.rsi/idemppraetorianofficer.png | Bin 0 -> 210 bytes .../Forge/Objects/Misc/id_cards.rsi/meta.json | 11 +- .../Objects/Misc/id_cards.rsi/praetorian.png | Bin 0 -> 423 bytes .../equiped-BACKPACK.png | Bin 0 -> 779 bytes .../equiped-SUITSTORAGE.png | Bin 0 -> 779 bytes .../Laser_spear_officer.rsi/icon-off.png | Bin 0 -> 328 bytes .../icon-on-officer.png | Bin 0 -> 445 bytes .../Laser_spear_officer.rsi/inhand_left.png | Bin 0 -> 519 bytes .../Laser_spear_officer.rsi/inhand_right.png | Bin 0 -> 544 bytes .../wielded-inhand-left-on-offiecr.png | Bin 0 -> 665 bytes .../wielded-inhand-left.png | Bin 0 -> 359 bytes .../wielded-inhand-right-on-officer.png | Bin 0 -> 695 bytes .../wielded-inhand-right.png | Bin 0 -> 374 bytes .../Melee/empire_e_spear.rsi/icon-off.png | Bin 0 -> 328 bytes .../empire_e_spear.rsi/icon-on-regular.png | Bin 0 -> 438 bytes .../Melee/empire_e_spear.rsi/meta.json | 23 +++ .../equipped-BACKPACK.png | Bin 0 -> 779 bytes .../equipped-SUITSTORAGE.png | Bin 0 -> 779 bytes .../inhand-left-blade.png | Bin 0 -> 350 bytes .../inhand-left.png | Bin 0 -> 523 bytes .../inhand-right-blade.png | Bin 0 -> 368 bytes .../inhand-right.png | Bin 0 -> 544 bytes .../empire_e_spear_inhands.rsi/meta.json | 75 ++++++++ .../wielded-inhand-left-on-regular.png | Bin 0 -> 734 bytes .../wielded-inhand-left.png | Bin 0 -> 366 bytes .../wielded-inhand-right-on-regular.png | Bin 0 -> 720 bytes .../wielded-inhand-right.png | Bin 0 -> 374 bytes .../empire_e_spear_officer.rsi/icon-off.png | Bin 0 -> 328 bytes .../icon-on-officer.png | Bin 0 -> 445 bytes .../empire_e_spear_officer.rsi/meta.json | 23 +++ .../equipped-BACKPACK.png | Bin 0 -> 779 bytes .../equipped-SUITSTORAGE.png | Bin 0 -> 779 bytes .../inhand-left-blade.png | Bin 0 -> 349 bytes .../inhand-left.png | Bin 0 -> 523 bytes .../inhand-right-blade.png | Bin 0 -> 349 bytes .../inhand-right.png | Bin 0 -> 544 bytes .../meta.json | 75 ++++++++ .../wielded-inhand-left-on-officer.png | Bin 0 -> 733 bytes .../wielded-inhand-left.png | Bin 0 -> 359 bytes .../wielded-inhand-right-on-officer.png | Bin 0 -> 733 bytes .../wielded-inhand-right.png | Bin 0 -> 374 bytes 133 files changed, 1667 insertions(+), 93 deletions(-) create mode 100644 Content.Client/_Forge/Clothing/HandsOpenMantleClothingSystem.cs create mode 100644 Content.Client/_Forge/Item/ForgeScaledStorageDraw.cs create mode 100644 Content.Server/_Forge/Access/Systems/ForgeIdCardJobIconOverrideSystem.cs create mode 100644 Content.Shared/_Forge/Access/Components/ForgeIdCardJobIconOverrideComponent.cs create mode 100644 Content.Shared/_Forge/Clothing/HandsOpenMantleClothingComponent.cs create mode 100644 Content.Shared/_Forge/Item/ForgeScaledStorageItemComponent.cs create mode 100644 Resources/Locale/ru-RU/ss14-ru/prototypes/_Forge/entities/objects/Weapons/melee/e_spear.ftl create mode 100644 Resources/Prototypes/_Forge/Entities/Clothing/Neck/empire_mantles.yml create mode 100644 Resources/Prototypes/_Forge/Entities/Objects/Weapons/Melee/e_spear.yml create mode 100644 Resources/Prototypes/_Forge/Loadouts/Empire/praetorian.yml create mode 100644 Resources/Prototypes/_Forge/Roles/Jobs/Empire/Praetor.yml create mode 100644 Resources/Prototypes/_Forge/Roles/Jobs/Empire/Presets/PraetorianOfficer.yml create mode 100644 Resources/Textures/Forge/Clothing/Head/Hardsuits/empire_praetorian.rsi/equipped-HELMET.png create mode 100644 Resources/Textures/Forge/Clothing/Head/Hardsuits/empire_praetorian.rsi/icon.png create mode 100644 Resources/Textures/Forge/Clothing/Head/Hardsuits/empire_praetorian.rsi/meta.json create mode 100644 Resources/Textures/Forge/Clothing/Head/Hardsuits/empire_praetorian_officer.rsi/equipped-HELMET.png create mode 100644 Resources/Textures/Forge/Clothing/Head/Hardsuits/empire_praetorian_officer.rsi/meta.json create mode 100644 Resources/Textures/Forge/Clothing/Head/Hardsuits/empire_praetorian_officer_item.rsi/icon-off.png create mode 100644 Resources/Textures/Forge/Clothing/Head/Hardsuits/empire_praetorian_officer_item.rsi/icon-on.png create mode 100644 Resources/Textures/Forge/Clothing/Head/Hardsuits/empire_praetorian_officer_item.rsi/meta.json create mode 100644 Resources/Textures/Forge/Clothing/Mask/Pretorian_Mask_Officer.rsi/equipped-MASK.png create mode 100644 Resources/Textures/Forge/Clothing/Mask/Pretorian_Mask_Officer.rsi/icon.png create mode 100644 Resources/Textures/Forge/Clothing/Mask/Pretorian_Mask_Officer.rsi/meta.json create mode 100644 Resources/Textures/Forge/Clothing/Mask/Pretorian_Mask_Regular.rsi/equipped-MASK.png create mode 100644 Resources/Textures/Forge/Clothing/Mask/Pretorian_Mask_Regular.rsi/icon.png create mode 100644 Resources/Textures/Forge/Clothing/Mask/Pretorian_Mask_Regular.rsi/meta.json create mode 100644 Resources/Textures/Forge/Clothing/Neck/mantles/empire/Officer_Mantle.rsi/equipped-NECK.png create mode 100644 Resources/Textures/Forge/Clothing/Neck/mantles/empire/Officer_Mantle.rsi/icon.png create mode 100644 Resources/Textures/Forge/Clothing/Neck/mantles/empire/Officer_Mantle.rsi/meta.json create mode 100644 Resources/Textures/Forge/Clothing/Neck/mantles/empire/Officer_Mantle.rsi/open-1.png create mode 100644 Resources/Textures/Forge/Clothing/Neck/mantles/empire/Officer_Mantle.rsi/open-2.png create mode 100644 Resources/Textures/Forge/Clothing/Neck/mantles/empire/Officer_Mantle.rsi/open-3.png create mode 100644 Resources/Textures/Forge/Clothing/Neck/mantles/empire/Regular_Mantle.rsi/equipped-NECK.png create mode 100644 Resources/Textures/Forge/Clothing/Neck/mantles/empire/Regular_Mantle.rsi/icon.png create mode 100644 Resources/Textures/Forge/Clothing/Neck/mantles/empire/Regular_Mantle.rsi/meta.json create mode 100644 Resources/Textures/Forge/Clothing/Neck/mantles/empire/Regular_Mantle.rsi/open-1.png create mode 100644 Resources/Textures/Forge/Clothing/Neck/mantles/empire/Regular_Mantle.rsi/open-2.png create mode 100644 Resources/Textures/Forge/Clothing/Neck/mantles/empire/Regular_Mantle.rsi/open-3.png create mode 100644 Resources/Textures/Forge/Clothing/OuterClothing/Hardsuits/empire_praetorian.rsi/equipped-OUTHERCLOTH.png create mode 100644 Resources/Textures/Forge/Clothing/OuterClothing/Hardsuits/empire_praetorian.rsi/icon.png create mode 100644 Resources/Textures/Forge/Clothing/OuterClothing/Hardsuits/empire_praetorian.rsi/inhand-left.png create mode 100644 Resources/Textures/Forge/Clothing/OuterClothing/Hardsuits/empire_praetorian.rsi/inhand-right.png create mode 100644 Resources/Textures/Forge/Clothing/OuterClothing/Hardsuits/empire_praetorian.rsi/meta.json create mode 100644 Resources/Textures/Forge/Clothing/OuterClothing/Hardsuits/empire_praetorian_officer.rsi/equipped-OUTHERCLOTH.png create mode 100644 Resources/Textures/Forge/Clothing/OuterClothing/Hardsuits/empire_praetorian_officer.rsi/icon.png create mode 100644 Resources/Textures/Forge/Clothing/OuterClothing/Hardsuits/empire_praetorian_officer.rsi/inhand-left.png create mode 100644 Resources/Textures/Forge/Clothing/OuterClothing/Hardsuits/empire_praetorian_officer.rsi/inhand-right.png create mode 100644 Resources/Textures/Forge/Clothing/OuterClothing/Hardsuits/empire_praetorian_officer.rsi/meta.json create mode 100644 Resources/Textures/Forge/Interface/Misc/job_icons.rsi/emp_praetorian.png create mode 100644 Resources/Textures/Forge/Interface/Misc/job_icons.rsi/emp_praetorian_officer.png create mode 100644 Resources/Textures/Forge/Objects/Devices/pda.rsi/pda-empire-praetorian-officer.png create mode 100644 Resources/Textures/Forge/Objects/Devices/pda.rsi/pda-empire-praetorian.png create mode 100644 Resources/Textures/Forge/Objects/Misc/id_cards.rsi/idemppraetorian.png create mode 100644 Resources/Textures/Forge/Objects/Misc/id_cards.rsi/idemppraetorianofficer.png create mode 100644 Resources/Textures/Forge/Objects/Misc/id_cards.rsi/praetorian.png create mode 100644 Resources/Textures/Forge/Objects/Weapons/Melee/Laser_spear_officer.rsi/equiped-BACKPACK.png create mode 100644 Resources/Textures/Forge/Objects/Weapons/Melee/Laser_spear_officer.rsi/equiped-SUITSTORAGE.png create mode 100644 Resources/Textures/Forge/Objects/Weapons/Melee/Laser_spear_officer.rsi/icon-off.png create mode 100644 Resources/Textures/Forge/Objects/Weapons/Melee/Laser_spear_officer.rsi/icon-on-officer.png create mode 100644 Resources/Textures/Forge/Objects/Weapons/Melee/Laser_spear_officer.rsi/inhand_left.png create mode 100644 Resources/Textures/Forge/Objects/Weapons/Melee/Laser_spear_officer.rsi/inhand_right.png create mode 100644 Resources/Textures/Forge/Objects/Weapons/Melee/Laser_spear_officer.rsi/wielded-inhand-left-on-offiecr.png create mode 100644 Resources/Textures/Forge/Objects/Weapons/Melee/Laser_spear_officer.rsi/wielded-inhand-left.png create mode 100644 Resources/Textures/Forge/Objects/Weapons/Melee/Laser_spear_officer.rsi/wielded-inhand-right-on-officer.png create mode 100644 Resources/Textures/Forge/Objects/Weapons/Melee/Laser_spear_officer.rsi/wielded-inhand-right.png create mode 100644 Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear.rsi/icon-off.png create mode 100644 Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear.rsi/icon-on-regular.png create mode 100644 Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear.rsi/meta.json create mode 100644 Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_inhands.rsi/equipped-BACKPACK.png create mode 100644 Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_inhands.rsi/equipped-SUITSTORAGE.png create mode 100644 Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_inhands.rsi/inhand-left-blade.png create mode 100644 Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_inhands.rsi/inhand-left.png create mode 100644 Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_inhands.rsi/inhand-right-blade.png create mode 100644 Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_inhands.rsi/inhand-right.png create mode 100644 Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_inhands.rsi/meta.json create mode 100644 Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_inhands.rsi/wielded-inhand-left-on-regular.png create mode 100644 Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_inhands.rsi/wielded-inhand-left.png create mode 100644 Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_inhands.rsi/wielded-inhand-right-on-regular.png create mode 100644 Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_inhands.rsi/wielded-inhand-right.png create mode 100644 Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_officer.rsi/icon-off.png create mode 100644 Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_officer.rsi/icon-on-officer.png create mode 100644 Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_officer.rsi/meta.json create mode 100644 Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_officer_inhands.rsi/equipped-BACKPACK.png create mode 100644 Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_officer_inhands.rsi/equipped-SUITSTORAGE.png create mode 100644 Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_officer_inhands.rsi/inhand-left-blade.png create mode 100644 Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_officer_inhands.rsi/inhand-left.png create mode 100644 Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_officer_inhands.rsi/inhand-right-blade.png create mode 100644 Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_officer_inhands.rsi/inhand-right.png create mode 100644 Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_officer_inhands.rsi/meta.json create mode 100644 Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_officer_inhands.rsi/wielded-inhand-left-on-officer.png create mode 100644 Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_officer_inhands.rsi/wielded-inhand-left.png create mode 100644 Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_officer_inhands.rsi/wielded-inhand-right-on-officer.png create mode 100644 Resources/Textures/Forge/Objects/Weapons/Melee/empire_e_spear_officer_inhands.rsi/wielded-inhand-right.png 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..05cca49cf4c 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,7 @@ factions: - Empire - !type:AddImplantSpecial - implants: [ ImplantGuard , EmpireTrackingImplant] + implants: [ ImplantGuard , EmpireTrackingImplant ] - type: startingGear id: PraetorianGear - # equipment: - # ears: - # belt: - # pocket1: - # pocket2: - # storage: - # back: - # - RadioHandheldNF 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 0000000000000000000000000000000000000000..05cff8e8f4db0e0695e9b4c33fa75c8a9f491b86 GIT binary patch literal 888 zcmV-;1Bd*HP)Px&GD$>1RCt{2nm=e0Q5?s=Ee_ssp?7#ia>+rL1gVV>Xf4$#popDXad6F`L!ql{ zX_ta)z@Z&n96CsG5=w_mDzSoKVn8xDoOeMQxhn~mPCke5&P&^&@2(dq{60%Acf9xe z^M3Dm-1i5>V0&ee#Tg%$i?BZ)b>QZ5i2;CNWSJx@BTa-PE6gymjQf$lc`vek;RMXh zF0kkK=T8}&n_U=563()-WOO6jk5mDgA_D+A?LIPw8D)ytWDFCXc0cw!LJ2U8ENe9D z*tL$KrzPlV2>_s}Ds0CBFUzEmWQEy|g_-FB00cf%-Er8Cg(zE5C;_hLK~q)a@9bdf zlN+pn>v==JNz-W70Sqdz)9$0B{fRu6@D^}A57jq!ga5W;1=pIYMs_3$m0AnC)^V&k zgcG2tDju#|LxFRWt^i*8Gt&jwj)iXb2)1LP>W&XR7hz0vK)G08d%s+)&gTFORsk3U z-}igM^NBJyyTEwxoK$K88NRck{LMiu2RG<|~ zK&93~#xRjF%)o&vOxWLAC_R3Utq)J|$h<1#fC#+GxH26MKCBG){oc9f6mF0>33nje zGms=(#LffZ zMkq~HWA_Hcb~M~90U*)fIg+d}eh8xG2!bF8f*=TjAP9mW2!bF80saD-(Q5&FP$s$n O0000Px$Oi4sRR9J=Wl)p;DP#DF3R~o2QYEvnqHbD{H+>D|=fVevO1a3Zq_zZ47frGoF zn<6?o=~5`R4r=QknqY=FB$qTHUPS~`yuT%I@5x8b`3?b%M)ThhUkRM0RRCs+0RWSw zLiijpf_~k>#Vr7xZWn-Zc}xJYz%j>gpe*P11-Ch82-EKuEiva8_n@M5Q1Hi0Q z0Jv*4<&Cln`A;2}q=q)8lm@ZoQ;$=LuvIZtpGg zesB_yPB!;Lrzd++0@l3py}|FmT(u$qoSGRx?0k16+j+YEhG7T*_mlbgPr#{#f4qC| wT>xxMgh|{q9um6ruBCI|_fhfZ31~E$4@i$#aNYFl+W-In07*qoM6N<$g5egh$^ZZW literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..1fea152f035933a25b5904b5159db6834fba4762 GIT binary patch literal 1390 zcmV-!1(EuRP)Px)C`m*?RCt{2nqO#JRUF5^86u>1{R4&8v>`**bX&5AmfMGR5OiF`jZ%=cINVEc zR`;-nybPU6)xr?zgFyt9P${BwS~sB-H%gcga1(Y(kY+7uOW7sn(m2~jYEorkxk23-&m>Hl&~`XGnE>+JtE`tOdB|xmeJJi zQja{irY&237(Q?jtd4JJ3h+56_(VvNuzLQ^tts`h6bVD{iMsZ+!pit%D>NCJW4y8) z!6)MG%oLj1UAS{=3WKNeK~IlfENa)==RMHVp&s$eUhHV=W~Dj@fG<87$I%`aJ_!C$ zbd4to;6Q6Zx%h%lg#XMS0O0b~iK^q5odW9{E4KBG6&vp?o0idR--Z9&Xi?i{`>whw z-<_FKzgw>VO6(WE5dXQ+s^c441J*ZIY}!YTARGq(tR`gi_IY(}YyAW$6(2xRTr1Kf-q6VUg#osfkl9*7W|N^g*3s6@>udN-Nutx?JWv5l{}*U&X~CI~lSnB^-TCH*=c`V_DBcq%^Reu^ zNGVBdZ*L)`B=O6y)4J>IfKp%c?zU02WZx3S#bj-~$yA4vCYoern^ z;{m8e=yW*oK)P=_epLy-_2xJ`;^+hbOy8UV0Mz2O*9;Cv7u(+6!r{ZsP?W#w8k-;p zf*=TjAP9mW2!bF8f*^>eh(cTIzd*G)8QvP>sv7t7_-CusI3u}ebKtI^*<4KR4aTBz zj0FOaB4ORGFt@i#xqP)m+rQQr(;8xCcdIKFfLE34XTW1YF`JeVi^h>n%Mg4bV$nGG z=rEOq0r*{xMdJ{BqAs>JCm`<(8XXB0{eWy*MkpB6DQaAZ;78!GrY1$gxc=q4HQ%hf zGB#v$dqh^K%4u`a8f9FVtVG#FOG%1_f@0y(>Rn>DM`V?90H75n%jQ&Z1jM3o^!9mm zeqJd{3;^Dnc-!)A>g9)F+x%>VUA{Vj)1w!4*Z5uM=Z&lf`zBmUQUvl!+9M@}kzo;% zw1o2)UQt~kNm{bJ2=lWMHhudZfV?TD^@I2G3CjtS`zBjTQhae>Q2pVLloSA9WLU(} z9#>t8Q0m8Xhmhx~od!mP$%=_`Q#+fM@$ENL@LzgewZ*ugBnZdx{=_@@@%tM9fERjP zmK0zuA+wv21pxWEolVPd9%(~LNvb(DwjR^136-2d!@4{G9C|jV+F|j<1+@q%C5e|t ze#i2?^SCztDPA7-SvCUxOlQ?$&t<92Ohy%?Qc4p4{A~wdOw%=_$?=Zt4ULQ!fWs5e zs&iJNUDyguH6X9?<@Ss_L#8dU_~HUmN)p}^Csi?0tIkQ%l9?_|@zLks6`kXEKcyrQ zUtBP4s+krgwZk5Os>}H=<<&VW3&7!va%1Z;Y-avYH8}vt?d_QAt0r@Gem25@`aA}; wuebG9^9X_<2!bF8f*=TjAP9mWi2pnP0@W&q8$^hDMgRZ+07*qoM6N<$f>2$ij{pDw literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..dcb3dd8eb84c063e5dd57c5dec6245a8af471752 GIT binary patch literal 563 zcmV-30?hr1P)Px$?MXyIR9J=WR6j@pVHE!vElQ|?pk2i^UfM}MU1Iy3;2TM_VW;95+czs6j^TJ#1jb=3nk=pSu|=Ys`ZMg*u6#sAtVv2b93TG zO@-UfYhRYUiA#64Swj(~O2BF^#w6r(SVobty zIt90%$JIp&Q`6r`XBO96c#&w>ushmr27E#KDL4Qe?C)T7jK{Wo(z3@y0x*0FZA(zC zR~*%P#leC#YAQU=cdRZfws1YpcdaX~(<#ljU3^0U%|e=6P87!h0QY4Tk!V=QwbB8W z!Er<6boJ4MI7ts>l^)6}C6x>Xd_i)$`iSF(EDs|~lknyB75!c>gsD?3tt{id{Cz8K zKd)2Px%gh@m}R9J=WmETKKVHn3hOJnQDM(S`gqp7j=V@f2_g|1!Xsj#|>yp0$my>diB z|3Mc<>@qqC-DL>X#V&+~fmj!@wjhOaBx$6ZnbMr5q?|7F9Cl{yoHLQS*!SkVJn#2? zp3nO}@5_ObN-C+Oe=Jimi+aU~1R#dP1VbSJZU-+Hm1~#L1s<;;CE}y1SRy`($16xX z2H^1uQm+`1co!oxGo~s&G_Y|xT6dvf3sQ4QQ)(`0O1wz`u(Xh(s^%cVxhwow z+sn75-HNxSu0eSfLj!%v+Cup?0RRG`)YjV7?^{|(VRd={aMd{hm`%^)I(ky^R=AoC zy#QSRvRb?PyG>=kn4X#DdE^<@j!LQ>l^aRSHYPq#U@BiVR9q7vAWChU!zO^`<)7GV zkKs6egGU2{%%y2_W2j{(T8TbP=fHj-j{000)V znFe1M+3cb!zQ=6ad4Ln`J@?%8jZBO@;Npc#N_=JUI~Hpd=R+@iMgcT0O#VFpj+A{J zxn;9jDPPO*IuQrJ-QME^=nI-&83EAz7v$*uCd8-pT3`3VX3*V!MxHB5x}Hql&2Gw@ wR*D5U%Kx|Pl#SH=c4W!t@CH*)04dtTv>Heb_!~g&Q07*qoM6N<$g2BQ|-v9sr literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..a5f282908c7a65f6222a4307bcfd771ddcbbdc96 GIT binary patch literal 730 zcmV<00ww*4P)Px%lu1NERCt{2+A(NaK^VaCe@iz(5h+NzSc_An6aoR?tV1xGv7inqq;^v%U0SF} z0(L2dWYZMlkOVTe8ZspFD-?uM>=c^1Gz5Z(fy}RioKe#uckOe@_gj2Cy!*WG?mdU^ z10im;J0^qnwi*t=T5XfJ`R4#UeU>ts%S5GAbtdneOz_@ML2m1z_EAYB$8v#ey`i7*X>g- zi&t@#P$Wzyk<^~gXs0Trsx#TG@#*UizJIe_uhU0kY3K11i>3Kl;A-bH ziRAPeBu1(3tft*^wLfT-70)}1)*N8o9w&qlLI@#*5JCtcgb=sVA6T#*exf0AnE(I) M07*qoM6N<$fPx$Y)M2xR9J=W)ICcaQ5ePX-vk9;fCXh51DMi6XyEs^=Sol(egl!Cg^sXVrq;Q7KEbJ@+VHYz0?#_A6+LG8<5mckX3L;BekWC* z=t=$l+1IuU=kpvz{XBxw z?J=+!9)P*>q*zbYU&Q__I-Wq=GlI&qS74y8A6#74BM489KzZVRq6e`Ks_);l{ddO` c$jQn117Iv@C;(N2>Hq)$07*qoM6N<$f-y(OGXMYp literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..eff30b9448d1af7c3e7662c8dff25192a4a8c2ed GIT binary patch literal 365 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1quc4NRUcjv*CsZ*LiLF&PT9K8#7wR|vZu%@GxG z>sBR;|Kp8Q#VZtj)N_ow{*ZU^SS|40C!~cHr+5Ua4Z~hcTUzd9JUa#+~&A!b`-~7pn zoF?|-QvTWFTa{Cuhg)S%b+YZtb~|;B9q3jt_#yx9_*c>EJtCWzKhr+5_T@f*`_;Bn zXT2}jzWDd7jh%1)T$@soP|y7C#kTzCG_Q zrauqA)pAJY-Q@W~|5$%cb*laJ@g~pBpHMqKY`(X|I6&d`$}@r>5l>e?mvv4FO#my4 BpI`t0 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..65f28e013e76ff859261b9ec7020922314068145 GIT binary patch literal 527 zcmV+q0`UEbP)Px$$w@>(R9J=Wmb*#=Q4of|jT<)_mw1DKvKsIb@B&(iVky{JSlC-==L^_~jW1wn z;R}d;9>GdMM7+VGg$9%u6YrO`*d5&yaa9mqF@JNIGc(D|cZPEo$||d@vi`fYAm?O% zF918YPXO5GdB^YXi&X-!adW5SrD_uzK-!1^u)Mzc?tetSR`2&q4|47ouK`HcR5<|m zO_t(MJ{AFJu1_la>Bpku#1Txti0HfZJ%XycQ zD7AO(QzgGGt`Y<285{$`PN1Q}y(w4rZ3n>gI+_{iP~xQX#kD;E3WYrIdLtfOx`br) z>(>bc-c+V(0-)a(;@8l~v|@L)w*b)H(W``CRG?2|JV=BAjPU&1~)Q(}Idz%#I!o4pAl Ralilo002ovPDHLkV1mYY?g0P* literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..530a820c9d583534a49f8116dbe80277cf5145a0 GIT binary patch literal 1499 zcmV<11tj{3P)Px)l}SWFRCt{2n$K(FMij@tF1-bEwGOca^F zT74h{+48)3KjvvP?*R!32?+@a3IA78_dS6q935W_o}X)YyisJIJ$w2nk}mI0y5Z{b zdf@$RZGFWjEbM(z2pW5SPQqq!m0f3L_dQ`{k2S#6<@G?#=K??H1$_ANC!y|(!l*gm zRC8T=?;)d2l0Pv50HAH!K4G`7UJp#G3jo+V)qMA46e-Nmq2b5h+C9YCm!G4oRR915 z)o&m*pMzdECXV~wxG&e%S5kW2@F_!+QS&*U7&^1lHD9Qe~}zj3Tjl^!kqc z&El$S8AOpk)&O3};{Z_84YW-gZPP}tZ)0osFm|s4PQoK4+omIj#tm&wM`o>YxHkK$jTBMlX$#QL_y6l2M`%Wf+DAd#vf|{-ukB1WrNprgM}U~ zfnMLn!;Kvl1)IfH935ZyvbPA707=QM-9r}sL{KEOO&e-H7x?t>GBEI3v z#3n~kP}V9it?t;Ui2^BFzxvjd^!OY=a}r^q0m$ooXthlnrqyLx*tELHD3Z@RaX?BH z)Es(!8+zSf#vnu2^r4gJ`>+lOl?2JFqY{khx)X(0I_RlG5iu$;jw94QAP7ZHgI}Lz zt%Aj+WwtzK!Q#>~+NOyLrX(p(1|jd8Ru{d#&EC#TtBY2rGim5h zR2xlXWeL?r6MH))^!hfcjV8)k1vTAZP9cNP@~AeNp~err6C|(eb;FnR6giFgx%hX1 zJlTZ>R2xmq&q>HGETGltuuW1yb@u($Ml=4M;K_a|)#`LyNrqo{o5fXp@%#t&2vp=W zs*NU2_Diw63ZLwkQoJ{NeH%Z&{*_$^J)K143%v^f!)&X_X()0UdfmXgH*bC0;aRb_ zQ^LD9Z(|!z$N;pigWkZtIsXw^SrQJxxTrRo&e9Nk2MN6o;KPuA)a{*W|AhYo-+ggH z#&229+vlraoV+mVzOV?b(pzL$%aFV67kXItz#uC+f&zE|#D$WKT}NJvOXNJvOX z`0pV6;=osXrakkEi#was(ecILkKg`ef76z}{ta`ATo(Z7VC3#2f|PuIt_2>>h!ENU zSC`iVZ>2b+NS+B?3}$TvzFrytby*<-aQEhr5kx&8LROYs#-@|#nr^TnN$hn2 z9yOn1MhH@L7A-PCGQ5ovSy^%wOhphfz^KBbX?2Ba^3y;v_I65v-^W@U9YqvN$BB3C zQ)EU#$N&X(*cL~gh|-i07krrQ|=)I=c~k-`x$uJjeQDIqGhPxebGY#$7IeH*|3 z^?`3bGusJLrv|mE+&A7v34U%Oj)=4o@(PWsFumoLuH`sjgcP6-L&`5OThaVk%!Nnii~002ovPDHLkV1nA8 Bv^oF) literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..c98b4855d1d7a216ddfe8b6d7d2b8e1baf4ca3e1 GIT binary patch literal 644 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 N002ovPDHLkV1n1^Y;^zt literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..f0ea2c506d8e2e21320b09aaf25af3809453ec2a GIT binary patch literal 1367 zcmV-d1*rOoP)Px)5lKWrRCt{2n$K(7b`-#$$8LdKtwSQgeCQ6P+SsW@CSV3Wj1+PhE%;ytWAsv5 zFvuL-}mWB?*VW)91e%W`M*+Gw*pzXefPfi<-?Zmx2I1YWU}S`qzn2NS6=Y9 z-MyWVF#5Wv^LcA&}LN(=iQ+Tfnd!kj&*qm1THv8#WX<^jntg7aIY` zC+8l9m}$AhNLABG=+U7$F`dG5fU4FbAOVXlyX~o%JqL zn8D7SPd=;w%=i7~#zG%D2V_}*#4UiUPKWr!bilM+P&FMIiVV}41KLmr!*Z70CKqtK zVFchYy(p+hBjr6)CBd`aC770*D#2u}$W{R#gUb?Q9I5JnC?v58N`0P)?tF9)l)4<7 zEc1YtXId^f1_1KRXVoKB1hiXCFf3;tT8a#+rh{p@WGmdf9Tm3sX|VXYc{}nQBQ;TA z)+5#dPoF%fsG3f^i^kK5hu-&DLNG1Cj7~p&qA)EtpF+s6ZDJ%Ej}D=8LPL=wOVYd; zjK(DC0?hLg9;=#89MVu^FfA7bqj9SHrmh5W)wQ7>Dthp-#9D>1P}|yqnkW!?hHaDM zhBB}F2ct2w4v7vpJ?vBr+x8_HI@H^(CQN5ep~lmgmg_5oqMlBJ(HKq-JE@*VOz#2! zi)<^2RglCgXhR(~Hw2KxYT$jR*k$Yz{i1$Pc46 zQSdqY$M3!gUBfz{#S{TbT_#S5GPLO72$b>Y>u;B?ep1UU2$KVr?KhkiC}S(2jP5}v z@_eq%(Pdz3dR@?~kCP)=VRAr2S&YTuN)*`^vQifgcgiF_%cF0iS9uMe*5KDa!l*SvJjaHp`g&B zCqtq@nX4{F<_{vY(X2xWd0^Of?4U$im>obSHK_k(4<(?y$NNX#s~69~`1qDjCk`h) Z{{YFyWpC;LAdvt7002ovPDHLkV1kCoZms|T literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..09d6085d42452407c24ea09f8166e53133240f3e GIT binary patch literal 1343 zcmV-F1;F}=P)Px(`AI}URCt{2n$K$+M-<1uE~PYzpgXlxH8Fx9v%bU$K~9x{($)C zW1&9w+CLyZxtBA&lC4HY3 zv3=8Ag!|?KrulgCJ@oXY9I(5&Ha5-0fEX(l;0`p`U#fRg=KY9X(u{B3_TK>B`7`@|1S;Uc6fUPW*7h_ z13=Gp^ra%eG#3MnQ|OZ@GYsqww+OwXws!K<7*M z?gW104m`YAGXu|fdjyAjsiT1OsZHY9!zHj{VQSQA002nq$2!2_9yZpi0D>N8#e)Bt zyv+;)JNw7JgErQyAmeo*ed^TS;h7))L{ud3_DEVkaSB*gH!$iar!8Mt^f*Pq$!QDj zz{`A5q>ldj^W(??0IoY8j?g3$9YA8@w&xB!uwr4#8R5~%0_qei7QhU{cQ61nY!2QY z`TBtR07xx@)TlTmM8px92V$q=^y3!BS!kUDSh0YH%>%}qoVKuZzlx3Z>f9W%biW#_ z4?tO8$^o>Xgcn2#KjP|B3zpTD7MF$euRcwtT$H}UJ!Sn^2fTcDzR<9_->A67ghTQ5 zhmV238#c$wcju{&!(n~kdMB7Q6?OCzBcRhC!r>k|{UI7Q_n%o-*Ix|Xfd^(7*s3r; zJUjhiVh3dq^|vYv%rGML$swxx(rdu#a@lvn>T((NOUK`5S+M}O*9$l)Ye?Vi^&<68 zPFq^~i4HhuHW%W&*|0hOX#Ew~0z3U74w}tO-Uh?^%rJ1|PRwrDe5%tb`pUZifTIJ#OiX{|9sQv>PtsJ{n7ydluHGaO9lV)>kl6T z;ZMKI8d0Aa297>|@ogb{bo72|F)^>%gi`3s)@_=Epe)}4^nCg}^2=T9C@y$YM=qIP9Q8fe7Bg&D;2 zCy&OmH`2;CLg8#|xH6-D>CE+=TpV%t&Bc^WswmwFig$tTz>BQTsC;)<+n6MxqL8k~ zqimEx$pI@5N;A{ZH_gueab&7||91v9| zqf?ZS7AnLL7h)=+P>o3C2uR8lr!9(zg9;`9;P-z|fwH#ELU|1UCZ#EK=*YS#A`Y=o z0+<}mXdO_UiqhL)r$59BCa0`Gr)?$8OmKTWbiVxturYP|QyB=Qa{z^3)RvQFQA8XE z&E~>(tu|(c0q6S)Dt`|G_RQ@hNR=8?s&dWII2)0FOtZS=O3p2VAQ_~5cB{5002ovPDHLkV1g;g Be0Bf; literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..bb49db568776912f80f13b1299ed0247c5682373 GIT binary patch literal 600 zcmV-e0;m0nP)Px%5=lfsR9J=WmOo3wKp4iKiioBGb2Oz?DTop$_tNfCaPx!c*bm_7m(bD4Q4lwW z7IAQB5o~D<1Pviq(n6cK)uG%q*H&{$2M7BsyMn;$;sseB50|4$F52vB` zRTRgv5NooeOwWyaO#u< z5KY6y{WJ9ZmXM*P0jkHvu}giyxt`w=zVU`W&WeUGN9_PE^`)}#D}YOVluHHfh>55Q zAG2tQrs4ehkpq@X1-R5llp;&eZuf+!YjukQv6KVgS*X=5ctc;hDI)<`wBc>%4Sf(* znS&vkCgn6105FXzT#`kQNtEauAgY3vNd=f%-NNop0p(I57LXJGYpB_Vq;?=Q=f|go zcDpC-JQCpQrIBixlpAG@wWt&~Z|}l$%cQt^X+$2!k^cqGU^M+Tfx|r=&S1o$SaT9h zLnTLedDyz80ho>svS@Z(z?_bA+i4J0nLzaWa5gspQ`X`{kv(wN?WTTZjG&?Q;Age3L>IxslTXu literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..0477dd3b95ee1b7c0ed65ee346224343749cc3b6 GIT binary patch literal 1350 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..5215028c99d648af80ca26644d02025a869f48dd GIT binary patch literal 1314 zcmV+-1>O3IP)Px(+(|@1RCt{2nm=gcRvgEFE?uk>oJ8!V84MQ(Cy?4hh7#;f8IFRtZdo&QDRd2V zX~%e(#U<`vE8v3WY+U_`j0dwgEEaHQoREvrhv5d;aQL>RCSIz47wtslQGv?)#*$ zta$AiLNUUWEVh~ok3o4O{gE#v^=c!9sv>+d6yg%gP5fjb@t^oiq9n?&_L zh`RyP4+Q{#dY%9rLq%PGu9F7fFYSbcu1D8Aw#m- zuq1@XHFYgA0C>%7$65zmoYeeAy#xTk2Q_t#er6Y+R=W=`-`;FwYkm3lCfBtI6!!9T z3WV)Kh~q({UV@90T5J}?W`Jdl0#R?Z`&5|qc$S!kK|iwrkXeIb9e~j`b&Y!4ozB73 zwWTx0TxZg53rn?je04tM#aJ9fJVI(h(5awy3;vy-raBurUB}) zharH)%5PaCp|RFF09Rfdl-**oo(dNyHUIEQfnLYycWuJ8BgJOGU^0UtnZsZ*gRV{J z|14`n7em&dX1UCD01*ZCG2*PgJ6#3@r{`cY;~JOyC|o@#Lg#J>U@t%KK7ItIu7PP7 z&}#R&MPbrfW`I%J^i)VwpF0COcS8UGC>As* z7Bu?#mw_8dNxUy@SbcXqhF|~so7#f*$mk3GaEY4RumAWH&OZK#Uh~d98CdcY^G@KzF(*LTsZr$`USwh?eKM9e{<2 zRpscc`R?c60Ey!jyT@Nnj=`)hK+AO|MWo}@SC4r3r#^G z2Q=y>>V&9=g;PpU8yE=^|* z8~t#~Z*&(hb&WnaMna}3AuXb`MS24OBr<@V23V65ZAwT=^|+Q=1`0VKs!c|wDIqDH zcQ;^JBN&o-V9~uesrjNADVzaumEujc$pI`IHUJjwxyZ9G&io&~YWgxYN#QjBVA-02 z9UG!e2}u}CW^jJAPZvTwoY5{)!Kui-4GtzVID}=3O5mYwAf}BLDyZ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..952ba444f617b6a4c2030c473e8f8de5e7cd9b7b GIT binary patch literal 1934 zcmV;92XXj`P)Px+NJ&INRCt{2n#*e&R}{uSl@P3ngf(OaBiTm5vV$E2vY~l`Aclq*?*v_B*%Z2H zpmY~#{(u_1D}iK@MGEmM1hO+NE_7jtGD6tC35pjY|;RL?_U0T?02oMb&C79t{SpO zf~MCnyRhtP_q`R)SiLb27%%`}cudB9-4rA=y@ug28Oe1Gfxv)~&A#ur5dwh$L-t5V zI_68$HU4{1{ZFilSF08FS@uX!{BHKg8>3pSFk^L!M*UWZ>bLcPKw!Y=4-8^svjR=8 zA-N7Hem8u+p1S*z>l!q@1_0;}3<5w$JmDmL1@4aMTOI;lZ!aFdUc=YdE&;jvYo*)) zG`)t$uh-!9_F8?U5Uun9*w$}p0I%0;^alo!$?mf6iY3#^d?Pfy_V4!qGTB}92L@5C zR*Y)3YTFA=(x-q&$R5eIe#;o(_4Z<8GY-HUTL4g~>^F@8h01>2eH)wcQ+vZn`kHPU zf&MhTW?R3d2i)$Hfj${8l4*QCd;tKUDyASm1~t8ga7aa8?>PXdyZ>qSy}&EiGv0F+ z=uxp)EF!9^0Dy2vWl^6DzZMRWYMIANBdq zsv_a(+jp+0sr&C(x&TCkMrWMmdwQp&BvXlo&Hw3gsrr=zGVZDi&0|$U_O;{O%Dwj z01%CsF+tTO%%@U9jrf@QmJI-aMgAy)(DWMSQz_Okx~3&+tsZeIoY1$l9d2YRU26H+ zNhk*JXnM`|j3eX$G|n$xQ0f}-b3p@^%>Pfj`fEiZu?GN6H$$3Uv*mr34KTZ~?0Rx< z+5iBbuLsF>^ZU8g4Eh6uxN*f?n}79a-jO4*_;wMosZqTAY2(=UM6>Jdusj52Vv~l? z*8`ugr|AlduF<^RY5IE4;nmVEqLCo}IQ*+_^AirKh(>~VwX}O|k<<=L2AG(*Y0&PA zR#?0XX0p4?D8pkiCMIrn)Clyv8`lS+_}z5k!=NB|C&Z3m;WTf8y8AT%O1(mS^yDdVv`0f%|+`2gw6x*-@0ndt!6N{nt|eX zgLa1>lPCA44aM&UwTrJCu!7K`=)>g%+lXYcyZGUYD*(*YG~u*Y@Viagpndz}Z*}eZ z=IV&$b_gAaRI3$axP8u-4;S#@vrp^l1!gd5IAw&H*ks+VG`X(f`(J*C*W1f7$W{v} z2+Ko&#@KkzS={cEnGhXEHRkD@f^_&Td9_->?LOH|rgCkyf@KeoJ!X=WPG27!9g9&? zqFK>`6VTZoX@7m~5<4xv2nAR?5%XEPFvG! ztX^ul!J#;2aCK;a^klYZV&3YC4RdVMcbyP}bx&=9cf0kX$TipHi!5sd^9 z-!3vCIqC?X! zKLa^33(PJoyZBWWpMOsz_KqbhoPZ8Ld9CESR#&V+WinQuDLe!y1x@oXRcaBUYjF|y zXY&y*>jXO;V5>d=`0y{>iqo{kmIqMOr(E5~fX@etto$0W?E#A4jrevEvd0{QA7Ta| z;@d^ct!9|Eo#~ITZ2-W`*|WMG!ClyCh(?0w516TP(RzSJY#D&B$)U0tKrAnB7t+|+ zj5FH*gOtacys#g%@A6IHz U#asm)#{d8T07*qoM6N<$g56HAegFUf literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..bb53776bc602274544c6a79c378dbd8129242d8a GIT binary patch literal 837 zcmV-L1G@Z)P)Px%|4BqaR9J=WmcL6IVHn3hDILt!!#jG1crhp%O9Rs4Akrbw4ASD%K>vj<{sBVA zPJ#XbI&^So$3iz3hYmuulSpmVUI>acQ9QYXJ5RT_!}Y!7G}@jzbnpuYx%YkUdA{%W z`H>fHaf@r9Tq=rksVI`}wd3wpgIiX=0LbNaX8Z}EcPr7J>j&iWI+YC<%jy@k+OO1& z60od(;d#yIUGG*f`qC|fdh4g>H7_NRn1E&Vi;R_JbE}E#2UIq|=u4w%T`{}LhKuV5 z0A#EzKt~dHk`jiQz4N8s@lWm);bX87T}fT5M&F)AA_b)5(({KD>I35Ewi79Ewgw=qk8-If zjJ`BZ{iLJML<$&vX>xfT+dcxq6COH2#~L_vg6PDyeMBy=$7jVKBvL@0VthP9qj8FB zhe4Lsb|^3q*)6T@Fgk3uNNal3o@a64h`b1LzPo-9%e_p;p%d_6(1_OC?OuQSd@f#M z0_{Ykq_%w&>wD8s7#X<_gsOE4EOF&OqouVSdbh(ilP8vW*Si(IEQiBN&Vw5#Fgk2T z(k`v-0I*Q4rly951VG_&SQDnNuu!euJOLo8>H-6}e!xPt8WEFwt{q(F;(7!m+H?GN z@oNg;-SpI7FC+gy%B7;1nVb*+Gm{fS-hyrt9aA9X)3h!s8{yiA?|WpdEN@;s5&*Ae z7p~mG?Kn4z%cY{wv@SHQi$>%0+y`>+UoM=935< zX5wbIr5_wsfBs+gSnA(}#~JPKnLFTM#qOs`d3QEe@5w)xH|@yZw^oyQx}EQzNt+(A z-i)DP_3U7V165lO{(W5hI$Jd`;ZAYxv}=}f^Wt3I|BTSm;Hzb3hP}Z7R<%y1;Azn}9&eLev~=U{ z+pqN>E3Vo(?RI~H_|3QK8QGhzCa#oYx~RS-=8W&GGzNyHHcK+iUg$CW`YzD%j^X#y zw-sDh@6`YPex>cL;)~6%UFunmACqHRbkB~#h2wd}mP0pFVdQ&MBb@0I59L A2mk;8 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..c460f80c6ac73b43fcdb461901210bf72788b9e8 GIT binary patch literal 466 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D%zdpunnLn`LH zy=9o+8xWE+TYb2EzX{P_*L1(vn3l?*qrXJ zb7pp|jtG!e_*Z}V1D?>)o3n~{qUeY@R{9H#yvLnj11Ri*9vuC|G0bAPLt=GpXSWo)nooUG34c^e$lg$ zk&NF}J~QM5PoH(IRo?BxVUAhX*1q}MA3N!D^0n?Su}lot@BZxy^_4AFgF9DgQF7(2 zJJYqUNNFdh9oWbt$->TZkg+e-Px+SxH1eRCt{2T1`k>Srq;pIx86^SfRWunwW}MLuzYM@VOe=zzk8lDNKolVW5e- z7K$5XA{_<0DKgNNv0zsj1Xt0lVwqK+1mh6IjEKfW(1%bY=-{Ta$Sl%xy?G|_-It$% znS2n8dGFot-1E*o_uO+1&_DwXG|)f;4K(mSMU$SJ?ES+z0BC8x0RT`|gO{F@ANq4= z=f~Ju3+o!w2<-jCxt8V|7?k@kF*V9~W+vxyE6N4{;OzVu0CdYy_9pGb&(4qG=#`P# z-N%cOA$DIXtzzp_7Mb0B)Jh37c}r&p?Cqw4Yb(kIES(+LOeh7i0#_^It8y1xns0ze zEu9@~@E0RPFtxR^4{4vCA;nb-GImdthp7 z#jUQJ?DOjRQ)G7cF(~&jVP+=hs-grM=f%hn2IW3vcK7k>`BONZ-Rxs(YsI7cJvci* zMrL;(05B-`6Cfz`~Z!i`3`$K2W&}v__&S-11@$SSq2IHM0Q|r=b&OM z(DLsmeh2U^0I;`1^kNX{h3mSj(SEt5{Js zV7KI>JbLpM$$Sx~2=MC`kk%HEH!=PVSR^x?&Tattw^ogbm*VH+4(;UWx(L6nNDx55 z7DsQKC#P*sNhX9QRtY}<#!n7XlwY?3X#XW)fc!~|4n6_Dj|p_u)?);<;@7PJ0L-gW z%ssIdW`Z$~D;SIa+x%s>!BQY|EA@XZKnW1?0X%41SPgy+vUIqXJ-%SY%p%+eP z_oWy=6pgU&v*TmJW9nW4iwny+N`MrL!|7V3N8nQMKby=gg;x>q`_R&SgPjw+ZV$X} z4+4H4mcpwbE7c2K3OGDG%+cwKA}lh&R9Z!5cb_T6B|C6(0GrBAHvku3QK24 z!F6(iWT7Jbx|TpJ7Q;7Rx8wG`4z>=v?p$YoL(yZzuLFPnv5&w0{-l>*7hrV5OGzdWi^ZzS-#`NmG|)f;4K(ndgz(8tTN_BFRpBFOwV{ib*mcSf>6Jsbuv&8i@+KGX`&hpKkXJ^nl(4w4T=Y~*8EPe&5LSRt zLPUEE&Fq5J?Th6IY60S*$%mp5mMtcT^a$uyK)~IG_& z;K9o!vIKN1z-E;&9h}GP_!t6yA41UxBML<$h7yuSF*`oSlA+`W0)8K6$Hy=ooG)5F zF9o5xfZWrI?8zxyvIF7wZ{c)yBcmR{>-I3yt5s5zA3J+;3a{IP6=efXXE(y{-@+w3 zkUcro)f&e`w-e;eYH#O&Wr6v^C<#|fkPo639ol~RU8p9zz{J$(r4|*MEbkC&2`YZ@ zT}cj*Ruf6%R^KK zLjo@@Ea$XQn37D?v{Rgiy?;2z^NNPQJcL4F0v(Eon3|Mo(HBq*R2H*YC0HbLL48mZ zh7_Q!$=e|2d8+~9cYf(oqkaKV80rrIE>F0gNf9kqCCWEs0p#_y4yc~s`vF8EKP?Pf zfT^t&p=jjNHdrsLC>yX@C4{1piW)KvD*(uc#?&oZ%Me(L#f9aZrLzO3w$@9z08toH z0N<0d6kcWDtKAn+48*aSP*`hTvA!X_FrQ2?qcG002ovPDHLkV1iNfgF^rS literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..8e0f2fe00141e9fb716f0c08de6101a6e899c256 GIT binary patch literal 794 zcmV+#1LgdQP)Px%)Ja4^R9J=Wmd{HYK^(8;)c zrBvwu(0K4x5PIp_URu2rOh~f@DG4FuH^fCK5)?dd4`HU8mL<9I19;p{*_JElvb{dOuo9GcTiyb($6_*% z+esvOjK}S)@qoEq^b;{NTHb;W>Hz@LQvr(l3GcstW@%=YTtUZgnq0`f9o|71ov0bx z5doKT0D$fA4vDC05ymphFa8CIjW;hXk>tG5$OmnE!0xb7IXma@C@x7g@&HuT68+%@ zJP=TPXj)3P74?&b9xy}GQUnxV=N_n>os&(MSX_QWHeHgdKRk*vJr$7s%*xmuHWn2h z*>p*&AkfxbU_OfVvO`r7GZ}L~v;1unFcT4yYFbL}IaJN+_um7ms?{eJXuA>uHAhUW z*j#kPv5O>+o6gY@fu)&QDeZQ62Y^IWwTO#nGqeU&)!2xtH%|bNuHFo-kt^tIL{&*l zI^I;a>(TNtY=*<5__hCk4WZR7Bec5J@UFiub_;=~b>NHo%>Wqo4ib<2WML&}+1uSW zK7LQ~;;90_gRD=4OXkpyxJ4No?&|Y-==?W*QB}Z&oG-D%>1`-&Yai<`uCa}|5@a{pW~pt zd~@D=nJY5V$;vAaMBaZng{QjaWkhXlopbyic7}q=(&odTgKca>t~I5Vx+lNrJLZ%s zhyYt7W}Gar?(CnXvw2CwgUJueUQgmF_AmWj-mkKFw$_vGth79>McE7&j>mPJV^dW- zT&J_dSj%)yOX{>KsnbHTEI4c5m^yD^PCKq{e|7DQXIZ;$e=F~QC2#3*y|c{0dfCod zSL#?UiUJMtN-}!me#4e!k?ex_xa;q(W=`D@`#t^tygd_c^egPLUvO9DyRyLF;P){N W>;=z@zGeXPx%3rR#lRCt{2+QCcPP#g#FZ{4nn=k{QSf|TvBLwcA6FGVjx{{XKO`xgwPhp^>P z2Kx&til<5iPZ6b5y>x5}3v7qEuCUe=mcaHGj4}3hkc3oUx_0QlA&003rYr||mC zCe}AJ>35P~bww3xFP;x&1}^@?VrgEQTUxBDHFwt(B?ka7jE*~B(aMS2gzIJ=lNFr> zwh#B++V0w?qFyAQ~wGjQ^c%KX4@;>Yi?mw$f!#pL(|CdVi6 z@yk~noW8}+@7-6o6aVI%%-M7X0PaO*A|fIpA|fIpA|fIh7NpG`OOU$=)zaId-yMj4 zcOY7NTeS3cq`w)s%@x<30l&6)R4uxZ%~3DI=%7(=qETk&)cS@NSs*{AZ9zfK9Y-bb3GfDy zjc-#`t%+hG55wqSS3g3rkdJKbP%o0W?hHJ6RuXfMpSo>t)3zde@rGJN7UcceCwxB9 f6MJcbh(`JcF0&Mu>Xm??00000NkvXXu0mjfxNi+} literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..35d9d283171b0386e4136477b6857d2eeadb1d98 GIT binary patch literal 192 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqjKx9jP7LeL$-D$|sytmBLnNlQ z_SHx|z|b)Ru*ilpnj#m}Esb1FNs%*_g3 p6l$HF$Gg1qiqLIGmaiqn>=s7GIt+ekr9f9Oc)I$ztaD0e0sxe%Li_*# literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..ed7ad71318052e727aa9a70357233bf3248d45aa GIT binary patch literal 200 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqjKx9jP7LeL$-D$|nmk<`LnNlQ z_ABx=8!))WS2x^LUAy49!}){&83soSHgm<5>X&zT>NPHGO7#uc%dle7q|}?6?f?I+ zVZ2~=moH(;F+29Aa)z31ksaG!ep^+OaGbMY*9pcAkB?-(nCSM>*k@(;oZGg}dhfq# y_prR5u+mI5YH8rF0 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..7c31ef6b4b51df9c3fc8decdce6d4605b12da917 GIT binary patch literal 486 zcmV@P)Px$ph-kQR9J=W*F8(aKmZ2dH)+AeNRbXIiXv1f8C+Zx#m&V(;3`EIag^eqLnjfs z3;F{D7ZF?>bW?{43R1;DNU2DM4ASZ#*qlR2koN9!$t7L%T`tLeJ^ADU{O7Mn;Z<&K zm5H~#G&jR+x4mEPI_4Np{pp@Ol?V8pua_25{R&jAeIj1@{pLc|6y|Z5AfVdD+01-sufFMLq06av` z08tUK0%!P)Px$qDe$SR9J=W*S}7}KpY3~ZwrYDr6`GLVq9Dxp^KY~i-Qg)r2j{g*57AAdbGUg!1c5ee(X ze2#hE-BWv|Z89D&>h5UB%##%*KR&DQi~xX&OP|K+Ik4>xwl<4|gKmf1ZWGmkKjt@0skyTi<(bC>ojzFwxtpa9?#fDPc}_Hurv z2dC$tv{Ry%yx;=b?T#MJzwT?#f&**W^H-#63neV- zT)Cx$!SwNbm4-PSD>*&57^5tjo@gxCrp#u;%d=Ntftf_w4nq{&;zp_cR3> daJd;UFwAxlvwOW;%qwJhRjeCsT{QTz z>ER0I6}%nmxOsX@9=u6qe%SC;+dS~%tv~}Vw}ToE3=C>L;;(cURv!nti^0>?&t;uc GLK6U(087yT literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..a68b39b4591ed7979efc9f857d375222b67b67c4 GIT binary patch literal 423 zcmV;Y0a*TtP)Px$VM#3-D-G%%A-@A7?&}cOOot!jbo?rP{2soE* zQ3K#m62Gucv(N|dRVES*0K6{WGEx6ZL^N@biHd?5!aR&WX_+F}%BhUCeK+&JLU*`au;QjWxN3Ja6M!c5--Ndy@O<&MYS z@eBvgaFji;_Z9$QxnCZiBXOLfKjHo1j{5ouM_5Z)f!S;({*HsJrDF-39{5!Sj*m{n zxgcvPd)V{~xx~oh~Oz-E)8}ZMtV~s|m`2?h9j0a|y R;GzHk002ovPDHLkV1nkI!I}U7 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Forge/Objects/Weapons/Melee/Laser_spear_officer.rsi/equiped-BACKPACK.png b/Resources/Textures/Forge/Objects/Weapons/Melee/Laser_spear_officer.rsi/equiped-BACKPACK.png new file mode 100644 index 0000000000000000000000000000000000000000..b8aca9f963c9b1594adb8681ab00762dd87d9ef8 GIT binary patch literal 779 zcmV+m1N8ifP)Px%#Ysd#RCt{2nz3%%Fc5}MMV~;j7J-WZjVV$iSv+-VM+08Gd-32W>d+;7mH>GO zFE*SY84YL=yhzk5u!BoiNfhZM-4P5*G6%t2mDMq>n&$$|%DbiBFmUS>}}CjKn8RK;Vaz;oh)bZPd>n zzsPFnAgRPFE2-ER*7;Pz&wL?qz(_0Vhb06knFO^;sShidxmJBUaq?qy%4 zYJrRSQiZ_;4lhr=ClAom1$O(bm&*deU;?){Gb5W5ZG+h4u`|xa5x;~jJhNH30Te6^aZ$R zO@I}B`FD_O=5Ba!fYpq81Z>=fVl|@@z}@%f0IRw66sN8sF?PCWMx6;#_vE?JdNJ+# z)&$si6xBsR&R+jtCx)r@ihZ13GfqOfCNHIv!kkV^_(z#fbmwLywLJr+!V z(5MaS$!DjGeewYR?rR>;Yrn&8gJZBqBic+|gP{bgxswf!;U8~9Yb3S7Y9TaP?E0Ypc@YT+ zgUN6ktWMsBa{*cAm#Z{n*s%29L$(*Nu`h3Px%#Ysd#RCt{2nz3%%Fc5}MMV~;j7J-WZjVV$iSv+-VM+08Gd-32W>d+;7mH>GO zFE*SY84YL=yhzk5u!BoiNfhZM-4P5*G6%t2mDMq>n&$$|%DbiBFmUS>}}CjKn8RK;Vaz;oh)bZPd>n zzsPFnAgRPFE2-ER*7;Pz&wL?qz(_0Vhb06knFO^;sShidxmJBUaq?qy%4 zYJrRSQiZ_;4lhr=ClAom1$O(bm&*deU;?){Gb5W5ZG+h4u`|xa5x;~jJhNH30Te6^aZ$R zO@I}B`FD_O=5Ba!fYpq81Z>=fVl|@@z}@%f0IRw66sN8sF?PCWMx6;#_vE?JdNJ+# z)&$si6xBsR&R+jtCx)r@ihZ13GfqOfCNHIv!kkV^_(z#fbmwLywLJr+!V z(5MaS$!DjGeewYR?rR>;Yrn&8gJZBqBic+|gP{bgxswf!;U8~9Yb3S7Y9TaP?E0Ypc@YT+ zgUN6ktWMsBa{*cAm#Z{n*s%29L$(*Nu`h3Px$0!c(cR9J=W(!GkpKokYw6R=Dg;~+?yK;A$bA40J4DQy;f2pgAW!BR*wq?t?_ z)6W)5X5%;$O|!eg`I;N%=Kf3wKtx1DM6YkPT${h%VY}Ix?PfP>kEna-E^vB3+B09X zx5GYi&wPsv<$XQ6nrHg=O@Qy^vqc73NeD4Fah#xSuK)m%&g{!d*Eji4bnE&;Jw!T# z()F0#e=d+MGCNQ=3h7h;0AwX^UY3jp3IdHz5;70`{cU$BcV zHy?^2z8P(Mg{&lWqefrA{%?6+7yu~C%iURDKOf?&d(^`>f0RcPx$cS%G+RA_8AR;0nA|fIpBBH-_cyOdw zouO8(>sqzGP>!tTcgzpdz+LCo&P^+JeRJiE&n<&_)}r;-CI4M%Kh=KGZa4st1BT&) zasUwt_(;ijb<0O0$*f26Zpa6PIUQ z@^5Sw(!@t_cBw_X;p6}yCLx zrD|aG3&>*rulE?D-EeFZVOY@s(Cc+4=0=UKFVnQ=|MvVU@_!$nq}p%(111WrQW#eB nqB*jjpNNQvh=_=Yi2lDHc(XWgK;jsd00000NkvXXu0mjf3QExV literal 0 HcmV?d00001 diff --git a/Resources/Textures/Forge/Objects/Weapons/Melee/Laser_spear_officer.rsi/inhand_left.png b/Resources/Textures/Forge/Objects/Weapons/Melee/Laser_spear_officer.rsi/inhand_left.png new file mode 100644 index 0000000000000000000000000000000000000000..bf3fb64e2e471dd63889714b82aaf18b13dd53ff GIT binary patch literal 519 zcmV+i0{H!jP)Px$!AV3xRCt{2n=x*~FbqYRq9;g@0~qjFpeWjz#6fTxPx$+DSw~RCt{2nz3rbFc5~7(kDpB0|-18O0gGDS&}i(rMnjoexeRt`ZitKHz;Hg zUS#JL)S(DMAxLN6Sv}>x*@$1iPP+3+N(o`wrgNz^K!E7IqZGn{paE^uIXez)qQL8Y zKEB}TMICGbAbO*=fa%S2H3@*|jWS?7+sR^50MWY&eQ>$=-`-z?-=_wu_daG&I}UR+ zEe=F)&;UCQtj++a-ryO)Y4S=D>D9Vml?KuER%Ok~00>#8K?vEUK`2?KK?vEUK`7a! zK@zy7K?qSqy4Ur@^R>(Bs1sn_>vsxe6Mq2txD*BS7oI zZPr^hCUDa$2!bF8!as$}jqn_@dmn(lXl>IuPS@jT2DDA*Zg%p2;q+tS7Y=n$F3k{9 zI7I=3=q!+PV>B9){goI{9gyP{8OQ+B8^!6(U<^^0qn^*NkCjq+WrRtku;~rE$CK9p z8}J(ia%q}PT`>7?Q0fAeM-%tmR6`73FRv98fJo!jpY z=;O{dV2QVbRarZ#{}7Z2Fuhsi84ZQmCY*d|Eo*oXx_(V4l*>utx8L+1q8e(AV^Gc-rw`+rZ5jpuikTgu1Hd+)~rw2Xn_fbrVpc@3Hp zeN!su#MZCbTN~E!;?b$B1G|66fBN|>I91ut|J;?5Z|<8s)s&R%kKJGU`u9hNm!A_Q zR+{*Fz2LNF4;AA-jd8me?IyP+P`mj@@bFiQNas$MK&MbSF<;EhctV2{wKH8$vXSv z?stCAx7TZRW{x+%8!SLv^)>7i>yH*{_K%JQn?ewpZ$ zwdx9+YW()k+x|XEJ3(|ENcjDm2B5Udo#J0#Weq-k*4}#|;MmrA4zeHj)`L<76wIrb zR=G{>`R{3AF~R-v6BrGOFe)|KV@nmu+{R_zlGMboFyt=akR{0NZdnHvj+t literal 0 HcmV?d00001 diff --git a/Resources/Textures/Forge/Objects/Weapons/Melee/Laser_spear_officer.rsi/wielded-inhand-left.png b/Resources/Textures/Forge/Objects/Weapons/Melee/Laser_spear_officer.rsi/wielded-inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..f927c73fee4b9a3280d4a62a7efe344832cbaba6 GIT binary patch literal 359 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D%z6+K-XLn`LH zy=9wq#6Y0!;rR)|Yc`*Kob z8P~E<_bgTe~DWM4fIFOrz literal 0 HcmV?d00001 diff --git a/Resources/Textures/Forge/Objects/Weapons/Melee/Laser_spear_officer.rsi/wielded-inhand-right-on-officer.png b/Resources/Textures/Forge/Objects/Weapons/Melee/Laser_spear_officer.rsi/wielded-inhand-right-on-officer.png new file mode 100644 index 0000000000000000000000000000000000000000..cd16c69b2b47c963e34fe9106c7bca280eda57aa GIT binary patch literal 695 zcmV;o0!aOdP)Px%aY;l$RCt{2-7#<4Kp4jH=Ol*C5Qaw1fWnw4La;D(Y4Cb=F3vQExg)8if71`~G^cAE;c~)0eNGS2pnc^uk>q951~e zU0ps~{Xf5E8uwbJ5WiR|mL=)F$aGe9rD9owux~1r>Ov?x@OF00HDEfM$lA!99MxR8v?psLV{If!vNkfMVtKCMAncn# znEq_mM&|9CckVhIEq(sv4A^CTKLc|A4gdfE000000001T;=jqq(lWeVA~5cK`qY00000 z0001x6E7|+TXvSXwC4H%=^>++ZgY2OahJBgw}~|Y+p52II^3u?-E=llsaV#k^ZZYa zYWn@@;o;b@@=nd<|jhm79ZNWuPx)c?R^eosJJZw73telFGrJoOy_ d004lz`U|Bb_MxkvPPhO7002ovPDHLkV1fexOECZd literal 0 HcmV?d00001 diff --git a/Resources/Textures/Forge/Objects/Weapons/Melee/Laser_spear_officer.rsi/wielded-inhand-right.png b/Resources/Textures/Forge/Objects/Weapons/Melee/Laser_spear_officer.rsi/wielded-inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..26d1e027ff4036d0a401cb45318b1488887fb599 GIT binary patch literal 374 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D%z4Ln^OLn`LH zy=Cur*g)j?$9NUL2@_O539VEXaymK5Ipo!)z25EfIvQK&vUWOeXy96uyi`xrds5s% zAHJ|mkATArf9uTtpWd9D|K1a5G!R%MW?F5UG$p)aoqwH^ z&bn*&U*}!TKI8p@ts7M$J&ig8_e$T?==u8PkAzIrob*=H&On*D-jh!4y7c#O?1QG* zxR{k|RzEW^-+tZkdfVMQo7TjoFwL_kF5LU)&Z_Uh zF>?=mdh5DQcjZdi7s1jO%K7hKRpt@hTnVFb+4u@Okx6>_Wurh?41>2aYxGH PKxTWo`njxgN@xNAWyYs+ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..d1c352e2d24e05ba66025d4576c9b1d6a453475e GIT binary patch literal 328 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 N002ovPDHLkV1mMo=h6TG literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..a9cf97aee01b3a86ba4ac3123e8d479c63d6afb4 GIT binary patch literal 368 zcmeAS@N?(olHy`uVBq!ia0vp^4nW+%!3HFEH|A#nDaPU;cPEB*=VV?2IV|apzK#qG z8~eHcB(eheoCO|{#S9F5he4R}c>anMpaxb?7srr_xVJYC`W`V5V7;(5Y4!qTs~ch( z87sL1JuVbD#WOGe%JQLlQvS3$8_$}b)472rG4z-3kDb4J>hG|f_t&{^FS>8^e!ai@ z_GN7ocE*27Z!6fdSLW`j_7i)xQ{I*Q^UqJ{*H`%e_w757P9XT9x@q(5H*dYl$`rzPx$+DSw~RCt{2nz3rbFc5~7(kDpB0|-18O0gGDS&}i(rMnjoexeRt`ZitKHz;Hg zUS#JL)S(DMAxLN6Sv}>x*@$1iPP+3+N(o`wrgNz^K!E7IqZGn{paE^uIXez)qQL8Y zKEB}TMICGbAbO*=fa%S2H3@*|jWS?7+sR^50MWY&eQ>$=-`-z?-=_wu_daG&I}UR+ zEe=F)&;UCQtj++a-ryO)Y4S=D>D9Vml?KuER%Ok~00>#8K?vEUK`2?KK?vEUK`7a! zK@zy7K?qSqy4Ur@^R>(Bs1sn_>vsxe6Mq2txD*BS7oI zZPr^hCUDa$2!bF8!as$}jqn_@dmn(lXl>IuPS@jT2DDA*Zg%p2;q+tS7Y=n$F3k{9 zI7I=3=q!+PV>B9){goI{9gyP{8OQ+B8^!6(U<^^0qn^*NkCjq+WrRtku;~rE$CK9p z8}J(ia%q}PT`>7?Q0fAeM-%tmR6`73FRv98fJo!jpY z=;O{dV2QVbRarZ#{}7Z2Fuhsi84ZQmCPx%m`OxIRCt{2-MwntP#DJX$KWflBM-rgAzNG8kSr<4UD`3!C1gn!FCGNF9}ii) z*d4kw^bTxjmxNO2mVkx|4^^Bs<{9005w5 zDv~tv8Yk(2lm4$!QIi;X4P&WaDWZ0Daxa5%bB=kVA> z7nY>X;jwY*Tl4W)(YUC{{@#I^-G*vzHx*0+wOTu-UUTI8*NOApwxdnfuTI9{sjKtM z6X4X_IveyWox@{uaXCNs>GQ|To!EW$VmYZ`8Yo)f=uW(T^~S{h&OGXqaVS^knSZ3H z`lWvd0000000000001RXNd9Ka9;M>)M_cx|s9&kZ55%KoDVw#gBAw^=x}I^{WBbIE zT!anOH;DzP*BogPAvd?1iel*~mp>cySDH|KBSJX4vF87hzz7h*CyA9?0 z*Oli_cbA#FWY6XE%qM<-2b}trf-l+pUy>%{@N~oVc?T3x9{>OV00000008(8ShKM* zWqH-~fxLbK(tS?>>sZ$_l9my+?OXj-9p8oFrl_cr=k8jJ* z)NSAN&u&B2YtCP7a45Qd<_XB_Cm`K_(;q(;W%tn?h!wRy#($F6Pheg3OaBf400000 z0000007@d0wWV{xB72N4>L+r+b?1SJblA2xAiXExU;Ft##I`pey(i$Y>n9e#_FDtC zKL0kW_Va&;?Y9QjT|cn^w!H!AOg`PuKeB2+|A*N22CTb&>E8hW001bf-(aIWNuCN$ QY5)KL07*qoM6N<$f(1QdTL1t6 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..5f9c6ebc0a5fc0b14e5f10e1144830e042e6a7e2 GIT binary patch literal 366 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D%zH9TD$Ln`LH zy=Cv$5+HE=<9)Sx2@}(tKMUnC@U|-~T)2JX2Ny9jIgex?9rJ~Xx8JM_mslOB@@Mjz zt9ACWXMP*=$C)cL0u2R%NlSk3W}m#oMmr}jCiL30^j6;9xBK`N=f<3VoSdzDasKn? z62+J69}4$9pS)_*wr>~ejsq!+T~m+mHWYWt^4)y@No3;l^NT0NF8X#stL4g~+%?N? z_Nxi!CVLurdX;s?#nr$6{pHV&nN~jb?B_3^-%_$~$$b96sbAmlzPQ)4aL4+MU)VxY zbBpWqeC+RUeGPFFh&=Fh)~YR4Q*X?Fu5~c``<@j0CX);D22)$U^X#eLbMp23zw;R1 zbI*9q`s4LH=e-=U*}nwC)J?@+UwiidGh56md64gRB*kxebl`m5HD*?jiJq>0F6*2U Fng9f)qCWrt literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..f7b04d23cdd363bbb9d5cfcd5807b515ea78fc39 GIT binary patch literal 720 zcmV;>0x$iEP)Px%ib+I4RCt{2-M?t?vV~H!kF+;?HM7Ky$1PhhS+No-#s0%DC48Dn8MWqZ~ zy1>$*MZE)%!U9)NBrm8#9auAd9fFAs2FI#wTJb(h5Py8k58~zcGZFv*0002MnX!rp z8G4mY(*2#g-@}6P&4GNY6uqNXs~g{6Sj|SuNYZRRjSVQgzj|4fV_)d=m%G#f_IsXj z+vDUNQ+x;~$TzV8*kwnOwjrx^-PmPEv-#Aj)#`gwY&KdZ+!;vDU%yM-0av4eA_F)>P((fe0000000000@DH%0*WDG>+m(i1 zrQ^1p!R`b7$J@b6`u8-^u0QPmqmK{0igDY{-s}30x2A~vlG}C$N&R^+{JFhdt3CJh zX@UKoXQDlQ^|GqvujO_dVci{a+fHJCUsQf+G7h?~Mtk1?$8K+LM|=7-yPsOL%h%@Q zhp5RokgNUvzNq}OKL!8*0000000000XCn9hZMSzUvUA+z$9l)z&atEvf3v1PY3=^* zH3LqNZ=yp;9l)_Q{YlS{?oiU&eOIGFmLcSj9~(mI0FJHc5ACk$fBLJ$wfmEC(9QA< z$RR)WZ*ca<0000000000007`j4hZ083^&mFz=)VNCftF%MM zuIDdhKR+Oce3Q8yZZ=wGwGL#L9i?5*Uy{CkdUbGH%llF0iadw>?Kj~?1BiYC@85nf z$9~)b4cKo00000)aoqwH^ z&bn*&U*}!TKI8p@ts7M$J&ig8_e$T?==u8PkAzIrob*=H&On*D-jh!4y7c#O?1QG* zxR{k|RzEW^-+tZkdfVMQo7TjoFwL_kF5LU)&Z_Uh zF>?=mdh5DQcjZdi7s1jO%K7hKRpt@hTnVFb+4u@Okx6>_Wurh?41>2aYxGH PKxTWo`njxgN@xNAWyYs+ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..d1c352e2d24e05ba66025d4576c9b1d6a453475e GIT binary patch literal 328 zcmV-O0k{5%P)Px$0!c(cR9J=W(!GkpKokYw6R=Dg;~+?yK;A$bA40J4DQy;f2pgAW!BR*wq?t?_ z)6W)5X5%;$O|!eg`I;N%=Kf3wKtx1DM6YkPT${h%VY}Ix?PfP>kEna-E^vB3+B09X zx5GYi&wPsv<$XQ6nrHg=O@Qy^vqc73NeD4Fah#xSuK)m%&g{!d*Eji4bnE&;Jw!T# z()F0#e=d+MGCNQ=3h7h;0AwX^UY3jp3IdHz5;70`{cU$BcV zHy?^2z8P(Mg{&lWqefrA{%?6+7yu~C%iURDKOf?&d(^`>f0RcPx$cS%G+RA_8AR;0nA|fIpBBH-_cyOdw zouO8(>sqzGP>!tTcgzpdz+LCo&P^+JeRJiE&n<&_)}r;-CI4M%Kh=KGZa4st1BT&) zasUwt_(;ijb<0O0$*f26Zpa6PIUQ z@^5Sw(!@t_cBw_X;p6}yCLx zrD|aG3&>*rulE?D-EeFZVOY@s(Cc+4=0=UKFVnQ=|MvVU@_!$nq}p%(111WrQW#eB nqB*jjpNNQvh=_=Yi2lDHc(XWgK;jsd00000NkvXXu0mjf3QExV literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..b8aca9f963c9b1594adb8681ab00762dd87d9ef8 GIT binary patch literal 779 zcmV+m1N8ifP)Px%#Ysd#RCt{2nz3%%Fc5}MMV~;j7J-WZjVV$iSv+-VM+08Gd-32W>d+;7mH>GO zFE*SY84YL=yhzk5u!BoiNfhZM-4P5*G6%t2mDMq>n&$$|%DbiBFmUS>}}CjKn8RK;Vaz;oh)bZPd>n zzsPFnAgRPFE2-ER*7;Pz&wL?qz(_0Vhb06knFO^;sShidxmJBUaq?qy%4 zYJrRSQiZ_;4lhr=ClAom1$O(bm&*deU;?){Gb5W5ZG+h4u`|xa5x;~jJhNH30Te6^aZ$R zO@I}B`FD_O=5Ba!fYpq81Z>=fVl|@@z}@%f0IRw66sN8sF?PCWMx6;#_vE?JdNJ+# z)&$si6xBsR&R+jtCx)r@ihZ13GfqOfCNHIv!kkV^_(z#fbmwLywLJr+!V z(5MaS$!DjGeewYR?rR>;Yrn&8gJZBqBic+|gP{bgxswf!;U8~9Yb3S7Y9TaP?E0Ypc@YT+ zgUN6ktWMsBa{*cAm#Z{n*s%29L$(*Nu`h3Px%#Ysd#RCt{2nz3%%Fc5}MMV~;j7J-WZjVV$iSv+-VM+08Gd-32W>d+;7mH>GO zFE*SY84YL=yhzk5u!BoiNfhZM-4P5*G6%t2mDMq>n&$$|%DbiBFmUS>}}CjKn8RK;Vaz;oh)bZPd>n zzsPFnAgRPFE2-ER*7;Pz&wL?qz(_0Vhb06knFO^;sShidxmJBUaq?qy%4 zYJrRSQiZ_;4lhr=ClAom1$O(bm&*deU;?){Gb5W5ZG+h4u`|xa5x;~jJhNH30Te6^aZ$R zO@I}B`FD_O=5Ba!fYpq81Z>=fVl|@@z}@%f0IRw66sN8sF?PCWMx6;#_vE?JdNJ+# z)&$si6xBsR&R+jtCx)r@ihZ13GfqOfCNHIv!kkV^_(z#fbmwLywLJr+!V z(5MaS$!DjGeewYR?rR>;Yrn&8gJZBqBic+|gP{bgxswf!;U8~9Yb3S7Y9TaP?E0Ypc@YT+ zgUN6ktWMsBa{*cAm#Z{n*s%29L$(*Nu`h3anMpx`G@7srr_xVJYqu03QR!IHqXFhyJ}k=H6M zflr0)jPS$^zlDd>AJoo&qBYI$=iD7T@A3gPHQe89A3JUB)ZcBEbJm}}cB*!9%DdvL zZ3TPoPG5Uf%IVp*&++pd-bt$#zm7kU^Yi`n_dq=$kT7*_?B4CCuWh+`$1cun^X#9m zPp9Yqi`bbz<>t@TbLu{`EURanukio>FIk9shMK)E=RSUO&HVFg=M(q#+qSIz^Ge_o z%cq|iGvjN2`WyTOIR*sUPTFm_$D5{nJFne%^F6+F_4$8m-qmkEbLP)O=MyXc@77P) h_UHZUa-hoi2mE(`Z~gb(!NeP+(bLt>Wt~$(696XjmfrvX literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..3224afac189110702ecb2a70f32f17e17d0e0e6d GIT binary patch literal 523 zcmV+m0`&cfP)Px$#Ysd#RCt{2nm=xXFc`(%swW8L0G1dlRaLTN%94yoEbJ@{oTx*W-lj`?gGgCW z79dw}CnSq0zir2> znnN3l*7KoEf%;kpt>;52KzD0`*7JEl3;J{QP1il7HS^#NSn?P*~tw(3K-HU0k2peP)ybZDuVS`M9w?Q_++n`7!*%rkGqD{<@ zrLcM%q$EPGFK_V85GxT1-Ua$XO0rf_X94&Wur_hgCWbW{t*0o8q9}^83hp^SjM@o` zx}v@lN+$T79IU-iF*2(^I7zyhf-|=F7xzj`QXmUu>Ke7E z5ilh;Ttor-w~152*hLhe|M~BquhAPH@de1z+|7yM#TTIe`6<1>2XgrfDehQAZ?*B0cikJej$gD;me>^r?KQWK7~iCcXzsVIsffnOHm-otmop!EO% N002ovPDHLkV1mMo=h6TG literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..1cfe68c1d1f7fcff46ceba84fec6ad5b96b23efd GIT binary patch literal 349 zcmeAS@N?(olHy`uVBq!ia0vp^4nW+%!3HFEH|A#nDaPU;cPEB*=VV?2IV|apzK#qG z8~eHcB(eheoCO|{#S9F5he4R}c>anMpx`G@7srr_xVJYqu03QR!IHqXFhyJ}k=H6M zflr0)jPS$^zlDd>AJoo&qBYI$=iD7T@A3gPHQe89A3JUB)ZcBEbJm}}cB*!9%DdvL zZ3TPoPG5Uf%IVp*&++pd-bt$#zm7kU^Yi`n_dq=$kT7*_?B4CCuWh+`$1cun^X#9m zPp9Yqi`bbz<>t@TbLu{`EURanukio>FIk9shMK)E=RSUO&HVFg=M(q#+qSIz^Ge_o z%cq|iGvjN2`WyTOIR*sUPTFm_$D5{nJFne%^F6+F_4$8m-qmkEbLP)O=MyXc@77P) h_UHZUa-hoi2mE(`Z~gb(!NeP+(bLt>Wt~$(696XjmfrvX literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..a1df096dd8ff3e14dc3e55a734fce65545a35848 GIT binary patch literal 544 zcmV+*0^j|KP)Px$+DSw~RCt{2nz3rbFc5~7(kDpB0|-18O0gGDS&}i(rMnjoexeRt`ZitKHz;Hg zUS#JL)S(DMAxLN6Sv}>x*@$1iPP+3+N(o`wrgNz^K!E7IqZGn{paE^uIXez)qQL8Y zKEB}TMICGbAbO*=fa%S2H3@*|jWS?7+sR^50MWY&eQ>$=-`-z?-=_wu_daG&I}UR+ zEe=F)&;UCQtj++a-ryO)Y4S=D>D9Vml?KuER%Ok~00>#8K?vEUK`2?KK?vEUK`7a! zK@zy7K?qSqy4Ur@^R>(Bs1sn_>vsxe6Mq2txD*BS7oI zZPr^hCUDa$2!bF8!as$}jqn_@dmn(lXl>IuPS@jT2DDA*Zg%p2;q+tS7Y=n$F3k{9 zI7I=3=q!+PV>B9){goI{9gyP{8OQ+B8^!6(U<^^0qn^*NkCjq+WrRtku;~rE$CK9p z8}J(ia%q}PT`>7?Q0fAeM-%tmR6`73FRv98fJo!jpY z=;O{dV2QVbRarZ#{}7Z2Fuhsi84ZQmCFwy+p`$QUhYNf0~!Ml9b@VxatCC+-Yr!Og-*ci`MbaRhX-d#;GZ{gTG zy5UV9l2lgO@3^@Aef-=Hr*rb(t^jh59o+SiY1X=|OR>y3*YkIGnI}B>{>Z$sg<%lPq^{o_gE!*_(4=dC%X>my0tA*V_7|Z|}MF>`&ikE{d$5@!$PB(67x) zuf93*Jm>0pkbLi_l)8KWD^2U-b?!a=lF917D&5g!x&9i_D}V3G&R6c)?d-iea&OAt zGtWx@7JXUZbmv|!o4)3>%ga6gWnI*X-_CFE!dt!XR$I^gu)nSQ+2QVC;C^)T^Y)Z? z8OFs^)QXR%JezT=VfmSt=4bEvuaivJ4RrtUSpu`|@{Mx+_P_k`f_3JzcjmEIzxm7C z2|bJ5|F+M~^+wATHlNv-<-N|ml;3;GqP+f^puziJCj~cr_>Qn8!O_Osuk3!*qe*jf zKJ43iWU0H2yu#hoFPAh5r>doAwl7=zT>tDmzVo~PExz>dZjq|QkJ_i3DwhI9J?s1K z-K$==?e@%_oS)ap=N>wv{NTaY*$KDyTibl+sK~0-KF|KgA8eJ*s{P9kYcXw{-RTXo N+0)g}Wt~$(697EhaM}O> literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..f927c73fee4b9a3280d4a62a7efe344832cbaba6 GIT binary patch literal 359 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D%z6+K-XLn`LH zy=9wq#6Y0!;rR)|Yc`*Kob z8P~E<_bgTe~DWM4fIFOrz literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..9ceeb9bb2d538e8f86ca8e6e38b28e05748d7b89 GIT binary patch literal 733 zcmeAS@N?(olHy`uVBq!ia0vp^4nW+%!3HFEH|A#nDaPU;cPEB*=VV?oFfdK`ba4!+ znDh4T{%om4nd2YNH#(>Fwy+p`$QUhYNf0~!Ml9b@VxatCC+-Yr!Og-*ci`MbaRhX-d#;GZ{gTG zy5UV9l2lgO@3^@Aef-=Hr*rb(t^jh59o+SiY1X=|OR>y3*YkIGnI}B>{>Z$sg<%lPq^{o_gE!*_(4=dC%X>my0tA*V_7|Z|}MF>`&ikE{d$5@!$PB(67x) zuf93*Jm>0pkbLi_l)8KWD^2U-b?!a=lF917D&5g!x&9i_D}V3G&R6c)?d-iea&OAt zGtWx@7JXUZbmv|!o4)3>%ga6gWnI*X-_CFE!dt!XR$I^gu)nSQ+2QVC;C^)T^Y)Z? z8OFs^)QXR%JezT=VfmSt=4bEvuaivJ4RrtUSpu`|@{Mx+_P_k`f_3JzcjmEIzxm7C z2|bJ5|F+M~^+wATHlNv-<-N|ml;3;GqP+f^puziJCj~cr_>Qn8!O_Osuk3!*qe*jf zKJ43iWU0H2yu#hoFPAh5r>doAwl7=zT>tDmzVo~PExz>dZjq|QkJ_i3DwhI9J?s1K z-K$==?e@%_oS)ap=N>wv{NTaY*$KDyTibl+sK~0-KF|KgA8eJ*s{P9kYcXw{-RTXo N+0)g}Wt~$(697EhaM}O> literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..26d1e027ff4036d0a401cb45318b1488887fb599 GIT binary patch literal 374 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D%z4Ln^OLn`LH zy=Cur*g)j?$9NUL2@_O539VEXaymK5Ipo!)z25EfIvQK&vUWOeXy96uyi`xrds5s% zAHJ|mkATArf9uTtpWd9D|K1a5G!R%MW?F5UG$p)aoqwH^ z&bn*&U*}!TKI8p@ts7M$J&ig8_e$T?==u8PkAzIrob*=H&On*D-jh!4y7c#O?1QG* zxR{k|RzEW^-+tZkdfVMQo7TjoFwL_kF5LU)&Z_Uh zF>?=mdh5DQcjZdi7s1jO%K7hKRpt@hTnVFb+4u@Okx6>_Wurh?41>2aYxGH PKxTWo`njxgN@xNAWyYs+ literal 0 HcmV?d00001 From c3fd78fede312084765a35ed67a8c92dcce20923 Mon Sep 17 00:00:00 2001 From: LeviyNosok Date: Sun, 7 Jun 2026 03:32:50 +0300 Subject: [PATCH 2/3] =?UTF-8?q?=D0=A3=D0=B4=D0=B0=D0=BB=D0=B8=D1=82=D1=8C?= =?UTF-8?q?=20=D0=BD=D0=B5=D0=B8=D1=81=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D1=83?= =?UTF-8?q?=D0=B5=D0=BC=D1=8B=D0=B9=20Laser=5Fspear=5Fofficer.rsi=20=D0=B1?= =?UTF-8?q?=D0=B5=D0=B7=20meta.json.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Исправляет падение Validate RSIs в CI; копья используют empire_e_spear_officer.rsi. Co-authored-by: Cursor --- .../Laser_spear_officer.rsi/equiped-BACKPACK.png | Bin 779 -> 0 bytes .../equiped-SUITSTORAGE.png | Bin 779 -> 0 bytes .../Melee/Laser_spear_officer.rsi/icon-off.png | Bin 328 -> 0 bytes .../Laser_spear_officer.rsi/icon-on-officer.png | Bin 445 -> 0 bytes .../Melee/Laser_spear_officer.rsi/inhand_left.png | Bin 519 -> 0 bytes .../Laser_spear_officer.rsi/inhand_right.png | Bin 544 -> 0 bytes .../wielded-inhand-left-on-offiecr.png | Bin 665 -> 0 bytes .../wielded-inhand-left.png | Bin 359 -> 0 bytes .../wielded-inhand-right-on-officer.png | Bin 695 -> 0 bytes .../wielded-inhand-right.png | Bin 374 -> 0 bytes 10 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 Resources/Textures/Forge/Objects/Weapons/Melee/Laser_spear_officer.rsi/equiped-BACKPACK.png delete mode 100644 Resources/Textures/Forge/Objects/Weapons/Melee/Laser_spear_officer.rsi/equiped-SUITSTORAGE.png delete mode 100644 Resources/Textures/Forge/Objects/Weapons/Melee/Laser_spear_officer.rsi/icon-off.png delete mode 100644 Resources/Textures/Forge/Objects/Weapons/Melee/Laser_spear_officer.rsi/icon-on-officer.png delete mode 100644 Resources/Textures/Forge/Objects/Weapons/Melee/Laser_spear_officer.rsi/inhand_left.png delete mode 100644 Resources/Textures/Forge/Objects/Weapons/Melee/Laser_spear_officer.rsi/inhand_right.png delete mode 100644 Resources/Textures/Forge/Objects/Weapons/Melee/Laser_spear_officer.rsi/wielded-inhand-left-on-offiecr.png delete mode 100644 Resources/Textures/Forge/Objects/Weapons/Melee/Laser_spear_officer.rsi/wielded-inhand-left.png delete mode 100644 Resources/Textures/Forge/Objects/Weapons/Melee/Laser_spear_officer.rsi/wielded-inhand-right-on-officer.png delete mode 100644 Resources/Textures/Forge/Objects/Weapons/Melee/Laser_spear_officer.rsi/wielded-inhand-right.png diff --git a/Resources/Textures/Forge/Objects/Weapons/Melee/Laser_spear_officer.rsi/equiped-BACKPACK.png b/Resources/Textures/Forge/Objects/Weapons/Melee/Laser_spear_officer.rsi/equiped-BACKPACK.png deleted file mode 100644 index b8aca9f963c9b1594adb8681ab00762dd87d9ef8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 779 zcmV+m1N8ifP)Px%#Ysd#RCt{2nz3%%Fc5}MMV~;j7J-WZjVV$iSv+-VM+08Gd-32W>d+;7mH>GO zFE*SY84YL=yhzk5u!BoiNfhZM-4P5*G6%t2mDMq>n&$$|%DbiBFmUS>}}CjKn8RK;Vaz;oh)bZPd>n zzsPFnAgRPFE2-ER*7;Pz&wL?qz(_0Vhb06knFO^;sShidxmJBUaq?qy%4 zYJrRSQiZ_;4lhr=ClAom1$O(bm&*deU;?){Gb5W5ZG+h4u`|xa5x;~jJhNH30Te6^aZ$R zO@I}B`FD_O=5Ba!fYpq81Z>=fVl|@@z}@%f0IRw66sN8sF?PCWMx6;#_vE?JdNJ+# z)&$si6xBsR&R+jtCx)r@ihZ13GfqOfCNHIv!kkV^_(z#fbmwLywLJr+!V z(5MaS$!DjGeewYR?rR>;Yrn&8gJZBqBic+|gP{bgxswf!;U8~9Yb3S7Y9TaP?E0Ypc@YT+ zgUN6ktWMsBa{*cAm#Z{n*s%29L$(*Nu`h3Px%#Ysd#RCt{2nz3%%Fc5}MMV~;j7J-WZjVV$iSv+-VM+08Gd-32W>d+;7mH>GO zFE*SY84YL=yhzk5u!BoiNfhZM-4P5*G6%t2mDMq>n&$$|%DbiBFmUS>}}CjKn8RK;Vaz;oh)bZPd>n zzsPFnAgRPFE2-ER*7;Pz&wL?qz(_0Vhb06knFO^;sShidxmJBUaq?qy%4 zYJrRSQiZ_;4lhr=ClAom1$O(bm&*deU;?){Gb5W5ZG+h4u`|xa5x;~jJhNH30Te6^aZ$R zO@I}B`FD_O=5Ba!fYpq81Z>=fVl|@@z}@%f0IRw66sN8sF?PCWMx6;#_vE?JdNJ+# z)&$si6xBsR&R+jtCx)r@ihZ13GfqOfCNHIv!kkV^_(z#fbmwLywLJr+!V z(5MaS$!DjGeewYR?rR>;Yrn&8gJZBqBic+|gP{bgxswf!;U8~9Yb3S7Y9TaP?E0Ypc@YT+ zgUN6ktWMsBa{*cAm#Z{n*s%29L$(*Nu`h3Px$0!c(cR9J=W(!GkpKokYw6R=Dg;~+?yK;A$bA40J4DQy;f2pgAW!BR*wq?t?_ z)6W)5X5%;$O|!eg`I;N%=Kf3wKtx1DM6YkPT${h%VY}Ix?PfP>kEna-E^vB3+B09X zx5GYi&wPsv<$XQ6nrHg=O@Qy^vqc73NeD4Fah#xSuK)m%&g{!d*Eji4bnE&;Jw!T# z()F0#e=d+MGCNQ=3h7h;0AwX^UY3jp3IdHz5;70`{cU$BcV zHy?^2z8P(Mg{&lWqefrA{%?6+7yu~C%iURDKOf?&d(^`>f0RcPx$cS%G+RA_8AR;0nA|fIpBBH-_cyOdw zouO8(>sqzGP>!tTcgzpdz+LCo&P^+JeRJiE&n<&_)}r;-CI4M%Kh=KGZa4st1BT&) zasUwt_(;ijb<0O0$*f26Zpa6PIUQ z@^5Sw(!@t_cBw_X;p6}yCLx zrD|aG3&>*rulE?D-EeFZVOY@s(Cc+4=0=UKFVnQ=|MvVU@_!$nq}p%(111WrQW#eB nqB*jjpNNQvh=_=Yi2lDHc(XWgK;jsd00000NkvXXu0mjf3QExV diff --git a/Resources/Textures/Forge/Objects/Weapons/Melee/Laser_spear_officer.rsi/inhand_left.png b/Resources/Textures/Forge/Objects/Weapons/Melee/Laser_spear_officer.rsi/inhand_left.png deleted file mode 100644 index bf3fb64e2e471dd63889714b82aaf18b13dd53ff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 519 zcmV+i0{H!jP)Px$!AV3xRCt{2n=x*~FbqYRq9;g@0~qjFpeWjz#6fTxPx$+DSw~RCt{2nz3rbFc5~7(kDpB0|-18O0gGDS&}i(rMnjoexeRt`ZitKHz;Hg zUS#JL)S(DMAxLN6Sv}>x*@$1iPP+3+N(o`wrgNz^K!E7IqZGn{paE^uIXez)qQL8Y zKEB}TMICGbAbO*=fa%S2H3@*|jWS?7+sR^50MWY&eQ>$=-`-z?-=_wu_daG&I}UR+ zEe=F)&;UCQtj++a-ryO)Y4S=D>D9Vml?KuER%Ok~00>#8K?vEUK`2?KK?vEUK`7a! zK@zy7K?qSqy4Ur@^R>(Bs1sn_>vsxe6Mq2txD*BS7oI zZPr^hCUDa$2!bF8!as$}jqn_@dmn(lXl>IuPS@jT2DDA*Zg%p2;q+tS7Y=n$F3k{9 zI7I=3=q!+PV>B9){goI{9gyP{8OQ+B8^!6(U<^^0qn^*NkCjq+WrRtku;~rE$CK9p z8}J(ia%q}PT`>7?Q0fAeM-%tmR6`73FRv98fJo!jpY z=;O{dV2QVbRarZ#{}7Z2Fuhsi84ZQmCY*d|Eo*oXx_(V4l*>utx8L+1q8e(AV^Gc-rw`+rZ5jpuikTgu1Hd+)~rw2Xn_fbrVpc@3Hp zeN!su#MZCbTN~E!;?b$B1G|66fBN|>I91ut|J;?5Z|<8s)s&R%kKJGU`u9hNm!A_Q zR+{*Fz2LNF4;AA-jd8me?IyP+P`mj@@bFiQNas$MK&MbSF<;EhctV2{wKH8$vXSv z?stCAx7TZRW{x+%8!SLv^)>7i>yH*{_K%JQn?ewpZ$ zwdx9+YW()k+x|XEJ3(|ENcjDm2B5Udo#J0#Weq-k*4}#|;MmrA4zeHj)`L<76wIrb zR=G{>`R{3AF~R-v6BrGOFe)|KV@nmu+{R_zlGMboFyt=akR{0NZdnHvj+t diff --git a/Resources/Textures/Forge/Objects/Weapons/Melee/Laser_spear_officer.rsi/wielded-inhand-left.png b/Resources/Textures/Forge/Objects/Weapons/Melee/Laser_spear_officer.rsi/wielded-inhand-left.png deleted file mode 100644 index f927c73fee4b9a3280d4a62a7efe344832cbaba6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 359 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D%z6+K-XLn`LH zy=9wq#6Y0!;rR)|Yc`*Kob z8P~E<_bgTe~DWM4fIFOrz diff --git a/Resources/Textures/Forge/Objects/Weapons/Melee/Laser_spear_officer.rsi/wielded-inhand-right-on-officer.png b/Resources/Textures/Forge/Objects/Weapons/Melee/Laser_spear_officer.rsi/wielded-inhand-right-on-officer.png deleted file mode 100644 index cd16c69b2b47c963e34fe9106c7bca280eda57aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 695 zcmV;o0!aOdP)Px%aY;l$RCt{2-7#<4Kp4jH=Ol*C5Qaw1fWnw4La;D(Y4Cb=F3vQExg)8if71`~G^cAE;c~)0eNGS2pnc^uk>q951~e zU0ps~{Xf5E8uwbJ5WiR|mL=)F$aGe9rD9owux~1r>Ov?x@OF00HDEfM$lA!99MxR8v?psLV{If!vNkfMVtKCMAncn# znEq_mM&|9CckVhIEq(sv4A^CTKLc|A4gdfE000000001T;=jqq(lWeVA~5cK`qY00000 z0001x6E7|+TXvSXwC4H%=^>++ZgY2OahJBgw}~|Y+p52II^3u?-E=llsaV#k^ZZYa zYWn@@;o;b@@=nd<|jhm79ZNWuPx)c?R^eosJJZw73telFGrJoOy_ d004lz`U|Bb_MxkvPPhO7002ovPDHLkV1fexOECZd diff --git a/Resources/Textures/Forge/Objects/Weapons/Melee/Laser_spear_officer.rsi/wielded-inhand-right.png b/Resources/Textures/Forge/Objects/Weapons/Melee/Laser_spear_officer.rsi/wielded-inhand-right.png deleted file mode 100644 index 26d1e027ff4036d0a401cb45318b1488887fb599..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 374 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D%z4Ln^OLn`LH zy=Cur*g)j?$9NUL2@_O539VEXaymK5Ipo!)z25EfIvQK&vUWOeXy96uyi`xrds5s% zAHJ|mkATArf9uTtpWd9D|K1a5G!R%MW?F5UG$p)aoqwH^ z&bn*&U*}!TKI8p@ts7M$J&ig8_e$T?==u8PkAzIrob*=H&On*D-jh!4y7c#O?1QG* zxR{k|RzEW^-+tZkdfVMQo7TjoFwL_kF5LU)&Z_Uh zF>?=mdh5DQcjZdi7s1jO%K7hKRpt@hTnVFb+4u@Okx6>_Wurh?41>2aYxGH PKxTWo`njxgN@xNAWyYs+ From c536fd1212980e3f1a43b456d99e93df078cadea Mon Sep 17 00:00:00 2001 From: LeviyNosok Date: Sun, 7 Jun 2026 03:43:57 +0300 Subject: [PATCH 3/3] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20=D1=83=D0=BD=D0=B8=D0=B2=D0=B5=D1=80=D1=81=D0=B0=D0=BB?= =?UTF-8?q?=D1=8C=D0=BD=D1=8B=D0=B9=20=D0=BF=D0=B8=D0=BDpointer=20=D0=B2?= =?UTF-8?q?=20=D1=81=D1=82=D0=B0=D1=80=D1=82=D0=BE=D0=B2=D1=83=D1=8E=20?= =?UTF-8?q?=D1=81=D1=83=D0=BC=D0=BA=D1=83=20=D0=BF=D1=80=D0=B5=D1=82=D0=BE?= =?UTF-8?q?=D1=80=D0=B8=D0=B0=D0=BD=D1=86=D0=B0.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Cursor --- Resources/Prototypes/_Forge/Roles/Jobs/Empire/Praetorian.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Resources/Prototypes/_Forge/Roles/Jobs/Empire/Praetorian.yml b/Resources/Prototypes/_Forge/Roles/Jobs/Empire/Praetorian.yml index 05cca49cf4c..9fc47ee7c57 100644 --- a/Resources/Prototypes/_Forge/Roles/Jobs/Empire/Praetorian.yml +++ b/Resources/Prototypes/_Forge/Roles/Jobs/Empire/Praetorian.yml @@ -50,3 +50,6 @@ - type: startingGear id: PraetorianGear + storage: + back: + - PinpointerUniversal