diff --git a/Content.Server/Weapons/Ranged/Systems/GunSystem.cs b/Content.Server/Weapons/Ranged/Systems/GunSystem.cs index 03e529c4398..011a17c018f 100644 --- a/Content.Server/Weapons/Ranged/Systems/GunSystem.cs +++ b/Content.Server/Weapons/Ranged/Systems/GunSystem.cs @@ -2,6 +2,8 @@ using System.Numerics; using Content.Server.Cargo.Systems; using Content.Server.Power.EntitySystems; +using Content.Server.Stunnable; +using Content.Server.Temperature.Systems; // DeltaV Heat Change system using Content.Server.Weapons.Ranged.Components; using Content.Shared.Damage; using Content.Shared.Damage.Systems; @@ -38,6 +40,7 @@ public sealed partial class GunSystem : SharedGunSystem [Dependency] private readonly SharedTransformSystem _transform = default!; [Dependency] private readonly StaminaSystem _stamina = default!; [Dependency] private readonly SharedContainerSystem _container = default!; + [Dependency] private readonly TemperatureSystem _temperature = default!; // DeltaV Heat change system private const float DamagePitchVariation = 0.05f; @@ -217,6 +220,10 @@ public override void Shoot(EntityUid gunUid, GunComponent gun, List<(EntityUid? if (hitscan.StaminaDamage > 0f) _stamina.TakeProjectileStaminaDamage(hitEntity, hitscan.StaminaDamage, source: user); // DeltaV - Cope with hitscan not being an entity + // DeltaV: Changes the target's temperature by this amount when hit + if (hitscan.HeatChange != 0f) + _temperature.ChangeHeat(hitEntity, hitscan.HeatChange, true); + var dmg = hitscan.Damage; var hitName = ToPrettyString(hitEntity); diff --git a/Content.Shared/Weapons/Ranged/HitscanPrototype.cs b/Content.Shared/Weapons/Ranged/HitscanPrototype.cs index a5063e3ab5b..665dbbf464d 100644 --- a/Content.Shared/Weapons/Ranged/HitscanPrototype.cs +++ b/Content.Shared/Weapons/Ranged/HitscanPrototype.cs @@ -17,6 +17,12 @@ public sealed partial class HitscanPrototype : IPrototype, IShootable [ViewVariables(VVAccess.ReadWrite), DataField("staminaDamage")] public float StaminaDamage; + /// + /// DeltaV: Changes the target's temperature by this amount when hit. + /// + [DataField] + public float HeatChange; + [ViewVariables(VVAccess.ReadWrite), DataField("damage")] public DamageSpecifier? Damage; diff --git a/Resources/Locale/en-US/deltav/research/technologies.ftl b/Resources/Locale/en-US/deltav/research/technologies.ftl index ae1a8fe69ab..aa0e121ef57 100644 --- a/Resources/Locale/en-US/deltav/research/technologies.ftl +++ b/Resources/Locale/en-US/deltav/research/technologies.ftl @@ -6,3 +6,4 @@ research-technology-energy-gun-advance = Advanced Energy Manipulation research-technology-advance-laser = Advanced Laser Manipulation research-technology-robust-melee = Robust Melee research-technology-syringe-gun = Syringe Gun +research-technology-ionized-cryogenic-emission-equipment = Ionized Cryogenic Emission Equipment diff --git a/Resources/Prototypes/DeltaV/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml b/Resources/Prototypes/DeltaV/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml index 8885134daef..6cdeba10d4c 100644 --- a/Resources/Prototypes/DeltaV/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml +++ b/Resources/Prototypes/DeltaV/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml @@ -262,6 +262,30 @@ zeroVisible: true - type: Appearance +- type: entity + parent: [ BaseWeaponBattery, BaseGunWieldable, BaseSecurityContraband ] + id: WeaponColdCannon + name: I.C.E.E. + description: It's cooler than a normal gun. + components: + - type: Sprite + sprite: DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi + layers: + - state: base + map: ["enum.GunVisualLayers.Base"] + - state: mag-unshaded-4 + map: ["enum.GunVisualLayers.MagUnshaded"] + shader: unshaded + - type: Clothing + sprite: DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi + - type: Gun + fireRate: 1.5 + soundGunshot: + path: /Audio/Weapons/Guns/Gunshots/laser_cannon.ogg + - type: HitscanBatteryAmmoProvider + proto: ColdLaser + fireCost: 100 + - type: entity parent: [ BaseWeaponBattery, BaseGunWieldable, BaseSecurityContraband ] id: WeaponBeamCannon diff --git a/Resources/Prototypes/DeltaV/Entities/Objects/Weapons/Guns/Projectiles/hitscan.yml b/Resources/Prototypes/DeltaV/Entities/Objects/Weapons/Guns/Projectiles/hitscan.yml index d2420ca3bfb..f7daf83b424 100644 --- a/Resources/Prototypes/DeltaV/Entities/Objects/Weapons/Guns/Projectiles/hitscan.yml +++ b/Resources/Prototypes/DeltaV/Entities/Objects/Weapons/Guns/Projectiles/hitscan.yml @@ -14,6 +14,21 @@ sprite: Objects/Weapons/Guns/Projectiles/projectiles.rsi state: impact_omni +- type: hitscan + id: ColdLaser + damage: + types: + Cold: 20 + muzzleFlash: + sprite: Objects/Weapons/Guns/Projectiles/projectiles.rsi + state: muzzle_omni + travelFlash: + sprite: Objects/Weapons/Guns/Projectiles/projectiles.rsi + state: beam_omni + impactFlash: + sprite: Objects/Weapons/Guns/Projectiles/projectiles.rsi + state: impact_omni + heatChange: -50000 - type: hitscan id: BeamLaser damage: @@ -44,3 +59,4 @@ impactFlash: sprite: DeltaV/Objects/Weapons/Guns/Projectiles/projectiles.rsi state: impact_laser + diff --git a/Resources/Prototypes/DeltaV/Recipes/Lathes/security.yml b/Resources/Prototypes/DeltaV/Recipes/Lathes/security.yml index 022049ccee3..b831986c3cd 100644 --- a/Resources/Prototypes/DeltaV/Recipes/Lathes/security.yml +++ b/Resources/Prototypes/DeltaV/Recipes/Lathes/security.yml @@ -224,6 +224,16 @@ Steel: 1000 Plastic: 800 +- type: latheRecipe + parent: BaseWeaponRecipeLong + id: WeaponColdCannon + result: WeaponColdCannon + materials: + Steel: 1500 + Glass: 600 + Plastic: 400 + Silver: 300 + - type: latheRecipe parent: BaseWeaponRecipeLong id: WeaponBeamCannon diff --git a/Resources/Prototypes/DeltaV/Research/arsenal.yml b/Resources/Prototypes/DeltaV/Research/arsenal.yml index d604eb80568..5a0dfda8883 100644 --- a/Resources/Prototypes/DeltaV/Research/arsenal.yml +++ b/Resources/Prototypes/DeltaV/Research/arsenal.yml @@ -52,3 +52,15 @@ cost: 12500 recipeUnlocks: - AdvancedTruncheon + +- type: technology + id: IonizedCryogenicEmissionEquiplment + name: research-technology-ionized-cryogenic-emission-equipment + icon: + sprite: DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi + state: icon + discipline: Arsenal + tier: 3 + cost: 10000 + recipeUnlocks: + - WeaponColdCannon diff --git a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml index 3bec2417ef1..d58d5f4f75a 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml @@ -440,7 +440,9 @@ - AdvancedTruncheon - LauncherSyringe - MiniSyringe + - WeaponColdCannon - WeaponBeamCannon + # End DeltaV additions - type: entity @@ -896,6 +898,7 @@ - ClothingOuterHardsuitSyndieReverseEngineered - ClothingShoesBootsSecurityMagboots - AdvancedTruncheon + - WeaponColdCannon - WeaponBeamCannon # End DeltaV additions - type: MaterialStorage diff --git a/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/0-inhand-left.png b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/0-inhand-left.png new file mode 100644 index 00000000000..2ff89ccdee0 Binary files /dev/null and b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/0-inhand-left.png differ diff --git a/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/0-inhand-right.png b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/0-inhand-right.png new file mode 100644 index 00000000000..e4fbbd6142d Binary files /dev/null and b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/0-inhand-right.png differ diff --git a/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/25-inhand-left.png b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/25-inhand-left.png new file mode 100644 index 00000000000..f6fc89bad1c Binary files /dev/null and b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/25-inhand-left.png differ diff --git a/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/25-inhand-right.png b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/25-inhand-right.png new file mode 100644 index 00000000000..8a383b120ae Binary files /dev/null and b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/25-inhand-right.png differ diff --git a/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/50-inhand-left.png b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/50-inhand-left.png new file mode 100644 index 00000000000..837127e2d4d Binary files /dev/null and b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/50-inhand-left.png differ diff --git a/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/50-inhand-right.png b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/50-inhand-right.png new file mode 100644 index 00000000000..b76af8dae06 Binary files /dev/null and b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/50-inhand-right.png differ diff --git a/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/75-inhand-left.png b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/75-inhand-left.png new file mode 100644 index 00000000000..47e9b408bbd Binary files /dev/null and b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/75-inhand-left.png differ diff --git a/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/75-inhand-right.png b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/75-inhand-right.png new file mode 100644 index 00000000000..09d2a6c6468 Binary files /dev/null and b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/75-inhand-right.png differ diff --git a/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/base.png b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/base.png new file mode 100644 index 00000000000..56258820e2c Binary files /dev/null and b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/base.png differ diff --git a/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/equipped-BACKPACK.png b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/equipped-BACKPACK.png new file mode 100644 index 00000000000..cc367b8352e Binary files /dev/null and b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/equipped-BACKPACK.png differ diff --git a/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/equipped-SUITSTORAGE.png b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/equipped-SUITSTORAGE.png new file mode 100644 index 00000000000..cc367b8352e Binary files /dev/null and b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/equipped-SUITSTORAGE.png differ diff --git a/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/icon.png b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/icon.png new file mode 100644 index 00000000000..38e4e876632 Binary files /dev/null and b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/icon.png differ diff --git a/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/inhand-left.png b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/inhand-left.png new file mode 100644 index 00000000000..b9e81e9b496 Binary files /dev/null and b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/inhand-left.png differ diff --git a/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/inhand-right.png b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/inhand-right.png new file mode 100644 index 00000000000..6074c6a76d6 Binary files /dev/null and b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/inhand-right.png differ diff --git a/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/mag-unshaded-1.png b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/mag-unshaded-1.png new file mode 100644 index 00000000000..e900d13598e Binary files /dev/null and b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/mag-unshaded-1.png differ diff --git a/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/mag-unshaded-2.png b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/mag-unshaded-2.png new file mode 100644 index 00000000000..1a20164b589 Binary files /dev/null and b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/mag-unshaded-2.png differ diff --git a/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/mag-unshaded-3.png b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/mag-unshaded-3.png new file mode 100644 index 00000000000..78b1d7ca294 Binary files /dev/null and b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/mag-unshaded-3.png differ diff --git a/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/mag-unshaded-4.png b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/mag-unshaded-4.png new file mode 100644 index 00000000000..90b5b23a215 Binary files /dev/null and b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/mag-unshaded-4.png differ diff --git a/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/meta.json b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/meta.json new file mode 100644 index 00000000000..8549d3e1825 --- /dev/null +++ b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/meta.json @@ -0,0 +1,85 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from vgstation at https://github.com/vgstation-coders/vgstation13/commit/125c975f1b3bf9826b37029e9ab5a5f89e975a7e, backpack sprite by Peptide, backpack sling sprite edited by Boaz1111, wield sprites by RiceMar1244, Resprited for DeltaV by Stop-Sign", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "base" + }, + { + "name": "mag-unshaded-1" + }, + { + "name": "mag-unshaded-2" + }, + { + "name": "mag-unshaded-3" + }, + { + "name": "mag-unshaded-4" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "wielded-inhand-left", + "directions": 4 + }, + { + "name": "wielded-inhand-right", + "directions": 4 + }, + { + "name": "0-inhand-left", + "directions": 4 + }, + { + "name": "0-inhand-right", + "directions": 4 + }, + { + "name": "25-inhand-left", + "directions": 4 + }, + { + "name": "25-inhand-right", + "directions": 4 + }, + { + "name": "50-inhand-left", + "directions": 4 + }, + { + "name": "50-inhand-right", + "directions": 4 + }, + { + "name": "75-inhand-left", + "directions": 4 + }, + { + "name": "75-inhand-right", + "directions": 4 + }, + { + "name": "equipped-BACKPACK", + "directions": 4 + }, + { + "name": "equipped-SUITSTORAGE", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/wielded-inhand-left.png b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/wielded-inhand-left.png new file mode 100644 index 00000000000..e8e19113d9e Binary files /dev/null and b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/wielded-inhand-left.png differ diff --git a/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/wielded-inhand-right.png b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/wielded-inhand-right.png new file mode 100644 index 00000000000..f181078b55e Binary files /dev/null and b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/wielded-inhand-right.png differ