diff --git a/Content.Server/_DV/Execution/ExecutionSystem.cs b/Content.Server/_DV/Execution/ExecutionSystem.cs index 8d4ba66cbc..0ff02cc2cd 100644 --- a/Content.Server/_DV/Execution/ExecutionSystem.cs +++ b/Content.Server/_DV/Execution/ExecutionSystem.cs @@ -14,6 +14,7 @@ using Content.Shared.Mobs.Systems; using Content.Shared.Popups; using Content.Shared.Projectiles; using Content.Shared.Verbs; +using Content.Shared.Weapons.Hitscan.Components; using Content.Shared.Weapons.Ranged; using Content.Shared.Weapons.Ranged.Components; using Content.Shared.Weapons.Ranged.Events; @@ -235,9 +236,7 @@ public sealed class ExecutionSystem : EntitySystem var prototype = _prototypeManager.Index(cartridge.Prototype); prototype.TryGetComponent(out var projectileA, _componentFactory); // sloth forgive me if (projectileA != null) - { damage = projectileA.Damage; - } // Expend the cartridge cartridge.Spent = true; @@ -248,14 +247,16 @@ public sealed class ExecutionSystem : EntitySystem case AmmoComponent newAmmo: if (TryComp(ammoUid, out var projectileB)) - { damage = projectileB.Damage; - } + Del(ammoUid); break; - case HitscanPrototype hitscan: - damage = hitscan.Damage!; + case HitscanAmmoComponent hitscan: + if (TryComp(ammoUid, out var hitscanDamage)) + damage = hitscanDamage.Damage; + + Del(ammoUid); // Im guessing we delete this too? break; default: @@ -264,8 +265,7 @@ public sealed class ExecutionSystem : EntitySystem // Clumsy people have a chance to shoot themselves (not in the head) if (!component.ClumsyProof && - TryComp(attacker, out var clumsy) && - _random.Prob(1f/3f)) + TryComp(attacker, out var clumsy) && _random.Prob(1f / 3f)) { ShowExecutionPopup("execution-popup-gun-clumsy-internal", Filter.Entities(attacker), PopupType.Medium, attacker, victim, weapon); ShowExecutionPopup("execution-popup-gun-clumsy-external", Filter.PvsExcept(attacker), PopupType.MediumCaution, attacker, victim, weapon); diff --git a/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.Battery.cs b/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.Battery.cs index e7b44737bd..d6320e6e86 100644 --- a/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.Battery.cs +++ b/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.Battery.cs @@ -44,8 +44,8 @@ public abstract partial class SharedGunSystem component.FireCost = state.FireCost; UpdateAmmoCount(uid, prediction: false); - if (component is HitscanBatteryAmmoProviderComponent hitscan && state.Prototype != null) // Shitmed Change - hitscan.Prototype = state.Prototype; + if (component is HitscanBatteryAmmoProviderComponent hitscan && state.Prototype is { } proto) // Shitmed Change + hitscan.HitscanEntityProto = proto; } private void OnBatteryGetState(EntityUid uid, BatteryAmmoProviderComponent component, ref ComponentGetState args) @@ -58,7 +58,7 @@ public abstract partial class SharedGunSystem }; if (TryComp(uid, out var hitscan)) // Shitmed Change - state.Prototype = hitscan.Prototype; + state.Prototype = hitscan.HitscanEntityProto; args.State = state; // Shitmed Change } @@ -179,6 +179,6 @@ public abstract partial class SharedGunSystem public int Shots; public int MaxShots; public float FireCost; - public string? Prototype; // Shitmed Change + public EntProtoId? Prototype; // Shitmed Change } } diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/hitscan.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/hitscan.yml index d03025abd9..7e88dd4d9d 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/hitscan.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/hitscan.yml @@ -147,7 +147,7 @@ damage: types: Heat: 75 # DeltaV - was 45 - Structural: Structural: 100 # DeltaV - was 10 + Structural: 100 # DeltaV - was 10 - type: HitscanBasicVisuals muzzleFlash: sprite: Objects/Weapons/Guns/Projectiles/projectiles.rsi diff --git a/Resources/Prototypes/Voice/speech_emote_sounds.yml b/Resources/Prototypes/Voice/speech_emote_sounds.yml index 500676968e..46d549b026 100644 --- a/Resources/Prototypes/Voice/speech_emote_sounds.yml +++ b/Resources/Prototypes/Voice/speech_emote_sounds.yml @@ -256,8 +256,8 @@ path: /Audio/Voice/Vox/vox_sigh.ogg Click: path: /Audio/Voice/Vox/vox_click.ogg - Chitter: - path: /Audio/Voice/Vox/vox_chitter.ogg + #Chitter: # DeltaV - Combined upstream and impstation sounds + # path: /Audio/Voice/Vox/vox_chitter.ogg Honk: collection: BikeHorn Crying: @@ -274,7 +274,7 @@ collection: VoxDeathgasp # DeltaV - Combined upstream and our sounds # Begin Impstation Additions Chitter: - collection: VoxChitter + collection: VoxChitter # DeltaV - Combined upstream and impstation sounds params: volume: -5 Coo: diff --git a/Resources/Prototypes/_DV/Entities/Objects/Weapons/Guns/Projectiles/hitscan.yml b/Resources/Prototypes/_DV/Entities/Objects/Weapons/Guns/Projectiles/hitscan.yml index f4b29d2cfb..b379367d10 100644 --- a/Resources/Prototypes/_DV/Entities/Objects/Weapons/Guns/Projectiles/hitscan.yml +++ b/Resources/Prototypes/_DV/Entities/Objects/Weapons/Guns/Projectiles/hitscan.yml @@ -1,78 +1,104 @@ -- type: hitscan +- type: entity + parent: BasicHitscan id: WispLash - damage: - types: - Shadow: 8 - Shock: 8 - 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 + categories: [ HideSpawnMenu ] + components: + - type: HitscanBasicVisuals + 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 + - type: HitscanBasicDamage + damage: + types: + Shadow: 8 + Shock: 8 -- type: hitscan +- type: entity + parent: BasicHitscan 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 + categories: [ HideSpawnMenu ] + components: + - type: HitscanBasicVisuals + 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 + - type: HitscanBasicDamage + damage: + types: + Cold: 20 + # TODO: HeatChange -50000 + +- type: entity + parent: BasicHitscan id: BeamLaser - damage: - types: - Heat: 2 - muzzleFlash: - sprite: _DV/Objects/Weapons/Guns/Projectiles/projectiles.rsi - state: muzzle_laser - travelFlash: - sprite: _DV/Objects/Weapons/Guns/Projectiles/projectiles.rsi - state: beam - impactFlash: - sprite: _DV/Objects/Weapons/Guns/Projectiles/projectiles.rsi - state: impact_laser + categories: [ HideSpawnMenu ] + components: + - type: HitscanBasicVisuals + muzzleFlash: + sprite: _DV/Objects/Weapons/Guns/Projectiles/projectiles.rsi + state: muzzle_laser + travelFlash: + sprite: _DV/Objects/Weapons/Guns/Projectiles/projectiles.rsi + state: beam + impactFlash: + sprite: _DV/Objects/Weapons/Guns/Projectiles/projectiles.rsi + state: impact_laser + - type: HitscanBasicDamage + damage: + types: + Heat: 2 -- type: hitscan +- type: entity + parent: BasicHitscan id: BeamDev - damage: - types: - Heat: 6 - Structural: 20 - muzzleFlash: - sprite: _DV/Objects/Weapons/Guns/Projectiles/projectiles.rsi - state: muzzle_laser - travelFlash: - sprite: _DV/Objects/Weapons/Guns/Projectiles/projectiles.rsi - state: beam - impactFlash: - sprite: _DV/Objects/Weapons/Guns/Projectiles/projectiles.rsi - state: impact_laser + categories: [ HideSpawnMenu ] + components: + - type: HitscanBasicVisuals + muzzleFlash: + sprite: _DV/Objects/Weapons/Guns/Projectiles/projectiles.rsi + state: muzzle_laser + travelFlash: + sprite: _DV/Objects/Weapons/Guns/Projectiles/projectiles.rsi + state: beam + impactFlash: + sprite: _DV/Objects/Weapons/Guns/Projectiles/projectiles.rsi + state: impact_laser + - type: HitscanBasicDamage + damage: + types: + Heat: 6 + Structural: 10 -- type: hitscan +- type: entity + parent: BasicHitscan id: GamblagatorLaser - damage: - types: - Heat: 100 - Radiation: 20 - Structural: 100 - muzzleFlash: - sprite: _DV/Objects/Weapons/Guns/Projectiles/evil_projectile.rsi - state: evil_muzzle_flash - travelFlash: - sprite: _DV/Objects/Weapons/Guns/Projectiles/evil_projectile.rsi - state: evil_laser - impactFlash: - sprite: _DV/Objects/Weapons/Guns/Projectiles/evil_projectile.rsi - state: evil_impact + categories: [ HideSpawnMenu ] + components: + - type: HitscanBasicVisuals + muzzleFlash: + sprite: _DV/Objects/Weapons/Guns/Projectiles/evil_projectile.rsi + state: evil_muzzle_flash + travelFlash: + sprite: _DV/Objects/Weapons/Guns/Projectiles/evil_projectile.rsi + state: evil_laser + impactFlash: + sprite: _DV/Objects/Weapons/Guns/Projectiles/evil_projectile.rsi + state: evil_impact + - type: HitscanBasicDamage + damage: + types: + Heat: 100 + Radiation: 20 + Structural: 100 \ No newline at end of file diff --git a/Resources/Prototypes/_Impstation/Entities/Objects/Weapons/Guns/Projectiles/hitscan.yml b/Resources/Prototypes/_Impstation/Entities/Objects/Weapons/Guns/Projectiles/hitscan.yml index f4e8256319..b7ebfec1c4 100644 --- a/Resources/Prototypes/_Impstation/Entities/Objects/Weapons/Guns/Projectiles/hitscan.yml +++ b/Resources/Prototypes/_Impstation/Entities/Objects/Weapons/Guns/Projectiles/hitscan.yml @@ -1,29 +1,29 @@ -- type: hitscan +- type: entity + parent: BasicHitscan id: EmergencyRedLaser - damage: - types: - Heat: 16 # DeltaV was 12 - muzzleFlash: - sprite: Objects/Weapons/Guns/Projectiles/projectiles.rsi - state: muzzle_laser - travelFlash: - sprite: Objects/Weapons/Guns/Projectiles/projectiles.rsi - state: beam - impactFlash: - sprite: Objects/Weapons/Guns/Projectiles/projectiles.rsi - state: impact_laser + categories: [ HideSpawnMenu ] + components: + - type: HitscanBasicDamage + damage: + types: + Heat: 16 # DeltaV - was 12 -- type: hitscan +- type: entity + parent: BasicHitscan id: EchionLaser - damage: - types: - Heat: 18 - muzzleFlash: - sprite: _Impstation/Objects/Weapons/Guns/Projectiles/hitscan.rsi - state: muzzle_synd - travelFlash: - sprite: _Impstation/Objects/Weapons/Guns/Projectiles/hitscan.rsi - state: beam_synd - impactFlash: - sprite: _Impstation/Objects/Weapons/Guns/Projectiles/hitscan.rsi - state: impact_synd + categories: [ HideSpawnMenu ] + components: + - type: HitscanBasicVisuals + muzzleFlash: + sprite: _Impstation/Objects/Weapons/Guns/Projectiles/hitscan.rsi + state: muzzle_synd + travelFlash: + sprite: _Impstation/Objects/Weapons/Guns/Projectiles/hitscan.rsi + state: beam_synd + impactFlash: + sprite: _Impstation/Objects/Weapons/Guns/Projectiles/hitscan.rsi + state: impact_synd + - type: HitscanBasicDamage + damage: + types: + Heat: 18 \ No newline at end of file diff --git a/Resources/Prototypes/_Impstation/SoundCollections/emotes.yml b/Resources/Prototypes/_Impstation/SoundCollections/emotes.yml index 1364da7e41..6d18cab23c 100644 --- a/Resources/Prototypes/_Impstation/SoundCollections/emotes.yml +++ b/Resources/Prototypes/_Impstation/SoundCollections/emotes.yml @@ -13,6 +13,7 @@ files: - /Audio/_Impstation/Voice/Vox/voxchitter1.ogg - /Audio/_Impstation/Voice/Vox/voxchitter2.ogg + - /Audio/Voice/Vox/vox_chitter.ogg - type: soundCollection id: VoxCoo