From e4642cefcbd4f58dd1e0cffa1456b97b135b32b0 Mon Sep 17 00:00:00 2001 From: Nemanja <98561806+EmoGarbage404@users.noreply.github.com> Date: Fri, 21 Apr 2023 05:16:33 -0400 Subject: [PATCH] [entity] Mega Spray Bottle (#15558) --- .../Chemistry/EntitySystems/VaporSystem.cs | 2 +- .../catalog/research/technologies.ftl | 2 +- .../Catalog/Research/technologies.yml | 3 +- .../Objects/Specific/Janitorial/spray.yml | 47 ++++++++++++++++++ .../Entities/Structures/Machines/lathe.yml | 1 + .../Prototypes/Recipes/Lathes/janitorial.yml | 7 +++ .../janitorial.rsi/cleaner_large.png | Bin 0 -> 436 bytes .../Janitorial/janitorial.rsi/meta.json | 3 ++ 8 files changed, 62 insertions(+), 3 deletions(-) create mode 100644 Resources/Textures/Objects/Specific/Janitorial/janitorial.rsi/cleaner_large.png diff --git a/Content.Server/Chemistry/EntitySystems/VaporSystem.cs b/Content.Server/Chemistry/EntitySystems/VaporSystem.cs index d4f67de548..106867ccbc 100644 --- a/Content.Server/Chemistry/EntitySystems/VaporSystem.cs +++ b/Content.Server/Chemistry/EntitySystems/VaporSystem.cs @@ -63,7 +63,7 @@ namespace Content.Server.Chemistry.EntitySystems _physics.SetLinearDamping(physics, 0f); _physics.SetAngularDamping(physics, 0f); - _throwing.TryThrow(vapor.Owner, dir * speed, user: user, pushbackRatio: 50f); + _throwing.TryThrow(vapor.Owner, dir * speed, speed, user: user, pushbackRatio: 50f); var distance = (target.Position - vaporXform.WorldPosition).Length; var time = (distance / physics.LinearVelocity.Length); diff --git a/Resources/Locale/en-US/prototypes/catalog/research/technologies.ftl b/Resources/Locale/en-US/prototypes/catalog/research/technologies.ftl index f134dce9c2..f98366b17e 100644 --- a/Resources/Locale/en-US/prototypes/catalog/research/technologies.ftl +++ b/Resources/Locale/en-US/prototypes/catalog/research/technologies.ftl @@ -5,7 +5,7 @@ technologies-cleaning-technology = Cleaning technology technologies-cleaning-technology-description = Start to a shiny clean station. technologies-advanced-cleaning-technology = Advanced cleaning technology -technologies-advanced-cleaning-technology-description = Advanced mop won't stop people from trashing the station, sadly. +technologies-advanced-cleaning-technology-description = Advanced tools won't stop people from trashing the station, sadly. technologies-foodbev-technology = Food and beverage technology technologies-food-and-beverage-technology-description = Robust service from better technology. diff --git a/Resources/Prototypes/Catalog/Research/technologies.yml b/Resources/Prototypes/Catalog/Research/technologies.yml index e492a847c5..bfbae68d97 100644 --- a/Resources/Prototypes/Catalog/Research/technologies.yml +++ b/Resources/Prototypes/Catalog/Research/technologies.yml @@ -28,6 +28,7 @@ - Bucket - MopItem - SprayBottle + - type: technology name: technologies-advanced-cleaning-technology id: AdvancedCleaningTechnology @@ -37,10 +38,10 @@ state: advmop requiredPoints: 5000 requiredTechnologies: - - BasicResearch - CleaningTechnology unlockedRecipes: - AdvMopItem + - MegaSprayBottle # Food/Bev Service Technology Tree diff --git a/Resources/Prototypes/Entities/Objects/Specific/Janitorial/spray.yml b/Resources/Prototypes/Entities/Objects/Specific/Janitorial/spray.yml index 3bb9c97fd9..8106e170a7 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Janitorial/spray.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Janitorial/spray.yml @@ -24,6 +24,7 @@ - type: DrainableSolution solution: spray - type: SolutionTransfer + canChangeTransferAmount: true - type: ItemCooldown - type: Spray transferAmount: 10 @@ -33,6 +34,29 @@ - type: TrashOnEmpty solution: spray +- type: entity + name: mega spray bottle + id: MegaSprayBottle + parent: SprayBottle + suffix: Empty + description: A huge spray bottle, capable of unrivaled janitorial power. + components: + - type: Sprite + netsync: false + sprite: Objects/Specific/Janitorial/janitorial.rsi + state: cleaner_large + - type: SolutionContainerManager + solutions: + spray: + maxVol: 250 + - type: Spray + sprayedPrototype: BigVapor + transferAmount: 10 + sprayVelocity: 5 + sprayAliveTime: 1.5 + spraySound: + path: /Audio/Effects/spray2.ogg + - type: entity name: spray bottle id: SprayBottleWater @@ -102,3 +126,26 @@ - Opaque - type: Appearance - type: VaporVisuals + +- type: entity + id: BigVapor + parent: Vapor + noSpawn: true + components: + - type: Sprite + netsync: false + sprite: Effects/chempuff.rsi + rotation: 90 + layers: + - state: chempuff + scale: 2, 2 + map: ["enum.VaporVisualLayers.Base"] + - type: Fixtures + fixtures: + - shape: + !type:PhysShapeAabb + bounds: "-0.6,-0.6,0.6,0.6" + hard: false + mask: + - FullTileMask + - Opaque diff --git a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml index 316b78ecf6..62a89a3dda 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml @@ -221,6 +221,7 @@ - MopItem - AdvMopItem - SprayBottle + - MegaSprayBottle - FireExtinguisher - KitchenKnife - ButchCleaver diff --git a/Resources/Prototypes/Recipes/Lathes/janitorial.yml b/Resources/Prototypes/Recipes/Lathes/janitorial.yml index 1515ccdaad..f05b060447 100644 --- a/Resources/Prototypes/Recipes/Lathes/janitorial.yml +++ b/Resources/Prototypes/Recipes/Lathes/janitorial.yml @@ -27,6 +27,13 @@ materials: Plastic: 100 +- type: latheRecipe + id: MegaSprayBottle + result: MegaSprayBottle + completetime: 3 + materials: + Plastic: 250 + - type: latheRecipe id: SprayBottle result: SprayBottle diff --git a/Resources/Textures/Objects/Specific/Janitorial/janitorial.rsi/cleaner_large.png b/Resources/Textures/Objects/Specific/Janitorial/janitorial.rsi/cleaner_large.png new file mode 100644 index 0000000000000000000000000000000000000000..eae006982a6f28e2e767b3465efc7b32b546cbb8 GIT binary patch literal 436 zcmV;l0ZaagP)Px$Zb?KzR9J=Wm9b01P!Pty#G)vI1*eLrAP6F;lZwU+4!URt2dAJ=T%4R-RFFc7 z;C~>fL+MmHrJEo^oph|wfJ3W`9UK%zX*%Q_YG{LWxR;{K`$6DwFL(FxzFZz4kx2d- zh4XScu2QQ#^TK1*@`-R0`g$W+ov8hazkR6`?cobyt3Fz5oWkkKrxcz$Fh45NwgKCMbX+A-zuO|9x%t)PG0KjE!ayg0Qy~Ft3w#VKNi#cp=$_Ir zsBJ(uH(O3f+XWa_lC<6ZKx}MfOIQTEIj*0m;u4`mw0)i-*yZ|jk|nMP_BQ|k_yl72 zKkE+0X$Y|* z0QUvxiUI)gBa6^Y5J!aY6vT?6nL(rl;Vn>wON0~Pb2hskDqrYQY5v)`)oNhxHk)bN eMJ16){)BIGJcoa!{(NBo0000