diff --git a/Content.Server/Weapons/Ranged/Systems/GunSystem.cs b/Content.Server/Weapons/Ranged/Systems/GunSystem.cs index 701753a8ce2..c455a160f9e 100644 --- a/Content.Server/Weapons/Ranged/Systems/GunSystem.cs +++ b/Content.Server/Weapons/Ranged/Systems/GunSystem.cs @@ -4,6 +4,7 @@ using Content.Server.Interaction; using Content.Server.Power.EntitySystems; using Content.Server.Stunnable; +using Content.Server.Temperature.Systems; using Content.Server.Weapons.Ranged.Components; using Content.Shared.Damage; using Content.Shared.Damage.Systems; @@ -40,6 +41,7 @@ public sealed partial class GunSystem : SharedGunSystem [Dependency] private readonly StaminaSystem _stamina = default!; [Dependency] private readonly StunSystem _stun = default!; [Dependency] private readonly SharedContainerSystem _container = default!; + [Dependency] private readonly TemperatureSystem _temperature = default!; private const float DamagePitchVariation = 0.05f; public const float GunClumsyChance = 0.5f; @@ -225,6 +227,11 @@ public override void Shoot(EntityUid gunUid, GunComponent gun, List<(EntityUid? var hitEntity = lastHit.Value; if (hitscan.StaminaDamage > 0f) _stamina.TakeStaminaDamage(hitEntity, hitscan.StaminaDamage, source: user); + /// + /// 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; diff --git a/Content.Shared/Weapons/Ranged/HitscanPrototype.cs b/Content.Shared/Weapons/Ranged/HitscanPrototype.cs index a5063e3ab5b..ad3dac1a734 100644 --- a/Content.Shared/Weapons/Ranged/HitscanPrototype.cs +++ b/Content.Shared/Weapons/Ranged/HitscanPrototype.cs @@ -16,6 +16,11 @@ 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. + /// + [ViewVariables(VVAccess.ReadWrite), DataField("heatChange")] + 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 25377b155f8..e3a1f3a5828 100644 --- a/Resources/Locale/en-US/deltav/research/technologies.ftl +++ b/Resources/Locale/en-US/deltav/research/technologies.ftl @@ -5,3 +5,4 @@ research-technology-energy-gun = Energy Guns research-technology-energy-gun-advance = Advanced Energy Manipulation research-technology-advance-laser = Advanced Laser Manipulation research-technology-robust-melee = Robust Melee +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 2b74330b141..0f71427477f 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 @@ -261,3 +261,28 @@ steps: 5 zeroVisible: true - type: Appearance + + +- type: entity + name: I.C.E.E. + parent: [BaseWeaponBattery, BaseGunWieldable, BaseRestrictedContraband] + id: WeaponColdCannon + 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 \ No newline at end of file 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 df88af92e26..b699ca86d24 100644 --- a/Resources/Prototypes/DeltaV/Entities/Objects/Weapons/Guns/Projectiles/hitscan.yml +++ b/Resources/Prototypes/DeltaV/Entities/Objects/Weapons/Guns/Projectiles/hitscan.yml @@ -19,8 +19,6 @@ damage: types: Cold: 20 -- type: ChangeTemperatureOnCollide - heat: -50000 muzzleFlash: sprite: Objects/Weapons/Guns/Projectiles/projectiles.rsi state: muzzle_omni diff --git a/Resources/Prototypes/DeltaV/Recipes/Lathes/security.yml b/Resources/Prototypes/DeltaV/Recipes/Lathes/security.yml index 02b2ef0f5ca..c3424123db7 100644 --- a/Resources/Prototypes/DeltaV/Recipes/Lathes/security.yml +++ b/Resources/Prototypes/DeltaV/Recipes/Lathes/security.yml @@ -224,3 +224,12 @@ Steel: 1000 Plastic: 800 +- type: latheRecipe + parent: BaseWeaponRecipeLong + id: WeaponColdCannon + result: WeaponColdCannon + materials: + Steel: 1500 + Glass: 600 + Plastic: 400 + Silver: 300 diff --git a/Resources/Prototypes/DeltaV/Research/arsenal.yml b/Resources/Prototypes/DeltaV/Research/arsenal.yml index d604eb80568..6956dc6c230 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 \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml index f6f58803ed4..1c5b53a034e 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml @@ -436,6 +436,7 @@ - MagazineBoxSpecialHoly - MagazineBoxSpecialMindbreaker - AdvancedTruncheon + - WeaponColdCannon # End DeltaV additions - type: entity @@ -941,6 +942,7 @@ - ClothingOuterHardsuitSyndieReverseEngineered - ClothingShoesBootsSecurityMagboots - AdvancedTruncheon + - WeaponColdCannon # End DeltaV additions - type: MaterialStorage whitelist: 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/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/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/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..acbd06c2708 --- /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", + "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