diff --git a/Defs/Effects/Flecks.xml b/Defs/Effects/Flecks.xml
index 30edb3410f..b18269b21c 100644
--- a/Defs/Effects/Flecks.xml
+++ b/Defs/Effects/Flecks.xml
@@ -1,171 +1,175 @@
-
-
-
-
- Fleck_EmptyCasing
-
- Things/Flecks/Fleck_BulletCasing
- true
-
- MoteOverhead
- 3.0
- 0.2
- C_Impact_BulletCasing
- true
-
-
-
- Fleck_PistolAmmoCasings
-
- Things/Flecks/Fleck_PistolAmmoCasings
- true
-
- MoteOverhead
- 3.0
- 0.2
- C_Impact_BulletCasing
- true
-
-
-
- Fleck_RifleAmmoCasings_Steel
-
- Things/Flecks/Fleck_SteelRifleAmmoCasings
- true
-
- MoteOverhead
- 3.0
- 0.2
- C_Impact_BulletCasing
- true
-
-
-
- Fleck_RifleAmmoCasings_HighCal
-
- Things/Flecks/Fleck_RifleAmmoCasings_HighCal
- true
-
- MoteOverhead
- 3.0
- 0.2
- C_Impact_BulletCasing
- true
-
-
-
- Fleck_ShotgunShell
-
- Things/Flecks/Fleck_ShotgunShell
- true
-
- MoteOverhead
- 3.0
- 0.2
- C_Impact_ShotgunCasingImpact
- true
-
-
-
- Fleck_ShotgunShell_Green
-
- Things/Flecks/Fleck_ShotgunShell_Green
- true
-
- MoteOverhead
- 3.0
- 0.2
- C_Impact_ShotgunCasingImpact
- true
-
-
-
- Fleck_ShotgunShell_White
-
- Things/Flecks/Fleck_ShotgunShell_White
- true
-
- MoteOverhead
- 3.0
- 0.2
- C_Impact_ShotgunCasingImpact
- true
-
-
-
- Fleck_ShotgunShell_Black
-
- Things/Flecks/Fleck_ShotgunShell_Black
- true
-
- MoteOverhead
- 3.0
- 0.2
- C_Impact_ShotgunCasingImpact
- true
-
-
-
- Fleck_GrenadeLauncherAmmoCasings
-
- Things/Flecks/Fleck_GrenadeLauncherAmmoCasings
- true
-
- MoteOverhead
- 3.0
- 0.2
- C_Impact_CannonShellCasing
- true
-
-
-
- Fleck_BigShell
-
- Things/Flecks/Fleck_BigShell
- true
-
- MoteOverhead
- 3.0
- 0.2
- C_Impact_CannonShellCasing
- true
-
-
-
- Fleck_GrenadePin
-
- Things/Flecks/Fleck_GrenadePin
- true
-
- MoteOverhead
- 3.0
- 0.2
- C_Impact_BulletCasing
- true
-
-
-
- Fleck_DisposableLauncherCasing
-
- Things/Filth/Filth_DisposableLauncherCasings/Filth_DisposableLauncherCasings
- true
- (1.5,1.5)
-
- MoteOverhead
- 3.0
- 0.2
- C_Impact_BulletCasing
- true
-
-
-
+
+
+ Fleck_EmptyCasing
+
+ Things/Flecks/Fleck_BulletCasing
+ true
+
+ MoteOverhead
+ 3.0
+ 0.2
+ C_Impact_BulletCasing
+ true
+
+
+
+ Fleck_PistolAmmoCasings
+
+ Things/Flecks/Fleck_PistolAmmoCasings
+ true
+
+ MoteOverhead
+ 3.0
+ 0.2
+ C_Impact_BulletCasing
+ true
+
+
+
+ Fleck_RifleAmmoCasings_Steel
+
+ Things/Flecks/Fleck_SteelRifleAmmoCasings
+ true
+
+ MoteOverhead
+ 3.0
+ 0.2
+ C_Impact_BulletCasing
+ true
+
+
+
+ Fleck_RifleAmmoCasings_HighCal
+
+ Things/Flecks/Fleck_RifleAmmoCasings_HighCal
+ true
+
+ MoteOverhead
+ 3.0
+ 0.2
+ C_Impact_BulletCasing
+ true
+
+
+
+ Fleck_ShotgunShell
+
+ Things/Flecks/Fleck_ShotgunShell
+ true
+
+ MoteOverhead
+ 3.0
+ 0.2
+ C_Impact_ShotgunCasingImpact
+ true
+
+
+
+ Fleck_ShotgunShell_Green
+
+ Things/Flecks/Fleck_ShotgunShell_Green
+ true
+
+ MoteOverhead
+ 3.0
+ 0.2
+ C_Impact_ShotgunCasingImpact
+ true
+
+
+
+ Fleck_ShotgunShell_White
+
+ Things/Flecks/Fleck_ShotgunShell_White
+ true
+
+ MoteOverhead
+ 3.0
+ 0.2
+ C_Impact_ShotgunCasingImpact
+ true
+
+
+
+ Fleck_ShotgunShell_Black
+
+ Things/Flecks/Fleck_ShotgunShell_Black
+ true
+
+ MoteOverhead
+ 3.0
+ 0.2
+ C_Impact_ShotgunCasingImpact
+ true
+
+
+
+ Fleck_GrenadeLauncherAmmoCasings
+
+ Things/Flecks/Fleck_GrenadeLauncherAmmoCasings
+ true
+
+ MoteOverhead
+ 3.0
+ 0.2
+ C_Impact_CannonShellCasing
+ true
+
+
+
+ Fleck_BigShell
+
+ Things/Flecks/Fleck_BigShell
+ true
+
+ MoteOverhead
+ 3.0
+ 0.2
+ C_Impact_CannonShellCasing
+ true
+
+
+
+ Fleck_GrenadePin
+
+ Things/Flecks/Fleck_GrenadePin
+ true
+
+ MoteOverhead
+ 3.0
+ 0.2
+ C_Impact_BulletCasing
+ true
+
+
+
+ Fleck_DisposableLauncherCasing
+
+ Things/Filth/Filth_DisposableLauncherCasings/Filth_DisposableLauncherCasings
+ true
+ (1.5,1.5)
+
+ MoteOverhead
+ 3.0
+ 0.2
+ C_Impact_BulletCasing
+ true
+
+
+
-
+
-
- Gun_BlasterTurret
- blaster turret gun
-
- Things/Building/Turrets/BlasterTurret_Top
- Graphic_Single
-
- Charge blaster attached to a turret mount.
- Interact_ChargeRifle
-
- 1
- 0.06
- 0.86
- 0.36
- 10
-
-
-
- 0.90
- CombatExtended.Verb_ShootCE
- true
- Bullet_8x35mmCharged
- 1.3
- 55
- 5
- 10
- Shot_ChargeBlaster
- GunTail_Heavy
- 9
- Mounted
-
-
-
-
- 100
- 7.8
- AmmoSet_8x35mmCharged
-
-
-
+
+ Gun_BlasterTurret
+ blaster turret gun
+
+ Things/Building/Turrets/BlasterTurret_Top
+ Graphic_Single
+
+ Charge blaster attached to a turret mount.
+ Interact_ChargeRifle
+
+ 1
+ 0.06
+ 0.86
+ 0.36
+ 10
+
+
+
+ 0.90
+ CombatExtended.Verb_ShootCE
+ true
+ Bullet_8x35mmCharged
+ 1.3
+ 55
+ 5
+ 10
+ Shot_ChargeBlaster
+ GunTail_Heavy
+ 9
+ Mounted
+
+
+
+
+ 100
+ 7.8
+ AmmoSet_8x35mmCharged
+
+
+
-
+
-
- Gun_HeavyTurret
- heavy turret gun
-
- Things/Building/Turrets/HeavyTurret_Top
- Graphic_Single
-
- High caliber gun on a turret mount.
-
- 1
- 0.01
- 1.31
- 0.37
- 30
-
-
-
- 1.54
- CombatExtended.Verb_ShootCE
- true
- Bullet_145x114mm_FMJ
- 1.6
- 55
- 6
- 5
- HeavyMG
- GunTail_Heavy
- 16
- Mounted
-
-
-
-
- 40
- 7.8
- AmmoSet_145x114mm
-
-
-
+
+ Gun_HeavyTurret
+ heavy turret gun
+
+ Things/Building/Turrets/HeavyTurret_Top
+ Graphic_Single
+
+ High caliber gun on a turret mount.
+
+ 1
+ 0.01
+ 1.31
+ 0.37
+ 30
+
+
+
+ 1.54
+ CombatExtended.Verb_ShootCE
+ true
+ Bullet_145x114mm_FMJ
+ 1.6
+ 55
+ 6
+ 5
+ HeavyMG
+ GunTail_Heavy
+ 16
+ Mounted
+
+
+
+
+ 40
+ 7.8
+ AmmoSet_145x114mm
+
+
+
-
+
-
- Gun_MediumTurret
- medium turret gun
-
- Things/Building/Turrets/MediumTurret_Top
- Graphic_Single
-
- Full powered cartridge gun on a turret mount.
-
- 1
- 0.05
- 0.94
- 0.36
- 15
-
-
-
- 0.77
- CombatExtended.Verb_ShootCE
- true
- Bullet_762x51mmNATO_FMJ
- 1.3
- 55
- 6
- 10
- MediumMG
- GunTail_Medium
- 11
- Mounted
-
-
-
-
- 80
- 7.8
- AmmoSet_762x51mmNATO
-
-
-
+
+ Gun_MediumTurret
+ medium turret gun
+
+ Things/Building/Turrets/MediumTurret_Top
+ Graphic_Single
+
+ Full powered cartridge gun on a turret mount.
+
+ 1
+ 0.05
+ 0.94
+ 0.36
+ 15
+
+
+
+ 0.77
+ CombatExtended.Verb_ShootCE
+ true
+ Bullet_762x51mmNATO_FMJ
+ 1.3
+ 55
+ 6
+ 10
+ MediumMG
+ GunTail_Medium
+ 11
+ Mounted
+
+
+
+
+ 80
+ 7.8
+ AmmoSet_762x51mmNATO
+
+
+
-
+
-
- Gun_AutocannonTurret
- autocannon turret
-
- Things/Building/Security/TurretAutocannon_Top
- Graphic_Single
-
- An automated heavy machine gun designed to be mounted on a turret, effective against infantry and light vehicles.
-
- 1
- 0.01
- 1.61
- 0.37
- 50
-
-
-
- 1.50
- CombatExtended.Verb_ShootCE
- true
- Bullet_20x102mmNATO_AP
- 2.3
- 78
- 7
- 10
- HeavyMG
- GunTail_Heavy
- 16
- Mounted
-
-
-
-
- 100
- 7.8
- AmmoSet_20x102mmNATO
-
-
- AimedShot
- true
- true
-
-
-
+
+ Gun_AutocannonTurret
+ autocannon turret
+
+ Things/Building/Security/TurretAutocannon_Top
+ Graphic_Single
+
+ An automated heavy machine gun designed to be mounted on a turret, effective against infantry and light vehicles.
+
+ 1
+ 0.01
+ 1.61
+ 0.37
+ 50
+
+
+
+ 1.50
+ CombatExtended.Verb_ShootCE
+ true
+ Bullet_20x102mmNATO_AP
+ 2.3
+ 78
+ 7
+ 10
+ HeavyMG
+ GunTail_Heavy
+ 16
+ Mounted
+
+
+
+
+ 100
+ 7.8
+ AmmoSet_20x102mmNATO
+
+
+ AimedShot
+ true
+ true
+
+
+
-
+
-
- Gun_TurretSniper
- flak turret
- A self-loading heavy autocannon designed to attach to a turret.
- Artillery_ShellLoaded
-
- Things/Building/Security/TurretSniper_Top
- Graphic_Single
- (2,2)
-
-
- 2.36
- 0.01
- 1.89
- 0.5
- 50
-
-
-
- 4.15
- CombatExtended.Verb_ShootCE
- true
- Bullet_40x311mmR_AP
- 4.6
- 5
- 86
- Shot_TurretSniper
- GunTail_Heavy
- 20
- Mounted
-
-
-
-
- 20
- 6.8
- AmmoSet_40x311mmR
-
-
- AimedShot
- true
-
-
-
+
+ Gun_TurretSniper
+ flak turret
+ A self-loading heavy autocannon designed to attach to a turret.
+ Artillery_ShellLoaded
+
+ Things/Building/Security/TurretSniper_Top
+ Graphic_Single
+ (2,2)
+
+
+ 2.36
+ 0.01
+ 1.89
+ 0.5
+ 50
+
+
+
+ 4.15
+ CombatExtended.Verb_ShootCE
+ true
+ Bullet_40x311mmR_AP
+ 4.6
+ 5
+ 86
+ Shot_TurretSniper
+ GunTail_Heavy
+ 20
+ Mounted
+
+
+
+
+ 20
+ 6.8
+ AmmoSet_40x311mmR
+
+
+ AimedShot
+ true
+
+
+
-
+
-
- Gun_KPV
- KPV machine gun
-
- Things/Building/Turrets/KPV_gun
- Graphic_Single
-
- Heavy machine gun for use against light vehicles.
-
- 1
- 0.01
- 1.42
- 0.37
- 35
-
-
-
- 1.43
- CombatExtended.Verb_ShootCE
- true
- Bullet_145x114mm_FMJ
- 1.3
- 75
- 6
- 10
- HeavyMG
- GunTail_Heavy
- 16
- Mounted
-
-
-
-
- 50
- 7.8
- AmmoSet_145x114mm
-
-
- 5
- SuppressFire
-
-
-
+
+ Gun_KPV
+ KPV machine gun
+
+ Things/Building/Turrets/KPV_gun
+ Graphic_Single
+
+ Heavy machine gun for use against light vehicles.
+
+ 1
+ 0.01
+ 1.42
+ 0.37
+ 35
+
+
+
+ 1.43
+ CombatExtended.Verb_ShootCE
+ true
+ Bullet_145x114mm_FMJ
+ 1.3
+ 75
+ 6
+ 10
+ HeavyMG
+ GunTail_Heavy
+ 16
+ Mounted
+
+
+
+
+ 50
+ 7.8
+ AmmoSet_145x114mm
+
+
+ 5
+ SuppressFire
+
+
+
+
+
+ -110
+
+
+
-
+
-
- Gun_M240B
- M240B machine gun
-
- Things/Building/Turrets/M240_gun
- Graphic_Single
-
- M240B machine gun mounted on a tripod.
-
- 1
- 0.04
- 0.96
- 0.36
- 12
-
-
-
- 0.86
- CombatExtended.Verb_ShootCE
- true
- Bullet_762x51mmNATO_FMJ
- 1.3
- 62
- 6
- 10
- MediumMG
- GunTail_Medium
- 10
- Mounted
-
-
-
-
- 200
- 7.8
- AmmoSet_762x51mmNATO
-
-
- 5
- SuppressFire
-
-
-
+
+ Gun_M240B
+ M240B machine gun
+
+ Things/Building/Turrets/M240_gun
+ Graphic_Single
+
+ M240B machine gun mounted on a tripod.
+
+ 1
+ 0.04
+ 0.96
+ 0.36
+ 12
+
+
+
+ 0.86
+ CombatExtended.Verb_ShootCE
+ true
+ Bullet_762x51mmNATO_FMJ
+ 1.3
+ 62
+ 6
+ 10
+ MediumMG
+ GunTail_Medium
+ 10
+ Mounted
+
+
+
+
+ 200
+ 7.8
+ AmmoSet_762x51mmNATO
+
+
+ 5
+ SuppressFire
+
+
+
-
+
-
- Gun_FlakTurret
- Flak gun
- 90mm Flak cannon on a stationary emplacement.
-
- Things/Building/Turrets/FlakTurret_Top
- Graphic_Single
-
- Artillery_ShellLoaded
-
- 2.3
- 0.01
- 1.41
- 2.5
- 500
-
-
-
- 4.74
- CombatExtended.Verb_ShootCE
- true
- Bullet_90mmCannonShell_HEAT
- 3.5
- 16
- 92
-
- 120mm
- GunTail_Heavy
- 20
-
- true
-
- Mounted
-
-
-
-
- 1
- 9.8
- AmmoSet_90mmCannonShell
-
-
- AimedShot
-
-
-
+
+ Gun_FlakTurret
+ Flak gun
+ 90mm Flak cannon on a stationary emplacement.
+
+ Things/Building/Turrets/FlakTurret_Top
+ Graphic_Single
+
+ Artillery_ShellLoaded
+
+ 2.3
+ 0.01
+ 1.41
+ 2.5
+ 500
+
+
+
+ 4.74
+ CombatExtended.Verb_ShootCE
+ true
+ Bullet_90mmCannonShell_HEAT
+ 3.5
+ 16
+ 92
+
+ 120mm
+ GunTail_Heavy
+ 20
+
+ true
+
+ Mounted
+
+
+
+
+ 1
+ 9.8
+ AmmoSet_90mmCannonShell
+
+
+ AimedShot
+
+
+
+
+ 0,-1
+ 90
+
+
+
-
+
-
- Gun_AGSThirty
- AGS-30 grenade launcher
-
- Things/Building/Turrets/AGS30_gun
- Graphic_Single
-
- AGS-30 attached to a tripod.
-
- 2.16
- 0.15
- 0.92
- 0.40
- 13
-
-
-
- 2.38
- CombatExtended.Verb_ShootCE
- true
- Bullet_30x29mmGrenade_HE
- 1.435
- 8
- 62
- 9
- 6
- AGS
- GunTail_Heavy
- 14
-
- true
-
- Mounted
- true
-
-
-
-
- 30
- 7.8
- AmmoSet_30x29mmGrenade
-
-
- FALSE
- SuppressFire
- 3
-
-
-
+
+ Gun_AGSThirty
+ AGS-30 grenade launcher
+
+ Things/Building/Turrets/AGS30_gun
+ Graphic_Single
+
+ AGS-30 attached to a tripod.
+
+ 2.16
+ 0.15
+ 0.92
+ 0.40
+ 13
+
+
+
+ 2.38
+ CombatExtended.Verb_ShootCE
+ true
+ Bullet_30x29mmGrenade_HE
+ 1.435
+ 8
+ 62
+ 9
+ 6
+ AGS
+ GunTail_Heavy
+ 14
+
+ true
+
+ Mounted
+ true
+
+
+
+
+ 30
+ 7.8
+ AmmoSet_30x29mmGrenade
+
+
+ FALSE
+ SuppressFire
+ 3
+
+
+
\ No newline at end of file
diff --git a/Patches/Core/ThingDefs_Misc/Weapons_Guns.xml b/Patches/Core/ThingDefs_Misc/Weapons_Guns.xml
index 13354bf424..0545ff209c 100644
--- a/Patches/Core/ThingDefs_Misc/Weapons_Guns.xml
+++ b/Patches/Core/ThingDefs_Misc/Weapons_Guns.xml
@@ -1,1496 +1,1506 @@
-
- Defs/ThingDef[defName="Gun_ChargeLance"]
-
- 0
-
-
-
-
- Defs/ThingDef[@Name="BaseWeaponTurret"]
-
- 0
-
-
-
-
-
-
- Defs/ThingDef[defName="Gun_Revolver" or defName="Gun_Autopistol" or defName="Gun_MachinePistol"]/tools
-
-
-
- grip
-
- Blunt
-
- 2
- 1.54
- 1.5
- 0.555
- Grip
-
-
- muzzle
-
- Poke
-
- 2
- 1.54
- 0.555
- Muzzle
-
-
-
-
-
-
-
- Defs/ThingDef[
- defName="Gun_PumpShotgun" or
- defName="Gun_ChainShotgun" or
- defName="Gun_BoltActionRifle" or
- defName="Gun_AssaultRifle" or
- defName="Gun_SniperRifle" or
- defName="Gun_HeavySMG" or
- defName="Gun_IncendiaryLauncher" or
- defName="Gun_LMG" or
- defName="Gun_ChargeRifle"
- ]/tools
-
-
-
-
- stock
-
- Blunt
-
- 8
- 1.55
- 1.5
- 2.755
- Stock
-
-
- barrel
-
- Blunt
-
- 5
- 2.02
- 1.630
- Barrel
-
-
- muzzle
-
- Poke
-
- 8
- 1.55
- 2.755
- Muzzle
-
-
-
-
-
-
- Defs/ThingDef[defName="Gun_TripleRocket" or defName="Gun_DoomsdayRocket"]/tools
-
-
-
- barrel
-
- Blunt
-
- 10
- 2.44
- 3.5
- Barrel
-
-
-
-
-
-
-
-
- Gun_Revolver
-
- 1.39
- 0.49
- 0.7
- 0.18
- 1.27
- 2.41
-
- 7000
-
-
- 30
- 2
-
-
- 2.96
- CombatExtended.Verb_ShootCE
- true
- Bullet_44Magnum_FMJ
- 0.6
- 12
- Shot_Revolver
- GunTail_Light
- 9
-
-
- 6
- 4.6
- AmmoSet_44Magnum
-
-
- FALSE
- Snapshot
-
-
- CE_Sidearm
- CE_AI_BROOM
- CE_OneHandedWeapon
-
- Gunsmithing
-
-
-
- Defs/ThingDef[defName="Gun_Revolver"]
-
-
- 1.00,1.00
- 0.0,0.0
-
-
-
-
-
-
-
- Gun_Autopistol
-
- 1.11
- 0.38
- 0.7
- 0.17
- 1.07
- 2.10
- 7000
-
-
- 25
- 3
-
-
- 2.72
- CombatExtended.Verb_ShootCE
- true
- Bullet_45ACP_FMJ
- 0.6
- 12
- Shot_Autopistol
- GunTail_Light
- 9
-
-
- 7
- 4
- AmmoSet_45ACP
-
-
- FALSE
- Snapshot
-
-
- CE_Sidearm
- CE_AI_BROOM
- CE_OneHandedWeapon
-
- BlowbackOperation
-
-
-
- Defs/ThingDef[defName="Gun_Autopistol"]
-
-
- 0.93,0.93
- 0.0,0.0
-
-
-
-
-
-
-
- Gun_PumpShotgun
-
- 3.00
- 1.0
- 0.14
- 1.20
- 9.0
- 1
- 9500
-
-
- 45
- 10
- 1
-
-
- 2.75
- CombatExtended.Verb_ShootCE
- true
- Bullet_12Gauge_Buck
- 0.6
- 16
- Shot_Shotgun
- GunTail_Heavy
- 9
-
-
- 5
- true
- 0.85
- AmmoSet_12Gauge
-
-
- Snapshot
-
-
- SimpleGun
- CE_AI_BROOM
-
- Gunsmithing
-
-
-
- Defs/ThingDef[defName="Gun_PumpShotgun"]
-
-
- 1.03,1.25
- 0.05,0.0
-
-
-
-
-
-
-
- Defs/ThingDef[defName="Gun_ChainShotgun"]/description
-
- A magazine-fed semi-automatic shotgun. It has the same range as a typical shotgun, but is extraordinarily dangerous due to being semi-automatic.
-
-
-
-
- Gun_ChainShotgun
-
- 3.50
- 0.39
- 0.15
- 1.26
- 6.7
- 1
- 22500
-
-
- 40
- 3
- 10
-
-
- 2.54
- CombatExtended.Verb_ShootCE
- true
- Bullet_12Gauge_Buck
- 0.6
- 16
- Shot_Shotgun_NoRack
- GunTail_Heavy
- 9
- 15
-
-
- 8
- 4
- AmmoSet_12Gauge
-
-
- Snapshot
-
-
- CE_AI_BROOM
-
- GasOperation
-
-
-
- Defs/ThingDef[defName="Gun_ChainShotgun"]
-
-
- 1.04,1.23
- 0.05,-0.05
-
-
-
-
-
-
-
- Gun_BoltActionRifle
-
- 4.19
- 1.17
- 1
- 0.02
- 1.68
- 12.60
- 12000
-
-
- 55
- 15
- 1
-
-
- 2.04
- CombatExtended.Verb_ShootCE
- true
- Bullet_303British_FMJ
- 1.1
- 55
- Shot_BoltActionRifle
- GunTail_Heavy
- 9
-
-
- 10
- 4.3
- AmmoSet_303British
-
-
- AimedShot
-
-
- SimpleGun
- CE_AI_SR
-
- Gunsmithing
- false
-
-
-
- Defs/ThingDef[defName="Gun_BoltActionRifle"]
-
-
- 1.3,1.3
- 0.12,0.04
-
-
-
-
-
-
-
- Gun_AssaultRifle
-
- 3.26
- 0.36
- 1
- 0.07
- 1.33
- 10.03
- 30000
-
-
- 50
- 5
- 10
-
-
- 1.50
- CombatExtended.Verb_ShootCE
- true
- Bullet_556x45mmNATO_FMJ
- 1.1
- 55
- 6
- 4
- Shot_AssaultRifle
- GunTail_Medium
- 9
-
-
- 30
- 4
- AmmoSet_556x45mmNATO
-
-
- 3
- TRUE
- AimedShot
-
-
- CE_AI_AR
-
- PrecisionRifling
-
-
-
- Defs/ThingDef[defName="Gun_AssaultRifle"]
-
-
- 1.16,1.16
- 0.08,0.0
-
-
-
-
-
-
-
- Gun_SniperRifle
-
- 7.30
- 1.36
- 2.6
- 0.05
- 1.35
- 11.92
- 30000
-
-
- 60
- 5
- 15
-
-
- 1.50
- CombatExtended.Verb_ShootCE
- true
- Bullet_762x51mmNATO_FMJ
- 1.8
- 75
- Shot_SniperRifle
- GunTail_Heavy
- 9
-
-
- 5
- 4
- AmmoSet_762x51mmNATO
-
-
- AimedShot
-
-
- CE_AI_SR
- Bipod_DMR
-
- PrecisionRifling
- false
-
-
-
- Defs/ThingDef[defName="Gun_SniperRifle"]
-
-
- 1.25,1.45
- 0.15,-0.05
-
-
-
-
-
-
-
- Gun_MachinePistol
-
- 2.84
- 0.36
- 0.7
- 0.16
- 1.93
- 2.95
- 24500
-
-
- 35
- 3
-
-
- 1.71
- CombatExtended.Verb_ShootCE
- true
- Bullet_45ACP_FMJ
- 0.6
- 12
- 6
- 3
- Shot_MachinePistol
- GunTail_Light
- 9
-
-
- 30
- 4
- AmmoSet_45ACP
-
-
- 3
- FALSE
- Snapshot
-
-
- CE_SMG
- CE_AI_BROOM
- CE_OneHandedWeapon
-
- BlowbackOperation
-
-
-
- Defs/ThingDef[defName="Gun_MachinePistol"]
-
-
- 0.84,0.84
- -0.10,-0.07
-
-
-
-
-
-
-
- Gun_HeavySMG
-
- 2.50
- 0.37
- 1.00
- 0.14
- 0.94
- 4.50
- 24500
-
-
- 30
- 10
- 5
-
-
- 1.79
- CombatExtended.Verb_ShootCE
- true
- Bullet_45ACP_FMJ
- 0.6
- 25
- 6
- 6
- Shot_HeavySMG
- GunTail_Heavy
- 9
-
-
- 25
- 4
- AmmoSet_45ACP
-
-
- 3
- FALSE
- Snapshot
-
-
- CE_SMG
- CE_AI_BROOM
-
- BlowbackOperation
-
-
-
- Defs/ThingDef[defName="Gun_HeavySMG"]
-
-
- 0.85,0.85
- 0.00,-0.03
-
-
-
-
-
-
-
- Gun_IncendiaryLauncher
-
- 8
- 0.43
- 1
- 0.15
- 1.8
- 10
- 39500
-
-
- 65
- 30
- 7
- 10
-
-
- 1.0
- CombatExtended.Verb_ShootCE
- true
- Bullet_30x64mmFuel_Incendiary
- 1.1
- 40
- 0
- Shot_IncendiaryLauncher
- GunTail_Medium
- 14
-
- true
-
-
-
- 5
- 4
- AmmoSet_30x64mmFuel
-
-
- FALSE
- SuppressFire
-
-
- CE_AI_AOE
- EliteGun
-
- CE_AdvancedLaunchers
- false
-
-
-
- Defs/ThingDef[defName="Gun_IncendiaryLauncher"]
-
-
- 1.16,1.16
- 0.1,-0.05
-
-
-
-
-
-
-
- Gun_LMG
-
- 8.7
- 0.56
- 1
- 0.05
- 1.37
- 12.9
- 31500
-
-
- 80
- 10
- 5
-
-
- 1.38
- CombatExtended.Verb_ShootCE
- true
- Bullet_303British_FMJ
- 1.3
- 62
- 7
- 10
- Shot_CE_BattleRifle
- GunTail_Medium
- 9
-
- true
-
- Mounted
-
-
- 50
- 4.9
- AmmoSet_303British
-
-
- 5
- FALSE
- SuppressFire
-
-
- CE_MachineGun
- CE_AI_LMG
- Bipod_LMG
-
- GasOperation
- false
-
-
-
- Defs/ThingDef[defName="Gun_LMG"]
-
-
- 1.35,1.18
- 0.13,-0.03
-
-
-
-
-
-
-
- Gun_ChargeRifle
-
- 3.0
- 0.36
- 1.10
- 0.08
- 1.20
- 7.00
- 49000
-
-
- 45
- 25
- 4
- 1
- 10
-
-
- 1.46
- CombatExtended.Verb_ShootCE
- true
- Bullet_6x24mmCharged
- 1.0
- 55
- 5
- 6
- Shot_ChargeRifle
- GunTail_Medium
- 9
-
-
- 30
- 4
- AmmoSet_6x24mmCharged
-
-
- 3
- TRUE
- AimedShot
-
-
- CE_AI_AR
- AdvancedGun
-
- ChargedShot
-
-
-
- Defs/ThingDef[defName="Gun_ChargeRifle"]
-
-
- 1.03,1.03
- 0.05,0.0
-
-
-
-
-
-
-
- Gun_MiniTurret
-
- 0.36
- 1
- 0.07
- 0.69
-
-
- 0.91
- CombatExtended.Verb_ShootCE
- true
- Bullet_556x45mmNATO_FMJ
- 1.3
- 48
- 5
- 10
- GunShotA
- GunTail_Light
- 9
- Mounted
-
-
- 100
- 7.8
- AmmoSet_556x45mmNATO
-
-
- AimedShot
- true
- true
-
-
-
-
-
-
- Defs/ThingDef[defName ="Gun_Minigun"]/weaponTags/li[.="GunHeavy"]
-
-
-
- Gun_Minigun
-
- 20.00
- 0.35
- 1
- 0.06
- 3.22
- 10
- 52000
-
-
- 110
- 11
-
-
- 0.97
- CombatExtended.Verb_ShootCE
- true
- Bullet_762x51mmNATO_FMJ
- 2.1
- 62
- 50
- 2
- Shot_Minigun
- GunTail_Medium
- 9
-
-
- 250
- 9.2
- AmmoSet_762x51mmNATO
-
-
- 25
- Snapshot
-
-
- CE_AI_Suppressive
-
-
-
-
- Defs/ThingDef[defName="Gun_Minigun"]/tools
-
-
-
- barrels
-
- Blunt
-
- 10
- 2.44
- 3.5
- Barrels
-
-
-
-
-
-
- Defs/ThingDef[defName="Gun_Minigun"]/equippedStatOffsets
-
-
-
- Defs/ThingDef[defName="Gun_Minigun"]
-
-
- 1.00,1.00
- 0.1,-0.15
-
-
-
-
-
-
-
-
-
- Defs/ThingDef[defName="Gun_DoomsdayRocket" or defName="Gun_TripleRocket"]/weaponTags/li[.="Gun"]
-
-
-
- Defs/ThingDef[defName="Gun_DoomsdayRocket" or defName="Gun_TripleRocket"]
- ParentName
- BaseMakeableGun
-
-
-
- Defs/ThingDef[defName="Gun_DoomsdayRocket" or defName="Gun_TripleRocket"]/statBases/MarketValue
-
-
-
-
-
- Defs/ThingDef[defName="Bullet_DoomsdayRocket"]/thingClass
-
- CombatExtended.ProjectileCE_Explosive
-
-
-
-
- Defs/ThingDef[defName="Bullet_DoomsdayRocket"]/projectile
-
-
- Bomb
- 250
- 7.8
- 3.0
- 2.0
- 100
-
-
-
-
-
- Defs/ThingDef[defName="Bullet_DoomsdayRocket"]/comps
-
- Defs/ThingDef[defName="Bullet_DoomsdayRocket"]
-
-
-
-
-
-
-
- Defs/ThingDef[defName="Bullet_DoomsdayRocket"]/comps
-
-
- 1
-
- 400
-
-
-
-
-
-
-
-
- Gun_DoomsdayRocket
-
- 20.00
- 1.5
- 2.24
- 0.2
- 3.24
- 13.0
- 49500
-
-
- 125
- 8
- 5
-
-
- CombatExtended.Verb_ShootCEOneUse
- true
- Bullet_DoomsdayRocket
- 2.1
- 48
- 1
- InfernoCannon_Fire
- GunTail_Heavy
- true
-
- true
-
- 14
-
-
- AimedShot
-
-
- CE_AI_AOE
-
- CE_AdvancedLaunchers
- false
-
-
-
- Defs/ThingDef[defName="Gun_DoomsdayRocket"]
-
-
- 1.45,1.45
- -0.15,0
-
-
-
-
-
-
-
-
-
- Defs/ThingDef[defName="Bullet_Rocket"]/thingClass
-
- CombatExtended.ProjectileCE_Explosive
-
-
-
-
- Defs/ThingDef[defName="Bullet_Rocket"]/projectile
-
-
- Bomb
- 180
- 3.0
- 3.0
- 2.0
- 100
-
-
-
-
-
- Defs/ThingDef[defName="Bullet_Rocket"]/comps
-
- Defs/ThingDef[defName="Bullet_Rocket"]
-
-
-
-
-
-
-
- Defs/ThingDef[defName="Bullet_Rocket"]/comps
-
-
- 1
-
- 150
-
-
-
-
-
-
-
-
- Gun_TripleRocket
-
- 12.00
- 1.5
- 1
- 0.2
- 2.20
- 13.00
- 43000
-
-
- 90
- 7
- 3
-
-
- CombatExtended.Verb_ShootCEOneUse
- true
- Bullet_Rocket
- 1.9
- 40
- 20
- 3
- InfernoCannon_Fire
- GunTail_Heavy
- true
- false
-
- true
-
- 14
-
-
- AimedShot
- true
-
-
- CE_AI_AOE
-
- CE_AdvancedLaunchers
- false
-
-
-
- Defs/ThingDef[defName="Gun_TripleRocket"]
-
-
- 1.16,1.16
- -0.25,0
-
-
-
-
-
-
-
- Gun_ChargeBlasterHeavy
-
- 35.00
- 0.36
- 1
- 0.01
- 1.33
- 13.00
-
-
- 1.08
- CombatExtended.Verb_ShootCE
- true
- Bullet_12x64mmCharged
- 2.3
- 75
- 6
- 20
- Shot_ChargeBlaster
- GunTail_Heavy
- 9
-
-
- 100
- 9.2
- AmmoSet_12x64mmCharged
-
-
- 10
- Snapshot
-
-
- CE_AI_Suppressive
- NoSwitch
-
-
-
-
- Defs/ThingDef[@Name="Gun_ChargeBlasterHeavyBase"]/tools
-
-
-
- barrel
-
- Blunt
-
- 10
- 2.44
- 3.5
- Barrel
-
-
-
-
-
-
-
-
- Gun_InfernoCannon
-
- 50.00
- 2.54
- 1
- 0.01
- 0.14
- 20.00
-
-
- 2.01
- CombatExtended.Verb_ShootCE
- true
- Bullet_80x256mmFuel_Incendiary
- 3.5
- 86
- 1
- InfernoCannon_Fire
- GunTail_Light
- 14
- 5
- 5
- true
-
-
- 1
- 2
- 9.8
- AmmoSet_80x256mmFuel
-
-
- AimedShot
-
-
- CE_AI_Launcher
- NoSwitch
-
-
-
-
- Defs/ThingDef[@Name="Gun_InfernoCannonBase"]/tools
-
-
-
- barrel
-
- Blunt
-
- 10
- 2.44
- 3.5
- Barrel
-
-
-
-
-
-
-
-
- Gun_ThumpCannon
-
- 75.00
- 2.2
- 1
- 0.01
- 0.21
- 20.00
-
-
- 0.1
- CombatExtended.Verb_ShootCE
- true
- Bullet_164x284mmDemo
- 3.3
- 42
- 1
- ThumpCannon_Fire
- GunTail_Heavy
- 14
- 3
- 4
- true
-
-
- 1
- 2
- 9.8
- AmmoSet_164x284mmDemo
-
-
- AimedShot
-
-
- CE_AI_Launcher
- NoSwitch
-
-
-
-
- Defs/ThingDef[defName="Gun_ThumpCannon"]/tools
-
-
-
- barrel
-
- Blunt
-
- 10
- 2.44
- 3.5
- Barrel
-
-
-
-
-
-
-
-
- Gun_ChargeLance
-
- 0.35
- 1
- 0.01
- 1
- 13.00
-
-
- 0.75
- CombatExtended.Verb_ShootCE
- true
- Bullet_5x35mmCharged
- 1.3
- 62
- 1
- ChargeLance_Fire
- GunTail_Heavy
- 9
-
-
- 5
- 3
- AmmoSet_5x35mmCharged
-
-
- AimedShot
-
-
- CE_AI_Rifle
- NoSwitch
-
-
-
-
- Defs/ThingDef[defName="Gun_ChargeLance"]/tools
-
-
-
- barrel
-
- Blunt
-
- 10
- 2.44
- 3.5
- Barrel
-
-
-
-
-
-
- Defs/ThingDef[defName="Gun_ChargeLance"]
-
-
- True
-
-
-
-
-
-
- Defs/ThingDef[defName="Gun_ChargeLance"]
- ParentName
- BaseGun
-
-
-
- Defs/ThingDef[defName="Gun_ChargeLance"]/costList
-
-
-
- Defs/ThingDef[defName="Gun_ChargeLance"]/recipeMaker
-
-
-
- Defs/ThingDef[defName="Gun_ChargeLance"]/statBases
-
- 1400
-
-
-
-
- Defs/ThingDef[defName="Gun_ChargeLance"]
-
- None
- True
-
-
-
-
- Defs/ThingDef[defName="Gun_ChargeLance"]/weaponTags/li[contains(.,"SpacerGun")]
-
-
-
-
-
- Gun_Needle
-
- 0.38
- 1
- 0.01
- 0.81
- 15.00
-
-
- 1.80
- CombatExtended.Verb_ShootCE
- true
- Bullet_5x100mmCaseless_Sabot
- 1.3
- 75
- 1
- Shot_NeedleGun
- GunTail_Heavy
- 9
-
-
- 10
- 4
- AmmoSet_5x100mmCaseless
-
-
- AimedShot
-
-
- CE_AI_Rifle
- NoSwitch
-
-
-
-
- Defs/ThingDef[defName="Gun_Needle"]/tools
-
-
-
- barrel
-
- Blunt
-
- 10
- 2.44
- 3.5
- Barrel
-
-
-
-
-
-
-
- Defs/ThingDef[defName="OrbitalTargeterBombardment" or defName="OrbitalTargeterPowerBeam"]/verbs/li/range
-
- 60
-
-
-
-
-
- Defs/ThingDef[defName="Gun_SmokeLauncher"]
-
-
-
- Defs/ThingDef[defName="Gun_EmpLauncher"]
-
+
+ Defs/ThingDef[defName="Gun_ChargeLance"]
+
+ 0
+
+
+
+
+ Defs/ThingDef[@Name="BaseWeaponTurret"]
+
+ 0
+
+
+
+
+
+
+ Defs/ThingDef[defName="Gun_Revolver" or defName="Gun_Autopistol" or defName="Gun_MachinePistol"]/tools
+
+
+
+ grip
+
+ Blunt
+
+ 2
+ 1.54
+ 1.5
+ 0.555
+ Grip
+
+
+ muzzle
+
+ Poke
+
+ 2
+ 1.54
+ 0.555
+ Muzzle
+
+
+
+
+
+
+
+ Defs/ThingDef[
+ defName="Gun_PumpShotgun" or
+ defName="Gun_ChainShotgun" or
+ defName="Gun_BoltActionRifle" or
+ defName="Gun_AssaultRifle" or
+ defName="Gun_SniperRifle" or
+ defName="Gun_HeavySMG" or
+ defName="Gun_IncendiaryLauncher" or
+ defName="Gun_LMG" or
+ defName="Gun_ChargeRifle"
+ ]/tools
+
+
+
+
+ stock
+
+ Blunt
+
+ 8
+ 1.55
+ 1.5
+ 2.755
+ Stock
+
+
+ barrel
+
+ Blunt
+
+ 5
+ 2.02
+ 1.630
+ Barrel
+
+
+ muzzle
+
+ Poke
+
+ 8
+ 1.55
+ 2.755
+ Muzzle
+
+
+
+
+
+
+ Defs/ThingDef[defName="Gun_TripleRocket" or defName="Gun_DoomsdayRocket"]/tools
+
+
+
+ barrel
+
+ Blunt
+
+ 10
+ 2.44
+ 3.5
+ Barrel
+
+
+
+
+
+
+
+
+ Gun_Revolver
+
+ 1.39
+ 0.49
+ 0.7
+ 0.18
+ 1.27
+ 2.41
+
+ 7000
+
+
+ 30
+ 2
+
+
+ 2.96
+ CombatExtended.Verb_ShootCE
+ true
+ Bullet_44Magnum_FMJ
+ 0.6
+ 12
+ Shot_Revolver
+ GunTail_Light
+ 9
+
+
+ 6
+ 4.6
+ AmmoSet_44Magnum
+
+
+ FALSE
+ Snapshot
+
+
+ CE_Sidearm
+ CE_AI_BROOM
+ CE_OneHandedWeapon
+
+ Gunsmithing
+
+
+
+ Defs/ThingDef[defName="Gun_Revolver"]
+
+
+ 1.00,1.00
+ 0.0,0.0
+
+
+
+
+
+
+
+ Gun_Autopistol
+
+ 1.11
+ 0.38
+ 0.7
+ 0.17
+ 1.07
+ 2.10
+ 7000
+
+
+ 25
+ 3
+
+
+ 2.72
+ CombatExtended.Verb_ShootCE
+ true
+ Bullet_45ACP_FMJ
+ 0.6
+ 12
+ Shot_Autopistol
+ GunTail_Light
+ 9
+
+
+ 7
+ 4
+ AmmoSet_45ACP
+
+
+ FALSE
+ Snapshot
+
+
+ CE_Sidearm
+ CE_AI_BROOM
+ CE_OneHandedWeapon
+
+ BlowbackOperation
+
+
+
+ Defs/ThingDef[defName="Gun_Autopistol"]
+
+
+ 0.93,0.93
+ 0.0,0.0
+
+
+
+
+
+
+
+ Gun_PumpShotgun
+
+ 3.00
+ 1.0
+ 0.14
+ 1.20
+ 9.0
+ 1
+ 9500
+
+
+ 45
+ 10
+ 1
+
+
+ 2.75
+ CombatExtended.Verb_ShootCE
+ true
+ Bullet_12Gauge_Buck
+ 0.6
+ 16
+ Shot_Shotgun
+ GunTail_Heavy
+ 9
+
+
+ 5
+ true
+ 0.85
+ AmmoSet_12Gauge
+
+
+ Snapshot
+
+
+ SimpleGun
+ CE_AI_BROOM
+
+ Gunsmithing
+
+
+
+ Defs/ThingDef[defName="Gun_PumpShotgun"]
+
+
+ 1.03,1.25
+ 0.05,0.0
+
+
+
+
+
+
+
+ Defs/ThingDef[defName="Gun_ChainShotgun"]/description
+
+ A magazine-fed semi-automatic shotgun. It has the same range as a typical shotgun, but is extraordinarily dangerous due to being semi-automatic.
+
+
+
+
+ Gun_ChainShotgun
+
+ 3.50
+ 0.39
+ 0.15
+ 1.26
+ 6.7
+ 1
+ 22500
+
+
+ 40
+ 3
+ 10
+
+
+ 2.54
+ CombatExtended.Verb_ShootCE
+ true
+ Bullet_12Gauge_Buck
+ 0.6
+ 16
+ Shot_Shotgun_NoRack
+ GunTail_Heavy
+ 9
+ 15
+
+
+ 8
+ 4
+ AmmoSet_12Gauge
+
+
+ Snapshot
+
+
+ CE_AI_BROOM
+
+ GasOperation
+
+
+
+ Defs/ThingDef[defName="Gun_ChainShotgun"]
+
+
+ 1.04,1.23
+ 0.05,-0.05
+ 0,0.2
+ -30
+
+
+
+
+
+
+
+ Gun_BoltActionRifle
+
+ 4.19
+ 1.17
+ 1
+ 0.02
+ 1.68
+ 12.60
+ 12000
+
+
+ 55
+ 15
+ 1
+
+
+ 2.04
+ CombatExtended.Verb_ShootCE
+ true
+ Bullet_303British_FMJ
+ 1.1
+ 55
+ Shot_BoltActionRifle
+ GunTail_Heavy
+ 9
+
+
+ 10
+ 4.3
+ AmmoSet_303British
+
+
+ AimedShot
+
+
+ SimpleGun
+ CE_AI_SR
+
+ Gunsmithing
+ false
+
+
+
+ Defs/ThingDef[defName="Gun_BoltActionRifle"]
+
+
+ 1.3,1.3
+ 0.12,0.04
+ -0.1,0.1
+
+
+
+
+
+
+
+ Gun_AssaultRifle
+
+ 3.26
+ 0.36
+ 1
+ 0.07
+ 1.33
+ 10.03
+ 30000
+
+
+ 50
+ 5
+ 10
+
+
+ 1.50
+ CombatExtended.Verb_ShootCE
+ true
+ Bullet_556x45mmNATO_FMJ
+ 1.1
+ 55
+ 6
+ 4
+ Shot_AssaultRifle
+ GunTail_Medium
+ 9
+
+
+ 30
+ 4
+ AmmoSet_556x45mmNATO
+
+
+ 3
+ TRUE
+ AimedShot
+
+
+ CE_AI_AR
+
+ PrecisionRifling
+
+
+
+ Defs/ThingDef[defName="Gun_AssaultRifle"]
+
+
+ 1.16,1.16
+ 0.08,0.0
+ -0.05,0
+
+
+
+
+
+
+
+ Gun_SniperRifle
+
+ 7.30
+ 1.36
+ 2.6
+ 0.05
+ 1.35
+ 11.92
+ 30000
+
+
+ 60
+ 5
+ 15
+
+
+ 1.50
+ CombatExtended.Verb_ShootCE
+ true
+ Bullet_762x51mmNATO_FMJ
+ 1.8
+ 75
+ Shot_SniperRifle
+ GunTail_Heavy
+ 9
+
+
+ 5
+ 4
+ AmmoSet_762x51mmNATO
+
+
+ AimedShot
+
+
+ CE_AI_SR
+ Bipod_DMR
+
+ PrecisionRifling
+ false
+
+
+
+ Defs/ThingDef[defName="Gun_SniperRifle"]
+
+
+ 1.25,1.45
+ 0.15,-0.05
+ -0.3,0.1
+
+
+
+
+
+
+
+ Gun_MachinePistol
+
+ 2.84
+ 0.36
+ 0.7
+ 0.16
+ 1.93
+ 2.95
+ 24500
+
+
+ 35
+ 3
+
+
+ 1.71
+ CombatExtended.Verb_ShootCE
+ true
+ Bullet_45ACP_FMJ
+ 0.6
+ 12
+ 6
+ 3
+ Shot_MachinePistol
+ GunTail_Light
+ 9
+
+
+ 30
+ 4
+ AmmoSet_45ACP
+
+
+ 3
+ FALSE
+ Snapshot
+
+
+ CE_SMG
+ CE_AI_BROOM
+ CE_OneHandedWeapon
+
+ BlowbackOperation
+
+
+
+ Defs/ThingDef[defName="Gun_MachinePistol"]
+
+
+ 0.84,0.84
+ -0.10,-0.07
+ 0.1,0.1
+ -30
+
+
+
+
+
+
+
+ Gun_HeavySMG
+
+ 2.50
+ 0.37
+ 1.00
+ 0.14
+ 0.94
+ 4.50
+ 24500
+
+
+ 30
+ 10
+ 5
+
+
+ 1.79
+ CombatExtended.Verb_ShootCE
+ true
+ Bullet_45ACP_FMJ
+ 0.6
+ 25
+ 6
+ 6
+ Shot_HeavySMG
+ GunTail_Heavy
+ 9
+
+
+ 25
+ 4
+ AmmoSet_45ACP
+
+
+ 3
+ FALSE
+ Snapshot
+
+
+ CE_SMG
+ CE_AI_BROOM
+
+ BlowbackOperation
+
+
+
+ Defs/ThingDef[defName="Gun_HeavySMG"]
+
+
+ 0.85,0.85
+ 0.00,-0.03
+ 0.1,0
+
+
+
+
+
+
+
+ Gun_IncendiaryLauncher
+
+ 8
+ 0.43
+ 1
+ 0.15
+ 1.8
+ 10
+ 39500
+
+
+ 65
+ 30
+ 7
+ 10
+
+
+ 1.0
+ CombatExtended.Verb_ShootCE
+ true
+ Bullet_30x64mmFuel_Incendiary
+ 1.1
+ 40
+ 0
+ Shot_IncendiaryLauncher
+ GunTail_Medium
+ 14
+
+ true
+
+
+
+ 5
+ 4
+ AmmoSet_30x64mmFuel
+
+
+ FALSE
+ SuppressFire
+
+
+ CE_AI_AOE
+ EliteGun
+
+ CE_AdvancedLaunchers
+ false
+
+
+
+ Defs/ThingDef[defName="Gun_IncendiaryLauncher"]
+
+
+ 1.16,1.16
+ 0.1,-0.05
+
+
+
+
+
+
+
+ Gun_LMG
+
+ 8.7
+ 0.56
+ 1
+ 0.05
+ 1.37
+ 12.9
+ 31500
+
+
+ 80
+ 10
+ 5
+
+
+ 1.38
+ CombatExtended.Verb_ShootCE
+ true
+ Bullet_303British_FMJ
+ 1.3
+ 62
+ 7
+ 10
+ Shot_CE_BattleRifle
+ GunTail_Medium
+ 9
+
+ true
+
+ Mounted
+
+
+ 50
+ 4.9
+ AmmoSet_303British
+
+
+ 5
+ FALSE
+ SuppressFire
+
+
+ CE_MachineGun
+ CE_AI_LMG
+ Bipod_LMG
+
+ GasOperation
+ false
+
+
+
+ Defs/ThingDef[defName="Gun_LMG"]
+
+
+ 1.35,1.18
+ 0.13,-0.03
+
+
+
+
+
+
+
+ Gun_ChargeRifle
+
+ 3.0
+ 0.36
+ 1.10
+ 0.08
+ 1.20
+ 7.00
+ 49000
+
+
+ 45
+ 25
+ 4
+ 1
+ 10
+
+
+ 1.46
+ CombatExtended.Verb_ShootCE
+ true
+ Bullet_6x24mmCharged
+ 1.0
+ 55
+ 5
+ 6
+ Shot_ChargeRifle
+ GunTail_Medium
+ 9
+
+
+ 30
+ 4
+ AmmoSet_6x24mmCharged
+
+
+ 3
+ TRUE
+ AimedShot
+
+
+ CE_AI_AR
+ AdvancedGun
+
+ ChargedShot
+
+
+
+ Defs/ThingDef[defName="Gun_ChargeRifle"]
+
+
+ 1.03,1.03
+ 0.05,0.0
+
+
+
+
+
+
+
+ Gun_MiniTurret
+
+ 0.36
+ 1
+ 0.07
+ 0.69
+
+
+ 0.91
+ CombatExtended.Verb_ShootCE
+ true
+ Bullet_556x45mmNATO_FMJ
+ 1.3
+ 48
+ 5
+ 10
+ GunShotA
+ GunTail_Light
+ 9
+ Mounted
+
+
+ 100
+ 7.8
+ AmmoSet_556x45mmNATO
+
+
+ AimedShot
+ true
+ true
+
+
+
+
+
+
+ Defs/ThingDef[defName ="Gun_Minigun"]/weaponTags/li[.="GunHeavy"]
+
+
+
+ Gun_Minigun
+
+ 20.00
+ 0.35
+ 1
+ 0.06
+ 3.22
+ 10
+ 52000
+
+
+ 110
+ 11
+
+
+ 0.97
+ CombatExtended.Verb_ShootCE
+ true
+ Bullet_762x51mmNATO_FMJ
+ 2.1
+ 62
+ 50
+ 2
+ Shot_Minigun
+ GunTail_Medium
+ 9
+
+
+ 250
+ 9.2
+ AmmoSet_762x51mmNATO
+
+
+ 25
+ Snapshot
+
+
+ CE_AI_Suppressive
+
+
+
+
+ Defs/ThingDef[defName="Gun_Minigun"]/tools
+
+
+
+ barrels
+
+ Blunt
+
+ 10
+ 2.44
+ 3.5
+ Barrels
+
+
+
+
+
+
+ Defs/ThingDef[defName="Gun_Minigun"]/equippedStatOffsets
+
+
+
+ Defs/ThingDef[defName="Gun_Minigun"]
+
+
+ 1.00,1.00
+ 0.1,-0.15
+ -0.2,0
+ -30
+
+
+
+
+
+
+
+
+
+ Defs/ThingDef[defName="Gun_DoomsdayRocket" or defName="Gun_TripleRocket"]/weaponTags/li[.="Gun"]
+
+
+
+ Defs/ThingDef[defName="Gun_DoomsdayRocket" or defName="Gun_TripleRocket"]
+ ParentName
+ BaseMakeableGun
+
+
+
+ Defs/ThingDef[defName="Gun_DoomsdayRocket" or defName="Gun_TripleRocket"]/statBases/MarketValue
+
+
+
+
+
+ Defs/ThingDef[defName="Bullet_DoomsdayRocket"]/thingClass
+
+ CombatExtended.ProjectileCE_Explosive
+
+
+
+
+ Defs/ThingDef[defName="Bullet_DoomsdayRocket"]/projectile
+
+
+ Bomb
+ 250
+ 7.8
+ 3.0
+ 2.0
+ 100
+
+
+
+
+
+ Defs/ThingDef[defName="Bullet_DoomsdayRocket"]/comps
+
+ Defs/ThingDef[defName="Bullet_DoomsdayRocket"]
+
+
+
+
+
+
+
+ Defs/ThingDef[defName="Bullet_DoomsdayRocket"]/comps
+
+
+ 1
+
+ 400
+
+
+
+
+
+
+
+
+ Gun_DoomsdayRocket
+
+ 20.00
+ 1.5
+ 2.24
+ 0.2
+ 3.24
+ 13.0
+ 49500
+
+
+ 125
+ 8
+ 5
+
+
+ CombatExtended.Verb_ShootCEOneUse
+ true
+ Bullet_DoomsdayRocket
+ 2.1
+ 48
+ 1
+ InfernoCannon_Fire
+ GunTail_Heavy
+ true
+
+ true
+
+ 14
+
+
+ AimedShot
+
+
+ CE_AI_AOE
+
+ CE_AdvancedLaunchers
+ false
+
+
+
+ Defs/ThingDef[defName="Gun_DoomsdayRocket"]
+
+
+ 1.45,1.45
+ -0.15,0
+
+
+
+
+
+
+
+
+
+ Defs/ThingDef[defName="Bullet_Rocket"]/thingClass
+
+ CombatExtended.ProjectileCE_Explosive
+
+
+
+
+ Defs/ThingDef[defName="Bullet_Rocket"]/projectile
+
+
+ Bomb
+ 180
+ 3.0
+ 3.0
+ 2.0
+ 100
+
+
+
+
+
+ Defs/ThingDef[defName="Bullet_Rocket"]/comps
+
+ Defs/ThingDef[defName="Bullet_Rocket"]
+
+
+
+
+
+
+
+ Defs/ThingDef[defName="Bullet_Rocket"]/comps
+
+
+ 1
+
+ 150
+
+
+
+
+
+
+
+
+ Gun_TripleRocket
+
+ 12.00
+ 1.5
+ 1
+ 0.2
+ 2.20
+ 13.00
+ 43000
+
+
+ 90
+ 7
+ 3
+
+
+ CombatExtended.Verb_ShootCEOneUse
+ true
+ Bullet_Rocket
+ 1.9
+ 40
+ 20
+ 3
+ InfernoCannon_Fire
+ GunTail_Heavy
+ true
+ false
+
+ true
+
+ 14
+
+
+ AimedShot
+ true
+
+
+ CE_AI_AOE
+
+ CE_AdvancedLaunchers
+ false
+
+
+
+ Defs/ThingDef[defName="Gun_TripleRocket"]
+
+
+ 1.16,1.16
+ -0.25,0
+
+
+
+
+
+
+
+ Gun_ChargeBlasterHeavy
+
+ 35.00
+ 0.36
+ 1
+ 0.01
+ 1.33
+ 13.00
+
+
+ 1.08
+ CombatExtended.Verb_ShootCE
+ true
+ Bullet_12x64mmCharged
+ 2.3
+ 75
+ 6
+ 20
+ Shot_ChargeBlaster
+ GunTail_Heavy
+ 9
+
+
+ 100
+ 9.2
+ AmmoSet_12x64mmCharged
+
+
+ 10
+ Snapshot
+
+
+ CE_AI_Suppressive
+ NoSwitch
+
+
+
+
+ Defs/ThingDef[@Name="Gun_ChargeBlasterHeavyBase"]/tools
+
+
+
+ barrel
+
+ Blunt
+
+ 10
+ 2.44
+ 3.5
+ Barrel
+
+
+
+
+
+
+
+
+ Gun_InfernoCannon
+
+ 50.00
+ 2.54
+ 1
+ 0.01
+ 0.14
+ 20.00
+
+
+ 2.01
+ CombatExtended.Verb_ShootCE
+ true
+ Bullet_80x256mmFuel_Incendiary
+ 3.5
+ 86
+ 1
+ InfernoCannon_Fire
+ GunTail_Light
+ 14
+ 5
+ 5
+ true
+
+
+ 1
+ 2
+ 9.8
+ AmmoSet_80x256mmFuel
+
+
+ AimedShot
+
+
+ CE_AI_Launcher
+ NoSwitch
+
+
+
+
+ Defs/ThingDef[@Name="Gun_InfernoCannonBase"]/tools
+
+
+
+ barrel
+
+ Blunt
+
+ 10
+ 2.44
+ 3.5
+ Barrel
+
+
+
+
+
+
+
+
+ Gun_ThumpCannon
+
+ 75.00
+ 2.2
+ 1
+ 0.01
+ 0.21
+ 20.00
+
+
+ 0.1
+ CombatExtended.Verb_ShootCE
+ true
+ Bullet_164x284mmDemo
+ 3.3
+ 42
+ 1
+ ThumpCannon_Fire
+ GunTail_Heavy
+ 14
+ 3
+ 4
+ true
+
+
+ 1
+ 2
+ 9.8
+ AmmoSet_164x284mmDemo
+
+
+ AimedShot
+
+
+ CE_AI_Launcher
+ NoSwitch
+
+
+
+
+ Defs/ThingDef[defName="Gun_ThumpCannon"]/tools
+
+
+
+ barrel
+
+ Blunt
+
+ 10
+ 2.44
+ 3.5
+ Barrel
+
+
+
+
+
+
+
+
+ Gun_ChargeLance
+
+ 0.35
+ 1
+ 0.01
+ 1
+ 13.00
+
+
+ 0.75
+ CombatExtended.Verb_ShootCE
+ true
+ Bullet_5x35mmCharged
+ 1.3
+ 62
+ 1
+ ChargeLance_Fire
+ GunTail_Heavy
+ 9
+
+
+ 5
+ 3
+ AmmoSet_5x35mmCharged
+
+
+ AimedShot
+
+
+ CE_AI_Rifle
+ NoSwitch
+
+
+
+
+ Defs/ThingDef[defName="Gun_ChargeLance"]/tools
+
+
+
+ barrel
+
+ Blunt
+
+ 10
+ 2.44
+ 3.5
+ Barrel
+
+
+
+
+
+
+ Defs/ThingDef[defName="Gun_ChargeLance"]
+
+
+ True
+
+
+
+
+
+
+ Defs/ThingDef[defName="Gun_ChargeLance"]
+ ParentName
+ BaseGun
+
+
+
+ Defs/ThingDef[defName="Gun_ChargeLance"]/costList
+
+
+
+ Defs/ThingDef[defName="Gun_ChargeLance"]/recipeMaker
+
+
+
+ Defs/ThingDef[defName="Gun_ChargeLance"]/statBases
+
+ 1400
+
+
+
+
+ Defs/ThingDef[defName="Gun_ChargeLance"]
+
+ None
+ True
+
+
+
+
+ Defs/ThingDef[defName="Gun_ChargeLance"]/weaponTags/li[contains(.,"SpacerGun")]
+
+
+
+
+
+ Gun_Needle
+
+ 0.38
+ 1
+ 0.01
+ 0.81
+ 15.00
+
+
+ 1.80
+ CombatExtended.Verb_ShootCE
+ true
+ Bullet_5x100mmCaseless_Sabot
+ 1.3
+ 75
+ 1
+ Shot_NeedleGun
+ GunTail_Heavy
+ 9
+
+
+ 10
+ 4
+ AmmoSet_5x100mmCaseless
+
+
+ AimedShot
+
+
+ CE_AI_Rifle
+ NoSwitch
+
+
+
+
+ Defs/ThingDef[defName="Gun_Needle"]/tools
+
+
+
+ barrel
+
+ Blunt
+
+ 10
+ 2.44
+ 3.5
+ Barrel
+
+
+
+
+
+
+
+ Defs/ThingDef[defName="OrbitalTargeterBombardment" or defName="OrbitalTargeterPowerBeam"]/verbs/li/range
+
+ 60
+
+
+
+
+
+ Defs/ThingDef[defName="Gun_SmokeLauncher"]
+
+
+
+ Defs/ThingDef[defName="Gun_EmpLauncher"]
+
\ No newline at end of file
diff --git a/Source/CombatExtended/CombatExtended/CE_Utility.cs b/Source/CombatExtended/CombatExtended/CE_Utility.cs
index 25429f39d5..6342ad72ed 100644
--- a/Source/CombatExtended/CombatExtended/CE_Utility.cs
+++ b/Source/CombatExtended/CombatExtended/CE_Utility.cs
@@ -736,13 +736,13 @@ public static Thing GetWeaponFromLauncher(Thing launcher)
#endregion Misc
#region MoteThrower
- public static void GenerateAmmoCasings(ProjectilePropertiesCE projProps, Vector3 drawPosition, Map map, float shotRotation = -180f, float recoilAmount = 2f)
+ public static void GenerateAmmoCasings(ProjectilePropertiesCE projProps, Vector3 drawPosition, Map map, float shotRotation = -180f, float recoilAmount = 2f, bool fromPawn = false, float casingAngleOffset = 0)
{
if (projProps.dropsCasings)
{
if (Controller.settings.ShowCasings)
{
- ThrowEmptyCasing(drawPosition, map, DefDatabase.GetNamed(projProps.casingMoteDefname), recoilAmount, shotRotation);
+ ThrowEmptyCasing(drawPosition, map, DefDatabase.GetNamed(projProps.casingMoteDefname), recoilAmount, shotRotation, 1f, fromPawn, casingAngleOffset);
}
if (Controller.settings.CreateCasingsFilth)
{
@@ -752,7 +752,7 @@ public static void GenerateAmmoCasings(ProjectilePropertiesCE projProps, Vector3
}
- public static void ThrowEmptyCasing(Vector3 loc, Map map, FleckDef casingFleckDef, float recoilAmount, float shotRotation, float size = 1f)
+ public static void ThrowEmptyCasing(Vector3 loc, Map map, FleckDef casingFleckDef, float recoilAmount, float shotRotation, float size = 1f, bool fromPawn = false, float casingAngleOffset = 0)
{
if (!loc.ShouldSpawnMotesAt(map) || map.moteCounter.SaturatedLowPriority)
{
@@ -764,15 +764,21 @@ public static void ThrowEmptyCasing(Vector3 loc, Map map, FleckDef casingFleckDe
}
Rand.PushState();
FleckCreationData creationData = FleckMaker.GetDataStatic(loc, map, casingFleckDef);
- creationData.airTimeLeft = 1.5f;
+ creationData.velocitySpeed = Rand.Range(1.5f, 2f) * recoilAmount;
+ creationData.airTimeLeft = Rand.Range(1f, 1.5f) / creationData.velocitySpeed;
creationData.scale = Rand.Range(0.5f, 0.3f) * size;
creationData.spawnPosition = loc;
- creationData.velocitySpeed = Rand.Range(0.6f, 0.4f) * recoilAmount;
int randomAngle = Rand.Range(-20, 20);
//shotRotation goes from -270 to +90, while fleck angle uses 0 to 360 degrees (0 deg being North for both cases), so a conversion is used
+ //^ not anymore, now it gets aiming angle instead
//+90 makes casings fly to gun's right side
- creationData.velocityAngle = shotRotation > 0 ? 360 - shotRotation + 90 + randomAngle : 0 - shotRotation + 90 + randomAngle;
- creationData.rotation = creationData.velocityAngle + Rand.Range(-3f, 4f);
+ bool flip = false;
+ if (fromPawn && shotRotation > 200f && shotRotation < 340f)
+ {
+ flip = true;
+ }
+ creationData.velocityAngle = flip ? shotRotation - 90 - casingAngleOffset + randomAngle : shotRotation + 90 + casingAngleOffset + randomAngle;
+ creationData.rotation = (flip ? shotRotation - 90 : shotRotation + 90) + Rand.Range(-3f, 4f);
creationData.rotationRate = (float)Rand.Range(-150, 150) / recoilAmount;
map.flecks.CreateFleck(creationData);
Rand.PopState();
diff --git a/Source/CombatExtended/CombatExtended/Defs/GunDrawExtension.cs b/Source/CombatExtended/CombatExtended/Defs/GunDrawExtension.cs
index ccb65a230f..d9543b274b 100644
--- a/Source/CombatExtended/CombatExtended/Defs/GunDrawExtension.cs
+++ b/Source/CombatExtended/CombatExtended/Defs/GunDrawExtension.cs
@@ -7,5 +7,8 @@ public class GunDrawExtension : DefModExtension
{
public Vector2 DrawSize = Vector2.one;
public Vector2 DrawOffset = Vector2.zero;
+
+ public Vector2 CasingOffset = Vector2.zero;
+ public float CasingAngleOffset = 0;
}
}
diff --git a/Source/CombatExtended/CombatExtended/Things/Fleck_Casing.cs b/Source/CombatExtended/CombatExtended/Things/Fleck_Casing.cs
new file mode 100644
index 0000000000..a86a31f304
--- /dev/null
+++ b/Source/CombatExtended/CombatExtended/Things/Fleck_Casing.cs
@@ -0,0 +1,166 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using RimWorld;
+using UnityEngine;
+using Verse;
+using Verse.Sound;
+
+namespace CombatExtended
+{
+ public class FleckSystem_Casing : FleckSystemBase
+ {
+ }
+ public struct Fleck_Casing : IFleck
+ {
+ public FleckStatic baseData;
+
+ public float airTimeLeft;
+
+ public Vector3 velocity;
+
+ public float rotationRate;
+
+ public float delay;
+
+ public bool Flying => airTimeLeft > 0f;
+
+ public Vector3 Velocity
+ {
+ get
+ {
+ return velocity;
+ }
+ set
+ {
+ velocity = value;
+ }
+ }
+
+ public float MoveAngle
+ {
+ get
+ {
+ return velocity.AngleFlat();
+ }
+ set
+ {
+ SetVelocity(value, Speed);
+ }
+ }
+
+ public float Speed
+ {
+ get
+ {
+ return velocity.MagnitudeHorizontal();
+ }
+ set
+ {
+ if (value == 0f)
+ {
+ velocity = Vector3.zero;
+ }
+ else if (velocity == Vector3.zero)
+ {
+ velocity = new Vector3(value, 0f, 0f);
+ }
+ else
+ {
+ velocity = velocity.normalized * value;
+ }
+ }
+ }
+
+ public void Setup(FleckCreationData creationData)
+ {
+ baseData = default(FleckStatic);
+ baseData.Setup(creationData);
+ airTimeLeft = creationData.airTimeLeft ?? 999999f;
+ baseData.exactPosition += creationData.def.attachedDrawOffset;
+ rotationRate = creationData.rotationRate;
+ SetVelocity(creationData.velocityAngle, creationData.velocitySpeed);
+ if (creationData.velocity.HasValue)
+ {
+ velocity += creationData.velocity.Value;
+ }
+ }
+
+ public bool TimeInterval(float deltaTime, Map map)
+ {
+ if (baseData.TimeInterval(deltaTime, map))
+ {
+ return true;
+ }
+ if (!Flying)
+ {
+ return false;
+ }
+ Vector3 vector = NextExactPosition(deltaTime);
+ IntVec3 intVec = new IntVec3(vector);
+ if (intVec != new IntVec3(baseData.exactPosition))
+ {
+ if (!intVec.InBounds(map))
+ {
+ return true;
+ }
+ if (baseData.def.collide && intVec.Filled(map))
+ {
+ WallHit();
+ return false;
+ }
+ }
+ baseData.exactPosition = vector;
+ if (baseData.def.speedPerTime != FloatRange.Zero)
+ {
+ Speed = Mathf.Max(Speed + baseData.def.speedPerTime.RandomInRange * deltaTime, 0f);
+ }
+ if (airTimeLeft > 0f)
+ {
+ if (baseData.def.rotateTowardsMoveDirection && velocity != default(Vector3))
+ {
+ baseData.exactRotation = velocity.AngleFlat() + baseData.def.rotateTowardsMoveDirectionExtraAngle;
+ }
+ else
+ {
+ baseData.exactRotation += rotationRate * deltaTime;
+ }
+ velocity += baseData.def.acceleration * deltaTime;
+ airTimeLeft -= deltaTime;
+ if (airTimeLeft < 0f)
+ {
+ airTimeLeft = 0f;
+ }
+ if (airTimeLeft <= 0f && !baseData.def.landSound.NullOrUndefined())
+ {
+ baseData.def.landSound.PlayOneShot(new TargetInfo(new IntVec3(baseData.exactPosition), map));
+ }
+ }
+ return false;
+ }
+
+ private Vector3 NextExactPosition(float deltaTime)
+ {
+ return baseData.exactPosition + velocity * deltaTime;
+ }
+
+ public void SetVelocity(float angle, float speed)
+ {
+ velocity = Quaternion.AngleAxis(angle, Vector3.up) * Vector3.forward * speed;
+ }
+
+ public void Draw(DrawBatch batch)
+ {
+ baseData.Draw(batch);
+ }
+
+ private void WallHit()
+ {
+ airTimeLeft = 0f;
+ Speed = 0f;
+ rotationRate = 0f;
+ }
+ }
+}
diff --git a/Source/CombatExtended/CombatExtended/Verbs/Verb_ShootCE.cs b/Source/CombatExtended/CombatExtended/Verbs/Verb_ShootCE.cs
index c494e6dd0f..342a94b0d0 100644
--- a/Source/CombatExtended/CombatExtended/Verbs/Verb_ShootCE.cs
+++ b/Source/CombatExtended/CombatExtended/Verbs/Verb_ShootCE.cs
@@ -29,6 +29,8 @@ public class Verb_ShootCE : Verb_LaunchProjectileCE
private bool _isAiming;
+ public Vector3 drawPos;
+
#endregion
#region Properties
@@ -103,6 +105,24 @@ private bool ShouldAim
}
}
+ public float AimAngle
+ {
+ get
+ {
+ if (this.CurrentTarget == null)
+ {
+ return 143f;
+ }
+ Vector3 vector = (CurrentTarget.Thing == null ? CurrentTarget.Cell.ToVector3Shifted() : CurrentTarget.Thing.DrawPos);
+ float num = 143f;
+ if ((vector - caster.DrawPos).MagnitudeHorizontalSquared() > 0.001f)
+ {
+ num = (vector - caster.DrawPos).AngleFlat();
+ }
+ return num;
+ }
+ }
+
public float SpreadDegrees
{
get
@@ -356,15 +376,19 @@ public override bool TryCastShot()
}
protected virtual bool OnCastSuccessful()
{
+ bool fromPawn = false;
+ GunDrawExtension ext = EquipmentSource.def.GetModExtension();
//Required since Verb_Shoot does this but Verb_LaunchProjectileCE doesn't when calling base.TryCastShot() because Shoot isn't its base
if (ShooterPawn != null)
{
ShooterPawn.records.Increment(RecordDefOf.ShotsFired);
+ fromPawn = drawPos != Vector3.zero;
}
+
//Drop casings
if (VerbPropsCE.ejectsCasings)
{
- CE_Utility.GenerateAmmoCasings(projectilePropsCE, caster.DrawPos, caster.Map, shotRotation, VerbPropsCE.recoilAmount);
+ CE_Utility.GenerateAmmoCasings(projectilePropsCE, fromPawn ? drawPos : caster.DrawPos + CasingOffsetRotated(ext), caster.Map, AimAngle, VerbPropsCE.recoilAmount, fromPawn: fromPawn, casingAngleOffset: EquipmentSource?.def.GetModExtension()?.CasingAngleOffset ?? 0);
}
// This needs to here for weapons without magazine to ensure their last shot plays sounds
if (CompAmmo != null && !CompAmmo.HasMagazine && CompAmmo.UseAmmo)
@@ -395,6 +419,16 @@ protected virtual bool OnCastSuccessful()
}
return true;
}
+
+ Vector3 CasingOffsetRotated(GunDrawExtension ext)
+ {
+ if (ext == null || ext.CasingOffset == Vector2.zero)
+ {
+ return Vector3.zero;
+ }
+ return new Vector3(ext.CasingOffset.x, 0, ext.CasingOffset.y).RotatedBy(AimAngle);
+
+ }
#endregion
}
}
diff --git a/Source/CombatExtended/Harmony/Harmony_PawnRenderer.cs b/Source/CombatExtended/Harmony/Harmony_PawnRenderer.cs
index 463d2a2216..76581e0898 100644
--- a/Source/CombatExtended/Harmony/Harmony_PawnRenderer.cs
+++ b/Source/CombatExtended/Harmony/Harmony_PawnRenderer.cs
@@ -403,14 +403,17 @@ internal static class Harmony_PawnRenderer_DrawEquipmentAiming
private static Pawn pawn;
+ private static Vector3 casingDrawPos;
+
private static readonly Matrix4x4 TBot5 = Matrix4x4.Translate(new Vector3(0, -0.006f, 0));
private static readonly Matrix4x4 TBot3 = Matrix4x4.Translate(new Vector3(0, -0.004f, 0));
- public static void Prefix(PawnRenderer __instance, Thing eq)
+ public static void Prefix(PawnRenderer __instance, Thing eq, Vector3 drawLoc)
{
pawn = __instance.pawn;
equipment = eq;
+ casingDrawPos = drawLoc;
}
private static void DrawMesh(Mesh mesh, Matrix4x4 matrix, Material mat, int layer, Thing eq, Vector3 position, float aimAngle)
@@ -419,11 +422,18 @@ private static void DrawMesh(Mesh mesh, Matrix4x4 matrix, Material mat, int laye
if (drawData.DrawSize == Vector2.one) { drawData.DrawSize = eq.def.graphicData.drawSize; }
Vector3 scale = new Vector3(drawData.DrawSize.x, 1, drawData.DrawSize.y);
Vector3 posVec = new Vector3(drawData.DrawOffset.x, 0, drawData.DrawOffset.y);
+ Vector3 casingOffset = new Vector3(drawData.CasingOffset.x, 0, drawData.CasingOffset.y);
if (aimAngle > 200 && aimAngle < 340)
{
posVec.x *= -1;
+ casingOffset.x *= -1;
}
matrix.SetTRS(position + posVec.RotatedBy(matrix.rotation.eulerAngles.y), matrix.rotation, scale);
+ CompEquippable compEquippable = eq.TryGetComp();
+ if (compEquippable != null && compEquippable.PrimaryVerb is Verb_ShootCE verbCE)
+ {
+ verbCE.drawPos = casingDrawPos + (casingOffset + posVec).RotatedBy(matrix.rotation.eulerAngles.y);
+ }
if (eq is WeaponPlatform platform)
{
platform.DrawPlatform(matrix, mesh == MeshPool.plane10Flip, layer);