Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New weapon - I.C.E.E. #2170

Open
wants to merge 14 commits into
base: master
Choose a base branch
from
5 changes: 5 additions & 0 deletions Content.Server/Weapons/Ranged/Systems/GunSystem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
using Content.Server.Interaction;
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;
Expand Down Expand Up @@ -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!; // DeltaV Heat change system

private const float DamagePitchVariation = 0.05f;
public const float GunClumsyChance = 0.5f;
Expand Down Expand Up @@ -225,6 +227,9 @@ 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;

Expand Down
6 changes: 6 additions & 0 deletions Content.Shared/Weapons/Ranged/HitscanPrototype.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,12 @@ public sealed partial class HitscanPrototype : IPrototype, IShootable
[ViewVariables(VVAccess.ReadWrite), DataField("staminaDamage")]
public float StaminaDamage;
Stop-Signs marked this conversation as resolved.
Show resolved Hide resolved

/// <summary>
/// DeltaV: Changes the target's temperature by this amount when hit.
/// </summary>
[DataField]
public float HeatChange;

[ViewVariables(VVAccess.ReadWrite), DataField("damage")]
public DamageSpecifier? Damage;

Expand Down
1 change: 1 addition & 0 deletions Resources/Locale/en-US/deltav/research/technologies.ftl
Original file line number Diff line number Diff line change
Expand Up @@ -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
Original file line number Diff line number Diff line change
Expand Up @@ -261,3 +261,27 @@
steps: 5
zeroVisible: true
- type: Appearance

Stop-Signs marked this conversation as resolved.
Show resolved Hide resolved
- 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
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,19 @@
impactFlash:
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
9 changes: 9 additions & 0 deletions Resources/Prototypes/DeltaV/Recipes/Lathes/security.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
12 changes: 12 additions & 0 deletions Resources/Prototypes/DeltaV/Research/arsenal.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
2 changes: 2 additions & 0 deletions Resources/Prototypes/Entities/Structures/Machines/lathe.yml
Original file line number Diff line number Diff line change
Expand Up @@ -438,6 +438,7 @@
- AdvancedTruncheon
- LauncherSyringe
- MiniSyringe
- WeaponColdCannon
# End DeltaV additions

- type: entity
Expand Down Expand Up @@ -943,6 +944,7 @@
- ClothingOuterHardsuitSyndieReverseEngineered
- ClothingShoesBootsSecurityMagboots
- AdvancedTruncheon
- WeaponColdCannon
# End DeltaV additions
- type: MaterialStorage
whitelist:
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -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
}
]
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading