Migrated hitscan protos to new entity. Fixed vox emotes.

This commit is contained in:
Vanessa 2025-12-24 16:28:50 -06:00
parent 760f44386e
commit f440bc0ebd
7 changed files with 139 additions and 112 deletions

View File

@ -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<EntityPrototype>(cartridge.Prototype);
prototype.TryGetComponent<ProjectileComponent>(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<ProjectileComponent>(ammoUid, out var projectileB))
{
damage = projectileB.Damage;
}
Del(ammoUid);
break;
case HitscanPrototype hitscan:
damage = hitscan.Damage!;
case HitscanAmmoComponent hitscan:
if (TryComp<HitscanBasicDamageComponent>(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<ClumsyComponent>(attacker, out var clumsy) &&
_random.Prob(1f/3f))
TryComp<ClumsyComponent>(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);

View File

@ -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<HitscanBatteryAmmoProviderComponent>(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
}
}

View File

@ -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

View File

@ -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:

View File

@ -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

View File

@ -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

View File

@ -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