From e2cfb948dc8a68eee1db51a3fb2b5a5f3e9460b8 Mon Sep 17 00:00:00 2001 From: keslik Date: Wed, 5 Mar 2025 01:31:51 +0300 Subject: [PATCH 01/12] shotgun shells tweak --- .../Objects/Weapons/Guns/Ammunition/Cartridges/shotgun.yml | 6 +++--- .../Objects/Weapons/Guns/Ammunition/Projectiles/shotgun.yml | 5 ++++- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/shotgun.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/shotgun.yml index fb7cb21ae3..87c2abcb00 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/shotgun.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/shotgun.yml @@ -10,7 +10,7 @@ - ShellShotgun - type: CartridgeAmmo count: 6 - spread: 28 + spread: 14 # WD soundEject: collection: ShellEject - type: Sprite @@ -125,9 +125,9 @@ ammo: reagents: - ReagentId: ChloralHydrate - Quantity: 5 + Quantity: 12 # WD - type: SolutionTransfer - maxTransferAmount: 7 + maxTransferAmount: 15 # WD - type: SpentAmmoVisuals state: "practice" diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Projectiles/shotgun.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Projectiles/shotgun.yml index f7b30f214d..d9f8adb2ca 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Projectiles/shotgun.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Projectiles/shotgun.yml @@ -10,7 +10,10 @@ - type: Projectile damage: types: - Piercing: 40 + Piercing: 50 # WD start + - type: StaminaDamageOnCollide + ignoreResistances: false + damage: 80 # WD end - type: entity id: PelletShotgunBeanbag From 2e3b615590e7e6a33b891dcb1c84a6ba2bbac25d Mon Sep 17 00:00:00 2001 From: keslik Date: Wed, 5 Mar 2025 02:24:31 +0300 Subject: [PATCH 02/12] magnum nerf, tranquilizer box sprite --- .../Weapons/Guns/Ammunition/Boxes/shotgun.yml | 2 +- .../Guns/Ammunition/Projectiles/magnum.yml | 2 +- .../Textures/Objects/Storage/boxes.rsi/meta.json | 5 ++++- .../Storage/boxes.rsi/shelltranquilizer.png | Bin 0 -> 238 bytes 4 files changed, 6 insertions(+), 3 deletions(-) create mode 100644 Resources/Textures/Objects/Storage/boxes.rsi/shelltranquilizer.png diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Boxes/shotgun.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Boxes/shotgun.yml index 831c3c3352..2d4941dd7e 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Boxes/shotgun.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Boxes/shotgun.yml @@ -113,4 +113,4 @@ - type: Sprite layers: - state: boxwide - - state: shellslug \ No newline at end of file + - state: shelltranquilizer # WD diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Projectiles/magnum.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Projectiles/magnum.yml index 364ba18c42..a31a086845 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Projectiles/magnum.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Projectiles/magnum.yml @@ -7,7 +7,7 @@ - type: Projectile damage: types: - Piercing: 35 + Piercing: 32 # WD - type: entity id: BulletMagnumPractice diff --git a/Resources/Textures/Objects/Storage/boxes.rsi/meta.json b/Resources/Textures/Objects/Storage/boxes.rsi/meta.json index 1c7574b71a..357b36f5bb 100644 --- a/Resources/Textures/Objects/Storage/boxes.rsi/meta.json +++ b/Resources/Textures/Objects/Storage/boxes.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/cc65477c04f7403ca8a457bd5bae69a01abadbf0, encryptokey was taken from Baystation12 at https://github.com/infinitystation/Baystation12/blob/073f678cdce92edb8fcd55f9ffc9f0523bf31506/icons/obj/radio.dmi and modified by lapatison. boxwidetoy, shelltoy, swab, flare, inflatable, trashbag, magazine, holo and forensic created by potato1234x (github) for ss14 based on toys.rsi, mouth_swab.rsi, flare.rsi, inflatable_wall.rsi, trashbag.rsi, caseless_pistol_mag.rsi, guardians.rsi and bureaucracy.rsi respectively, candle and darts created by TheShuEd for ss14, vials was drawn by Ubaser, evidence_markers by moomoobeef, ziplock by CaypenNow.", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/cc65477c04f7403ca8a457bd5bae69a01abadbf0, encryptokey was taken from Baystation12 at https://github.com/infinitystation/Baystation12/blob/073f678cdce92edb8fcd55f9ffc9f0523bf31506/icons/obj/radio.dmi and modified by lapatison. boxwidetoy, shelltoy, swab, flare, inflatable, trashbag, magazine, holo and forensic created by potato1234x (github) for ss14 based on toys.rsi, mouth_swab.rsi, flare.rsi, inflatable_wall.rsi, trashbag.rsi, caseless_pistol_mag.rsi, guardians.rsi and bureaucracy.rsi respectively, candle and darts created by TheShuEd for ss14, vials was drawn by Ubaser, evidence_markers by moomoobeef, ziplock by CaypenNow, shelltranquilizer modified by keslik.", "size": { "x": 32, "y": 32 @@ -203,6 +203,9 @@ { "name": "shelltoy" }, + { + "name": "shelltranquilizer" + }, { "name": "ziptie" }, diff --git a/Resources/Textures/Objects/Storage/boxes.rsi/shelltranquilizer.png b/Resources/Textures/Objects/Storage/boxes.rsi/shelltranquilizer.png new file mode 100644 index 0000000000000000000000000000000000000000..344de1168268bbbf9cce1685621e6b84e86a0ec9 GIT binary patch literal 238 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz&H|6fVg?3oVGw3ym^DWND7e7W z#W5tJ_3ibIyoU@#ST1lUHHhqAw9KP%6Q{62jF#F4@snJdL4g|%23mNO{F^2dsZoAu zdfmE@lY@6EcTTf3wT)$9WD#&+VEo4>kgUSM^kCcW-C7N{mt`0x-JE&WW68|35tp7G zW93l%Fgv%rJd~mO-hrE+XHUyK^y#y$Sjo;E42P?ZAHB41A49{tbzBdsm@n90`d24b jy0fH8oI~NjLq_> Date: Wed, 5 Mar 2025 02:38:44 +0300 Subject: [PATCH 03/12] candle boxes fix --- Resources/Prototypes/Catalog/Fills/Boxes/general.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Resources/Prototypes/Catalog/Fills/Boxes/general.yml b/Resources/Prototypes/Catalog/Fills/Boxes/general.yml index 59d5056ec2..d0cef80701 100644 --- a/Resources/Prototypes/Catalog/Fills/Boxes/general.yml +++ b/Resources/Prototypes/Catalog/Fills/Boxes/general.yml @@ -441,6 +441,9 @@ - type: Storage grid: - 0,0,9,2 + whitelist: # WD start + components: + - ExtinguishOnInteract # WD end - type: StorageFill contents: - id: Candle @@ -466,6 +469,9 @@ - type: Storage grid: - 0,0,9,2 + whitelist: # WD start + components: + - ExtinguishOnInteract # WD end - type: StorageFill contents: - id: CandleSmall From 49fe696baa13f38e4ab51f7a2e2c55e429c93360 Mon Sep 17 00:00:00 2001 From: keslik Date: Wed, 5 Mar 2025 04:15:04 +0300 Subject: [PATCH 04/12] Salvage boots knife slot --- Resources/Prototypes/Entities/Clothing/Shoes/boots.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Resources/Prototypes/Entities/Clothing/Shoes/boots.yml b/Resources/Prototypes/Entities/Clothing/Shoes/boots.yml index 09ce68ce21..943fd7bbe3 100644 --- a/Resources/Prototypes/Entities/Clothing/Shoes/boots.yml +++ b/Resources/Prototypes/Entities/Clothing/Shoes/boots.yml @@ -22,7 +22,7 @@ sprite: Clothing/Shoes/Boots/jackboots.rsi - type: entity - parent: ClothingShoesBaseButcherable + parent: ClothingShoesMilitaryBase # WD id: ClothingShoesBootsSalvage name: salvage boots description: Steel-toed salvage boots for salvaging in hazardous environments. @@ -31,7 +31,6 @@ sprite: Clothing/Shoes/Boots/explorer.rsi - type: Clothing sprite: Clothing/Shoes/Boots/explorer.rsi - - type: Matchbox - type: entity parent: ClothingShoesBaseButcherable From b45689812f318058a4ddeabdeb7ec8427ab637de Mon Sep 17 00:00:00 2001 From: keslik Date: Wed, 5 Mar 2025 06:55:04 +0300 Subject: [PATCH 05/12] Apka and protolathe recipes --- Resources/Locale/ru-RU/_white/items/apka.ftl | 4 ++ .../Weapons/Guns/Projectiles/projectiles.yml | 4 +- .../Entities/Structures/Machines/lathe.yml | 4 ++ .../Prototypes/Recipes/Lathes/devices.yml | 45 +++++++++++++ Resources/Prototypes/Research/arsenal.yml | 17 +++++ .../Entities/Objects/Weapons/Guns/apka.yml | 59 ++++++++++++++++++ .../advanced_kinetic.rsi/animation-icon.png | Bin 0 -> 141 bytes .../advanced_kinetic.rsi/equipped-BELT.png | Bin 0 -> 1695 bytes .../equipped-SUITSTORAGE.png | Bin 0 -> 1695 bytes .../Weapons/advanced_kinetic.rsi/icon.png | Bin 0 -> 1040 bytes .../advanced_kinetic.rsi/inhand-left.png | Bin 0 -> 1813 bytes .../advanced_kinetic.rsi/inhand-right.png | Bin 0 -> 1827 bytes .../Weapons/advanced_kinetic.rsi/meta.json | 47 ++++++++++++++ .../wielded-inhand-left.png | Bin 0 -> 1529 bytes .../wielded-inhand-right.png | Bin 0 -> 1565 bytes 15 files changed, 179 insertions(+), 1 deletion(-) create mode 100644 Resources/Locale/ru-RU/_white/items/apka.ftl create mode 100644 Resources/Prototypes/_White/Entities/Objects/Weapons/Guns/apka.yml create mode 100644 Resources/Textures/White/Objects/Weapons/advanced_kinetic.rsi/animation-icon.png create mode 100644 Resources/Textures/White/Objects/Weapons/advanced_kinetic.rsi/equipped-BELT.png create mode 100644 Resources/Textures/White/Objects/Weapons/advanced_kinetic.rsi/equipped-SUITSTORAGE.png create mode 100644 Resources/Textures/White/Objects/Weapons/advanced_kinetic.rsi/icon.png create mode 100644 Resources/Textures/White/Objects/Weapons/advanced_kinetic.rsi/inhand-left.png create mode 100644 Resources/Textures/White/Objects/Weapons/advanced_kinetic.rsi/inhand-right.png create mode 100644 Resources/Textures/White/Objects/Weapons/advanced_kinetic.rsi/meta.json create mode 100644 Resources/Textures/White/Objects/Weapons/advanced_kinetic.rsi/wielded-inhand-left.png create mode 100644 Resources/Textures/White/Objects/Weapons/advanced_kinetic.rsi/wielded-inhand-right.png diff --git a/Resources/Locale/ru-RU/_white/items/apka.ftl b/Resources/Locale/ru-RU/_white/items/apka.ftl new file mode 100644 index 0000000000..eb1ae3e183 --- /dev/null +++ b/Resources/Locale/ru-RU/_white/items/apka.ftl @@ -0,0 +1,4 @@ +ent-WeaponAdvancedProtoKineticAccelerator = продвинутый автоматический протокинетический акселератор + .desc = Сокращённо - ПАПА. Обладает повышенной скорострельностью и эффективно добывает породы любых типов. Крайне опасен в бою. + +research-technology-industrial-mining = Промышленная добыча diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml index 744100cc95..ad343bf2a8 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml @@ -420,6 +420,7 @@ layers: - state: chronobolt shader: unshaded + - type: GatheringProjectile # WD - type: Projectile impactEffect: BulletImpactEffectKinetic damage: @@ -487,9 +488,10 @@ damage: types: Blunt: 0 + Structural: 15 # WD # Short lifespan - type: TimedDespawn - lifetime: 0.4 + lifetime: 0.2 # WD - type: entity parent: BaseBullet diff --git a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml index 01d5adf20c..e35d711c04 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml @@ -381,6 +381,10 @@ - WeaponForceGun - WeaponLaserSvalinn - WeaponProtoKineticAccelerator + - WeaponAdvancedProtoKineticAccelerator # WD start + - SeismicCharge + - WeaponCrusherDagger + - WeaponCrusher # WD end - WeaponTetherGun - WeaponGrapplingGun - ClothingBackpackHolding diff --git a/Resources/Prototypes/Recipes/Lathes/devices.yml b/Resources/Prototypes/Recipes/Lathes/devices.yml index 6a786f2b24..1d33217e98 100644 --- a/Resources/Prototypes/Recipes/Lathes/devices.yml +++ b/Resources/Prototypes/Recipes/Lathes/devices.yml @@ -212,6 +212,51 @@ Glass: 500 Silver: 100 +- type: latheRecipe # WD start + id: WeaponAdvancedProtoKineticAccelerator + result: WeaponAdvancedProtoKineticAccelerator + category: Weapons + completetime: 5 + materials: + Steel: 800 + Plasma: 400 + Glass: 200 + Uranium: 200 + Silver: 300 + Gold: 600 + +- type: latheRecipe + id: SeismicCharge + result: SeismicCharge + category: Weapons + completetime: 3 + materials: + Plastic: 800 + Plasma: 100 + Glass: 200 + +- type: latheRecipe + id: WeaponCrusherDagger + result: WeaponCrusherDagger + category: Weapons + completetime: 5 + materials: + Steel: 500 + Plastic: 200 + Silver: 100 + +- type: latheRecipe + id: WeaponCrusher + result: WeaponCrusher + category: Weapons + completetime: 5 + materials: + Steel: 2000 + Plastic: 400 + Glass: 300 + Plasma: 300 + Silver: 200 # WD end + - type: latheRecipe id: WeaponTetherGun result: WeaponTetherGun diff --git a/Resources/Prototypes/Research/arsenal.yml b/Resources/Prototypes/Research/arsenal.yml index e22be07067..acc358d51c 100644 --- a/Resources/Prototypes/Research/arsenal.yml +++ b/Resources/Prototypes/Research/arsenal.yml @@ -12,6 +12,7 @@ recipeUnlocks: - WeaponProtoKineticAccelerator - ShuttleGunKineticCircuitboard + - WeaponCrusherDagger # WD # These are roundstart but not replenishable for salvage - type: technology @@ -109,6 +110,22 @@ # Tier 2 +- type: technology # WD start + id: IndustrialMining + name: research-technology-industrial-mining + icon: + sprite: Objects/Weapons/Bombs/seismic.rsi + state: icon + discipline: Arsenal + tier: 2 + cost: 9500 + recipeUnlocks: + - WeaponAdvancedProtoKineticAccelerator + - SeismicCharge + - WeaponCrusher + technologyPrerequisites: + - SalvageWeapons # WD end + - type: technology id: LightweightMagnets name: research-technology-lightweight-magnets diff --git a/Resources/Prototypes/_White/Entities/Objects/Weapons/Guns/apka.yml b/Resources/Prototypes/_White/Entities/Objects/Weapons/Guns/apka.yml new file mode 100644 index 0000000000..94c88294a2 --- /dev/null +++ b/Resources/Prototypes/_White/Entities/Objects/Weapons/Guns/apka.yml @@ -0,0 +1,59 @@ +- type: entity + parent: BaseItem + id: WeaponAdvancedProtoKineticAccelerator + name: advanced proto-kinetic accelerator + description: Apka. + components: + - type: Sprite + sprite: White/Objects/Weapons/advanced_kinetic.rsi + layers: + - state: icon + - state: animation-icon + visible: false + map: [ "empty-icon" ] + - type: Item + sprite: White/Objects/Weapons/advanced_kinetic.rsi + size: Normal + - type: GunWieldBonus + minAngle: -43 + maxAngle: -43 + - type: Wieldable + - type: Gun + angleDecay: 45 + minAngle: 44 + maxAngle: 45 + fireRate: 6 + ShotsPerBurst: 3 + selectedMode: Burst + availableModes: + - Burst + soundGunshot: + path: /Audio/Weapons/Guns/Gunshots/kinetic_accel.ogg + - type: AmmoCounter + - type: Appearance + - type: GenericVisualizer + visuals: + enum.AmmoVisuals.HasAmmo: + empty-icon: + True: { visible: False } + False: { visible: True } + - type: RechargeBasicEntityAmmo + rechargeCooldown: 0.7 + rechargeSound: + path: /Audio/Weapons/Guns/MagIn/kinetic_reload.ogg + params: + volume: -1 + pitch: 1.2 + variation: 0.08 + - type: BasicEntityAmmoProvider + proto: BulletKinetic + capacity: 3 + count: 2 + - type: Clothing + sprite: Objects/Weapons/Guns/Basic/kinetic_accelerator.rsi + quickEquip: false + slots: + - suitStorage + - Belt + - type: UseDelay + delay: 1 diff --git a/Resources/Textures/White/Objects/Weapons/advanced_kinetic.rsi/animation-icon.png b/Resources/Textures/White/Objects/Weapons/advanced_kinetic.rsi/animation-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..5b125162acb9f6b2815e1ce82e86e06932db9930 GIT binary patch literal 141 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!3HF&`%2dVsSr;W$B>N1w>K6FHW&!FTr_At zxj@-5;PA^3H`Onlb~ep?9p9hKdcR$S;opm#Xt~_8f@^zopr0Fe7Lg#Z8m literal 0 HcmV?d00001 diff --git a/Resources/Textures/White/Objects/Weapons/advanced_kinetic.rsi/equipped-BELT.png b/Resources/Textures/White/Objects/Weapons/advanced_kinetic.rsi/equipped-BELT.png new file mode 100644 index 0000000000000000000000000000000000000000..0547f4066d9444d95f2abd473b45cf2e0c6b4adb GIT binary patch literal 1695 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 E2cEFtq5uE@ literal 0 HcmV?d00001 From 947a99a3fd044325d6f5f4292bdc0336b14c303f Mon Sep 17 00:00:00 2001 From: keslik Date: Wed, 5 Mar 2025 07:22:21 +0300 Subject: [PATCH 06/12] Salvage vendmachine --- .../VendingMachines/Inventories/salvage.yml | 23 ++++++++++--------- .../Clothing/Pouches/base_clothingpouch.yml | 2 +- .../Entities/Clothing/Pouches/pouches.yml | 8 +++---- .../Entities/Objects/Tools/flare.yml | 2 ++ 4 files changed, 18 insertions(+), 17 deletions(-) diff --git a/Resources/Prototypes/Catalog/VendingMachines/Inventories/salvage.yml b/Resources/Prototypes/Catalog/VendingMachines/Inventories/salvage.yml index ef265eac75..33eee9c629 100644 --- a/Resources/Prototypes/Catalog/VendingMachines/Inventories/salvage.yml +++ b/Resources/Prototypes/Catalog/VendingMachines/Inventories/salvage.yml @@ -1,23 +1,24 @@ - type: vendingMachineInventory id: SalvageEquipmentInventory startingInventory: - WeaponProtoKineticAccelerator: 2 - WeaponCrusher: 1 - WeaponCrusherDagger: 2 - HandheldGPSBasic: 4 - Crowbar: 2 - BoxMRE: 3 + WeaponProtoKineticAccelerator: 4 # WD start Pickaxe: 4 - SurvivalKnife: 2 OreBag: 4 + SeismicCharge: 3 + SurvivalKnife: 2 + Crowbar: 2 Flare: 10 FlashlightLantern: 3 Floodlight: 2 - RadioHandheld: 4 - InflatableWallStack1: 20 - InflatableDoorStack1: 10 - SeismicCharge: 3 + PowerCellMedium: 3 + HandheldGPSBasic: 3 + RadioHandheld: 3 FultonBeacon: 2 Fulton: 3 + BoxInflatable: 2 + BoxMRE: 2 + ClothingEyesGlassesMeson: 3 + ClothingPouchMedical: 2 + ClothingPouchGrenade: 2 # WD end emaggedInventory: JetpackBlackFilled: 1 diff --git a/Resources/Prototypes/Entities/Clothing/Pouches/base_clothingpouch.yml b/Resources/Prototypes/Entities/Clothing/Pouches/base_clothingpouch.yml index 5c845561ae..4c9c35fdbb 100644 --- a/Resources/Prototypes/Entities/Clothing/Pouches/base_clothingpouch.yml +++ b/Resources/Prototypes/Entities/Clothing/Pouches/base_clothingpouch.yml @@ -14,7 +14,7 @@ materialComposition: Cloth: 35 - type: StaticPrice - price: 200 + price: 50 - type: EmitSoundOnPickup sound: path: /Audio/White/Web/walk1.ogg diff --git a/Resources/Prototypes/Entities/Clothing/Pouches/pouches.yml b/Resources/Prototypes/Entities/Clothing/Pouches/pouches.yml index ebc399e942..8fe5e00ba5 100644 --- a/Resources/Prototypes/Entities/Clothing/Pouches/pouches.yml +++ b/Resources/Prototypes/Entities/Clothing/Pouches/pouches.yml @@ -27,7 +27,7 @@ - Patch - Healing - type: StaticPrice - price: 250 + price: 75 - type: Appearance - type: entity @@ -50,8 +50,6 @@ - SmokeOnTrigger - ClusterGrenade - ExplodeOnTrigger - - type: StaticPrice - price: 125 - type: Appearance - type: entity @@ -118,7 +116,7 @@ maxFillLevels: 1 fillBaseName: fill- - type: StaticPrice - price: 110 + price: 40 - type: Appearance - type: entity @@ -165,5 +163,5 @@ slots: [pocket, belt] quickEquip: false - type: StaticPrice - price: 150 + price: 70 - type: Appearance diff --git a/Resources/Prototypes/Entities/Objects/Tools/flare.yml b/Resources/Prototypes/Entities/Objects/Tools/flare.yml index fdf5314863..d325d92f6a 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/flare.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/flare.yml @@ -26,6 +26,8 @@ loop: true volume: -10 maxDistance: 5 + - type: StaticPrice # WD + price: 5 # WD - type: Sprite sprite: Objects/Misc/flare.rsi From a63f86ef866d848e8c12df10e04b5a5e5dc02b96 Mon Sep 17 00:00:00 2001 From: keslik Date: Wed, 5 Mar 2025 08:03:05 +0300 Subject: [PATCH 07/12] hop egun --- Resources/Prototypes/Catalog/Fills/Lockers/heads.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Resources/Prototypes/Catalog/Fills/Lockers/heads.yml b/Resources/Prototypes/Catalog/Fills/Lockers/heads.yml index 1f551bf5f6..9d5a34f81c 100644 --- a/Resources/Prototypes/Catalog/Fills/Lockers/heads.yml +++ b/Resources/Prototypes/Catalog/Fills/Lockers/heads.yml @@ -102,7 +102,7 @@ - id: BoxID - id: BoxHeadset - id: IDComputerCircuitboard - - id: WeaponEgun + - id: WeaponDisabler - id: DoorRemoteService - id: ClothingNeckGoldmedal - id: RubberStampHop From bc5583a128a6c2fe61dac4d4740001d0cd3eed97 Mon Sep 17 00:00:00 2001 From: keslik Date: Wed, 5 Mar 2025 11:30:37 +0300 Subject: [PATCH 08/12] Deep Space Com --- .../DeepSpaceCom/DeepSpaceComBoundUI.cs | 57 +++++++++++++++++ .../_White/DeepSpaceCom/DeepSpaceComMenu.xaml | 29 +++++++++ .../DeepSpaceCom/DeepSpaceComMenu.xaml.cs | 59 ++++++++++++++++++ .../Radio/EntitySystems/RadioDeviceSystem.cs | 57 +++++++++++++++++ .../Radio/EntitySystems/RadioSystem.cs | 10 +-- .../DeepSpaceCom/DeepSpaceComComponent.cs | 15 +++++ .../_White/DeepSpaceCom/SharedDeepSpaceCom.cs | 59 ++++++++++++++++++ .../ru-RU/_white/radio/deepspacecom.ftl | 7 +++ .../ru-RU/_white/radio/deepspacecomui.ftl | 5 ++ .../Structures/Machines/deepspacecom.yml | 61 +++++++++++++++++++ Resources/Prototypes/radio_channels.yml | 6 ++ 11 files changed, 361 insertions(+), 4 deletions(-) create mode 100644 Content.Client/_White/DeepSpaceCom/DeepSpaceComBoundUI.cs create mode 100644 Content.Client/_White/DeepSpaceCom/DeepSpaceComMenu.xaml create mode 100644 Content.Client/_White/DeepSpaceCom/DeepSpaceComMenu.xaml.cs create mode 100644 Content.Shared/_White/DeepSpaceCom/DeepSpaceComComponent.cs create mode 100644 Content.Shared/_White/DeepSpaceCom/SharedDeepSpaceCom.cs create mode 100644 Resources/Locale/ru-RU/_white/radio/deepspacecom.ftl create mode 100644 Resources/Locale/ru-RU/_white/radio/deepspacecomui.ftl create mode 100644 Resources/Prototypes/_White/Structures/Machines/deepspacecom.yml diff --git a/Content.Client/_White/DeepSpaceCom/DeepSpaceComBoundUI.cs b/Content.Client/_White/DeepSpaceCom/DeepSpaceComBoundUI.cs new file mode 100644 index 0000000000..1f6d1a2555 --- /dev/null +++ b/Content.Client/_White/DeepSpaceCom/DeepSpaceComBoundUI.cs @@ -0,0 +1,57 @@ +using Content.Shared._White.DeepSpaceCom; +using JetBrains.Annotations; + +namespace Content.Client._White.DeepSpaceCom; + +[UsedImplicitly] +public sealed class DeepSpaceComBoundUI : BoundUserInterface +{ + [ViewVariables] + private DeepSpaceComMenu? _menu; + + public DeepSpaceComBoundUI(EntityUid owner, Enum uiKey) : base(owner, uiKey) + { + + } + + protected override void Open() + { + base.Open(); + + _menu = new(); + + _menu.OnMicPressed += enabled => + { + SendMessage(new ToggleDeepSpaceComMicrophoneMessage(enabled)); + }; + _menu.OnSpeakerPressed += enabled => + { + SendMessage(new ToggleDeepSpaceComSpeakerMessage(enabled)); + }; + _menu.OnChannelSelected += channel => + { + SendMessage(new SelectDeepSpaceComChannelMessage(channel)); + }; + + _menu.OnClose += Close; + _menu.OpenCentered(); + } + + protected override void Dispose(bool disposing) + { + base.Dispose(disposing); + if (!disposing) + return; + _menu?.Close(); + } + + protected override void UpdateState(BoundUserInterfaceState state) + { + base.UpdateState(state); + + if (state is not DeepSpaceComBoundUIState msg) + return; + + _menu?.Update(msg); + } +} diff --git a/Content.Client/_White/DeepSpaceCom/DeepSpaceComMenu.xaml b/Content.Client/_White/DeepSpaceCom/DeepSpaceComMenu.xaml new file mode 100644 index 0000000000..71bd6e3616 --- /dev/null +++ b/Content.Client/_White/DeepSpaceCom/DeepSpaceComMenu.xaml @@ -0,0 +1,29 @@ + + + + + + + + +