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

Merged
merged 23 commits into from
Dec 19, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions Content.Server/Weapons/Ranged/Systems/GunSystem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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;

Expand Down Expand Up @@ -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);
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 @@ -262,6 +262,30 @@
zeroVisible: true
- type: Appearance

Stop-Signs marked this conversation as resolved.
Show resolved Hide resolved
- 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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down Expand Up @@ -44,3 +59,4 @@
impactFlash:
sprite: DeltaV/Objects/Weapons/Guns/Projectiles/projectiles.rsi
state: impact_laser

10 changes: 10 additions & 0 deletions Resources/Prototypes/DeltaV/Recipes/Lathes/security.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
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
3 changes: 3 additions & 0 deletions Resources/Prototypes/Entities/Structures/Machines/lathe.yml
Original file line number Diff line number Diff line change
Expand Up @@ -440,7 +440,9 @@
- AdvancedTruncheon
- LauncherSyringe
- MiniSyringe
- WeaponColdCannon
- WeaponBeamCannon

# End DeltaV additions

- type: entity
Expand Down Expand Up @@ -896,6 +898,7 @@
- ClothingOuterHardsuitSyndieReverseEngineered
- ClothingShoesBootsSecurityMagboots
- AdvancedTruncheon
- WeaponColdCannon
- WeaponBeamCannon
# End DeltaV additions
- type: MaterialStorage
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