diff --git a/Content.Shared/_Sich/Marine/Squads/SichSherpaItemComponent.cs b/Content.Shared/_Sich/Marine/Squads/SichSherpaItemComponent.cs new file mode 100644 index 0000000000..b7ca295739 --- /dev/null +++ b/Content.Shared/_Sich/Marine/Squads/SichSherpaItemComponent.cs @@ -0,0 +1,9 @@ +using Robust.Shared.GameObjects; + +namespace Content.Shared._Sich.Marine.Squads +{ + [RegisterComponent] + public sealed partial class SichSherpaItemComponent : Component + { + } +} diff --git a/Content.Shared/_Sich/Marine/Squads/SichSherpaRiflemanComponent.cs b/Content.Shared/_Sich/Marine/Squads/SichSherpaRiflemanComponent.cs new file mode 100644 index 0000000000..8b89e87d95 --- /dev/null +++ b/Content.Shared/_Sich/Marine/Squads/SichSherpaRiflemanComponent.cs @@ -0,0 +1,9 @@ +using Robust.Shared.GameObjects; + +namespace Content.Shared._Sich.Marine.Squads +{ + [RegisterComponent] + public sealed partial class SichSherpaRiflemanComponent : Component + { + } +} diff --git a/Content.Shared/_Sich/Marine/Squads/SichSherpaRiflemanSystem.cs b/Content.Shared/_Sich/Marine/Squads/SichSherpaRiflemanSystem.cs new file mode 100644 index 0000000000..d110adf5c9 --- /dev/null +++ b/Content.Shared/_Sich/Marine/Squads/SichSherpaRiflemanSystem.cs @@ -0,0 +1,30 @@ +using Content.Shared.Inventory.Events; +using Content.Shared.Popups; +using Robust.Shared.GameObjects; +using Robust.Shared.Localization; + +namespace Content.Shared._Sich.Marine.Squads; + +public sealed class SichSherpaRiflemanSystem : EntitySystem +{ + [Dependency] private readonly SharedPopupSystem _popup = default!; + + public override void Initialize() + { + base.Initialize(); + SubscribeLocalEvent(OnBeingEquippedAttempt); + } + + private void OnBeingEquippedAttempt(Entity item, ref BeingEquippedAttemptEvent args) + { + if (HasComp(args.EquipTarget)) + return; + + if (args.EquipTarget == args.Equipee) + _popup.PopupClient(Loc.GetString("rmc-bulky-backpack-user-unable"), args.Equipee, args.Equipee, PopupType.MediumCaution); + else + _popup.PopupEntity(Loc.GetString("rmc-bulky-backpack-target-unable", ("target", args.EquipTarget)), args.Equipee, args.Equipee, PopupType.MediumCaution); + + args.Cancel(); + } +} diff --git a/Resources/Locale/en-US/_Sich/armor/sich-rmc-bulky-backpack.ftl b/Resources/Locale/en-US/_Sich/armor/sich-rmc-bulky-backpack.ftl new file mode 100644 index 0000000000..8c7d271b31 --- /dev/null +++ b/Resources/Locale/en-US/_Sich/armor/sich-rmc-bulky-backpack.ftl @@ -0,0 +1,2 @@ +rmc-bulky-backpack-user-unable = Ви плутаєтесь в ременях та скидуєте це з себе! +rmc-bulky-backpack-target-unable = {$target} не знає що робити з усіма цими ременями! diff --git a/Resources/Locale/en-US/_Sich/job/marines.ftl b/Resources/Locale/en-US/_Sich/job/marines.ftl new file mode 100644 index 0000000000..c04a4e4359 --- /dev/null +++ b/Resources/Locale/en-US/_Sich/job/marines.ftl @@ -0,0 +1,2 @@ +sich-rmc-job-name-sherpa = Шерпа +sich-rmc-job-prefix-sherpa = ШРП diff --git a/Resources/Locale/en-US/_Sich/storage/storage.ftl b/Resources/Locale/en-US/_Sich/storage/storage.ftl new file mode 100644 index 0000000000..c4e921b23d --- /dev/null +++ b/Resources/Locale/en-US/_Sich/storage/storage.ftl @@ -0,0 +1,2 @@ +rmc-storage-limit-not-flarebox = Це кріплення підтримує тільки коробку упаковок фаєрів М94! +rmc-storage-limit-one-bulletbox-smartgun = Кріплення замале щоб вмістити дві коробки з набоями для СмартГану! diff --git a/Resources/Prototypes/_RMC14/Catalog/Cargo/requisitions_catalog.yml b/Resources/Prototypes/_RMC14/Catalog/Cargo/requisitions_catalog.yml index 661e844ddd..fdd35696e8 100644 --- a/Resources/Prototypes/_RMC14/Catalog/Cargo/requisitions_catalog.yml +++ b/Resources/Prototypes/_RMC14/Catalog/Cargo/requisitions_catalog.yml @@ -18,6 +18,8 @@ crate: RMCCrateBoxBulletsRifleAP - cost: 4000 crate: RMCCrateBoxAmmo458 + - cost: 6000 + crate: SichRMCCrateBoxBulletsSmartGun # Sich - cost: 2000 crate: RMCCrateBoxMagazineRifleM54C - cost: 4000 diff --git a/Resources/Prototypes/_RMC14/Entities/Clothing/Back/backpacks.yml b/Resources/Prototypes/_RMC14/Entities/Clothing/Back/backpacks.yml index 2c1f51fb5f..717c8d3b83 100644 --- a/Resources/Prototypes/_RMC14/Entities/Clothing/Back/backpacks.yml +++ b/Resources/Prototypes/_RMC14/Entities/Clothing/Back/backpacks.yml @@ -247,9 +247,10 @@ - type: entity parent: CMBackpack id: RMCBackpackAmmo - name: ІМС для перенесення набоїв - description: A bare IMP frame with buckles designed to hold multiple ammo cans, but can fit any cumbersome box thanks to Marine ingenuity. Helps you lug around extra rounds or supplies. + name: ВРС загального призначення + description: Поєднання ременів та пласталевого каркасу що дозволяє переносити громіздкі коробки. Незважаючи на скромність конструкції, далеко не кожен зможе нести цей тягар. components: + - type: SichSherpaItem # Sich - type: Item size: Huge sprite: _RMC14/Objects/Clothing/Back/Backpacks/Marines/standard.rsi @@ -259,23 +260,33 @@ layers: - state: ammo_pack-0 map: ["enum.StorageFillLayers.Fill"] - - type: ClothingSpeedModifier - walkModifier: 0.710 - sprintModifier: 0.710 - type: HeldSpeedModifier + walkModifier: 0.600 + sprintModifier: 0.600 - type: StorageFillVisualizer fillBaseName: ammo_pack maxFillLevels: 4 - type: Storage maxItemSize: Huge grid: - - 0,0,5,1 #3 slots + - 0,0,7,1 #4 slots Sich whitelist: - tags: + tags: #Sich - RMCAmmoBox - components: - - EmptySandbag - - FullSandbag + - RMCFlareBox + - SichBulletBoxSmartGun + - type: LimitedStorage # Sich + limits: + - popup: rmc-storage-limit-one-bulletbox-smartgun + whitelist: + tags: + - SichBulletBoxSmartGun + - popup: rmc-storage-limit-not-flarebox + blacklist: + tags: + - RMCFlareBox + whitelist: null + count: 3 - type: CMStorageVisualizer storageClosed: null storageOpen: null diff --git a/Resources/Prototypes/_RMC14/Entities/Objects/Tools/flares.yml b/Resources/Prototypes/_RMC14/Entities/Objects/Tools/flares.yml index 218ef79e94..82e1ffc8af 100644 --- a/Resources/Prototypes/_RMC14/Entities/Objects/Tools/flares.yml +++ b/Resources/Prototypes/_RMC14/Entities/Objects/Tools/flares.yml @@ -161,6 +161,9 @@ name: box of M94 flare packs (x10) description: A box of M94 marking flare packs, to brighten up your day. components: + - type: Tag #Sich + tags: + - RMCFlareBox - type: Construction graph: RMCBoxMagazine node: RMCBoxPackFlareEmpty @@ -416,3 +419,6 @@ - type: Tag id: RMCPackFlareCAS + +- type: Tag #Sich + id: RMCFlareBox diff --git a/Resources/Prototypes/_RMC14/Entities/Structures/Machines/Vending/Crew/requisitions.yml b/Resources/Prototypes/_RMC14/Entities/Structures/Machines/Vending/Crew/requisitions.yml index 3de5e092ba..a9c182a0ac 100644 --- a/Resources/Prototypes/_RMC14/Entities/Structures/Machines/Vending/Crew/requisitions.yml +++ b/Resources/Prototypes/_RMC14/Entities/Structures/Machines/Vending/Crew/requisitions.yml @@ -152,8 +152,8 @@ amount: 1 - id: RMCSatchelWelder amount: 5 - - id: RMCBackpackAmmo - amount: 2 + # - id: RMCBackpackAmmo Sich + # amount: 2 - id: RMCBackpackRTO amount: 2 - id: RMCParachute @@ -286,6 +286,8 @@ amount: 10 - id: RMCMagazineSMGNailgun amount: 4 + - id: SichRMCKitSherpa # Sich + amount: 2 - name: Pamphlets entries: - id: CMPamphletJTAC diff --git a/Resources/Prototypes/_Sich/Catalog/Fills/Crates/bullet_boxes.yml b/Resources/Prototypes/_Sich/Catalog/Fills/Crates/bullet_boxes.yml new file mode 100644 index 0000000000..da3965eff4 --- /dev/null +++ b/Resources/Prototypes/_Sich/Catalog/Fills/Crates/bullet_boxes.yml @@ -0,0 +1,8 @@ +- type: entity + parent: RMCCrateAmmo + id: SichRMCCrateBoxBulletsSmartGun + name: Ящик з коробкою набоїв для СмартГану 10х30мм (3000шт.) + components: + - type: StorageFill + contents: + - id: SichRMCBoxBulletsSmartGun diff --git a/Resources/Prototypes/_Sich/Entities/Clothing/Back/backpacks.yml b/Resources/Prototypes/_Sich/Entities/Clothing/Back/backpacks.yml new file mode 100644 index 0000000000..6892dce4af --- /dev/null +++ b/Resources/Prototypes/_Sich/Entities/Clothing/Back/backpacks.yml @@ -0,0 +1,16 @@ +- type: entity + parent: BaseItem + id: SichRMCBackpackAmmoFolded + name: ВРС загального призначення + description: Згорнута вантажна рама для спорядження. Розгорніть перед використанням. + suffix: згонута + components: + - type: Item + size: Huge + - type: Sprite + sprite: _Sich/Objects/Clothing/Back/Backpacks/Marines/ammo_rack.rsi + state: ammo_pack-0 + - type: SpawnItemsOnUse + items: + - id: RMCBackpackAmmo + amount: 1 diff --git a/Resources/Prototypes/_Sich/Entities/Objects/Misc/pamphlets.yml b/Resources/Prototypes/_Sich/Entities/Objects/Misc/pamphlets.yml new file mode 100644 index 0000000000..47e4a42cdb --- /dev/null +++ b/Resources/Prototypes/_Sich/Entities/Objects/Misc/pamphlets.yml @@ -0,0 +1,26 @@ +- type: entity + parent: CMPamphlet + id: SichCMPamphletSherpa + name: довідник шерпи + description: Він навчить вас переносити важкі речі. + components: + - type: Sprite + sprite: _Sich/Objects/Misc/pamphlets.rsi + state: pamphlet_sherpa + - type: SkillPamphlet + addComps: + - type: SichSherpaRifleman + addSkills: + RMCSkillFireman: 1 + giveJobTitle: sich-rmc-job-name-sherpa + givePrefix: sich-rmc-job-prefix-sherpa + isAppendPrefix: false + giveIcon: + sprite: _Sich/Interface/cm_job_icons.rsi + state: hudsquad_sherpa + giveMapBlip: + sprite: /Textures/_Sich/Interface/map_blips.rsi + state: sherpa + jobWhitelists: + - popup: rmc-pamphlets-rifleman-warning + jobProto: CMRifleman diff --git a/Resources/Prototypes/_Sich/Entities/Objects/Weapons/Cases/sherpa.yml b/Resources/Prototypes/_Sich/Entities/Objects/Weapons/Cases/sherpa.yml new file mode 100644 index 0000000000..8ed2caada3 --- /dev/null +++ b/Resources/Prototypes/_Sich/Entities/Objects/Weapons/Cases/sherpa.yml @@ -0,0 +1,24 @@ +- type: entity + parent: RMCKitBase + id: SichRMCKitSherpa + name: набір шерпи + description: Набір всього необхідного для транспортування громіздких вантажів на полі бою. + components: + - type: Storage + maxItemSize: Huge + grid: + - 0,0,5,1 + - type: Sprite + sprite: _RMC14/Objects/Storage/procase_mini.rsi + - type: Icon + sprite: _RMC14/Objects/Storage/procase_mini.rsi + layers: + - state: closed + map: [ base ] + - state: loader + map: [ label ] + - type: StorageFill + contents: + - id: SichRMCBackpackAmmoFolded + - id: SichCMPamphletSherpa + - id: RMCRangefinder diff --git a/Resources/Prototypes/_Sich/Entities/Objects/Weapons/Guns/Ammunition/Boxes/bullet_boxes.yml b/Resources/Prototypes/_Sich/Entities/Objects/Weapons/Guns/Ammunition/Boxes/bullet_boxes.yml new file mode 100644 index 0000000000..a3dfb1b93a --- /dev/null +++ b/Resources/Prototypes/_Sich/Entities/Objects/Weapons/Guns/Ammunition/Boxes/bullet_boxes.yml @@ -0,0 +1,35 @@ +- type: entity + parent: RMCBoxBulletsBase + id: SichRMCBoxBulletsSmartGun + name: коробка з набоями СмартГану (10x30мм) + description: Коробка з набоями 10х30мм. Використовується для поповнення магазинів СмартГану. Має шкіряну лямку, що дозволяє носити її на спині. + components: + - type: Tag + tags: + - SichBulletBoxSmartGun + - type: Sprite + layers: + - state: rifle_box + color: "#7b8246" + - state: rifle_box_marking + color: "#ffcb26" + - state: rifle_box_generic + color: "#ffcb26" + - state: rifle_ammo_full_rounds_base + map: [ "enum.BulletBoxLayers.Fill" ] + - state: rifle_ammo_full_rounds_color + map: [ "enum.BulletBoxLayers2.Fill" ] + color: "#ffc000" + - type: BulletBox + max: 3000 + amount: 3000 + bulletType: RMCBoxBulletsSmartGun + - type: ClothingSpeedModifier + walkModifier: 0.700 + sprintModifier: 0.700 + - type: HeldSpeedModifier + walkModifier: 0.700 + sprintModifier: 0.700 + +- type: Tag + id: SichBulletBoxSmartGun diff --git a/Resources/Textures/_Sich/Interface/cm_job_icons.rsi/hudsquad_sherpa.png b/Resources/Textures/_Sich/Interface/cm_job_icons.rsi/hudsquad_sherpa.png new file mode 100644 index 0000000000..7bbcd5b523 Binary files /dev/null and b/Resources/Textures/_Sich/Interface/cm_job_icons.rsi/hudsquad_sherpa.png differ diff --git a/Resources/Textures/_Sich/Interface/cm_job_icons.rsi/meta.json b/Resources/Textures/_Sich/Interface/cm_job_icons.rsi/meta.json new file mode 100644 index 0000000000..67a32ea6ab --- /dev/null +++ b/Resources/Textures/_Sich/Interface/cm_job_icons.rsi/meta.json @@ -0,0 +1,14 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "By github HorvatBG-gif", + "size": { + "x": 16, + "y": 16 + }, + "states": [ + { + "name": "hudsquad_sherpa" + } + ] +} diff --git a/Resources/Textures/_Sich/Interface/map_blips.rsi/meta.json b/Resources/Textures/_Sich/Interface/map_blips.rsi/meta.json new file mode 100644 index 0000000000..074870d345 --- /dev/null +++ b/Resources/Textures/_Sich/Interface/map_blips.rsi/meta.json @@ -0,0 +1,14 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "by github HorvatBG-gif", + "size": { + "x": 7, + "y": 7 + }, + "states": [ + { + "name": "sherpa" + } + ] +} diff --git a/Resources/Textures/_Sich/Interface/map_blips.rsi/sherpa.png b/Resources/Textures/_Sich/Interface/map_blips.rsi/sherpa.png new file mode 100644 index 0000000000..d14c724c15 Binary files /dev/null and b/Resources/Textures/_Sich/Interface/map_blips.rsi/sherpa.png differ diff --git a/Resources/Textures/_Sich/Objects/Clothing/Back/Backpacks/Marines/ammo_rack.rsi/ammo_pack-0.png b/Resources/Textures/_Sich/Objects/Clothing/Back/Backpacks/Marines/ammo_rack.rsi/ammo_pack-0.png new file mode 100644 index 0000000000..2a2c0a60ac Binary files /dev/null and b/Resources/Textures/_Sich/Objects/Clothing/Back/Backpacks/Marines/ammo_rack.rsi/ammo_pack-0.png differ diff --git a/Resources/Textures/_Sich/Objects/Clothing/Back/Backpacks/Marines/ammo_rack.rsi/meta.json b/Resources/Textures/_Sich/Objects/Clothing/Back/Backpacks/Marines/ammo_rack.rsi/meta.json new file mode 100644 index 0000000000..55431df3b9 --- /dev/null +++ b/Resources/Textures/_Sich/Objects/Clothing/Back/Backpacks/Marines/ammo_rack.rsi/meta.json @@ -0,0 +1,14 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Modified by github HorvatBG-gif, original sprite taken from cmss13 at https://github.com/cmss13-devs/cmss13/blob/8d2ee2746ce1b8aa5a876266951a8d9f92499aff/icons/obj/items/clothing/backpacks.dmi and https://github.com/cmss13-devs/cmss13/blob/38ced94fc7dee11e73f66f6c008983493aac13a5/icons/mob/humans/onmob/back.dmi", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "ammo_pack-0" + } + ] +} diff --git a/Resources/Textures/_Sich/Objects/Misc/pamphlets.rsi/meta.json b/Resources/Textures/_Sich/Objects/Misc/pamphlets.rsi/meta.json new file mode 100644 index 0000000000..6238bef6b9 --- /dev/null +++ b/Resources/Textures/_Sich/Objects/Misc/pamphlets.rsi/meta.json @@ -0,0 +1,14 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Modified by github HorvatBG-gif, original sprite taken from cmss13 at https://github.com/cmss13-devs/cmss13/blob/3a94024f59bfd350ecf02c511a7d99d597da3d6c/icons/obj/items/pamphlets.dmi", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "pamphlet_sherpa" + } + ] +} diff --git a/Resources/Textures/_Sich/Objects/Misc/pamphlets.rsi/pamphlet_sherpa.png b/Resources/Textures/_Sich/Objects/Misc/pamphlets.rsi/pamphlet_sherpa.png new file mode 100644 index 0000000000..8e9f1eee90 Binary files /dev/null and b/Resources/Textures/_Sich/Objects/Misc/pamphlets.rsi/pamphlet_sherpa.png differ