diff --git a/Biotech/Patches/ThingDefs_Misc/Weapons/RangedIndustrial_Biotech.xml b/Biotech/Patches/ThingDefs_Misc/Weapons/RangedIndustrial_Biotech.xml index 3d1eb38362..bbd45c03be 100644 --- a/Biotech/Patches/ThingDefs_Misc/Weapons/RangedIndustrial_Biotech.xml +++ b/Biotech/Patches/ThingDefs_Misc/Weapons/RangedIndustrial_Biotech.xml @@ -155,7 +155,7 @@ 1.05 10.15 1 - 0.65 + 1.0 diff --git a/Biotech/Patches/ThingDefs_Races/Races_Mechanoids_Medium.xml b/Biotech/Patches/ThingDefs_Races/Races_Mechanoids_Medium.xml index dce5195b53..3b12b160ca 100644 --- a/Biotech/Patches/ThingDefs_Races/Races_Mechanoids_Medium.xml +++ b/Biotech/Patches/ThingDefs_Races/Races_Mechanoids_Medium.xml @@ -87,7 +87,7 @@ Defs/ThingDef[defName="Mech_Legionary"]/statBases - 60 + 75 40 0.12 0.11 @@ -265,7 +265,7 @@ Defs/ThingDef[defName="Mech_Apocriton"]/statBases 0.5 - 60 + 75 30 0.07 0.13 diff --git a/Biotech/Patches/ThingDefs_Races/Races_Mechanoids_SuperHeavy.xml b/Biotech/Patches/ThingDefs_Races/Races_Mechanoids_SuperHeavy.xml index e08afb4f7c..7a6feb860e 100644 --- a/Biotech/Patches/ThingDefs_Races/Races_Mechanoids_SuperHeavy.xml +++ b/Biotech/Patches/ThingDefs_Races/Races_Mechanoids_SuperHeavy.xml @@ -52,14 +52,14 @@ Defs/ThingDef[defName="Mech_Centurion"]/statBases/EnergyShieldRechargeRate - 0.75 + 1.0 Defs/ThingDef[defName="Mech_Centurion"]/statBases/EnergyShieldEnergyMax - 4.5 + 6.0 @@ -67,7 +67,7 @@ Defs/ThingDef[defName="Mech_Centurion"]/statBases 0.25 - 100 + 50 50 1.0 1 @@ -81,7 +81,7 @@ Defs/ThingDef[defName="Mech_Centurion"]/comps/li[@Class="CompProperties_ProjectileInterceptor"]/hitPoints - 450 + 600 @@ -167,7 +167,7 @@ Defs/ThingDef[defName="Mech_Warqueen"]/statBases 0.5 - 100 + 75 50 1.0 1 @@ -247,7 +247,7 @@ Defs/ThingDef[defName="Mech_Diabolus"]/statBases 0.5 - 300 + 75 60 1.0 1.5 diff --git a/Defs/Ammo/Advanced/10x18mmCharged.xml b/Defs/Ammo/Advanced/10x18mmCharged.xml index a6511dc0f9..ef323e2350 100644 --- a/Defs/Ammo/Advanced/10x18mmCharged.xml +++ b/Defs/Ammo/Advanced/10x18mmCharged.xml @@ -41,7 +41,7 @@ Ammo_10x18mmCharged - + Things/Ammo/Charged/SmallRegular Graphic_StackCount @@ -54,7 +54,7 @@ Ammo_10x18mmCharged_AP - + Things/Ammo/Charged/SmallConc Graphic_StackCount @@ -67,7 +67,7 @@ Ammo_10x18mmCharged_Ion - + Things/Ammo/Charged/SmallIon Graphic_StackCount diff --git a/Defs/Ammo/Advanced/12GaugeCharged.xml b/Defs/Ammo/Advanced/12GaugeCharged.xml index 830a7fc8ce..cbf5f3baec 100644 --- a/Defs/Ammo/Advanced/12GaugeCharged.xml +++ b/Defs/Ammo/Advanced/12GaugeCharged.xml @@ -40,7 +40,7 @@ Ammo_12GaugeCharged - + Things/Ammo/Charged/ShotgunRegular Graphic_StackCount @@ -53,7 +53,7 @@ Ammo_12GaugeCharged_Slug - + Things/Ammo/Charged/ShotgunConc Graphic_StackCount @@ -67,7 +67,7 @@ Ammo_12GaugeCharged_Ion - + Things/Ammo/Charged/ShotgunIon Graphic_StackCount diff --git a/Defs/Ammo/Advanced/12mmRailgun.xml b/Defs/Ammo/Advanced/12mmRailgun.xml index 85306c3c46..15be0cb023 100644 --- a/Defs/Ammo/Advanced/12mmRailgun.xml +++ b/Defs/Ammo/Advanced/12mmRailgun.xml @@ -22,7 +22,7 @@ Ammo_12mmRailgun_Sabot - + Fin-stabilized tungsten carbide penetrator with discarding sabot, designed for large-caliber railgun weapons. 0.051 diff --git a/Defs/Ammo/Advanced/12x64mmCharged.xml b/Defs/Ammo/Advanced/12x64mmCharged.xml index 7410fdd6f2..db7b3c3d6d 100644 --- a/Defs/Ammo/Advanced/12x64mmCharged.xml +++ b/Defs/Ammo/Advanced/12x64mmCharged.xml @@ -39,7 +39,7 @@ Ammo_12x64mmCharged - + Things/Ammo/Charged/LargeMech Graphic_StackCount diff --git a/Defs/Ammo/Advanced/12x72mmCharged.xml b/Defs/Ammo/Advanced/12x72mmCharged.xml index 52a51b049f..d8686e7f4b 100644 --- a/Defs/Ammo/Advanced/12x72mmCharged.xml +++ b/Defs/Ammo/Advanced/12x72mmCharged.xml @@ -41,7 +41,7 @@ Ammo_12x72mmCharged - + Things/Ammo/Charged/LargeRegular Graphic_StackCount @@ -54,7 +54,7 @@ Ammo_12x72mmCharged_AP - + Things/Ammo/Charged/LargeConc Graphic_StackCount @@ -67,7 +67,7 @@ Ammo_12x72mmCharged_Ion - + Things/Ammo/Charged/LargeIon Graphic_StackCount diff --git a/Defs/Ammo/Advanced/15x65mmDiffusingCharged.xml b/Defs/Ammo/Advanced/15x65mmDiffusingCharged.xml index 9a450f42c5..c774fcaf0b 100644 --- a/Defs/Ammo/Advanced/15x65mmDiffusingCharged.xml +++ b/Defs/Ammo/Advanced/15x65mmDiffusingCharged.xml @@ -37,7 +37,7 @@ Ammo_15x65mmDiffusingCharged - + Things/Ammo/Charged/ShotgunMech Graphic_StackCount diff --git a/Defs/Ammo/Advanced/164x284mmDemoShell.xml b/Defs/Ammo/Advanced/164x284mmDemoShell.xml index ddacad3f5b..15588da966 100644 --- a/Defs/Ammo/Advanced/164x284mmDemoShell.xml +++ b/Defs/Ammo/Advanced/164x284mmDemoShell.xml @@ -38,7 +38,7 @@ Ammo_164x284mmDemo - + Things/Ammo/FuelCell/Large Graphic_StackCount diff --git a/Defs/Ammo/Advanced/20x105mmCharged.xml b/Defs/Ammo/Advanced/20x105mmCharged.xml index e12dca331a..436c214d17 100644 --- a/Defs/Ammo/Advanced/20x105mmCharged.xml +++ b/Defs/Ammo/Advanced/20x105mmCharged.xml @@ -41,7 +41,7 @@ Ammo_20x105mmCharged - + Things/Ammo/Charged/LargeRegular Graphic_StackCount @@ -54,7 +54,7 @@ Ammo_20x105mmCharged_AP - + Things/Ammo/Charged/LargeConc Graphic_StackCount @@ -67,7 +67,7 @@ Ammo_20x105mmCharged_Ion - + Things/Ammo/Charged/LargeIon Graphic_StackCount diff --git a/Defs/Ammo/Advanced/5x16mmCharged.xml b/Defs/Ammo/Advanced/5x16mmCharged.xml index 7edb61966b..383bb89548 100644 --- a/Defs/Ammo/Advanced/5x16mmCharged.xml +++ b/Defs/Ammo/Advanced/5x16mmCharged.xml @@ -39,7 +39,7 @@ Ammo_5x16mmCharged - + Things/Ammo/Charged/SmallMech Graphic_StackCount diff --git a/Defs/Ammo/Advanced/5x35mmCharged.xml b/Defs/Ammo/Advanced/5x35mmCharged.xml index 35dccbafb3..8bbc376098 100644 --- a/Defs/Ammo/Advanced/5x35mmCharged.xml +++ b/Defs/Ammo/Advanced/5x35mmCharged.xml @@ -39,7 +39,7 @@ Ammo_5x35mmCharged - + Things/Ammo/Charged/MediumMech Graphic_StackCount diff --git a/Defs/Ammo/Advanced/60x225mmGammaShell.xml b/Defs/Ammo/Advanced/60x225mmGammaShell.xml index c07282e6c5..9446aa1b58 100644 --- a/Defs/Ammo/Advanced/60x225mmGammaShell.xml +++ b/Defs/Ammo/Advanced/60x225mmGammaShell.xml @@ -37,7 +37,7 @@ Ammo_60x225mmGamma_Standard - + Things/Ammo/FuelCell/Large Graphic_StackCount diff --git a/Defs/Ammo/Advanced/6mmRailgun.xml b/Defs/Ammo/Advanced/6mmRailgun.xml index f0765220f8..d3d29c06c8 100644 --- a/Defs/Ammo/Advanced/6mmRailgun.xml +++ b/Defs/Ammo/Advanced/6mmRailgun.xml @@ -22,7 +22,7 @@ Ammo_6mmRailgun_Sabot - + Fin-stabilized tungsten carbide penetrator with discarding sabot, designed for railgun rifles. 0.01 diff --git a/Defs/Ammo/Advanced/6x18mmCharged.xml b/Defs/Ammo/Advanced/6x18mmCharged.xml index 3d5e188186..452657d328 100644 --- a/Defs/Ammo/Advanced/6x18mmCharged.xml +++ b/Defs/Ammo/Advanced/6x18mmCharged.xml @@ -41,7 +41,7 @@ Ammo_6x18mmCharged - + Things/Ammo/Charged/SmallRegular Graphic_StackCount @@ -54,7 +54,7 @@ Ammo_6x18mmCharged_AP - + Things/Ammo/Charged/SmallConc Graphic_StackCount @@ -67,7 +67,7 @@ Ammo_6x18mmCharged_Ion - + Things/Ammo/Charged/SmallIon Graphic_StackCount diff --git a/Defs/Ammo/Advanced/6x22mmCharged.xml b/Defs/Ammo/Advanced/6x22mmCharged.xml index 9eb28788d5..ce59fea1d2 100644 --- a/Defs/Ammo/Advanced/6x22mmCharged.xml +++ b/Defs/Ammo/Advanced/6x22mmCharged.xml @@ -39,7 +39,7 @@ Ammo_6x22mmCharged - + Things/Ammo/Charged/MediumMech Graphic_StackCount diff --git a/Defs/Ammo/Advanced/6x24mmCharged.xml b/Defs/Ammo/Advanced/6x24mmCharged.xml index e59fba95df..02593052d8 100644 --- a/Defs/Ammo/Advanced/6x24mmCharged.xml +++ b/Defs/Ammo/Advanced/6x24mmCharged.xml @@ -41,7 +41,7 @@ Ammo_6x24mmCharged - + Things/Ammo/Charged/MediumRegular Graphic_StackCount @@ -54,7 +54,7 @@ Ammo_6x24mmCharged_AP - + Things/Ammo/Charged/MediumConc Graphic_StackCount @@ -67,7 +67,7 @@ Ammo_6x24mmCharged_Ion - + Things/Ammo/Charged/MediumIon Graphic_StackCount diff --git a/Defs/Ammo/Advanced/8mmRailgun.xml b/Defs/Ammo/Advanced/8mmRailgun.xml index d2fc2a8e48..cae6e4cd5c 100644 --- a/Defs/Ammo/Advanced/8mmRailgun.xml +++ b/Defs/Ammo/Advanced/8mmRailgun.xml @@ -22,7 +22,7 @@ Ammo_8mmRailgun_Sabot - + Fin-stabilized tungsten carbide penetrator with discarding sabot, designed for railgun pistols. 0.009 diff --git a/Defs/Ammo/Advanced/8x35mmCharged.xml b/Defs/Ammo/Advanced/8x35mmCharged.xml index 4a74df74bd..3f782609e1 100644 --- a/Defs/Ammo/Advanced/8x35mmCharged.xml +++ b/Defs/Ammo/Advanced/8x35mmCharged.xml @@ -41,7 +41,7 @@ Ammo_8x35mmCharged - + Things/Ammo/Charged/MediumRegular Graphic_StackCount @@ -54,7 +54,7 @@ Ammo_8x35mmCharged_AP - + Things/Ammo/Charged/MediumConc Graphic_StackCount @@ -67,7 +67,7 @@ Ammo_8x35mmCharged_Ion - + Things/Ammo/Charged/MediumIon Graphic_StackCount diff --git a/Defs/Ammo/Advanced/8x40mmCharged.xml b/Defs/Ammo/Advanced/8x40mmCharged.xml index 1fb7e5a666..9a769920d3 100644 --- a/Defs/Ammo/Advanced/8x40mmCharged.xml +++ b/Defs/Ammo/Advanced/8x40mmCharged.xml @@ -39,7 +39,7 @@ Ammo_8x40mmCharged - + Things/Ammo/Charged/MediumMech Graphic_StackCount diff --git a/Defs/Ammo/Advanced/8x50mmCharged.xml b/Defs/Ammo/Advanced/8x50mmCharged.xml index 17e615e091..ca9ec7ad27 100644 --- a/Defs/Ammo/Advanced/8x50mmCharged.xml +++ b/Defs/Ammo/Advanced/8x50mmCharged.xml @@ -41,7 +41,7 @@ Ammo_8x50mmCharged - + Things/Ammo/Charged/MediumRegular Graphic_StackCount @@ -54,7 +54,7 @@ Ammo_8x50mmCharged_AP - + Things/Ammo/Charged/MediumConc Graphic_StackCount @@ -67,7 +67,7 @@ Ammo_8x50mmCharged_Ion - + Things/Ammo/Charged/MediumIon Graphic_StackCount diff --git a/Defs/Ammo/Advanced/PlasmaCellHeavy.xml b/Defs/Ammo/Advanced/PlasmaCellHeavy.xml index 228a5ee165..1798747dc8 100644 --- a/Defs/Ammo/Advanced/PlasmaCellHeavy.xml +++ b/Defs/Ammo/Advanced/PlasmaCellHeavy.xml @@ -22,7 +22,7 @@ Ammo_PlasmaCellHeavy - + Plasma containment power cell optimized for heavy weapons 0.134 diff --git a/Defs/Ammo/Advanced/PlasmaCellPistol.xml b/Defs/Ammo/Advanced/PlasmaCellPistol.xml index 7eefe0fb45..6d05352587 100644 --- a/Defs/Ammo/Advanced/PlasmaCellPistol.xml +++ b/Defs/Ammo/Advanced/PlasmaCellPistol.xml @@ -22,7 +22,7 @@ Ammo_PlasmaCellPistol - + Plasma containment power cell optimized for pistols 0.014 diff --git a/Defs/Ammo/Advanced/PlasmaCellRifle.xml b/Defs/Ammo/Advanced/PlasmaCellRifle.xml index 320795d214..2dabe4c673 100644 --- a/Defs/Ammo/Advanced/PlasmaCellRifle.xml +++ b/Defs/Ammo/Advanced/PlasmaCellRifle.xml @@ -22,7 +22,7 @@ Ammo_PlasmaCellRifle - + Plasma containment power cell optimized for rifles 0.017 diff --git a/Defs/Ammo/Flamethrower.xml b/Defs/Ammo/Flamethrower.xml index 757bf71ef8..083193f6f7 100644 --- a/Defs/Ammo/Flamethrower.xml +++ b/Defs/Ammo/Flamethrower.xml @@ -94,6 +94,7 @@ 20 false + false diff --git a/Defs/Ammo/GENERIC/Mech.xml b/Defs/Ammo/GENERIC/Mech.xml index 60d4c00e94..a17772ae56 100644 --- a/Defs/Ammo/GENERIC/Mech.xml +++ b/Defs/Ammo/GENERIC/Mech.xml @@ -87,7 +87,7 @@ Ammo_MechShell - + Things/Ammo/FuelCell/Large Graphic_StackCount diff --git a/Defs/Ammo/HighCaliber/12.7x108mmSoviet.xml b/Defs/Ammo/HighCaliber/12.7x108mmSoviet.xml index ee22226ca6..d6cbb7c6e0 100644 --- a/Defs/Ammo/HighCaliber/12.7x108mmSoviet.xml +++ b/Defs/Ammo/HighCaliber/12.7x108mmSoviet.xml @@ -43,7 +43,7 @@ Ammo_127x108mm_FMJ - + Things/Ammo/HighCaliber/FMJ Graphic_StackCount @@ -57,7 +57,7 @@ Ammo_127x108mm_AP - + Things/Ammo/HighCaliber/AP Graphic_StackCount @@ -71,7 +71,7 @@ Ammo_127x108mm_Incendiary - + Things/Ammo/HighCaliber/Incendiary Graphic_StackCount @@ -85,7 +85,7 @@ Ammo_127x108mm_HE - + Things/Ammo/HighCaliber/HE Graphic_StackCount @@ -99,7 +99,7 @@ Ammo_127x108mm_Sabot - + Things/Ammo/HighCaliber/Sabot Graphic_StackCount diff --git a/Defs/Ammo/HighCaliber/13.2x92mmSRTuF.xml b/Defs/Ammo/HighCaliber/13.2x92mmSRTuF.xml index 78fd082b4b..3ba50817f2 100644 --- a/Defs/Ammo/HighCaliber/13.2x92mmSRTuF.xml +++ b/Defs/Ammo/HighCaliber/13.2x92mmSRTuF.xml @@ -42,7 +42,7 @@ Ammo_132x92mmSRTuF_FMJ - + Things/Ammo/HighCaliber/FMJ Graphic_StackCount @@ -56,7 +56,7 @@ Ammo_132x92mmSRTuF_AP - + Things/Ammo/HighCaliber/AP Graphic_StackCount @@ -70,7 +70,7 @@ Ammo_132x92mmSRTuF_Incendiary - + Things/Ammo/HighCaliber/Incendiary Graphic_StackCount @@ -84,7 +84,7 @@ Ammo_132x92mmSRTuF_HE - + Things/Ammo/HighCaliber/HE Graphic_StackCount @@ -98,7 +98,7 @@ Ammo_132x92mmSRTuF_Sabot - + Things/Ammo/HighCaliber/Sabot Graphic_StackCount diff --git a/Defs/Ammo/HighCaliber/14.5x114mmSoviet.xml b/Defs/Ammo/HighCaliber/14.5x114mmSoviet.xml index 9889e37f1f..d89338946a 100644 --- a/Defs/Ammo/HighCaliber/14.5x114mmSoviet.xml +++ b/Defs/Ammo/HighCaliber/14.5x114mmSoviet.xml @@ -43,7 +43,7 @@ Ammo_145x114mm_FMJ - + Things/Ammo/HighCaliber/FMJ Graphic_StackCount @@ -57,7 +57,7 @@ Ammo_145x114mm_AP - + Things/Ammo/HighCaliber/AP Graphic_StackCount @@ -71,7 +71,7 @@ Ammo_145x114mm_Incendiary - + Things/Ammo/HighCaliber/Incendiary Graphic_StackCount @@ -85,7 +85,7 @@ Ammo_145x114mm_HE - + Things/Ammo/HighCaliber/HE Graphic_StackCount @@ -99,7 +99,7 @@ Ammo_145x114mm_Sabot - + Things/Ammo/HighCaliber/Sabot Graphic_StackCount diff --git a/Defs/Ammo/HighCaliber/15.2x169mm.xml b/Defs/Ammo/HighCaliber/15.2x169mm.xml index 4d268b8772..b32cd672b5 100644 --- a/Defs/Ammo/HighCaliber/15.2x169mm.xml +++ b/Defs/Ammo/HighCaliber/15.2x169mm.xml @@ -39,7 +39,7 @@ Ammo_152x169mm_Sabot - + Things/Ammo/HighCaliber/Sabot Graphic_StackCount diff --git a/Defs/Ammo/HighCaliber/2-Bore.xml b/Defs/Ammo/HighCaliber/2-Bore.xml index fe45a3c944..448968e54f 100644 --- a/Defs/Ammo/HighCaliber/2-Bore.xml +++ b/Defs/Ammo/HighCaliber/2-Bore.xml @@ -43,7 +43,7 @@ Ammo_2Bore_FMJ - + Things/Ammo/HighCaliber/FMJ Graphic_StackCount @@ -57,7 +57,7 @@ Ammo_2Bore_AP - + Things/Ammo/HighCaliber/AP Graphic_StackCount @@ -71,7 +71,7 @@ Ammo_2Bore_Incendiary - + Things/Ammo/HighCaliber/Incendiary Graphic_StackCount @@ -85,7 +85,7 @@ Ammo_2Bore_HE - + Things/Ammo/HighCaliber/HE Graphic_StackCount @@ -99,7 +99,7 @@ Ammo_2Bore_Sabot - + Things/Ammo/HighCaliber/Sabot Graphic_StackCount diff --git a/Defs/Ammo/HighCaliber/20x102mmNATO.xml b/Defs/Ammo/HighCaliber/20x102mmNATO.xml index 558740a72f..94c78e5a2b 100644 --- a/Defs/Ammo/HighCaliber/20x102mmNATO.xml +++ b/Defs/Ammo/HighCaliber/20x102mmNATO.xml @@ -42,7 +42,7 @@ Ammo_20x102mmNATO_AP - + Things/Ammo/HighCaliber/AP Graphic_StackCount @@ -56,7 +56,7 @@ Ammo_20x102mmNATO_Incendiary - + Things/Ammo/HighCaliber/Incendiary Graphic_StackCount @@ -70,7 +70,7 @@ Ammo_20x102mmNATO_HE - + Things/Ammo/HighCaliber/HE Graphic_StackCount @@ -84,7 +84,7 @@ Ammo_20x102mmNATO_Sabot - + Things/Ammo/HighCaliber/Sabot Graphic_StackCount diff --git a/Defs/Ammo/HighCaliber/20x110mmHispano.xml b/Defs/Ammo/HighCaliber/20x110mmHispano.xml index 78833661e2..c70eef2227 100644 --- a/Defs/Ammo/HighCaliber/20x110mmHispano.xml +++ b/Defs/Ammo/HighCaliber/20x110mmHispano.xml @@ -42,7 +42,7 @@ Ammo_20x110mmHispano_AP - + Things/Ammo/HighCaliber/AP Graphic_StackCount @@ -56,7 +56,7 @@ Ammo_20x110mmHispano_Incendiary - + Things/Ammo/HighCaliber/Incendiary Graphic_StackCount @@ -70,7 +70,7 @@ Ammo_20x110mmHispano_HE - + Things/Ammo/HighCaliber/HE Graphic_StackCount @@ -84,7 +84,7 @@ Ammo_20x110mmHispano_Sabot - + Things/Ammo/HighCaliber/Sabot Graphic_StackCount diff --git a/Defs/Ammo/HighCaliber/20x128mmOerlikon.xml b/Defs/Ammo/HighCaliber/20x128mmOerlikon.xml index 0e4a28beb5..b64779de2a 100644 --- a/Defs/Ammo/HighCaliber/20x128mmOerlikon.xml +++ b/Defs/Ammo/HighCaliber/20x128mmOerlikon.xml @@ -42,7 +42,7 @@ Ammo_20x128mmOerlikon_AP - + Things/Ammo/HighCaliber/AP Graphic_StackCount @@ -56,7 +56,7 @@ Ammo_20x128mmOerlikon_Incendiary - + Things/Ammo/HighCaliber/Incendiary Graphic_StackCount @@ -70,7 +70,7 @@ Ammo_20x128mmOerlikon_HE - + Things/Ammo/HighCaliber/HE Graphic_StackCount @@ -84,7 +84,7 @@ Ammo_20x128mmOerlikon_Sabot - + Things/Ammo/HighCaliber/Sabot Graphic_StackCount diff --git a/Defs/Ammo/HighCaliber/20x138mmB.xml b/Defs/Ammo/HighCaliber/20x138mmB.xml index e0ccda3291..8d7aa0cf7f 100644 --- a/Defs/Ammo/HighCaliber/20x138mmB.xml +++ b/Defs/Ammo/HighCaliber/20x138mmB.xml @@ -42,7 +42,7 @@ Ammo_20x138mmB_AP - + Things/Ammo/HighCaliber/AP Graphic_StackCount @@ -56,7 +56,7 @@ Ammo_20x138mmB_Incendiary - + Things/Ammo/HighCaliber/Incendiary Graphic_StackCount @@ -70,7 +70,7 @@ Ammo_20x138mmB_HE - + Things/Ammo/HighCaliber/HE Graphic_StackCount @@ -84,7 +84,7 @@ Ammo_20x138mmB_Sabot - + Things/Ammo/HighCaliber/Sabot Graphic_StackCount diff --git a/Defs/Ammo/HighCaliber/20x139mm.xml b/Defs/Ammo/HighCaliber/20x139mm.xml index f0b8b605b0..a7a210f70f 100644 --- a/Defs/Ammo/HighCaliber/20x139mm.xml +++ b/Defs/Ammo/HighCaliber/20x139mm.xml @@ -42,7 +42,7 @@ Ammo_20x139mm_AP - + Things/Ammo/HighCaliber/AP Graphic_StackCount @@ -56,7 +56,7 @@ Ammo_20x139mm_Incendiary - + Things/Ammo/HighCaliber/Incendiary Graphic_StackCount @@ -70,7 +70,7 @@ Ammo_20x139mm_HE - + Things/Ammo/HighCaliber/HE Graphic_StackCount @@ -84,7 +84,7 @@ Ammo_20x139mm_Sabot - + Things/Ammo/HighCaliber/Sabot Graphic_StackCount diff --git a/Defs/Ammo/HighCaliber/20x82mmMauser.xml b/Defs/Ammo/HighCaliber/20x82mmMauser.xml index 4813d2dafd..510b6df233 100644 --- a/Defs/Ammo/HighCaliber/20x82mmMauser.xml +++ b/Defs/Ammo/HighCaliber/20x82mmMauser.xml @@ -42,7 +42,7 @@ Ammo_20x82mmMauser_AP - + Things/Ammo/HighCaliber/AP Graphic_StackCount @@ -56,7 +56,7 @@ Ammo_20x82mmMauser_Incendiary - + Things/Ammo/HighCaliber/Incendiary Graphic_StackCount @@ -70,7 +70,7 @@ Ammo_20x82mmMauser_HE - + Things/Ammo/HighCaliber/HE Graphic_StackCount @@ -84,7 +84,7 @@ Ammo_20x82mmMauser_Sabot - + Things/Ammo/HighCaliber/Sabot Graphic_StackCount diff --git a/Defs/Ammo/HighCaliber/20x99mmShVAK.xml b/Defs/Ammo/HighCaliber/20x99mmShVAK.xml index 05fe4b51dc..ca0b295457 100644 --- a/Defs/Ammo/HighCaliber/20x99mmShVAK.xml +++ b/Defs/Ammo/HighCaliber/20x99mmShVAK.xml @@ -42,7 +42,7 @@ Ammo_20x99mmRShVAK_AP - + Things/Ammo/HighCaliber/AP Graphic_StackCount @@ -56,7 +56,7 @@ Ammo_20x99mmRShVAK_Incendiary - + Things/Ammo/HighCaliber/Incendiary Graphic_StackCount @@ -70,7 +70,7 @@ Ammo_20x99mmRShVAK_HE - + Things/Ammo/HighCaliber/HE Graphic_StackCount @@ -84,7 +84,7 @@ Ammo_20x99mmRShVAK_Sabot - + Things/Ammo/HighCaliber/Sabot Graphic_StackCount diff --git a/Defs/Ammo/HighCaliber/23x152mmB.xml b/Defs/Ammo/HighCaliber/23x152mmB.xml index efe1e6592b..f524325852 100644 --- a/Defs/Ammo/HighCaliber/23x152mmB.xml +++ b/Defs/Ammo/HighCaliber/23x152mmB.xml @@ -42,7 +42,7 @@ Ammo_23x152mmB_AP - + Things/Ammo/HighCaliber/AP Graphic_StackCount @@ -56,7 +56,7 @@ Ammo_23x152mmB_Incendiary - + Things/Ammo/HighCaliber/Incendiary Graphic_StackCount @@ -70,7 +70,7 @@ Ammo_23x152mmB_APHE - + Things/Ammo/HighCaliber/HE Graphic_StackCount @@ -84,7 +84,7 @@ Ammo_23x152mmB_Sabot - + Things/Ammo/HighCaliber/Sabot Graphic_StackCount diff --git a/Defs/Ammo/HighCaliber/25x137mmNATO.xml b/Defs/Ammo/HighCaliber/25x137mmNATO.xml index 263b45f4c9..f9e204df0b 100644 --- a/Defs/Ammo/HighCaliber/25x137mmNATO.xml +++ b/Defs/Ammo/HighCaliber/25x137mmNATO.xml @@ -42,7 +42,7 @@ Ammo_25x137mmNATO_AP - + Things/Ammo/HighCaliber/AP Graphic_StackCount @@ -56,7 +56,7 @@ Ammo_25x137mmNATO_Incendiary - + Things/Ammo/HighCaliber/Incendiary Graphic_StackCount @@ -70,7 +70,7 @@ Ammo_25x137mmNATO_HE - + Things/Ammo/HighCaliber/HE Graphic_StackCount @@ -84,7 +84,7 @@ Ammo_25x137mmNATO_Sabot - + Things/Ammo/HighCaliber/Sabot Graphic_StackCount diff --git a/Defs/Ammo/HighCaliber/300WinchesterMagnum.xml b/Defs/Ammo/HighCaliber/300WinchesterMagnum.xml index f14f98c079..c87eca6ccc 100644 --- a/Defs/Ammo/HighCaliber/300WinchesterMagnum.xml +++ b/Defs/Ammo/HighCaliber/300WinchesterMagnum.xml @@ -42,7 +42,7 @@ Ammo_300WinchesterMagnum_FMJ - + Things/Ammo/HighCaliber/FMJ Graphic_StackCount @@ -56,7 +56,7 @@ Ammo_300WinchesterMagnum_AP - + Things/Ammo/HighCaliber/AP Graphic_StackCount @@ -70,7 +70,7 @@ Ammo_300WinchesterMagnum_Incendiary - + Things/Ammo/HighCaliber/Incendiary Graphic_StackCount @@ -84,7 +84,7 @@ Ammo_300WinchesterMagnum_HE - + Things/Ammo/HighCaliber/HE Graphic_StackCount @@ -98,7 +98,7 @@ Ammo_300WinchesterMagnum_Sabot - + Things/Ammo/HighCaliber/Sabot Graphic_StackCount diff --git a/Defs/Ammo/HighCaliber/30x113mmB.xml b/Defs/Ammo/HighCaliber/30x113mmB.xml index 35f1eedf0e..7f908f3bbd 100644 --- a/Defs/Ammo/HighCaliber/30x113mmB.xml +++ b/Defs/Ammo/HighCaliber/30x113mmB.xml @@ -42,7 +42,7 @@ Ammo_30x113mmB_AP - + Things/Ammo/HighCaliber/AP Graphic_StackCount @@ -56,7 +56,7 @@ Ammo_30x113mmB_Incendiary - + Things/Ammo/HighCaliber/Incendiary Graphic_StackCount @@ -70,7 +70,7 @@ Ammo_30x113mmB_HE - + Things/Ammo/HighCaliber/HE Graphic_StackCount @@ -84,7 +84,7 @@ Ammo_30x113mmB_Sabot - + Things/Ammo/HighCaliber/Sabot Graphic_StackCount diff --git a/Defs/Ammo/HighCaliber/30x165mm.xml b/Defs/Ammo/HighCaliber/30x165mm.xml index 6d3dcab81a..edc7b6c72c 100644 --- a/Defs/Ammo/HighCaliber/30x165mm.xml +++ b/Defs/Ammo/HighCaliber/30x165mm.xml @@ -42,7 +42,7 @@ Ammo_30x165mm_AP - + Things/Ammo/HighCaliber/AP Graphic_StackCount @@ -56,7 +56,7 @@ Ammo_30x165mm_Incendiary - + Things/Ammo/HighCaliber/Incendiary Graphic_StackCount @@ -70,7 +70,7 @@ Ammo_30x165mm_HE - + Things/Ammo/HighCaliber/HE Graphic_StackCount @@ -84,7 +84,7 @@ Ammo_30x165mm_Sabot - + Things/Ammo/HighCaliber/Sabot Graphic_StackCount diff --git a/Defs/Ammo/HighCaliber/30x173mmNATO.xml b/Defs/Ammo/HighCaliber/30x173mmNATO.xml index c8bdb54a3f..0d01fd80ec 100644 --- a/Defs/Ammo/HighCaliber/30x173mmNATO.xml +++ b/Defs/Ammo/HighCaliber/30x173mmNATO.xml @@ -42,7 +42,7 @@ Ammo_30x173mmNATO_AP - + Things/Ammo/HighCaliber/AP Graphic_StackCount @@ -56,7 +56,7 @@ Ammo_30x173mmNATO_Incendiary - + Things/Ammo/HighCaliber/Incendiary Graphic_StackCount @@ -70,7 +70,7 @@ Ammo_30x173mmNATO_HE - + Things/Ammo/HighCaliber/HE Graphic_StackCount @@ -84,7 +84,7 @@ Ammo_30x173mmNATO_Sabot - + Things/Ammo/HighCaliber/Sabot Graphic_StackCount diff --git a/Defs/Ammo/HighCaliber/338LapuaMagnum.xml b/Defs/Ammo/HighCaliber/338LapuaMagnum.xml index 24f20fc52c..44d70c8e07 100644 --- a/Defs/Ammo/HighCaliber/338LapuaMagnum.xml +++ b/Defs/Ammo/HighCaliber/338LapuaMagnum.xml @@ -42,7 +42,7 @@ Ammo_338Lapua_FMJ - + Things/Ammo/HighCaliber/FMJ Graphic_StackCount @@ -56,7 +56,7 @@ Ammo_338Lapua_AP - + Things/Ammo/HighCaliber/AP Graphic_StackCount @@ -70,7 +70,7 @@ Ammo_338Lapua_Incendiary - + Things/Ammo/HighCaliber/Incendiary Graphic_StackCount @@ -84,7 +84,7 @@ Ammo_338Lapua_HE - + Things/Ammo/HighCaliber/HE Graphic_StackCount @@ -98,7 +98,7 @@ Ammo_338Lapua_Sabot - + Things/Ammo/HighCaliber/Sabot Graphic_StackCount diff --git a/Defs/Ammo/HighCaliber/338NormaMagnum.xml b/Defs/Ammo/HighCaliber/338NormaMagnum.xml index d038fa646b..4931880f13 100644 --- a/Defs/Ammo/HighCaliber/338NormaMagnum.xml +++ b/Defs/Ammo/HighCaliber/338NormaMagnum.xml @@ -42,7 +42,7 @@ Ammo_338Norma_FMJ - + Things/Ammo/HighCaliber/FMJ Graphic_StackCount @@ -56,7 +56,7 @@ Ammo_338Norma_AP - + Things/Ammo/HighCaliber/AP Graphic_StackCount @@ -70,7 +70,7 @@ Ammo_338Norma_Incendiary - + Things/Ammo/HighCaliber/Incendiary Graphic_StackCount @@ -84,7 +84,7 @@ Ammo_338Norma_HE - + Things/Ammo/HighCaliber/HE Graphic_StackCount @@ -98,7 +98,7 @@ Ammo_338Norma_Sabot - + Things/Ammo/HighCaliber/Sabot Graphic_StackCount diff --git a/Defs/Ammo/HighCaliber/408CheyenneTactical.xml b/Defs/Ammo/HighCaliber/408CheyenneTactical.xml index 227b7b3fa8..88a6625def 100644 --- a/Defs/Ammo/HighCaliber/408CheyenneTactical.xml +++ b/Defs/Ammo/HighCaliber/408CheyenneTactical.xml @@ -42,7 +42,7 @@ Ammo_408CheyenneTactical_FMJ - + Things/Ammo/HighCaliber/FMJ Graphic_StackCount @@ -56,7 +56,7 @@ Ammo_408CheyenneTactical_AP - + Things/Ammo/HighCaliber/AP Graphic_StackCount @@ -70,7 +70,7 @@ Ammo_408CheyenneTactical_Incendiary - + Things/Ammo/HighCaliber/Incendiary Graphic_StackCount @@ -84,7 +84,7 @@ Ammo_408CheyenneTactical_HE - + Things/Ammo/HighCaliber/HE Graphic_StackCount @@ -98,7 +98,7 @@ Ammo_408CheyenneTactical_Sabot - + Things/Ammo/HighCaliber/Sabot Graphic_StackCount diff --git a/Defs/Ammo/HighCaliber/40x311mmR.xml b/Defs/Ammo/HighCaliber/40x311mmR.xml index ce561f263d..b4d3365c81 100644 --- a/Defs/Ammo/HighCaliber/40x311mmR.xml +++ b/Defs/Ammo/HighCaliber/40x311mmR.xml @@ -42,7 +42,7 @@ Ammo_40x311mmR_AP - + Things/Ammo/HighCaliber/Bofors/AP Graphic_StackCount @@ -56,7 +56,7 @@ Ammo_40x311mmR_Incendiary - + Things/Ammo/HighCaliber/Bofors/Incendiary Graphic_StackCount @@ -70,7 +70,7 @@ Ammo_40x311mmR_HE - + Things/Ammo/HighCaliber/Bofors/HE Graphic_StackCount @@ -84,7 +84,7 @@ Ammo_40x311mmR_Sabot - + Things/Ammo/HighCaliber/Bofors/Sabot Graphic_StackCount diff --git a/Defs/Ammo/HighCaliber/470NitroExpress.xml b/Defs/Ammo/HighCaliber/470NitroExpress.xml index 985d79d6e0..b3acb14b0d 100644 --- a/Defs/Ammo/HighCaliber/470NitroExpress.xml +++ b/Defs/Ammo/HighCaliber/470NitroExpress.xml @@ -42,7 +42,7 @@ Ammo_470NitroExpress_FMJ - + Things/Ammo/HighCaliber/FMJ Graphic_StackCount @@ -56,7 +56,7 @@ Ammo_470NitroExpress_AP - + Things/Ammo/HighCaliber/AP Graphic_StackCount @@ -70,7 +70,7 @@ Ammo_470NitroExpress_Incendiary - + Things/Ammo/Rifle/Incendiary Graphic_StackCount @@ -84,7 +84,7 @@ Ammo_470NitroExpress_HE - + Things/Ammo/Rifle/HE Graphic_StackCount @@ -98,7 +98,7 @@ Ammo_470NitroExpress_Sabot - + Things/Ammo/Rifle/Sabot Graphic_StackCount diff --git a/Defs/Ammo/HighCaliber/50BMG.xml b/Defs/Ammo/HighCaliber/50BMG.xml index 09d294d3e8..d6f8b1d665 100644 --- a/Defs/Ammo/HighCaliber/50BMG.xml +++ b/Defs/Ammo/HighCaliber/50BMG.xml @@ -43,7 +43,7 @@ Ammo_50BMG_FMJ - + Things/Ammo/HighCaliber/FMJ Graphic_StackCount @@ -57,7 +57,7 @@ Ammo_50BMG_AP - + Things/Ammo/HighCaliber/AP Graphic_StackCount @@ -71,7 +71,7 @@ Ammo_50BMG_Incendiary - + Things/Ammo/HighCaliber/Incendiary Graphic_StackCount @@ -85,7 +85,7 @@ Ammo_50BMG_HE - + Things/Ammo/HighCaliber/HE Graphic_StackCount @@ -99,7 +99,7 @@ Ammo_50BMG_Sabot - + Things/Ammo/HighCaliber/Sabot Graphic_StackCount diff --git a/Defs/Ammo/HighCaliber/55Boys.xml b/Defs/Ammo/HighCaliber/55Boys.xml index 2d99e2e815..cad36955d1 100644 --- a/Defs/Ammo/HighCaliber/55Boys.xml +++ b/Defs/Ammo/HighCaliber/55Boys.xml @@ -42,7 +42,7 @@ Ammo_55Boys_FMJ - + Things/Ammo/HighCaliber/FMJ Graphic_StackCount @@ -56,7 +56,7 @@ Ammo_55Boys_AP - + Things/Ammo/HighCaliber/AP Graphic_StackCount @@ -70,7 +70,7 @@ Ammo_55Boys_Incendiary - + Things/Ammo/HighCaliber/Incendiary Graphic_StackCount @@ -84,7 +84,7 @@ Ammo_55Boys_HE - + Things/Ammo/HighCaliber/HE Graphic_StackCount @@ -98,7 +98,7 @@ Ammo_55Boys_Sabot - + Things/Ammo/HighCaliber/Sabot Graphic_StackCount diff --git a/Defs/Ammo/HighCaliber/600NitroExpress.xml b/Defs/Ammo/HighCaliber/600NitroExpress.xml index b454764e36..04a310c509 100644 --- a/Defs/Ammo/HighCaliber/600NitroExpress.xml +++ b/Defs/Ammo/HighCaliber/600NitroExpress.xml @@ -42,7 +42,7 @@ Ammo_600NitroExpress_FMJ - + Things/Ammo/HighCaliber/FMJ Graphic_StackCount @@ -56,7 +56,7 @@ Ammo_600NitroExpress_AP - + Things/Ammo/HighCaliber/AP Graphic_StackCount @@ -70,7 +70,7 @@ Ammo_600NitroExpress_Incendiary - + Things/Ammo/HighCaliber/Incendiary Graphic_StackCount @@ -84,7 +84,7 @@ Ammo_600NitroExpress_HE - + Things/Ammo/HighCaliber/HE Graphic_StackCount @@ -98,7 +98,7 @@ Ammo_600NitroExpress_Sabot - + Things/Ammo/HighCaliber/Sabot Graphic_StackCount diff --git a/Defs/Ammo/HighCaliber/7.92x94mm Patronen.xml b/Defs/Ammo/HighCaliber/7.92x94mm Patronen.xml index ecf0bfb2bf..aa5bb3e47d 100644 --- a/Defs/Ammo/HighCaliber/7.92x94mm Patronen.xml +++ b/Defs/Ammo/HighCaliber/7.92x94mm Patronen.xml @@ -43,7 +43,7 @@ Ammo_792x94mmPatronen_FMJ - + Things/Ammo/HighCaliber/FMJ Graphic_StackCount @@ -57,7 +57,7 @@ Ammo_792x94mmPatronen_AP - + Things/Ammo/HighCaliber/AP Graphic_StackCount @@ -71,7 +71,7 @@ Ammo_792x94mmPatronen_Incendiary - + Things/Ammo/HighCaliber/Incendiary Graphic_StackCount @@ -85,7 +85,7 @@ Ammo_792x94mmPatronen_HE - + Things/Ammo/HighCaliber/HE Graphic_StackCount @@ -99,7 +99,7 @@ Ammo_792x94mmPatronen_Sabot - + Things/Ammo/HighCaliber/Sabot Graphic_StackCount diff --git a/Defs/Ammo/HighCaliber/950JDJ.xml b/Defs/Ammo/HighCaliber/950JDJ.xml index 52c9e52c13..9839f8a987 100644 --- a/Defs/Ammo/HighCaliber/950JDJ.xml +++ b/Defs/Ammo/HighCaliber/950JDJ.xml @@ -42,7 +42,7 @@ Ammo_950JDJ_FMJ - + Things/Ammo/HighCaliber/FMJ Graphic_StackCount @@ -56,7 +56,7 @@ Ammo_950JDJ_AP - + Things/Ammo/HighCaliber/AP Graphic_StackCount @@ -70,7 +70,7 @@ Ammo_50JDJ_Incendiary - + Things/Ammo/HighCaliber/Incendiary Graphic_StackCount @@ -84,7 +84,7 @@ Ammo_50JDJ_HE - + Things/Ammo/HighCaliber/HE Graphic_StackCount @@ -98,7 +98,7 @@ Ammo_50JDJ_Sabot - + Things/Ammo/HighCaliber/Sabot Graphic_StackCount diff --git a/Defs/Ammo/Pistols/10mmAuto.xml b/Defs/Ammo/Pistols/10mmAuto.xml index bccf51756b..61eb6b836e 100644 --- a/Defs/Ammo/Pistols/10mmAuto.xml +++ b/Defs/Ammo/Pistols/10mmAuto.xml @@ -40,7 +40,7 @@ Ammo_10mmAuto_FMJ - + Things/Ammo/Pistol/FMJ Graphic_StackCount @@ -54,7 +54,7 @@ Ammo_10mmAuto_AP - + Things/Ammo/Pistol/AP Graphic_StackCount @@ -68,7 +68,7 @@ Ammo_10mmAuto_HP - + Things/Ammo/Pistol/HP Graphic_StackCount diff --git a/Defs/Ammo/Pistols/13mmGyrojet.xml b/Defs/Ammo/Pistols/13mmGyrojet.xml index 44fc34ae70..8aee6fbed0 100644 --- a/Defs/Ammo/Pistols/13mmGyrojet.xml +++ b/Defs/Ammo/Pistols/13mmGyrojet.xml @@ -40,7 +40,7 @@ Ammo_13mmGyrojet_FMJ - + Things/Ammo/Pistol/FMJ Graphic_StackCount @@ -54,7 +54,7 @@ Ammo_13mmGyrojet_AP - + Things/Ammo/Pistol/AP Graphic_StackCount @@ -68,7 +68,7 @@ Ammo_13mmGyrojet_HP - + Things/Ammo/Pistol/HP Graphic_StackCount diff --git a/Defs/Ammo/Pistols/22LR.xml b/Defs/Ammo/Pistols/22LR.xml index 7bedd4b4b0..dc5a7b8173 100644 --- a/Defs/Ammo/Pistols/22LR.xml +++ b/Defs/Ammo/Pistols/22LR.xml @@ -40,7 +40,7 @@ Ammo_22LR_FMJ - + Things/Ammo/Pistol/FMJ Graphic_StackCount @@ -54,7 +54,7 @@ Ammo_22LR_AP - + Things/Ammo/Pistol/AP Graphic_StackCount @@ -68,7 +68,7 @@ Ammo_22LR_HP - + Things/Ammo/Pistol/HP Graphic_StackCount diff --git a/Defs/Ammo/Pistols/22Short.xml b/Defs/Ammo/Pistols/22Short.xml index 45c2194147..ad6440d69e 100644 --- a/Defs/Ammo/Pistols/22Short.xml +++ b/Defs/Ammo/Pistols/22Short.xml @@ -40,7 +40,7 @@ Ammo_22Short_FMJ - + Things/Ammo/Pistol/FMJ Graphic_StackCount @@ -54,7 +54,7 @@ Ammo_22Short_AP - + Things/Ammo/Pistol/AP Graphic_StackCount @@ -68,7 +68,7 @@ Ammo_22Short_HP - + Things/Ammo/Pistol/HP Graphic_StackCount diff --git a/Defs/Ammo/Pistols/25ACP.xml b/Defs/Ammo/Pistols/25ACP.xml index 97a3f64833..9d17bfba88 100644 --- a/Defs/Ammo/Pistols/25ACP.xml +++ b/Defs/Ammo/Pistols/25ACP.xml @@ -40,7 +40,7 @@ Ammo_25ACP_FMJ - + Things/Ammo/Pistol/FMJ Graphic_StackCount @@ -54,7 +54,7 @@ Ammo_25ACP_AP - + Things/Ammo/Pistol/AP Graphic_StackCount @@ -68,7 +68,7 @@ Ammo_25ACP_HP - + Things/Ammo/Pistol/HP Graphic_StackCount diff --git a/Defs/Ammo/Pistols/32ACP.xml b/Defs/Ammo/Pistols/32ACP.xml index a0e5b841b8..540f6e1b87 100644 --- a/Defs/Ammo/Pistols/32ACP.xml +++ b/Defs/Ammo/Pistols/32ACP.xml @@ -40,7 +40,7 @@ Ammo_32ACP_FMJ - + Things/Ammo/Pistol/FMJ Graphic_StackCount @@ -54,7 +54,7 @@ Ammo_32ACP_AP - + Things/Ammo/Pistol/AP Graphic_StackCount @@ -67,7 +67,7 @@ Ammo_32ACP_HP - + Things/Ammo/Pistol/HP Graphic_StackCount diff --git a/Defs/Ammo/Pistols/357Magnum.xml b/Defs/Ammo/Pistols/357Magnum.xml index 99bc94a18a..1ea6eb2ea4 100644 --- a/Defs/Ammo/Pistols/357Magnum.xml +++ b/Defs/Ammo/Pistols/357Magnum.xml @@ -54,7 +54,7 @@ Ammo_357Magnum_FMJ - + Things/Ammo/Revolver/FMJ Graphic_StackCount @@ -68,7 +68,7 @@ Ammo_357Magnum_AP - + Things/Ammo/Revolver/AP Graphic_StackCount @@ -82,7 +82,7 @@ Ammo_357Magnum_HP - + Things/Ammo/Revolver/HP Graphic_StackCount diff --git a/Defs/Ammo/Pistols/357SIG.xml b/Defs/Ammo/Pistols/357SIG.xml index b835e38471..355453512b 100644 --- a/Defs/Ammo/Pistols/357SIG.xml +++ b/Defs/Ammo/Pistols/357SIG.xml @@ -40,7 +40,7 @@ Ammo_357SIG_FMJ - + Things/Ammo/Pistol/FMJ Graphic_StackCount @@ -54,7 +54,7 @@ Ammo_357SIG_AP - + Things/Ammo/Pistol/AP Graphic_StackCount @@ -68,7 +68,7 @@ Ammo_357SIG_HP - + Things/Ammo/Pistol/HP Graphic_StackCount diff --git a/Defs/Ammo/Pistols/380ACP.xml b/Defs/Ammo/Pistols/380ACP.xml index 74368e339c..5943f31550 100644 --- a/Defs/Ammo/Pistols/380ACP.xml +++ b/Defs/Ammo/Pistols/380ACP.xml @@ -40,7 +40,7 @@ Ammo_380ACP_FMJ - + Things/Ammo/Pistol/FMJ Graphic_StackCount @@ -54,7 +54,7 @@ Ammo_380ACP_AP - + Things/Ammo/Pistol/AP Graphic_StackCount @@ -68,7 +68,7 @@ Ammo_380ACP_HP - + Things/Ammo/Pistol/HP Graphic_StackCount diff --git a/Defs/Ammo/Pistols/38ACP.xml b/Defs/Ammo/Pistols/38ACP.xml index 9a466b2e3b..cf5108f5ec 100644 --- a/Defs/Ammo/Pistols/38ACP.xml +++ b/Defs/Ammo/Pistols/38ACP.xml @@ -40,7 +40,7 @@ Ammo_38ACP_FMJ - + Things/Ammo/Pistol/FMJ Graphic_StackCount @@ -54,7 +54,7 @@ Ammo_38ACP_AP - + Things/Ammo/Pistol/AP Graphic_StackCount @@ -68,7 +68,7 @@ Ammo_38ACP_HP - + Things/Ammo/Pistol/HP Graphic_StackCount diff --git a/Defs/Ammo/Pistols/38SW.xml b/Defs/Ammo/Pistols/38SW.xml index 8658b23f09..efba3c8ce8 100644 --- a/Defs/Ammo/Pistols/38SW.xml +++ b/Defs/Ammo/Pistols/38SW.xml @@ -40,7 +40,7 @@ Ammo_38SW_FMJ - + Things/Ammo/Rifle/FMJ Graphic_StackCount @@ -54,7 +54,7 @@ Ammo_38SW_AP - + Things/Ammo/Pistol/AP Graphic_StackCount @@ -68,7 +68,7 @@ Ammo_38SW_HP - + Things/Ammo/Pistol/HP Graphic_StackCount diff --git a/Defs/Ammo/Pistols/38Special.xml b/Defs/Ammo/Pistols/38Special.xml index 430321b04b..ed4454a45d 100644 --- a/Defs/Ammo/Pistols/38Special.xml +++ b/Defs/Ammo/Pistols/38Special.xml @@ -40,7 +40,7 @@ Ammo_38Special_FMJ - + Things/Ammo/Revolver/FMJ Graphic_StackCount @@ -54,7 +54,7 @@ Ammo_38Special_AP - + Things/Ammo/Revolver/AP Graphic_StackCount @@ -68,7 +68,7 @@ Ammo_38Special_HP - + Things/Ammo/Revolver/HP Graphic_StackCount diff --git a/Defs/Ammo/Pistols/38Super.xml b/Defs/Ammo/Pistols/38Super.xml index 871e83e67f..d1d551521a 100644 --- a/Defs/Ammo/Pistols/38Super.xml +++ b/Defs/Ammo/Pistols/38Super.xml @@ -40,7 +40,7 @@ Ammo_38Super_FMJ - + Things/Ammo/Pistol/FMJ Graphic_StackCount @@ -54,7 +54,7 @@ Ammo_38Super_AP - + Things/Ammo/Pistol/AP Graphic_StackCount @@ -68,7 +68,7 @@ Ammo_38Super_HP - + Things/Ammo/Pistol/HP Graphic_StackCount diff --git a/Defs/Ammo/Pistols/40SW.xml b/Defs/Ammo/Pistols/40SW.xml index 4977f22396..dc3d7eab53 100644 --- a/Defs/Ammo/Pistols/40SW.xml +++ b/Defs/Ammo/Pistols/40SW.xml @@ -40,7 +40,7 @@ Ammo_40SW_FMJ - + Things/Ammo/Pistol/FMJ Graphic_StackCount @@ -54,7 +54,7 @@ Ammo_40SW_AP - + Things/Ammo/Pistol/AP Graphic_StackCount @@ -68,7 +68,7 @@ Ammo_40SW_HP - + Things/Ammo/Pistol/HP Graphic_StackCount diff --git a/Defs/Ammo/Pistols/41Rimfire.xml b/Defs/Ammo/Pistols/41Rimfire.xml index 3b324eb8b6..bacf41557a 100644 --- a/Defs/Ammo/Pistols/41Rimfire.xml +++ b/Defs/Ammo/Pistols/41Rimfire.xml @@ -40,7 +40,7 @@ Ammo_41Rimfire_FMJ - + Things/Ammo/Pistol/FMJ Graphic_StackCount @@ -54,7 +54,7 @@ Ammo_41Rimfire_AP - + Things/Ammo/Pistol/AP Graphic_StackCount @@ -68,7 +68,7 @@ Ammo_41Rimfire_HP - + Things/Ammo/Pistol/HP Graphic_StackCount diff --git a/Defs/Ammo/Pistols/44Magnum.xml b/Defs/Ammo/Pistols/44Magnum.xml index 638805067a..c1c2049509 100644 --- a/Defs/Ammo/Pistols/44Magnum.xml +++ b/Defs/Ammo/Pistols/44Magnum.xml @@ -65,7 +65,7 @@ Ammo_44Magnum_FMJ - + Things/Ammo/Revolver/FMJ Graphic_StackCount @@ -79,7 +79,7 @@ Ammo_44Magnum_AP - + Things/Ammo/Revolver/AP Graphic_StackCount @@ -93,7 +93,7 @@ Ammo_44Magnum_HP - + Things/Ammo/Revolver/HP Graphic_StackCount diff --git a/Defs/Ammo/Pistols/44SWSpecial.xml b/Defs/Ammo/Pistols/44SWSpecial.xml index 9f9fdf38c4..8e37413a88 100644 --- a/Defs/Ammo/Pistols/44SWSpecial.xml +++ b/Defs/Ammo/Pistols/44SWSpecial.xml @@ -40,7 +40,7 @@ Ammo_44SWSpecial_FMJ - + Things/Ammo/Revolver/FMJ Graphic_StackCount @@ -54,7 +54,7 @@ Ammo_44SWSpecial_AP - + Things/Ammo/Revolver/AP Graphic_StackCount @@ -68,7 +68,7 @@ Ammo_44SWSpecial_HP - + Things/Ammo/Revolver/HP Graphic_StackCount diff --git a/Defs/Ammo/Pistols/454Casull.xml b/Defs/Ammo/Pistols/454Casull.xml index 1b9c655b4a..8f83f965ac 100644 --- a/Defs/Ammo/Pistols/454Casull.xml +++ b/Defs/Ammo/Pistols/454Casull.xml @@ -61,7 +61,7 @@ Ammo_454Casull_FMJ - + Things/Ammo/Revolver/FMJ Graphic_StackCount @@ -75,7 +75,7 @@ Ammo_454Casull_AP - + Things/Ammo/Revolver/AP Graphic_StackCount @@ -89,7 +89,7 @@ Ammo_454Casull_HP - + Things/Ammo/Revolver/HP Graphic_StackCount diff --git a/Defs/Ammo/Pistols/455Webley.xml b/Defs/Ammo/Pistols/455Webley.xml index 652187eb5e..0d083d3bc8 100644 --- a/Defs/Ammo/Pistols/455Webley.xml +++ b/Defs/Ammo/Pistols/455Webley.xml @@ -40,7 +40,7 @@ Ammo_455Webley_FMJ - + Things/Ammo/Revolver/FMJ Graphic_StackCount @@ -54,7 +54,7 @@ Ammo_455Webley_AP - + Things/Ammo/Revolver/AP Graphic_StackCount @@ -68,7 +68,7 @@ Ammo_455Webley_HP - + Things/Ammo/Revolver/HP Graphic_StackCount diff --git a/Defs/Ammo/Pistols/45ACP.xml b/Defs/Ammo/Pistols/45ACP.xml index 2c48645564..c6f54f0416 100644 --- a/Defs/Ammo/Pistols/45ACP.xml +++ b/Defs/Ammo/Pistols/45ACP.xml @@ -55,7 +55,7 @@ Ammo_45ACP_FMJ - + Things/Ammo/Pistol/FMJ Graphic_StackCount @@ -69,7 +69,7 @@ Ammo_45ACP_AP - + Things/Ammo/Pistol/AP Graphic_StackCount @@ -83,7 +83,7 @@ Ammo_45ACP_HP - + Things/Ammo/Pistol/HP Graphic_StackCount diff --git a/Defs/Ammo/Pistols/45Colt.xml b/Defs/Ammo/Pistols/45Colt.xml index be49257f92..37c012bf9f 100644 --- a/Defs/Ammo/Pistols/45Colt.xml +++ b/Defs/Ammo/Pistols/45Colt.xml @@ -81,7 +81,7 @@ Ammo_45Colt_FMJ - + Things/Ammo/Revolver/FMJ Graphic_StackCount @@ -95,7 +95,7 @@ Ammo_45Colt_AP - + Things/Ammo/Revolver/AP Graphic_StackCount @@ -109,7 +109,7 @@ Ammo_45Colt_HP - + Things/Ammo/Revolver/HP Graphic_StackCount diff --git a/Defs/Ammo/Pistols/45Schofield.xml b/Defs/Ammo/Pistols/45Schofield.xml index 4241891622..8f3fcfeb08 100644 --- a/Defs/Ammo/Pistols/45Schofield.xml +++ b/Defs/Ammo/Pistols/45Schofield.xml @@ -40,7 +40,7 @@ Ammo_45Schofield_FMJ - + Things/Ammo/Revolver/FMJ Graphic_StackCount @@ -54,7 +54,7 @@ Ammo_45Schofield_AP - + Things/Ammo/Revolver/AP Graphic_StackCount @@ -68,7 +68,7 @@ Ammo_45Schofield_HP - + Things/Ammo/Revolver/HP Graphic_StackCount diff --git a/Defs/Ammo/Pistols/460SWMagnum.xml b/Defs/Ammo/Pistols/460SWMagnum.xml index f30205fc88..5252fc9036 100644 --- a/Defs/Ammo/Pistols/460SWMagnum.xml +++ b/Defs/Ammo/Pistols/460SWMagnum.xml @@ -57,7 +57,7 @@ Ammo_460SWMagnum_FMJ - + Things/Ammo/Revolver/FMJ Graphic_StackCount @@ -71,7 +71,7 @@ Ammo_460SWMagnum_AP - + Things/Ammo/Revolver/AP Graphic_StackCount @@ -85,7 +85,7 @@ Ammo_460SWMagnum_HP - + Things/Ammo/Revolver/HP Graphic_StackCount diff --git a/Defs/Ammo/Pistols/46x30mm.xml b/Defs/Ammo/Pistols/46x30mm.xml index b880701a40..0fc2069c08 100644 --- a/Defs/Ammo/Pistols/46x30mm.xml +++ b/Defs/Ammo/Pistols/46x30mm.xml @@ -40,7 +40,7 @@ Ammo_46x30mm_FMJ - + Things/Ammo/Pistol/FMJ Graphic_StackCount @@ -54,7 +54,7 @@ Ammo_46x30mm_AP - + Things/Ammo/Pistol/AP Graphic_StackCount @@ -68,7 +68,7 @@ Ammo_46x30mm_HP - + Things/Ammo/Pistol/HP Graphic_StackCount diff --git a/Defs/Ammo/Pistols/500SWMagnum.xml b/Defs/Ammo/Pistols/500SWMagnum.xml index 08950ccf51..d5e410fb9a 100644 --- a/Defs/Ammo/Pistols/500SWMagnum.xml +++ b/Defs/Ammo/Pistols/500SWMagnum.xml @@ -40,7 +40,7 @@ Ammo_500SWMagnum_FMJ - + Things/Ammo/Revolver/FMJ Graphic_StackCount @@ -54,7 +54,7 @@ Ammo_500SWMagnum_AP - + Things/Ammo/Revolver/AP Graphic_StackCount @@ -68,7 +68,7 @@ Ammo_500SWMagnum_HP - + Things/Ammo/Revolver/HP Graphic_StackCount diff --git a/Defs/Ammo/Pistols/50AE.xml b/Defs/Ammo/Pistols/50AE.xml index 6f0c195071..22f9e57a21 100644 --- a/Defs/Ammo/Pistols/50AE.xml +++ b/Defs/Ammo/Pistols/50AE.xml @@ -40,7 +40,7 @@ Ammo_50AE_FMJ - + Things/Ammo/Pistol/FMJ Graphic_StackCount @@ -54,7 +54,7 @@ Ammo_50AE_AP - + Things/Ammo/Pistol/AP Graphic_StackCount @@ -68,7 +68,7 @@ Ammo_50AE_HP - + Things/Ammo/Pistol/HP Graphic_StackCount diff --git a/Defs/Ammo/Pistols/58x21mmDAP92.xml b/Defs/Ammo/Pistols/58x21mmDAP92.xml index f4adbe628e..0b87b67537 100644 --- a/Defs/Ammo/Pistols/58x21mmDAP92.xml +++ b/Defs/Ammo/Pistols/58x21mmDAP92.xml @@ -40,7 +40,7 @@ Ammo_58x21mmDAP92_FMJ - + Things/Ammo/Pistol/FMJ Graphic_StackCount @@ -54,7 +54,7 @@ Ammo_58x21mmDAP92_AP - + Things/Ammo/Pistol/AP Graphic_StackCount @@ -68,7 +68,7 @@ Ammo_58x21mmDAP92_HP - + Things/Ammo/Pistol/HP Graphic_StackCount diff --git a/Defs/Ammo/Pistols/7.5FK.xml b/Defs/Ammo/Pistols/7.5FK.xml index 30be301576..1f1bd353ae 100644 --- a/Defs/Ammo/Pistols/7.5FK.xml +++ b/Defs/Ammo/Pistols/7.5FK.xml @@ -40,7 +40,7 @@ Ammo_75FK_FMJ - + Things/Ammo/Pistol/FMJ Graphic_StackCount @@ -54,7 +54,7 @@ Ammo_75FK_AP - + Things/Ammo/Pistol/AP Graphic_StackCount @@ -68,7 +68,7 @@ Ammo_75FK_HP - + Things/Ammo/Pistol/HP Graphic_StackCount diff --git a/Defs/Ammo/Pistols/762x25mmTokarev.xml b/Defs/Ammo/Pistols/762x25mmTokarev.xml index 677172f995..c794d8490c 100644 --- a/Defs/Ammo/Pistols/762x25mmTokarev.xml +++ b/Defs/Ammo/Pistols/762x25mmTokarev.xml @@ -40,7 +40,7 @@ Ammo_762x25mmTokarev_FMJ - + Things/Ammo/Pistol/FMJ Graphic_StackCount @@ -54,7 +54,7 @@ Ammo_762x25mmTokarev_AP - + Things/Ammo/Pistol/AP Graphic_StackCount @@ -68,7 +68,7 @@ Ammo_762x25mmTokarev_HP - + Things/Ammo/Pistol/HP Graphic_StackCount diff --git a/Defs/Ammo/Pistols/762x38mmR.xml b/Defs/Ammo/Pistols/762x38mmR.xml index ac810187b5..a265de74a3 100644 --- a/Defs/Ammo/Pistols/762x38mmR.xml +++ b/Defs/Ammo/Pistols/762x38mmR.xml @@ -40,7 +40,7 @@ Ammo_762x38mmR_FMJ - + Things/Ammo/Pistol/FMJ Graphic_StackCount @@ -54,7 +54,7 @@ Ammo_762x38mmR_AP - + Things/Ammo/Pistol/AP Graphic_StackCount @@ -68,7 +68,7 @@ Ammo_762x38mmR_HP - + Things/Ammo/Pistol/HP Graphic_StackCount diff --git a/Defs/Ammo/Pistols/763x25mmMauser.xml b/Defs/Ammo/Pistols/763x25mmMauser.xml index b07cd9c5bf..9a7f770d6a 100644 --- a/Defs/Ammo/Pistols/763x25mmMauser.xml +++ b/Defs/Ammo/Pistols/763x25mmMauser.xml @@ -40,7 +40,7 @@ Ammo_763x25mmMauser_FMJ - + Things/Ammo/Pistol/FMJ Graphic_StackCount @@ -54,7 +54,7 @@ Ammo_763x25mmMauser_AP - + Things/Ammo/Pistol/AP Graphic_StackCount @@ -68,7 +68,7 @@ Ammo_763x25mmMauser_HP - + Things/Ammo/Pistol/HP Graphic_StackCount diff --git a/Defs/Ammo/Pistols/765x20mmLongue.xml b/Defs/Ammo/Pistols/765x20mmLongue.xml index 72b0000099..33be3b3f86 100644 --- a/Defs/Ammo/Pistols/765x20mmLongue.xml +++ b/Defs/Ammo/Pistols/765x20mmLongue.xml @@ -40,7 +40,7 @@ Ammo_765x20mmLongue_FMJ - + Things/Ammo/Pistol/FMJ Graphic_StackCount @@ -54,7 +54,7 @@ Ammo_765x20mmLongue_AP - + Things/Ammo/Pistol/AP Graphic_StackCount @@ -68,7 +68,7 @@ Ammo_765x20mmLongue_HP - + Things/Ammo/Pistol/HP Graphic_StackCount diff --git a/Defs/Ammo/Pistols/8x22mmNambu.xml b/Defs/Ammo/Pistols/8x22mmNambu.xml index 38583835c9..705c4d8c6a 100644 --- a/Defs/Ammo/Pistols/8x22mmNambu.xml +++ b/Defs/Ammo/Pistols/8x22mmNambu.xml @@ -40,7 +40,7 @@ Ammo_8x22mmNambu_FMJ - + Things/Ammo/Rifle/FMJ Graphic_StackCount @@ -54,7 +54,7 @@ Ammo_8x22mmNambu_AP - + Things/Ammo/Pistol/AP Graphic_StackCount @@ -68,7 +68,7 @@ Ammo_8x22mmNambu_HP - + Things/Ammo/Pistol/HP Graphic_StackCount diff --git a/Defs/Ammo/Pistols/9x18mmMakarov.xml b/Defs/Ammo/Pistols/9x18mmMakarov.xml index cd62509333..41e4337be2 100644 --- a/Defs/Ammo/Pistols/9x18mmMakarov.xml +++ b/Defs/Ammo/Pistols/9x18mmMakarov.xml @@ -40,7 +40,7 @@ Ammo_9x18mmMakarov_FMJ - + Things/Ammo/Pistol/FMJ Graphic_StackCount @@ -54,7 +54,7 @@ Ammo_9x18mmMakarov_AP - + Things/Ammo/Pistol/AP Graphic_StackCount @@ -68,7 +68,7 @@ Ammo_9x18mmMakarov_HP - + Things/Ammo/Pistol/HP Graphic_StackCount diff --git a/Defs/Ammo/Pistols/9x19mmPara.xml b/Defs/Ammo/Pistols/9x19mmPara.xml index 7767ffa5e7..90cc364f6a 100644 --- a/Defs/Ammo/Pistols/9x19mmPara.xml +++ b/Defs/Ammo/Pistols/9x19mmPara.xml @@ -51,7 +51,7 @@ Ammo_9x19mmPara_FMJ - + Things/Ammo/Pistol/FMJ Graphic_StackCount @@ -65,7 +65,7 @@ Ammo_9x19mmPara_AP - + Things/Ammo/Pistol/AP Graphic_StackCount @@ -79,7 +79,7 @@ Ammo_9x19mmPara_HP - + Things/Ammo/Pistol/HP Graphic_StackCount diff --git a/Defs/Ammo/Pistols/9x21mmGyurza.xml b/Defs/Ammo/Pistols/9x21mmGyurza.xml index 0ec4f8dae5..8893c354db 100644 --- a/Defs/Ammo/Pistols/9x21mmGyurza.xml +++ b/Defs/Ammo/Pistols/9x21mmGyurza.xml @@ -40,7 +40,7 @@ Ammo_9x21mmGyurza_FMJ - + Things/Ammo/Pistol/FMJ Graphic_StackCount @@ -54,7 +54,7 @@ Ammo_9x21mmGyurza_AP - + Things/Ammo/Pistol/AP Graphic_StackCount @@ -68,7 +68,7 @@ Ammo_9x21mmGyurza_HP - + Things/Ammo/Pistol/HP Graphic_StackCount diff --git a/Defs/Ammo/Pistols/FN57x28mm.xml b/Defs/Ammo/Pistols/FN57x28mm.xml index 107653cfde..ebc4ecf304 100644 --- a/Defs/Ammo/Pistols/FN57x28mm.xml +++ b/Defs/Ammo/Pistols/FN57x28mm.xml @@ -40,7 +40,7 @@ Ammo_FN57x28mm_FMJ - + Things/Ammo/Pistol/FMJ Graphic_StackCount @@ -54,7 +54,7 @@ Ammo_FN57x28mm_AP - + Things/Ammo/Pistol/AP Graphic_StackCount @@ -68,7 +68,7 @@ Ammo_FN57x28mm_HP - + Things/Ammo/Pistol/HP Graphic_StackCount diff --git a/Defs/Ammo/Rifle/127x55mm.xml b/Defs/Ammo/Rifle/127x55mm.xml index ac27ca5067..76d1c74f1e 100644 --- a/Defs/Ammo/Rifle/127x55mm.xml +++ b/Defs/Ammo/Rifle/127x55mm.xml @@ -44,7 +44,7 @@ Ammo_127x55mm_FMJ - + Things/Ammo/Rifle/SovietLarge/FMJ Graphic_StackCount @@ -58,7 +58,7 @@ Ammo_127x55mm_AP - + Things/Ammo/Rifle/SovietLarge/AP Graphic_StackCount @@ -72,7 +72,7 @@ Ammo_127x55mm_HP - + Things/Ammo/Rifle/SovietLarge/HP Graphic_StackCount @@ -86,7 +86,7 @@ Ammo_127x55mm_Incendiary - + Things/Ammo/Rifle/SovietLarge/Incendiary Graphic_StackCount @@ -100,7 +100,7 @@ Ammo_127x55mm_HE - + Things/Ammo/Rifle/SovietLarge/HE Graphic_StackCount @@ -114,7 +114,7 @@ Ammo_127x55mm_Sabot - + Things/Ammo/Rifle/SovietLarge/Sabot Graphic_StackCount diff --git a/Defs/Ammo/Rifle/17HMR.xml b/Defs/Ammo/Rifle/17HMR.xml index a7559f1885..7a18ad6e36 100644 --- a/Defs/Ammo/Rifle/17HMR.xml +++ b/Defs/Ammo/Rifle/17HMR.xml @@ -40,7 +40,7 @@ Ammo_17HMR_FMJ - + Things/Ammo/Pistol/FMJ Graphic_StackCount @@ -54,7 +54,7 @@ Ammo_17HMR_AP - + Things/Ammo/Pistol/AP Graphic_StackCount @@ -68,7 +68,7 @@ Ammo_17HMR_HP - + Things/Ammo/Pistol/HP Graphic_StackCount diff --git a/Defs/Ammo/Rifle/22Hornet.xml b/Defs/Ammo/Rifle/22Hornet.xml index ed8a6dce22..a2ab19ab68 100644 --- a/Defs/Ammo/Rifle/22Hornet.xml +++ b/Defs/Ammo/Rifle/22Hornet.xml @@ -40,7 +40,7 @@ Ammo_22Hornet_FMJ - + Things/Ammo/Pistol/FMJ Graphic_StackCount @@ -54,7 +54,7 @@ Ammo_22Hornet_AP - + Things/Ammo/Pistol/AP Graphic_StackCount @@ -68,7 +68,7 @@ Ammo_22Hornet_HP - + Things/Ammo/Pistol/HP Graphic_StackCount diff --git a/Defs/Ammo/Rifle/22WMR.xml b/Defs/Ammo/Rifle/22WMR.xml index b3ddfb3a0f..c34275368c 100644 --- a/Defs/Ammo/Rifle/22WMR.xml +++ b/Defs/Ammo/Rifle/22WMR.xml @@ -40,7 +40,7 @@ Ammo_22WMR_FMJ - + Things/Ammo/Pistol/FMJ Graphic_StackCount @@ -54,7 +54,7 @@ Ammo_22WMR_AP - + Things/Ammo/Pistol/AP Graphic_StackCount @@ -68,7 +68,7 @@ Ammo_22WMR_HP - + Things/Ammo/Pistol/HP Graphic_StackCount diff --git a/Defs/Ammo/Rifle/243Winchester.xml b/Defs/Ammo/Rifle/243Winchester.xml index f08aea599b..23e71ab318 100644 --- a/Defs/Ammo/Rifle/243Winchester.xml +++ b/Defs/Ammo/Rifle/243Winchester.xml @@ -43,7 +43,7 @@ Ammo_243Winchester_FMJ - + Things/Ammo/Rifle/Battlerifle/FMJ Graphic_StackCount @@ -57,7 +57,7 @@ Ammo_243Winchester_AP - + Things/Ammo/Rifle/Battlerifle/AP Graphic_StackCount @@ -71,7 +71,7 @@ Ammo_243Winchester_HP - + Things/Ammo/Rifle/Battlerifle/HP Graphic_StackCount @@ -85,7 +85,7 @@ Ammo_243Winchester_Incendiary - + Things/Ammo/Rifle/Battlerifle/Incendiary Graphic_StackCount @@ -99,7 +99,7 @@ Ammo_243Winchester_HE - + Things/Ammo/Rifle/Battlerifle/HE Graphic_StackCount @@ -113,7 +113,7 @@ Ammo_243Winchester_Sabot - + Things/Ammo/Rifle/Battlerifle/Sabot Graphic_StackCount diff --git a/Defs/Ammo/Rifle/277Fury.xml b/Defs/Ammo/Rifle/277Fury.xml index 8c13ecc47e..d559c57301 100644 --- a/Defs/Ammo/Rifle/277Fury.xml +++ b/Defs/Ammo/Rifle/277Fury.xml @@ -43,7 +43,7 @@ Ammo_277Fury_FMJ - + Things/Ammo/Rifle/Battlerifle/FMJ Graphic_StackCount @@ -57,7 +57,7 @@ Ammo_277Fury_AP - + Things/Ammo/Rifle/Battlerifle/AP Graphic_StackCount @@ -71,7 +71,7 @@ Ammo_277Fury_HP - + Things/Ammo/Rifle/Battlerifle/HP Graphic_StackCount @@ -85,7 +85,7 @@ Ammo_277Fury_Incendiary - + Things/Ammo/Rifle/Battlerifle/Incendiary Graphic_StackCount @@ -99,7 +99,7 @@ Ammo_277Fury_HE - + Things/Ammo/Rifle/Battlerifle/HE Graphic_StackCount @@ -113,7 +113,7 @@ Ammo_277Fury_Sabot - + Things/Ammo/Rifle/Battlerifle/Sabot Graphic_StackCount diff --git a/Defs/Ammo/Rifle/280British.xml b/Defs/Ammo/Rifle/280British.xml index 23ac34c83b..c40c32f46d 100644 --- a/Defs/Ammo/Rifle/280British.xml +++ b/Defs/Ammo/Rifle/280British.xml @@ -43,7 +43,7 @@ Ammo_280British_FMJ - + Things/Ammo/Rifle/Battlerifle/FMJ Graphic_StackCount @@ -57,7 +57,7 @@ Ammo_280British_AP - + Things/Ammo/Rifle/Battlerifle/AP Graphic_StackCount @@ -71,7 +71,7 @@ Ammo_280British_HP - + Things/Ammo/Rifle/Battlerifle/HP Graphic_StackCount @@ -85,7 +85,7 @@ Ammo_280British_Incendiary - + Things/Ammo/Rifle/Battlerifle/Incendiary Graphic_StackCount @@ -99,7 +99,7 @@ Ammo_280British_HE - + Things/Ammo/Rifle/Battlerifle/HE Graphic_StackCount @@ -113,7 +113,7 @@ Ammo_280British_Sabot - + Things/Ammo/Rifle/Battlerifle/Sabot Graphic_StackCount diff --git a/Defs/Ammo/Rifle/30-30Winchester.xml b/Defs/Ammo/Rifle/30-30Winchester.xml index 607fd95689..0bdf9b0b19 100644 --- a/Defs/Ammo/Rifle/30-30Winchester.xml +++ b/Defs/Ammo/Rifle/30-30Winchester.xml @@ -43,7 +43,7 @@ Ammo_3030Winchester_FMJ - + Things/Ammo/Rifle/Clip/FMJ Graphic_StackCount @@ -57,7 +57,7 @@ Ammo_3030Winchester_AP - + Things/Ammo/Rifle/Clip/AP Graphic_StackCount @@ -71,7 +71,7 @@ Ammo_3030Winchester_HP - + Things/Ammo/Rifle/Clip/HP Graphic_StackCount @@ -85,7 +85,7 @@ Ammo_3030Winchester_Incendiary - + Things/Ammo/Rifle/Clip/Incendiary Graphic_StackCount @@ -99,7 +99,7 @@ Ammo_3030Winchester_HE - + Things/Ammo/Rifle/Clip/HE Graphic_StackCount @@ -113,7 +113,7 @@ Ammo_3030Winchester_Sabot - + Things/Ammo/Rifle/Clip/Sabot Graphic_StackCount diff --git a/Defs/Ammo/Rifle/3006Springfield.xml b/Defs/Ammo/Rifle/3006Springfield.xml index 5ac45b848a..3b1ba1188c 100644 --- a/Defs/Ammo/Rifle/3006Springfield.xml +++ b/Defs/Ammo/Rifle/3006Springfield.xml @@ -43,7 +43,7 @@ Ammo_3006Springfield_FMJ - + Things/Ammo/Rifle/Battlerifle/FMJ Graphic_StackCount @@ -57,7 +57,7 @@ Ammo_3006Springfield_AP - + Things/Ammo/Rifle/Battlerifle/AP Graphic_StackCount @@ -71,7 +71,7 @@ Ammo_3006Springfield_HP - + Things/Ammo/Rifle/Battlerifle/HP Graphic_StackCount @@ -85,7 +85,7 @@ Ammo_3006Springfield_Incendiary - + Things/Ammo/Rifle/Battlerifle/Incendiary Graphic_StackCount @@ -99,7 +99,7 @@ Ammo_3006Springfield_HE - + Things/Ammo/Rifle/Battlerifle/HE Graphic_StackCount @@ -113,7 +113,7 @@ Ammo_3006Springfield_Sabot - + Things/Ammo/Rifle/Battlerifle/Sabot Graphic_StackCount diff --git a/Defs/Ammo/Rifle/300AACBlackout.xml b/Defs/Ammo/Rifle/300AACBlackout.xml index 60dd2f6f97..a2ac2c1bcf 100644 --- a/Defs/Ammo/Rifle/300AACBlackout.xml +++ b/Defs/Ammo/Rifle/300AACBlackout.xml @@ -43,7 +43,7 @@ Ammo_300AACBlackout_FMJ - + Things/Ammo/Rifle/FMJ Graphic_StackCount @@ -57,7 +57,7 @@ Ammo_300AACBlackout_AP - + Things/Ammo/Rifle/AP Graphic_StackCount @@ -71,7 +71,7 @@ Ammo_300AACBlackout_HP - + Things/Ammo/Rifle/HP Graphic_StackCount @@ -85,7 +85,7 @@ Ammo_300AACBlackout_Incendiary - + Things/Ammo/Rifle/Incendiary Graphic_StackCount @@ -99,7 +99,7 @@ Ammo_300AACBlackout_HE - + Things/Ammo/Rifle/HE Graphic_StackCount @@ -113,7 +113,7 @@ Ammo_300AACBlackout_Sabot - + Things/Ammo/Rifle/Sabot Graphic_StackCount diff --git a/Defs/Ammo/Rifle/303British.xml b/Defs/Ammo/Rifle/303British.xml index 4812cfb378..46b1e11cd2 100644 --- a/Defs/Ammo/Rifle/303British.xml +++ b/Defs/Ammo/Rifle/303British.xml @@ -43,7 +43,7 @@ Ammo_303British_FMJ - + Things/Ammo/Rifle/Clip/FMJ Graphic_StackCount @@ -57,7 +57,7 @@ Ammo_303British_AP - + Things/Ammo/Rifle/Clip/AP Graphic_StackCount @@ -71,7 +71,7 @@ Ammo_303British_HP - + Things/Ammo/Rifle/Clip/HP Graphic_StackCount @@ -85,7 +85,7 @@ Ammo_303British_Incendiary - + Things/Ammo/Rifle/Clip/Incendiary Graphic_StackCount @@ -99,7 +99,7 @@ Ammo_303British_HE - + Things/Ammo/Rifle/Clip/HE Graphic_StackCount @@ -113,7 +113,7 @@ Ammo_303British_Sabot - + Things/Ammo/Rifle/Clip/Sabot Graphic_StackCount diff --git a/Defs/Ammo/Rifle/30Carbine.xml b/Defs/Ammo/Rifle/30Carbine.xml index 3cee13fb68..8c79378fbf 100644 --- a/Defs/Ammo/Rifle/30Carbine.xml +++ b/Defs/Ammo/Rifle/30Carbine.xml @@ -43,7 +43,7 @@ Ammo_30Carbine_FMJ - + Things/Ammo/Rifle/Clip/FMJ Graphic_StackCount @@ -57,7 +57,7 @@ Ammo_30Carbine_AP - + Things/Ammo/Rifle/Clip/AP Graphic_StackCount @@ -71,7 +71,7 @@ Ammo_30Carbine_HP - + Things/Ammo/Rifle/Clip/HP Graphic_StackCount @@ -85,7 +85,7 @@ Ammo_30Carbine_Incendiary - + Things/Ammo/Rifle/Clip/Incendiary Graphic_StackCount @@ -99,7 +99,7 @@ Ammo_30Carbine_HE - + Things/Ammo/Rifle/Clip/HE Graphic_StackCount @@ -113,7 +113,7 @@ Ammo_30Carbine_Sabot - + Things/Ammo/Rifle/Clip/Sabot Graphic_StackCount diff --git a/Defs/Ammo/Rifle/38-55Winchester.xml b/Defs/Ammo/Rifle/38-55Winchester.xml index eb8e912310..a7196e91ad 100644 --- a/Defs/Ammo/Rifle/38-55Winchester.xml +++ b/Defs/Ammo/Rifle/38-55Winchester.xml @@ -43,7 +43,7 @@ Ammo_3855Winchester_FMJ - + Things/Ammo/Rifle/Clip/FMJ Graphic_StackCount @@ -57,7 +57,7 @@ Ammo_3855Winchester_AP - + Things/Ammo/Rifle/Clip/AP Graphic_StackCount @@ -71,7 +71,7 @@ Ammo_3855Winchester_HP - + Things/Ammo/Rifle/Clip/HP Graphic_StackCount @@ -85,7 +85,7 @@ Ammo_3855Winchester_Incendiary - + Things/Ammo/Rifle/Clip/Incendiary Graphic_StackCount @@ -99,7 +99,7 @@ Ammo_3855Winchester_HE - + Things/Ammo/Rifle/Clip/HE Graphic_StackCount @@ -113,7 +113,7 @@ Ammo_3855Winchester_Sabot - + Things/Ammo/Rifle/Clip/Sabot Graphic_StackCount diff --git a/Defs/Ammo/Rifle/44-40Winchester.xml b/Defs/Ammo/Rifle/44-40Winchester.xml index f66cb34267..b7bbff3502 100644 --- a/Defs/Ammo/Rifle/44-40Winchester.xml +++ b/Defs/Ammo/Rifle/44-40Winchester.xml @@ -43,7 +43,7 @@ Ammo_44-40Winchester_FMJ - + Things/Ammo/Rifle/Clip/FMJ Graphic_StackCount @@ -57,7 +57,7 @@ Ammo_44-40Winchester_AP - + Things/Ammo/Rifle/Clip/AP Graphic_StackCount @@ -71,7 +71,7 @@ Ammo_44-40Winchester_HP - + Things/Ammo/Rifle/Clip/HP Graphic_StackCount @@ -85,7 +85,7 @@ Ammo_44-40Winchester_Incendiary - + Things/Ammo/Rifle/Clip/Incendiary Graphic_StackCount @@ -99,7 +99,7 @@ Ammo_44-40Winchester_HE - + Things/Ammo/Rifle/Clip/HE Graphic_StackCount @@ -113,7 +113,7 @@ Ammo_44-40Winchester_Sabot - + Things/Ammo/Rifle/Clip/Sabot Graphic_StackCount diff --git a/Defs/Ammo/Rifle/4570Gov.xml b/Defs/Ammo/Rifle/4570Gov.xml index c60ec9cb51..8ed624752a 100644 --- a/Defs/Ammo/Rifle/4570Gov.xml +++ b/Defs/Ammo/Rifle/4570Gov.xml @@ -43,7 +43,7 @@ Ammo_4570Gov_FMJ - + Things/Ammo/Rifle/Clip/FMJ Graphic_StackCount @@ -57,7 +57,7 @@ Ammo_4570Gov_AP - + Things/Ammo/Rifle/Clip/AP Graphic_StackCount @@ -71,7 +71,7 @@ Ammo_4570Gov_HP - + Things/Ammo/Rifle/Clip/HP Graphic_StackCount @@ -85,7 +85,7 @@ Ammo_4570Gov_Incendiary - + Things/Ammo/Rifle/Clip/Incendiary Graphic_StackCount @@ -99,7 +99,7 @@ Ammo_4570Gov_HE - + Things/Ammo/Rifle/Clip/HE Graphic_StackCount @@ -113,7 +113,7 @@ Ammo_4570Gov_Sabot - + Things/Ammo/Rifle/Clip/Sabot Graphic_StackCount diff --git a/Defs/Ammo/Rifle/458SOCOM.xml b/Defs/Ammo/Rifle/458SOCOM.xml index 46cfa7d648..83c82cc6a9 100644 --- a/Defs/Ammo/Rifle/458SOCOM.xml +++ b/Defs/Ammo/Rifle/458SOCOM.xml @@ -43,7 +43,7 @@ Ammo_458SOCOM_FMJ - + Things/Ammo/Rifle/FMJ Graphic_StackCount @@ -57,7 +57,7 @@ Ammo_458SOCOM_AP - + Things/Ammo/Rifle/AP Graphic_StackCount @@ -71,7 +71,7 @@ Ammo_458SOCOM_HP - + Things/Ammo/Rifle/HP Graphic_StackCount @@ -85,7 +85,7 @@ Ammo_458SOCOM_Incendiary - + Things/Ammo/Rifle/Incendiary Graphic_StackCount @@ -99,7 +99,7 @@ Ammo_458SOCOM_HE - + Things/Ammo/Rifle/HE Graphic_StackCount @@ -113,7 +113,7 @@ Ammo_458SOCOM_Sabot - + Things/Ammo/Rifle/Sabot Graphic_StackCount diff --git a/Defs/Ammo/Rifle/473x33mmCaseless.xml b/Defs/Ammo/Rifle/473x33mmCaseless.xml index fe5d32f186..6959713083 100644 --- a/Defs/Ammo/Rifle/473x33mmCaseless.xml +++ b/Defs/Ammo/Rifle/473x33mmCaseless.xml @@ -43,7 +43,7 @@ Ammo_473x33mmCaseless_FMJ - + Things/Ammo/Rifle/FMJ Graphic_StackCount @@ -57,7 +57,7 @@ Ammo_473x33mmCaseless_AP - + Things/Ammo/Rifle/AP Graphic_StackCount @@ -71,7 +71,7 @@ Ammo_473x33mmCaseless_HP - + Things/Ammo/Rifle/HP Graphic_StackCount @@ -85,7 +85,7 @@ Ammo_473x33mmCaseless_Incendiary - + Things/Ammo/Rifle/Incendiary Graphic_StackCount @@ -99,7 +99,7 @@ Ammo_473x33mmCaseless_HE - + Things/Ammo/Rifle/HE Graphic_StackCount @@ -113,7 +113,7 @@ Ammo_473x33mmCaseless_Sabot - + Things/Ammo/Rifle/Sabot Graphic_StackCount diff --git a/Defs/Ammo/Rifle/485x49mm.xml b/Defs/Ammo/Rifle/485x49mm.xml index dcc1b9e5b7..fe1cca5b2d 100644 --- a/Defs/Ammo/Rifle/485x49mm.xml +++ b/Defs/Ammo/Rifle/485x49mm.xml @@ -43,7 +43,7 @@ Ammo_485x49mm_FMJ - + Things/Ammo/Rifle/Battlerifle/FMJ Graphic_StackCount @@ -57,7 +57,7 @@ Ammo_485x49mm_AP - + Things/Ammo/Rifle/Battlerifle/AP Graphic_StackCount @@ -71,7 +71,7 @@ Ammo_485x49mm_HP - + Things/Ammo/Rifle/Battlerifle/HP Graphic_StackCount @@ -85,7 +85,7 @@ Ammo_485x49mm_Incendiary - + Things/Ammo/Rifle/Battlerifle/Incendiary Graphic_StackCount @@ -99,7 +99,7 @@ Ammo_485x49mm_HE - + Things/Ammo/Rifle/Battlerifle/HE Graphic_StackCount @@ -113,7 +113,7 @@ Ammo_485x49mm_Sabot - + Things/Ammo/Rifle/Battlerifle/Sabot Graphic_StackCount diff --git a/Defs/Ammo/Rifle/50Beowulf.xml b/Defs/Ammo/Rifle/50Beowulf.xml index 50fe42b25f..9cfb2dacc5 100644 --- a/Defs/Ammo/Rifle/50Beowulf.xml +++ b/Defs/Ammo/Rifle/50Beowulf.xml @@ -43,7 +43,7 @@ Ammo_50Beowulf_FMJ - + Things/Ammo/Rifle/FMJ Graphic_StackCount @@ -57,7 +57,7 @@ Ammo_50Beowulf_AP - + Things/Ammo/Rifle/AP Graphic_StackCount @@ -71,7 +71,7 @@ Ammo_50Beowulf_HP - + Things/Ammo/Rifle/HP Graphic_StackCount @@ -85,7 +85,7 @@ Ammo_50Beowulf_Incendiary - + Things/Ammo/Rifle/Incendiary Graphic_StackCount @@ -99,7 +99,7 @@ Ammo_50Beowulf_HE - + Things/Ammo/Rifle/HE Graphic_StackCount @@ -113,7 +113,7 @@ Ammo_50Beowulf_Sabot - + Things/Ammo/Rifle/Sabot Graphic_StackCount diff --git a/Defs/Ammo/Rifle/545x39mmSoviet.xml b/Defs/Ammo/Rifle/545x39mmSoviet.xml index 67f75bb6c3..30a639234f 100644 --- a/Defs/Ammo/Rifle/545x39mmSoviet.xml +++ b/Defs/Ammo/Rifle/545x39mmSoviet.xml @@ -57,7 +57,7 @@ Ammo_545x39mmSoviet_FMJ - + Things/Ammo/Rifle/Soviet/FMJ Graphic_StackCount @@ -71,7 +71,7 @@ Ammo_545x39mmSoviet_AP - + Things/Ammo/Rifle/Soviet/AP Graphic_StackCount @@ -85,7 +85,7 @@ Ammo_545x39mmSoviet_HP - + Things/Ammo/Rifle/Soviet/HP Graphic_StackCount @@ -99,7 +99,7 @@ Ammo_545x39mmSoviet_Incendiary - + Things/Ammo/Rifle/Soviet/Incendiary Graphic_StackCount @@ -113,7 +113,7 @@ Ammo_545x39mmSoviet_HE - + Things/Ammo/Rifle/Soviet/HE Graphic_StackCount @@ -127,7 +127,7 @@ Ammo_545x39mmSoviet_Sabot - + Things/Ammo/Rifle/Soviet/Sabot Graphic_StackCount diff --git a/Defs/Ammo/Rifle/556x45mmNATO.xml b/Defs/Ammo/Rifle/556x45mmNATO.xml index 4068e66d8c..7e27338406 100644 --- a/Defs/Ammo/Rifle/556x45mmNATO.xml +++ b/Defs/Ammo/Rifle/556x45mmNATO.xml @@ -57,7 +57,7 @@ Ammo_556x45mmNATO_FMJ - + Things/Ammo/Rifle/FMJ Graphic_StackCount @@ -71,7 +71,7 @@ Ammo_556x45mmNATO_AP - + Things/Ammo/Rifle/AP Graphic_StackCount @@ -85,7 +85,7 @@ Ammo_556x45mmNATO_HP - + Things/Ammo/Rifle/HP Graphic_StackCount @@ -99,7 +99,7 @@ Ammo_556x45mmNATO_Incendiary - + Things/Ammo/Rifle/Incendiary Graphic_StackCount @@ -113,7 +113,7 @@ Ammo_556x45mmNATO_HE - + Things/Ammo/Rifle/HE Graphic_StackCount @@ -127,7 +127,7 @@ Ammo_556x45mmNATO_Sabot - + Things/Ammo/Rifle/Sabot Graphic_StackCount diff --git a/Defs/Ammo/Rifle/56-56Spencer.xml b/Defs/Ammo/Rifle/56-56Spencer.xml index e549247aad..e375a58148 100644 --- a/Defs/Ammo/Rifle/56-56Spencer.xml +++ b/Defs/Ammo/Rifle/56-56Spencer.xml @@ -43,7 +43,7 @@ Ammo_5656Spencer_FMJ - + Things/Ammo/Rifle/Clip/FMJ Graphic_StackCount @@ -57,7 +57,7 @@ Ammo_5656Spencer_AP - + Things/Ammo/Rifle/Clip/AP Graphic_StackCount @@ -71,7 +71,7 @@ Ammo_5656Spencer_HP - + Things/Ammo/Rifle/Clip/HP Graphic_StackCount @@ -85,7 +85,7 @@ Ammo_5656Spencer_Incendiary - + Things/Ammo/Rifle/Clip/Incendiary Graphic_StackCount @@ -99,7 +99,7 @@ Ammo_5656Spencer_HE - + Things/Ammo/Rifle/Clip/HE Graphic_StackCount @@ -113,7 +113,7 @@ Ammo_5656Spencer_Sabot - + Things/Ammo/Rifle/Clip/Sabot Graphic_StackCount diff --git a/Defs/Ammo/Rifle/58x42mmDBP10.xml b/Defs/Ammo/Rifle/58x42mmDBP10.xml index 8cf2dfe56e..a9158d5946 100644 --- a/Defs/Ammo/Rifle/58x42mmDBP10.xml +++ b/Defs/Ammo/Rifle/58x42mmDBP10.xml @@ -43,7 +43,7 @@ Ammo_58x42mmDBP10_FMJ - + Things/Ammo/Rifle/Soviet/FMJ Graphic_StackCount @@ -57,7 +57,7 @@ Ammo_58x42mmDBP10_AP - + Things/Ammo/Rifle/Soviet/AP Graphic_StackCount @@ -71,7 +71,7 @@ Ammo_58x42mmDBP10_HP - + Things/Ammo/Rifle/Soviet/HP Graphic_StackCount @@ -85,7 +85,7 @@ Ammo_58x42mmDBP10_Incendiary - + Things/Ammo/Rifle/Soviet/Incendiary Graphic_StackCount @@ -99,7 +99,7 @@ Ammo_58x42mmDBP10_HE - + Things/Ammo/Rifle/Soviet/HE Graphic_StackCount @@ -113,7 +113,7 @@ Ammo_58x42mmDBP10_Sabot - + Things/Ammo/Rifle/Soviet/Sabot Graphic_StackCount diff --git a/Defs/Ammo/Rifle/5x100mmCaseless.xml b/Defs/Ammo/Rifle/5x100mmCaseless.xml index 6cba2b79bf..b14d5978cc 100644 --- a/Defs/Ammo/Rifle/5x100mmCaseless.xml +++ b/Defs/Ammo/Rifle/5x100mmCaseless.xml @@ -46,7 +46,7 @@ Ammo_5x100mmCaseless_Sabot - + Things/Ammo/Railgun/Rifle Graphic_StackCount diff --git a/Defs/Ammo/Rifle/6.5Creedmoor.xml b/Defs/Ammo/Rifle/6.5Creedmoor.xml index 66ccbb834e..3d0929285c 100644 --- a/Defs/Ammo/Rifle/6.5Creedmoor.xml +++ b/Defs/Ammo/Rifle/6.5Creedmoor.xml @@ -43,7 +43,7 @@ Ammo_65x48mmCreedmoor_FMJ - + Things/Ammo/Rifle/Battlerifle/FMJ Graphic_StackCount @@ -57,7 +57,7 @@ Ammo_65x48mmCreedmoor_AP - + Things/Ammo/Rifle/Battlerifle/AP Graphic_StackCount @@ -71,7 +71,7 @@ Ammo_65x48mmCreedmoor_HP - + Things/Ammo/Rifle/Battlerifle/HP Graphic_StackCount @@ -85,7 +85,7 @@ Ammo_65x48mmCreedmoor_Incendiary - + Things/Ammo/Rifle/Battlerifle/Incendiary Graphic_StackCount @@ -99,7 +99,7 @@ Ammo_65x48mmCreedmoor_HE - + Things/Ammo/Rifle/Battlerifle/HE Graphic_StackCount @@ -113,7 +113,7 @@ Ammo_65x48mmCreedmoor_Sabot - + Things/Ammo/Rifle/Battlerifle/Sabot Graphic_StackCount diff --git a/Defs/Ammo/Rifle/6.5x52mm Carcano.xml b/Defs/Ammo/Rifle/6.5x52mm Carcano.xml index e118503728..e911ddf6b5 100644 --- a/Defs/Ammo/Rifle/6.5x52mm Carcano.xml +++ b/Defs/Ammo/Rifle/6.5x52mm Carcano.xml @@ -43,7 +43,7 @@ Ammo_65x52mmCarcano_FMJ - + Things/Ammo/Rifle/Clip/FMJ Graphic_StackCount @@ -57,7 +57,7 @@ Ammo_65x52mmCarcano_AP - + Things/Ammo/Rifle/Clip/AP Graphic_StackCount @@ -71,7 +71,7 @@ Ammo_65x52mmCarcano_HP - + Things/Ammo/Rifle/Clip/HP Graphic_StackCount @@ -85,7 +85,7 @@ Ammo_65x52mmCarcano_Incendiary - + Things/Ammo/Rifle/Clip/Incendiary Graphic_StackCount @@ -99,7 +99,7 @@ Ammo_65x52mmCarcano_HE - + Things/Ammo/Rifle/Clip/HE Graphic_StackCount @@ -113,7 +113,7 @@ Ammo_65x52mmCarcano_Sabot - + Things/Ammo/Rifle/Clip/Sabot Graphic_StackCount diff --git a/Defs/Ammo/Rifle/65x50mmSRArisaka.xml b/Defs/Ammo/Rifle/65x50mmSRArisaka.xml index c2093e49df..7b4c0c5f32 100644 --- a/Defs/Ammo/Rifle/65x50mmSRArisaka.xml +++ b/Defs/Ammo/Rifle/65x50mmSRArisaka.xml @@ -43,7 +43,7 @@ Ammo_65x50mmSRArisaka_FMJ - + Things/Ammo/Rifle/Clip/FMJ Graphic_StackCount @@ -57,7 +57,7 @@ Ammo_65x50mmSRArisaka_AP - + Things/Ammo/Rifle/Clip/AP Graphic_StackCount @@ -71,7 +71,7 @@ Ammo_65x50mmSRArisaka_HP - + Things/Ammo/Rifle/Clip/HP Graphic_StackCount @@ -85,7 +85,7 @@ Ammo_65x50mmSRArisaka_Incendiary - + Things/Ammo/Rifle/Clip/Incendiary Graphic_StackCount @@ -99,7 +99,7 @@ Ammo_65x50mmSRArisaka_HE - + Things/Ammo/Rifle/Clip/HE Graphic_StackCount @@ -113,7 +113,7 @@ Ammo_65x50mmSRArisaka_Sabot - + Things/Ammo/Rifle/Clip/Sabot Graphic_StackCount diff --git a/Defs/Ammo/Rifle/7.92x57mmMauser.xml b/Defs/Ammo/Rifle/7.92x57mmMauser.xml index 5c43d4be67..90e916d853 100644 --- a/Defs/Ammo/Rifle/7.92x57mmMauser.xml +++ b/Defs/Ammo/Rifle/7.92x57mmMauser.xml @@ -43,7 +43,7 @@ Ammo_792x57mmMauser_FMJ - + Things/Ammo/Rifle/Clip/FMJ Graphic_StackCount @@ -57,7 +57,7 @@ Ammo_792x57mmMauser_AP - + Things/Ammo/Rifle/Clip/AP Graphic_StackCount @@ -71,7 +71,7 @@ Ammo_792x57mmMauser_HP - + Things/Ammo/Rifle/Clip/HP Graphic_StackCount @@ -85,7 +85,7 @@ Ammo_792x57mmMauser_Incendiary - + Things/Ammo/Rifle/Clip/Incendiary Graphic_StackCount @@ -99,7 +99,7 @@ Ammo_792x57mmMauser_HE - + Things/Ammo/Rifle/Clip/HE Graphic_StackCount @@ -113,7 +113,7 @@ Ammo_792x57mmMauser_Sabot - + Things/Ammo/Rifle/Clip/Sabot Graphic_StackCount diff --git a/Defs/Ammo/Rifle/75x54mmFrench.xml b/Defs/Ammo/Rifle/75x54mmFrench.xml index cbbcf163fd..62253a6992 100644 --- a/Defs/Ammo/Rifle/75x54mmFrench.xml +++ b/Defs/Ammo/Rifle/75x54mmFrench.xml @@ -43,7 +43,7 @@ Ammo_75x54mmFrench_FMJ - + Things/Ammo/Rifle/Clip/FMJ Graphic_StackCount @@ -57,7 +57,7 @@ Ammo_75x54mmFrench_AP - + Things/Ammo/Rifle/Clip/AP Graphic_StackCount @@ -71,7 +71,7 @@ Ammo_75x54mmFrench_HP - + Things/Ammo/Rifle/Clip/HP Graphic_StackCount @@ -85,7 +85,7 @@ Ammo_75x54mmFrench_Incendiary - + Things/Ammo/Rifle/Clip/Incendiary Graphic_StackCount @@ -99,7 +99,7 @@ Ammo_75x54mmFrench_HE - + Things/Ammo/Rifle/Clip/HE Graphic_StackCount @@ -113,7 +113,7 @@ Ammo_75x54mmFrench_Sabot - + Things/Ammo/Rifle/Clip/Sabot Graphic_StackCount diff --git a/Defs/Ammo/Rifle/762x39mmSoviet.xml b/Defs/Ammo/Rifle/762x39mmSoviet.xml index 3497276fba..903fde9361 100644 --- a/Defs/Ammo/Rifle/762x39mmSoviet.xml +++ b/Defs/Ammo/Rifle/762x39mmSoviet.xml @@ -43,7 +43,7 @@ Ammo_762x39mmSoviet_FMJ - + Things/Ammo/Rifle/SovietLarge/FMJ Graphic_StackCount @@ -57,7 +57,7 @@ Ammo_762x39mmSoviet_AP - + Things/Ammo/Rifle/SovietLarge/AP Graphic_StackCount @@ -71,7 +71,7 @@ Ammo_762x39mmSoviet_HP - + Things/Ammo/Rifle/SovietLarge/HP Graphic_StackCount @@ -85,7 +85,7 @@ Ammo_762x39mmSoviet_Incendiary - + Things/Ammo/Rifle/SovietLarge/Incendiary Graphic_StackCount @@ -99,7 +99,7 @@ Ammo_762x39mmSoviet_HE - + Things/Ammo/Rifle/SovietLarge/HE Graphic_StackCount @@ -113,7 +113,7 @@ Ammo_762x39mmSoviet_Sabot - + Things/Ammo/Rifle/SovietLarge/Sabot Graphic_StackCount diff --git a/Defs/Ammo/Rifle/762x51mmNATO.xml b/Defs/Ammo/Rifle/762x51mmNATO.xml index 2932762268..d8f704899b 100644 --- a/Defs/Ammo/Rifle/762x51mmNATO.xml +++ b/Defs/Ammo/Rifle/762x51mmNATO.xml @@ -43,7 +43,7 @@ Ammo_762x51mmNATO_FMJ - + Things/Ammo/Rifle/Battlerifle/FMJ Graphic_StackCount @@ -57,7 +57,7 @@ Ammo_762x51mmNATO_AP - + Things/Ammo/Rifle/Battlerifle/AP Graphic_StackCount @@ -71,7 +71,7 @@ Ammo_762x51mmNATO_HP - + Things/Ammo/Rifle/Battlerifle/HP Graphic_StackCount @@ -85,7 +85,7 @@ Ammo_762x51mmNATO_Incendiary - + Things/Ammo/Rifle/Battlerifle/Incendiary Graphic_StackCount @@ -99,7 +99,7 @@ Ammo_762x51mmNATO_HE - + Things/Ammo/Rifle/Battlerifle/HE Graphic_StackCount @@ -113,7 +113,7 @@ Ammo_762x51mmNATO_Sabot - + Things/Ammo/Rifle/Battlerifle/Sabot Graphic_StackCount diff --git a/Defs/Ammo/Rifle/762x54mmR.xml b/Defs/Ammo/Rifle/762x54mmR.xml index 7b61688c21..e1fcdf6b2c 100644 --- a/Defs/Ammo/Rifle/762x54mmR.xml +++ b/Defs/Ammo/Rifle/762x54mmR.xml @@ -43,7 +43,7 @@ Ammo_762x54mmR_FMJ - + Things/Ammo/Rifle/SovietLarge/FMJ Graphic_StackCount @@ -57,7 +57,7 @@ Ammo_762x54mmR_AP - + Things/Ammo/Rifle/SovietLarge/AP Graphic_StackCount @@ -71,7 +71,7 @@ Ammo_762x54mmR_HP - + Things/Ammo/Rifle/SovietLarge/HP Graphic_StackCount @@ -85,7 +85,7 @@ Ammo_762x54mmR_Incendiary - + Things/Ammo/Rifle/SovietLarge/Incendiary Graphic_StackCount @@ -99,7 +99,7 @@ Ammo_762x54mmR_HE - + Things/Ammo/Rifle/SovietLarge/HE Graphic_StackCount @@ -113,7 +113,7 @@ Ammo_762x54mmR_Sabot - + Things/Ammo/Rifle/SovietLarge/Sabot Graphic_StackCount diff --git a/Defs/Ammo/Rifle/77x58mmArisaka.xml b/Defs/Ammo/Rifle/77x58mmArisaka.xml index a8f90c43ce..e510e92f03 100644 --- a/Defs/Ammo/Rifle/77x58mmArisaka.xml +++ b/Defs/Ammo/Rifle/77x58mmArisaka.xml @@ -43,7 +43,7 @@ Ammo_77x58mmArisaka_FMJ - + Things/Ammo/Rifle/Clip/FMJ Graphic_StackCount @@ -57,7 +57,7 @@ Ammo_77x58mmArisaka_AP - + Things/Ammo/Rifle/Clip/AP Graphic_StackCount @@ -71,7 +71,7 @@ Ammo_77x58mmArisaka_HP - + Things/Ammo/Rifle/Clip/HP Graphic_StackCount @@ -85,7 +85,7 @@ Ammo_77x58mmArisaka_Incendiary - + Things/Ammo/Rifle/Clip/Incendiary Graphic_StackCount @@ -99,7 +99,7 @@ Ammo_77x58mmArisaka_HE - + Things/Ammo/Rifle/Clip/HE Graphic_StackCount @@ -113,7 +113,7 @@ Ammo_77x58mmArisaka_Sabot - + Things/Ammo/Rifle/Clip/Sabot Graphic_StackCount diff --git a/Defs/Ammo/Rifle/792x33mmKurz.xml b/Defs/Ammo/Rifle/792x33mmKurz.xml index 0cae1da6c2..90bde6c0ef 100644 --- a/Defs/Ammo/Rifle/792x33mmKurz.xml +++ b/Defs/Ammo/Rifle/792x33mmKurz.xml @@ -43,7 +43,7 @@ Ammo_792x33mmKurz_FMJ - + Things/Ammo/Rifle/FMJ Graphic_StackCount @@ -57,7 +57,7 @@ Ammo_792x33mmKurz_AP - + Things/Ammo/Rifle/AP Graphic_StackCount @@ -71,7 +71,7 @@ Ammo_792x33mmKurz_HP - + Things/Ammo/Rifle/HP Graphic_StackCount @@ -85,7 +85,7 @@ Ammo_792x33mmKurz_Incendiary - + Things/Ammo/Rifle/Incendiary Graphic_StackCount @@ -99,7 +99,7 @@ Ammo_792x33mmKurz_HE - + Things/Ammo/Rifle/HE Graphic_StackCount @@ -113,7 +113,7 @@ Ammo_792x33mmKurz_Sabot - + Things/Ammo/Rifle/Sabot Graphic_StackCount diff --git a/Defs/Ammo/Rifle/8.6mmBlackout.xml b/Defs/Ammo/Rifle/8.6mmBlackout.xml index 1c84939890..a6cc1fe328 100644 --- a/Defs/Ammo/Rifle/8.6mmBlackout.xml +++ b/Defs/Ammo/Rifle/8.6mmBlackout.xml @@ -43,7 +43,7 @@ Ammo_86x43mmBlackout_FMJ - + Things/Ammo/Rifle/Battlerifle/FMJ Graphic_StackCount @@ -57,7 +57,7 @@ Ammo_86x43mmBlackout_AP - + Things/Ammo/Rifle/Battlerifle/AP Graphic_StackCount @@ -71,7 +71,7 @@ Ammo_86x43mmBlackout_HP - + Things/Ammo/Rifle/Battlerifle/HP Graphic_StackCount @@ -85,7 +85,7 @@ Ammo_86x43mmBlackout_Incendiary - + Things/Ammo/Rifle/Battlerifle/Incendiary Graphic_StackCount @@ -99,7 +99,7 @@ Ammo_86x43mmBlackout_HE - + Things/Ammo/Rifle/Battlerifle/HE Graphic_StackCount @@ -113,7 +113,7 @@ Ammo_86x43mmBlackout_Sabot - + Things/Ammo/Rifle/Battlerifle/Sabot Graphic_StackCount diff --git a/Defs/Ammo/Rifle/8x50mmRLebel.xml b/Defs/Ammo/Rifle/8x50mmRLebel.xml index e51ae141e4..6105c976e6 100644 --- a/Defs/Ammo/Rifle/8x50mmRLebel.xml +++ b/Defs/Ammo/Rifle/8x50mmRLebel.xml @@ -43,7 +43,7 @@ Ammo_8x50mmRLebel_FMJ - + Things/Ammo/Rifle/Clip/FMJ Graphic_StackCount @@ -57,7 +57,7 @@ Ammo_8x50mmRLebel_AP - + Things/Ammo/Rifle/Clip/AP Graphic_StackCount @@ -71,7 +71,7 @@ Ammo_8x50mmRLebel_HP - + Things/Ammo/Rifle/Clip/HP Graphic_StackCount @@ -85,7 +85,7 @@ Ammo_8x50mmRLebel_Incendiary - + Things/Ammo/Rifle/Clip/Incendiary Graphic_StackCount @@ -99,7 +99,7 @@ Ammo_8x50mmRLebel_HE - + Things/Ammo/Rifle/Clip/HE Graphic_StackCount @@ -113,7 +113,7 @@ Ammo_8x50mmRLebel_Sabot - + Things/Ammo/Rifle/Clip/Sabot Graphic_StackCount diff --git a/Defs/Ammo/Rifle/8x50mmRMannlicher.xml b/Defs/Ammo/Rifle/8x50mmRMannlicher.xml index 060ec33a83..9505461b5c 100644 --- a/Defs/Ammo/Rifle/8x50mmRMannlicher.xml +++ b/Defs/Ammo/Rifle/8x50mmRMannlicher.xml @@ -43,7 +43,7 @@ Ammo_8x50mmRMannlicher_FMJ - + Things/Ammo/Rifle/Clip/FMJ Graphic_StackCount @@ -57,7 +57,7 @@ Ammo_8x50mmRMannlicher_AP - + Things/Ammo/Rifle/Clip/AP Graphic_StackCount @@ -71,7 +71,7 @@ Ammo_8x50mmRMannlicher_HP - + Things/Ammo/Rifle/Clip/HP Graphic_StackCount @@ -85,7 +85,7 @@ Ammo_8x50mmRMannlicher_Incendiary - + Things/Ammo/Rifle/Clip/Incendiary Graphic_StackCount @@ -99,7 +99,7 @@ Ammo_8x50mmRMannlicher_HE - + Things/Ammo/Rifle/Clip/HE Graphic_StackCount @@ -113,7 +113,7 @@ Ammo_8x50mmRMannlicher_Sabot - + Things/Ammo/Rifle/Clip/Sabot Graphic_StackCount diff --git a/Defs/Ammo/Rifle/9x39mmSoviet.xml b/Defs/Ammo/Rifle/9x39mmSoviet.xml index 0367071b46..882c8b223f 100644 --- a/Defs/Ammo/Rifle/9x39mmSoviet.xml +++ b/Defs/Ammo/Rifle/9x39mmSoviet.xml @@ -43,7 +43,7 @@ Ammo_9x39mmSoviet_FMJ - + Things/Ammo/Rifle/SovietLarge/FMJ Graphic_StackCount @@ -57,7 +57,7 @@ Ammo_9x39mmSoviet_AP - + Things/Ammo/Rifle/SovietLarge/AP Graphic_StackCount @@ -71,7 +71,7 @@ Ammo_9x39mmSoviet_HP - + Things/Ammo/Rifle/SovietLarge/HP Graphic_StackCount @@ -85,7 +85,7 @@ Ammo_9x39mmSoviet_Incendiary - + Things/Ammo/Rifle/SovietLarge/Incendiary Graphic_StackCount @@ -99,7 +99,7 @@ Ammo_9x39mmSoviet_HE - + Things/Ammo/Rifle/SovietLarge/HE Graphic_StackCount @@ -113,7 +113,7 @@ Ammo_9x39mmSoviet_Sabot - + Things/Ammo/Rifle/SovietLarge/Sabot Graphic_StackCount diff --git a/Defs/Ammo/Shell/100x695mmR.xml b/Defs/Ammo/Shell/100x695mmR.xml index 63fa3ae1b2..26fac96aa0 100644 --- a/Defs/Ammo/Shell/100x695mmR.xml +++ b/Defs/Ammo/Shell/100x695mmR.xml @@ -43,7 +43,7 @@ Ammo_100x695mmRCannonShell_HEAT - Things/Ammo/Cannon/Flak/HEAT + Things/Ammo/Cannon/Tank/HEATFS Graphic_StackCount @@ -58,7 +58,7 @@ Ammo_100x695mmRCannonShell_HE - Things/Ammo/Cannon/Flak/HE + Things/Ammo/Cannon/Tank/HE Graphic_StackCount @@ -88,7 +88,7 @@ Bullet_100x695mmRCannonShell_HEAT - Things/Projectile/Cannon/HEAT + Things/Projectile/Cannon/HEATFS Graphic_Single diff --git a/Defs/Ammo/Shell/105mmHowitzer.xml b/Defs/Ammo/Shell/105mmHowitzer.xml index 4fa0141a33..d5b02d338c 100644 --- a/Defs/Ammo/Shell/105mmHowitzer.xml +++ b/Defs/Ammo/Shell/105mmHowitzer.xml @@ -78,7 +78,7 @@ Ammo_105mmHowitzerShell_HEAT - Things/Ammo/Cannon/Flak/HEAT + Things/Ammo/Cannon/Tank/HEAT Graphic_StackCount diff --git a/Defs/Ammo/Shell/105x607mmR.xml b/Defs/Ammo/Shell/105x607mmR.xml index 62a0e83e3d..d150f658d7 100644 --- a/Defs/Ammo/Shell/105x607mmR.xml +++ b/Defs/Ammo/Shell/105x607mmR.xml @@ -44,7 +44,7 @@ Ammo_105x607mmRCannonShell_HEAT - Things/Ammo/Cannon/Flak/HEAT + Things/Ammo/Cannon/Tank/HEAT Graphic_StackCount @@ -58,7 +58,7 @@ Ammo_105x607mmRCannonShell_HE - Things/Ammo/Cannon/Flak/HE + Things/Ammo/Cannon/Tank/HE Graphic_StackCount diff --git a/Defs/Ammo/Shell/105x617mmR.xml b/Defs/Ammo/Shell/105x617mmR.xml index 0a5c63baf3..b12f75c83c 100644 --- a/Defs/Ammo/Shell/105x617mmR.xml +++ b/Defs/Ammo/Shell/105x617mmR.xml @@ -42,8 +42,8 @@ Ammo_105x617mmRCannonShell_HEAT - Things/Ammo/Cannon/120mmTank/HEAT - Graphic_Single + Things/Ammo/Cannon/Tank/HEATFS + Graphic_StackCount 142.42 @@ -58,8 +58,8 @@ Ammo_105x617mmRCannonShell_HE - Things/Ammo/Cannon/120mmTank/HE - Graphic_Single + Things/Ammo/Cannon/Tank/HE + Graphic_StackCount 156.72 @@ -88,7 +88,7 @@ Bullet_105x617mmRCannonShell_HEAT - Things/Projectile/Cannon/HEAT + Things/Projectile/Cannon/HEATFS Graphic_Single @@ -120,7 +120,7 @@ CombatExtended.ProjectileCE_Explosive - Things/Projectile/Cannon/HE + Things/Projectile/Cannon/HEFS Graphic_Single diff --git a/Defs/Ammo/Shell/120mmCannon.xml b/Defs/Ammo/Shell/120mmCannon.xml index 3cc27ca409..45b2fbbe4c 100644 --- a/Defs/Ammo/Shell/120mmCannon.xml +++ b/Defs/Ammo/Shell/120mmCannon.xml @@ -5,7 +5,7 @@ Ammo120mmCannonShells AmmoShells - Things/Ammo/Cannon/120mmTank/HE + UI/Icons/ThingCategories/CaliberCannon @@ -44,8 +44,8 @@ Ammo_120mmCannonShell_HEAT - Things/Ammo/Cannon/120mmTank/HEAT - Graphic_Single + Things/Ammo/Cannon/Tank/HEATFS + Graphic_StackCount 149.17 @@ -58,8 +58,8 @@ Ammo_120mmCannonShell_HE - Things/Ammo/Cannon/120mmTank/HE - Graphic_Single + Things/Ammo/Cannon/Tank/HE + Graphic_StackCount 172.67 @@ -87,7 +87,7 @@ Bullet_120mmCannonShell_HEAT - Things/Projectile/Cannon/120mmTank/HEAT + Things/Projectile/Cannon/HEAT Graphic_Single @@ -118,7 +118,7 @@ CombatExtended.ProjectileCE_Explosive - Things/Projectile/Cannon/120mmTank/HE + Things/Projectile/Cannon/HE Graphic_Single diff --git a/Defs/Ammo/Shell/57x307mmR.xml b/Defs/Ammo/Shell/57x307mmR.xml index 2e2354416e..5606c95261 100644 --- a/Defs/Ammo/Shell/57x307mmR.xml +++ b/Defs/Ammo/Shell/57x307mmR.xml @@ -43,7 +43,7 @@ Ammo_57x307mmR_AP - Things/Ammo/Cannon/Flak/APHE + Things/Ammo/Cannon/Tank/APHE Graphic_StackCount @@ -57,7 +57,7 @@ Ammo_57x307mmR_HE - Things/Ammo/Cannon/Flak/HE + Things/Ammo/Cannon/Tank/HE Graphic_StackCount diff --git a/Defs/Ammo/Shell/75x350mmR.xml b/Defs/Ammo/Shell/75x350mmR.xml index b25ccf65b6..e10d426083 100644 --- a/Defs/Ammo/Shell/75x350mmR.xml +++ b/Defs/Ammo/Shell/75x350mmR.xml @@ -42,7 +42,7 @@ Ammo_75x350mmR_AP - Things/Ammo/Cannon/Flak/APHE + Things/Ammo/Cannon/Tank/APHE Graphic_StackCount @@ -57,7 +57,7 @@ Ammo_75x350mmR_HE - Things/Ammo/Cannon/Flak/HE + Things/Ammo/Cannon/Tank/HE Graphic_StackCount diff --git a/Defs/Ammo/Shell/762x385mmRCannon.xml b/Defs/Ammo/Shell/762x385mmRCannon.xml index 7f48368bf3..76e038ed45 100644 --- a/Defs/Ammo/Shell/762x385mmRCannon.xml +++ b/Defs/Ammo/Shell/762x385mmRCannon.xml @@ -5,7 +5,7 @@ Ammo762x385mmRCannonShells AmmoShells - Things/Ammo/Cannon/762x385mmR/HE + Things/Ammo/Cannon/HE @@ -45,8 +45,8 @@ Ammo_762x385mmRCannonShell_HEAT - Things/Ammo/Cannon/762x385mmR/HEAT - Graphic_Single + Things/Ammo/Cannon/Tank/HEAT + Graphic_StackCount 58.1 @@ -59,8 +59,8 @@ Ammo_762x385mmRCannonShell_HE - Things/Ammo/Cannon/762x385mmR/HE - Graphic_Single + Things/Ammo/Cannon/Tank/HE + Graphic_StackCount 56.54 @@ -73,8 +73,8 @@ Ammo_762x385mmRCannonShell_EMP - Things/Ammo/Cannon/762x385mmR/EMP - Graphic_Single + Things/Ammo/Cannon/Tank/EMP + Graphic_StackCount 87.70 @@ -102,7 +102,7 @@ Bullet_762x385mmRCannonShell_HEAT - Things/Projectile/Cannon/762x385mmR/HE + Things/Projectile/Cannon/HEAT Graphic_Single @@ -133,7 +133,7 @@ CombatExtended.ProjectileCE_Explosive - Things/Projectile/Cannon/762x385mmR/HE + Things/Projectile/Cannon/HE Graphic_Single @@ -158,7 +158,7 @@ CombatExtended.ProjectileCE_Explosive - Things/Projectile/Cannon/762x385mmR/EMP + Things/Projectile/Cannon/EMP Graphic_Single diff --git a/Defs/Ammo/Shell/762x539mmR.xml b/Defs/Ammo/Shell/762x539mmR.xml new file mode 100644 index 0000000000..4c258984cf --- /dev/null +++ b/Defs/Ammo/Shell/762x539mmR.xml @@ -0,0 +1,202 @@ + + + + + Ammo762x539mmR + + AmmoShells + UI/Icons/ThingCategories/CaliberAutocannonLarge + + + + + + AmmoSet_762x539mmR + + + Bullet_762x539mmR_AP + Bullet_762x539mmR_HE + + + + + + + Medium-velocity cannon shell fired by tank destroyer guns. + +
  • Ammo762x539mmR
  • +
    + 25 + +
  • CE_AutoEnableTrade
  • +
  • CE_AutoEnableCrafting_TableMachining
  • +
    + + 150 + 10.8 + 10.99 + + 20 + MortarBomb_Explode +
    + + + Ammo_762x539mmR_AP + + + Things/Ammo/Cannon/Tank/APHE + Graphic_StackCount + + + 43.2 + + ArmorPiercing + Bullet_762x539mmR_HE + + + + Ammo_762x539mmR_HE + + + Things/Ammo/Cannon/Tank/HE + Graphic_StackCount + + + 60.54 + + GrenadeHE + Bullet_762x539mmR_HE + + + + + + + TransparentPostLight + + + 154 + false + true + Fleck_BigShell + Filth_CannonAmmoCasings + + + + + Bullet_762x539mmR_AP + + + Things/Projectile/Bullet_Big + Graphic_Single + + + Bullet + 259 + MortarBomb_Explode + 132 + 45723.2 + + + + + Bullet_762x539mmR_HE + + CombatExtended.ProjectileCE_Explosive + + Things/Projectile/Bullet_Big + Graphic_Single + + + Bomb + 75 + 2 + MortarBomb_Explode + true + + +
  • + + 24 + 8 + +
  • +
    +
    + + + + + MakeAmmo_762x539mmR_AP + + Craft 5 76.2x539mmR AP cannon shells. + Making 76.2x539mmR AP cannon shells. + 12960 + +
  • + + +
  • Steel
  • + + + 108 + +
    + + +
  • Steel
  • +
    +
    + + 5 + + + 4 + +
    + + + MakeAmmo_762x539mmR_HE + + Craft 5 76.2x539mmR HE cannon shells. + Making 76.2x539mmR HE cannon shells. + 13200 + +
  • + + +
  • Steel
  • + + + 108 + +
  • + + +
  • FSX
  • + + + 3 + +
  • + + +
  • ComponentIndustrial
  • + + + 2 + +
    + + +
  • Steel
  • +
  • FSX
  • +
  • ComponentIndustrial
  • +
    +
    + + 5 + +
    + +
    \ No newline at end of file diff --git a/Defs/Ammo/Shell/90mmCannon.xml b/Defs/Ammo/Shell/90mmCannon.xml index cefb107ac4..0287a14e7d 100644 --- a/Defs/Ammo/Shell/90mmCannon.xml +++ b/Defs/Ammo/Shell/90mmCannon.xml @@ -48,7 +48,7 @@ Ammo_90mmCannonShell_HEAT - Things/Ammo/Cannon/Flak/HEAT + Things/Ammo/Cannon/Tank/HEAT Graphic_StackCount @@ -63,7 +63,7 @@ Ammo_90mmCannonShell_HE - Things/Ammo/Cannon/Flak/HE + Things/Ammo/Cannon/Tank/HE Graphic_StackCount @@ -77,7 +77,7 @@ Ammo_90mmCannonShell_HE_TFuzed - Things/Ammo/Cannon/Flak/HE + Things/Ammo/Cannon/Tank/HE Graphic_StackCount @@ -91,7 +91,7 @@ Ammo_90mmCannonShell_EMP - Things/Ammo/Cannon/Flak/EMP + Things/Ammo/Cannon/Tank/EMP Graphic_StackCount diff --git a/Defs/Ammo/Shotgun/10Gauge.xml b/Defs/Ammo/Shotgun/10Gauge.xml index ecc7df87ff..9d89e6f7c8 100644 --- a/Defs/Ammo/Shotgun/10Gauge.xml +++ b/Defs/Ammo/Shotgun/10Gauge.xml @@ -171,6 +171,7 @@ Things/Projectile/Bullet_big Graphic_Single + (68,210,215) 43 diff --git a/Defs/Ammo/Shotgun/12Gauge.xml b/Defs/Ammo/Shotgun/12Gauge.xml index ab6a1cbcd6..90d99d892c 100644 --- a/Defs/Ammo/Shotgun/12Gauge.xml +++ b/Defs/Ammo/Shotgun/12Gauge.xml @@ -171,6 +171,7 @@ Things/Projectile/Bullet_big Graphic_Single + (68,210,215) 43 diff --git a/Defs/Ammo/Shotgun/16Gauge.xml b/Defs/Ammo/Shotgun/16Gauge.xml index e182b9a064..1acd053810 100644 --- a/Defs/Ammo/Shotgun/16Gauge.xml +++ b/Defs/Ammo/Shotgun/16Gauge.xml @@ -171,6 +171,7 @@ Things/Projectile/Bullet_big Graphic_Single + (68,210,215) 43 diff --git a/Defs/Ammo/Shotgun/20Gauge.xml b/Defs/Ammo/Shotgun/20Gauge.xml index 896f0909de..50f999ae84 100644 --- a/Defs/Ammo/Shotgun/20Gauge.xml +++ b/Defs/Ammo/Shotgun/20Gauge.xml @@ -170,6 +170,7 @@ Things/Projectile/Bullet_big Graphic_Single + (68,210,215) EMP diff --git a/Defs/Ammo/Shotgun/23x75mmR.xml b/Defs/Ammo/Shotgun/23x75mmR.xml index a5ffa9c4d2..94c1763157 100644 --- a/Defs/Ammo/Shotgun/23x75mmR.xml +++ b/Defs/Ammo/Shotgun/23x75mmR.xml @@ -170,6 +170,7 @@ Things/Projectile/Bullet_big Graphic_Single + (68,210,215) EMP diff --git a/Defs/Ammo/Shotgun/410Bore.xml b/Defs/Ammo/Shotgun/410Bore.xml index 522c9da1e7..43b8b84e93 100644 --- a/Defs/Ammo/Shotgun/410Bore.xml +++ b/Defs/Ammo/Shotgun/410Bore.xml @@ -183,6 +183,7 @@ Things/Projectile/Bullet_Small Graphic_Single + (68,210,215) 43 @@ -255,6 +256,7 @@ Things/Projectile/Bullet_Small Graphic_Single + (68,210,215) 33 diff --git a/Defs/DamageDefs/Damages_LocalInjury.xml b/Defs/DamageDefs/Damages_LocalInjury.xml index 4a59a239ab..b7f8325f0c 100644 --- a/Defs/DamageDefs/Damages_LocalInjury.xml +++ b/Defs/DamageDefs/Damages_LocalInjury.xml @@ -60,6 +60,11 @@ DamageWorker_Flame 6 6 + +
  • + 1.6 +
  • +
    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 + + + - + + Fleck_ElectricGlow_EMP + + Things/Mote/LightningGlow + MoteGlow + + MoteOverhead + 0.1 + 0.1 + + + + Fleck_HeatGlow_API + + Things/Mote/HeatGlow + MoteGlow + + MoteOverhead + 0.15 + 0.2 + + + + + Fleck_SparkThrownFast + + Things/Mote/SparkThrown + + Projectile + 0.15 + 0.1 + true + + + + + + Fleck_BulletHole + + Things/Flecks/Fleck_BulletHole + true + + BuildingOnTop + 5 + 2 + + + \ No newline at end of file diff --git a/Defs/JobDefs/Jobs_CE.xml b/Defs/JobDefs/Jobs_CE.xml index 13d84a7133..691d2a0a2f 100644 --- a/Defs/JobDefs/Jobs_CE.xml +++ b/Defs/JobDefs/Jobs_CE.xml @@ -112,16 +112,27 @@ - - GiveAmmo - CombatExtended.JobDriver_GiveAmmo - Giving TargetB to TargetA. - - RepairNaturalArmor CombatExtended.JobDriver_RepairNaturalArmor Fixing TargetA 's natural armor. + + ReloadAutoLoader + CombatExtended.JobDriver_ReloadAutoLoader + Reloading TargetA with TargetB. + +
  • + true +
  • +
    +
    + + + GiveAmmo + CombatExtended.JobDriver_GiveAmmo + Giving TargetB to TargetA. + + \ No newline at end of file diff --git a/Defs/SoundDefs/AutoLoader_Sustainer.xml b/Defs/SoundDefs/AutoLoader_Sustainer.xml new file mode 100644 index 0000000000..fe2669c741 --- /dev/null +++ b/Defs/SoundDefs/AutoLoader_Sustainer.xml @@ -0,0 +1,22 @@ + + + + + CE_AutoLoaderAmbient + True + MapOnly + PrioritizeNearest + +
  • + +
  • + AmmoContainer/AmmoContainerAmbient +
  • + + 10 + 10~38 + +
    +
    + +
    \ No newline at end of file diff --git a/Defs/ThingDefs_Buildings/AutoLoaderExample.xml b/Defs/ThingDefs_Buildings/AutoLoaderExample.xml new file mode 100644 index 0000000000..1ca7370284 --- /dev/null +++ b/Defs/ThingDefs_Buildings/AutoLoaderExample.xml @@ -0,0 +1,144 @@ + + + + + \ No newline at end of file diff --git a/Defs/ThingDefs_Buildings/Buildings_Turrets.xml b/Defs/ThingDefs_Buildings/Buildings_Turrets.xml index 1edf8af3ad..329606310b 100644 --- a/Defs/ThingDefs_Buildings/Buildings_Turrets.xml +++ b/Defs/ThingDefs_Buildings/Buildings_Turrets.xml @@ -1,425 +1,428 @@ - - CombatExtended.Building_TurretGunCE - MapMeshAndRealTime - - Graphic_Single - - (0.2,0.2,0.6,0.6) - - (3,3) - - Building - All - Industrial - - 100 - 0.7 - 10000 - -60 - - -
  • - - Normal - PassThroughOnly - 50 - 0.85 - false - true - Light - - true - 1 - - -
  • PlaceWorker_TurretTop
  • -
  • PlaceWorker_ShowTurretRadius
  • - - -
  • CE_Turret
  • -
    - -
  • BuildingsSecurity
  • -
    -
    + + CombatExtended.Building_TurretGunCE + MapMeshAndRealTime + + Graphic_Single + + (0.2,0.2,0.6,0.6) + + (3,3) + + Building + All + Industrial + + 100 + 0.7 + 10000 + -60 + + +
  • + + Normal + PassThroughOnly + 50 + 0.85 + false + true + Light + + true + 1 + + +
  • PlaceWorker_TurretTop
  • +
  • PlaceWorker_ShowTurretRadius
  • + + +
  • CE_Turret
  • +
    + +
  • BuildingsSecurity
  • +
    +
    - - Security - -
  • -
  • - - + + Security + +
  • +
  • + + - - True - (0,0,-1) - -
  • - Violent -
  • -
    - - GeneralLaborSpeed - Crafting - Smith - Recipe_Smith - -
    + + True + (0,0,-1) + +
  • + Violent +
  • +
    + + GeneralLaborSpeed + Crafting + Smith + Recipe_Smith + +
    - - - GeneralLaborSpeed - Crafting - Smith - Recipe_Smith - -
  • TableMachining
  • -
    - UnfinishedTurretGun -
    -
    + + + GeneralLaborSpeed + Crafting + Smith + Recipe_Smith + +
  • TableMachining
  • +
    + UnfinishedTurretGun +
    +
    - - Security - True - (0,0,-1) - -
  • - Violent -
  • -
    -
    + + Security + True + (0,0,-1) + +
  • + Violent +
  • +
    +
    - + - - Turret_Blaster - - 8 - - Things/Building/Turrets/MachineGunBase - - (0.27,0.25,0.27) - (0,0,0) - - - UI/Icons/Turrets/ChargeBlaster_uiIcon - - 46000 - 150 - 20 - 25 - 0.75 - 1.25 - 0.5 - - Spacer - -
  • - CompPowerTrader - 400 -
  • -
    - Automatic turret equipped with a charge blaster. - - 125 - 40 - 6 - 1 - - - Gun_BlasterTurret - true - - -
  • PlaceWorker_TurretTop
  • -
  • PlaceWorker_ShowTurretRadius
  • -
    - -
  • CE_ChargeTurret
  • -
    - MinifiedThing -
    + + Turret_Blaster + + 8 + + Things/Building/Turrets/MachineGunBase + + (0.27,0.25,0.27) + (0,0,0) + + + UI/Icons/Turrets/ChargeBlaster_uiIcon + + 46000 + 150 + 20 + 25 + 0.75 + 1.25 + 0.5 + + Spacer + +
  • + CompPowerTrader + 400 +
  • +
    + Automatic turret equipped with a charge blaster. + + 125 + 40 + 6 + 1 + + + Gun_BlasterTurret + true + + +
  • PlaceWorker_TurretTop
  • +
  • PlaceWorker_ShowTurretRadius
  • +
    + +
  • CE_ChargeTurret
  • +
    + MinifiedThing +
    - + - - Turret_Heavy - - 6 - - Things/Building/Turrets/MachineGunBase - - (0.27,0.25,0.27) - (0,0,0) - - - UI/Icons/Turrets/HeavyAutoTurret_uiIcon - - 80000 - 350 - 0.5 - 60 - 80 - 0.5 - 1 - - Plated automatic turret equiped with a high caliber machine gun. Very resistant to damage. - - 275 - 8 - - - true - Gun_HeavyTurret - - -
  • PlaceWorker_TurretTop
  • -
  • PlaceWorker_ShowTurretRadius
  • -
    - Medium - -
  • - CompPowerTrader - 300 -
  • -
    - MinifiedThing - -
  • CE_HeavyTurret
  • -
    -
    + + Turret_Heavy + + 6 + + Things/Building/Turrets/MachineGunBase + + (0.27,0.25,0.27) + (0,0,0) + + + UI/Icons/Turrets/HeavyAutoTurret_uiIcon + + 80000 + 350 + 0.5 + 60 + 80 + 0.5 + 1 + + Plated automatic turret equiped with a high caliber machine gun. Very resistant to damage. + + 275 + 8 + + + true + Gun_HeavyTurret + + +
  • PlaceWorker_TurretTop
  • +
  • PlaceWorker_ShowTurretRadius
  • +
    + Medium + +
  • + CompPowerTrader + 300 +
  • +
    + MinifiedThing + +
  • CE_HeavyTurret
  • +
    +
    - + - - Turret_Medium - - 6 - - Things/Building/Turrets/MachineGunBase - - (0.27,0.25,0.27) - (0,0,0) - - - UI/Icons/Turrets/MediumAutoTurret_uiIcon - - 40000 - 200 - 0.6 - 30 - 40 - 0.5 - 0.75 - - Automatic turret equiped with a full powered cartridge machine gun. Fairly resistant to damage. - - 150 - 8 - - - true - Gun_MediumTurret - - -
  • PlaceWorker_TurretTop
  • -
  • PlaceWorker_ShowTurretRadius
  • -
    - -
  • - CompPowerTrader - 150 -
  • -
    - MinifiedThing - -
  • GunTurrets
  • -
  • PrecisionRifling
  • -
    -
    + + Turret_Medium + + 6 + + Things/Building/Turrets/MachineGunBase + + (0.27,0.25,0.27) + (0,0,0) + + + UI/Icons/Turrets/MediumAutoTurret_uiIcon + + 40000 + 200 + 0.6 + 30 + 40 + 0.5 + 0.75 + + Automatic turret equiped with a full powered cartridge machine gun. Fairly resistant to damage. + + 150 + 8 + + + true + Gun_MediumTurret + + +
  • PlaceWorker_TurretTop
  • +
  • PlaceWorker_ShowTurretRadius
  • +
    + +
  • + CompPowerTrader + 150 +
  • +
    + MinifiedThing + +
  • GunTurrets
  • +
  • PrecisionRifling
  • +
    +
    - + - - Turret_KPV - - 7 - - Things/Building/Turrets/KPV_base - (2,2) - - (0.27,0.25,0.6) - (0,0,0) - - - UI/Icons/Turrets/KPV_uiIcon - - 150 - 50500 - 88 - 100 - - KPV heavy machine gun mounted on a tripod. - - 275 - 6 - - - Gun_KPV - true - 0.37 - - -
  • PlaceWorker_TurretTop
  • -
  • PlaceWorker_ShowTurretRadius
  • -
    - Medium - -
  • CE_TurretHeavyWeapons
  • -
  • PrecisionRifling
  • -
    - MinifiedThing -
    + + Turret_KPV + + 7 + + Things/Building/Turrets/KPV_base + (2,2) + + (0.27,0.25,0.6) + (0,0,0) + + + UI/Icons/Turrets/KPV_uiIcon + + 150 + 50500 + 88 + 100 + + KPV heavy machine gun mounted on a tripod. + + 275 + 6 + + + Gun_KPV + true + 0.37 + +
  • CE_TurretHeavy
  • +
    +
    + +
  • PlaceWorker_TurretTop
  • +
  • PlaceWorker_ShowTurretRadius
  • +
    + Medium + +
  • CE_TurretHeavyWeapons
  • +
  • PrecisionRifling
  • +
    + MinifiedThing +
    - + - - Turret_M240B - - 6 - - Things/Building/Turrets/M240_base - (2,2) - - (0.27,0.25,0.45) - (0,0,0) - - - UI/Icons/Turrets/M240B_uiIcon - - 31500 - 16.5 - 20 - - M240B medium machine gun mounted on a tripod. - - 150 - 6 - - - Gun_M240B - true - 0.36 - - -
  • PlaceWorker_TurretTop
  • -
  • PlaceWorker_ShowTurretRadius
  • -
    - MinifiedThing - -
  • PrecisionRifling
  • -
    -
    + + Turret_M240B + + 6 + + Things/Building/Turrets/M240_base + (2,2) + + (0.27,0.25,0.45) + (0,0,0) + + + UI/Icons/Turrets/M240B_uiIcon + + 31500 + 16.5 + 20 + + M240B medium machine gun mounted on a tripod. + + 150 + 6 + + + Gun_M240B + true + 0.36 + + +
  • PlaceWorker_TurretTop
  • +
  • PlaceWorker_ShowTurretRadius
  • +
    + MinifiedThing + +
  • PrecisionRifling
  • +
    +
    - + - - Turret_AGSThirty - - 6 - - Things/Building/Turrets/AGS30_base - (2,2) - - (0.27,0.25,0.35) - (0,0,0) - - - UI/Icons/Turrets/AGS30_uiIcon - - 33500 - 16 - 20 - - Lightweight automatic grenade launcher mounted on a tripod. - - 115 - 5 - - - Gun_AGSThirty - true - 0.40 - - -
  • PlaceWorker_TurretTop
  • -
  • PlaceWorker_ShowTurretRadius
  • -
    - -
  • CE_TurretHeavyWeapons
  • -
  • CE_Launchers
  • -
    - MinifiedThing -
    + + Turret_AGSThirty + + 6 + + Things/Building/Turrets/AGS30_base + (2,2) + + (0.27,0.25,0.35) + (0,0,0) + + + UI/Icons/Turrets/AGS30_uiIcon + + 33500 + 16 + 20 + + Lightweight automatic grenade launcher mounted on a tripod. + + 115 + 5 + + + Gun_AGSThirty + true + 0.40 + + +
  • PlaceWorker_TurretTop
  • +
  • PlaceWorker_ShowTurretRadius
  • +
    + +
  • CE_TurretHeavyWeapons
  • +
  • CE_Launchers
  • +
    + MinifiedThing +
    - + - - Turret_Flak - - Old school anti-aircraft cannon. Ineffective against modern aviation but still popular on rimworlds for use against entrenched enemies and vehicles. - 8 - - Things/Building/Turrets/FlakTurret_Base - - (-0.13,-0.87,-0.1) - (0.5,0.4,1.05) - - - UI/Icons/Turrets/FlakTurret_uiIcon - - 500 - 0.4 - 79500 - 1000 - 1000 - - - 500 - 5 - - - classicMortars - true - - 5 - 1 - 350 - - - - Gun_FlakTurret - true - 4 - 2.5 - - -
  • PlaceWorker_TurretTop
  • -
  • PlaceWorker_ShowTurretRadius
  • -
    - Heavy - (3,3) - (-1,0,-1) - MinifiedThing - -
  • CE_TurretHeavyWeapons
  • -
    - Security -
    + + Turret_Flak + + Old school anti-aircraft cannon. Ineffective against modern aviation but still popular on rimworlds for use against entrenched enemies and vehicles. + 8 + + Things/Building/Turrets/FlakTurret_Base + + (-0.13,-0.87,-0.1) + (0.5,0.4,1.05) + + + UI/Icons/Turrets/FlakTurret_uiIcon + + 500 + 0.4 + 79500 + 1000 + 1000 + + + 500 + 5 + + + classicMortars + true + + 5 + 1 + 350 + + + + Gun_FlakTurret + true + 4 + 2.5 + + +
  • PlaceWorker_TurretTop
  • +
  • PlaceWorker_ShowTurretRadius
  • +
    + Heavy + (3,3) + (-1,0,-1) + MinifiedThing + +
  • CE_TurretHeavyWeapons
  • +
    + Security +
    \ No newline at end of file diff --git a/Defs/ThingDefs_Misc/Weapons_Grenades.xml b/Defs/ThingDefs_Misc/Weapons_Grenades.xml index 763a333ffb..4c7a7b32c1 100644 --- a/Defs/ThingDefs_Misc/Weapons_Grenades.xml +++ b/Defs/ThingDefs_Misc/Weapons_Grenades.xml @@ -111,7 +111,7 @@ 0.436 1.55 12.4 - 0.65 + 1.0 1
    2.0 @@ -195,7 +195,7 @@ 0.236 0.61 8.33 - 0.65 + 1.0 1
    @@ -272,7 +272,7 @@ 1.5 4.72 20.51 - 0.65 + 1.0 1
    @@ -344,7 +344,7 @@ 0.539 1.05 10.15 - 0.65 + 1.0 1
    @@ -422,7 +422,7 @@ 0.5 1.05 11.52 - 0.65 + 1.0 1
    diff --git a/Defs/ThingDefs_Misc/Weapons_RangedNeolithic.xml b/Defs/ThingDefs_Misc/Weapons_RangedNeolithic.xml index b1824d7e21..12826d2392 100644 --- a/Defs/ThingDefs_Misc/Weapons_RangedNeolithic.xml +++ b/Defs/ThingDefs_Misc/Weapons_RangedNeolithic.xml @@ -50,7 +50,7 @@ Interact_BeatFire 7.0 - 0.45 + 1.0 1.5 2.5 4.25 diff --git a/Defs/ThingDefs_Misc/Weapons_Turrets.xml b/Defs/ThingDefs_Misc/Weapons_Turrets.xml index 0b601d27d3..265677914a 100644 --- a/Defs/ThingDefs_Misc/Weapons_Turrets.xml +++ b/Defs/ThingDefs_Misc/Weapons_Turrets.xml @@ -1,450 +1,462 @@ - - - 1 - - 0 - Interact_Rifle - -
  • Gun
  • -
  • TurretGun
  • -
    - None - True - 0 - false - -
  • - True -
  • -
    -
    + + + 1 + + 0 + Interact_Rifle + +
  • Gun
  • +
  • TurretGun
  • +
    + None + True + 0 + false + +
  • + True +
  • +
    +
    - - -
  • - FALSE - AimedShot - true - true -
  • -
    -
    + + +
  • + FALSE + AimedShot + true + true +
  • +
    +
    - + - - Gun_BlasterTurret - - - 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 + + + 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 - - - 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 + + + 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 - - - 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 + + + 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 - - - 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 + + + 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 - - 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 + + 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 - - - 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 + + + 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 - - - 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 + + + 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 - - 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 + + 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 - - - 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 + + + 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/Defs/Tutor/Concepts_NotedOpportunistic.xml b/Defs/Tutor/Concepts_NotedOpportunistic.xml index 818205aa3a..943948e587 100644 --- a/Defs/Tutor/Concepts_NotedOpportunistic.xml +++ b/Defs/Tutor/Concepts_NotedOpportunistic.xml @@ -125,6 +125,17 @@ Combat Extended replaces the vanilla armor system with a penetration-based model. Blunt and sharp type weapons have armor penetration values which determine how much their damage is reduced by armor.\n\nAttacks that have less armor penetration than the armor value of a pawn are either deflected or fully mitigated, however armor values lower than the armor penetration will reduce damage based on the ratio of armor value to the attack's base armor penetration (e.g: if a pawn with an armor value of 8mm RHA is hit by a 10mm RHA projectile, the armor will block 80% of the damage).\nBlocked sharp damage is always turned into blunt damage and is checked against the blunt armor rating. The amount of blunt damage depends on the attack's base blunt penetration, which is affected by blocked sharp damage and blocked sharp penetration.\nIn the case of a deflection, a sharp attack is converted into blunt (preventing bleeding and internal organ damage) and is checked against the blunt armor rating. The amount of blunt damage depends on the attack's base blunt penetration and the pre-deflection remaining sharp penetration.\nA full mitigation happens when a blunt or sharp attack deals no damage because all armor penetration values are less than their armor rating. A sharp attack has to firstly be deflected to be fully mitigated.\n\nEnvironmental damage such as fire/electricity has no penetration and is simply reduced by the % of armor against that type. + + CE_AutoLoader + + 50 + True + Some specialized structures can use the ammo stored inside of them to reload adjacent compatible turrets. These loaders might be automated or require a colonist to operate. + +
  • CE_AutoLoader
  • +
    +
    + CE_SuppressionReaction diff --git a/Defs/WorkGiverDefs/WorkGivers.xml b/Defs/WorkGiverDefs/WorkGivers.xml index cd8f5ba05a..0e042e2b77 100644 --- a/Defs/WorkGiverDefs/WorkGivers.xml +++ b/Defs/WorkGiverDefs/WorkGivers.xml @@ -15,6 +15,20 @@ true + + ReloadAutoLoader + + CombatExtended.WorkGiver_ReloadAutoLoader + Hauling + reload + reloading + 106 + +
  • Manipulation
  • +
    + true +
    + DoBillsAmmoBench diff --git a/Languages/English/Keyed/AmmoContainerKeyed.xml b/Languages/English/Keyed/AmmoContainerKeyed.xml new file mode 100644 index 0000000000..231e47ae96 --- /dev/null +++ b/Languages/English/Keyed/AmmoContainerKeyed.xml @@ -0,0 +1,23 @@ + + + + Unload contents + Unload this autoloader's contents onto the floor. + + Reload turrets + Reload adjacent turrets immediately. Forbidden turrets and currently firing turrets will be ignored. + + {0} cannot find any adjacent available {1} turrets. + + Ammo replacement: on + The autoloader will replace turret's current ammo with the ammo type in the loader. + + Ammo replacement: off + The autoloader will only reload turret with the same ammo type in the loader. + + Reload time remaining: {0} seconds + Ammo type replacement: {0} + + Autoloader is reloading or being reloaded. + + \ No newline at end of file diff --git a/Languages/English/Keyed/ArmorDurability.xml b/Languages/English/Keyed/ArmorDurability.xml new file mode 100644 index 0000000000..0bbdac949a --- /dev/null +++ b/Languages/English/Keyed/ArmorDurability.xml @@ -0,0 +1,10 @@ + + + + + Armor durability: + Repair armor + Can't repair natural armor, armor is undamaged + Can't repair natural armor, no resources + + \ No newline at end of file diff --git a/Languages/English/Keyed/BipodStatWorker.xml b/Languages/English/Keyed/BipodStatWorker.xml new file mode 100644 index 0000000000..7b50ccc48f --- /dev/null +++ b/Languages/English/Keyed/BipodStatWorker.xml @@ -0,0 +1,12 @@ + + + + Time to set up bipod: + Auto sets up in firemode: + Stats when set up: + Stats when NOT set up: + Range + Warm up + Hover over to display + + \ No newline at end of file diff --git a/Languages/English/Keyed/ModMenu.xml b/Languages/English/Keyed/ModMenu.xml index 5a269914f9..ca1df7336e 100644 --- a/Languages/English/Keyed/ModMenu.xml +++ b/Languages/English/Keyed/ModMenu.xml @@ -82,6 +82,9 @@ If true, subsequent shots at the same, or nearby, targets are faster. Faster subsequent shots + Show additional projectile visual effects + Bullets and other projectiles will display additional effects, such as bullets kicking up dust or incendiaries throwing sparks. Cosmetic only, does not affect gameplay. + Bipod settings diff --git a/Patches/A Rimworld of Magic/Patch_Ranged.xml b/Patches/A Rimworld of Magic/Patch_Ranged.xml index 69ba9c7af7..ee16379ad3 100644 --- a/Patches/A Rimworld of Magic/Patch_Ranged.xml +++ b/Patches/A Rimworld of Magic/Patch_Ranged.xml @@ -172,7 +172,7 @@
  • Seer_IceRing - 0.35 + 1.0 0.14 0.10 0.5 @@ -223,7 +223,7 @@
  • Seer_LightningRing - 0.35 + 1.0 0.14 0.10 0.5 @@ -276,7 +276,7 @@
  • Seer_FireRing - 0.35 + 1.0 0.14 0.10 0.5 diff --git a/Patches/AOC The Cleanup Devil/Grenades.xml b/Patches/AOC The Cleanup Devil/Grenades.xml index 4e3e316f84..6477b8b7bf 100644 --- a/Patches/AOC The Cleanup Devil/Grenades.xml +++ b/Patches/AOC The Cleanup Devil/Grenades.xml @@ -88,7 +88,7 @@ 1 10.95 1 - 0.65 + 1.0 @@ -133,7 +133,7 @@ 1 4 1 - 0.65 + 1.0 diff --git a/Patches/AOC The Cleanup Devil/RangedWeapons.xml b/Patches/AOC The Cleanup Devil/RangedWeapons.xml index 78feddccab..953134f552 100644 --- a/Patches/AOC The Cleanup Devil/RangedWeapons.xml +++ b/Patches/AOC The Cleanup Devil/RangedWeapons.xml @@ -72,7 +72,7 @@ Defs/ThingDef[defName="AOC_Monojavelin"]/statBases - 0.65 + 1.0 1.5 2.5 2.5 diff --git a/Patches/Advanced Mechanoid Warfare/Patches/Patch_Races.xml b/Patches/Advanced Mechanoid Warfare/Patches/Patch_Races.xml index 8497598722..d6cbe8c9be 100644 --- a/Patches/Advanced Mechanoid Warfare/Patches/Patch_Races.xml +++ b/Patches/Advanced Mechanoid Warfare/Patches/Patch_Races.xml @@ -156,7 +156,7 @@ defName="Mech_Wraith" ]/statBases - 400 + 200 80 1.0 1 diff --git a/Patches/Advanced Mechanoid Warfare/Patches/Patch_Ranged.xml b/Patches/Advanced Mechanoid Warfare/Patches/Patch_Ranged.xml index 888d2230a0..cdae16d58f 100644 --- a/Patches/Advanced Mechanoid Warfare/Patches/Patch_Ranged.xml +++ b/Patches/Advanced Mechanoid Warfare/Patches/Patch_Ranged.xml @@ -769,7 +769,7 @@
  • AMW_Gun_SNomadRifle - 0.9 + 1.0 0.14 1.56 7.5 diff --git a/Patches/Alpha Biomes/RangedIndustrialGrenades.xml b/Patches/Alpha Biomes/RangedIndustrialGrenades.xml index ed2b5048f1..baa7b33aab 100644 --- a/Patches/Alpha Biomes/RangedIndustrialGrenades.xml +++ b/Patches/Alpha Biomes/RangedIndustrialGrenades.xml @@ -46,6 +46,13 @@ CombatExtended.ProjectilePropertiesCE
  • +
  • + Defs/ThingDef[defName="AB_WeaponPoisonDartProjectile"] + + CombatExtended.BulletCE + +
  • +
  • Defs/ThingDef[defName="AB_WeaponPoisonDartProjectile"]/projectile diff --git a/Patches/Alpha Mechs/Mods/Biotech/ThingDef_Misc/Weapons.xml b/Patches/Alpha Mechs/Mods/Biotech/ThingDef_Misc/Weapons.xml index 4ab263a003..0c81071e10 100644 --- a/Patches/Alpha Mechs/Mods/Biotech/ThingDef_Misc/Weapons.xml +++ b/Patches/Alpha Mechs/Mods/Biotech/ThingDef_Misc/Weapons.xml @@ -468,7 +468,7 @@ 20 0.39 - 0.8 + 1.0 4.0 1.33 @@ -716,6 +716,35 @@
  • + +
  • + Defs/ThingDef[defName="AM_MechanoidGunRotaryNeedle"] + ParentName + BaseWeapon +
  • + + +
  • + Defs/ThingDef[defName="AM_MechanoidGunRotaryNeedle"] + + Spacer + None + true + 0 + +
  • RangedHeavy
  • +
  • LongShots
  • + +
    + + +
  • + Defs/ThingDef[defName="AM_MechanoidGunRotaryNeedle"]/graphicData + + Graphic_Single + +
  • +
  • AM_MechanoidGunRotaryNeedle @@ -725,6 +754,7 @@ 0.05 1.0 10 + 1400 1.5 @@ -739,18 +769,37 @@ GunTail_Heavy 9 + +
  • NoSwitch
  • +
  • MechanoidGunLongRange
  • + 100 9.2 AmmoSet_5x100mmS - 10 - Snapshot - - -
  • NoSwitch
  • -
    + AimedShot + true + + + +
  • + Defs/ThingDef[defName="AM_MechanoidGunRotaryNeedle"] + + +
  • + + +
  • Blunt
  • + + 10 + 2.44 + 3.5 + Barrel + + +
    @@ -798,9 +847,9 @@ AM_Gun_MiniNeedle 0.38 - 1 + 2.06 0.05 - 0.81 + 0.6 7.00 @@ -808,8 +857,8 @@ CombatExtended.Verb_ShootCE true Bullet_5x100mmS_Sabot - 1.3 - 62 + 1.35 + 75 1 Shot_NeedleGun GunTail_Heavy diff --git a/Patches/Alpha Mechs/Mods/Biotech/ThingDef_Races/Races_Apoptosis.xml b/Patches/Alpha Mechs/Mods/Biotech/ThingDef_Races/Races_Apoptosis.xml index 7df2c4d791..8b994a8a83 100644 --- a/Patches/Alpha Mechs/Mods/Biotech/ThingDef_Races/Races_Apoptosis.xml +++ b/Patches/Alpha Mechs/Mods/Biotech/ThingDef_Races/Races_Apoptosis.xml @@ -27,7 +27,7 @@ Defs/ThingDef[defName="AM_Apoptosis"]/statBases 0.75 - 60 + 75 30 0.1 0.13 diff --git a/Patches/Alpha Mechs/Mods/Biotech/ThingDef_Races/Races_Infernus.xml b/Patches/Alpha Mechs/Mods/Biotech/ThingDef_Races/Races_Infernus.xml index b1ef1953b8..46cda6ed3b 100644 --- a/Patches/Alpha Mechs/Mods/Biotech/ThingDef_Races/Races_Infernus.xml +++ b/Patches/Alpha Mechs/Mods/Biotech/ThingDef_Races/Races_Infernus.xml @@ -27,7 +27,7 @@ Defs/ThingDef[defName="AM_Infernus"]/statBases 0.75 - 300 + 75 60 1.0 1.5 diff --git a/Patches/Alpha Mechs/Mods/Biotech/ThingDef_Races/Races_Legate.xml b/Patches/Alpha Mechs/Mods/Biotech/ThingDef_Races/Races_Legate.xml index 0536dc51ac..acbb6c5cdf 100644 --- a/Patches/Alpha Mechs/Mods/Biotech/ThingDef_Races/Races_Legate.xml +++ b/Patches/Alpha Mechs/Mods/Biotech/ThingDef_Races/Races_Legate.xml @@ -26,14 +26,14 @@
  • Defs/ThingDef[defName="AM_Mech_Legate"]/statBases/EnergyShieldRechargeRate - 1.125 + 1.5
  • Defs/ThingDef[defName="AM_Mech_Legate"]/statBases/EnergyShieldEnergyMax - 7.5 + 10.0
  • @@ -41,8 +41,8 @@ Defs/ThingDef[defName="AM_Mech_Legate"]/statBases 0.5 - 150 - 50 + 100 + 75 1.0 1 0.02 @@ -55,7 +55,7 @@
  • Defs/ThingDef[defName="AM_Mech_Legate"]/comps/li[@Class="CompProperties_ProjectileInterceptor"]/hitPoints - 675 + 1000
  • diff --git a/Patches/Alpha Mechs/Mods/Biotech/ThingDef_Races/Races_Siegemelter.xml b/Patches/Alpha Mechs/Mods/Biotech/ThingDef_Races/Races_Siegemelter.xml index 6ef3bc34ce..3336c07c28 100644 --- a/Patches/Alpha Mechs/Mods/Biotech/ThingDef_Races/Races_Siegemelter.xml +++ b/Patches/Alpha Mechs/Mods/Biotech/ThingDef_Races/Races_Siegemelter.xml @@ -41,7 +41,7 @@ 0.5 200 - 300 + 150 1.0 1.0 0.01 diff --git a/Patches/Alpha Mechs/Mods/Biotech/ThingDef_Races/Races_Starfire.xml b/Patches/Alpha Mechs/Mods/Biotech/ThingDef_Races/Races_Starfire.xml index e516900114..1b2d91ceca 100644 --- a/Patches/Alpha Mechs/Mods/Biotech/ThingDef_Races/Races_Starfire.xml +++ b/Patches/Alpha Mechs/Mods/Biotech/ThingDef_Races/Races_Starfire.xml @@ -41,7 +41,7 @@ 0.5 200 - 300 + 150 1.0 1.0 0.01 diff --git a/Patches/Alpha Mechs/Mods/Biotech/ThingDef_Races/Races_WarEmpress.xml b/Patches/Alpha Mechs/Mods/Biotech/ThingDef_Races/Races_WarEmpress.xml index c9155a970d..a0a3ad95ff 100644 --- a/Patches/Alpha Mechs/Mods/Biotech/ThingDef_Races/Races_WarEmpress.xml +++ b/Patches/Alpha Mechs/Mods/Biotech/ThingDef_Races/Races_WarEmpress.xml @@ -41,7 +41,7 @@ Defs/ThingDef[defName="AM_WarEmpress"]/statBases 0.75 - 100 + 75 50 1.0 1 diff --git a/Patches/Alpha Mechs/Mods/VFE_Mechs/Advanced/AdvGoliath.xml b/Patches/Alpha Mechs/Mods/VFE_Mechs/Advanced/AdvGoliath.xml index a110b78dda..ddb65592d5 100644 --- a/Patches/Alpha Mechs/Mods/VFE_Mechs/Advanced/AdvGoliath.xml +++ b/Patches/Alpha Mechs/Mods/VFE_Mechs/Advanced/AdvGoliath.xml @@ -41,8 +41,8 @@ Defs/ThingDef[defName="VFE_Mech_Advanced_Goliath"]/statBases 0.75 - 400 - 200 + 200 + 100 1.0 1.25 0.05 diff --git a/Patches/Alpha Mechs/Mods/VFE_Mechs/Advanced/AdvSiegebreaker.xml b/Patches/Alpha Mechs/Mods/VFE_Mechs/Advanced/AdvSiegebreaker.xml index 12a9c1fcf5..1ac4837eef 100644 --- a/Patches/Alpha Mechs/Mods/VFE_Mechs/Advanced/AdvSiegebreaker.xml +++ b/Patches/Alpha Mechs/Mods/VFE_Mechs/Advanced/AdvSiegebreaker.xml @@ -42,7 +42,7 @@ 0.75 200 - 300 + 200 1.0 1.0 0.01 diff --git a/Patches/Alpha Mechs/Mods/VFE_Mechs/Clean/VFEGoliath.xml b/Patches/Alpha Mechs/Mods/VFE_Mechs/Clean/VFEGoliath.xml index c663b5d1da..64d1a7ff8c 100644 --- a/Patches/Alpha Mechs/Mods/VFE_Mechs/Clean/VFEGoliath.xml +++ b/Patches/Alpha Mechs/Mods/VFE_Mechs/Clean/VFEGoliath.xml @@ -40,8 +40,8 @@ Defs/ThingDef[defName="VFE_Mech_Goliath"]/statBases 0.25 - 400 - 200 + 200 + 100 1.0 1.25 0.05 diff --git a/Patches/Alpha Mechs/Mods/VFE_Mechs/Clean/VFESiegebreaker.xml b/Patches/Alpha Mechs/Mods/VFE_Mechs/Clean/VFESiegebreaker.xml index 545a2668b0..7c3aa0bee9 100644 --- a/Patches/Alpha Mechs/Mods/VFE_Mechs/Clean/VFESiegebreaker.xml +++ b/Patches/Alpha Mechs/Mods/VFE_Mechs/Clean/VFESiegebreaker.xml @@ -41,7 +41,7 @@ 0.25 200 - 300 + 150 1.0 1.0 0.01 diff --git a/Patches/Alpha Mechs/ThingDefs_Misc/AlphaMechs_RangedMechanoid.xml b/Patches/Alpha Mechs/ThingDefs_Misc/AlphaMechs_RangedMechanoid.xml index 944e201b80..7c3223e20e 100644 --- a/Patches/Alpha Mechs/ThingDefs_Misc/AlphaMechs_RangedMechanoid.xml +++ b/Patches/Alpha Mechs/ThingDefs_Misc/AlphaMechs_RangedMechanoid.xml @@ -65,7 +65,7 @@ 20 0.39 - 0.8 + 1.0 4.0 1.33 @@ -204,7 +204,7 @@ 20 1.0 - 0.8 + 1.0 1.0 1.33 1.00 diff --git a/Patches/Alpha Mechs/ThingDefs_Races/AlphaMechs_Race_Goliath.xml b/Patches/Alpha Mechs/ThingDefs_Races/AlphaMechs_Race_Goliath.xml index b7cbc9f40f..57b4f9d2cb 100644 --- a/Patches/Alpha Mechs/ThingDefs_Races/AlphaMechs_Race_Goliath.xml +++ b/Patches/Alpha Mechs/ThingDefs_Races/AlphaMechs_Race_Goliath.xml @@ -36,8 +36,8 @@ Defs/ThingDef[defName="AM_Goliath"]/statBases 0.25 - 400 - 200 + 200 + 100 1.0 1.25 0.05 diff --git a/Patches/Alpha Mechs/ThingDefs_Races/AlphaMechs_Race_Siegebreaker.xml b/Patches/Alpha Mechs/ThingDefs_Races/AlphaMechs_Race_Siegebreaker.xml index 0b81aac988..567d65c799 100644 --- a/Patches/Alpha Mechs/ThingDefs_Races/AlphaMechs_Race_Siegebreaker.xml +++ b/Patches/Alpha Mechs/ThingDefs_Races/AlphaMechs_Race_Siegebreaker.xml @@ -36,7 +36,7 @@ 0.25 200 - 300 + 150 1.0 1.0 0.01 diff --git a/Patches/Alpha Vehicle/Alpha_Vehicle.xml b/Patches/Alpha Vehicle/Alpha_Vehicle.xml new file mode 100644 index 0000000000..f478bf0b69 --- /dev/null +++ b/Patches/Alpha Vehicle/Alpha_Vehicle.xml @@ -0,0 +1,432 @@ + + + + + +
  • Alpha Vehicles - Neolithic
  • +
    + + + + + +
  • + Defs/Vehicles.VehicleDef[defName="AV_Chariot"]/statBases/ArmorRating_Blunt + + 1 + +
  • + +
  • + Defs/Vehicles.VehicleDef[defName="AV_Chariot"]/statBases/ArmorRating_Sharp + + 2 + +
  • + +
  • + Defs/Vehicles.VehicleDef[defName="AV_Chariot"]/components/li[key="LeftWheel"]/armor/ArmorRating_Blunt + + 1 + +
  • + +
  • + Defs/Vehicles.VehicleDef[defName="AV_Chariot"]/components/li[key="LeftWheel"]/armor/ArmorRating_Sharp + + 0.5 + +
  • + +
  • + Defs/Vehicles.VehicleDef[defName="AV_Chariot"]/components/li[key="RightWheel"]/armor/ArmorRating_Blunt + + 1 + +
  • + +
  • + Defs/Vehicles.VehicleDef[defName="AV_Chariot"]/components/li[key="RightWheel"]/armor/ArmorRating_Sharp + + 0.5 + +
  • + +
  • + Defs/Vehicles.VehicleDef[defName="AV_Chariot"]/components/li[key="WoodenStructure"]/armor/ArmorRating_Blunt + + 2 + +
  • + +
  • + Defs/Vehicles.VehicleDef[defName="AV_Chariot"]/components/li[key="WoodenStructure"]/armor/ArmorRating_Sharp + + 1 + +
  • + + +
  • + Defs/Vehicles.VehicleDef[defName="AV_CoveredCarriage"]/statBases/ArmorRating_Blunt + + 3.5 + +
  • + +
  • + Defs/Vehicles.VehicleDef[defName="AV_CoveredCarriage"]/statBases/ArmorRating_Sharp + + 1.65 + +
  • + +
  • + Defs/Vehicles.VehicleDef[defName="AV_CoveredCarriage"]/components/li[key="FrontLeftWheel"]/armor/ArmorRating_Blunt + + 1 + +
  • + +
  • + Defs/Vehicles.VehicleDef[defName="AV_CoveredCarriage"]/components/li[key="FrontLeftWheel"]/armor/ArmorRating_Sharp + + 0.5 + +
  • + +
  • + Defs/Vehicles.VehicleDef[defName="AV_CoveredCarriage"]/components/li[key="BackLeftWheel"]/armor/ArmorRating_Blunt + + 1 + +
  • + +
  • + Defs/Vehicles.VehicleDef[defName="AV_CoveredCarriage"]/components/li[key="BackLeftWheel"]/armor/ArmorRating_Sharp + + 0.5 + +
  • + +
  • + Defs/Vehicles.VehicleDef[defName="AV_CoveredCarriage"]/components/li[key="FrontRightWheel"]/armor/ArmorRating_Blunt + + 1 + +
  • + +
  • + Defs/Vehicles.VehicleDef[defName="AV_CoveredCarriage"]/components/li[key="FrontRightWheel"]/armor/ArmorRating_Sharp + + 0.5 + +
  • + +
  • + Defs/Vehicles.VehicleDef[defName="AV_CoveredCarriage"]/components/li[key="BackRightWheel"]/armor/ArmorRating_Blunt + + 1 + +
  • + +
  • + Defs/Vehicles.VehicleDef[defName="AV_CoveredCarriage"]/components/li[key="BackRightWheel"]/armor/ArmorRating_Sharp + + 0.5 + +
  • + +
  • + Defs/Vehicles.VehicleDef[defName="AV_CoveredCarriage"]/components/li[key="WoodenStructure"]/armor/ArmorRating_Blunt + + 2 + +
  • + +
  • + Defs/Vehicles.VehicleDef[defName="AV_CoveredCarriage"]/components/li[key="WoodenStructure"]/armor/ArmorRating_Sharp + + 1 + +
  • + + +
  • + Defs/Vehicles.VehicleDef[defName="AV_DogSled"]/statBases/ArmorRating_Blunt + + 1 + +
  • + +
  • + Defs/Vehicles.VehicleDef[defName="AV_DogSled"]/statBases/ArmorRating_Sharp + + 0.5 + +
  • + +
  • + Defs/Vehicles.VehicleDef[defName="AV_DogSled"]/components/li[key="WoodenStructure"]/armor/ArmorRating_Blunt + + 1 + +
  • + +
  • + Defs/Vehicles.VehicleDef[defName="AV_DogSled"]/components/li[key="WoodenStructure"]/armor/ArmorRating_Sharp + + 0.5 + +
  • + + +
  • + Defs/Vehicles.VehicleDef[defName="AV_OutriggerCanoe"]/statBases/ArmorRating_Blunt + + 1 + +
  • + +
  • + Defs/Vehicles.VehicleDef[defName="AV_OutriggerCanoe"]/statBases/ArmorRating_Sharp + + 0.5 + +
  • + +
  • + Defs/Vehicles.VehicleDef[defName="AV_OutriggerCanoe"]/components/li[key="WoodenHull"] + + + 1 + 0.5 + + +
  • + +
  • + Defs/Vehicles.VehicleDef[defName="AV_OutriggerCanoe"]/components/li[key="Outrigger"] + + + 1 + 0.5 + + +
  • + +
  • + Defs/Vehicles.VehicleDef[defName="AV_OutriggerCanoe"]/components/li[key="Sail"] + + + 0.015 + 0.01 + + +
  • + + +
  • + Defs/Vehicles.VehicleDef[defName="AV_OxCart"]/statBases/ArmorRating_Blunt + + 2 + +
  • + +
  • + Defs/Vehicles.VehicleDef[defName="AV_OxCart"]/statBases/ArmorRating_Sharp + + 1 + +
  • + +
  • + Defs/Vehicles.VehicleDef[defName="AV_OxCart"]/components/li[key="LeftWheel"]/armor/ArmorRating_Blunt + + 16 + +
  • + +
  • + Defs/Vehicles.VehicleDef[defName="AV_OxCart"]/components/li[key="LeftWheel"]/armor/ArmorRating_Sharp + + 8 + +
  • + +
  • + Defs/Vehicles.VehicleDef[defName="AV_OxCart"]/components/li[key="RightWheel"]/armor/ArmorRating_Blunt + + 16 + +
  • + +
  • + Defs/Vehicles.VehicleDef[defName="AV_OxCart"]/components/li[key="RightWheel"]/armor/ArmorRating_Sharp + + 8 + +
  • + +
  • + Defs/Vehicles.VehicleDef[defName="AV_OxCart"]/components/li[key="WoodenStructure"]/armor/ArmorRating_Blunt + + 2 + +
  • + +
  • + Defs/Vehicles.VehicleDef[defName="AV_OxCart"]/components/li[key="WoodenStructure"]/armor/ArmorRating_Sharp + + 1 + +
  • + + +
  • + Defs/Vehicles.VehicleDef[defName="AV_Palanquin"]/statBases/ArmorRating_Blunt + + 1 + +
  • + +
  • + Defs/Vehicles.VehicleDef[defName="AV_Palanquin"]/statBases/ArmorRating_Sharp + + 0.5 + +
  • + +
  • + Defs/Vehicles.VehicleDef[defName="AV_Palanquin"]/components/li[key="WoodenStructure"] + + + 2 + 1 + + +
  • + +
  • + Defs/Vehicles.VehicleDef[defName="AV_Palanquin"]/components/li[key="Handles"] + + + 8 + 4 + + +
  • + + +
  • + Defs/Vehicles.VehicleDef[defName="AV_Rickshaw"]/statBases/ArmorRating_Blunt + + 1 + +
  • + +
  • + Defs/Vehicles.VehicleDef[defName="AV_Rickshaw"]/statBases/ArmorRating_Sharp + + 0.5 + +
  • + +
  • + Defs/Vehicles.VehicleDef[defName="AV_Rickshaw"]/components/li[key="WoodenStructure"] + + + 1 + 0.5 + + +
  • + +
  • + Defs/Vehicles.VehicleDef[defName="AV_Rickshaw"]/components/li[key="LeftWheel"] + + + 4 + 2 + + +
  • + +
  • + Defs/Vehicles.VehicleDef[defName="AV_Rickshaw"]/components/li[key="RightWheel"] + + + 4 + 2 + + +
  • + +
  • + Defs/Vehicles.VehicleDef[defName="AV_Rickshaw"]/components/li[key="Handles"] + + + 8 + 4 + + +
  • + + +
  • + Defs/Vehicles.VehicleDef[defName="AV_Wheelbarrow"]/statBases/ArmorRating_Blunt + + 1 + +
  • + +
  • + Defs/Vehicles.VehicleDef[defName="AV_Wheelbarrow"]/statBases/ArmorRating_Sharp + + 0.5 + +
  • + +
  • + Defs/Vehicles.VehicleDef[defName="AV_Wheelbarrow"]/components/li[key="WoodenStructure"]/armor/ArmorRating_Blunt + + 2 + +
  • + +
  • + Defs/Vehicles.VehicleDef[defName="AV_Wheelbarrow"]/components/li[key="WoodenStructure"]/armor/ArmorRating_Sharp + + 1 + +
  • + +
  • + Defs/Vehicles.VehicleDef[defName="AV_Wheelbarrow"]/components/li[key="FrontWheel"]/armor/ArmorRating_Blunt + + 2 + +
  • + +
  • + Defs/Vehicles.VehicleDef[defName="AV_Wheelbarrow"]/components/li[key="FrontWheel"]/armor/ArmorRating_Sharp + + 1 + +
  • + +
  • + Defs/Vehicles.VehicleDef[defName="AV_Wheelbarrow"]/components/li[key="Handles"] + + + 8 + 4 + + +
  • + +
    +
    +
    + +
    \ No newline at end of file diff --git a/Patches/Alpha Vehicle/Alpha_Vehicle_Hwacha.xml b/Patches/Alpha Vehicle/Alpha_Vehicle_Hwacha.xml new file mode 100644 index 0000000000..29cc9c3cfd --- /dev/null +++ b/Patches/Alpha Vehicle/Alpha_Vehicle_Hwacha.xml @@ -0,0 +1,295 @@ + + + + + +
  • Alpha Vehicles - Neolithic
  • +
    + + + + + +
  • + Defs/Vehicles.VehicleTurretDef[defName="AV_Hwacha_Turret"]/projectile + + Projectile_GreatArrow_ExplosiveArrow + +
  • + +
  • + Defs/Vehicles.VehicleTurretDef[defName="AV_Hwacha_Turret"]/reloadTimer + + 12.0 + +
  • + +
  • + Defs/Vehicles.VehicleTurretDef[defName="AV_Hwacha_Turret"]/warmUpTimer + + 3.0 + +
  • + +
  • + Defs/Vehicles.VehicleTurretDef[defName="AV_Hwacha_Turret"]/chargePerAmmoCount +
  • + +
  • + Defs/Vehicles.VehicleTurretDef[defName="AV_Hwacha_Turret"]/genericAmmo + + false + +
  • + +
  • + Defs/Vehicles.VehicleTurretDef[defName="AV_Hwacha_Turret"]/magazineCapacity + + 64 + +
  • + +
  • + Defs/Vehicles.VehicleTurretDef[defName="AV_Hwacha_Turret"]/maxRange + + 20 + +
  • + +
  • + Defs/Vehicles.VehicleTurretDef[defName="AV_Hwacha_Turret"]/fireModes + + +
  • + 64 + 6 + 15 + + UI/Gizmos/AV_ArrowBarrage +
  • +
  • + 32 + 6 + 15 + + UI/Gizmos/FireRate_Auto +
  • +
  • + 8 + 6 + 15 + + UI/Gizmos/FireRate_Burst +
  • + +
    + + +
  • + Defs/Vehicles.VehicleTurretDef[defName="AV_Hwacha_Turret"]/ammunition/thingDefs + + +
  • Ammo_GreatArrow_ExplosiveArrow
  • + +
    + + +
  • + Defs/Vehicles.VehicleTurretDef[defName="AV_Hwacha_Turret"] + +
  • + AmmoSet_Hwacha + 2.1 + 30 + 10 + 0.1 + 30 +
  • +
    + + +
  • + Defs + + + + AmmoSet_Hwacha + + + + Projectile_GreatArrow_ExplosiveArrow + + + + + Ammo_GreatArrow_ExplosiveArrow + + + Things/Ammo/Neolithic/Arrow/Flame + Graphic_StackCount + + + 0.05 + 1.16 + + RocketArrow + + + + Projectile_GreatArrow_ExplosiveArrow + + + + Things/Projectiles/AV_ArrowProjectile + Graphic_Single + + + 30 + Arrow + 10 + 3.18 + 2 + 3.0 + 0.42 + 2.0 + Explosion_Rocket + + +
  • + 20 + Bomb + 0.5 + true +
  • + + + + + MakeAmmo_GreatArrow_ExplosiveArrow + + Craft 10 hwacha explosive arrows. + Making hwacha rocket arrows. + 800 + +
  • + + +
  • WoodLog
  • + + + 1 + +
  • + + +
  • Steel
  • + + + 2 + +
  • + + +
  • FSX
  • + + + 1 + +
  • + + +
  • Cloth
  • + + + 1 + +
    + + +
  • WoodLog
  • +
  • Steel
  • +
  • FSX
  • +
  • Cloth
  • +
    +
    + + 10 + + +
  • CE_Gunpowder
  • +
    +
    + + + RocketArrow + + hwacha + Steel arrowhead with an underslung tube of gunpowder for explosive results. + true + + +
    + + + +
  • + Defs/Vehicles.VehicleDef[defName="AV_Hwacha"]/statBases/ArmorRating_Blunt + + 2 + +
  • + +
  • + Defs/Vehicles.VehicleDef[defName="AV_Hwacha"]/statBases/ArmorRating_Sharp + + 1 + +
  • + +
  • + Defs/Vehicles.VehicleDef[defName="AV_Hwacha"]/components/li[key="LeftWheel"]/armor/ArmorRating_Blunt + + 1 + +
  • + +
  • + Defs/Vehicles.VehicleDef[defName="AV_Hwacha"]/components/li[key="LeftWheel"]/armor/ArmorRating_Sharp + + 0.5 + +
  • + +
  • + Defs/Vehicles.VehicleDef[defName="AV_Hwacha"]/components/li[key="RightWheel"]/armor/ArmorRating_Blunt + + 1 + +
  • + +
  • + Defs/Vehicles.VehicleDef[defName="AV_Hwacha"]/components/li[key="RightWheel"]/armor/ArmorRating_Sharp + + 0.5 + +
  • + +
  • + Defs/Vehicles.VehicleDef[defName="AV_Hwacha"]/components/li[key="WoodenStructure"]/armor/ArmorRating_Blunt + + 2 + +
  • + +
  • + Defs/Vehicles.VehicleDef[defName="AV_Hwacha"]/components/li[key="WoodenStructure"]/armor/ArmorRating_Sharp + + 1 + +
  • + + + +
    + + \ No newline at end of file diff --git a/Patches/Alpha Vehicle/Alpha_Vehicle_WarChariot.xml b/Patches/Alpha Vehicle/Alpha_Vehicle_WarChariot.xml new file mode 100644 index 0000000000..e18123cb4a --- /dev/null +++ b/Patches/Alpha Vehicle/Alpha_Vehicle_WarChariot.xml @@ -0,0 +1,162 @@ + + + + + +
  • Alpha Vehicles - Neolithic
  • +
    + + + + + + +
  • + Defs/Vehicles.VehicleTurretDef[defName="AV_WarChariot_Turret"]/projectile + + Projectile_GreatArrow_Stone + +
  • + +
  • + Defs/Vehicles.VehicleTurretDef[defName="AV_WarChariot_Turret"]/reloadTimer + + 1.6 + +
  • + +
  • + Defs/Vehicles.VehicleTurretDef[defName="AV_WarChariot_Turret"]/warmUpTimer + + 1.3 + +
  • + +
  • + Defs/Vehicles.VehicleTurretDef[defName="AV_WarChariot_Turret"]/chargePerAmmoCount +
  • + +
  • + Defs/Vehicles.VehicleTurretDef[defName="AV_WarChariot_Turret"]/genericAmmo + + false + +
  • + + + +
  • + Defs/Vehicles.VehicleTurretDef[defName="AV_WarChariot_Turret"]/maxRange + + 30 + +
  • + + + +
  • + Defs/Vehicles.VehicleTurretDef[defName="AV_WarChariot_Turret"]/ammunition/thingDefs + + +
  • Ammo_GreatArrow_Stone
  • +
  • Ammo_GreatArrow_Steel
  • +
  • Ammo_GreatArrow_Plasteel
  • +
  • Ammo_GreatArrow_Venom
  • +
  • Ammo_GreatArrow_Flame
  • + + + + +
  • + Defs/Vehicles.VehicleTurretDef[defName="AV_WarChariot_Turret"] + +
  • + AmmoSet_GreatArrow + 2 + 30 + 2 + 1 +
  • + + + + +
  • + Defs/Vehicles.VehicleDef[defName="AV_WarChariot"]/statBases/ArmorRating_Blunt + + 1 + +
  • + +
  • + Defs/Vehicles.VehicleDef[defName="AV_WarChariot"]/statBases/ArmorRating_Sharp + + 0.5 + +
  • + +
  • + Defs/Vehicles.VehicleDef[defName="AV_WarChariot"]/components/li[key="WoodenStructure"]/armor/ArmorRating_Blunt + + 2 + +
  • + +
  • + Defs/Vehicles.VehicleDef[defName="AV_WarChariot"]/components/li[key="WoodenStructure"]/armor/ArmorRating_Sharp + + 1 + +
  • + +
  • + Defs/Vehicles.VehicleDef[defName="AV_WarChariot"]/components/li[key="LeftWheel"]/armor/ArmorRating_Blunt + + 2 + +
  • + +
  • + Defs/Vehicles.VehicleDef[defName="AV_WarChariot"]/components/li[key="LeftWheel"]/armor/ArmorRating_Sharp + + 1 + +
  • + +
  • + Defs/Vehicles.VehicleDef[defName="AV_WarChariot"]/components/li[key="RightWheel"]/armor/ArmorRating_Blunt + + 2 + +
  • + +
  • + Defs/Vehicles.VehicleDef[defName="AV_WarChariot"]/components/li[key="RightWheel"]/armor/ArmorRating_Sharp + + 1 + +
  • + +
    +
    +
    + +
    \ No newline at end of file diff --git a/Patches/Ancient Arsenal Warcaskets/Ammo/AmmoCategories_AAW.xml b/Patches/Ancient Arsenal Warcaskets/Ammo/AmmoCategories_AAW.xml new file mode 100644 index 0000000000..c137e02f44 --- /dev/null +++ b/Patches/Ancient Arsenal Warcaskets/Ammo/AmmoCategories_AAW.xml @@ -0,0 +1,43 @@ + + + + + +
  • Ancient Arsenal: Warcaskets
  • +
    + + Defs + + + + Standard + + Standard + A gyro-stabilized projectile equipped with a hardened tip for penetrating armor and laden with a small explosive charge. + + + + Inferno + + Inferno + A gyro-stabilized projectile equipped with the explosive filler replaced with sticky, highly flammable prometheum. + + + + MetalStorm + + Metal Storm + A gyro-stabilized equipped with a proximity fuse, designed to shower lighly armored targets with a devestating shower of fragmention when it detonates. + + + + Kraken + + Kraken + A gyro-stabilized projectile with hardened penetrator and explosive 'kicker' charge, designed to punch through heavy armor. + + + +
    + +
    \ No newline at end of file diff --git a/Patches/Ancient Arsenal Warcaskets/Ammo/Bolter.xml b/Patches/Ancient Arsenal Warcaskets/Ammo/Bolter.xml new file mode 100644 index 0000000000..0c252b9337 --- /dev/null +++ b/Patches/Ancient Arsenal Warcaskets/Ammo/Bolter.xml @@ -0,0 +1,439 @@ + + + + + +
  • Ancient Arsenal: Warcaskets
  • +
    + + Defs + + + + AmmoBrigador + + AmmoAdvanced + UI/Icons/ThingCategories/CaliberHighCaliber + + + + + + AmmoSetBrigador + + + Bullet_Brigador_Standard + Bullet_Brigador_Inferno + Bullet_Brigador_MetalStorm + Bullet_Brigador_Kraken + + + + + + + A gryojet-stabilized projectile with an explosive charge and hardened tip, fired from most patterns of Astartes bolters. + + 0.151 + 0.06 + + +
  • CE_AutoEnableTrade
  • +
  • CE_AutoEnableCrafting
  • +
    + +
  • AmmoBrigador
  • +
    + 5000 +
    + + + Ammo_Brigador_Standard + + + ThirdParty/Warhammer/Bolter/Standard + Graphic_StackCount + + + 1.98 + + Standard + Bullet_Brigador_Standard + + + + Ammo_Brigador_Inferno + + + ThirdParty/Warhammer/Bolter/Inferno + Graphic_StackCount + + + 1.37 + + Inferno + Bullet_Brigador_Inferno + + + + Ammo_Brigador_MetalStorm + + + ThirdParty/Warhammer/Bolter/MetalStorm + Graphic_StackCount + + + 1.48 + + MetalStorm + Bullet_Brigador_MetalStorm + + + + Ammo_Brigador_Kraken + + + ThirdParty/Warhammer/Bolter/Kraken + Graphic_StackCount + + + 1.48 + + Kraken + Bullet_Brigador_Kraken + + + + + + + Things/Projectile/Bullet_Big + Graphic_Single + + CombatExtended.BulletCE + + Bullet + 80 + true + Fleck_PistolAmmoCasings + Filth_PistolAmmoCasings + + + + + Bullet_Brigador_Standard + + + 37 + 14 + 2.931 + +
  • + Bomb_Secondary + 22 +
  • +
    +
    +
    + + + Bullet_Brigador_Inferno + + CombatExtended.ProjectileCE_Explosive + + PrometheumFlame + 3 + 0.5 + FilthPrometheum + 1 + MortarIncendiary_Explode + + +
  • + 4 + Thermobaric + 0.5 + MortarIncendiary_Explode + true +
  • +
    +
    + + + Bullet_Brigador_MetalStorm + CombatExtended.ProjectileCE_Bursting + + + 0.5 + Bomb + 10 + true + 1.2 + 1.5 + + +
  • + + 6 + + -89~-5 +
  • +
    +
    + + + Bullet_Brigador_Kraken + + + Bullet + 104 + 27.6 + 2.931 + + +
  • + 10 + Bomb + 0.25 + MortarBomb_Explode + true +
  • +
    +
    + + + + + MakeAmmo_Brigador_Standard + + Craft 200 Brigador Bolter (standard) shells. + Making Brigador Bolter (standard) shells. + +
  • + + +
  • Steel
  • + + + 62 + +
  • + + +
  • FSX
  • + + + 14 + +
  • + + +
  • ComponentIndustrial
  • + + + 2 + +
    + + +
  • Steel
  • +
  • FSX
  • +
  • ComponentIndustrial
  • +
    +
    + + 200 + + 10400 +
    + + + MakeAmmo_Brigador_Inferno + + Craft 200 Brigador Bolter (inferno) shells. + Making Brigador Bolter (inferno) shells. + +
  • + + +
  • Steel
  • + + + 62 + +
  • + + +
  • Prometheum
  • + + + 7 + +
  • + + +
  • ComponentIndustrial
  • + + + 4 + +
    + + +
  • Steel
  • +
  • Prometheum
  • +
  • ComponentIndustrial
  • +
    +
    + + 200 + + 9400 +
    + + + MakeAmmo_Brigador_MetalStorm + + Craft 200 Brigador Bolter (metal storm) shells. + Making Brigador Bolter (metal storm) shells. + +
  • + + +
  • Steel
  • + + + 62 + +
  • + + +
  • FSX
  • + + + 5 + +
  • + + +
  • ComponentIndustrial
  • + + + 6 + +
    + + +
  • Steel
  • +
  • FSX
  • +
  • ComponentIndustrial
  • +
    +
    + + 200 + + 9400 +
    + + + MakeAmmo_Brigador_MetalStorm + + Craft 200 Brigador Bolter (metal storm) shells. + Making Brigador Bolter (metal storm) shells. + +
  • + + +
  • Steel
  • + + + 62 + +
  • + + +
  • FSX
  • + + + 5 + +
  • + + +
  • ComponentIndustrial
  • + + + 6 + +
    + + +
  • Steel
  • +
  • FSX
  • +
  • ComponentIndustrial
  • +
    +
    + + 200 + + 12400 +
    + + + MakeAmmo_Brigador_Kraken + + Craft 200 Brigador Bolter (kraken) shells. + Making Brigador Bolter (kraken) shells. + +
  • + + +
  • Steel
  • + + + 62 + +
  • + + +
  • FSX
  • + + + 4 + +
  • + + +
  • ComponentIndustrial
  • + + + 4 + +
  • + + +
  • Uranium
  • + + + 4 + +
    + + +
  • Steel
  • +
  • FSX
  • +
  • ComponentIndustrial
  • +
  • Uranium
  • +
    +
    + + 200 + + 13200 +
    + +
    +
    +
    + +
    diff --git a/Patches/Ancient Arsenal Warcaskets/AncientWarcaskets.xml b/Patches/Ancient Arsenal Warcaskets/AncientWarcaskets.xml new file mode 100644 index 0000000000..97b8540174 --- /dev/null +++ b/Patches/Ancient Arsenal Warcaskets/AncientWarcaskets.xml @@ -0,0 +1,361 @@ + + + + + +
  • Ancient Arsenal: Warcaskets
  • +
    + + + + +
  • + Defs/VFEPirates.WarcasketDef[defName="WarcasketHelmet_Ancient"]/statBases/ArmorRating_Sharp + + 36 + +
  • + +
  • + Defs/VFEPirates.WarcasketDef[defName="WarcasketHelmet_Ancient"]/statBases/ArmorRating_Blunt + + 80 + +
  • + +
  • + Defs/VFEPirates.WarcasketDef[defName="WarcasketHelmet_Ancient"]/apparel/immuneToToxGasExposure + + Defs/VFEPirates.WarcasketDef[defName="WarcasketHelmet_Ancient"]/apparel + + true + + +
  • + +
  • + Defs/VFEPirates.WarcasketDef[defName="WarcasketHelmet_Ancient"]/statBases + + 20 + 10 + 0.95 + +
  • + +
  • + Defs/VFEPirates.WarcasketDef[defName="WarcasketHelmet_Ancient"]/equippedStatOffsets + + -1 + +
  • + +
  • + Defs/VFEPirates.WarcasketDef[defName="WarcasketHelmet_Ancient"]/apparel/immuneToToxGasExposure + + Defs/VFEPirates.WarcasketDef[defName="WarcasketHelmet_Ancient"]/apparel + + true + + +
  • + +
  • + Defs/VFEPirates.WarcasketDef[defName="WarcasketHelmet_Ancient"]/verbs +
  • +
  • + Defs/VFEPirates.WarcasketDef[defName="WarcasketHelmet_Ancient"]/comps/li[@Class="MVCF.Comps.CompProperties_VerbGiver"] +
  • + + + +
  • + Defs/VFEPirates.WarcasketDef[defName="VFEP_WarcasketShoulders_Ancient"]/statBases + + 15 + 5 + +
  • + +
  • + Defs/VFEPirates.WarcasketDef[defName="VFEP_WarcasketShoulders_Ancient"]/statBases/ArmorRating_Sharp + + 40 + +
  • + +
  • + Defs/VFEPirates.WarcasketDef[defName="VFEP_WarcasketShoulders_Ancient"]/statBases/ArmorRating_Blunt + + 100 + +
  • + + + +
  • + Defs/VFEPirates.WarcasketDef[defName="Warcasket_Ancient"]/statBases + + 275 + 35 + +
  • + +
  • + Defs/VFEPirates.WarcasketDef[defName="Warcasket_Ancient"]/statBases/ArmorRating_Sharp + + 40 + +
  • + +
  • + Defs/VFEPirates.WarcasketDef[defName="Warcasket_Ancient"]/statBases/ArmorRating_Blunt + + 100 + +
  • + +
  • + Defs/VFEPirates.WarcasketDef[defName="Warcasket_Ancient"]/equippedStatOffsets + + 350 + 425 + -100 + +
  • + + +
  • + Defs/VFEPirates.WarcasketDef[defName="WarcasketHelmet_Ancient_Cloak"]/statBases/ArmorRating_Sharp + + 45 + +
  • + +
  • + Defs/VFEPirates.WarcasketDef[defName="WarcasketHelmet_Ancient_Cloak"]/statBases/ArmorRating_Blunt + + 100 + +
  • + +
  • + Defs/VFEPirates.WarcasketDef[defName="WarcasketHelmet_Ancient_Cloak"]/apparel/immuneToToxGasExposure + + Defs/VFEPirates.WarcasketDef[defName="WarcasketHelmet_Ancient_Cloak"]/apparel + + true + + +
  • + +
  • + Defs/VFEPirates.WarcasketDef[defName="WarcasketHelmet_Ancient_Cloak"]/statBases + + 20 + 10 + 0.99 + +
  • + +
  • + Defs/VFEPirates.WarcasketDef[defName="WarcasketHelmet_Ancient_Cloak"]/equippedStatOffsets + + -1 + +
  • + +
  • + Defs/VFEPirates.WarcasketDef[defName="WarcasketHelmet_Ancient_Cloak"]/apparel/immuneToToxGasExposure + + Defs/VFEPirates.WarcasketDef[defName="WarcasketHelmet_Ancient_Cloak"]/apparel + + true + + +
  • + +
  • + Defs/VFEPirates.WarcasketDef[defName="WarcasketHelmet_Ancient_Cloak"]/verbs +
  • +
  • + Defs/VFEPirates.WarcasketDef[defName="WarcasketHelmet_Ancient_Cloak"]/comps/li[@Class="MVCF.Comps.CompProperties_VerbGiver"] +
  • + + + +
  • + Defs/VFEPirates.WarcasketDef[defName="WarcasketShoulders_Ancient_Cloak"]/statBases + + 15 + 5 + +
  • + +
  • + Defs/VFEPirates.WarcasketDef[defName="WarcasketShoulders_Ancient_Cloak"]/statBases/ArmorRating_Sharp + + 50 + +
  • + +
  • + Defs/VFEPirates.WarcasketDef[defName="WarcasketShoulders_Ancient_Cloak"]/statBases/ArmorRating_Blunt + + 120 + +
  • + + + +
  • + Defs/VFEPirates.WarcasketDef[defName="Warcasket_Ancient_Cloak"]/statBases + + 275 + 35 + +
  • + +
  • + Defs/VFEPirates.WarcasketDef[defName="Warcasket_Ancient_Cloak"]/statBases/ArmorRating_Sharp + + 50 + +
  • + +
  • + Defs/VFEPirates.WarcasketDef[defName="Warcasket_Ancient_Cloak"]/statBases/ArmorRating_Blunt + + 120 + +
  • + +
  • + Defs/VFEPirates.WarcasketDef[defName="Warcasket_Ancient_Cloak"]/equippedStatOffsets + + 450 + 525 + -100 + +
  • + + +
  • + Defs/VFEPirates.WarcasketDef[defName="WarcasketHelmet_Ancient_Penitent"]/statBases/ArmorRating_Sharp + + 50 + +
  • + +
  • + Defs/VFEPirates.WarcasketDef[defName="WarcasketHelmet_Ancient_Penitent"]/statBases/ArmorRating_Blunt + + 120 + +
  • + +
  • + Defs/VFEPirates.WarcasketDef[defName="WarcasketHelmet_Ancient_Penitent"]/apparel/immuneToToxGasExposure + + Defs/VFEPirates.WarcasketDef[defName="WarcasketHelmet_Ancient_Penitent"]/apparel + + true + + +
  • + +
  • + Defs/VFEPirates.WarcasketDef[defName="WarcasketHelmet_Ancient_Penitent"]/statBases + + 20 + 10 + 0.99 + +
  • + +
  • + Defs/VFEPirates.WarcasketDef[defName="WarcasketHelmet_Ancient_Penitent"]/equippedStatOffsets + + -1 + +
  • + +
  • + Defs/VFEPirates.WarcasketDef[defName="WarcasketHelmet_Ancient_Penitent"]/apparel/immuneToToxGasExposure + + Defs/VFEPirates.WarcasketDef[defName="WarcasketHelmet_Ancient_Penitent"]/apparel + + true + + +
  • + +
  • + Defs/VFEPirates.WarcasketDef[defName="WarcasketHelmet_Ancient_Penitent"]/verbs +
  • +
  • + Defs/VFEPirates.WarcasketDef[defName="WarcasketHelmet_Ancient_Penitent"]/comps/li[@Class="MVCF.Comps.CompProperties_VerbGiver"] +
  • + + +
  • + Defs/VFEPirates.WarcasketDef[defName="WarcasketHelmet_Ancient_Mechnomancer"]/statBases/ArmorRating_Sharp + + 45 + +
  • + +
  • + Defs/VFEPirates.WarcasketDef[defName="WarcasketHelmet_Ancient_Mechnomancer"]/statBases/ArmorRating_Blunt + + 110 + +
  • + +
  • + Defs/VFEPirates.WarcasketDef[defName="WarcasketHelmet_Ancient_Mechnomancer"]/apparel/immuneToToxGasExposure + + Defs/VFEPirates.WarcasketDef[defName="WarcasketHelmet_Ancient_Mechnomancer"]/apparel + + true + + +
  • + +
  • + Defs/VFEPirates.WarcasketDef[defName="WarcasketHelmet_Ancient_Mechnomancer"]/statBases + + 20 + 10 + 0.99 + +
  • + +
  • + Defs/VFEPirates.WarcasketDef[defName="WarcasketHelmet_Ancient_Mechnomancer"]/equippedStatOffsets + + -1 + +
  • + +
  • + Defs/VFEPirates.WarcasketDef[defName="WarcasketHelmet_Ancient_Mechnomancer"]/apparel/immuneToToxGasExposure + + Defs/VFEPirates.WarcasketDef[defName="WarcasketHelmet_Ancient_Mechnomancer"]/apparel + + true + + +
  • + +
  • + Defs/VFEPirates.WarcasketDef[defName="WarcasketHelmet_Ancient_Mechnomancer"]/verbs +
  • +
  • + Defs/VFEPirates.WarcasketDef[defName="WarcasketHelmet_Ancient_Mechnomancer"]/comps/li[@Class="MVCF.Comps.CompProperties_VerbGiver"] +
  • + +
    +
    +
    + +
    \ No newline at end of file diff --git a/Patches/Ancient Arsenal Warcaskets/MeleeAncientWC.xml b/Patches/Ancient Arsenal Warcaskets/MeleeAncientWC.xml new file mode 100644 index 0000000000..7491aea461 --- /dev/null +++ b/Patches/Ancient Arsenal Warcaskets/MeleeAncientWC.xml @@ -0,0 +1,225 @@ + + + + + +
  • Ancient Arsenal: Warcaskets
  • +
    + + + + + +
  • + Defs/ThingDef[defName="AAWarcasketMelee_Cleaver" or defName="AAWarcasketMelee_BrokenBlade"] + +
  • + 1.7,1.7 + 0.0,0.0 +
  • + + + +
  • + Defs/ThingDef[defName="AAWarcasketMelee_Intruder"] + +
  • + 1.3,1.3 + 0.0,0.0 +
  • + + + + +
  • + Defs/ThingDef[defName="AAWarcasketMelee_Cleaver"]/tools + + +
  • + + +
  • Stab
  • + + 34 + 2.6 + 8 + 24 + Point + +
  • + + +
  • Cut
  • + + 44 + 2.8 + 30 + 16.15 + Edge + +
  • + Flame + 30 + 1 +
  • +
    + + + + + +
  • + Defs/ThingDef[defName="AAWarcasketMelee_Cleaver"] + + + 0.93 + 0.95 + 0.6 + + +
  • + +
  • + Defs/ThingDef[defName="AAWarcasketMelee_Cleaver"]/statBases + + 15 + 0.53 + 20 + +
  • + + +
  • + Defs/ThingDef[defName="AAWarcasketMelee_BrokenBlade"]/tools + + +
  • + + +
  • Stab
  • + + 76 + 1.8 + 11 + 45 + Point + +
  • + EMP + 45 + 1 +
  • +
    + +
  • + + +
  • Cut
  • + + 100 + 2.35 + 47 + 34.8 + Edge + +
  • + Flame + 50 + 1 +
  • +
    + + + + + +
  • + Defs/ThingDef[defName="AAWarcasketMelee_BrokenBlade"] + + + 0.99 + 0.97 + 0.88 + + +
  • + +
  • + Defs/ThingDef[defName="AAWarcasketMelee_BrokenBlade"]/statBases + + 25 + 1 + 30 + +
  • + + +
  • + Defs/ThingDef[defName="AAWarcasketMelee_Intruder"]/tools + + +
  • + + +
  • Stab
  • + + 36 + 1.8 + 11 + 21 + Point + +
  • + Flame + 20 + 1 +
  • +
    + +
  • + + +
  • Cut
  • + + 50 + 1.35 + 27 + 15.8 + Edge + +
  • + IntruderToxic + 50 + 1 +
  • +
    + + + + + +
  • + Defs/ThingDef[defName="AAWarcasketMelee_Intruder"] + + + 0.79 + 0.67 + 0.48 + + +
  • + +
  • + Defs/ThingDef[defName="AAWarcasketMelee_Intruder"]/statBases + + 25 + 1 + 20 + +
  • + +
    +
    +
    + +
    \ No newline at end of file diff --git a/Patches/Ancient Arsenal Warcaskets/RangedWeapons.xml b/Patches/Ancient Arsenal Warcaskets/RangedWeapons.xml new file mode 100644 index 0000000000..61fdb952e5 --- /dev/null +++ b/Patches/Ancient Arsenal Warcaskets/RangedWeapons.xml @@ -0,0 +1,289 @@ + + + + + +
  • Ancient Arsenal: Warcaskets
  • +
    + + + + +
  • + + Defs/ThingDef[ + defName = "AA_CAS" or + defName = "AA_Ripper" or + defName = "AA_Brigador" or + defName = "WarcasketGun_Confessor" + ]/tools + + + +
  • + + +
  • Blunt
  • + + 35 + 2.44 + 16 + Barrel + + + + + + +
  • + /Defs/ThingDef[defName="AA_CAS"]/verbs +
  • + +
  • + /Defs/ThingDef[defName="AA_CAS"]/comps/li[@Class="CompToggleFireMode.CompProperties_ToggleFireMode"] +
  • + +
  • + AA_CAS + + 25 + 1.2 + 0.08 + 2.20 + 0.60 + + + 1.19 + CombatExtended.Verb_ShootCE + True + Bullet_SPG9Rocket_HEAT + 1.6 + 68 + Brigador_ShotHeavy + GunTail_Heavy + 16 + + + 5 + 6.0 + AmmoSet_SPG9Rocket + + + AimedShot + +
  • + +
  • + /Defs/ThingDef[defName="AA_CAS"] + +
  • + 1.4,1.4 + 0.0,0.0 +
  • + + + + +
  • + /Defs/ThingDef[defName="AA_Ripper"]/verbs +
  • + +
  • + AA_Ripper + + 0.6 + 0.9 + 0.08 + 2.32 + 8 + + + 2.22 + CombatExtended.Verb_ShootCE + true + Bullet_50AE_FMJ + 2.1 + 28 + 20 + 3 + Ripper_Shots + GunTail_Medium + 9 + + true + + + + 100 + 4.2 + AmmoSet_50AE + + + true + 12 + Snapshot + + +
  • CE_OneHandedWeapon
  • + + + +
  • + /Defs/ThingDef[defName="AA_Ripper"] + +
  • + 0.8,0.8 + 0.0,0.0 +
  • + + + + +
  • + /Defs/ThingDef[defName="AA_Brigador"]/verbs +
  • + +
  • + /Defs/ThingDef[defName="AA_Brigador"]/comps/li[@Class="CompToggleFireMode.CompProperties_ToggleFireMode"] +
  • + +
  • + AA_Brigador + + 12.5 + 12.5 + 1.00 + 0.05 + 1.0 + 0.30 + + + 1.22 + CombatExtended.Verb_ShootCE + true + Bullet_Brigador_Standard + 0.8 + 45 + 3 + Brigador_ShotHeavy + GunTail_Heavy + 12 + + true + + + + 15 + 2.2 + AmmoSetBrigador + + + Snapshot + + +
  • CE_OneHandedWeapon
  • + + + +
  • + /Defs/ThingDef[defName="AA_Brigador"] + +
  • + 0.9,0.9 + 0.0,0.0 +
  • + + + + +
  • + /Defs/ThingDef[defName="WarcasketGun_Confessor"]/verbs +
  • +
  • + /Defs/ThingDef[defName="WarcasketGun_Confessor"]/comps/li[@Class="CompToggleFireMode.CompProperties_ToggleFireMode"] +
  • + +
  • + WarcasketGun_Confessor + + 0.6 + 1.9 + 0.04 + 1.12 + 35 + + + 0.52 + CombatExtended.Verb_ShootCE + true + Bullet_600NitroExpress_FMJ + 1.6 + 57 + 50 + 3 + VFEP_Shot_Minigun + GunTail_Medium + 9 + + true + + + + 500 + 6.2 + AmmoSet_600NitroExpress + + + true + 25 + Snapshot + +
  • + +
  • + Defs/ThingDef[defName="WarcasketGun_Confessor"]/comps + + +
  • + + 200 + 3.5 + AmmoSet_Flamethrower + + + CombatExtended.Verb_ShootCE + true + Bullet_Flamethrower_Napalm + 0.5 + 32 + 20 + 1 + HissFlamethrower + GunTail_Light + 12 + + + true + SuppressFire + 10 + +
  • + + + + +
  • + /Defs/ThingDef[defName="WarcasketGun_Confessor"] + +
  • + 1.4,1.4 + 0.0,0.0 +
  • + + + +
    +
    +
    + +
    \ No newline at end of file diff --git a/Patches/Arrow Please/ArrowPlease_Throwable.xml b/Patches/Arrow Please/ArrowPlease_Throwable.xml index 9cfa2193e8..a678b3275a 100644 --- a/Patches/Arrow Please/ArrowPlease_Throwable.xml +++ b/Patches/Arrow Please/ArrowPlease_Throwable.xml @@ -57,7 +57,7 @@ 1.2 3.3 - 0.45 + 1.0 1.5 2.5 0.75 @@ -220,7 +220,7 @@
  • Ranged_Torch - 0.45 + 1.0 1.5 2.5 0.75 diff --git a/Patches/Big and Small/Big and Small Genes/Weapons/ThingDef_RangedNeolithic.xml b/Patches/Big and Small/Big and Small Genes/Weapons/ThingDef_RangedNeolithic.xml index d3965c7d62..c6586b8c5f 100644 --- a/Patches/Big and Small/Big and Small Genes/Weapons/ThingDef_RangedNeolithic.xml +++ b/Patches/Big and Small/Big and Small Genes/Weapons/ThingDef_RangedNeolithic.xml @@ -45,7 +45,7 @@ BS_JotunJavelin 50 - 0.45 + 1.0 5 5 0.38 @@ -125,7 +125,7 @@ 0 50 - 0.45 + 1.0 1.5 2.5 5 diff --git a/Patches/Biomes Caverns/Weapons/CE_Boomshroom.xml b/Patches/Biomes Caverns/Weapons/CE_Boomshroom.xml index 1e19bfefde..ea043277d0 100644 --- a/Patches/Biomes Caverns/Weapons/CE_Boomshroom.xml +++ b/Patches/Biomes Caverns/Weapons/CE_Boomshroom.xml @@ -56,7 +56,7 @@ 1.8 3 1 - 0.65 + 1.0 diff --git a/Patches/British Weapons Set/British_weapon_set.xml b/Patches/British Weapons Set/British_weapon_set.xml index 6c8709c0ae..875067f88b 100644 --- a/Patches/British Weapons Set/British_weapon_set.xml +++ b/Patches/British Weapons Set/British_weapon_set.xml @@ -15,7 +15,7 @@ 11 0.56 - 0.7 + 1.0 0.05 1.53 12 diff --git a/Patches/Call of Duty - Zombies Pack/Weapons/Wonder.xml b/Patches/Call of Duty - Zombies Pack/Weapons/Wonder.xml index f172a78739..926a7356db 100644 --- a/Patches/Call of Duty - Zombies Pack/Weapons/Wonder.xml +++ b/Patches/Call of Duty - Zombies Pack/Weapons/Wonder.xml @@ -349,7 +349,7 @@ 2 10 - 0.5 + 0.7 0.2 0.83 0.5 @@ -376,7 +376,7 @@ 1.36 0.37 - 0.5 + 0.7 0.16 1.67 3 @@ -441,7 +441,7 @@ 1.36 0.36 - 0.5 + 0.7 0.14 2.33 3 @@ -472,7 +472,7 @@ 2.67 0.96 - 0.5 + 0.7 0.2 2.22 4 @@ -783,7 +783,7 @@ 2.63 0.36 - 0.5 + 0.7 0.2 1.88 3 @@ -814,7 +814,7 @@ 2.63 0.36 - 0.5 + 0.7 0.2 1.88 3 diff --git a/Patches/Censored Armory/Weapons_Guns.xml b/Patches/Censored Armory/Weapons_Guns.xml index 0b12085b4c..90ade39a35 100644 --- a/Patches/Censored Armory/Weapons_Guns.xml +++ b/Patches/Censored Armory/Weapons_Guns.xml @@ -1281,7 +1281,7 @@ 0.36 12.22 1 - 0.65 + 1.0 diff --git a/Patches/Core/ThingDefs_Misc/Weapons_Grenades.xml b/Patches/Core/ThingDefs_Misc/Weapons_Grenades.xml index 7a56fdfa63..a36fb35d53 100644 --- a/Patches/Core/ThingDefs_Misc/Weapons_Grenades.xml +++ b/Patches/Core/ThingDefs_Misc/Weapons_Grenades.xml @@ -194,7 +194,7 @@ 0.87 11.22 1 - 0.65 + 1.0 @@ -315,7 +315,7 @@ 1.96 7.05 1 - 0.65 + 1.0 @@ -442,7 +442,7 @@ 0.87 21.09 1 - 0.65 + 1.0 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 - - -
  • - - -
  • Blunt
  • - - 2 - 1.54 - 1.5 - 0.555 - Grip - -
  • - - -
  • 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 - - - -
  • - - -
  • Blunt
  • - - 8 - 1.55 - 1.5 - 2.755 - Stock - -
  • - - -
  • Blunt
  • - - 5 - 2.02 - 1.630 - Barrel - -
  • - - -
  • Poke
  • - - 8 - 1.55 - 2.755 - Muzzle - -
    -
    -
    - - - Defs/ThingDef[defName="Gun_TripleRocket" or defName="Gun_DoomsdayRocket"]/tools - - -
  • - - -
  • 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 - - -
  • - - -
  • 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 - - -
  • - - -
  • 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 - - -
  • - - -
  • 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 - - -
  • - - -
  • 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 - - -
  • - - -
  • 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 - - -
  • - - -
  • 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 + + +
  • + + +
  • Blunt
  • + + 2 + 1.54 + 1.5 + 0.555 + Grip + +
  • + + +
  • 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 + + + +
  • + + +
  • Blunt
  • + + 8 + 1.55 + 1.5 + 2.755 + Stock + +
  • + + +
  • Blunt
  • + + 5 + 2.02 + 1.630 + Barrel + +
  • + + +
  • Poke
  • + + 8 + 1.55 + 2.755 + Muzzle + +
    +
    +
    + + + Defs/ThingDef[defName="Gun_TripleRocket" or defName="Gun_DoomsdayRocket"]/tools + + +
  • + + +
  • 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 + + +
  • + + +
  • 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 + + +
  • + + +
  • 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 + + +
  • + + +
  • 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 + + +
  • + + +
  • 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 + + +
  • + + +
  • 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 + + +
  • + + +
  • 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/Patches/Core/ThingDefs_Misc/Weapons_RangedNeolithic.xml b/Patches/Core/ThingDefs_Misc/Weapons_RangedNeolithic.xml index 7e6a316a44..8cbb77820b 100644 --- a/Patches/Core/ThingDefs_Misc/Weapons_RangedNeolithic.xml +++ b/Patches/Core/ThingDefs_Misc/Weapons_RangedNeolithic.xml @@ -22,7 +22,7 @@ Bow_Short - 0.6 + 0.8 1 2 3.00 @@ -70,7 +70,7 @@ Bow_Recurve - 0.6 + 0.8 1 2 4.00 @@ -119,7 +119,7 @@ Bow_Great - 0.6 + 0.8 1 2 5.00 diff --git a/Patches/Core/ThingDefs_Races/Races_Mechanoid.xml b/Patches/Core/ThingDefs_Races/Races_Mechanoid.xml index 130f284a62..0d3bd16e7d 100644 --- a/Patches/Core/ThingDefs_Races/Races_Mechanoid.xml +++ b/Patches/Core/ThingDefs_Races/Races_Mechanoid.xml @@ -146,7 +146,7 @@ Defs/ThingDef[@Name="MechCentipede"]/statBases 0.25 - 250 + 150 60 1.0 1 @@ -597,7 +597,7 @@ Defs/ThingDef[defName="Mech_Termite"]/statBases 0.25 - 300 + 150 60 1.0 1 diff --git a/Patches/Cybernetic Warfare and Special Weapons/CyberneticWarfare_Ranged_Spacer.xml b/Patches/Cybernetic Warfare and Special Weapons/CyberneticWarfare_Ranged_Spacer.xml index 9a6a3604f4..96d7ad752d 100644 --- a/Patches/Cybernetic Warfare and Special Weapons/CyberneticWarfare_Ranged_Spacer.xml +++ b/Patches/Cybernetic Warfare and Special Weapons/CyberneticWarfare_Ranged_Spacer.xml @@ -244,7 +244,7 @@ CW_DualEraser 4.5 - 0.5 + 0.7 0.75 0.95 1.5 diff --git a/Patches/Divine Order/ThingDef_Misc/Weapons/Divine_Order_CE_Grenades.xml b/Patches/Divine Order/ThingDef_Misc/Weapons/Divine_Order_CE_Grenades.xml index 70457717fd..42720e8639 100644 --- a/Patches/Divine Order/ThingDef_Misc/Weapons/Divine_Order_CE_Grenades.xml +++ b/Patches/Divine Order/ThingDef_Misc/Weapons/Divine_Order_CE_Grenades.xml @@ -92,7 +92,7 @@ 1.8 3 1 - 0.65 + 1.0 diff --git a/Patches/Dragons Descent/ThingDefs_Races/Races_Animal_Dragon_Base.xml b/Patches/Dragons Descent/ThingDefs_Races/Races_Animal_Dragon_Base.xml index 20a9b7df5c..9b0cfd9162 100644 --- a/Patches/Dragons Descent/ThingDefs_Races/Races_Animal_Dragon_Base.xml +++ b/Patches/Dragons Descent/ThingDefs_Races/Races_Animal_Dragon_Base.xml @@ -5,8 +5,10 @@
  • Dragons Descent
  • + +
  • @@ -17,6 +19,7 @@
  • +
  • @@ -28,24 +31,41 @@ 1.5
  • +
  • Defs/ThingDef[@Name="DragonRaceBase"]/statBases/MeleeDodgeChance 0.13
  • +
  • Defs/ThingDef[@Name="DragonRaceBase"]/statBases/ArmorRating_Blunt 40
  • +
  • Defs/ThingDef[@Name="DragonRaceBase"]/statBases/ArmorRating_Sharp 16
  • + +
  • + Defs/ThingDef[@Name="DragonRaceBase"]/comps + +
  • + 4250 + true + 600 + 5 + 0.5 +
  • +
    + +
  • @@ -76,7 +96,21 @@
  • +
  • + Defs/ThingDef[@Name="RDragonRaceBase"]/comps + +
  • + 5075 + true + 600 + 5 + 0.5 +
  • + + +
    + \ No newline at end of file diff --git a/Patches/ESCP - Spriggans/ESCP_BodyDefs_Spriggan.xml b/Patches/ESCP - Spriggans/ESCP_BodyDefs_Spriggan.xml new file mode 100644 index 0000000000..4ad3adfb0d --- /dev/null +++ b/Patches/ESCP - Spriggans/ESCP_BodyDefs_Spriggan.xml @@ -0,0 +1,53 @@ + + + + + +
  • ESCP - Spriggan
  • +
    + + + + + + +
  • + + Defs/BodyDef[defName="ECP_Spriggan"]//*[ + def="Body" or + def="Ear" or + def="Nose" or + def="Neck" or + def="Leg"] + + + + +
  • + +
  • + + Defs/BodyDef[defName="ECP_Spriggan"]//*[ + def="Body" or + def="Neck" or + def="Head" or + def="Ear" or + def="Nose" or + def="AnimalJaw" or + def="Shoulder" or + def="Arm" or + def="Hand" or + def="FrontClaw" or + def="Leg" or + def="Foot"]/groups + + +
  • CoveredByNaturalArmor
  • + + + +
    +
    +
    + +
    \ No newline at end of file diff --git a/Patches/ESCP - Spriggans/ESCP_Projectiles_Spriggan.xml b/Patches/ESCP - Spriggans/ESCP_Projectiles_Spriggan.xml new file mode 100644 index 0000000000..841d035304 --- /dev/null +++ b/Patches/ESCP - Spriggans/ESCP_Projectiles_Spriggan.xml @@ -0,0 +1,38 @@ + + + + + +
  • ESCP - Spriggan
  • +
    + + + + + +
  • + Defs/ThingDef[defName="ESCP_SprigganFireball"]/thingClass + + CombatExtended.BulletCE + +
  • + +
  • + Defs/ThingDef[defName="ESCP_SprigganFireball"]/projectile + + + false + Flame + 10 + 50 + true + + +
  • + +
    +
    + +
    + +
    \ No newline at end of file diff --git a/Patches/ESCP - Spriggans/ESCP_Spriggan_Scenario.xml b/Patches/ESCP - Spriggans/ESCP_Spriggan_Scenario.xml new file mode 100644 index 0000000000..f5be31a876 --- /dev/null +++ b/Patches/ESCP - Spriggans/ESCP_Spriggan_Scenario.xml @@ -0,0 +1,27 @@ + + + + + +
  • ESCP - Spriggan
  • +
    + + + + +
  • + Defs/ScenarioDef[defName="ESCP_SprigganScenario"]/scenario/parts + +
  • + StartingThing_Defined + Ammo_Arrow_Stone + 100 +
  • + + + +
    +
    +
    + +
    \ No newline at end of file diff --git a/Patches/ESCP - Spriggans/ESCP_ThingDef_Spriggan.xml b/Patches/ESCP - Spriggans/ESCP_ThingDef_Spriggan.xml new file mode 100644 index 0000000000..bffb4bdef4 --- /dev/null +++ b/Patches/ESCP - Spriggans/ESCP_ThingDef_Spriggan.xml @@ -0,0 +1,594 @@ + + + + + +
  • ESCP - Spriggan
  • +
    + + + + + +
  • + Defs/ThingDef[@Name="ESCP_SprigganThingBase"]/tools +
  • + +
  • + Defs/ThingDef[@Name="ESCP_SprigganThingBase"] + +
  • + Humanoid +
  • + + + + +
  • + Defs/ThingDef[defName="ESCP_Spriggan" or defName="ESCP_Spriggan_Anima" or defName="ESCP_Spriggan_Parasol"]/statBases + + 0.18 + 0.33 + 0.33 + +
  • + +
  • + Defs/ThingDef[defName="ESCP_Spriggan" or defName="ESCP_Spriggan_Anima" or defName="ESCP_Spriggan_Parasol"] + + +
  • + + +
  • Scratch
  • + + 22 + 1.7 + FrontLeftClaws + + +
  • + Stun + 14 +
  • +
    +
    + 1.75 + 14 + +
  • + + +
  • Scratch
  • + + 22 + 1.7 + FrontRightClaws + + +
  • + Stun + 14 +
  • +
    +
    + 1.8 + 14 + +
  • + + +
  • Blunt
  • + + 11 + 2 + HeadAttackTool + 8 + 0.2 + + + + + + +
  • + Defs/ThingDef[defName="ESCP_Spriggan_Bog"]/statBases + + 0.18 + 0.33 + 0.33 + +
  • + +
  • + Defs/ThingDef[defName="ESCP_Spriggan_Bog"]/tools + + +
  • + + +
  • Scratch
  • +
  • ScratchToxic
  • + + 22 + 1.7 + FrontLeftClaws + + +
  • + Stun + 14 +
  • +
    +
    + 1.75 + 14 + +
  • + + +
  • Scratch
  • +
  • ScratchToxic
  • + + 22 + 1.7 + FrontRightClaws + + +
  • + Stun + 14 +
  • +
    +
    + 1.8 + 14 + +
  • + + +
  • Blunt
  • + + 11 + 2 + HeadAttackTool + 8 + 0.2 + + + + + + +
  • + Defs/ThingDef[defName="ESCP_Spriggan_Burnt"]/statBases + + 0.18 + 0.33 + 0.33 + +
  • + +
  • + Defs/ThingDef[defName="ESCP_Spriggan_Burnt"]/tools + + +
  • + + +
  • Scratch
  • + + 22 + 1.7 + FrontLeftClaws + +
  • + Flame + 10 + 0.2 +
  • +
    + + +
  • + Stun + 14 +
  • +
    +
    + 1.75 + 14 + +
  • + + +
  • Scratch
  • + + 22 + 1.7 + FrontRightClaws + +
  • + Flame + 10 + 0.2 +
  • +
    + + +
  • + Stun + 14 +
  • +
    +
    + 1.8 + 14 + +
  • + + +
  • Blunt
  • + + 11 + 2 + HeadAttackTool + 8 + 0.2 + + + + + +
  • + Defs/ThingDef[defName="ESCP_Spriggan_Burnt"]/verbs + + +
  • + CombatExtended.Verb_ShootCE + true + ESCP_SprigganFireball + 1.8 + 19.9 + 2 + ESCP_Spriggan_Fireball + 9 + +
  • + + + + + +
  • + Defs/ThingDef[defName="ESCP_Spriggan_EarthMother"]/statBases + + 0.2 + 0.58 + 0.66 + +
  • + +
  • + Defs/ThingDef[defName="ESCP_Spriggan_EarthMother"]/tools + + +
  • + + +
  • Scratch
  • + + 26 + 1.6 + FrontLeftClaws + + +
  • + Stun + 14 +
  • +
    +
    + 2.4 + 17 + +
  • + + +
  • Scratch
  • +
  • Blunt
  • + + 26 + 1.6 + FrontRightClaws + + +
  • + Stun + 14 +
  • +
    +
    + 2.4 + 17 + +
  • + +
  • Bite
  • + + 24 + 1.9 + Teeth + 0.7 + + +
  • + Stun + 14 +
  • +
    +
    + 2.8 + 17 + +
  • + + +
  • Blunt
  • + + 8 + 2 + HeadAttackTool + 1 + 0.2 + + + + + + +
  • + Defs/ThingDef[defName="ESCP_Spriggan_Matron"]/statBases + + 0.2 + 0.58 + 0.66 + +
  • + +
  • + Defs/ThingDef[defName="ESCP_Spriggan_Matron"]/tools + + +
  • + + +
  • Scratch
  • + + 26 + 1.6 + FrontLeftClaws + + +
  • + Stun + 14 +
  • +
    +
    + 2.4 + 17 + +
  • + + +
  • Scratch
  • +
  • Blunt
  • + + 26 + 1.6 + FrontRightClaws + + +
  • + Stun + 14 +
  • +
    +
    + 2.4 + 17 + +
  • + +
  • Bite
  • + + 24 + 1.9 + Teeth + 0.7 + + +
  • + Stun + 14 +
  • +
    +
    + 2.8 + 17 + +
  • + + +
  • Blunt
  • + + 8 + 2 + HeadAttackTool + 1 + 0.2 + + + + + + +
  • + Defs/ThingDef[defName="ESCP_Spriggan_Thorni"]/statBases + + 0.18 + 0.33 + 0.33 + +
  • + +
  • + Defs/ThingDef[defName="ESCP_Spriggan_Thorni"]/tools + + +
  • + + +
  • Scratch
  • + + 13 + 1.45 + FrontLeftClaws + + +
  • + Stun + 14 +
  • +
    +
    + 0.5 + 5 + +
  • + + +
  • Scratch
  • + + 13 + 1.45 + FrontRightClaws + + +
  • + Stun + 14 +
  • +
    +
    + 0.5 + 5 + +
  • + +
  • Bite
  • + + 14 + 1.85 + Teeth + 0.7 + + +
  • + Stun + 14 +
  • +
    +
    + 0.8 + 5 + +
  • + + +
  • Blunt
  • + + 6 + 2 + HeadAttackTool + 4 + 0.2 + + + + + + +
  • + Defs/ThingDef[defName="ESCP_Spriggan_Tundra"]/statBases + + 0.18 + 0.33 + 0.33 + +
  • + +
  • + Defs/ThingDef[defName="ESCP_Spriggan_Tundra"]/tools + + +
  • + + +
  • Scratch
  • + + 22 + 1.7 + FrontLeftClaws + + +
  • + Stun + 14 +
  • +
    +
    + 1.75 + 14 + +
  • + + +
  • Scratch
  • + + 22 + 1.7 + FrontRightClaws + + +
  • + Stun + 14 +
  • +
    +
    + 1.8 + 14 + +
  • + + +
  • Blunt
  • + + 11 + 2 + HeadAttackTool + 8 + 0.2 + + + + + +
    +
    + +
    + +
    \ No newline at end of file diff --git a/Patches/Erin's Valheim Creatures/Races_Animal_Frostwolf.xml b/Patches/Erin's Valheim Creatures/Races_Animal_Frostwolf.xml new file mode 100644 index 0000000000..d2fb8f1039 --- /dev/null +++ b/Patches/Erin's Valheim Creatures/Races_Animal_Frostwolf.xml @@ -0,0 +1,108 @@ + + + + + +
  • Erin's Valheim Creatures
  • +
    + + + +
  • + Defs/ThingDef[defName="ERN_FrostWolf"] + +
  • + Quadruped +
  • + + + +
  • + Defs/ThingDef[defName="ERN_FrostWolf"]/statBases + + 0.27 + 0.10 + 0.05 + +
  • + +
  • + Defs/ThingDef[defName="ERN_FrostWolf"]/tools + + +
  • + + +
  • Scratch
  • + + 6 + 0.8 + FrontLeftPaw + + +
  • + Stun + 20 +
  • +
    +
    + 0.450 + 0.07 + +
  • + + +
  • Scratch
  • + + 6 + 0.8 + FrontRightPaw + + +
  • + Stun + 20 +
  • +
    +
    + 0.450 + 0.07 + +
  • + +
  • Bite
  • + + 28 + 1.73 + Teeth + + +
  • + Stun + 20 +
  • +
    +
    + 1.55 + 5.225 + +
  • + + +
  • Blunt
  • + + 1 + 1.26 + HeadAttackTool + 0.2 + 0.250 + + + + + +
    +
    +
    + +
    \ No newline at end of file diff --git a/Patches/Erin's Valheim Creatures/Races_Animal_Lox.xml b/Patches/Erin's Valheim Creatures/Races_Animal_Lox.xml new file mode 100644 index 0000000000..cc3f11385d --- /dev/null +++ b/Patches/Erin's Valheim Creatures/Races_Animal_Lox.xml @@ -0,0 +1,125 @@ + + + + + +
  • Erin's Valheim Creatures
  • +
    + + + +
  • + Defs/ThingDef[defName="ERN_Lox"]/statBases/MoveSpeed + + 4.5 + 0.36 + 0.12 + 0.15 + +
  • + +
  • + Defs/ThingDef[defName="ERN_Lox"]/tools + + +
  • + + +
  • Blunt
  • + + 25 + 3.17 + HeadAttackTool + 10 + +
  • + + +
  • Blunt
  • + + 10 + 1.2 + 2.250 + FrontLeftLeg + +
  • + + +
  • Poke
  • + + 10 + 1.2 + 2.250 + FrontLeftLeg_2 + +
  • + + +
  • Blunt
  • + + 10 + 1.2 + 2.250 + FrontRightLeg + +
  • + + +
  • Poke
  • + + 10 + 1.2 + 2.250 + FrontRightLeg_2 + +
  • + +
  • Bite
  • + + 8 + 0.8 + 0.5 + Teeth + 0.5 + + + + + +
  • + Defs/ThingDef[defName="ERN_Lox"] + +
  • + Quadruped +
  • + + + +
  • + Defs/ThingDef[defName="ERN_Lox"]/comps + + Defs/ThingDef[defName="ERN_Lox"] + + + + +
  • + +
  • + Defs/ThingDef[defName="ERN_Lox"]/comps + +
  • + 1500 + true + 600 + 8 + 0.75 +
  • + + + +
    +
    +
    + +
    \ No newline at end of file diff --git a/Patches/Erin's Valheim Creatures/Races_Animal_Misthare.xml b/Patches/Erin's Valheim Creatures/Races_Animal_Misthare.xml new file mode 100644 index 0000000000..5cc36693c7 --- /dev/null +++ b/Patches/Erin's Valheim Creatures/Races_Animal_Misthare.xml @@ -0,0 +1,62 @@ + + + + + +
  • Erin's Valheim Creatures
  • +
    + + + +
  • + Defs/ThingDef[defName="ERN_Misthare"]/statBases + + 0.36 + 0.02 + 0 + +
  • + +
  • + Defs/ThingDef[defName="ERN_Misthare"]/tools + + +
  • + +
  • Bite
  • + + 3 + 1.26 + Teeth + 0.01 + 0.250 + +
  • + + +
  • Blunt
  • + + 1 + 1.26 + HeadAttackTool + 0.2 + 0.250 + + + + + +
  • + Defs/ThingDef[defName="ERN_Misthare"] + +
  • + QuadrupedLow +
  • + + + +
    +
    +
    + +
    \ No newline at end of file diff --git a/Patches/Erin's Valheim Creatures/Races_Animal_Neck.xml b/Patches/Erin's Valheim Creatures/Races_Animal_Neck.xml new file mode 100644 index 0000000000..63d6f25e76 --- /dev/null +++ b/Patches/Erin's Valheim Creatures/Races_Animal_Neck.xml @@ -0,0 +1,83 @@ + + + + + +
  • Erin's Valheim Creatures
  • +
    + + + +
  • + Defs/ThingDef[defName="ERN_Neck"]/statBases + + 0.23 + 0.02 + 0.08 + +
  • + +
  • + Defs/ThingDef[defName="ERN_Neck"]/tools + + +
  • + + +
  • Scratch
  • + + 4 + 1.5 + FrontLeftClaws + 0.03 + 0.5 + +
  • + + +
  • Scratch
  • + + 4 + 1.5 + FrontRightClaws + 0.03 + 0.5 + +
  • + +
  • Bite
  • + + 5 + 1.89 + Teeth + 1.250 + +
  • + + +
  • Blunt
  • + + 2 + 4.24 + HeadAttackTool + 0.2 + 0.5 + + + + + +
  • + Defs/ThingDef[defName="ERN_Neck"] + +
  • + Serpentine +
  • + + + +
    +
    +
    + +
    \ No newline at end of file diff --git a/Patches/Erin's Valheim Creatures/Races_Animal_Valboar.xml b/Patches/Erin's Valheim Creatures/Races_Animal_Valboar.xml new file mode 100644 index 0000000000..7cc2f31faf --- /dev/null +++ b/Patches/Erin's Valheim Creatures/Races_Animal_Valboar.xml @@ -0,0 +1,86 @@ + + + + + +
  • Erin's Valheim Creatures
  • +
    + + + +
  • + Defs/ThingDef[defName="ERN_Valboar"] + +
  • + Quadruped +
  • + + + +
  • + Defs/ThingDef[defName="ERN_Valboar"]/statBases + + 0.14 + 0.15 + 0.07 + +
  • + +
  • + Defs/ThingDef[defName="ERN_Valboar"]/tools + + +
  • + + +
  • Cut
  • + + 11 + 1.89 + TuskAttackTool + 0.2 + 2.5 + +
  • + + +
  • Stab
  • + + 8 + 1.41 + 0.65 + TuskAttackTool_2 + 0.25 + 3.1 + +
  • + +
  • Bite
  • + + 8 + 1.57 + 0.6 + Teeth + 0.05 + 0.6 + +
  • + + +
  • Blunt
  • + + 7 + 2.12 + HeadAttackTool + 0.2 + 4 + + + + + +
    +
    +
    + +
    \ No newline at end of file diff --git a/Patches/Filthy Orc Invasion/FilthyOrcInvasion_Orc_Weapons.xml b/Patches/Filthy Orc Invasion/FilthyOrcInvasion_Orc_Weapons.xml index 7238bf9d3c..63d1f12599 100644 --- a/Patches/Filthy Orc Invasion/FilthyOrcInvasion_Orc_Weapons.xml +++ b/Patches/Filthy Orc Invasion/FilthyOrcInvasion_Orc_Weapons.xml @@ -91,7 +91,7 @@ Interact_BeatFire 7.26 - 0.45 + 1.0 1.5 2.5 3.5 @@ -150,7 +150,7 @@ 0.5 2 - 0.5 + 0.8 0.1 1 2 diff --git a/Patches/Gas Traps and Shells/Patch_Weapons_Grenades.xml b/Patches/Gas Traps and Shells/Patch_Weapons_Grenades.xml index e3b2436ee5..88da956dde 100644 --- a/Patches/Gas Traps and Shells/Patch_Weapons_Grenades.xml +++ b/Patches/Gas Traps and Shells/Patch_Weapons_Grenades.xml @@ -52,7 +52,7 @@ 0.539 1.05 10.15 - 0.65 + 1.0 1 @@ -138,7 +138,7 @@ 0.539 1.05 10.15 - 0.65 + 1.0 1 @@ -223,7 +223,7 @@ 0.539 1.05 10.15 - 0.65 + 1.0 1
    @@ -308,7 +308,7 @@ 0.539 1.05 10.15 - 0.65 + 1.0 1
    @@ -393,7 +393,7 @@ 0.539 1.05 10.15 - 0.65 + 1.0 1
    @@ -478,7 +478,7 @@ 0.539 1.05 10.15 - 0.65 + 1.0 1 @@ -564,7 +564,7 @@ 0.539 1.05 15 - 0.65 + 1.0 1 @@ -648,7 +648,7 @@ 0.539 1.05 10.15 - 0.65 + 1.0 1 diff --git a/Patches/Gestalt Engine/ThingDefs_Races/Matriach.xml b/Patches/Gestalt Engine/ThingDefs_Races/Matriach.xml new file mode 100644 index 0000000000..a7ec17f327 --- /dev/null +++ b/Patches/Gestalt Engine/ThingDefs_Races/Matriach.xml @@ -0,0 +1,100 @@ + + + + + +
  • Gestalt Engine
  • +
    + + + +
  • + Defs/ThingDef[defName="RM_Mech_Matriarch"]/statBases + + 0 + +
  • + + +
  • + Defs/ThingDef[defName="RM_Mech_Matriarch"]/statBases + + 0 + 0.80 + +
  • + +
  • + Defs/ThingDef[defName="RM_Mech_Matriarch"]/statBases + + 30 + 40 + 1.0 + 1 + 0.03 + 0.06 + 0.12 + 100 + +
  • + +
  • + Defs/ThingDef[defName="RM_Mech_Matriarch"]/statBases + + 3 + +
  • + +
  • + Defs/ThingDef[defName="RM_Mech_Matriarch"]/statBases + + 1 + +
  • + +
  • + Defs/ThingDef[defName="RM_Mech_Matriarch"]/tools + + +
  • + + +
  • Blunt
  • + + 9 + 3.51 + HeadAttackTool + 6 + false + +
  • + + +
  • Blunt
  • + + 5 + 2.51 + LeftHand + 3 + true + +
  • + + +
  • Blunt
  • + + 5 + 2.51 + RightHand + 3 + true + + + + + +
    +
    +
    + +
    diff --git a/Patches/Imperial Arsenal Royal Warcasket/Ammo/AmmoCategories_Bolts.xml b/Patches/Imperial Arsenal Royal Warcasket/Ammo/AmmoCategories_Bolts.xml new file mode 100644 index 0000000000..c56d26f156 --- /dev/null +++ b/Patches/Imperial Arsenal Royal Warcasket/Ammo/AmmoCategories_Bolts.xml @@ -0,0 +1,44 @@ + + + + + +
  • Imperial Arsenal: Royal Warcasket
  • +
    + + Defs + + + + Standard + + Standard + A gyro-stabilized projectile equipped with a hardened tip for penetrating armor and laden with a small explosive charge. + + + + Inferno + + Inferno + A gyro-stabilized projectile equipped with the explosive filler replaced with sticky, highly flammable prometheum. + + + + MetalStorm + + Metal Storm + A gyro-stabilized equipped with a proximity fuse, designed to shower lighly armored targets with a devestating shower of fragmention when it detonates. + + + + Kraken + + Kraken + A gyro-stabilized projectile with hardened penetrator and explosive 'kicker' charge, designed to punch through heavy armor. + + + + +
    + +
    \ No newline at end of file diff --git a/Patches/Imperial Arsenal Royal Warcasket/Ammo/Xonus.xml b/Patches/Imperial Arsenal Royal Warcasket/Ammo/Xonus.xml new file mode 100644 index 0000000000..694f290c55 --- /dev/null +++ b/Patches/Imperial Arsenal Royal Warcasket/Ammo/Xonus.xml @@ -0,0 +1,395 @@ + + + + + +
  • Imperial Arsenal: Royal Warcasket
  • +
    + + Defs + + + + AmmoBoltXonus + + AmmoAdvanced + UI/Icons/ThingCategories/CaliberHighCaliber + + + + + + AmmoSet_BoltXonus + + + Bullet_BoltXonus_Standard + Bullet_BoltXonus_Inferno + Bullet_BoltXonus_MetalStorm + Bullet_BoltXonus_Kraken + + + + + + + A .998 caliber, gryojet-stabilized projectile with an explosive charge and hardened tip, fired from most patterns of Astartes heavy bolters. + + 0.385 + 0.15 + + +
  • CE_AutoEnableTrade
  • +
  • CE_AutoEnableCrafting
  • +
    + +
  • AmmoBoltXonus
  • +
    + 2000 +
    + + + Ammo_BoltXonus_Standard + + + ThirdParty/Warhammer/HeavyBolter/Standard + Graphic_StackCount + + + 4.44 + + Standard + Bullet_BoltXonus_Standard + + + + Ammo_BoltXonus_Inferno + + + ThirdParty/Warhammer/HeavyBolter/Inferno + Graphic_StackCount + + + 2.28 + + Inferno + Bullet_BoltXonus_Inferno + + + + Ammo_BoltXonus_MetalStorm + + + ThirdParty/Warhammer/HeavyBolter/MetalStorm + Graphic_StackCount + + + 2.70 + + MetalStorm + Bullet_BoltXonus_MetalStorm + + + + Ammo_BoltXonus_Kraken + + + ThirdParty/Warhammer/HeavyBolter/Kraken + Graphic_StackCount + + + 2.37 + + Kraken + Bullet_BoltXonus_Kraken + + + + + + + Things/Projectile/Bullet_Big + Graphic_Single + + CombatExtended.BulletCE + + Bullet + 96 + true + Fleck_RifleAmmoCasings_HighCal + Filth_RifleAmmoCasings_HighCal + + + + + Bullet_BoltXonus_Standard + + + 64 + 20 + 5.101 + +
  • + Bomb_Secondary + 38 +
  • +
    +
    +
    + + + Bullet_BoltXonus_Inferno + + CombatExtended.ProjectileCE_Explosive + + PrometheumFlame + 5 + 1.5 + FilthPrometheum + 0.7 + MortarIncendiary_Explode + + +
  • + 7 + Thermobaric + 1 + MortarIncendiary_Explode + true +
  • +
    +
    + + + Bullet_BoltXonus_MetalStorm + CombatExtended.ProjectileCE_Bursting + + + 1 + Bomb + 17 + true + 1.05 + 1.75 + + +
  • + + 6 + + -89~-5 +
  • +
    +
    + + + Bullet_BoltXonus_Kraken + + + Bullet + 142 + 46 + 5.101 + + +
  • + 17 + Bomb + 0.5 + MortarBomb_Explode + true +
  • +
    +
    + + + + + MakeAmmo_BoltXonus_Standard + + Craft 200 Xonus bolt (standard) shells. + Making Xonus bolt (standard) shells. + +
  • + + +
  • Steel
  • + + + 154 + +
  • + + +
  • FSX
  • + + + 18 + +
  • + + +
  • ComponentIndustrial
  • + + + 4 + +
    + + +
  • Steel
  • +
  • FSX
  • +
  • ComponentIndustrial
  • +
    +
    + + 200 + + 36600 +
    + + + MakeAmmo_BoltXonus_Inferno + + Craft 200 Xonus bolt (inferno) shells. + Making Xonus bolt (inferno) shells. + +
  • + + +
  • Steel
  • + + + 154 + +
  • + + +
  • Prometheum
  • + + + 12 + +
  • + + +
  • ComponentIndustrial
  • + + + 6 + +
    + + +
  • Steel
  • +
  • Prometheum
  • +
  • ComponentIndustrial
  • +
    +
    + + 200 + + 19400 +
    + + + MakeAmmo_BoltXonus_MetalStorm + + Craft 200 Xonus bolt (metal storm) shells. + Making Xonus bolt (metal storm) shells. + +
  • + + +
  • Steel
  • + + + 154 + +
  • + + +
  • FSX
  • + + + 8 + +
  • + + +
  • ComponentIndustrial
  • + + + 8 + +
    + + +
  • Steel
  • +
  • FSX
  • +
  • ComponentIndustrial
  • +
    +
    + + 200 + + 21800 +
    + + + MakeAmmo_BoltXonus_Kraken + + Craft 200 Xonus bolt (kraken) shells. + Making Xonus bolt (kraken) shells. + +
  • + + +
  • Steel
  • + + + 154 + +
  • + + +
  • FSX
  • + + + 6 + +
  • + + +
  • ComponentIndustrial
  • + + + 6 + +
  • + + +
  • Uranium
  • + + + 8 + +
    + + +
  • Steel
  • +
  • FSX
  • +
  • ComponentIndustrial
  • +
  • Uranium
  • +
    +
    + + 200 + + 20600 +
    + +
    +
    +
    + +
    \ No newline at end of file diff --git a/Patches/Imperial Arsenal Royal Warcasket/Apparel_Royal_Warcaskets.xml b/Patches/Imperial Arsenal Royal Warcasket/Apparel_Royal_Warcaskets.xml new file mode 100644 index 0000000000..51518952b3 --- /dev/null +++ b/Patches/Imperial Arsenal Royal Warcasket/Apparel_Royal_Warcaskets.xml @@ -0,0 +1,111 @@ + + + + + +
  • Imperial Arsenal: Royal Warcasket
  • +
    + + + + +
  • + Defs/VFEPirates.WarcasketDef[defName="Warcasket_Royal"]/statBases + + 250 + 25 + +
  • + +
  • + Defs/VFEPirates.WarcasketDef[defName="Warcasket_Royal"]/statBases/ArmorRating_Sharp + + 34 + +
  • + +
  • + Defs/VFEPirates.WarcasketDef[defName="Warcasket_Royal"]/statBases/ArmorRating_Blunt + + 86 + +
  • + +
  • + Defs/VFEPirates.WarcasketDef[defName="Warcasket_Royal"]/equippedStatOffsets + + 250 + 200 + -100 + +
  • + + +
  • + Defs/VFEPirates.WarcasketDef[defName="WarcasketShoulders_Royal"]/statBases + + 15 + 5 + +
  • + +
  • + Defs/VFEPirates.WarcasketDef[defName="WarcasketShoulders_Royal"]/statBases/ArmorRating_Sharp + + 34 + +
  • + +
  • + Defs/VFEPirates.WarcasketDef[defName="WarcasketShoulders_Royal"]/statBases/ArmorRating_Blunt + + 86 + +
  • + + +
  • + Defs/VFEPirates.WarcasketDef[defName="WarcasketHelmet_Royal"]/statBases + + 15 + 8 + 0.6 + +
  • + +
  • + Defs/VFEPirates.WarcasketDef[defName="WarcasketHelmet_Royal"]/apparel/immuneToToxGasExposure + + Defs/VFEPirates.WarcasketDef[defName="WarcasketHelmet_Royal"]/apparel + + true + + +
  • + +
  • + Defs/VFEPirates.WarcasketDef[defName="WarcasketHelmet_Royal"]/equippedStatOffsets + + -1 + +
  • + +
  • + Defs/VFEPirates.WarcasketDef[defName="WarcasketHelmet_Royal"]/statBases/ArmorRating_Sharp + + 30 + +
  • + +
  • + Defs/VFEPirates.WarcasketDef[defName="WarcasketHelmet_Royal"]/statBases/ArmorRating_Blunt + + 68 + +
  • + +
    +
    +
    + +
    \ No newline at end of file diff --git a/Patches/Imperial Arsenal Royal Warcasket/RangedWeapons.xml b/Patches/Imperial Arsenal Royal Warcasket/RangedWeapons.xml new file mode 100644 index 0000000000..b2b0efad83 --- /dev/null +++ b/Patches/Imperial Arsenal Royal Warcasket/RangedWeapons.xml @@ -0,0 +1,107 @@ + + + + + +
  • Imperial Arsenal: Royal Warcasket
  • +
    + + + + +
  • + Defs/ThingDef[defName = "RWC_Halberd"]/tools + + +
  • + + +
  • VFEP_GravityHammerAttack
  • + + 135 + 2.14 + 16 + Point + +
  • + + +
  • Cut
  • + + 75 + 1.34 + 16 + Blade + +
  • + Flame + 25 + 1 +
  • +
    + + + + + + +
  • + /Defs/ThingDef[defName="RWC_Halberd"]/verbs +
  • + +
  • + /Defs/ThingDef[defName="RWC_Halberd"]/comps/li[@Class="CompToggleFireMode.CompProperties_ToggleFireMode"] +
  • + +
  • + RWC_Halberd + + 15 + 1.2 + 0.08 + 2.20 + 0.40 + + + 1.19 + CombatExtended.Verb_ShootCE + True + Bullet_BoltXonus_Standard + 0.8 + 68 + Xonus_ShotHeavy + GunTail_Heavy + 16 + + + 25 + 3.0 + AmmoSet_BoltXonus + + + AimedShot + +
  • + +
  • + /Defs/ThingDef[defName="RWC_Halberd"] + + -90 + +
  • + +
  • + /Defs/ThingDef[defName="RWC_Halberd"] + +
  • + 1.9,1.9 + 0.0,0.0 +
  • + + + +
    +
    +
    + +
    \ No newline at end of file diff --git a/Patches/Infinity Rim Ariadna/Weapons/AntipodeWeapon.xml b/Patches/Infinity Rim Ariadna/Weapons/AntipodeWeapon.xml index 75aed154c0..ac94362856 100644 --- a/Patches/Infinity Rim Ariadna/Weapons/AntipodeWeapon.xml +++ b/Patches/Infinity Rim Ariadna/Weapons/AntipodeWeapon.xml @@ -9,7 +9,7 @@
  • Bow_Antipode - 0.6 + 0.8 1 2 5.00 diff --git a/Patches/Infinity Rim Ariadna/Weapons/Shotguns.xml b/Patches/Infinity Rim Ariadna/Weapons/Shotguns.xml index 68914abbe2..d011c3b389 100644 --- a/Patches/Infinity Rim Ariadna/Weapons/Shotguns.xml +++ b/Patches/Infinity Rim Ariadna/Weapons/Shotguns.xml @@ -105,7 +105,7 @@ 0.2 1.5 11.0 - 0.5 + 0.8 5800 diff --git a/Patches/JDS Castle Walls/ThingDefs_Tower.xml b/Patches/JDS Castle Walls/ThingDefs_Tower.xml index 5970049474..0fb8dca1b4 100644 --- a/Patches/JDS Castle Walls/ThingDefs_Tower.xml +++ b/Patches/JDS Castle Walls/ThingDefs_Tower.xml @@ -40,7 +40,7 @@
  • Defend_Tower_GreatBow - 0.6 + 0.8 1 2 5.00 diff --git a/Patches/K4G Rimworld War 2/ThingDefs_Misc/UnitedStatesWeapons_Ranged.xml b/Patches/K4G Rimworld War 2/ThingDefs_Misc/UnitedStatesWeapons_Ranged.xml index e7536cd467..6d327a7f32 100644 --- a/Patches/K4G Rimworld War 2/ThingDefs_Misc/UnitedStatesWeapons_Ranged.xml +++ b/Patches/K4G Rimworld War 2/ThingDefs_Misc/UnitedStatesWeapons_Ranged.xml @@ -16,7 +16,7 @@ 0.5 0.5 - 0.6 + 0.7 0.18 1.27 1.41 diff --git a/Patches/K4G Rimworld War 2/ThingDefs_Misc/WW2_Grenades.xml b/Patches/K4G Rimworld War 2/ThingDefs_Misc/WW2_Grenades.xml index 695d28e6af..592fdfb6fd 100644 --- a/Patches/K4G Rimworld War 2/ThingDefs_Misc/WW2_Grenades.xml +++ b/Patches/K4G Rimworld War 2/ThingDefs_Misc/WW2_Grenades.xml @@ -743,7 +743,7 @@ 0.87 12.22 0.5 - 0.65 + 1.0
  • Grenades
  • @@ -803,7 +803,7 @@ 1.36 10 25 - 0.65 + 1.0 1 @@ -884,7 +884,7 @@ 10 27 1 - 0.65 + 1.0
  • Grenades
  • @@ -957,7 +957,7 @@ 0.87 12.22 0.5 - 0.65 + 1.0
  • Grenades
  • @@ -1025,7 +1025,7 @@ 0.87 12.22 0.5 - 0.65 + 1.0
  • Grenades
  • @@ -1093,7 +1093,7 @@ 0.87 12.22 0.5 - 0.65 + 1.0
  • Grenades
  • @@ -1161,7 +1161,7 @@ 0.87 13.22 0.5 - 0.65 + 1.0
  • Grenades
  • @@ -1229,7 +1229,7 @@ 10 28 1 - 0.65 + 1.0
  • Grenades
  • @@ -1302,7 +1302,7 @@ 0.87 11.22 0.5 - 0.65 + 1.0
  • Grenades
  • @@ -1368,7 +1368,7 @@ 0.87 12.22 0.5 - 0.65 + 1.0
  • Grenades
  • @@ -1434,7 +1434,7 @@ 0.87 13.22 0.5 - 0.65 + 1.0
  • Grenades
  • @@ -1502,7 +1502,7 @@ 10 25 1 - 0.65 + 1.0
  • Grenades
  • @@ -1575,7 +1575,7 @@ 0.87 12.22 0.5 - 0.65 + 1.0
  • Grenades
  • @@ -1643,7 +1643,7 @@ 0.87 11.22 0.5 - 0.65 + 1.0
  • Grenades
  • @@ -1709,7 +1709,7 @@ 0.87 12.22 0.5 - 0.65 + 1.0
  • Grenades
  • @@ -1775,7 +1775,7 @@ 0.87 13.22 0.5 - 0.65 + 1.0
  • Grenades
  • @@ -1843,7 +1843,7 @@ 10 25 1 - 0.65 + 1.0
  • Grenades
  • @@ -1916,7 +1916,7 @@ 10 27 1 - 0.65 + 1.0
  • Grenades
  • @@ -1989,7 +1989,7 @@ 10 28 1 - 0.65 + 1.0
  • Grenades
  • @@ -2062,7 +2062,7 @@ 0.87 12.22 0.5 - 0.65 + 1.0
  • Grenades
  • diff --git a/Patches/Kaiser Armory/KaiserArmory_Guns.xml b/Patches/Kaiser Armory/KaiserArmory_Guns.xml index a28c73ac83..7c829c7abd 100644 --- a/Patches/Kaiser Armory/KaiserArmory_Guns.xml +++ b/Patches/Kaiser Armory/KaiserArmory_Guns.xml @@ -664,7 +664,7 @@ 0.36 12.22 1 - 0.65 + 1.0 diff --git a/Patches/Kijin 2.0/ThingDef_Misc/Kijin_Weapons_Ranged.xml b/Patches/Kijin 2.0/ThingDef_Misc/Kijin_Weapons_Ranged.xml index 8fa8d5fe13..6ec8808401 100644 --- a/Patches/Kijin 2.0/ThingDef_Misc/Kijin_Weapons_Ranged.xml +++ b/Patches/Kijin 2.0/ThingDef_Misc/Kijin_Weapons_Ranged.xml @@ -15,7 +15,7 @@
  • Kijin_Fan - 0.6 + 0.8 1 2 4.00 @@ -83,7 +83,7 @@
  • Kijin_FlameBow - 0.6 + 0.8 1 2 4.00 @@ -150,7 +150,7 @@
  • Kijin_PosionBow - 0.6 + 0.8 0.5 1 4.00 @@ -247,7 +247,7 @@ 0.539 1.05 8.88 - 0.45 + 1.0 1 24000 @@ -306,7 +306,7 @@
  • KijinDarkMatter - 0.6 + 1.0 1 2 1 diff --git a/Patches/Kit's Roman Weapons/Roman_Weapons.xml b/Patches/Kit's Roman Weapons/Roman_Weapons.xml index 33bb97d669..46f231fc74 100644 --- a/Patches/Kit's Roman Weapons/Roman_Weapons.xml +++ b/Patches/Kit's Roman Weapons/Roman_Weapons.xml @@ -269,7 +269,7 @@ Interact_Grenade 2.36 - 0.45 + 1.0 1.5 2.5 3.5 diff --git a/Patches/Kurin Deluxe Patch/ThingDefs_Misc/DRNTF_Weapon.xml b/Patches/Kurin Deluxe Patch/ThingDefs_Misc/DRNTF_Weapon.xml index f0e40790c4..4618ffc776 100644 --- a/Patches/Kurin Deluxe Patch/ThingDefs_Misc/DRNTF_Weapon.xml +++ b/Patches/Kurin Deluxe Patch/ThingDefs_Misc/DRNTF_Weapon.xml @@ -419,7 +419,7 @@ 2.10 3.00 - 0.65 + 1.0 0.35 diff --git a/Patches/LF Red Dawn/RD_Grenade.xml b/Patches/LF Red Dawn/RD_Grenade.xml index 30855de507..37a8e8ae96 100644 --- a/Patches/LF Red Dawn/RD_Grenade.xml +++ b/Patches/LF Red Dawn/RD_Grenade.xml @@ -277,7 +277,7 @@ 1.5 4.55 1 - 0.65 + 1.0 @@ -309,7 +309,7 @@ 1.5 4.55 1 - 0.65 + 1.0 @@ -341,7 +341,7 @@ 1.5 4.55 1 - 0.65 + 1.0 @@ -373,7 +373,7 @@ 1.5 4.55 1 - 0.65 + 1.0 @@ -405,7 +405,7 @@ 1.5 4.55 1 - 0.65 + 1.0 diff --git a/Patches/LTS Military/Weapons.xml b/Patches/LTS Military/Weapons.xml index 1b3f9a7261..42e11d47d4 100644 --- a/Patches/LTS Military/Weapons.xml +++ b/Patches/LTS Military/Weapons.xml @@ -727,7 +727,7 @@ 0.36 11.22 1 - 0.65 + 1.0 diff --git a/Patches/Machines of War/BodyDefs/CicadaBody.xml b/Patches/Machines of War/BodyDefs/CicadaBody.xml new file mode 100644 index 0000000000..4a3086797a --- /dev/null +++ b/Patches/Machines of War/BodyDefs/CicadaBody.xml @@ -0,0 +1,153 @@ + + + + + +
  • Machines of War
  • + + + + + +
  • + Defs/BodyDef[defName="MOW_MechanicalCicada"]/corePart/groups + + Defs/BodyDef[defName="MOW_MechanicalCicada"]/corePart + + + + +
  • + +
  • + Defs/BodyDef[defName="MOW_MechanicalCicada"]/corePart/parts/li[def="MechanicalNeck"]/groups + + Defs/BodyDef[defName="MOW_MechanicalCicada"]/corePart/parts/li[def="MechanicalNeck"] + + + + +
  • + +
  • + Defs/BodyDef[defName="MOW_MechanicalCicada"]/corePart/parts/li[def="MechanicalNeck"]/parts/li[def="MechanicalHead"]/groups + + Defs/BodyDef[defName="MOW_MechanicalCicada"]/corePart/parts/li[def="MechanicalNeck"]/parts/li[def="MechanicalHead"] + + + + +
  • + +
  • + Defs/BodyDef[defName="MOW_MechanicalCicada"]/corePart/parts/li[def="MechanicalNeck"]/parts/li[def="MechanicalHead"]/parts/li[def="SightSensor"]/groups + + Defs/BodyDef[defName="MOW_MechanicalCicada"]/corePart/parts/li[def="MechanicalNeck"]/parts/li[def="MechanicalHead"]/parts/li[def="SightSensor"] + + + + +
  • + +
  • + Defs/BodyDef[defName="MOW_MechanicalCicada"]/corePart/parts/li[def="MechanicalNeck"]/parts/li[def="MechanicalHead"]/parts/li[def="HearingSensor"]/groups + + Defs/BodyDef[defName="MOW_MechanicalCicada"]/corePart/parts/li[def="MechanicalNeck"]/parts/li[def="MechanicalHead"]/parts/li[def="HearingSensor"] + + + + +
  • + +
  • + Defs/BodyDef[defName="MOW_MechanicalCicada"]/corePart/parts/li[def="MechanicalNeck"]/parts/li[def="MechanicalHead"]/parts/li[def="SmellSensor"]/groups + + Defs/BodyDef[defName="MOW_MechanicalCicada"]/corePart/parts/li[def="MechanicalNeck"]/parts/li[def="MechanicalHead"]/parts/li[def="SmellSensor"] + + + + +
  • + +
  • + Defs/BodyDef[defName="MOW_MechanicalCicada"]/corePart/parts/li[def="MechanicalLeg"]/groups + + Defs/BodyDef[defName="MOW_MechanicalCicada"]/corePart/parts/li[def="MechanicalLeg"] + + + + +
  • + +
  • + Defs/BodyDef[defName="MOW_MechanicalCicada"]/corePart/parts/li[def="MechanicalLeg"]/parts/li[def="MechanicalFoot"]/groups + + Defs/BodyDef[defName="MOW_MechanicalCicada"]/corePart/parts/li[def="MechanicalLeg"]/parts/li[def="MechanicalFoot"] + + + + +
  • + + +
  • + Defs/BodyDef[defName="MOW_MechanicalCicada"]/corePart/groups + +
  • CoveredByNaturalArmor
  • + + + +
  • + Defs/BodyDef[defName="MOW_MechanicalCicada"]/corePart/parts/li[def="MechanicalNeck"]/groups + +
  • CoveredByNaturalArmor
  • + + + +
  • + Defs/BodyDef[defName="MOW_MechanicalCicada"]/corePart/parts/li[def="MechanicalNeck"]/parts/li[def="MechanicalHead"]/groups + +
  • CoveredByNaturalArmor
  • + + + +
  • + Defs/BodyDef[defName="MOW_MechanicalCicada"]/corePart/parts/li[def="MechanicalNeck"]/parts/li[def="MechanicalHead"]/parts/li[def="SightSensor"]/groups + +
  • CoveredByNaturalArmor
  • + + + +
  • + Defs/BodyDef[defName="MOW_MechanicalCicada"]/corePart/parts/li[def="MechanicalNeck"]/parts/li[def="MechanicalHead"]/parts/li[def="HearingSensor"]/groups + +
  • CoveredByNaturalArmor
  • + + + +
  • + Defs/BodyDef[defName="MOW_MechanicalCicada"]/corePart/parts/li[def="MechanicalNeck"]/parts/li[def="MechanicalHead"]/parts/li[def="SmellSensor"]/groups + +
  • CoveredByNaturalArmor
  • + + + +
  • + Defs/BodyDef[defName="MOW_MechanicalCicada"]/corePart/parts/li[def="MechanicalLeg"]/groups + +
  • CoveredByNaturalArmor
  • + + + +
  • + Defs/BodyDef[defName="MOW_MechanicalCicada"]/corePart/parts/li[def="MechanicalLeg"]/parts/li[def="MechanicalFoot"]/groups + +
  • CoveredByNaturalArmor
  • + + + +
    +
    + + + \ No newline at end of file diff --git a/Patches/Machines of War/BodyDefs/DemolisherBody.xml b/Patches/Machines of War/BodyDefs/DemolisherBody.xml new file mode 100644 index 0000000000..fb8a403e01 --- /dev/null +++ b/Patches/Machines of War/BodyDefs/DemolisherBody.xml @@ -0,0 +1,221 @@ + + + + + +
  • Machines of War
  • +
    + + + + +
  • + Defs/BodyDef[defName="MOW_Demolisher"]/corePart/groups + + Defs/BodyDef[defName="MOW_Demolisher"]/corePart + + + + +
  • + +
  • + Defs/BodyDef[defName="MOW_Demolisher"]/corePart/parts/li[def="MechanicalNeck"]/groups + + Defs/BodyDef[defName="MOW_Demolisher"]/corePart/parts/li[def="MechanicalNeck"] + + + + +
  • + +
  • + Defs/BodyDef[defName="MOW_Demolisher"]/corePart/parts/li[def="MechanicalNeck"]/parts/li[def="MechanicalHead"]/groups + + Defs/BodyDef[defName="MOW_Demolisher"]/corePart/parts/li[def="MechanicalNeck"]/parts/li[def="MechanicalHead"] + + + + +
  • + +
  • + Defs/BodyDef[defName="MOW_Demolisher"]/corePart/parts/li[def="MechanicalNeck"]/parts/li[def="MechanicalHead"]/parts/li[def="SightSensor"]/groups + + Defs/BodyDef[defName="MOW_Demolisher"]/corePart/parts/li[def="MechanicalNeck"]/parts/li[def="MechanicalHead"]/parts/li[def="SightSensor"] + + + + +
  • + +
  • + Defs/BodyDef[defName="MOW_Demolisher"]/corePart/parts/li[def="MechanicalNeck"]/parts/li[def="MechanicalHead"]/parts/li[def="HearingSensor"]/groups + + Defs/BodyDef[defName="MOW_Demolisher"]/corePart/parts/li[def="MechanicalNeck"]/parts/li[def="MechanicalHead"]/parts/li[def="HearingSensor"] + + + + +
  • + +
  • + Defs/BodyDef[defName="MOW_Demolisher"]/corePart/parts/li[def="MechanicalNeck"]/parts/li[def="MechanicalHead"]/parts/li[def="SmellSensor"]/groups + + Defs/BodyDef[defName="MOW_Demolisher"]/corePart/parts/li[def="MechanicalNeck"]/parts/li[def="MechanicalHead"]/parts/li[def="SmellSensor"] + + + + +
  • + +
  • + Defs/BodyDef[defName="MOW_Demolisher"]/corePart/parts/li[def="MechanicalShoulder"]/groups + + Defs/BodyDef[defName="MOW_Demolisher"]/corePart/parts/li[def="MechanicalShoulder"] + + + + +
  • + +
  • + Defs/BodyDef[defName="MOW_Demolisher"]/corePart/parts/li[def="MechanicalShoulder"]/parts/li[def="MechanicalArm"]/groups + + Defs/BodyDef[defName="MOW_Demolisher"]/corePart/parts/li[def="MechanicalShoulder"]/parts/li[def="MechanicalArm"] + + + + +
  • + +
  • + Defs/BodyDef[defName="MOW_Demolisher"]/corePart/parts/li[def="MechanicalShoulder"]/parts/li[def="MechanicalArm"]/parts/li[def="MechanicalHand"]/groups + + Defs/BodyDef[defName="MOW_Demolisher"]/corePart/parts/li[def="MechanicalShoulder"]/parts/li[def="MechanicalArm"]/parts/li[def="MechanicalHand"] + + + + +
  • + +
  • + Defs/BodyDef[defName="MOW_Demolisher"]/corePart/parts/li[def="MechanicalShoulder"]/parts/li[def="MechanicalArm"]/parts/li[def="MechanicalHand"]/parts/li[def="MechanicalFinger"]/groups + + Defs/BodyDef[defName="MOW_Demolisher"]/corePart/parts/li[def="MechanicalShoulder"]/parts/li[def="MechanicalArm"]/parts/li[def="MechanicalHand"]/parts/li[def="MechanicalFinger"] + + + + +
  • + +
  • + Defs/BodyDef[defName="MOW_Demolisher"]/corePart/parts/li[def="MechanicalLeg"]/groups + + Defs/BodyDef[defName="MOW_Demolisher"]/corePart/parts/li[def="MechanicalLeg"] + + + + +
  • + +
  • + Defs/BodyDef[defName="MOW_Demolisher"]/corePart/parts/li[def="MechanicalLeg"]/parts/li[def="MechanicalFoot"]/groups + + Defs/BodyDef[defName="MOW_Demolisher"]/corePart/parts/li[def="MechanicalLeg"]/parts/li[def="MechanicalFoot"] + + + + +
  • + + +
  • + Defs/BodyDef[defName="MOW_Demolisher"]/corePart/groups + +
  • CoveredByNaturalArmor
  • + + + +
  • + Defs/BodyDef[defName="MOW_Demolisher"]/corePart/parts/li[def="MechanicalNeck"]/groups + +
  • CoveredByNaturalArmor
  • + + + +
  • + Defs/BodyDef[defName="MOW_Demolisher"]/corePart/parts/li[def="MechanicalNeck"]/parts/li[def="MechanicalHead"]/groups + +
  • CoveredByNaturalArmor
  • + + + +
  • + Defs/BodyDef[defName="MOW_Demolisher"]/corePart/parts/li[def="MechanicalNeck"]/parts/li[def="MechanicalHead"]/parts/li[def="SightSensor"]/groups + +
  • CoveredByNaturalArmor
  • + + + +
  • + Defs/BodyDef[defName="MOW_Demolisher"]/corePart/parts/li[def="MechanicalNeck"]/parts/li[def="MechanicalHead"]/parts/li[def="HearingSensor"]/groups + +
  • CoveredByNaturalArmor
  • + + + +
  • + Defs/BodyDef[defName="MOW_Demolisher"]/corePart/parts/li[def="MechanicalNeck"]/parts/li[def="MechanicalHead"]/parts/li[def="SmellSensor"]/groups + +
  • CoveredByNaturalArmor
  • + + + +
  • + Defs/BodyDef[defName="MOW_Demolisher"]/corePart/parts/li[def="MechanicalLeg"]/groups + +
  • CoveredByNaturalArmor
  • + + + +
  • + Defs/BodyDef[defName="MOW_Demolisher"]/corePart/parts/li[def="MechanicalLeg"]/parts/li[def="MechanicalFoot"]/groups + +
  • CoveredByNaturalArmor
  • + + + +
  • + Defs/BodyDef[defName="MOW_Demolisher"]/corePart/parts/li[def="MechanicalShoulder"]/groups + +
  • CoveredByNaturalArmor
  • + + + +
  • + Defs/BodyDef[defName="MOW_Demolisher"]/corePart/parts/li[def="MechanicalShoulder"]/parts/li[def="MechanicalArm"]/groups + +
  • CoveredByNaturalArmor
  • + + + +
  • + Defs/BodyDef[defName="MOW_Demolisher"]/corePart/parts/li[def="MechanicalShoulder"]/parts/li[def="MechanicalArm"]/parts/li[def="MechanicalHand"]/groups + +
  • CoveredByNaturalArmor
  • + + + +
  • + Defs/BodyDef[defName="MOW_Demolisher"]/corePart/parts/li[def="MechanicalShoulder"]/parts/li[def="MechanicalArm"]/parts/li[def="MechanicalHand"]/parts/li[def="MechanicalFinger"]/groups + +
  • CoveredByNaturalArmor
  • + + + +
    +
    +
    + +
    \ No newline at end of file diff --git a/Patches/Machines of War/BodyDefs/EnforcerBody.xml b/Patches/Machines of War/BodyDefs/EnforcerBody.xml new file mode 100644 index 0000000000..1f34223d74 --- /dev/null +++ b/Patches/Machines of War/BodyDefs/EnforcerBody.xml @@ -0,0 +1,221 @@ + + + + + +
  • Machines of War
  • +
    + + + + +
  • + Defs/BodyDef[defName="MOW_Enforcer"]/corePart/groups + + Defs/BodyDef[defName="MOW_Enforcer"]/corePart + + + + +
  • + +
  • + Defs/BodyDef[defName="MOW_Enforcer"]/corePart/parts/li[def="MechanicalNeck"]/groups + + Defs/BodyDef[defName="MOW_Enforcer"]/corePart/parts/li[def="MechanicalNeck"] + + + + +
  • + +
  • + Defs/BodyDef[defName="MOW_Enforcer"]/corePart/parts/li[def="MechanicalNeck"]/parts/li[def="MechanicalHead"]/groups + + Defs/BodyDef[defName="MOW_Enforcer"]/corePart/parts/li[def="MechanicalNeck"]/parts/li[def="MechanicalHead"] + + + + +
  • + +
  • + Defs/BodyDef[defName="MOW_Enforcer"]/corePart/parts/li[def="MechanicalNeck"]/parts/li[def="MechanicalHead"]/parts/li[def="SightSensor"]/groups + + Defs/BodyDef[defName="MOW_Enforcer"]/corePart/parts/li[def="MechanicalNeck"]/parts/li[def="MechanicalHead"]/parts/li[def="SightSensor"] + + + + +
  • + +
  • + Defs/BodyDef[defName="MOW_Enforcer"]/corePart/parts/li[def="MechanicalNeck"]/parts/li[def="MechanicalHead"]/parts/li[def="HearingSensor"]/groups + + Defs/BodyDef[defName="MOW_Enforcer"]/corePart/parts/li[def="MechanicalNeck"]/parts/li[def="MechanicalHead"]/parts/li[def="HearingSensor"] + + + + +
  • + +
  • + Defs/BodyDef[defName="MOW_Enforcer"]/corePart/parts/li[def="MechanicalNeck"]/parts/li[def="MechanicalHead"]/parts/li[def="SmellSensor"]/groups + + Defs/BodyDef[defName="MOW_Enforcer"]/corePart/parts/li[def="MechanicalNeck"]/parts/li[def="MechanicalHead"]/parts/li[def="SmellSensor"] + + + + +
  • + +
  • + Defs/BodyDef[defName="MOW_Enforcer"]/corePart/parts/li[def="MOW_MechanicalShoulderPauldron"]/groups + + Defs/BodyDef[defName="MOW_Enforcer"]/corePart/parts/li[def="MOW_MechanicalShoulderPauldron"] + + + + +
  • + +
  • + Defs/BodyDef[defName="MOW_Enforcer"]/corePart/parts/li[def="MOW_MechanicalShoulderPauldron"]/parts/li[def="MechanicalArm"]/groups + + Defs/BodyDef[defName="MOW_Enforcer"]/corePart/parts/li[def="MOW_MechanicalShoulderPauldron"]/parts/li[def="MechanicalArm"] + + + + +
  • + +
  • + Defs/BodyDef[defName="MOW_Enforcer"]/corePart/parts/li[def="MOW_MechanicalShoulderPauldron"]/parts/li[def="MechanicalArm"]/parts/li[def="MechanicalHand"]/groups + + Defs/BodyDef[defName="MOW_Enforcer"]/corePart/parts/li[def="MOW_MechanicalShoulderPauldron"]/parts/li[def="MechanicalArm"]/parts/li[def="MechanicalHand"] + + + + +
  • + +
  • + Defs/BodyDef[defName="MOW_Enforcer"]/corePart/parts/li[def="MOW_MechanicalShoulderPauldron"]/parts/li[def="MechanicalArm"]/parts/li[def="MechanicalHand"]/parts/li[def="MechanicalFinger"]/groups + + Defs/BodyDef[defName="MOW_Enforcer"]/corePart/parts/li[def="MOW_MechanicalShoulderPauldron"]/parts/li[def="MechanicalArm"]/parts/li[def="MechanicalHand"]/parts/li[def="MechanicalFinger"] + + + + +
  • + +
  • + Defs/BodyDef[defName="MOW_Enforcer"]/corePart/parts/li[def="MechanicalLeg"]/groups + + Defs/BodyDef[defName="MOW_Enforcer"]/corePart/parts/li[def="MechanicalLeg"] + + + + +
  • + +
  • + Defs/BodyDef[defName="MOW_Enforcer"]/corePart/parts/li[def="MechanicalLeg"]/parts/li[def="MechanicalFoot"]/groups + + Defs/BodyDef[defName="MOW_Enforcer"]/corePart/parts/li[def="MechanicalLeg"]/parts/li[def="MechanicalFoot"] + + + + +
  • + + +
  • + Defs/BodyDef[defName="MOW_Enforcer"]/corePart/groups + +
  • CoveredByNaturalArmor
  • + + + +
  • + Defs/BodyDef[defName="MOW_Enforcer"]/corePart/parts/li[def="MechanicalNeck"]/groups + +
  • CoveredByNaturalArmor
  • + + + +
  • + Defs/BodyDef[defName="MOW_Enforcer"]/corePart/parts/li[def="MechanicalNeck"]/parts/li[def="MechanicalHead"]/groups + +
  • CoveredByNaturalArmor
  • + + + +
  • + Defs/BodyDef[defName="MOW_Enforcer"]/corePart/parts/li[def="MechanicalNeck"]/parts/li[def="MechanicalHead"]/parts/li[def="SightSensor"]/groups + +
  • CoveredByNaturalArmor
  • + + + +
  • + Defs/BodyDef[defName="MOW_Enforcer"]/corePart/parts/li[def="MechanicalNeck"]/parts/li[def="MechanicalHead"]/parts/li[def="HearingSensor"]/groups + +
  • CoveredByNaturalArmor
  • + + + +
  • + Defs/BodyDef[defName="MOW_Enforcer"]/corePart/parts/li[def="MechanicalNeck"]/parts/li[def="MechanicalHead"]/parts/li[def="SmellSensor"]/groups + +
  • CoveredByNaturalArmor
  • + + + +
  • + Defs/BodyDef[defName="MOW_Enforcer"]/corePart/parts/li[def="MechanicalLeg"]/groups + +
  • CoveredByNaturalArmor
  • + + + +
  • + Defs/BodyDef[defName="MOW_Enforcer"]/corePart/parts/li[def="MechanicalLeg"]/parts/li[def="MechanicalFoot"]/groups + +
  • CoveredByNaturalArmor
  • + + + +
  • + Defs/BodyDef[defName="MOW_Enforcer"]/corePart/parts/li[def="MOW_MechanicalShoulderPauldron"]/groups + +
  • CoveredByNaturalArmor
  • + + + +
  • + Defs/BodyDef[defName="MOW_Enforcer"]/corePart/parts/li[def="MOW_MechanicalShoulderPauldron"]/parts/li[def="MechanicalArm"]/groups + +
  • CoveredByNaturalArmor
  • + + + +
  • + Defs/BodyDef[defName="MOW_Enforcer"]/corePart/parts/li[def="MOW_MechanicalShoulderPauldron"]/parts/li[def="MechanicalArm"]/parts/li[def="MechanicalHand"]/groups + +
  • CoveredByNaturalArmor
  • + + + +
  • + Defs/BodyDef[defName="MOW_Enforcer"]/corePart/parts/li[def="MOW_MechanicalShoulderPauldron"]/parts/li[def="MechanicalArm"]/parts/li[def="MechanicalHand"]/parts/li[def="MechanicalFinger"]/groups + +
  • CoveredByNaturalArmor
  • + + + +
    +
    +
    + +
    \ No newline at end of file diff --git a/Patches/Machines of War/ThingDefs_Misc/BreachCharger.xml b/Patches/Machines of War/ThingDefs_Misc/BreachCharger.xml new file mode 100644 index 0000000000..a161be6fec --- /dev/null +++ b/Patches/Machines of War/ThingDefs_Misc/BreachCharger.xml @@ -0,0 +1,82 @@ + + + + + +
  • Machines of War
  • +
    + + + +
  • + + Defs/ThingDef[defName = "MOW_Gun_BreachChargeScatter"]/tools + + + +
  • + + +
  • Blunt
  • + + 8 + 1.55 + 1.5 + 2.755 + Stock + +
  • + + +
  • Poke
  • + + 15 + 2.02 + 5.630 + Barrel + + + + + + +
  • + MOW_Gun_BreachChargeScatter + + 4.35 + 6.0 + 1.25 + 0.14 + 1 + 0.26 + + + 3.0 + CombatExtended.Verb_ShootCE + True + Bullet_12GaugeCharged + 0.2 + 12 + MOW_Shot_StormChargeScatter + GunTail_Heavy + 9 + + + 24 + 3.5 + AmmoSet_12GaugeCharged + + + Snapshot + + +
  • CE_AI_Rifle
  • +
  • NoSwitch
  • +
    + + + + + + + \ No newline at end of file diff --git a/Patches/Machines of War/ThingDefs_Misc/CricketCannon.xml b/Patches/Machines of War/ThingDefs_Misc/CricketCannon.xml new file mode 100644 index 0000000000..19d7fa9924 --- /dev/null +++ b/Patches/Machines of War/ThingDefs_Misc/CricketCannon.xml @@ -0,0 +1,54 @@ + + + + + +
  • Machines of War
  • +
    + + + +
  • + Defs/ThingDef[defName="MOW_Gun_ShockaveCannon"]/tools + + +
  • + + +
  • Blunt
  • + + 10 + 3.0 + 3.5 + Barrel + + + + + +
  • + Defs/ThingDef[defName="MOW_Gun_ShockaveCannon"]/statBases/RangedWeapon_Cooldown + + 1.5 + +
  • + +
  • + Defs/ThingDef[defName="MOW_Gun_ShockaveCannon"]/verbs/li/warmupTime + + 0.8 + +
  • + +
  • + Defs/ThingDef[defName="MOW_Gun_ShockaveCannon"]/verbs/li/range + + 35 + +
  • + +
    +
    +
    + +
    \ No newline at end of file diff --git a/Patches/Machines of War/ThingDefs_Misc/Demolisherweapon.xml b/Patches/Machines of War/ThingDefs_Misc/Demolisherweapon.xml new file mode 100644 index 0000000000..6b7d882288 --- /dev/null +++ b/Patches/Machines of War/ThingDefs_Misc/Demolisherweapon.xml @@ -0,0 +1,76 @@ + + + + + +
  • Machines of War
  • +
    + + + +
  • + + Defs/ThingDef[defName = "MOW_Gun_ParticleLauncher"]/tools + + + +
  • + + +
  • Blunt
  • + + 30 + 1.55 + 1.5 + 30.755 + Stock + + + + + +
  • + MOW_Gun_ParticleLauncher + + 20.00 + 1.5 + 1 + 0.01 + 0.82 + 20.00 + + + 1.01 + CombatExtended.Verb_ShootCE + true + Bullet_80x256mmFuel_Incendiary + 1.7 + 40 + 1 + InfernoCannon_Fire + GunTail_Light + 14 + 5 + 4 + true + + + 5 + 15 + 7.8 + AmmoSet_80x256mmFuel + + + Snapshot + + +
  • CE_AI_Launcher
  • +
  • NoSwitch
  • +
    + + + + + + + \ No newline at end of file diff --git a/Patches/Machines of War/ThingDefs_Misc/StormCharger.xml b/Patches/Machines of War/ThingDefs_Misc/StormCharger.xml new file mode 100644 index 0000000000..d445c8285c --- /dev/null +++ b/Patches/Machines of War/ThingDefs_Misc/StormCharger.xml @@ -0,0 +1,86 @@ + + + + + +
  • Machines of War
  • +
    + + + +
  • + Defs/ThingDef[defName="MOW_Gun_EMMarksmanRifle"] +
  • + +
  • + + Defs/ThingDef[defName = "MOW_Gun_StormChargeScatter"]/tools + + + +
  • + + +
  • Blunt
  • + + 8 + 1.55 + 1.5 + 2.755 + Stock + +
  • + + +
  • Poke
  • + + 15 + 2.02 + 5.630 + Barrel + + + + + + +
  • + MOW_Gun_StormChargeScatter + + 4.35 + 6.0 + 1.25 + 0.14 + 1 + 0.56 + + + 3.0 + CombatExtended.Verb_ShootCE + True + Bullet_12GaugeCharged + 0.5 + 24 + MOW_Shot_StormChargeScatter + GunTail_Heavy + 9 + + + 12 + 4.5 + AmmoSet_12GaugeCharged + + + Snapshot + + +
  • CE_AI_Rifle
  • +
  • NoSwitch
  • +
    + + + + + + + \ No newline at end of file diff --git a/Patches/Machines of War/ThingDefs_Races/CicadaRaces.xml b/Patches/Machines of War/ThingDefs_Races/CicadaRaces.xml new file mode 100644 index 0000000000..3a54dff6ed --- /dev/null +++ b/Patches/Machines of War/ThingDefs_Races/CicadaRaces.xml @@ -0,0 +1,132 @@ + + + + + +
  • Machines of War
  • +
    + + + +
  • + Defs/ThingDef[defName="MOW_Mech_Cicada"]/statBases + + 0 + +
  • + + +
  • + Defs/ThingDef[defName="MOW_Mech_Cicada"]/statBases + + 0 + 0.80 + +
  • + +
  • + Defs/ThingDef[defName="MOW_Mech_Cicada"]/statBases + + 200 + 100 + 1.0 + 1 + 0.03 + 0.26 + 0.52 + 1.25 + 300 + +
  • + +
  • + Defs/ThingDef[defName="MOW_Mech_Cicada"]/statBases/ArmorRating_Blunt + + 20 + +
  • + +
  • + Defs/ThingDef[defName="MOW_Mech_Cicada"]/statBases/ArmorRating_Sharp + + 10 + +
  • + +
  • + Defs/ThingDef[defName="MOW_Mech_Cicada"]/tools + + + +
  • + + +
  • Blunt
  • + + 10 + 3.51 + HeadAttackTool + 0 + 3.5 + false + + + + + + +
  • + Defs/ThingDef[defName="MOW_Mech_Cicada"]/comps + + Defs/ThingDef[defName="MOW_Mech_Cicada"] + + + + +
  • + +
  • + Defs/ThingDef[defName="MOW_Mech_Cicada"]/comps + +
  • + CombatExtended.CompPawnGizmo +
  • +
  • + CombatExtended.CompAmmoGiver +
  • +
  • + UI/Buttons/SetMagCount + UI/Buttons/TakeAmmoNow +
  • + + + +
  • + Defs/ThingDef[defName="MOW_Mech_Cicada"]/comps + +
  • + 1580 + true + 1250 + 5 + true + + 5 + 5 + + 300 + 200 + true + 158 + 0.75 + 5 + 10 +
  • + + + +
    +
    +
    + +
    \ No newline at end of file diff --git a/Patches/Machines of War/ThingDefs_Races/DemolisherRaces.xml b/Patches/Machines of War/ThingDefs_Races/DemolisherRaces.xml new file mode 100644 index 0000000000..47c43527b3 --- /dev/null +++ b/Patches/Machines of War/ThingDefs_Races/DemolisherRaces.xml @@ -0,0 +1,140 @@ + + + + + +
  • Machines of War
  • +
    + + + +
  • + Defs/ThingDef[defName="MOW_Mech_Demolisher"]/statBases + + 0 + +
  • + + +
  • + Defs/ThingDef[defName="MOW_Mech_Demolisher"]/statBases + + 0 + 0.80 + +
  • + +
  • + Defs/ThingDef[defName="MOW_Mech_Demolisher"]/statBases + + 0.25 + 200 + 100 + 1.0 + 1 + 0.03 + 0.26 + 0.52 + 1.25 + 600 + +
  • + +
  • + Defs/ThingDef[defName="MOW_Mech_Demolisher"]/statBases/ArmorRating_Blunt + + 60 + +
  • + +
  • + Defs/ThingDef[defName="MOW_Mech_Demolisher"]/statBases/ArmorRating_Sharp + + 24 + +
  • + +
  • + Defs/ThingDef[defName="MOW_Mech_Demolisher"]/tools + + + +
  • + + +
  • Blunt
  • + + 20 + 3.51 + HeadAttackTool + 0 + 8 + false + + + + + + +
  • + Defs/ThingDef[defName="MOW_Mech_Demolisher"]/comps + + Defs/ThingDef[defName="MOW_Mech_Demolisher"] + + + + +
  • + +
  • + Defs/ThingDef[defName="MOW_Mech_Demolisher"]/comps + +
  • + CombatExtended.CompPawnGizmo +
  • +
  • + CombatExtended.CompAmmoGiver +
  • +
  • + UI/Buttons/SetMagCount + UI/Buttons/TakeAmmoNow +
  • + + + +
  • + Defs/ThingDef[defName="MOW_Mech_Demolisher"]/comps + +
  • + 3950 + true + 1250 + 5 + true + + 5 + 5 + + 300 + 200 + true + 395 + 0.5 + 14 + 36 +
  • + + + +
  • + Defs/PawnKindDef[defName="MOW_Mech_Demolisher"]/combatPower + + 1000 + +
  • + +
    +
    +
    + +
    \ No newline at end of file diff --git a/Patches/Machines of War/ThingDefs_Races/EnforcerBreachRaces .xml b/Patches/Machines of War/ThingDefs_Races/EnforcerBreachRaces .xml new file mode 100644 index 0000000000..86faabd503 --- /dev/null +++ b/Patches/Machines of War/ThingDefs_Races/EnforcerBreachRaces .xml @@ -0,0 +1,130 @@ + + + + + +
  • Machines of War
  • +
    + + + +
  • + Defs/ThingDef[defName="MOW_Mech_Enforcer_Breacher"]/statBases + + 0 + +
  • + + +
  • + Defs/ThingDef[defName="MOW_Mech_Enforcer_Breacher"]/statBases + + 0 + 0.80 + +
  • + +
  • + Defs/ThingDef[defName="MOW_Mech_Enforcer_Breacher"]/statBases + + 50 + 60 + 1.0 + 1 + 0.03 + 0.26 + 0.52 + 1.25 + 200 + +
  • + +
  • + Defs/ThingDef[defName="MOW_Mech_Enforcer_Breacher"]/statBases/ArmorRating_Blunt + + 9 + +
  • + +
  • + Defs/ThingDef[defName="MOW_Mech_Enforcer_Breacher"]/statBases/ArmorRating_Sharp + + 5 + +
  • + +
  • + Defs/ThingDef[defName="MOW_Mech_Enforcer_Breacher"]/tools + + + +
  • + + +
  • Blunt
  • + + 9 + 3.51 + HeadAttackTool + 0 + 8 + false + + + + + + +
  • + Defs/ThingDef[defName="MOW_Mech_Enforcer_Breacher"]/comps + + Defs/ThingDef[defName="MOW_Mech_Enforcer_Breacher"] + + + + +
  • + +
  • + Defs/ThingDef[defName="MOW_Mech_Enforcer_Breacher"]/comps + +
  • + CombatExtended.CompPawnGizmo +
  • +
  • + CombatExtended.CompAmmoGiver +
  • +
  • + UI/Buttons/SetMagCount + UI/Buttons/TakeAmmoNow +
  • + + + +
  • + Defs/ThingDef[defName="MOW_Mech_Enforcer_Breacher"]/comps + +
  • + 1310 + true + 1250 + 5 + true + + 5 + 5 + + 300 + 200 + true + 131 + 0.75 +
  • + + + +
    +
    +
    + +
    \ No newline at end of file diff --git a/Patches/Machines of War/ThingDefs_Races/EnforcerRaces.xml b/Patches/Machines of War/ThingDefs_Races/EnforcerRaces.xml new file mode 100644 index 0000000000..dd09c8b880 --- /dev/null +++ b/Patches/Machines of War/ThingDefs_Races/EnforcerRaces.xml @@ -0,0 +1,130 @@ + + + + + +
  • Machines of War
  • +
    + + + +
  • + Defs/ThingDef[defName="MOW_Mech_Enforcer"]/statBases + + 0 + +
  • + + +
  • + Defs/ThingDef[defName="MOW_Mech_Enforcer"]/statBases + + 0 + 0.80 + +
  • + +
  • + Defs/ThingDef[defName="MOW_Mech_Enforcer"]/statBases + + 50 + 60 + 1.0 + 1 + 0.03 + 0.26 + 0.52 + 1.25 + 200 + +
  • + +
  • + Defs/ThingDef[defName="MOW_Mech_Enforcer"]/statBases/ArmorRating_Blunt + + 9 + +
  • + +
  • + Defs/ThingDef[defName="MOW_Mech_Enforcer"]/statBases/ArmorRating_Sharp + + 5 + +
  • + +
  • + Defs/ThingDef[defName="MOW_Mech_Enforcer"]/tools + + + +
  • + + +
  • Blunt
  • + + 9 + 3.51 + HeadAttackTool + 0 + 8 + false + + + + + + +
  • + Defs/ThingDef[defName="MOW_Mech_Enforcer"]/comps + + Defs/ThingDef[defName="MOW_Mech_Enforcer"] + + + + +
  • + +
  • + Defs/ThingDef[defName="MOW_Mech_Enforcer"]/comps + +
  • + CombatExtended.CompPawnGizmo +
  • +
  • + CombatExtended.CompAmmoGiver +
  • +
  • + UI/Buttons/SetMagCount + UI/Buttons/TakeAmmoNow +
  • + + + +
  • + Defs/ThingDef[defName="MOW_Mech_Enforcer"]/comps + +
  • + 1310 + true + 1250 + 5 + true + + 5 + 5 + + 300 + 200 + true + 131 + 0.75 +
  • + + + +
    +
    +
    + +
    \ No newline at end of file diff --git a/Patches/MechanoidsExtraordinaire/ThingDefs_Races/Races_Mechanoid_MechanoidsExtraordinaire.xml b/Patches/MechanoidsExtraordinaire/ThingDefs_Races/Races_Mechanoid_MechanoidsExtraordinaire.xml index ffa1fdaab2..ed1a1c4e4a 100644 --- a/Patches/MechanoidsExtraordinaire/ThingDefs_Races/Races_Mechanoid_MechanoidsExtraordinaire.xml +++ b/Patches/MechanoidsExtraordinaire/ThingDefs_Races/Races_Mechanoid_MechanoidsExtraordinaire.xml @@ -80,7 +80,7 @@
  • Defs/ThingDef[defName="Mechanoid_Hound"]/statBases - 350 + 200 100 0.8 0.8 @@ -141,7 +141,7 @@
  • Defs/ThingDef[defName="Mechanoid_Chimera"]/statBases - 380 + 200 120 1.0 1.25 @@ -202,7 +202,7 @@
  • Defs/ThingDef[defName="Mechanoid_Goliath"]/statBases - 200 + 150 40 0.8 0.8 @@ -263,8 +263,8 @@
  • Defs/ThingDef[defName="Mechanoid_Kraken"]/statBases - 400 - 200 + 200 + 150 1.0 1.25 0.15 diff --git a/Patches/Medieval Overhaul/MO_Weapons_Grenades.xml b/Patches/Medieval Overhaul/MO_Weapons_Grenades.xml index 39527bb99b..28a7a186d5 100644 --- a/Patches/Medieval Overhaul/MO_Weapons_Grenades.xml +++ b/Patches/Medieval Overhaul/MO_Weapons_Grenades.xml @@ -114,7 +114,7 @@ 1.8 3 1 - 0.65 + 1.0 @@ -252,7 +252,7 @@ 1.8 3 1 - 0.65 + 1.0 @@ -405,7 +405,7 @@ 1.8 3 1 - 0.65 + 1.0 diff --git a/Patches/Medieval Overhaul/MO_Weapons_Ranged.xml b/Patches/Medieval Overhaul/MO_Weapons_Ranged.xml index ac2845fd6e..02ca4f8ff9 100644 --- a/Patches/Medieval Overhaul/MO_Weapons_Ranged.xml +++ b/Patches/Medieval Overhaul/MO_Weapons_Ranged.xml @@ -158,7 +158,7 @@
  • DankPyon_Bow_Hunting - 0.6 + 0.8 1 2 4.00 @@ -191,7 +191,7 @@
  • Bow_War - 0.6 + 0.8 1 2 5.00 diff --git a/Patches/Metal Gear Rimworld-Gekko/BodyDefs/GekkoBody.xml b/Patches/Metal Gear Rimworld-Gekko/BodyDefs/GekkoBody.xml new file mode 100644 index 0000000000..d31650205e --- /dev/null +++ b/Patches/Metal Gear Rimworld-Gekko/BodyDefs/GekkoBody.xml @@ -0,0 +1,175 @@ + + + + + +
  • Metal Gear Rimworld-Gekko
  • + + + + + + +
  • + Defs/BodyDef[defName="Mech_Gekko"]/corePart/groups + + Defs/BodyDef[defName="Mech_Gekko"]/corePart + + + + +
  • + +
  • + Defs/BodyDef[defName="Mech_Gekko"]/corePart/parts/li[def="MechanicalNeck"]/groups + + Defs/BodyDef[defName="Mech_Gekko"]/corePart/parts/li[def="MechanicalNeck"] + + + + +
  • + +
  • + Defs/BodyDef[defName="Mech_Gekko"]/corePart/parts/li[def="MechanicalNeck"]/parts/li[def="MechanicalHead"]/groups + + Defs/BodyDef[defName="Mech_Gekko"]/corePart/parts/li[def="MechanicalNeck"]/parts/li[def="MechanicalHead"] + + + + +
  • + +
  • + Defs/BodyDef[defName="Mech_Gekko"]/corePart/parts/li[def="MechanicalNeck"]/parts/li[def="MechanicalHead"]/parts/li[def="SightSensor"]/groups + + Defs/BodyDef[defName="Mech_Gekko"]/corePart/parts/li[def="MechanicalNeck"]/parts/li[def="MechanicalHead"]/parts/li[def="SightSensor"] + + + + +
  • + +
  • + Defs/BodyDef[defName="Mech_Gekko"]/corePart/parts/li[def="MechanicalNeck"]/parts/li[def="MechanicalHead"]/parts/li[def="HearingSensor"]/groups + + Defs/BodyDef[defName="Mech_Gekko"]/corePart/parts/li[def="MechanicalNeck"]/parts/li[def="MechanicalHead"]/parts/li[def="HearingSensor"] + + + + +
  • + +
  • + Defs/BodyDef[defName="Mech_Gekko"]/corePart/parts/li[def="MechanicalNeck"]/parts/li[def="MechanicalHead"]/parts/li[def="SmellSensor"]/groups + + Defs/BodyDef[defName="Mech_Gekko"]/corePart/parts/li[def="MechanicalNeck"]/parts/li[def="MechanicalHead"]/parts/li[def="SmellSensor"] + + + + +
  • + +
  • + Defs/BodyDef[defName="Mech_Gekko"]/corePart/parts/li[def="MechanicalShoulder"]/groups + + Defs/BodyDef[defName="Mech_Gekko"]/corePart/parts/li[def="MechanicalShoulder"] + + + + +
  • + +
  • + Defs/BodyDef[defName="Mech_Gekko"]/corePart/parts/li[def="MechanicalShoulder"]/parts/li[def="MechanicalArm"]/groups + + Defs/BodyDef[defName="Mech_Gekko"]/corePart/parts/li[def="MechanicalShoulder"]/parts/li[def="MechanicalArm"] + + + + +
  • + + +
  • + Defs/BodyDef[defName="Mech_Gekko"]/corePart/groups + +
  • CoveredByNaturalArmor
  • + + + +
  • + Defs/BodyDef[defName="Mech_Gekko"]/corePart/parts/li[def="MechanicalNeck"]/groups + +
  • CoveredByNaturalArmor
  • + + + +
  • + Defs/BodyDef[defName="Mech_Gekko"]/corePart/parts/li[def="MechanicalNeck"]/parts/li[def="MechanicalHead"]/groups + +
  • CoveredByNaturalArmor
  • + + + +
  • + Defs/BodyDef[defName="Mech_Gekko"]/corePart/parts/li[def="MechanicalShoulder"]/groups + +
  • CoveredByNaturalArmor
  • + + + +
  • + Defs/BodyDef[defName="Mech_Gekko"]/corePart/parts/li[def="MechanicalShoulder"]/parts/li[def="MechanicalArm"]/groups + +
  • CoveredByNaturalArmor
  • + + + +
  • + Defs/BodyDef[defName="Mech_Gekko"]/corePart/parts/li[def="MGR_SyntheticalLeg"]/groups + +
  • CoveredByNaturalArmor
  • + + + +
  • + Defs/BodyDef[defName="Mech_Gekko"]/corePart/parts/li[def="MGR_SyntheticalLeg"]/parts/li[def="MechanicalFoot"]/groups + +
  • CoveredByNaturalArmor
  • + + + +
  • + Defs/BodyDef[defName="Mech_Gekko"]/corePart/parts/li[def="MGR_SyntheticalLeg"]/parts/li[def="PowerClaw"]/groups + +
  • CoveredByNaturalArmor
  • + + + +
  • + Defs/BodyDef[defName="Mech_Gekko"]/corePart/parts/li[def="MechanicalNeck"]/parts/li[def="MechanicalHead"]/parts/li[def="SightSensor"]/groups + +
  • CoveredByNaturalArmor
  • + + + +
  • + Defs/BodyDef[defName="Mech_Gekko"]/corePart/parts/li[def="MechanicalNeck"]/parts/li[def="MechanicalHead"]/parts/li[def="HearingSensor"]/groups + +
  • CoveredByNaturalArmor
  • + + + +
  • + Defs/BodyDef[defName="Mech_Gekko"]/corePart/parts/li[def="MechanicalNeck"]/parts/li[def="MechanicalHead"]/parts/li[def="SmellSensor"]/groups + +
  • CoveredByNaturalArmor
  • + + + +
    +
    + + + \ No newline at end of file diff --git a/Patches/Metal Gear Rimworld-Gekko/ThingDefs_Misc/Gekko50call.xml b/Patches/Metal Gear Rimworld-Gekko/ThingDefs_Misc/Gekko50call.xml new file mode 100644 index 0000000000..81a1b9b807 --- /dev/null +++ b/Patches/Metal Gear Rimworld-Gekko/ThingDefs_Misc/Gekko50call.xml @@ -0,0 +1,50 @@ + + + + + +
  • Metal Gear Rimworld-Gekko
  • +
    + + + MGR_Gun_Autocannon + + 38.00 + 0.36 + 1 + 0.05 + 1.4 + 20.00 + + + 1.58 + CombatExtended.Verb_ShootCE + true + Bullet_50BMG_FMJ + 1.3 + 75 + 8 + 10 + 50Cal_Browning + GunTail_Heavy + 16 + Mounted + + + 100 + 7.8 + AmmoSet_50BMG + + + 5 + SuppressFire + + +
  • CE_AI_Suppressive
  • +
  • NoSwitch
  • +
    +
    + +
    + +
    \ No newline at end of file diff --git a/Patches/Metal Gear Rimworld-Gekko/ThingDefs_Races/Races_Mechanoid.xml b/Patches/Metal Gear Rimworld-Gekko/ThingDefs_Races/Races_Mechanoid.xml new file mode 100644 index 0000000000..48b3f3658f --- /dev/null +++ b/Patches/Metal Gear Rimworld-Gekko/ThingDefs_Races/Races_Mechanoid.xml @@ -0,0 +1,198 @@ + + + + + +
  • Metal Gear Rimworld-Gekko
  • +
    + + + + +
  • + Defs/ThingDef[defName="MGR_Mech_Gekko"]/statBases + + 0 + +
  • + + +
  • + Defs/ThingDef[defName="MGR_Mech_Gekko"]/statBases + + 0 + 0.80 + +
  • + +
  • + Defs/ThingDef[defName="MGR_Mech_Gekko"]/statBases + + 0.25 + 75 + 30 + 1.0 + 1 + 0.03 + 0.26 + 0.52 + 1.25 + 500 + +
  • + +
  • + Defs/ThingDef[defName="MGR_Mech_Gekko"]/statBases/ArmorRating_Blunt + + 38 + +
  • + +
  • + Defs/ThingDef[defName="MGR_Mech_Gekko"]/statBases/ArmorRating_Sharp + + 16 + +
  • + +
  • + Defs/ThingDef[defName="MGR_Mech_Gekko"]/tools + + +
  • + + +
  • Blunt
  • + + 35 + 3.51 + HeadAttackTool + 0 + 15 + true + + + + + +
  • + Defs/ThingDef[defName="MGR_Mech_Gekko"]/comps + + Defs/ThingDef[defName="MGR_Mech_Gekko"] + + + + +
  • + +
  • + Defs/ThingDef[defName="MGR_Mech_Gekko"]/comps + +
  • + CombatExtended.CompPawnGizmo +
  • +
  • + CombatExtended.CompAmmoGiver +
  • +
  • + UI/Buttons/SetMagCount + UI/Buttons/TakeAmmoNow +
  • + + + +
  • + Defs/ThingDef[defName="MGR_Mech_Gekko"] + +
  • + +
  • + false + 0.1 + +
  • SightSensor
  • + + +
  • + false + 0.1 + +
  • SightSensor
  • + + +
  • + false + 0.625 + +
  • MGR_SyntheticalLeg
  • + + +
  • + true + 0.625 + +
  • MGR_SyntheticalLeg
  • + + +
  • + false + 0.625 + +
  • MechanicalFoot
  • + + +
  • + false + 0.625 + +
  • MechanicalFoot
  • + + +
  • + false + 0.625 + +
  • PowerClaw
  • + + +
  • + false + 0.625 + +
  • PowerClaw
  • + + + + + + + +
  • + Defs/ThingDef[defName="MGR_Mech_Gekko"]/comps + +
  • + 3000 + true + 1250 + 5 + true + + 5 + 5 + + 300 + 200 + true + 300 + 0.5 + 10 + 22 +
  • + + + +
    +
    +
    + +
    \ No newline at end of file diff --git a/Patches/Morgante Mafia Weapons Pack/Weapons_Guns.xml b/Patches/Morgante Mafia Weapons Pack/Weapons_Guns.xml index 22ed6a16c5..093b62f0b3 100644 --- a/Patches/Morgante Mafia Weapons Pack/Weapons_Guns.xml +++ b/Patches/Morgante Mafia Weapons Pack/Weapons_Guns.xml @@ -411,7 +411,7 @@ 2.55 7.05 1 - 0.65 + 1.0 diff --git a/Patches/MorrowRim - Bloodmoon/Hunter_Grenades.xml b/Patches/MorrowRim - Bloodmoon/Hunter_Grenades.xml index cda93c1723..07e4be183c 100644 --- a/Patches/MorrowRim - Bloodmoon/Hunter_Grenades.xml +++ b/Patches/MorrowRim - Bloodmoon/Hunter_Grenades.xml @@ -29,7 +29,7 @@ 0.436 1.55 12.4 - 0.65 + 1.0 1 2.0 diff --git a/Patches/Nihal/ThingDefs_Weapons/Weapons.xml b/Patches/Nihal/ThingDefs_Weapons/Weapons.xml index 4946ecddb6..a5e4104111 100644 --- a/Patches/Nihal/ThingDefs_Weapons/Weapons.xml +++ b/Patches/Nihal/ThingDefs_Weapons/Weapons.xml @@ -195,7 +195,7 @@ 1.0 1.5 1 - 0.5 + 0.8 1.5 32000 diff --git a/Patches/O21 Dragons Not Included/Ranged_Dragon.xml b/Patches/O21 Dragons Not Included/Ranged_Dragon.xml index 5bea3699e1..cc513954f3 100644 --- a/Patches/O21 Dragons Not Included/Ranged_Dragon.xml +++ b/Patches/O21 Dragons Not Included/Ranged_Dragon.xml @@ -224,7 +224,7 @@ 2.50 1.22 0.36 - 0.6 + 0.8 0.85 @@ -257,7 +257,7 @@ 2.50 1.22 0.36 - 0.6 + 0.8 1.85 diff --git a/Patches/O21 Outer Rim Galaxies/Patch_OuterRim_Ammo.xml b/Patches/O21 Outer Rim Galaxies/Patch_OuterRim_Ammo.xml index 39689a1594..608240456d 100644 --- a/Patches/O21 Outer Rim Galaxies/Patch_OuterRim_Ammo.xml +++ b/Patches/O21 Outer Rim Galaxies/Patch_OuterRim_Ammo.xml @@ -474,7 +474,7 @@ Bullet_OR_WristRocket - Things/Projectile/Cannon/120mmTank/Sabot + Things/Projectile/Cannon/Sabot Graphic_Single diff --git a/Patches/O21 Outer Rim Galaxies/Patch_OuterRim_Weapons.xml b/Patches/O21 Outer Rim Galaxies/Patch_OuterRim_Weapons.xml index 98eee93bf7..a0073eae98 100644 --- a/Patches/O21 Outer Rim Galaxies/Patch_OuterRim_Weapons.xml +++ b/Patches/O21 Outer Rim Galaxies/Patch_OuterRim_Weapons.xml @@ -85,7 +85,7 @@ 0.4 0.87 1 - 0.65 + 1.0 diff --git a/Patches/O21 Outland - Eastborn/Eastborn_WeaponsRanged.xml b/Patches/O21 Outland - Eastborn/Eastborn_WeaponsRanged.xml index 6590804918..2522c83baa 100644 --- a/Patches/O21 Outland - Eastborn/Eastborn_WeaponsRanged.xml +++ b/Patches/O21 Outland - Eastborn/Eastborn_WeaponsRanged.xml @@ -12,7 +12,7 @@
  • Outland_Yumi - 0.6 + 0.8 1 2 8.00 diff --git a/Patches/Orassans/Ammo/MissileAmmo.xml b/Patches/Orassans/Ammo/MissileAmmo.xml index 09eddf02df..60711ff769 100644 --- a/Patches/Orassans/Ammo/MissileAmmo.xml +++ b/Patches/Orassans/Ammo/MissileAmmo.xml @@ -13,7 +13,7 @@ AmmoOrassanMissileShells AmmoShells - Things/Projectile/Cannon/120mmTank/HE + Things/Projectile/Cannon/HE @@ -53,7 +53,7 @@ Ammo_OrassanMissileShell_HEAT - Things/Projectile/Cannon/120mmTank/HEAT + Things/Projectile/Cannon/Tank/HEAT Graphic_Single @@ -67,7 +67,7 @@ Ammo_OrassanMissileShell_HE - Things/Projectile/Cannon/120mmTank/HEAT + Things/Projectile/Cannon/Tank/HEAT Graphic_Single @@ -81,7 +81,7 @@ Ammo_OrassanMissileShell_APSabot - Things/Projectile/Cannon/120mmTank/Sabot + Things/Projectile/Cannon/Tank/Sabot Graphic_Single @@ -111,8 +111,8 @@ Bullet_OrassanMissileShell_HEAT - Things/Projectile/Cannon/120mmTank/HEAT - Graphic_Single + Things/Projectile/Cannon/Tank/HEAT + Graphic_StackCount Bullet @@ -141,8 +141,8 @@ Bullet_OrassanMissileShell_APSabot - Things/Projectile/Cannon/120mmTank/Sabot - Graphic_Single + Things/Projectile/Cannon/Tank/Sabot + Graphic_StackCount Bullet @@ -172,8 +172,8 @@ CombatExtended.ProjectileCE_Explosive - Things/Projectile/Cannon/120mmTank/HE - Graphic_Single + Things/Projectile/Cannon/Tank/HE + Graphic_StackCount Bomb diff --git a/Patches/Possesed Weapons/PossessedWeapons_RangedPatch.xml b/Patches/Possesed Weapons/PossessedWeapons_RangedPatch.xml index 6dce99ec3c..0695f18ae1 100644 --- a/Patches/Possesed Weapons/PossessedWeapons_RangedPatch.xml +++ b/Patches/Possesed Weapons/PossessedWeapons_RangedPatch.xml @@ -63,7 +63,7 @@
  • BotchJob_PossessedDragonfireGreatbow - 0.6 + 0.8 1 2 10.00 @@ -406,7 +406,7 @@
  • BotchJob_PossessedArchmageStaff - 0.3 + 1.0 3 1 10.00 @@ -1291,7 +1291,7 @@
  • BotchJob_PossessedGhostlyFlintlock - 0.6 + 0.5 0.42 1.58 1.25 @@ -1362,7 +1362,7 @@
  • BotchJob_PossessedEarthenGauntlet - 0.3 + 1.0 0.42 1.58 3.5 diff --git a/Patches/Pratt WWII Weapons Pack/PWW2_CE_Patch_Weapons_Grenades.xml b/Patches/Pratt WWII Weapons Pack/PWW2_CE_Patch_Weapons_Grenades.xml index 0db3c0f68f..01d4071968 100644 --- a/Patches/Pratt WWII Weapons Pack/PWW2_CE_Patch_Weapons_Grenades.xml +++ b/Patches/Pratt WWII Weapons Pack/PWW2_CE_Patch_Weapons_Grenades.xml @@ -153,7 +153,7 @@ 0.91 9.95 1 - 0.45 + 1.0 @@ -288,7 +288,7 @@ 4.22 12.41 1 - 0.45 + 1.0 @@ -430,7 +430,7 @@ 0.57 9.55 1 - 0.45 + 1.0 @@ -565,7 +565,7 @@ 1.31 10.74 1 - 0.45 + 1.0 @@ -700,7 +700,7 @@ 0.65 9.95 1 - 0.45 + 1.0 @@ -835,7 +835,7 @@ 0.84 10.74 1 - 0.45 + 1.0 diff --git a/Patches/Protoswords/Proto_CE.xml b/Patches/Protoswords/Proto_CE.xml new file mode 100644 index 0000000000..e91d40bc35 --- /dev/null +++ b/Patches/Protoswords/Proto_CE.xml @@ -0,0 +1,216 @@ + + + + + +
  • Protoswords
  • + + + + + +
  • + Defs/ThingDef[defName="BON_Protosword"]/tools + + +
  • + + +
  • Poke
  • + + 2 + 0.1 + 1.5 + 0.5 + Handle + +
  • + + +
  • Cut
  • + + 26 + +
  • + Bomb + 6 + 0.3 +
  • +
    + 1.3 + 2.88 + 15 + Edge + +
  • + + +
  • Stab
  • + + 13 + +
  • + Bomb + 6 + 0.3 +
  • +
    + 1.35 + 1.28 + 18 + + + + + +
  • + Defs/ThingDef[defName="BON_Protosword"]/statBases + + 6 + 0.36 + +
  • + +
  • + Defs/ThingDef[defName="BON_Protosword"] + + + 0.45 + 0.32 + 0.23 + + +
  • + +
  • + Defs/ThingDef[defName="BON_Protosword"]/weaponTags + + Defs/ThingDef[defName="BON_Protosword"] + + + + +
  • + +
  • + Defs/ThingDef[defName="BON_Protosword"]/weaponTags + +
  • CE_OneHandedWeapon
  • + + + + +
  • + Defs/ToolCapacityDef[defName="BON_SearStab"] + +
  • + true +
  • + + + +
  • + Defs/DamageDef[defName="BON_SearDamage"] + +
  • + true +
  • + + + + +
  • + Defs/ThingDef[defName="BON_Phasesword"]/tools + + +
  • + + +
  • Poke
  • + + 3 + 0.1 + 1.5 + 0.65 + Handle + +
  • + + +
  • BON_SearCut
  • + + 36 + +
  • + Flame + 4 + 0.3 +
  • +
    + 1.19 + 3.16 + 20 + Edge + +
  • + + +
  • BON_SearStab
  • + + 18 + +
  • + Flame + 4 + 0.3 +
  • +
    + 1.32 + 1.68 + 26 + + + + + +
  • + Defs/ThingDef[defName="BON_Phasesword"]/statBases + + 4 + 0.45 + +
  • + +
  • + Defs/ThingDef[defName="BON_Phasesword"] + + + 0.71 + 0.45 + 0.29 + + +
  • + +
  • + Defs/ThingDef[defName="BON_Phasesword"]/weaponTags + + Defs/ThingDef[defName="BON_Phasesword"] + + + + +
  • + +
  • + Defs/ThingDef[defName="BON_Phasesword"]/weaponTags + +
  • CE_OneHandedWeapon
  • + + + +
    +
    + + + diff --git "a/Patches/RH2 Rimmu-Nation\302\262 - Clothing/Backpacks_CE.xml" "b/Patches/RH2 Rimmu-Nation\302\262 - Clothing/Backpacks_CE.xml" index 38b3358fc5..f9039985e9 100644 --- "a/Patches/RH2 Rimmu-Nation\302\262 - Clothing/Backpacks_CE.xml" +++ "b/Patches/RH2 Rimmu-Nation\302\262 - Clothing/Backpacks_CE.xml" @@ -45,7 +45,7 @@ or defName = "RNApparel_Backpack_HelloKitty" or defName = "RNApparel_Backpack_TarpBackpack" or defName = "RNApparel_Backpack_AnCHero" - or defName = "RNApparel_RNApparel_Backpack_HelikonBailOutBag" + or defName = "RNApparel_Backpack_HelikonBailOutBag" or defName = "RNApparel_Backpack_StudentBackpack" or defName = "RNApparel_Backpack_Naotak" or defName = "RNApparel_Backpack_Wasing" @@ -273,4 +273,4 @@ - \ No newline at end of file + diff --git "a/Patches/RH2 Rimmu-Nation\302\262 - Clothing/Vests_CE.xml" "b/Patches/RH2 Rimmu-Nation\302\262 - Clothing/Vests_CE.xml" index f4ac80adde..dc00bc7832 100644 --- "a/Patches/RH2 Rimmu-Nation\302\262 - Clothing/Vests_CE.xml" +++ "b/Patches/RH2 Rimmu-Nation\302\262 - Clothing/Vests_CE.xml" @@ -1,4 +1,4 @@ - + @@ -62,7 +62,10 @@ defName = "RHApparel_CondorBattleBelt_Tan" or defName = "RHApparel_TexShoemakerPoliceBelt_Python" or defName = "RHApparel_SafarilandPoliceBelt_Beretta" or - defName = "RHApparel_SafarilandPoliceBelt_Glock"]/apparel/layers + defName = "RHApparel_SafarilandPoliceBelt_Glock" or + defName = "RHApparel_MaxpeditionBattleBelt_Olive" + ]/apparel/layers +
  • Webbing
  • @@ -90,7 +93,8 @@ defName = "RHApparel_Arktis_TacticalVest" or defName = "RHApparel_TexShoemakerPoliceBelt_Python" or defName = "RHApparel_SafarilandPoliceBelt_Beretta" or - defName = "RHApparel_SafarilandPoliceBelt_Glock" + defName = "RHApparel_SafarilandPoliceBelt_Glock" or + defName = "RHApparel_MaxpeditionBattleBelt_Olive" ]/statBases @@ -129,7 +133,8 @@ defName = "RHApparel_Arktis_TacticalVest" or defName = "RHApparel_TexShoemakerPoliceBelt_Python" or defName = "RHApparel_SafarilandPoliceBelt_Beretta" or - defName = "RHApparel_SafarilandPoliceBelt_Glock" + defName = "RHApparel_SafarilandPoliceBelt_Glock" or + defName = "RHApparel_MaxpeditionBattleBelt_Olive" ]/equippedStatOffsets @@ -225,4 +230,4 @@
    -
    \ No newline at end of file + diff --git a/Patches/RWY Dragon's Descent Void Dwellers/ThingDefs_Races/Races_Animal_SpaceDragon_Base.xml b/Patches/RWY Dragon's Descent Void Dwellers/ThingDefs_Races/Races_Animal_SpaceDragon_Base.xml index 5629e76d9a..26fcaed373 100644 --- a/Patches/RWY Dragon's Descent Void Dwellers/ThingDefs_Races/Races_Animal_SpaceDragon_Base.xml +++ b/Patches/RWY Dragon's Descent Void Dwellers/ThingDefs_Races/Races_Animal_SpaceDragon_Base.xml @@ -72,6 +72,46 @@ + +
  • + Defs/ThingDef[@Name="VoidDragonRaceBase" or @Name="VoidDragonWWRaceBase"]/comps + +
  • + 16500 + true + 600 + 5 + 0.5 +
  • + + + +
  • + Defs/ThingDef[@Name="NebulaDragonRaceBase"]/comps + +
  • + 15250 + true + 600 + 5 + 0.5 +
  • + + + +
  • + Defs/ThingDef[@Name="StarDragonRaceBase"]/comps + +
  • + 14000 + true + 600 + 5 + 0.5 +
  • + + +
  • Defs/ThingDef[@Name="VoidDragonRaceBase"]/race/manhunterOnTameFailChance diff --git a/Patches/Rambo Weapons Pack/RamboWeaponsPack_shotguns.xml b/Patches/Rambo Weapons Pack/RamboWeaponsPack_shotguns.xml index ebfdf8fc8d..c231e01d30 100644 --- a/Patches/Rambo Weapons Pack/RamboWeaponsPack_shotguns.xml +++ b/Patches/Rambo Weapons Pack/RamboWeaponsPack_shotguns.xml @@ -547,7 +547,7 @@ Gun_TOZ-34_Sawed-off_RWP 15000 - 0.5 + 0.8 0.19 0.76 5.80 @@ -623,7 +623,7 @@ Gun_TOZ-66_Sawed-off_RWP 15000 - 0.5 + 0.8 0.20 0.68 5.09 diff --git a/Patches/Rambo Weapons Pack/RamboWeaponsPack_submachineguns.xml b/Patches/Rambo Weapons Pack/RamboWeaponsPack_submachineguns.xml index 66f60e9fac..261903c333 100644 --- a/Patches/Rambo Weapons Pack/RamboWeaponsPack_submachineguns.xml +++ b/Patches/Rambo Weapons Pack/RamboWeaponsPack_submachineguns.xml @@ -773,7 +773,7 @@ Gun_MP5KA1_RWP 25500 - 0.6 + 0.8 0.17 0.53 3.25 diff --git a/Patches/Reinforced Mechanoid 2/ThingDefs_Misc/RM_PlasmaWeaponry.xml b/Patches/Reinforced Mechanoid 2/ThingDefs_Misc/RM_PlasmaWeaponry.xml index 1c9fd8d2d5..83c1c75a27 100644 --- a/Patches/Reinforced Mechanoid 2/ThingDefs_Misc/RM_PlasmaWeaponry.xml +++ b/Patches/Reinforced Mechanoid 2/ThingDefs_Misc/RM_PlasmaWeaponry.xml @@ -411,7 +411,7 @@ 3 14.05 1 - 0.65 + 1.0 diff --git a/Patches/Reinforced Mechanoid 2/ThingDefs_Races/RM_Races_Mechanoids.xml b/Patches/Reinforced Mechanoid 2/ThingDefs_Races/RM_Races_Mechanoids.xml index c2bb0ac3da..ebe1e97153 100644 --- a/Patches/Reinforced Mechanoid 2/ThingDefs_Races/RM_Races_Mechanoids.xml +++ b/Patches/Reinforced Mechanoid 2/ThingDefs_Races/RM_Races_Mechanoids.xml @@ -101,7 +101,7 @@
  • Defs/ThingDef[defName="RM_Mech_Caretaker"]/statBases - 400 + 200 80 1.0 1 @@ -770,7 +770,7 @@
  • Defs/ThingDef[defName="RM_Mech_Behemoth"]/statBases - 300 + 200 80 1.0 1 @@ -851,7 +851,7 @@
  • Defs/ThingDef[defName="RM_Mech_Wraith"]/statBases - 400 + 200 80 1.0 1 @@ -908,7 +908,7 @@
  • Defs/ThingDef[defName="RM_Mech_Locust"]/statBases - 400 + 200 80 1.0 1 diff --git "a/Patches/Revia Race \342\200\224 biotech/ThingDefs_Misc/Weapons_Guns.xml" "b/Patches/Revia Race \342\200\224 biotech/ThingDefs_Misc/Weapons_Guns.xml" index 38f43c1fc8..df0203933f 100644 --- "a/Patches/Revia Race \342\200\224 biotech/ThingDefs_Misc/Weapons_Guns.xml" +++ "b/Patches/Revia Race \342\200\224 biotech/ThingDefs_Misc/Weapons_Guns.xml" @@ -48,7 +48,7 @@
  • ReviaThrowingKnife - 0.6 + 1.0 0.35 0.15 1.5 diff --git a/Patches/Revia Race/ThingDefs_Misc/Weapons_Guns.xml b/Patches/Revia Race/ThingDefs_Misc/Weapons_Guns.xml index d5e1cbc99e..37bd97bb6f 100644 --- a/Patches/Revia Race/ThingDefs_Misc/Weapons_Guns.xml +++ b/Patches/Revia Race/ThingDefs_Misc/Weapons_Guns.xml @@ -48,7 +48,7 @@
  • ReviaThrowingKnife - 0.6 + 1.0 0.35 0.15 1.5 diff --git a/Patches/Rim Gnoblins/Gnoblins_Drugs.xml b/Patches/Rim Gnoblins/Gnoblins_Drugs.xml new file mode 100644 index 0000000000..6d08f01a31 --- /dev/null +++ b/Patches/Rim Gnoblins/Gnoblins_Drugs.xml @@ -0,0 +1,48 @@ + + + + + +
  • Rim-Gnoblins
  • + + + + + + +
  • + Defs/HediffDef[defName="ShardHigh"]/stages/li/statOffsets + + -0.5 + +
  • + +
  • + Defs/HediffDef[defName="DregHigh"]/stages/li + + + 0.75 + + +
  • + + +
  • + Defs/ThingDef[defName="ShardMethamphetamine"]/statBases + + 0.05 + +
  • + +
  • + Defs/ThingDef[defName="DregMethamphetamine"]/statBases + + 0.05 + +
  • + +
    +
    + + + \ No newline at end of file diff --git a/Patches/Rim Gnoblins/Gnoblins_Grenade.xml b/Patches/Rim Gnoblins/Gnoblins_Grenade.xml new file mode 100644 index 0000000000..497a688797 --- /dev/null +++ b/Patches/Rim Gnoblins/Gnoblins_Grenade.xml @@ -0,0 +1,171 @@ + + + + + +
  • Rim-Gnoblins
  • +
    + + + + + +
  • + Defs/ThingDef[defName="RGWeapon_Toxpot"] + ParentName + BaseWeapon +
  • + +
  • + Defs/ThingDef[defName="RGWeapon_Toxpot"]/recipeMaker +
  • + + +
  • + Defs/ThingDef[defName="RGWeapon_Toxpot"] + + +
  • + + +
  • Blunt
  • + + 2 + 1.75 + 1.0 + Base + + + + + + +
  • + Defs/ThingDef[defName="RGProj_ToxPot"]/thingClass + + CombatExtended.ProjectileCE_Explosive + +
  • + +
  • + Defs/ThingDef[defName="RGProj_ToxPot"]/projectile + + + 1.9 + ToxGas + 100 + ToxGas + true + 12 + 3.0 + 2.0 + 0.25 + + +
  • + + +
  • + Defs/ThingDef[defName="RGWeapon_Toxpot"]/costList +
  • + +
  • + Defs/ThingDef[defName="RGWeapon_Toxpot"]/graphicData/texPath + + Items/Weapons/Toxpots/Toxpot_Flying + +
  • + +
  • + Defs/ThingDef[defName="RGWeapon_Toxpot"] + + CombatExtended.AmmoThing + 50 + First + +
  • + +
  • + Defs/ThingDef[defName="RGWeapon_Toxpot"] + Class + CombatExtended.AmmoDef +
  • + +
  • + RGWeapon_Toxpot + + 0.7 + 1.05 + 7.05 + 1 + 1.0 + + + + CombatExtended.Verb_ShootCEOneUse + true + 10 + 1.9 + 0.8 + 4 + true + ThrowMolotovCocktail + + true + + RGProj_ToxPot + true + true + 2 + + +
  • CE_AI_Grenade
  • +
  • CE_AI_AOE
  • +
  • CE_OneHandedWeapon
  • +
    + + +
  • + Defs + + + + MakeToxPot + + Craft 10 toxic grenade. + Making toxic grenade. + RG_ShardDistilleryAndWeaponry + 4400 + +
  • ElectricSmithy
  • +
  • FueledSmithy
  • +
  • CraftingSpot
  • + + +
  • + + +
  • DregMethamphetamine
  • + + + 20 + +
    + + +
  • DregMethamphetamine
  • +
    +
    + + 10 + + + + + + + + + + + \ No newline at end of file diff --git a/Patches/Rim Gnoblins/Gnoblins_Melee.xml b/Patches/Rim Gnoblins/Gnoblins_Melee.xml new file mode 100644 index 0000000000..d2a9f1fb13 --- /dev/null +++ b/Patches/Rim Gnoblins/Gnoblins_Melee.xml @@ -0,0 +1,77 @@ + + + + + +
  • Rim-Gnoblins
  • +
    + + + + + +
  • + Defs/ThingDef[defName="RG_MeleeWeapon_ToxSpear"]/tools + + +
  • + + +
  • Blunt
  • + + 7 + 1.35 + 0.15 + 2.25 + Shaft + +
  • + + +
  • Poke
  • + + 4 + 1.78 + 0.05 + 1 + Point + +
  • + + +
  • ScratchToxic
  • + + 18 + 1.19 + 2.25 + 2.25 + Head + + + + + +
  • + Defs/ThingDef[defName="RG_MeleeWeapon_ToxSpear"]/statBases + + 10 + 1.68 + +
  • + +
  • + Defs/ThingDef[defName="RG_MeleeWeapon_ToxSpear"] + + + 0.17 + 1.45 + 0.9 + + +
  • + +
    +
    +
    + +
    \ No newline at end of file diff --git a/Patches/Rim Gnoblins/Gnoblins_Pawnkind.xml b/Patches/Rim Gnoblins/Gnoblins_Pawnkind.xml new file mode 100644 index 0000000000..13102a85b8 --- /dev/null +++ b/Patches/Rim Gnoblins/Gnoblins_Pawnkind.xml @@ -0,0 +1,121 @@ + + + + + +
  • Rim-Gnoblins
  • +
    + + + + + +
  • + Defs/PawnKindDef[defName="Gnoblin_Scout"] + +
  • + + 20 + 30 + + + + 50 + 100 + + +
  • NeolithicMeleeBasic
  • +
    + + + + + +
  • + Defs/PawnKindDef[defName="Gnoblin_Ranger"] + +
  • + + 20 + 30 + + + + 100 + 200 + + +
  • NeolithicMeleeBasic
  • +
  • MedievalMeleeDecent
  • + + + + + + +
  • + Defs/PawnKindDef[defName="Gnoblin_Lobber"] + +
  • + + 6 + 12 + + + + 100 + 200 + + +
  • NeolithicMeleeBasic
  • + + + + + + +
  • + Defs/PawnKindDef[defName="Gnoblin_HeavyRanger"] + +
  • + + 30 + 40 + + + + 150 + 300 + + +
  • MedievalMeleeDecent
  • +
  • MedievalMeleeAdvanced
  • + + + + + + +
  • + Defs/PawnKindDef[ + defName="Gnoblin_Scout" or + defName="Gnoblin_Ranger" or + defname="Gnoblin_Lobber" or + defName="Gnoblin_HeavyRanger"]/apparelRequired + +
  • CE_Apparel_TribalBackpack
  • + + + +
  • + Defs/PawnKindDef[defName="Gnoblin_Scout" or defName="Gnoblin_Ranger" or defName="Gnoblin_HeavyRanger"]/weaponTags + +
  • CE_Bow
  • + + + + + + + + \ No newline at end of file diff --git a/Patches/Rim Gnoblins/Gnoblins_Scenario.xml b/Patches/Rim Gnoblins/Gnoblins_Scenario.xml new file mode 100644 index 0000000000..570e81d92a --- /dev/null +++ b/Patches/Rim Gnoblins/Gnoblins_Scenario.xml @@ -0,0 +1,34 @@ + + + + + +
  • Rim-Gnoblins
  • +
    + + + + +
  • + Defs/ScenarioDef[defName="LostGnoblins"]/scenario/parts + +
  • + StartingThing_Defined + Ammo_Arrow_Stone + 100 +
  • + + + +
  • + Defs/ScenarioDef[defName="LostGnoblins"]/scenario/parts/li[@Class="ScenPart_StartingThing_Defined" and (thingDef="RGWeapon_Toxpot")] + + 10 + +
  • + +
    +
    +
    + +
    \ No newline at end of file diff --git a/Patches/RimFantasy - House Doyle/Patch_RFDoyle_Ranged.xml b/Patches/RimFantasy - House Doyle/Patch_RFDoyle_Ranged.xml index 733130788a..6d96001d4e 100644 --- a/Patches/RimFantasy - House Doyle/Patch_RFDoyle_Ranged.xml +++ b/Patches/RimFantasy - House Doyle/Patch_RFDoyle_Ranged.xml @@ -33,7 +33,7 @@
  • RF_RangedWeapon_Greatbow_Doyle - 0.6 + 0.8 1 2 5.00 @@ -66,7 +66,7 @@
  • RF_RangedWeapon_WarBow_Doyle - 0.6 + 0.8 1 2 5.00 diff --git a/Patches/RimFantasy - Medieval Overhaul Edition/Patch_RF_Arcane_Bows.xml b/Patches/RimFantasy - Medieval Overhaul Edition/Patch_RF_Arcane_Bows.xml index 77518bbe65..00946a5671 100644 --- a/Patches/RimFantasy - Medieval Overhaul Edition/Patch_RF_Arcane_Bows.xml +++ b/Patches/RimFantasy - Medieval Overhaul Edition/Patch_RF_Arcane_Bows.xml @@ -33,7 +33,7 @@ 18000 2.75 5.00 - 0.6 + 0.8 1 2 0.7 diff --git a/Patches/RimFantasy - Medieval Overhaul Edition/Patch_RF_Arcane_Ring.xml b/Patches/RimFantasy - Medieval Overhaul Edition/Patch_RF_Arcane_Ring.xml index 73f0f615e7..8b7808e1d8 100644 --- a/Patches/RimFantasy - Medieval Overhaul Edition/Patch_RF_Arcane_Ring.xml +++ b/Patches/RimFantasy - Medieval Overhaul Edition/Patch_RF_Arcane_Ring.xml @@ -34,7 +34,7 @@ 18000 1.25 0.6 - 0.35 + 1.0 0.14 0.10 0.3 diff --git a/Patches/Rimcraft Collection/Weapons/Patch_WOW_Ranged.xml b/Patches/Rimcraft Collection/Weapons/Patch_WOW_Ranged.xml index d1ac22d7c0..0b14a9d32f 100644 --- a/Patches/Rimcraft Collection/Weapons/Patch_WOW_Ranged.xml +++ b/Patches/Rimcraft Collection/Weapons/Patch_WOW_Ranged.xml @@ -50,7 +50,7 @@
  • WoWR_Alliance_Longbow - 0.75 + 0.8 0.8 2 6.00 @@ -77,7 +77,7 @@
  • WoWR_NightElf_RecurveBow - 0.75 + 0.8 0.8 2 4.00 @@ -104,7 +104,7 @@
  • WoWR_BloodElf_Bow - 0.75 + 0.8 0.8 2 4.00 @@ -131,7 +131,7 @@
  • WoWR_BloodElf_HawkBow - 0.75 + 0.8 0.8 2 4.00 @@ -158,7 +158,7 @@
  • WoWR_HighElf_Longbow - 0.75 + 0.8 0.8 2 6.00 @@ -185,7 +185,7 @@
  • WoWR_HighElf_RecurveBow - 0.75 + 0.8 0.8 2 4.00 @@ -212,7 +212,7 @@
  • WoWR_Forsaken_DarkBow - 0.75 + 0.8 0.8 2 4.00 @@ -267,7 +267,7 @@
  • WoWR_Draenei_Longbow - 0.75 + 0.8 0.8 2 6.00 diff --git a/Patches/Rimedieval - Medieval Royalty/Ranged_Medieval.xml b/Patches/Rimedieval - Medieval Royalty/Ranged_Medieval.xml index 4341281e17..c9209b72bd 100644 --- a/Patches/Rimedieval - Medieval Royalty/Ranged_Medieval.xml +++ b/Patches/Rimedieval - Medieval Royalty/Ranged_Medieval.xml @@ -122,7 +122,7 @@ 1.8 3 1 - 0.65 + 1.0 diff --git a/Patches/Rimfire/ThingDefs_Misc/RF_Ranged_Neolithic.xml b/Patches/Rimfire/ThingDefs_Misc/RF_Ranged_Neolithic.xml index 67ca076617..110b288650 100644 --- a/Patches/Rimfire/ThingDefs_Misc/RF_Ranged_Neolithic.xml +++ b/Patches/Rimfire/ThingDefs_Misc/RF_Ranged_Neolithic.xml @@ -12,7 +12,7 @@ 0.8 1 - 0.6 + 0.8 1 2 0.8 diff --git a/Patches/Rimmu-Nation - Weapons/RNW_CE_Patch_RangedIndustrial_Grenades.xml b/Patches/Rimmu-Nation - Weapons/RNW_CE_Patch_RangedIndustrial_Grenades.xml index 8492efed89..1fa27befc4 100644 --- a/Patches/Rimmu-Nation - Weapons/RNW_CE_Patch_RangedIndustrial_Grenades.xml +++ b/Patches/Rimmu-Nation - Weapons/RNW_CE_Patch_RangedIndustrial_Grenades.xml @@ -133,7 +133,7 @@ 6.8 184.2 1 - 0.45 + 1.0 6000 diff --git a/Patches/Rimsenal Collection/Core/Weapons_GD_CE.xml b/Patches/Rimsenal Collection/Core/Weapons_GD_CE.xml index ff8fd5ac71..086fe6dc48 100644 --- a/Patches/Rimsenal Collection/Core/Weapons_GD_CE.xml +++ b/Patches/Rimsenal Collection/Core/Weapons_GD_CE.xml @@ -216,7 +216,7 @@ GD_MSST 50 - 0.6 + 0.8 0.16 1.17 2.20 @@ -258,7 +258,7 @@ 50 - 0.6 + 0.8 0.2 1.45 2.85 @@ -341,7 +341,7 @@ GD_MSSF 50 - 0.6 + 0.7 0.36 1.22 1.90 diff --git a/Patches/Rimsenal Collection/Core/Weapons_YP_CE.xml b/Patches/Rimsenal Collection/Core/Weapons_YP_CE.xml index af0cde1b1a..4ebce77880 100644 --- a/Patches/Rimsenal Collection/Core/Weapons_YP_CE.xml +++ b/Patches/Rimsenal Collection/Core/Weapons_YP_CE.xml @@ -268,7 +268,7 @@ 50500 - 0.5 + 0.7 0.2 1.5 4.7 diff --git a/Patches/Rimsenal Collection/Enhanced Vanilla/Weapons_Ranged_CE.xml b/Patches/Rimsenal Collection/Enhanced Vanilla/Weapons_Ranged_CE.xml index d93f0ea6ae..a5aea86ac8 100644 --- a/Patches/Rimsenal Collection/Enhanced Vanilla/Weapons_Ranged_CE.xml +++ b/Patches/Rimsenal Collection/Enhanced Vanilla/Weapons_Ranged_CE.xml @@ -101,7 +101,7 @@ Defs/ThingDef[defName="Gun_ThrowingAxes"]/statBases - 0.8 + 1.0 0.6 2 1.25 @@ -191,7 +191,7 @@ Defs/ThingDef[defName="Gun_ThrowingClubs"]/statBases - 0.8 + 1.0 0.6 2 1 diff --git a/Patches/Rimsenal Collection/Federation/ThingDefs_Misc/Fed_RangedWeapons.xml b/Patches/Rimsenal Collection/Federation/ThingDefs_Misc/Fed_RangedWeapons.xml index 69f1e8d500..33dcbdf22b 100644 --- a/Patches/Rimsenal Collection/Federation/ThingDefs_Misc/Fed_RangedWeapons.xml +++ b/Patches/Rimsenal Collection/Federation/ThingDefs_Misc/Fed_RangedWeapons.xml @@ -131,7 +131,7 @@
  • AD_AuxPistol - 0.6 + 0.7 0.14 1.23 2.50 @@ -248,7 +248,7 @@ AD_CruciblePistol 30500 - 0.6 + 0.7 0.18 1.08 3.90 @@ -280,7 +280,7 @@ AD_FedPistol 30500 - 0.6 + 0.7 0.18 1.08 3.90 diff --git a/Patches/Rimsenal Collection/Feral/ThingDefs_Misc/Feral_Explosives.xml b/Patches/Rimsenal Collection/Feral/ThingDefs_Misc/Feral_Explosives.xml index 3cc3c85a35..b16f771e97 100644 --- a/Patches/Rimsenal Collection/Feral/ThingDefs_Misc/Feral_Explosives.xml +++ b/Patches/Rimsenal Collection/Feral/ThingDefs_Misc/Feral_Explosives.xml @@ -227,7 +227,7 @@ Interact_BeatFire 200 - 0.45 + 1.0 1.5 2.5 5.00 diff --git a/Patches/Rimsenal Collection/Feral/ThingDefs_Misc/Feral_MutantWeapons.xml b/Patches/Rimsenal Collection/Feral/ThingDefs_Misc/Feral_MutantWeapons.xml index 7c641d4041..eb52bf9b5b 100644 --- a/Patches/Rimsenal Collection/Feral/ThingDefs_Misc/Feral_MutantWeapons.xml +++ b/Patches/Rimsenal Collection/Feral/ThingDefs_Misc/Feral_MutantWeapons.xml @@ -94,7 +94,7 @@ 0.25 1.26 10 - 0.6 + 0.8 CombatExtended.Verb_ShootCE diff --git a/Patches/Rimsenal Collection/Feral/ThingDefs_Misc/Feral_RangedWeapons.xml b/Patches/Rimsenal Collection/Feral/ThingDefs_Misc/Feral_RangedWeapons.xml index 3b8d043b5d..db92c9a7ee 100644 --- a/Patches/Rimsenal Collection/Feral/ThingDefs_Misc/Feral_RangedWeapons.xml +++ b/Patches/Rimsenal Collection/Feral/ThingDefs_Misc/Feral_RangedWeapons.xml @@ -156,7 +156,7 @@ Gun_Scraptooth 35500 - 0.4 + 0.7 0.2 1.7 5 @@ -235,7 +235,7 @@ 4.20 0.37 - 0.6 + 0.8 0.67 1.95 5.8 diff --git a/Patches/Rimsenal Collection/Marauder/Marauder_Grenades.xml b/Patches/Rimsenal Collection/Marauder/Marauder_Grenades.xml index 57cfeb24ee..4ae30c82e1 100644 --- a/Patches/Rimsenal Collection/Marauder/Marauder_Grenades.xml +++ b/Patches/Rimsenal Collection/Marauder/Marauder_Grenades.xml @@ -142,7 +142,7 @@ 1.09 12.22 1 - 0.65 + 1.0 diff --git a/Patches/Rimworld-Style Pilas And Bows Strapped With Grenades and Shells Extended/Javelin.xml b/Patches/Rimworld-Style Pilas And Bows Strapped With Grenades and Shells Extended/Javelin.xml index f96d0f864d..47966c7992 100644 --- a/Patches/Rimworld-Style Pilas And Bows Strapped With Grenades and Shells Extended/Javelin.xml +++ b/Patches/Rimworld-Style Pilas And Bows Strapped With Grenades and Shells Extended/Javelin.xml @@ -39,7 +39,7 @@ Interact_BeatFire 62.35 - 0.45 + 1.0 1.5 2.5 3.5 @@ -108,7 +108,7 @@ Interact_BeatFire 49.6 - 0.45 + 1.0 1.5 2.5 3.5 @@ -141,7 +141,7 @@ Interact_BeatFire 119.68 - 0.45 + 1.0 1.5 2.5 3.5 @@ -174,7 +174,7 @@ Interact_BeatFire 44.29 - 0.45 + 1.0 1.5 2.5 3.5 @@ -208,7 +208,7 @@ Interact_BeatFire 44.29 - 0.45 + 1.0 1.5 2.5 3.5 @@ -242,7 +242,7 @@ Interact_BeatFire 1507.26 - 0.45 + 1.0 1.5 2.5 3.5 diff --git a/Patches/Save Our Ship 2/Weapons_Grenades.xml b/Patches/Save Our Ship 2/Weapons_Grenades.xml index f213477261..5388c23ec9 100644 --- a/Patches/Save Our Ship 2/Weapons_Grenades.xml +++ b/Patches/Save Our Ship 2/Weapons_Grenades.xml @@ -111,7 +111,7 @@ 2.55 7.05 1 - 0.65 + 1.0 diff --git a/Patches/Simple Ogre Race/CE_Ogre_Race_Wep.xml b/Patches/Simple Ogre Race/CE_Ogre_Race_Wep.xml index 2049ad7a38..3b5a6a8291 100644 --- a/Patches/Simple Ogre Race/CE_Ogre_Race_Wep.xml +++ b/Patches/Simple Ogre Race/CE_Ogre_Race_Wep.xml @@ -123,7 +123,7 @@ 0.1 - 0.5 + 0.7 1.4 2.4 7 diff --git a/Patches/Star Wars - Factions/Patch_Ranged.xml b/Patches/Star Wars - Factions/Patch_Ranged.xml index fc30f5cf16..6eca5267b4 100644 --- a/Patches/Star Wars - Factions/Patch_Ranged.xml +++ b/Patches/Star Wars - Factions/Patch_Ranged.xml @@ -503,7 +503,7 @@
  • PJ_LauncherP - 0.35 + 1.0 1.34 4.64 5.50 diff --git a/Patches/T's Samurai Faction/T_Samurai_Weapons_Ranged.xml b/Patches/T's Samurai Faction/T_Samurai_Weapons_Ranged.xml index 5fe25b1d63..01a702b50d 100644 --- a/Patches/T's Samurai Faction/T_Samurai_Weapons_Ranged.xml +++ b/Patches/T's Samurai Faction/T_Samurai_Weapons_Ranged.xml @@ -174,7 +174,7 @@
  • TSF_Yumi - 0.6 + 0.8 1 2 8.00 @@ -294,7 +294,7 @@
  • TSF_Shuriken - 0.4 + 1.0 0.20 0.30 0.6 diff --git a/Patches/The GiantRace/ThingDefs_Misc/GiantWeapons_Ranged.xml b/Patches/The GiantRace/ThingDefs_Misc/GiantWeapons_Ranged.xml index 61df1548a7..d40959c952 100644 --- a/Patches/The GiantRace/ThingDefs_Misc/GiantWeapons_Ranged.xml +++ b/Patches/The GiantRace/ThingDefs_Misc/GiantWeapons_Ranged.xml @@ -564,7 +564,7 @@ 8 5 0.09 - 0.6 + 0.8 1 1.5 2.5 @@ -609,7 +609,7 @@ 8 5 0.09 - 0.6 + 0.8 1 1.5 2.5 @@ -652,7 +652,7 @@ 10.2 12 0.09 - 0.6 + 1.0 1 1.5 2.5 @@ -708,7 +708,7 @@ 6.6 5 0.09 - 0.6 + 0.8 1 10 2.5 @@ -750,7 +750,7 @@ 18 14 0.09 - 0.6 + 0.8 1 1.5 2.5 @@ -792,7 +792,7 @@ 18 14 0.09 - 0.6 + 0.8 1 1.5 2.5 @@ -834,7 +834,7 @@ 10.2 12 0.09 - 0.6 + 1.0 1 1.5 2.5 @@ -890,7 +890,7 @@ 8.6 12 0.09 - 0.6 + 1.0 1 1.5 1.5 diff --git a/Patches/The Wild Fields/ThingDefs_Apparel.xml b/Patches/The Wild Fields/ThingDefs_Apparel.xml new file mode 100644 index 0000000000..1b1511d69c --- /dev/null +++ b/Patches/The Wild Fields/ThingDefs_Apparel.xml @@ -0,0 +1,130 @@ + + + + + +
  • The Wild Fields - apparel and weapons
  • + + + + + + + + +
  • + Defs/ThingDef[defName="Serek_Apparel_CommonerVest"]/statBases + + 8.5 + 1 + +
  • + + + +
  • + Defs/ThingDef[defName="Serek_Apparel_CommonerVest"]/statBases/Mass + + 2.8 + +
  • + +
  • + Defs/ThingDef[defName="Serek_Apparel_CommonerVest"]/statBases/StuffEffectMultiplierArmor + + 5 + +
  • + + + +
  • + Defs/ThingDef[defName="Serek_Apparel_NobleCape"]/statBases + + 4 + 1 + +
  • + +
  • + Defs/ThingDef[defName="Serek_Apparel_NobleCape"]/statBases/StuffEffectMultiplierArmor + + 3.5 + +
  • + +
  • + Defs/ThingDef[defName="Serek_Apparel_NobleCape"]/costStuffCount + + 90 + +
  • + + + +
  • + Defs/ThingDef[defName="Serek_Apparel_NobleShirt" or defName="Serek_Apparel_Vyshyvanka"]/statBases + + 1 + 0.5 + +
  • + +
  • + Defs/ThingDef[defName="Serek_Apparel_Vyshyvanka"]/statBases/StuffEffectMultiplierArmor + + 1.1 + +
  • + + +
  • + Defs/ThingDef[defName="Serek_Apparel_Vyshyvanka"]/costStuffCount + + 25 + +
  • + + + +
  • + Defs/ThingDef[ + defName="Serek_Apparel_Birka" or + defName="Serek_Apparel_NobleFurCap" or + defName="Serek_Apparel_NobleCap" + ]/statBases + + 2 + 1 + +
  • + +
  • + Defs/ThingDef[ + defName="Serek_Apparel_Birka" or + defName="Serek_Apparel_NobleFurCap" or + defName="Serek_Apparel_NobleCap" + ]/statBases/StuffEffectMultiplierArmor + + 3 + +
  • + +
  • + Defs/ThingDef[defName="Serek_Apparel_Birka"]/costStuffCount + + 30 + +
  • + +
  • + Defs/ThingDef[defName="Serek_Apparel_NobleFurCap" or defName="Serek_Apparel_NobleCap"]/costStuffCount + + 40 + +
  • + +
    +
    + + \ No newline at end of file diff --git a/Patches/The Wild Fields/ThingDefs_Weapons.xml b/Patches/The Wild Fields/ThingDefs_Weapons.xml new file mode 100644 index 0000000000..d3e675e855 --- /dev/null +++ b/Patches/The Wild Fields/ThingDefs_Weapons.xml @@ -0,0 +1,326 @@ + + + + + +
  • The Wild Fields - apparel and weapons
  • +
    + + + +
  • + Defs/ThingDef[defName="Serek_MeleeWeapon_WarScythe"]/equippedStatOffsets + + 0.12 + 1.18 + 0.7 + +
  • + +
  • + Defs/ThingDef[defName="Serek_MeleeWeapon_WarScythe"]/statBases + + + 1.8 + 10 + 1.53 + 10500 + + +
  • + +
  • + Defs/ThingDef[defName="Serek_MeleeWeapon_WarScythe"]/costStuffCount + + 70 + +
  • + +
  • + Defs/ThingDef[defName="Serek_MeleeWeapon_WarScythe"]/tools + + +
  • + + +
  • Blunt
  • + + 6 + 0.15 + 1.16 + 1.8 + Shaft + +
  • + + +
  • Cut
  • + + 33 + 1.79 + 4.3 + 0.87 + Edge + +
  • + + +
  • Stab
  • + + 21 + 2 + 1.7 + 5.6 + Point + + + + + + + +
  • + Defs/ThingDef[defName="Serek_MeleeWeapon_NobleSabre"] + + + 1.25 + 0.75 + 0.40 + 0.2 + + +
  • + + +
  • + Defs/ThingDef[defName="Serek_MeleeWeapon_NobleSabre"]/statBases + + + 16000 + 1 + 6 + 0.63 + + +
  • + +
  • + Defs/ThingDef[defName="Serek_MeleeWeapon_NobleSabre"]/tools + + +
  • + + +
  • Poke
  • + + 2 + 1.5 + 0.1 + 0.5 + Handle + +
  • + + +
  • Stab
  • + + 18 + 1.27 + 1.96 + 3.92 + Point + +
  • + + +
  • Blunt
  • + + 20 + 2.73 + 7.84 + Head + +
  • + + +
  • Cut
  • + + 29 + 2.37 + 0.60 + 3.24 + 0.72 + Edge + + + + + + + +
  • + Defs/ThingDef[defName="Serek_MeleeWeapon_Sabre"] + + + 1 + 0.65 + 0.35 + + +
  • + + + +
  • + Defs/ThingDef[defName="Serek_MeleeWeapon_Sabre"]/statBases + + + 10000 + 1 + 6 + 0.45 + + +
  • + +
  • + Defs/ThingDef[defName="Serek_MeleeWeapon_Sabre"]/recipeMaker + + + Smithing + + 5 + + + +
  • + +
  • + Defs/ThingDef[defName="Serek_MeleeWeapon_Sabre"]/tools + + +
  • + + +
  • Poke
  • + + 2 + 1.5 + 0.1 + 0.5 + Handle + +
  • + + +
  • Stab
  • + + 18 + 1.27 + 1.96 + 3.92 + Point + +
  • + + +
  • Blunt
  • + + 20 + 2.73 + 7.84 + Head + +
  • + + +
  • Cut
  • + + 29 + 2.37 + 0.60 + 3.24 + 0.72 + Edge + + + + + + + +
  • + Defs/ThingDef[defName="Serek_MeleeWeapon_Sabre"]/weaponTags + +
  • CE_OneHandedWeapon
  • + + + + + +
  • + Defs/ThingDef[defName="Serek_MeleeWeapon_Bulava"]/statBases + + + 14000 + 1.12 + 3.5 + 0.24 + + +
  • + +
  • + Defs/ThingDef[defName="Serek_MeleeWeapon_Bulava"] + + + 0.42 + 0.24 + 0.2 + 0.1 + 0.12 + + +
  • + +
  • + Defs/ThingDef[defName="Serek_MeleeWeapon_Bulava"]/tools + + +
  • + + +
  • Poke
  • + + 3 + 1.70 + 0.33 + 0.825 + Handle + +
  • + + +
  • Blunt
  • + + 18.50 + 2.1 + 0.33 + 6.625 + Head + + + + + +
  • + Defs/ThingDef[defName="Serek_MeleeWeapon_Bulava"]/weaponTags + +
  • CE_OneHandedWeapon
  • + + + +
    +
    +
    +
    \ No newline at end of file diff --git a/Patches/Thog's Guns - More Brukka Pack/Ranged_Industrial.xml b/Patches/Thog's Guns - More Brukka Pack/Ranged_Industrial.xml index 8832cb340b..aead39d6e0 100644 --- a/Patches/Thog's Guns - More Brukka Pack/Ranged_Industrial.xml +++ b/Patches/Thog's Guns - More Brukka Pack/Ranged_Industrial.xml @@ -904,7 +904,7 @@ 4.26 0.65 - 0.4 + 0.8 0.20 0.43 3.54 @@ -1205,7 +1205,7 @@ 2.84 1.25 - 0.5 + 0.8 0.12 0.34 6.10 diff --git a/Patches/Tribal Warrior Set/TribalWarrior_Apparel.xml b/Patches/Tribal Warrior Set/TribalWarrior_Apparel.xml index 62acd3043a..4d288f05d4 100644 --- a/Patches/Tribal Warrior Set/TribalWarrior_Apparel.xml +++ b/Patches/Tribal Warrior Set/TribalWarrior_Apparel.xml @@ -117,7 +117,7 @@
  • Gunmar_War_Bow - 0.6 + 0.8 1 2 5.00 diff --git a/Patches/Tsar Armory/TsarArmory_Guns.xml b/Patches/Tsar Armory/TsarArmory_Guns.xml index 7714e7913e..9f7aadfc68 100644 --- a/Patches/Tsar Armory/TsarArmory_Guns.xml +++ b/Patches/Tsar Armory/TsarArmory_Guns.xml @@ -367,7 +367,7 @@ 0.235 12.22 1 - 0.65 + 1.0 diff --git a/Patches/Vanilla Factions Expanded - Classical/ThingDefs_WeaponsRanged.xml b/Patches/Vanilla Factions Expanded - Classical/ThingDefs_WeaponsRanged.xml index 3e97f480e9..204a2f0050 100644 --- a/Patches/Vanilla Factions Expanded - Classical/ThingDefs_WeaponsRanged.xml +++ b/Patches/Vanilla Factions Expanded - Classical/ThingDefs_WeaponsRanged.xml @@ -50,7 +50,7 @@ 7.26 - 0.45 + 1.0 1.5 2.5 3.5 diff --git a/Patches/Vanilla Factions Expanded - Mechanoids/ThingDefs_Races/Races_AdvancedMechanoid.xml b/Patches/Vanilla Factions Expanded - Mechanoids/ThingDefs_Races/Races_AdvancedMechanoid.xml index 50460179ed..175a766479 100644 --- a/Patches/Vanilla Factions Expanded - Mechanoids/ThingDefs_Races/Races_AdvancedMechanoid.xml +++ b/Patches/Vanilla Factions Expanded - Mechanoids/ThingDefs_Races/Races_AdvancedMechanoid.xml @@ -68,7 +68,7 @@ Defs/ThingDef[defName="VFE_Mech_AdvancedCentipede"]/statBases 0.75 - 260 + 160 70 1.05 1.05 @@ -721,7 +721,7 @@ Defs/ThingDef[defName="VFE_Mech_AdvancedCarpenter"]/statBases 0.75 - 400 + 150 80 0.04 0.47 @@ -814,7 +814,7 @@ 0.75 - 300 + 150 60 1.0 1 diff --git a/Patches/Vanilla Factions Expanded - Mechanoids/ThingDefs_Races/Races_AdvancedMechanoid_PlayerControlled.xml b/Patches/Vanilla Factions Expanded - Mechanoids/ThingDefs_Races/Races_AdvancedMechanoid_PlayerControlled.xml index 5e012895fe..7df9339da5 100644 --- a/Patches/Vanilla Factions Expanded - Mechanoids/ThingDefs_Races/Races_AdvancedMechanoid_PlayerControlled.xml +++ b/Patches/Vanilla Factions Expanded - Mechanoids/ThingDefs_Races/Races_AdvancedMechanoid_PlayerControlled.xml @@ -28,7 +28,7 @@ Defs/ThingDef[defName="VFE_Mech_AdvancedCentipede_PlayerControlled"]/statBases 0.75 - 260 + 160 70 1.05 1.05 @@ -694,7 +694,7 @@ Defs/ThingDef[defName="VFE_Mech_AdvancedTermite_PlayerControlled"]/statBases 0.75 - 300 + 150 60 1.0 1 diff --git a/Patches/Vanilla Factions Expanded - Mechanoids/ThingDefs_Races/Races_Mechanoid.xml b/Patches/Vanilla Factions Expanded - Mechanoids/ThingDefs_Races/Races_Mechanoid.xml index 5f1910b439..e4e16848be 100644 --- a/Patches/Vanilla Factions Expanded - Mechanoids/ThingDefs_Races/Races_Mechanoid.xml +++ b/Patches/Vanilla Factions Expanded - Mechanoids/ThingDefs_Races/Races_Mechanoid.xml @@ -92,7 +92,7 @@ Defs/ThingDef[defName="VFE_Mech_Centipede"]/statBases 0.25 - 250 + 150 60 1.0 1 @@ -747,7 +747,7 @@ Defs/ThingDef[defName="VFE_Mech_Carpenter" or defName="VFE_AncientMech_AncientCarpenter"]/statBases 0.25 - 400 + 150 80 0.03 0.40 @@ -849,7 +849,7 @@ Defs/ThingDef[defName="VFE_Mech_Termite"]/statBases 0.25 - 300 + 150 60 1.0 1 diff --git a/Patches/Vanilla Factions Expanded - Mechanoids/ThingDefs_Races/Races_Mechanoid_PlayerControlled.xml b/Patches/Vanilla Factions Expanded - Mechanoids/ThingDefs_Races/Races_Mechanoid_PlayerControlled.xml index 4b679cf352..657a8298e9 100644 --- a/Patches/Vanilla Factions Expanded - Mechanoids/ThingDefs_Races/Races_Mechanoid_PlayerControlled.xml +++ b/Patches/Vanilla Factions Expanded - Mechanoids/ThingDefs_Races/Races_Mechanoid_PlayerControlled.xml @@ -27,7 +27,7 @@ Defs/ThingDef[defName="VFE_Mech_Termite_PlayerControlled"]/statBases 0.25 - 300 + 150 60 1.0 1 diff --git a/Patches/Vanilla Factions Expanded - Pirates/ThingDefs_Misc/Addon Weapons/VFEVRangedWarcasket.xml b/Patches/Vanilla Factions Expanded - Pirates/ThingDefs_Misc/Addon Weapons/VFEVRangedWarcasket.xml index 952393d5f6..f911d0c235 100644 --- a/Patches/Vanilla Factions Expanded - Pirates/ThingDefs_Misc/Addon Weapons/VFEVRangedWarcasket.xml +++ b/Patches/Vanilla Factions Expanded - Pirates/ThingDefs_Misc/Addon Weapons/VFEVRangedWarcasket.xml @@ -36,7 +36,7 @@ 20 2.10 3.00 - 0.85 + 1.0 0.35 diff --git a/Patches/Vanilla Factions Expanded - Pirates/ThingDefs_Misc/Addon Weapons/VWENLRangedWarcasket.xml b/Patches/Vanilla Factions Expanded - Pirates/ThingDefs_Misc/Addon Weapons/VWENLRangedWarcasket.xml index 6a25fad236..bdce7aee53 100644 --- a/Patches/Vanilla Factions Expanded - Pirates/ThingDefs_Misc/Addon Weapons/VWENLRangedWarcasket.xml +++ b/Patches/Vanilla Factions Expanded - Pirates/ThingDefs_Misc/Addon Weapons/VWENLRangedWarcasket.xml @@ -36,7 +36,7 @@ 25 1.31 0.18 - 0.65 + 1.0 0.39 diff --git a/Patches/Vanilla Factions Expanded - Pirates/ThingDefs_Misc/Addon Weapons/VWEQRangedWarcasket.xml b/Patches/Vanilla Factions Expanded - Pirates/ThingDefs_Misc/Addon Weapons/VWEQRangedWarcasket.xml index 38c86cfb89..76686962fc 100644 --- a/Patches/Vanilla Factions Expanded - Pirates/ThingDefs_Misc/Addon Weapons/VWEQRangedWarcasket.xml +++ b/Patches/Vanilla Factions Expanded - Pirates/ThingDefs_Misc/Addon Weapons/VWEQRangedWarcasket.xml @@ -34,7 +34,7 @@ VFEP_WarcasketGun_FoldingGun 0.6 - 0.85 + 1.0 0.10 2.32 15 diff --git a/Patches/Vanilla Factions Expanded - Pirates/ThingDefs_Misc/Ranged_Warcaskets.xml b/Patches/Vanilla Factions Expanded - Pirates/ThingDefs_Misc/Ranged_Warcaskets.xml index fa7b6cb184..f6828cdb94 100644 --- a/Patches/Vanilla Factions Expanded - Pirates/ThingDefs_Misc/Ranged_Warcaskets.xml +++ b/Patches/Vanilla Factions Expanded - Pirates/ThingDefs_Misc/Ranged_Warcaskets.xml @@ -8,6 +8,27 @@ + +
  • + Defs/ThingDef[ + defName = "VFEP_WarcasketGun_Autorifle" or + defName = "VFEP_WarcasketGun_UraniumSlugRifle" or + defName = "VFEP_WarcasketGun_Slugthrower" or + defName = "VFEP_WarcasketGun_Minigun" or + defName = "VFEP_WarcasketGun_GrenadeLauncher" or + defName = "VFEP_WarcasketGun_HeavyFlamer" or + defName = "VFEP_WarcasketGun_ChargeLance" or + defName = "VFEP_WarcasketGun_HandheldCannon" or + defName = "VFEP_WarcasketGun_ChargeBlaster" + ] + +
  • + 1.7,1.7 + 0.0,0.0 +
  • + + +
  • Defs/ThingDef[defName="Gun_ChargeLance"]/weaponTags/li[contains(.,"VFEP_Captain")] @@ -195,7 +216,7 @@ VFEP_WarcasketGun_Minigun 0.6 - 0.9 + 1.0 0.08 2.32 25 @@ -235,7 +256,7 @@ 20 2.10 3.00 - 0.65 + 1.0 0.35 @@ -310,7 +331,7 @@ 20 1.24 0.10 - 0.5 + 0.7 1.5 diff --git a/Patches/Vanilla Factions Expanded - Settlers/ThingDefs_Misc/Weapons/RangedIndustrialGrenades.xml b/Patches/Vanilla Factions Expanded - Settlers/ThingDefs_Misc/Weapons/RangedIndustrialGrenades.xml index 43e44d5774..a5673379f4 100644 --- a/Patches/Vanilla Factions Expanded - Settlers/ThingDefs_Misc/Weapons/RangedIndustrialGrenades.xml +++ b/Patches/Vanilla Factions Expanded - Settlers/ThingDefs_Misc/Weapons/RangedIndustrialGrenades.xml @@ -100,7 +100,7 @@ 5.05 0.4 0.87 - 0.65 + 1.0 1 diff --git a/Patches/Vanilla Factions Expanded - Settlers/ThingDefs_Misc/Weapons/RangedMedieval.xml b/Patches/Vanilla Factions Expanded - Settlers/ThingDefs_Misc/Weapons/RangedMedieval.xml index ae2d3d4ab4..372a76cbab 100644 --- a/Patches/Vanilla Factions Expanded - Settlers/ThingDefs_Misc/Weapons/RangedMedieval.xml +++ b/Patches/Vanilla Factions Expanded - Settlers/ThingDefs_Misc/Weapons/RangedMedieval.xml @@ -101,7 +101,7 @@ 1.2 3.3 - 0.45 + 1.0 1.5 2.5 0.75 diff --git a/Patches/Vanilla Factions Expanded - Vikings/Weapons_Medieval.xml b/Patches/Vanilla Factions Expanded - Vikings/Weapons_Medieval.xml index f1cf7097f8..fd5a714bf2 100644 --- a/Patches/Vanilla Factions Expanded - Vikings/Weapons_Medieval.xml +++ b/Patches/Vanilla Factions Expanded - Vikings/Weapons_Medieval.xml @@ -222,7 +222,7 @@ Defs/ThingDef[defName="VFE_ThrowingAxe"]/statBases - 0.5 + 1.0 1.5 2.5 1.25 @@ -320,7 +320,7 @@ 7.26 - 0.45 + 1.0 1.5 2.5 3 diff --git a/Patches/Vanilla Vehicles Expanded/VehicleDefs/Tier1/Bunsen.xml b/Patches/Vanilla Vehicles Expanded/VehicleDefs/Tier1/Bunsen.xml index 3f00dcc058..8461317bd7 100644 --- a/Patches/Vanilla Vehicles Expanded/VehicleDefs/Tier1/Bunsen.xml +++ b/Patches/Vanilla Vehicles Expanded/VehicleDefs/Tier1/Bunsen.xml @@ -103,6 +103,15 @@
  • +
  • + Defs/Vehicles.VehicleDef[defName="VVE_Bunsen"] + + + AmmoSet_Flamethrower + + +
  • +
  • Defs/Vehicles.VehicleDef[defName="VVE_Bunsen"]/comps/li[@Class="Vehicles.CompProperties_VehicleTurrets"] @@ -255,4 +264,4 @@ - + \ No newline at end of file diff --git a/Patches/Vanilla Vehicles Expanded/VehicleDefs/Tier1/Highwayman.xml b/Patches/Vanilla Vehicles Expanded/VehicleDefs/Tier1/Highwayman.xml index 0a859f3cf9..e12c206f7e 100644 --- a/Patches/Vanilla Vehicles Expanded/VehicleDefs/Tier1/Highwayman.xml +++ b/Patches/Vanilla Vehicles Expanded/VehicleDefs/Tier1/Highwayman.xml @@ -113,6 +113,15 @@
  • +
  • + Defs/Vehicles.VehicleDef[defName="VVE_Highwayman"] + + + AmmoSet_762x51mmNATO + + +
  • +
  • Defs/Vehicles.VehicleDef[defName="VVE_Highwayman"]/statBases/ArmorRating_Blunt @@ -215,4 +224,4 @@ - + \ No newline at end of file diff --git a/Patches/Vanilla Vehicles Expanded/VehicleDefs/Tier1/Roadkill.xml b/Patches/Vanilla Vehicles Expanded/VehicleDefs/Tier1/Roadkill.xml index adcc94d2bf..6fbec3c4a0 100644 --- a/Patches/Vanilla Vehicles Expanded/VehicleDefs/Tier1/Roadkill.xml +++ b/Patches/Vanilla Vehicles Expanded/VehicleDefs/Tier1/Roadkill.xml @@ -73,6 +73,15 @@
  • +
  • + Defs/Vehicles.VehicleDef[defName="VVE_Roadkill"] + + + AmmoSet_57x307mmR + + +
  • +
  • Defs/Vehicles.VehicleDef[defName="VVE_Roadkill"]/statBases/ArmorRating_Blunt diff --git a/Patches/Vanilla Vehicles Expanded/VehicleDefs/Tier2/Bulldog.xml b/Patches/Vanilla Vehicles Expanded/VehicleDefs/Tier2/Bulldog.xml index f223638b2d..aee2870407 100644 --- a/Patches/Vanilla Vehicles Expanded/VehicleDefs/Tier2/Bulldog.xml +++ b/Patches/Vanilla Vehicles Expanded/VehicleDefs/Tier2/Bulldog.xml @@ -73,6 +73,15 @@
  • +
  • + Defs/Vehicles.VehicleDef[defName="VVE_Bulldog"] + + + AmmoSet_75x350mmR + + +
  • +
  • Defs/Vehicles.VehicleDef[defName="VVE_Bulldog"]/statBases/ArmorRating_Blunt diff --git a/Patches/Vanilla Vehicles Expanded/VehicleDefs/Tier2/Tango.xml b/Patches/Vanilla Vehicles Expanded/VehicleDefs/Tier2/Tango.xml index 04b3e7c779..9569fbe74a 100644 --- a/Patches/Vanilla Vehicles Expanded/VehicleDefs/Tier2/Tango.xml +++ b/Patches/Vanilla Vehicles Expanded/VehicleDefs/Tier2/Tango.xml @@ -106,6 +106,15 @@
  • +
  • + Defs/Vehicles.VehicleDef[defName="VVE_Tango"] + + + AmmoSet_20x102mmNATO + + +
  • +
  • Defs/Vehicles.VehicleDef[defName="VVE_Tango"]/statBases/ArmorRating_Blunt diff --git a/Patches/Vanilla Weapons Expanded - Tribal/Ranged_Neolithic.xml b/Patches/Vanilla Weapons Expanded - Tribal/Ranged_Neolithic.xml index f5ebd4b1e3..069ed00409 100644 --- a/Patches/Vanilla Weapons Expanded - Tribal/Ranged_Neolithic.xml +++ b/Patches/Vanilla Weapons Expanded - Tribal/Ranged_Neolithic.xml @@ -12,7 +12,7 @@
  • VWE_Sling - 0.6 + 0.8 1 2 0.8 @@ -137,7 +137,7 @@
  • VWE_Throwing_Shards - 0.45 + 1.0 0.35 0.15 0.38 @@ -297,7 +297,7 @@ 1.8 3 1 - 0.65 + 1.0 diff --git a/Patches/Vanilla Weapons Expanded/Medieval_Ranged.xml b/Patches/Vanilla Weapons Expanded/Medieval_Ranged.xml index 7853dce839..5e93203965 100644 --- a/Patches/Vanilla Weapons Expanded/Medieval_Ranged.xml +++ b/Patches/Vanilla Weapons Expanded/Medieval_Ranged.xml @@ -150,7 +150,7 @@ 3.90 1.22 0.36 - 0.7 + 0.5 0.85 @@ -312,7 +312,7 @@
  • VWE_Throwing_Knives - 0.5 + 1.0 1.5 2 0.35 diff --git a/Patches/Vanilla Weapons Expanded/Neolithic_Ranged.xml b/Patches/Vanilla Weapons Expanded/Neolithic_Ranged.xml index 57d35b7008..5533d85749 100644 --- a/Patches/Vanilla Weapons Expanded/Neolithic_Ranged.xml +++ b/Patches/Vanilla Weapons Expanded/Neolithic_Ranged.xml @@ -13,7 +13,7 @@
  • VWE_Bow_Long - 0.7 + 0.8 1 2 5.50 diff --git a/Patches/Vehicle Framework Expanded - Classic Mechs/Mech_BattleCannon.xml b/Patches/Vehicle Framework Expanded - Classic Mechs/Mech_BattleCannon.xml new file mode 100644 index 0000000000..22fc3849e2 --- /dev/null +++ b/Patches/Vehicle Framework Expanded - Classic Mechs/Mech_BattleCannon.xml @@ -0,0 +1,83 @@ + + + + +
  • Vehicle Framework Expanded - Classic Mechs
  • + + + + + +
  • + Defs/Vehicles.VehicleTurretDef[defName="HighMacs_BattleCannon"]/projectile + + Bullet_120mmCannonShell_HE + +
  • + +
  • + Defs/Vehicles.VehicleTurretDef[defName="HighMacs_BattleCannon"]/reloadTimer + + 9.6 + +
  • + +
  • + Defs/Vehicles.VehicleTurretDef[defName="HighMacs_BattleCannon"]/warmUpTimer + + 3 + +
  • + +
  • + Defs/Vehicles.VehicleTurretDef[defName="HighMacs_BattleCannon"]/magazineCapacity + + 20 + +
  • + +
  • + Defs/Vehicles.VehicleTurretDef[defName="HighMacs_BattleCannon"]/chargePerAmmoCount +
  • + +
  • + Defs/Vehicles.VehicleTurretDef[defName="HighMacs_BattleCannon"]/genericAmmo + + false + +
  • + +
  • + Defs/Vehicles.VehicleTurretDef[defName="HighMacs_BattleCannon"]/maxRange + + 105 + +
  • + +
  • + Defs/Vehicles.VehicleTurretDef[defName="HighMacs_BattleCannon"]/ammunition/thingDefs + + +
  • Ammo_120mmCannonShell_HEAT
  • +
  • Ammo_120mmCannonShell_HE
  • + + + + +
  • + Defs/Vehicles.VehicleTurretDef[defName="HighMacs_BattleCannon"] + +
  • + AmmoSet_120mmCannonShell + 5 + 229 + 0.82 + 0.01 +
  • + + + +
    +
    + + \ No newline at end of file diff --git a/Patches/Vehicle Framework Expanded - Classic Mechs/Mech_GatlingCannon.xml b/Patches/Vehicle Framework Expanded - Classic Mechs/Mech_GatlingCannon.xml new file mode 100644 index 0000000000..a26ecb916a --- /dev/null +++ b/Patches/Vehicle Framework Expanded - Classic Mechs/Mech_GatlingCannon.xml @@ -0,0 +1,110 @@ + + + + +
  • Vehicle Framework Expanded - Classic Mechs
  • +
    + + + + +
  • + Defs/Vehicles.VehicleTurretDef[defName="HighMacs_GatlingCannon"]/projectile + + Bullet_30x173mmNATO_AP + +
  • + +
  • + Defs/Vehicles.VehicleTurretDef[defName="HighMacs_GatlingCannon"]/reloadTimer + + 7.8 + +
  • + +
  • + Defs/Vehicles.VehicleTurretDef[defName="HighMacs_GatlingCannon"]/warmUpTimer + + 2.5 + +
  • + +
  • + Defs/Vehicles.VehicleTurretDef[defName="HighMacs_GatlingCannon"]/magazineCapacity + + 80 + +
  • + +
  • + Defs/Vehicles.VehicleTurretDef[defName="HighMacs_GatlingCannon"]/genericAmmo + + false + +
  • + +
  • + Defs/Vehicles.VehicleTurretDef[defName="HighMacs_GatlingCannon"]/maxRange + + 95 + +
  • + +
  • + Defs/Vehicles.VehicleTurretDef[defName="HighMacs_GatlingCannon"]/ammunition/thingDefs + + +
  • Ammo_30x173mmNATO_AP
  • +
  • Ammo_30x173mmNATO_Incendiary
  • +
  • Ammo_30x173mmNATO_HE
  • +
  • Ammo_30x173mmNATO_Sabot
  • + + + + +
  • + Defs/Vehicles.VehicleTurretDef[defName="HighMacs_GatlingCannon"]/fireModes + + +
  • + 1 + 6 + 60 + + UI/Gizmos/FireRate_Single +
  • +
  • + 4 + 6 + 60 + + UI/Gizmos/FireRate_Burst +
  • +
  • + 8 + 6 + 60 + + UI/Gizmos/FireRate_Auto +
  • + + + + +
  • + Defs/Vehicles.VehicleTurretDef[defName="HighMacs_GatlingCannon"] + +
  • + AmmoSet_30x173mmNATO + 5 + 181 + 0.9 + 0.08 +
  • + + + +
    +
    +
    +
    \ No newline at end of file diff --git a/Patches/Vehicle Framework Expanded - Classic Mechs/Mech_MachineGun.xml b/Patches/Vehicle Framework Expanded - Classic Mechs/Mech_MachineGun.xml new file mode 100644 index 0000000000..e3e5908bdb --- /dev/null +++ b/Patches/Vehicle Framework Expanded - Classic Mechs/Mech_MachineGun.xml @@ -0,0 +1,111 @@ + + + + +
  • Vehicle Framework Expanded - Classic Mechs
  • +
    + + + + +
  • + Defs/Vehicles.VehicleTurretDef[defName="HighMacs_MachineGun"]/projectile + + Bullet_50BMG_FMJ + +
  • + +
  • + Defs/Vehicles.VehicleTurretDef[defName="HighMacs_MachineGun"]/reloadTimer + + 3 + +
  • + +
  • + Defs/Vehicles.VehicleTurretDef[defName="HighMacs_MachineGun"]/warmUpTimer + + 1 + +
  • + +
  • + Defs/Vehicles.VehicleTurretDef[defName="HighMacs_MachineGun"]/magazineCapacity + + 200 + +
  • + +
  • + Defs/Vehicles.VehicleTurretDef[defName="HighMacs_MachineGun"]/genericAmmo + + false + +
  • + +
  • + Defs/Vehicles.VehicleTurretDef[defName="HighMacs_MachineGun"]/maxRange + + 80 + +
  • + +
  • + Defs/Vehicles.VehicleTurretDef[defName="HighMacs_MachineGun"]/ammunition/thingDefs + + +
  • Ammo_50BMG_FMJ
  • +
  • Ammo_50BMG_AP
  • +
  • Ammo_50BMG_Incendiary
  • +
  • Ammo_50BMG_HE
  • +
  • Ammo_50BMG_Sabot
  • + + + + +
  • + Defs/Vehicles.VehicleTurretDef[defName="HighMacs_MachineGun"]/fireModes + + +
  • + 1 + 6 + 60 + + UI/Gizmos/FireRate_Single +
  • +
  • + 5 + 6 + 60 + + UI/Gizmos/FireRate_Burst +
  • +
  • + 10 + 6 + 60 + + UI/Gizmos/FireRate_Auto +
  • + + + + +
  • + Defs/Vehicles.VehicleTurretDef[defName="HighMacs_MachineGun"] + +
  • + AmmoSet_50BMG + 2.5 + 163 + 1.5 + 0.1 +
  • + + + +
    +
    +
    +
    \ No newline at end of file diff --git a/Patches/Vehicle Framework Expanded - Classic Mechs/Mech_MissileLauncher.xml b/Patches/Vehicle Framework Expanded - Classic Mechs/Mech_MissileLauncher.xml new file mode 100644 index 0000000000..f45e76ffb3 --- /dev/null +++ b/Patches/Vehicle Framework Expanded - Classic Mechs/Mech_MissileLauncher.xml @@ -0,0 +1,106 @@ + + + + +
  • Vehicle Framework Expanded - Classic Mechs
  • +
    + + + + +
  • + Defs/Vehicles.VehicleTurretDef[defName="HighMacs_MissileLauncher"]/projectile + + Bullet_83mmSMAW_HEAT + +
  • + +
  • + Defs/Vehicles.VehicleTurretDef[defName="HighMacs_MissileLauncher"]/reloadTimer + + 18.6 + +
  • + +
  • + Defs/Vehicles.VehicleTurretDef[defName="HighMacs_MissileLauncher"]/warmUpTimer + + 3 + +
  • + +
  • + Defs/Vehicles.VehicleTurretDef[defName="HighMacs_MissileLauncher"]/magazineCapacity + + 16 + +
  • + +
  • + Defs/Vehicles.VehicleTurretDef[defName="HighMacs_MissileLauncher"]/genericAmmo + + false + +
  • + +
  • + Defs/Vehicles.VehicleTurretDef[defName="HighMacs_MissileLauncher"]/chargePerAmmoCount +
  • + +
  • + Defs/Vehicles.VehicleTurretDef[defName="HighMacs_MissileLauncher"]/maxRange + + 75 + +
  • + +
  • + Defs/Vehicles.VehicleTurretDef[defName="HighMacs_MissileLauncher"]/ammunition/thingDefs + + +
  • Ammo_83mmSMAW_HEAT
  • +
  • Ammo_83mmSMAW_HE
  • +
  • Ammo_83mmSMAW_Thermobaric
  • + + + + +
  • + Defs/Vehicles.VehicleTurretDef[defName="HighMacs_MissileLauncher"]/fireModes + + +
  • + 1 + 6 + 60 + + UI/Gizmos/FireRate_Single +
  • +
  • + 4 + 12 + 120 + + UI/Gizmos/FireRate_Burst +
  • + + + + +
  • + Defs/Vehicles.VehicleTurretDef[defName="HighMacs_MissileLauncher"] + +
  • + AmmoSet_83mmSMAW + 3 + 58 + 0.82 + 0.03 +
  • + + + +
    +
    +
    +
    \ No newline at end of file diff --git a/Patches/Vehicle Framework Expanded - Classic Mechs/Mech_VehiclePawn.xml b/Patches/Vehicle Framework Expanded - Classic Mechs/Mech_VehiclePawn.xml new file mode 100644 index 0000000000..3a4a4052b0 --- /dev/null +++ b/Patches/Vehicle Framework Expanded - Classic Mechs/Mech_VehiclePawn.xml @@ -0,0 +1,125 @@ + + + + +
  • Vehicle Framework Expanded - Classic Mechs
  • +
    + + + + +
  • + Defs/Vehicles.VehicleDef[@Name="HighMacsBase"]/statBases/ArmorRating_Blunt + + 20 + +
  • + +
  • + Defs/Vehicles.VehicleDef[@Name="HighMacsBase"]/statBases/ArmorRating_Sharp + + 10 + +
  • + +
  • + Defs/Vehicles.VehicleDef[@Name="HighMacsBase"]/vehicleStats/CargoCapacity + + 2950 + +
  • + + +
  • + Defs/Vehicles.VehicleDef[@Name="HighMacsBase"]/components/li [key="FrontArmor"]/health + + 200 + +
  • + +
  • + Defs/Vehicles.VehicleDef[@Name="HighMacsBase"]/components/li [key="FrontArmor"]/armor + + + 80 + 40 + + +
  • + + +
  • + Defs/Vehicles.VehicleDef[@Name="HighMacsBase"]/components/li [key="LeftArmor"]/health + + 200 + +
  • + +
  • + Defs/Vehicles.VehicleDef[@Name="HighMacsBase"]/components/li [key="LeftArmor"]/armor + + + 64 + 32 + + +
  • + + +
  • + Defs/Vehicles.VehicleDef[@Name="HighMacsBase"]/components/li [key="RightArmor"]/health + + 150 + +
  • + +
  • + Defs/Vehicles.VehicleDef[@Name="HighMacsBase"]/components/li [key="RightArmor"]/armor + + + 64 + 32 + + +
  • + + +
  • + Defs/Vehicles.VehicleDef[@Name="HighMacsBase"]/components/li [key="BackArmor"]/health + + 150 + +
  • + +
  • + Defs/Vehicles.VehicleDef[@Name="HighMacsBase"]/components/li [key="BackArmor"]/armor + + + 52 + 24 + + +
  • + + +
  • + Defs/Vehicles.VehicleDef[@Name="HighMacsBase"]/components/li[key="FrontLeftLeg" or key="FrontRightLeg"]/health + + 150 + +
  • + +
  • + Defs/Vehicles.VehicleDef[@Name="HighMacsBase"]/components/li[key="FrontLeftLeg" or key="FrontRightLeg"] + + + 15 + 12 + + +
  • + +
    +
    +
    +
    \ No newline at end of file diff --git a/Patches/Warcaskets - Adeptus Astartes/Ranged_Astartes.xml b/Patches/Warcaskets - Adeptus Astartes/Ranged_Astartes.xml index 3c0d99983d..fcc61911fa 100644 --- a/Patches/Warcaskets - Adeptus Astartes/Ranged_Astartes.xml +++ b/Patches/Warcaskets - Adeptus Astartes/Ranged_Astartes.xml @@ -42,7 +42,7 @@
  • HP_WarcasketGun_Bolter - 0.7 + 1.0 0.07 2.58 7.5 @@ -159,7 +159,7 @@
  • HP_WarcasketGun_StormBolter - 0.7 + 1.0 0.07 2.92 7.5 diff --git a/Patches/Waster Toxic Breather/WasterBreather.xml b/Patches/Waster Toxic Breather/WasterBreather.xml new file mode 100644 index 0000000000..3443f09070 --- /dev/null +++ b/Patches/Waster Toxic Breather/WasterBreather.xml @@ -0,0 +1,65 @@ + + + + + +
  • Wasters Toxic Breather
  • + + + + + +
  • + Defs/ThingDef[defName="WTM_ToxicBreather"]/statBases + + + 8000 + 100 + 0.5 + 3 + 1 + 0.5 + + +
  • + +
  • + Defs/ThingDef[defName="WTM_ToxicBreather"]/equippedStatOffsets + + -1 + +
  • + +
  • + Defs/ThingDef[defName="WTM_ToxicBreather"] + +
  • + WearingGasMask +
  • +
  • + false + true +
  • + + + +
  • + Defs/ThingDef[defName="WTM_ToxicBreather"]/apparel/hatRenderedFrontOfFace + + false + +
  • + +
  • + Defs/ThingDef[defName="WTM_ToxicBreather"]/apparel/layers + + +
  • StrappedHead
  • + + + + +
    +
    + + diff --git a/Patches/Weapons+/WeaponsPlus_RangedWeapons.xml b/Patches/Weapons+/WeaponsPlus_RangedWeapons.xml index be43a85188..86df8a3dfb 100644 --- a/Patches/Weapons+/WeaponsPlus_RangedWeapons.xml +++ b/Patches/Weapons+/WeaponsPlus_RangedWeapons.xml @@ -100,7 +100,7 @@ 1000 4 - 0.45 + 1.0 1.5 2.5 1.00 diff --git a/Patches/Zombieland/Zombieland_Patches.xml b/Patches/Zombieland/Zombieland_Patches.xml index d988776efd..bb5a3b0973 100644 --- a/Patches/Zombieland/Zombieland_Patches.xml +++ b/Patches/Zombieland/Zombieland_Patches.xml @@ -143,7 +143,7 @@
  • 2000 - true + false 600 5 0.5 @@ -191,4 +191,4 @@ - \ No newline at end of file + diff --git a/Patches/pphhyy Expanded Scythers/MechBodies_CE.xml b/Patches/pphhyy Expanded Scythers/MechBodies_CE.xml new file mode 100644 index 0000000000..56d999b121 --- /dev/null +++ b/Patches/pphhyy Expanded Scythers/MechBodies_CE.xml @@ -0,0 +1,193 @@ + + + + + +
  • phynilla Expanded Mechs Scyther
  • + + + + + + + + +
  • + Defs/BodyDef[defName="ScytherExpanded"]/corePart/groups + + Defs/BodyDef[defName="ScytherExpanded"]/corePart + + + + +
  • + +
  • + Defs/BodyDef[defName="ScytherExpanded"]/corePart/parts/li[def="MechanicalNeck"]/groups + + Defs/BodyDef[defName="ScytherExpanded"]/corePart/parts/li[def="MechanicalNeck"] + + + + +
  • + +
  • + Defs/BodyDef[defName="ScytherExpanded"]/corePart/parts/li[def="MechanicalNeck"]/parts/li[def="MechanicalHead"]/groups + + Defs/BodyDef[defName="ScytherExpanded"]/corePart/parts/li[def="MechanicalNeck"]/parts/li[def="MechanicalHead"] + + + + +
  • + +
  • + Defs/BodyDef[defName="ScytherExpanded"]/corePart/parts/li[def="MechanicalShoulder"]/groups + + Defs/BodyDef[defName="ScytherExpanded"]/corePart/parts/li[def="MechanicalShoulder"] + + + + +
  • + +
  • + Defs/BodyDef[defName="ScytherExpanded"]/corePart/parts/li[def="MechanicalShoulder"]/parts/li[def="MechanicalArm"]/groups + + Defs/BodyDef[defName="ScytherExpanded"]/corePart/parts/li[def="MechanicalShoulder"]/parts/li[def="MechanicalArm"] + + + + +
  • + +
  • + Defs/BodyDef[defName="ScytherExpanded"]/corePart/parts/li[def="MechanicalShoulder"]/parts/li[def="MechanicalArm"]/parts/li[def="MechanicalHand"]/groups + + Defs/BodyDef[defName="ScytherExpanded"]/corePart/parts/li[def="MechanicalShoulder"]/parts/li[def="MechanicalArm"]/parts/li[def="MechanicalHand"] + + + + +
  • + +
  • + Defs/BodyDef[defName="ScytherExpanded"]/corePart/parts/li[def="MechanicalLeg"]/groups + + Defs/BodyDef[defName="ScytherExpanded"]/corePart/parts/li[def="MechanicalLeg"] + + + + +
  • + +
  • + Defs/BodyDef[defName="ScytherExpanded"]/corePart/parts/li[def="MechanicalLeg"]/parts/li[def="MechanicalFoot"]/groups + + Defs/BodyDef[defName="ScytherExpanded"]/corePart/parts/li[def="MechanicalLeg"]/parts/li[def="MechanicalFoot"] + + + + +
  • + + + +
  • + Defs/BodyDef[defName="ScytherExpanded"]/corePart/groups + +
  • CoveredByNaturalArmor
  • +
    + + +
  • + Defs/BodyDef[defName="ScytherExpanded"]/corePart/parts/li[def="MechanicalNeck"]/groups + +
  • CoveredByNaturalArmor
  • + + + +
  • + Defs/BodyDef[defName="ScytherExpanded"]/corePart/parts/li[def="MechanicalNeck"]/parts/li[def="MechanicalHead"]/groups + +
  • CoveredByNaturalArmor
  • + + + +
  • + Defs/BodyDef[defName="ScytherExpanded"]/corePart/parts/li[def="MechanicalShoulder"]/groups + +
  • CoveredByNaturalArmor
  • + + + +
  • + Defs/BodyDef[defName="ScytherExpanded"]/corePart/parts/li[def="MechanicalShoulder"]/parts/li[def="MechanicalArm"]/groups + +
  • CoveredByNaturalArmor
  • + + + +
  • + Defs/BodyDef[defName="ScytherExpanded"]/corePart/parts/li[def="MechanicalShoulder"]/parts/li[def="MechanicalArm"]/parts/li[def="MechanicalHand"]/groups + +
  • CoveredByNaturalArmor
  • + + + +
  • + Defs/BodyDef[defName="ScytherExpanded"]/corePart/parts/li[def="MechanicalShoulder"]/parts/li[def="MechanicalArm"]/parts/li[def="Blade"]/groups + +
  • CoveredByNaturalArmor
  • + + + +
  • + Defs/BodyDef[defName="ScytherExpanded"]/corePart/parts/li[def="MechanicalShoulder"]/parts/li[def="MechanicalArm"]/parts/li[def="MechanicalHand"]/parts/li[def="MechanicalFinger"]/groups + +
  • CoveredByNaturalArmor
  • + + + +
  • + Defs/BodyDef[defName="ScytherExpanded"]/corePart/parts/li[def="MechanicalLeg"]/groups + +
  • CoveredByNaturalArmor
  • + + + +
  • + Defs/BodyDef[defName="ScytherExpanded"]/corePart/parts/li[def="MechanicalLeg"]/parts/li[def="MechanicalFoot"]/groups + +
  • CoveredByNaturalArmor
  • + + + + + +
  • + Defs/BodyDef[defName="ScytherExpanded"]/corePart/parts/li[def="MechanicalShoulder"]/coverage + + 0.15 + +
  • + +
  • + Defs/BodyDef[defName="ScytherExpanded"]/corePart/parts/li[def="MechanicalShoulder"]/parts/li[def="MechanicalArm"]/parts/li[def="Blade"]/coverage + + 0.2 + +
  • + +
  • + Defs/BodyDef[defName="ScytherExpanded"]/corePart/parts/li[def="FluidReprocessor"]/coverage + + 0.05 + +
  • + + + + + \ No newline at end of file diff --git a/Patches/pphhyy Expanded Scythers/MechKind_CE.xml b/Patches/pphhyy Expanded Scythers/MechKind_CE.xml new file mode 100644 index 0000000000..d7de65b768 --- /dev/null +++ b/Patches/pphhyy Expanded Scythers/MechKind_CE.xml @@ -0,0 +1,740 @@ + + + + + +
  • phynilla Expanded Mechs Scyther
  • +
    + + + +
  • + Defs/ThingDef[ + defName="pphhyy_ScytherExpandedArch" or + defName="pphhyy_ScytherExpandedMono" or + defName="pphhyy_ScytherExpandedSearing" or + defName="pphhyy_ScytherExpandedPrestige" + ] + +
  • + Humanoid +
  • + + + +
  • + Defs/PawnKindDef[ + defName="pphhyy_ScytherExpandedTank" or + defName="pphhyy_ScytherExpandedArch" or + defName="pphhyy_ScytherExpandedSearing" + ]/combatPower + + 190 + +
  • + +
  • + Defs/PawnKindDef[defName="pphhyy_ScytherExpandedMono"]/combatPower + + 240 + +
  • + +
  • + Defs/PawnKindDef[defName="pphhyy_ScytherExpandedPrestige"]/combatPower + + 320 + +
  • + + + +
  • + Defs/ThingDef[defName="pphhyy_ScytherExpandedArch"]/statBases + + 50 + 20 + 0.18 + 0.19 + 0.23 + 250 + 0.2 + +
  • + +
  • + Defs/ThingDef[defName="pphhyy_ScytherExpandedArch"]/statBases/ArmorRating_Blunt + + 8 + +
  • + +
  • + Defs/ThingDef[defName="pphhyy_ScytherExpandedArch"]/statBases/ArmorRating_Sharp + + 6 + +
  • + +
  • + Defs/ThingDef[defName="pphhyy_ScytherExpandedArch"]/tools + + +
  • + + +
  • Blunt
  • + + 24 + +
  • + EMP + 4 +
  • +
    + 1.33 + LeftBlade + 35 + true + +
  • + + +
  • Blunt
  • + + 24 + +
  • + EMP + 4 +
  • +
    + 1.33 + RightBlade + 35 + true + +
  • + + +
  • Blunt
  • + + 6 + +
  • + EMP + 2 +
  • +
    + 5.9 + HeadAttackTool + 0.2 + 1.875 + + + + + +
  • + Defs/ThingDef[defName="pphhyy_ScytherExpandedArch"]/comps + + Defs/ThingDef[defName="pphhyy_ScytherExpandedArch"] + + + + +
  • + +
  • + Defs/ThingDef[defName="pphhyy_ScytherExpandedArch"]/comps + +
  • + 1225 + true + 1250 + 5 + true + + 5 + 5 + + 300 + 200 + true + 116 + 0.75 +
  • + + + + + +
  • + Defs/ThingDef[defName="pphhyy_ScytherExpandedTank"]/statBases + + 50 + 20 + 0.07 + 0.04 + 0.65 + 400 + 0.15 + +
  • + +
  • + Defs/ThingDef[defName="pphhyy_ScytherExpandedTank"]/statBases/ArmorRating_Blunt + + 24 + +
  • + +
  • + Defs/ThingDef[defName="pphhyy_ScytherExpandedTank"]/statBases/ArmorRating_Sharp + + 16 + +
  • + +
  • + Defs/ThingDef[defName="pphhyy_ScytherExpandedTank"]/tools + + +
  • + + +
  • Blunt
  • + + 24 + +
  • + Stun + 4 +
  • +
    + 1.33 + RightBlade + 16 + true + +
  • + + +
  • Blunt
  • + + 6 + 5.9 + HeadAttackTool + 0.2 + 1.875 + + + + + +
  • + Defs/ThingDef[defName="pphhyy_ScytherExpandedTank"]/comps + + Defs/ThingDef[defName="pphhyy_ScytherExpandedTank"] + + + + +
  • + +
  • + Defs/ThingDef[defName="pphhyy_ScytherExpandedTank"]/comps + +
  • + 1875 + true + 1250 + 5 + true + + 5 + 5 + + 300 + 200 + true + 140 + 0.65 +
  • + + + +
  • + Defs/ThingDef[defName="pphhyy_ScytherExpandedTank"] + + +
  • + Humanoid +
  • +
  • + +
  • + false + 0.1 + +
  • SightSensor
  • + + +
  • + false + 0.1 + +
  • SightSensor
  • + + +
  • + false + 0.625 + +
  • MechanicalHead
  • + + +
  • + false + 0.625 + +
  • MechanicalHead
  • + + +
  • + false + 0.625 + +
  • MechanicalLeg
  • + + +
  • + false + 0.625 + +
  • MechanicalLeg
  • + + + + + + + + + + +
  • + Defs/ThingDef[defName="pphhyy_ScytherExpandedMono"]/statBases + + 50 + 20 + 0.43 + 0.41 + 0.36 + 300 + +
  • + +
  • + Defs/ThingDef[defName="pphhyy_ScytherExpandedMono"]/statBases/ArmorRating_Blunt + + 14 + +
  • + +
  • + Defs/ThingDef[defName="pphhyy_ScytherExpandedMono"]/statBases/ArmorRating_Sharp + + 10 + +
  • + +
  • + Defs/ThingDef[defName="pphhyy_ScytherExpandedMono"]/tools + + +
  • + + +
  • Cut
  • + + 45 + 1.84 + LeftBlade + 16 + 5.4 + true + +
  • + + +
  • Stab
  • + + 27 + 1.03 + LeftBlade + 45 + 20 + true + +
  • + + +
  • Cut
  • + + 45 + 1.84 + RightBlade + 16 + 5.4 + true + +
  • + + +
  • Stab
  • + + 27 + 1.03 + RightBlade + 45 + 20 + true + +
  • + + +
  • Blunt
  • + + 6 + 5.9 + HeadAttackTool + 0.2 + 1.875 + + + + + +
  • + Defs/ThingDef[defName="pphhyy_ScytherExpandedMono"]/comps + + Defs/ThingDef[defName="pphhyy_ScytherExpandedMono"] + + + + +
  • + +
  • + Defs/ThingDef[defName="pphhyy_ScytherExpandedMono"]/comps + +
  • + 1300 + true + 1250 + 5 + true + + 5 + 5 + + 300 + 200 + true + 116 + 0.75 +
  • + + + + + + +
  • + Defs/ThingDef[defName="pphhyy_ScytherExpandedSearing"]/statBases + + 50 + 20 + 0.18 + 0.23 + 0.19 + 250 + 0.4 + +
  • + +
  • + Defs/ThingDef[defName="pphhyy_ScytherExpandedSearing"]/statBases/ArmorRating_Blunt + + 8 + +
  • + +
  • + Defs/ThingDef[defName="pphhyy_ScytherExpandedSearing"]/statBases/ArmorRating_Sharp + + 6 + +
  • + +
  • + Defs/ThingDef[defName="pphhyy_ScytherExpandedSearing"]/tools + + +
  • + + +
  • Cut
  • + + 43 + +
  • + Flame + 5 + 0.3 +
  • +
    + 2.07 + LeftBlade + 2.16 + 5.4 + true + +
  • + + +
  • Stab
  • + + 24 + +
  • + Flame + 5 + 0.3 +
  • +
    + 1.33 + LeftBlade + 40 + 20 + true + +
  • + + +
  • Cut
  • + + 43 + +
  • + Flame + 5 + 0.3 +
  • +
    + 2.07 + RightBlade + 2.16 + 5.4 + true + +
  • + + +
  • Stab
  • + + 24 + +
  • + Flame + 5 + 0.3 +
  • +
    + 1.33 + RightBlade + 40 + 20 + true + +
  • + + +
  • Blunt
  • + + 6 + 5.9 + HeadAttackTool + 0.2 + 1.875 + + + + + +
  • + Defs/ThingDef[defName="pphhyy_ScytherExpandedSearing"]/comps + + Defs/ThingDef[defName="pphhyy_ScytherExpandedSearing"] + + + + +
  • + +
  • + Defs/ThingDef[defName="pphhyy_ScytherExpandedSearing"]/comps + +
  • + 1225 + true + 1250 + 5 + true + + 5 + 5 + + 300 + 200 + true + 116 + 0.75 +
  • + + + + + +
  • + Defs/ThingDef[defName="pphhyy_ScytherExpandedPrestige"]/statBases + + 50 + 20 + 0.58 + 0.54 + 0.45 + 380 + 0.2 + 0.15 + +
  • + +
  • + Defs/ThingDef[defName="pphhyy_ScytherExpandedPrestige"]/statBases/ArmorRating_Blunt + + 24 + +
  • + +
  • + Defs/ThingDef[defName="pphhyy_ScytherExpandedPrestige"]/statBases/ArmorRating_Sharp + + 16 + +
  • + +
  • + Defs/ThingDef[defName="pphhyy_ScytherExpandedPrestige"]/tools + + +
  • + + +
  • Cut
  • + + 46 + 1.84 + LeftBlade + 20 + 5.4 + true + +
  • + + +
  • Stab
  • + + 28 + 1.03 + LeftBlade + 45 + 20 + true + +
  • + + +
  • Cut
  • + + 46 + 1.84 + RightBlade + 20 + 5.4 + true + +
  • + + +
  • Stab
  • + + 28 + 1.03 + RightBlade + 45 + 20 + true + +
  • + + +
  • Blunt
  • + + 6 + 5.9 + HeadAttackTool + 0.2 + 1.875 + + + + + +
  • + Defs/ThingDef[defName="pphhyy_ScytherExpandedPrestige"]/comps + + Defs/ThingDef[defName="pphhyy_ScytherExpandedPrestige"] + + + + +
  • + +
  • + Defs/ThingDef[defName="pphhyy_ScytherExpandedPrestige"]/comps + +
  • + 1500 + true + 1250 + 5 + true + + 5 + 5 + + 300 + 200 + true + 150 + 0.75 +
  • + + + +
    +
    +
    +
    \ No newline at end of file diff --git a/Patches/turk's guns/Patch_Guns.xml b/Patches/turk's guns/Patch_Guns.xml deleted file mode 100644 index c94756adf3..0000000000 --- a/Patches/turk's guns/Patch_Guns.xml +++ /dev/null @@ -1,358 +0,0 @@ - - - - - -
  • turk's guns
  • -
    - - - -
  • - Defs/ThingDef[defName="Gun_AATwelve" or defName="Gun_HAMR"]/tools - - -
  • - - -
  • Blunt
  • - - 8 - 1.55 - 1.5 - 2.755 - Stock - -
  • - - -
  • Blunt
  • - - 5 - 2.02 - 1.630 - Barrel - -
  • - - -
  • Poke
  • - - 8 - 1.55 - 2.755 - Muzzle - - - - - -
  • - Defs/ThingDef[defName="Gun_Skorpion" or defName="Gun_TaurusJudge"]/tools - - -
  • - - -
  • Blunt
  • - - 2 - 1.54 - 1.5 - 0.555 - Grip - -
  • - - -
  • Poke
  • - - 2 - 1.54 - 0.555 - Muzzle - - - - - -
  • - Defs/ThingDef[defName="Gun_MX21FourSmol" or defName="Gun_MX21Four"]/tools - - -
  • - - -
  • Blunt
  • - - 10 - 2.44 - 3.5 - Barrels - - - - - -
  • - Gun_AATwelve - - 31500 - 1.0 - 0.14 - 1.49 - 10.66 - 5.20 - 0.38 - - - 60 - 10 - 5 - - - 2.26 - CombatExtended.Verb_ShootCE - true - Bullet_12Gauge_Buck - 3 - 12 - 0.6 - 20 - Shot_Shotgun - GunTail_Heavy - 9 - - - 32 - 4.9 - AmmoSet_12Gauge - - - Snapshot - true - 2 - - -
  • IndustrialGunAdvanced
  • - - GasOperation - - -
  • - Gun_HAMR - - 32000 - 1.1 - 0.1 - 1.50 - 10.90 - 5.10 - 0.36 - - - 55 - 15 - 5 - - - 1.17 - CombatExtended.Verb_ShootCE - true - Bullet_762x51mmNATO_FMJ - 6 - 6 - 1.0 - 55 - Shot_AssaultRifle - GunTail_Medium - 9 - - - 50 - 4.9 - AmmoSet_762x51mmNATO - - - SuppressFire - true - 5 - - -
  • IndustrialGunAdvanced
  • - - PrecisionRifling - - -
  • - Gun_Skorpion - - 32000 - 1.0 - 0.17 - 0.65 - 2.70 - 1.30 - 0.37 - - - 30 - 4 - - - 1.86 - CombatExtended.Verb_ShootCE - true - Bullet_32ACP_FMJ - 6 - 4 - 0.6 - 25 - Shot_MachinePistol - GunTail_Light - 9 - - - 20 - 4 - AmmoSet_32ACP - - - Snapshot - false - 3 - - BlowbackOperation -
  • - -
  • - Gun_MX21Four - - 80500 - 1.0 - 0.06 - 1.32 - 8.02 - 39.00 - 0.35 - - - 200 - 55 - 15 - - - 0.58 - Mounted - CombatExtended.Verb_ShootCE - true - Bullet_762x51mmNATO_FMJ - 300 - 1 - 2.3 - 62 - Shot_Minigun - GunTail_Medium - 9 - - - 500 - 9.2 - AmmoSet_762x51mmNATO - - - AimedShot - true - true - false - 150 - - -
  • CE_AI_Suppressive
  • - - PrecisionRifling - - -
  • - Gun_MX21FourSmol - - 59000 - 1.0 - 0.06 - 1.73 - 9.12 - 10.20 - 0.35 - - - 130 - 12 - - - 0.88 - CombatExtended.Verb_ShootCE - true - Bullet_556x45mmNATO_FMJ - 300 - 1 - 2.0 - 68 - Shot_Minigun - GunTail_Medium - 9 - - - 800 - 7.8 - AmmoSet_556x45mmNATO - - - SuppressFire - false - 150 - - PrecisionRifling -
  • -
  • - Gun_TaurusJudge - - 4500 - 0.7 - 0.19 - 0.91 - 1.90 - 0.82 - 0.41 - - - 25 - 2 - - - CombatExtended.Verb_ShootCE - true - Bullet_45Colt_FMJ - 0.6 - 12 - Shot_Revolver - GunTail_Light - 9 - - - 5 - 4.6 - AmmoSet_45Colt410Bore - - - Snapshot - - -
  • SimpleGun
  • -
  • CE_Sidearm
  • - - - -
    -
    -
    -
    \ No newline at end of file diff --git a/Sounds/AmmoContainer/AmmoContainerAmbient.ogg b/Sounds/AmmoContainer/AmmoContainerAmbient.ogg new file mode 100644 index 0000000000..139f68288e Binary files /dev/null and b/Sounds/AmmoContainer/AmmoContainerAmbient.ogg differ diff --git a/Source/CombatExtended/CombatExtended/AmmoUtility.cs b/Source/CombatExtended/CombatExtended/AmmoUtility.cs index ee1f1a86ff..e000cfdb45 100644 --- a/Source/CombatExtended/CombatExtended/AmmoUtility.cs +++ b/Source/CombatExtended/CombatExtended/AmmoUtility.cs @@ -101,6 +101,7 @@ public static string GetProjectileReadout(this ThingDef projectileDef, Thing wea { var fragmentProps = fragmentDef?.thingDef?.projectile as ProjectilePropertiesCE; stringBuilder.AppendLine(" " + " " + fragmentDef.LabelCap); + stringBuilder.AppendLine(" " + " " + " " + "CE_DescDamage".Translate() + ": " + fragmentProps?.damageAmountBase.ToString() + " (" + fragmentProps?.damageDef.LabelCap.ToString() + ")"); stringBuilder.AppendLine(" " + " " + " " + "CE_DescSharpPenetration".Translate() + ": " + fragmentProps?.armorPenetrationSharp.ToStringByStyle(ToStringStyle.FloatTwo) + " " + "CE_mmRHA".Translate()); stringBuilder.AppendLine(" " + " " + " " + "CE_DescBluntPenetration".Translate() + ": " + fragmentProps?.armorPenetrationBlunt.ToStringByStyle(ToStringStyle.FloatTwo) + " " + "CE_MPa".Translate()); } diff --git a/Source/CombatExtended/CombatExtended/BoundsInjector.cs b/Source/CombatExtended/CombatExtended/BoundsInjector.cs index 6c36c2ba54..f461a84d88 100644 --- a/Source/CombatExtended/CombatExtended/BoundsInjector.cs +++ b/Source/CombatExtended/CombatExtended/BoundsInjector.cs @@ -131,9 +131,17 @@ private static Vector2 ExtractBounds(Graphic graphic, GraphicType type, Graphic (float)(hBounds.max - hBounds.min) / (float)hWidth, (float)(vBounds.max - vBounds.min) / (float)vHeight); } - + private static Vector2 ExctractBoundCollection(Graphic_Collection graphic, GraphicType type) + { + IEnumerable bounds = graphic.subGraphics.Select(x => ExtractBounds(x, type)); + return new Vector2(bounds.Average(v => v.x), bounds.Average(v => v.y)); + } private static Vector2 ExtractBounds(Graphic graphic, GraphicType type) { + if (graphic is Graphic_Collection graphic_collection) + { + return ExctractBoundCollection(graphic_collection, type); + } int vWidth; int vHeight; diff --git a/Source/CombatExtended/CombatExtended/Building_AmmoContainerCE/AutoLoaderTracker.cs b/Source/CombatExtended/CombatExtended/Building_AmmoContainerCE/AutoLoaderTracker.cs new file mode 100644 index 0000000000..b18934be57 --- /dev/null +++ b/Source/CombatExtended/CombatExtended/Building_AmmoContainerCE/AutoLoaderTracker.cs @@ -0,0 +1,43 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using RimWorld; +using Verse.AI; +using Verse; + +namespace CombatExtended +{ + internal class AutoLoaderTracker : MapComponent + { + public HashSet AutoLoaders = new HashSet(); + + public AutoLoaderTracker(Map map) : base(map) + { + } + + public void Register(Building_AutoloaderCE t) + { + if (!AutoLoaders.Contains(t)) + { + AutoLoaders.Add(t); + } + } + + public void Unregister(Building_AutoloaderCE t) + { + if (AutoLoaders.Contains(t)) + { + AutoLoaders.Remove(t); + } + } + public Thing ClosestCpmtaomer(IntVec3 position, PathEndMode pathEndMode, TraverseParms parms, float maxDist, + Predicate validator = null) + { + return GenClosest.ClosestThingReachable( + position, map, ThingRequest.ForUndefined(), pathEndMode, + parms, maxDist, validator, AutoLoaders); + } + } +} diff --git a/Source/CombatExtended/CombatExtended/Building_AmmoContainerCE/Building_AutoloaderCE.cs b/Source/CombatExtended/CombatExtended/Building_AmmoContainerCE/Building_AutoloaderCE.cs new file mode 100644 index 0000000000..23132c7ba5 --- /dev/null +++ b/Source/CombatExtended/CombatExtended/Building_AmmoContainerCE/Building_AutoloaderCE.cs @@ -0,0 +1,422 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using CombatExtended; +using CombatExtended.AI; +using CombatExtended.Compatibility; +using Mono.Unix.Native; +using RimWorld; +using UnityEngine; +using Verse; +using Verse.AI; +using Verse.Noise; +using Verse.Sound; + +namespace CombatExtended +{ + [StaticConstructorOnStartup] + public class Building_AutoloaderCE : Building + { + public CompAmmoUser CompAmmoUser; + + public bool isActive => TargetAmmoUser != null; + + public bool shouldReplaceAmmo; + + public int ticksToCompleteInitial; + + public int ticksToComplete; + + public bool isReloading; + + public CompAmmoUser TargetAmmoUser => TargetTurret.GetAmmo(); + + public Building_Turret TargetTurret; + + private Sustainer reloadingSustainer; + + private static readonly Material UnfilledMat = SolidColorMaterials.NewSolidColorMaterial(new Color(0.3f, 0.3f, 0.3f, 0.65f), ShaderDatabase.MetaOverlay); + + private static readonly Material FilledMat = SolidColorMaterials.NewSolidColorMaterial(new Color(0.9f, 0.85f, 0.2f, 0.65f), ShaderDatabase.MetaOverlay); + + public CompPowerTrader powerComp; + public CompCanBeDormant dormantComp; + public CompInitiatable initiatableComp; + public CompMannable mannableComp; + + public ModExtension_AutoLoaderGraphics graphicsExt; + + public bool shouldBeOn => (powerComp == null || powerComp.PowerOn) && (dormantComp == null || dormantComp.Awake) && (initiatableComp == null || initiatableComp.Initiated) && (mannableComp == null || mannableComp.MannedNow); + + public override void ExposeData() + { + base.ExposeData(); + + Scribe_Values.Look(ref shouldReplaceAmmo, "shouldReplaceAmmo", false); + Scribe_Values.Look(ref ticksToCompleteInitial, "ticksToCompleteInitial", 0); + Scribe_Values.Look(ref ticksToComplete, "ticksToComplete", 0, false); + Scribe_Values.Look(ref isReloading, "isReloading"); + + Scribe_References.Look(ref TargetTurret, "Turret", false); + } + + public override Graphic Graphic + { + get + { + Graphic graphic = null; + if (graphicsExt != null) + { + if (CompAmmoUser.CurMagCount > CompAmmoUser.MagSize * 0.75f) + { + graphic = graphicsExt.fullGraphic?.Graphic; + } + else if (CompAmmoUser.EmptyMagazine) + { + graphic = graphicsExt.emptyGraphic?.Graphic; + } + else + { + graphic = graphicsExt.halfFullGraphic?.Graphic; + } + } + return graphic ?? base.Graphic; + } + } + + public bool CanReplaceAmmo(CompAmmoUser ammoUser) + { + return shouldReplaceAmmo && ammoUser.Props.ammoSet == CompAmmoUser.Props.ammoSet && ammoUser.CurrentAmmo != CompAmmoUser.CurrentAmmo; + } + + public override void SpawnSetup(Map map, bool respawningAfterLoad) + { + base.SpawnSetup(map, respawningAfterLoad); + Map.GetComponent().Register(this); + CompAmmoUser = GetComp(); + + dormantComp = GetComp(); + initiatableComp = GetComp(); + powerComp = GetComp(); + mannableComp = GetComp(); + + graphicsExt = def.GetModExtension(); + if (CompAmmoUser == null) + { + Log.Error(this.GetCustomLabelNoCount() + " Requires CompAmmoUser to function properly."); + } + if (this.def.tickerType != TickerType.Normal) + { + Log.Error(this.GetCustomLabelNoCount() + " Requires normal ticker type to function properly."); + } + if (this.def.drawerType != DrawerType.MapMeshAndRealTime) + { + Log.Error(this.GetCustomLabelNoCount() + " Requires MapMeshAndRealTime drawer type to display progress bar."); + } + } + + public override void DeSpawn(DestroyMode mode = DestroyMode.Vanish) + { + TargetTurret?.SetReloading(false); + Map.GetComponent().Unregister(this); + DropAmmo(mode == DestroyMode.KillFinalize); + base.DeSpawn(mode); + } + + public void DropAmmo(bool forcibly = false) + { + if (CompAmmoUser.EmptyMagazine) + { + return; + } + Thing outThing; + Thing ammoThing = ThingMaker.MakeThing(CompAmmoUser.CurrentAmmo); + ammoThing.stackCount = CompAmmoUser.CurMagCount; + CompAmmoUser.CurMagCount = 0; + if (!GenThing.TryDropAndSetForbidden(ammoThing, Position, Map, ThingPlaceMode.Near, out outThing, Faction != Faction.OfPlayer)) + { + Log.Warning(String.Concat(GetType().Assembly.GetName().Name + " :: " + GetType().Name + " :: ", "Unable to drop ", ammoThing.LabelCap, " on the ground, thing was destroyed.")); + } + if (forcibly) + { + DamageInfo dinfo = new DamageInfo(DamageDefOf.Bullet, Rand.Range(0, 100)); + ammoThing.TakeDamage(dinfo); + } + Notify_ColorChanged(); + } + + public override IEnumerable GetGizmos() + { + foreach (Gizmo gizmo in base.GetGizmos()) + { + yield return gizmo; + } + // Ammo gizmos + if (CompAmmoUser != null && (Faction == Faction.OfPlayer || Prefs.DevMode)) + { + GizmoAmmoStatus ammoStatusGizmo = new GizmoAmmoStatus { compAmmo = CompAmmoUser }; + yield return ammoStatusGizmo; + + Command_Reload reloadCommandGizmo = new Command_Reload + { + compAmmo = CompAmmoUser, + action = null, + defaultLabel = CompAmmoUser.HasMagazine ? (string)"CE_ReloadLabel".Translate() : "", + defaultDesc = "CE_ReloadDesc".Translate(), + icon = CompAmmoUser.CurrentAmmo == null ? ContentFinder.Get("UI/Buttons/Reload", true) : CompAmmoUser.SelectedAmmo.IconTexture(), + tutorTag = "CE_AutoLoader" + }; + yield return reloadCommandGizmo; + + // God mode gizmos for emptying and filling the magazine + if (DebugSettings.godMode) + { + Command_Action devSetAmmoToMinCommandGizmo = new Command_Action + { + action = delegate { CompAmmoUser.CurMagCount = 0; Notify_ColorChanged(); }, + defaultLabel = "DEV: Set ammo to 0" + }; + yield return devSetAmmoToMinCommandGizmo; + + Command_Action devSetAmmoToMaxCommandGizmo = new Command_Action + { + action = delegate { CompAmmoUser.CurrentAmmo = CompAmmoUser.SelectedAmmo; CompAmmoUser.CurMagCount = CompAmmoUser.MagSize; Notify_ColorChanged(); }, + defaultLabel = "DEV: Set ammo to max" + }; + yield return devSetAmmoToMaxCommandGizmo; + + Command_Action devSetAmmoPlusOneCommandGizmo = new Command_Action + { + action = delegate { CompAmmoUser.CurrentAmmo = CompAmmoUser.SelectedAmmo; CompAmmoUser.CurMagCount += 1; Notify_ColorChanged(); }, + defaultLabel = "DEV: Ammo +1" + }; + yield return devSetAmmoPlusOneCommandGizmo; + } + + //drop all + if (!CompAmmoUser.EmptyMagazine) + { + Command_Action drop = new Command_Action(); + drop.defaultLabel = "CE_AutoLoader_DropAmmo".Translate(); + drop.defaultDesc = "CE_AutoLoader_DropAmmoDesc".Translate(); + drop.icon = ContentFinder.Get("UI/Buttons/CE_AutoLoader_Drop", true); + drop.action = delegate + { + DropAmmo(); + }; + yield return drop; + + //forced reload + Command_Action reload = new Command_Action(); + reload.defaultLabel = "CE_AutoLoader_ForceReload".Translate(); + reload.defaultDesc = "CE_AutoLoader_ForceReloadDesc".Translate(); + reload.icon = ContentFinder.Get("UI/Buttons/CE_AutoLoader_Reload", true); + reload.action = delegate + { + List adjThings = new List(); + GenAdjFast.AdjacentThings8Way(this, adjThings); + bool success = false; + foreach (Thing building in adjThings) + { + if (building is Building_TurretGunCE turret && StartReload(turret.GetAmmo())) + { + success = true; + break; + } + } + if (!success) + { + Messages.Message(string.Format("CE_AutoLoader_NoTurretToReload".Translate(), Label, CompAmmoUser.Props.ammoSet.label), this, MessageTypeDefOf.RejectInput, historical: false); + } + }; + yield return reload; + } + + Command_Action toggleShouldReplace = new Command_Action(); + toggleShouldReplace.defaultLabel = shouldReplaceAmmo ? "CE_AutoLoader_ToggleReplaceOn".Translate() : "CE_AutoLoader_ToggleReplaceOff".Translate(); + toggleShouldReplace.defaultDesc = shouldReplaceAmmo ? "CE_AutoLoader_ToggleReplaceDescOn".Translate() : "CE_AutoLoader_ToggleReplaceDescOff".Translate(); + toggleShouldReplace.icon = shouldReplaceAmmo ? ContentFinder.Get("UI/Buttons/CE_AutoLoader_ReplaceOn", true) : ContentFinder.Get("UI/Buttons/CE_AutoLoader_ReplaceOff", true); + toggleShouldReplace.action = delegate + { + shouldReplaceAmmo = !shouldReplaceAmmo; + }; + yield return toggleShouldReplace; + } + } + + public override void Tick() + { + base.Tick(); + if (isActive && shouldBeOn) + { + if (!TargetTurret.Spawned || TargetTurret.IsForbidden(Faction) || CompAmmoUser.EmptyMagazine) + { + TargetTurret?.SetReloading(false); + TargetTurret = null; + ticksToCompleteInitial = 0; + } + + ticksToComplete--; + + if (reloadingSustainer == null) + { + reloadingSustainer = (graphicsExt?.reloadingSustainer ?? CE_SoundDefOf.CE_AutoLoaderAmbient).TrySpawnSustainer(SoundInfo.InMap(this)); + } + reloadingSustainer.Maintain(); + + if (ticksToComplete == 0) + { + ticksToCompleteInitial = 0; + (graphicsExt?.reloadCompleteSound ?? TargetAmmoUser.parent.def.soundInteract).PlayOneShot(this); + ReloadFinalize(); + Notify_ColorChanged(); + } + } + else if (reloadingSustainer != null) + { + reloadingSustainer.End(); + reloadingSustainer = null; + } + + } + + public override void Draw() + { + base.Draw(); + if (isActive) + { + GenDraw.FillableBarRequest r = default(GenDraw.FillableBarRequest); + r.center = DrawPos + Vector3.up * 0.1f; + r.size = new Vector2(1f, 0.14f); + r.fillPercent = 1 - (ticksToComplete / (float)ticksToCompleteInitial); + r.filledMat = FilledMat; + r.unfilledMat = UnfilledMat; + r.margin = 0.12f; + GenDraw.DrawFillableBar(r); + } + } + + + public override string GetInspectString() + { + StringBuilder stringBuilder = new StringBuilder(); + string inspectString = base.GetInspectString(); + if (!inspectString.NullOrEmpty()) + { + stringBuilder.AppendLine(inspectString); + } + if (isActive) + { + stringBuilder.AppendLine("CE_AutoLoader_ReloadTime".Translate(ticksToComplete.TicksToSeconds().ToString("F0"))); + } + stringBuilder.AppendLine("CE_AutoLoader_ShouldReplace".Translate(shouldReplaceAmmo.ToString())); + return stringBuilder.ToString().TrimEndNewlines(); + } + + public bool TryActiveReload() + { + List adjThings = new List(); + GenAdjFast.AdjacentThings8Way(this, adjThings); + + foreach (Thing building in adjThings) + { + if (building is Building_TurretGunCE turret && (turret.GetAmmo().EmptyMagazine || turret.currentTargetInt == LocalTargetInfo.Invalid) && StartReload(turret.GetAmmo())) + { + return true; + } + } + return false; + } + + public bool StartReload(CompAmmoUser TurretMagazine, bool continued = false) + { + Building_Turret turret = TurretMagazine.turret; + + //If turret is unable to be reloaded + if (!turret.Spawned || turret.IsForbidden(Faction) || turret.GetReloading()) + { + return false; + } + + //If the ammo container is unable to reload turret + if ((isActive && !continued) || CompAmmoUser.EmptyMagazine || !shouldBeOn) + { + return false; + } + + //if this is the right turret to reload + if (graphicsExt != null) + { + //if def exists and match + bool tagMatch = graphicsExt.allowedTurrets.Any() && graphicsExt.allowedTurrets.Contains(turret.def.defName); + + //if tag exists and match + if (!tagMatch && graphicsExt.allowedTurretTags.Any()) + { + foreach (string loadertag in graphicsExt.allowedTurretTags) + { + if (turret.def.building.buildingTags.NotNullAndContains(loadertag)) + { + tagMatch = true; + break; + } + } + } + + if (!tagMatch) + { + return false; + } + } + + bool canReplaceAmmo = CanReplaceAmmo(TurretMagazine); + + if ((TurretMagazine.FullMagazine && !canReplaceAmmo)) + { + return false; + } + + if (TurretMagazine.CurrentAmmo == CompAmmoUser.CurrentAmmo || canReplaceAmmo) + { + TargetTurret = TurretMagazine.turret; + ticksToComplete = Mathf.CeilToInt(TurretMagazine.Props.reloadTime.SecondsToTicks() / this.GetStatValue(CE_StatDefOf.ReloadSpeed)); + ticksToCompleteInitial = ticksToComplete; + turret.SetReloading(true); + return true; + } + + return false; + } + + public bool ReloadFinalize() + { + if (TargetAmmoUser.CurrentAmmo != CompAmmoUser.CurrentAmmo) + { + TargetAmmoUser.TryUnload(); + TargetAmmoUser.SelectedAmmo = CompAmmoUser.CurrentAmmo; + TargetAmmoUser.CurrentAmmo = CompAmmoUser.CurrentAmmo; + } + if (TargetAmmoUser.Props.reloadOneAtATime) + { + TargetAmmoUser.CurMagCount++; + CompAmmoUser.CurMagCount--; + if (StartReload(TargetAmmoUser, true)) + { + return true; + } + } + else + { + int ammoCount = Mathf.Min(CompAmmoUser.CurMagCount, TargetAmmoUser.MissingToFullMagazine); + TargetAmmoUser.CurMagCount += ammoCount; + CompAmmoUser.CurMagCount -= ammoCount; + }; + TargetTurret.SetReloading(false); + TargetTurret = null; + TryActiveReload(); + return true; + } + } +} diff --git a/Source/CombatExtended/CombatExtended/Building_AmmoContainerCE/JobDriver_ReloadAutoLoader.cs b/Source/CombatExtended/CombatExtended/Building_AmmoContainerCE/JobDriver_ReloadAutoLoader.cs new file mode 100644 index 0000000000..d32862170f --- /dev/null +++ b/Source/CombatExtended/CombatExtended/Building_AmmoContainerCE/JobDriver_ReloadAutoLoader.cs @@ -0,0 +1,198 @@ +using System.Collections.Generic; +using CombatExtended.CombatExtended.LoggerUtils; +using RimWorld; +using UnityEngine; +using Verse; +using Verse.AI; +using CombatExtended.Compatibility; + + +namespace CombatExtended +{ + public class JobDriver_ReloadAutoLoader : JobDriver + { + #region Fields + private CompAmmoUser _compReloader; + #endregion Fields + + #region Properties + private string errorBase => this.GetType().Assembly.GetName().Name + " :: " + this.GetType().Name + " :: "; + + private Building_AutoloaderCE AutoLoader => TargetThingA as Building_AutoloaderCE; + private AmmoThing ammo => TargetThingB as AmmoThing; + + private CompAmmoUser AmmoUser + { + get + { + if (_compReloader == null && AutoLoader != null) + { + _compReloader = AutoLoader.CompAmmoUser; + } + return _compReloader; + } + } + #endregion + + #region Methods + + public override bool TryMakePreToilReservations(bool errorOnFailed) + { + if (!pawn.Reserve(TargetA, job)) + { + CELogger.Message("Combat Extended: Could not reserve ammo container for reloading job."); + return false; + } + + var compAmmo = AutoLoader?.CompAmmoUser; + + if (compAmmo == null) + { + CELogger.Error($"{TargetA} has no CompAmmo, this should not have been reached."); + return false; + } + + if (!compAmmo.UseAmmo) + { + return true; + } + + if (ammo == null) + { + CELogger.Message("Combat Extended: Ammo is null"); + return false; + } + if (!pawn.Reserve(TargetB, job, Mathf.Max(1, TargetThingB.stackCount - job.count), job.count)) + { + CELogger.Message("Combat Extended: Could not reserve " + Mathf.Max(1, TargetThingB.stackCount - job.count) + " of ammo."); + return false; + } + CELogger.Message("Combat Extended: Managed to reserve everything successfully."); + return true; + } + + public override IEnumerable MakeNewToils() + { + // Error checking/input validation. + if (AutoLoader == null) + { + Log.Error(string.Concat(errorBase, "TargetThingA isn't a Building_AutoLoaderCE")); + yield return null; + } + if (AmmoUser == null) + { + Log.Error(string.Concat(errorBase, "TargetThingA (Building_AutoLoaderCE) is missing its CompAmmoUser.")); + yield return null; + } + if (AmmoUser.UseAmmo && ammo == null) + { + Log.Error(string.Concat(errorBase, "TargetThingB is either null or not an AmmoThing.")); + yield return null; + } + + AddEndCondition(delegate + { + return (pawn.Downed || pawn.Dead || pawn.InMentalState || pawn.IsBurning()) ? JobCondition.Incompletable : JobCondition.Ongoing; + }); + + this.FailOnIncapable(PawnCapacityDefOf.Manipulation); + + // Set fail condition on turret. + if (pawn.Faction != Faction.OfPlayer) + { + this.FailOnDestroyedOrNull(TargetIndex.A); + } + else + { + this.FailOnDestroyedNullOrForbidden(TargetIndex.A); + } + + // If someone else magically reloaded our turret while we were reloading, fail. + // This happens when Project RimFactory's refueling machine is set up. + this.FailOn(() => AmmoUser.MissingToFullMagazine == 0); + + // Perform ammo system specific activities, failure condition and hauling + if (AmmoUser.UseAmmo) + { + var toilGoToCell = Toils_Goto.GotoCell(ammo.Position, PathEndMode.Touch).FailOnBurningImmobile(TargetIndex.B); + var toilCarryThing = Toils_Haul.StartCarryThing(TargetIndex.B).FailOnBurningImmobile(TargetIndex.B); + + if (TargetThingB is AmmoThing) + { + toilGoToCell.AddEndCondition(delegate + { + return (TargetThingB as AmmoThing).IsCookingOff ? JobCondition.Incompletable : JobCondition.Ongoing; + }); + toilCarryThing.AddEndCondition(delegate + { + return (TargetThingB as AmmoThing).IsCookingOff ? JobCondition.Incompletable : JobCondition.Ongoing; + }); + } + + if (pawn.Faction != Faction.OfPlayer) + { + ammo.SetForbidden(true, false); + toilGoToCell.FailOnDestroyedOrNull(TargetIndex.B); + toilCarryThing.FailOnDestroyedOrNull(TargetIndex.B); + } + else + { + toilGoToCell.FailOnDestroyedNullOrForbidden(TargetIndex.B); + toilCarryThing.FailOnDestroyedNullOrForbidden(TargetIndex.B); + } + + //yield return Toils_Reserve.Reserve(TargetIndex.B, Mathf.Max(1, TargetThingB.stackCount - job.count), job.count); + yield return toilGoToCell; + yield return toilCarryThing; + //yield return Toils_Haul.PlaceHauledThingInCell(TargetIndex.A, null, false); + } + + // If ammo system is turned off we just need to go to the turret. + yield return Toils_Goto.GotoCell(AutoLoader.Position, PathEndMode.Touch); + + //If pawn fails reloading from this point, reset isReloading + this.AddFinishAction(delegate + { + AutoLoader.isReloading = false; + }); + + // Wait in place + Toil waitToil = new Toil() + { + actor = pawn + }; + waitToil.initAction = delegate + { + // Initial relaod process activities. + AutoLoader.isReloading = true; + waitToil.actor.pather.StopDead(); + if (AmmoUser.ShouldThrowMote) + { + MoteMakerCE.ThrowText(AutoLoader.Position.ToVector3Shifted(), AutoLoader.Map, string.Format("CE_ReloadingTurretMote".Translate(), TargetThingA.LabelCapNoCount)); + } + AmmoDef currentAmmo = AmmoUser.CurrentAmmo; + if (currentAmmo != ammo?.def) //Turrets are reloaded without unloading the mag first (if using same ammo type), to support very high capacity magazines + { + AutoLoader.DropAmmo(); + } + }; + waitToil.defaultCompleteMode = ToilCompleteMode.Delay; + waitToil.defaultDuration = Mathf.CeilToInt(AmmoUser.Props.reloadTime.SecondsToTicks() / pawn.GetStatValue(CE_StatDefOf.ReloadSpeed)); + yield return waitToil.WithProgressBarToilDelay(TargetIndex.A); + + //Actual reloader + Toil reloadToil = new Toil(); + reloadToil.defaultCompleteMode = ToilCompleteMode.Instant; + reloadToil.initAction = delegate + { + + AmmoUser.LoadAmmo(ammo); + AutoLoader.isReloading = false; + AutoLoader.Notify_ColorChanged(); + }; + //if (compReloader.useAmmo) reloadToil.EndOnDespawnedOrNull(TargetIndex.B); + yield return reloadToil; + } + #endregion Methods + } +} diff --git a/Source/CombatExtended/CombatExtended/Building_AmmoContainerCE/ModExtension_AutoLoaderGraphics.cs b/Source/CombatExtended/CombatExtended/Building_AmmoContainerCE/ModExtension_AutoLoaderGraphics.cs new file mode 100644 index 0000000000..00768935d7 --- /dev/null +++ b/Source/CombatExtended/CombatExtended/Building_AmmoContainerCE/ModExtension_AutoLoaderGraphics.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using RimWorld; +using Verse.AI; +using Verse; + +namespace CombatExtended +{ + public class ModExtension_AutoLoaderGraphics : DefModExtension + { + public GraphicData fullGraphic; + public GraphicData halfFullGraphic; + public GraphicData emptyGraphic; + + public SoundDef reloadingSustainer; + + public SoundDef reloadCompleteSound; + + public List allowedTurrets = new List(); + + public List allowedTurretTags = new List(); + } +} diff --git a/Source/CombatExtended/CombatExtended/Building_AmmoContainerCE/WorkGiver_ReloadAutoLoader.cs b/Source/CombatExtended/CombatExtended/Building_AmmoContainerCE/WorkGiver_ReloadAutoLoader.cs new file mode 100644 index 0000000000..de7b4642f2 --- /dev/null +++ b/Source/CombatExtended/CombatExtended/Building_AmmoContainerCE/WorkGiver_ReloadAutoLoader.cs @@ -0,0 +1,126 @@ +using System.Collections.Generic; +using RimWorld; +using Verse; +using Verse.AI; +using CombatExtended; +using CombatExtended.CombatExtended.LoggerUtils; +using CombatExtended.CombatExtended.Jobs.Utils; +using CombatExtended.Compatibility; + + +namespace CombatExtended +{ + public class WorkGiver_ReloadAutoLoader : WorkGiver_Scanner + { + public override IEnumerable PotentialWorkThingsGlobal(Pawn pawn) => pawn.Map.GetComponent().AutoLoaders; + + public override float GetPriority(Pawn pawn, TargetInfo t) => GetThingPriority(pawn, t.Thing); + + private float GetThingPriority(Pawn pawn, Thing t, bool forced = false) + { + Building_AutoloaderCE autoloader = t as Building_AutoloaderCE; + + if (!autoloader.CompAmmoUser.EmptyMagazine || autoloader.isActive) + { + return 9f; + } + return 1f; + } + + public override bool ShouldSkip(Pawn pawn, bool forced = false) + { + if (forced) + { + return false; + } + if (pawn.CurJob == null) + { + return false; + } + if (pawn.CurJobDef == JobDefOf.ManTurret) + { + return false; + } + if (pawn.CurJob.playerForced) + { + return true; + } + return (pawn.CurJobDef == CE_JobDefOf.ReloadTurret || pawn.CurJobDef == CE_JobDefOf.ReloadWeapon); + } + + public override bool HasJobOnThing(Pawn pawn, Thing t, bool forced = false) + { + Building_AutoloaderCE AutoLoader = t as Building_AutoloaderCE; + + var priority = GetThingPriority(pawn, t, forced); + + var ammo = AutoLoader.CompAmmoUser; + + if (AutoLoader.isReloading || AutoLoader.isActive) + { + JobFailReason.Is("CE_AutoLoaderBusy".Translate()); + return false; + } + + return CanReload(pawn, AutoLoader, forced); + } + + public override Job JobOnThing(Pawn pawn, Thing t, bool forced = false) + { + Building_AutoloaderCE AutoLoader = t as Building_AutoloaderCE; + + return JobGiverUtils_Reload.MakeReloadJob(pawn, AutoLoader); + } + + public static bool CanReload(Pawn pawn, Thing thing, bool forced = false, bool emergency = false) + { + if (pawn == null || thing == null) + { + CELogger.Warn($"{pawn?.ToString() ?? "null pawn"} could not reload {thing?.ToString() ?? "null thing"} one of the two was null."); + return false; + } + + if (!(thing is Building_AutoloaderCE AutoLoader)) + { + CELogger.Warn($"{pawn} could not reload {thing} because {thing} is not a Building_AutoLoaderCE. If you are a modder, make sure to use {nameof(CombatExtended)}.{nameof(Building_TurretGunCE)} for your turret's compClass."); + return false; + } + var compAmmo = AutoLoader.CompAmmoUser; + + if (compAmmo == null) + { + CELogger.Warn($"{pawn} could not reload {AutoLoader} because Building_AutoLoaderCE has no {nameof(CompAmmoUser)}."); + return false; + } + if (AutoLoader.IsBurning() && !emergency) + { + CELogger.Message($"{pawn} could not reload {AutoLoader} because Building_AutoLoaderCE is on fire."); + JobFailReason.Is("CE_TurretIsBurning".Translate()); + return false; + } + if (compAmmo.FullMagazine) + { + CELogger.Message($"{pawn} could not reload {AutoLoader} because it is full of ammo."); + JobFailReason.Is("CE_TurretFull".Translate()); + return false; + } + if (AutoLoader.IsForbidden(pawn) || !pawn.CanReserve(AutoLoader, 1, -1, null, forced)) + { + CELogger.Message($"{pawn} could not reload {AutoLoader} because it is forbidden or otherwise busy."); + return false; + } + if (AutoLoader.Faction != pawn.Faction && pawn.Faction != null && AutoLoader.Faction?.RelationKindWith(pawn.Faction) != FactionRelationKind.Ally) + { + CELogger.Message($"{pawn} could not reload {AutoLoader} because the Building_AutoLoaderCE is unclaimed or hostile to them."); + JobFailReason.Is("CE_TurretNonAllied".Translate()); + return false; + } + if (compAmmo.UseAmmo && JobGiverUtils_Reload.FindBestAmmo(pawn, AutoLoader) == null) + { + JobFailReason.Is("CE_NoAmmoAvailable".Translate()); + return false; + } + return true; + } + } +} diff --git a/Source/CombatExtended/CombatExtended/CE_DebugTooltipHelper.cs b/Source/CombatExtended/CombatExtended/CE_DebugTooltipHelper.cs index 89d4f95301..c2d9e66351 100644 --- a/Source/CombatExtended/CombatExtended/CE_DebugTooltipHelper.cs +++ b/Source/CombatExtended/CombatExtended/CE_DebugTooltipHelper.cs @@ -25,7 +25,17 @@ static CE_DebugTooltipHelper() var functions = typeof(CE_DebugTooltipHelper).Assembly .GetTypes() .SelectMany(t => t.GetMethods(AccessTools.all)) - .Where(m => m.HasAttribute() && m.IsStatic); + .Where(m => + { + try + { + return m.HasAttribute() && m.IsStatic; + } + catch (System.Reflection.TargetInvocationException) + { + return false; + } + }); foreach (MethodBase m in functions) { CE_DebugTooltip attribute = m.TryGetAttribute(); diff --git a/Source/CombatExtended/CombatExtended/CE_Utility.cs b/Source/CombatExtended/CombatExtended/CE_Utility.cs index b4b9af0c63..3ea3f66719 100644 --- a/Source/CombatExtended/CombatExtended/CE_Utility.cs +++ b/Source/CombatExtended/CombatExtended/CE_Utility.cs @@ -733,35 +733,149 @@ public static Thing GetWeaponFromLauncher(Thing launcher) } */ + /// + /// A copy of the same function in Rimworld.EquipmentUtility, except changing requirement to Verb. + /// + /// + + private static readonly SimpleCurve RecoilCurveAxisY = new SimpleCurve + { + new CurvePoint(0f, 0f), + new CurvePoint(1f, 0.05f), + new CurvePoint(2f, 0.075f) + }; + + private static readonly SimpleCurve RecoilCurveRotation = new SimpleCurve + { + new CurvePoint(0f, 0f), + new CurvePoint(1f, 3f), + new CurvePoint(2f, 4f) + }; + + const float RecoilMagicNumber = 2.6f; + const float MuzzleRiseMagicNumber = 0.1f; + + public static void Recoil(ThingDef weaponDef, Verb shootVerb, out Vector3 drawOffset, out float angleOffset, float aimAngle, bool handheld) + { + drawOffset = Vector3.zero; + angleOffset = 0f; + if (shootVerb == null || shootVerb.IsMeleeAttack) + { + return; + } + float recoil = ((VerbPropertiesCE)weaponDef.verbs[0]).recoilAmount; + + float recoilRelaxation = weaponDef.verbs[0].burstShotCount > 1 ? weaponDef.verbs[0].ticksBetweenBurstShots : weaponDef.GetStatValueDef(StatDefOf.RangedWeapon_Cooldown) * 20f; + + recoil = Math.Min(recoil * recoil, 20) * RecoilMagicNumber * Mathf.Clamp((float)Math.Log10(recoilRelaxation), 0.1f, 10); + + //Prevents recoil for something with absurd ROF, it's too fast for any meaningful recoil animation + if (recoilRelaxation < 2) + { + return; + } + + Rand.PushState(shootVerb.LastShotTick); + try + { + float muzzleJumpModifier = 10 * (float)Math.Log10(recoil) + 3; + GunDrawExtension recoilAdjustExtension = weaponDef.GetModExtension(); + if (recoilAdjustExtension != null) + { + recoil *= recoilAdjustExtension.recoilModifier; + recoilRelaxation = recoilAdjustExtension.recoilTick > 0 ? recoilAdjustExtension.recoilTick : recoilRelaxation; + recoil = recoilAdjustExtension.recoilScale > 0 ? recoilAdjustExtension.recoilScale : recoil; + muzzleJumpModifier *= recoilAdjustExtension.muzzleJumpModifier > 0 ? recoilAdjustExtension.muzzleJumpModifier : 1; + } + + if (recoil <= 0) { return; } + + if (handheld) + { + if (weaponDef.weaponTags.Contains("CE_OneHandedWeapon")) + { + recoil /= 3; + muzzleJumpModifier *= 1.5f; + } + else + { + recoil /= 1.3f; + } + if (recoil > 15) + { + recoil = 15; + } + } + + int num = Find.TickManager.TicksGame - shootVerb.LastShotTick; + if (num < recoilRelaxation) + { + float num2 = Mathf.Clamp01(num / recoilRelaxation); + float num3 = Mathf.Lerp(recoil, 0f, num2); + drawOffset = new Vector3(0f, 0f, 0f - RecoilCurveAxisY.Evaluate(num2)) * num3; + angleOffset = (handheld ? -1 : Rand.Sign) * RecoilCurveRotation.Evaluate(num2) * num3 * MuzzleRiseMagicNumber * muzzleJumpModifier; + drawOffset = drawOffset.RotatedBy(aimAngle); + aimAngle += angleOffset; + } + } + finally + { + Rand.PopState(); + } + } #endregion Misc #region MoteThrower - public static void ThrowEmptyCasing(Vector3 loc, Map map, FleckDef casingFleckDef, float size = 1f) + public static void GenerateAmmoCasings(ProjectilePropertiesCE projProps, Vector3 drawPosition, Map map, float shotRotation = -180f, float recoilAmount = 2f, bool fromPawn = false, float casingAngleOffset = 0) { - if (!Controller.settings.ShowCasings || !loc.ShouldSpawnMotesAt(map) || map.moteCounter.SaturatedLowPriority) + if (projProps.dropsCasings) { - return; + if (Controller.settings.ShowCasings) + { + ThrowEmptyCasing(drawPosition, map, DefDatabase.GetNamed(projProps.casingMoteDefname), recoilAmount, shotRotation, 1f, fromPawn, casingAngleOffset); + } + if (Controller.settings.CreateCasingsFilth) + { + MakeCasingFilth(drawPosition.ToIntVec3(), map, DefDatabase.GetNamed(projProps.casingFilthDefname)); + } } + } + + 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) + { + return; + } + if (recoilAmount <= 0) + { + recoilAmount = 1; //avoid division errors in case of guns without recoil + } 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.rotation = Rand.Range(-3f, 4f); creationData.spawnPosition = loc; - creationData.velocitySpeed = Rand.Range(0.7f, 0.5f); - creationData.velocityAngle = Rand.Range(160, 200); - creationData.rotationRate = (float)Rand.Range(-300, 300); + 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 + 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(); } public static void MakeCasingFilth(IntVec3 position, Map map, ThingDef casingFilthDef) { - if (!Controller.settings.CreateCasingsFilth) - { - return; - } Rand.PushState(); float makeFilthChance = Rand.Range(0f, 1f); if (makeFilthChance > 0.9f && position.Walkable(map)) @@ -865,6 +979,51 @@ public static float GetCollisionWidth(Thing thing) return 1f; //Buildings, etc. fill out a full square } + /// + /// Calculates whether a line segment intercepts a radius circle. Used to get intersection points. + /// + /// The first point of the line segment + /// The second point of the line segment + /// The center of the circle + /// The radius of the circle + /// Vector3[] { Vector3.zero, Vector3.zero } if there's no intersection, othrewise returns two intersection points + public static bool IntersectionPoint(Vector3 p1, Vector3 p2, Vector3 center, float radius, out Vector3[] sect) + { + sect = new Vector3[2]; + float radSq = radius * radius; + + // Obtain local coords. Our virtual center is now 0,0,0 + Vector3 lp1 = p1 - center; + Vector3 lp2 = p2 - center; + + // If we obviously don't cross, early out. + if (lp1.sqrMagnitude < radSq && lp2.sqrMagnitude < radSq) + { + return false; + } + + // direction vector + Vector3 direction = lp2 - lp1; + + float a = direction.sqrMagnitude; + float b = 2 * (direction.x * lp1.x + direction.y * lp1.y + direction.z * lp1.z); + float c = lp1.sqrMagnitude - radSq; + + float det = b * b - 4 * a * c; //b²-4ac + if (a < float.Epsilon || det < 0) // origin and destination are the same, or the determinate is negative + { + // line does not intersect + return false; + } + // det is 0 or higher. So the roots are -b ± √(det) / 2a + var sqrtdet = Mathf.Sqrt(det); + float mu1 = (-b + sqrtdet) / (2 * a); + float mu2 = (-b - sqrtdet) / (2 * a); + sect[0] = new Vector3(p1.x + mu1 * direction.x, p1.y + mu1 * direction.y, p1.z + mu1 * direction.z); + sect[1] = new Vector3(p1.x + mu2 * direction.x, p1.y + mu2 * direction.y, p1.z + mu2 * direction.z); + + return true; + } /// /// Calculates body scale factors based on body type /// diff --git a/Source/CombatExtended/CombatExtended/Comps/CompAmmoUser.cs b/Source/CombatExtended/CombatExtended/Comps/CompAmmoUser.cs index bbd579ff43..1a13c15d15 100644 --- a/Source/CombatExtended/CombatExtended/Comps/CompAmmoUser.cs +++ b/Source/CombatExtended/CombatExtended/Comps/CompAmmoUser.cs @@ -130,7 +130,7 @@ public Pawn Holder { get { - return Wielder ?? (CompEquippable.parent.ParentHolder as Pawn_InventoryTracker)?.pawn; + return Wielder ?? (CompEquippable?.parent.ParentHolder as Pawn_InventoryTracker)?.pawn; } } public bool UseAmmo @@ -648,6 +648,17 @@ private void DoOutOfAmmoAction() } } CompInventory?.SwitchToNextViableWeapon(!this.parent.def.weaponTags.Contains("NoSwitch"), !Holder.IsColonist, stopJob: false); + CompAffectedByFacilities compAffectedByFacilities = turret?.TryGetComp(); + if (compAffectedByFacilities != null) + { + foreach (Thing building in compAffectedByFacilities.linkedFacilities) + { + if (building is Building_AutoloaderCE container && container.StartReload(this)) + { + break; + } + } + } } public bool TryPickupAmmo() @@ -697,12 +708,17 @@ public bool TryPickupAmmo() public void LoadAmmo(Thing ammo = null) { - if (Holder == null && turret == null) + Building_AutoloaderCE AutoLoader = null; + if (parent is Building_AutoloaderCE) + { + AutoLoader = parent as Building_AutoloaderCE; + } + + if (Holder == null && turret == null && AutoLoader == null) { Log.Error(parent.ToString() + " tried loading ammo with no owner"); return; } - int newMagCount; if (UseAmmo) { @@ -738,12 +754,11 @@ public void LoadAmmo(Thing ammo = null) ammoThing.stackCount -= MagAmmoCount; } } - // If there's less ammo in inventory than the weapon can hold, or if there's only one bullet left if reloading one at a time else { - int newAmmoCount = ammoThing.stackCount * CurAmmoCount; - if (turret != null) //Turrets are reloaded without unloading the mag first (if using same ammo type), to support very high capacity magazines + int newAmmoCount = ammoThing.stackCount; + if (turret != null || AutoLoader != null) //Turrets are reloaded without unloading the mag first (if using same ammo type), to support very high capacity magazines { newAmmoCount += curMagCountInt; } @@ -767,6 +782,10 @@ public void LoadAmmo(Thing ammo = null) { turret.SetReloading(false); } + if (AutoLoader != null) + { + AutoLoader.isReloading = false; + } if (parent.def.soundInteract != null) { parent.def.soundInteract.PlayOneShot(new TargetInfo(Position, Map, false)); diff --git a/Source/CombatExtended/CombatExtended/Comps/CompArmorDurability.cs b/Source/CombatExtended/CombatExtended/Comps/CompArmorDurability.cs index 4a23164d09..183e800772 100644 --- a/Source/CombatExtended/CombatExtended/Comps/CompArmorDurability.cs +++ b/Source/CombatExtended/CombatExtended/Comps/CompArmorDurability.cs @@ -151,7 +151,14 @@ public override void PostExposeData() public override string CompInspectStringExtra() { - return "Armor durability: " + curDurability.ToString() + "/" + maxDurability.ToString() + " (" + curDurabilityPercent.ToStringPercent() + ")"; + if (maxDurability != 500) + { + return "CE_ArmorDurability".Translate() + curDurability.ToString() + "/" + maxDurability.ToString() + " (" + curDurabilityPercent.ToStringPercent() + ")"; + } + else + { + return null; + } } public override void PostPreApplyDamage(DamageInfo dinfo, out bool absorbed) @@ -193,7 +200,7 @@ public override IEnumerable CompFloatMenuOptions(Pawn selPawn) if (curDurability < maxDurability + durabilityProps.MaxOverHeal && firstIngredientProvidedOrNotNeeded && secondIngredientProvidedOrNotNeeded) { - yield return new FloatMenuOption("Fix natural armor", delegate + yield return new FloatMenuOption("CE_RepairArmorDurability".Translate(), delegate { Thing firstIngredient = null; Thing secondIngredient = null; @@ -213,11 +220,11 @@ public override IEnumerable CompFloatMenuOptions(Pawn selPawn) } else if (this.curDurability >= maxDurability + durabilityProps.MaxOverHeal) { - yield return new FloatMenuOption("Can't repair natural armor, armor is undamaged", null); + yield return new FloatMenuOption("CE_ArmorDurability_CannotRepairUndamaged".Translate(), null); } else { - yield return new FloatMenuOption("Can't repair natural armor, no resources", null); + yield return new FloatMenuOption("CE_ArmorDurability_CannonRepairNoResource".Translate(), null); } } } @@ -374,7 +381,7 @@ public override IEnumerable MakeNewToils() yield return toil; - var toilWait = Toils_General.Wait(natArmor.durabilityProps.RepairTime, TargetIndex.A).WithProgressBarToilDelay(TargetIndex.A); + var toilWait = Toils_General.WaitWith(TargetIndex.A, natArmor.durabilityProps.RepairTime, true, true, true, face: TargetIndex.A); toilWait.AddFinishAction( delegate diff --git a/Source/CombatExtended/CombatExtended/DefOfs/CE_DamageDefOf.cs b/Source/CombatExtended/CombatExtended/DefOfs/CE_DamageDefOf.cs index 4c66c49f22..31d9429e6e 100644 --- a/Source/CombatExtended/CombatExtended/DefOfs/CE_DamageDefOf.cs +++ b/Source/CombatExtended/CombatExtended/DefOfs/CE_DamageDefOf.cs @@ -13,6 +13,7 @@ public class CE_DamageDefOf { public static DamageDef Electrical; public static DamageDef Flame_Secondary; + public static DamageDef Bomb_Secondary; public static DamageDef PrometheumFlame; public static DamageDef Bomb; public static DamageDef EMP; diff --git a/Source/CombatExtended/CombatExtended/DefOfs/CE_FleckDefOf.cs b/Source/CombatExtended/CombatExtended/DefOfs/CE_FleckDefOf.cs index c143b26b6e..994d9ff023 100644 --- a/Source/CombatExtended/CombatExtended/DefOfs/CE_FleckDefOf.cs +++ b/Source/CombatExtended/CombatExtended/DefOfs/CE_FleckDefOf.cs @@ -10,5 +10,14 @@ public class CE_FleckDefOf //public static FleckDef Fleck_SuppressIcon; //public static FleckDef Fleck_HunkerIcon; + + //vanilla defs that didn't have a DefOf + public static FleckDef BlastFlame; + public static FleckDef ElectricalSpark; + //CE defs + public static FleckDef Fleck_HeatGlow_API; + public static FleckDef Fleck_BulletHole; + public static FleckDef Fleck_ElectricGlow_EMP; + public static FleckDef Fleck_SparkThrownFast; } } diff --git a/Source/CombatExtended/CombatExtended/DefOfs/CE_JobDefOf.cs b/Source/CombatExtended/CombatExtended/DefOfs/CE_JobDefOf.cs index 0ee50bdae9..8c52937754 100644 --- a/Source/CombatExtended/CombatExtended/DefOfs/CE_JobDefOf.cs +++ b/Source/CombatExtended/CombatExtended/DefOfs/CE_JobDefOf.cs @@ -14,6 +14,7 @@ public static class CE_JobDefOf public static JobDef TakeFromOther; public static JobDef ReloadWeapon; public static JobDef ReloadTurret; + public static JobDef ReloadAutoLoader; public static JobDef HunkerDown; public static JobDef RunForCover; public static JobDef Stabilize; diff --git a/Source/CombatExtended/CombatExtended/DefOfs/CE_SoundDefOf.cs b/Source/CombatExtended/CombatExtended/DefOfs/CE_SoundDefOf.cs new file mode 100644 index 0000000000..89e256a1aa --- /dev/null +++ b/Source/CombatExtended/CombatExtended/DefOfs/CE_SoundDefOf.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using RimWorld; +using Verse; + +namespace CombatExtended +{ + [DefOf] + public static class CE_SoundDefOf + { + public static SoundDef CE_AutoLoaderAmbient; + + } +} diff --git a/Source/CombatExtended/CombatExtended/Defs/AmmoSetDef.cs b/Source/CombatExtended/CombatExtended/Defs/AmmoSetDef.cs index b3a9f50b1d..31e66a2b42 100644 --- a/Source/CombatExtended/CombatExtended/Defs/AmmoSetDef.cs +++ b/Source/CombatExtended/CombatExtended/Defs/AmmoSetDef.cs @@ -15,5 +15,16 @@ public class AmmoSetDef : Def public bool isMortarAmmoSet = false; public AmmoSetDef similarTo; + + public override IEnumerable SpecialDisplayStats(StatRequest req) + { + foreach (StatDrawEntry entry in base.SpecialDisplayStats(req)) { yield return entry; } + + foreach (AmmoLink link in ammoTypes) + { + + yield return new StatDrawEntry(StatCategoryDefOf.BasicsImportant, link.ammo.label, "", link.projectile.GetProjectileReadout(null), 1, hyperlinks: new List() { new Dialog_InfoCard.Hyperlink(link.ammo) }); + } + } } } diff --git a/Source/CombatExtended/CombatExtended/Defs/DamageDefExtensionCE.cs b/Source/CombatExtended/CombatExtended/Defs/DamageDefExtensionCE.cs index aec2330048..daaf63e4b1 100644 --- a/Source/CombatExtended/CombatExtended/Defs/DamageDefExtensionCE.cs +++ b/Source/CombatExtended/CombatExtended/Defs/DamageDefExtensionCE.cs @@ -13,5 +13,6 @@ public class DamageDefExtensionCE : DefModExtension public bool noDamageOnDeflect = false; public bool harmOnlyOutsideLayers = false; public bool isAmbientDamage = false; + public float worldDamageMultiplier = -1f; } } diff --git a/Source/CombatExtended/CombatExtended/Defs/GunDrawExtension.cs b/Source/CombatExtended/CombatExtended/Defs/GunDrawExtension.cs index ccb65a230f..0ea966afe4 100644 --- a/Source/CombatExtended/CombatExtended/Defs/GunDrawExtension.cs +++ b/Source/CombatExtended/CombatExtended/Defs/GunDrawExtension.cs @@ -7,5 +7,14 @@ public class GunDrawExtension : DefModExtension { public Vector2 DrawSize = Vector2.one; public Vector2 DrawOffset = Vector2.zero; + + public float recoilModifier = 1; + public float recoilScale = -1; + public int recoilTick = -1; + public float muzzleJumpModifier = -1; + + public Vector2 CasingOffset = Vector2.zero; + public float CasingAngleOffset = 0; + } } diff --git a/Source/CombatExtended/CombatExtended/FleckMakerCE.cs b/Source/CombatExtended/CombatExtended/FleckMakerCE.cs index b4a8cfc709..2c1c542fed 100644 --- a/Source/CombatExtended/CombatExtended/FleckMakerCE.cs +++ b/Source/CombatExtended/CombatExtended/FleckMakerCE.cs @@ -33,5 +33,12 @@ public static void WaterSplash(Vector3 loc, Map map, float size, float velocity) FleckMaker.WaterSplash(loc, map, size, velocity); Rand.PopState(); } + + public static void ThrowPsycastShieldFleck(Vector3 loc, Map map, float size) + { + Rand.PushState(); + FleckMaker.Static(loc, map, FleckDefOf.PsycastAreaEffect, size); + Rand.PopState(); + } } } diff --git a/Source/CombatExtended/CombatExtended/Gizmos/Command_Reload.cs b/Source/CombatExtended/CombatExtended/Gizmos/Command_Reload.cs index 6c869e1f6a..d8a83d5f0f 100644 --- a/Source/CombatExtended/CombatExtended/Gizmos/Command_Reload.cs +++ b/Source/CombatExtended/CombatExtended/Gizmos/Command_Reload.cs @@ -42,7 +42,7 @@ public override void ProcessInput(Event ev) return; } - if (compAmmo.UseAmmo && (compAmmo.CompInventory != null || compAmmo.turret != null) || action == null) + if (compAmmo.UseAmmo && (compAmmo.CompInventory != null || compAmmo.turret != null || compAmmo.parent is Building_AutoloaderCE) || action == null) { bool currentlyMannedTurret = compAmmo.turret?.GetMannable()?.MannedNow ?? false; if (Controller.settings.RightClickAmmoSelect && action != null && (compAmmo.turret == null || currentlyMannedTurret)) diff --git a/Source/CombatExtended/CombatExtended/Jobs/JobDriver_ReloadTurret.cs b/Source/CombatExtended/CombatExtended/Jobs/JobDriver_ReloadTurret.cs index 67f86a1d9b..4b153eeec6 100644 --- a/Source/CombatExtended/CombatExtended/Jobs/JobDriver_ReloadTurret.cs +++ b/Source/CombatExtended/CombatExtended/Jobs/JobDriver_ReloadTurret.cs @@ -74,17 +74,12 @@ public override bool TryMakePreToilReservations(bool errorOnFailed) public override string GetReport() { string text = CE_JobDefOf.ReloadTurret.reportString; - string turretType = (turret.def.hasInteractionCell ? "CE_MannedTurret" : "CE_AutoTurret").Translate(); + string turretType = (turret.TryGetComp() != null ? "CE_MannedTurret" : "CE_AutoTurret").Translate(); text = text.Replace("TurretType", turretType); text = text.Replace("TargetA", TargetThingA.def.label); - if (compReloader.UseAmmo) - { - text = text.Replace("TargetB", TargetThingB.def.label); - } - else - { - text = text.Replace("TargetB", "CE_ReloadingGenericAmmo".Translate()); - } + text = compReloader.UseAmmo + ? text.Replace("TargetB", TargetThingB.def.label) + : text.Replace("TargetB", "CE_ReloadingGenericAmmo".Translate()); return text; } @@ -165,7 +160,14 @@ public override IEnumerable MakeNewToils() } // If ammo system is turned off we just need to go to the turret. - yield return Toils_Goto.GotoCell(turret.Position, PathEndMode.Touch); + if (turret.InteractionCell != null) + { + yield return Toils_Goto.GotoCell(turret.InteractionCell, PathEndMode.OnCell); + } + else + { + yield return Toils_Goto.GotoThing(TargetIndex.A, PathEndMode.Touch); + } //If pawn fails reloading from this point, reset isReloading this.AddFinishAction(delegate diff --git a/Source/CombatExtended/CombatExtended/Jobs/Utils/JobGiverUtils_Reload.cs b/Source/CombatExtended/CombatExtended/Jobs/Utils/JobGiverUtils_Reload.cs index a45c185fde..70f5faa4a5 100644 --- a/Source/CombatExtended/CombatExtended/Jobs/Utils/JobGiverUtils_Reload.cs +++ b/Source/CombatExtended/CombatExtended/Jobs/Utils/JobGiverUtils_Reload.cs @@ -59,6 +59,34 @@ public static Job MakeReloadJob(Pawn pawn, Building_Turret turret) return job; } + public static Job MakeReloadJob(Pawn pawn, Building_AutoloaderCE AutoLoader) + { + var compAmmo = AutoLoader.CompAmmoUser; + if (compAmmo == null) + { + CELogger.Error($"{pawn} tried to create a reload job on a thing ({AutoLoader}) that's not reloadable."); + return null; + } + + if (!compAmmo.UseAmmo) + { + CELogger.Error($"{pawn} tried to create a reload job on a thing ({AutoLoader}) that's doesn't need ammo."); + return null; + } + + var ammo = FindBestAmmo(pawn, AutoLoader); + if (ammo == null) + { + CELogger.Error($"{pawn} tried to create a reload job without ammo. This should have been checked earlier."); + return null; + } + CELogger.Message($"Making a reload job for {pawn}, {AutoLoader} and {ammo}"); + + Job job = JobMaker.MakeJob(CE_JobDefOf.ReloadAutoLoader, AutoLoader, ammo); + job.count = Mathf.Min(ammo.stackCount, compAmmo.MissingToFullMagazine); + return job; + } + private static Job MakeReloadJobNoAmmo(Building_Turret turret) { var compAmmo = turret.GetAmmo(); @@ -133,6 +161,29 @@ public static bool CanReload(Pawn pawn, Thing thing, bool forced = false, bool e return true; } + public static Thing FindBestAmmo(Pawn pawn, Building_AutoloaderCE AutoLoader) + { + var ammoComp = AutoLoader.CompAmmoUser; + AmmoDef requestedAmmo = ammoComp.SelectedAmmo; + var bestAmmo = FindBestAmmo(pawn, requestedAmmo); // try to find currently selected ammo first + if (bestAmmo == null && ammoComp.EmptyMagazine && requestedAmmo.AmmoSetDefs != null && AutoLoader.Faction != Faction.OfPlayer) + { + //Turret's selected ammo not available, and magazine is empty. Pick a new ammo from the set to load. + foreach (AmmoSetDef set in requestedAmmo.AmmoSetDefs) + { + foreach (AmmoLink link in set.ammoTypes) + { + bestAmmo = FindBestAmmo(pawn, link.ammo); + if (bestAmmo != null) + { + return bestAmmo; + } + } + } + } + return bestAmmo; + } + private static Thing FindBestAmmo(Pawn pawn, Building_Turret turret) { var ammoComp = turret.GetAmmo(); diff --git a/Source/CombatExtended/CombatExtended/Projectiles/ProjectileCE.cs b/Source/CombatExtended/CombatExtended/Projectiles/ProjectileCE.cs index 87b36d30df..40ebae83fd 100644 --- a/Source/CombatExtended/CombatExtended/Projectiles/ProjectileCE.cs +++ b/Source/CombatExtended/CombatExtended/Projectiles/ProjectileCE.cs @@ -170,7 +170,12 @@ public float StartingTicksToImpact { destinationInt = origin; startingTicksToImpactInt = 0f; - ImpactSomething(); + // During drawing in Multiplayer - impact causes issues. Will get handled inside of the `Tick` call. + // In the future, replace this with `!InInterface` call, as it's more fitting here. + if (!Multiplayer.InMultiplayer) + { + ImpactSomething(); + } return 0f; } // Multiplied by ticksPerSecond since the calculated time is actually in seconds. @@ -271,9 +276,9 @@ public override Vector3 DrawPos } private Vector3 lastExactPos = new Vector3(-1000, 0, 0); - private Vector3 LastPos + public Vector3 LastPos { - set + private set { lastExactPos = value; } @@ -644,15 +649,35 @@ public virtual void Launch(Thing launcher, Vector2 origin, Thing equipment = nul #endregion #region Collisions + public virtual void InterceptProjectile(object interceptor, Vector3 impactPosition, bool destroyCompletely = false) + { + ExactPosition = impactPosition; + landed = true; + ticksToImpact = 0; + if (destroyCompletely) + { + this.Destroy(DestroyMode.Vanish); + } + else + { + this.Impact(null); + } + } + public virtual void InterceptProjectile(object interceptor, Vector3 shieldPosition, float shieldRadius, bool destroyCompletely = false) + { + InterceptProjectile(interceptor, BlockerRegistry.GetExactPosition(OriginIV3.ToVector3(), ExactPosition, shieldPosition, shieldRadius * shieldRadius)); + } + private bool CheckIntercept(Thing interceptorThing, CompProjectileInterceptor interceptorComp, bool withDebug = false) { Vector3 shieldPosition = interceptorThing.Position.ToVector3ShiftedWithAltitude(0.5f); float radius = interceptorComp.Props.radius; float blockRadius = radius + def.projectile.SpeedTilesPerTick + 0.1f; + float radiusSq = blockRadius * blockRadius; var newExactPos = ExactPosition; - if ((newExactPos - shieldPosition).sqrMagnitude > Mathf.Pow(blockRadius, 2)) + if ((newExactPos - shieldPosition).sqrMagnitude > radiusSq) { return false; } @@ -675,11 +700,16 @@ private bool CheckIntercept(Thing interceptorThing, CompProjectileInterceptor in { return false; } - if (!interceptorComp.Props.interceptOutgoingProjectiles && (shieldPosition - lastExactPos).sqrMagnitude <= Mathf.Pow((float)radius, 2)) + if (!interceptorComp.Props.interceptOutgoingProjectiles && (shieldPosition - lastExactPos).sqrMagnitude <= radius * radius) { return false; } - if (!IntersectLineSphericalOutline(shieldPosition, radius, lastExactPos, newExactPos)) + if (!CE_Utility.IntersectionPoint(lastExactPos, newExactPos, shieldPosition, radius, out Vector3[] sect)) + { + ExactPosition = newExactPos = sect[0]; + landed = true; + } + else { return false; } @@ -731,23 +761,6 @@ private bool CheckIntercept(Thing interceptorThing, CompProjectileInterceptor in return true; } - private static bool IntersectLineSphericalOutline(Vector3 center, float radius, Vector3 pointA, Vector3 pointB) - { - var pointAInShield = (center - pointA).sqrMagnitude <= Mathf.Pow(radius, 2); - var pointBInShield = (center - pointB).sqrMagnitude <= Mathf.Pow(radius, 2); - - if (pointAInShield && pointBInShield) - { - return false; - } - if (!pointAInShield && !pointBInShield) - { - return false; - } - - return true; - } - //Removed minimum collision distance private bool CheckForCollisionBetween() { @@ -761,10 +774,15 @@ private bool CheckForCollisionBetween() { if (CheckIntercept(list[i], list[i].TryGetComp())) { - this.Destroy(DestroyMode.Vanish); + landed = true; + this.Impact(null); return true; } } + if (BlockerRegistry.CheckForCollisionBetweenCallback(this, LastPos, ExactPosition)) + { + return true; + } #region Sanity checks if (ticksToImpact < 0 || def.projectile.flyOverhead) @@ -823,10 +841,6 @@ private bool CheckCellForCollision(IntVec3 cell) { if (BlockerRegistry.CheckCellForCollisionCallback(this, cell, launcher)) { - this.ticksToImpact = 0; - this.landed = true; - - this.Impact(null); return true; } var roofChecked = false; @@ -872,6 +886,32 @@ private bool CheckCellForCollision(IntVec3 cell) // Check for collision if (thing == intendedTargetThing || def.projectile.alwaysFreeIntercept || thing.Position.DistanceTo(OriginIV3) >= minCollisionDistance) { + if (BlockerRegistry.CheckForCollisionBetweenCallback(this, LastPos, thing.TrueCenter())) + { + return true; + } + var lastPosIV3 = LastPos.ToIntVec3(); + var newPosIV3 = thing.TrueCenter().ToIntVec3(); + // Iterate through all cells between the last and the THING + // INCLUDING[!!!] THE LAST AND NEW POSITIONS! + if (!CanCollideWith(thing, out _)) + { + continue; + } + var cells = GenSight.PointsOnLineOfSight(lastPosIV3, newPosIV3).Union(new[] { lastPosIV3, newPosIV3 }).Distinct().OrderBy(x => (x.ToVector3Shifted() - LastPos).MagnitudeHorizontalSquared()); + foreach (var _cell in cells) + { + bool colided = false; + colided = BlockerRegistry.CheckCellForCollisionCallback(this, _cell, launcher); + if (Controller.settings.DebugDrawInterceptChecks && Map != null) + { + Map.debugDrawer.FlashCell(_cell, 1, "a"); + } + if (colided) + { + return true; + } + } if (TryCollideWith(thing)) { return true; @@ -918,14 +958,9 @@ private bool TryCollideWithRoof(IntVec3 cell) Impact(null); return true; } - - /// - /// Tries to impact the thing based on whether it intersects the given flight path. Trees have RNG chance to not collide even on intersection. - /// - /// What to impact - /// True if impact occured, false otherwise - private bool TryCollideWith(Thing thing) + private bool CanCollideWith(Thing thing, out float dist) { + dist = -1f; if (globalTargetInfo.IsValid) { return false; @@ -936,7 +971,7 @@ private bool TryCollideWith(Thing thing) } var bounds = CE_Utility.GetBoundsFor(thing); - if (!bounds.IntersectRay(ShotLine, out var dist)) + if (!bounds.IntersectRay(ShotLine, out dist)) { return false; } @@ -944,7 +979,20 @@ private bool TryCollideWith(Thing thing) { return false; } + return true; + } + /// + /// Tries to impact the thing based on whether it intersects the given flight path. Trees have RNG chance to not collide even on intersection. + /// + /// What to impact + /// True if impact occured, false otherwise + private bool TryCollideWith(Thing thing) + { + if (!CanCollideWith(thing, out var dist)) + { + return false; + } // Trees and bushes have RNG chance to collide if (thing is Plant) { @@ -976,9 +1024,12 @@ private bool TryCollideWith(Thing thing) } } + if (BlockerRegistry.BeforeCollideWithCallback(this, thing)) + { + return true; + } ExactPosition = point; landed = true; - if (Controller.settings.DebugDrawInterceptChecks) { MoteMakerCE.ThrowText(thing.Position.ToVector3Shifted(), thing.Map, "x", Color.red); @@ -1189,7 +1240,6 @@ public void ImpactSomething() { if (BlockerRegistry.ImpactSomethingCallback(this, launcher)) { - this.Destroy(); return; } var pos = ExactPosition.ToIntVec3(); @@ -1243,14 +1293,13 @@ public virtual void Impact(Thing hitThing) //{ // Find.CameraDriver.shaker.DoShake(cameraShakingInit); //} - if (def.HasModExtension()) + if (Controller.settings.EnableExtraEffects) { - def.GetModExtension()?.ThrowMote(ExactPosition, + ImpactFleckThrower.ThrowFleck(ExactPosition, + Position, Map, - def.projectile.damageDef.explosionCellMote, - def.projectile.damageDef.explosionColorCenter, - def.projectile.damageDef.soundExplosion, - hitThing); + def.projectile as ProjectilePropertiesCE, + def, hitThing, shotRotation); } var ignoredThings = new List(); diff --git a/Source/CombatExtended/CombatExtended/Projectiles/ProjectileCE_Bursting.cs b/Source/CombatExtended/CombatExtended/Projectiles/ProjectileCE_Bursting.cs index 9d02e54cfb..d58a6ebfd5 100644 --- a/Source/CombatExtended/CombatExtended/Projectiles/ProjectileCE_Bursting.cs +++ b/Source/CombatExtended/CombatExtended/Projectiles/ProjectileCE_Bursting.cs @@ -29,6 +29,7 @@ public override void Launch(Thing launcher, Vector2 origin, float shotAngle, flo if (def.projectile is ProjectilePropertiesCE props) { armingDelay = props.armingDelay; + this.castShadow = props.castShadow; } if (distance > 0) { diff --git a/Source/CombatExtended/CombatExtended/Settings.cs b/Source/CombatExtended/CombatExtended/Settings.cs index 33c0f1d18c..954d84dff9 100644 --- a/Source/CombatExtended/CombatExtended/Settings.cs +++ b/Source/CombatExtended/CombatExtended/Settings.cs @@ -19,6 +19,7 @@ public class Settings : ModSettings, ISettingsCE private bool autosetup = true; private bool showCasings = true; private bool createCasingsFilth = true; + private bool recoilAnim = true; private bool showTaunts = true; private bool allowMeleeHunting = false; private bool smokeEffects = true; @@ -28,6 +29,7 @@ public class Settings : ModSettings, ISettingsCE private bool showTacticalVests = true; private bool genericammo = false; private bool partialstats = true; + private bool enableExtraEffects = true; private bool showExtraTooltips = false; @@ -52,6 +54,7 @@ public class Settings : ModSettings, ISettingsCE public bool ShowTacticalVests => showTacticalVests; public bool PartialStat => partialstats; + public bool EnableExtraEffects => enableExtraEffects; public bool ShowExtraTooltips => showExtraTooltips; public bool ShowExtraStats => showExtraStats; @@ -128,6 +131,8 @@ public class Settings : ModSettings, ISettingsCE public bool CreateCasingsFilth => createCasingsFilth; + public bool RecoilAnim => recoilAnim; + #endregion private bool lastAmmoSystemStatus; @@ -139,6 +144,7 @@ public override void ExposeData() base.ExposeData(); Scribe_Values.Look(ref showCasings, "showCasings", true); Scribe_Values.Look(ref createCasingsFilth, "createCasingsFilth", true); + Scribe_Values.Look(ref recoilAnim, "recoilAnim", true); Scribe_Values.Look(ref showTaunts, "showTaunts", true); Scribe_Values.Look(ref allowMeleeHunting, "allowMeleeHunting", false); Scribe_Values.Look(ref smokeEffects, "smokeEffects", true); @@ -147,7 +153,7 @@ public override void ExposeData() Scribe_Values.Look(ref showBackpacks, "showBackpacks", true); Scribe_Values.Look(ref showTacticalVests, "showTacticalVests", true); Scribe_Values.Look(ref partialstats, "PartialArmor", true); - + Scribe_Values.Look(ref enableExtraEffects, "enableExtraEffects", true); Scribe_Values.Look(ref showExtraTooltips, "showExtraTooltips", false); Scribe_Values.Look(ref showExtraStats, "showExtraStats", false); @@ -156,7 +162,7 @@ public override void ExposeData() #if DEBUG // Debug settings Scribe_Values.Look(ref debuggingMode, "debuggingMode", false); - Scribe_Values.Look(ref debugDrawInterceptChecks, "drawPartialLoSChecks", false); + Scribe_Values.Look(ref debugDrawInterceptChecks, "drawInterceptChecks", false); Scribe_Values.Look(ref debugDrawPartialLoSChecks, "drawPartialLoSChecks", false); Scribe_Values.Look(ref debugEnableInventoryValidation, "enableInventoryValidation", false); Scribe_Values.Look(ref debugDrawTargetCoverChecks, "debugDrawTargetCoverChecks", false); @@ -210,6 +216,7 @@ public void DoWindowContents(Rect canvas, ref int offset) list.CheckboxLabeled("CE_Settings_PartialStats_Title".Translate(), ref partialstats, "CE_Settings_PartialStats_Desc".Translate()); list.CheckboxLabeled("CE_Settings_ShowCasings_Title".Translate(), ref showCasings, "CE_Settings_ShowCasings_Desc".Translate()); list.CheckboxLabeled("CE_Settings_СreateCasingsFilth_Title".Translate(), ref createCasingsFilth, "CE_Settings_СreateCasingsFilth_Desc".Translate()); + list.CheckboxLabeled("CE_Settings_RecoilAnim_Title".Translate(), ref recoilAnim, "CE_Settings_RecoilAnim_Desc".Translate()); list.CheckboxLabeled("CE_Settings_ShowTaunts_Title".Translate(), ref showTaunts, "CE_Settings_ShowTaunts_Desc".Translate()); list.CheckboxLabeled("CE_Settings_AllowMeleeHunting_Title".Translate(), ref allowMeleeHunting, "CE_Settings_AllowMeleeHunting_Desc".Translate()); list.CheckboxLabeled("CE_Settings_SmokeEffects_Title".Translate(), ref smokeEffects, "CE_Settings_SmokeEffects_Desc".Translate()); @@ -218,7 +225,7 @@ public void DoWindowContents(Rect canvas, ref int offset) list.CheckboxLabeled("CE_Settings_ShowExtraTooltips_Title".Translate(), ref showExtraTooltips, "CE_Settings_ShowExtraTooltips_Desc".Translate()); list.CheckboxLabeled("CE_Settings_ShowExtraStats_Title".Translate(), ref showExtraStats, "CE_Settings_ShowExtraStats_Desc".Translate()); list.CheckboxLabeled("CE_Settings_FasterRepeatShots_Title".Translate(), ref fasterRepeatShots, "CE_Settings_FasterRepeatShots_Desc".Translate()); - + list.CheckboxLabeled("CE_Settings_EnableExtraEffects_Title".Translate(), ref enableExtraEffects, "CE_Settings_EnableExtraEffects_Desc".Translate()); // Only Allow these settings to be changed in the main menu since doing while a // map is loaded will result in rendering issues. if (Current.Game == null) diff --git a/Source/CombatExtended/CombatExtended/StatWorkers/StatWorker_BipodDisplay.cs b/Source/CombatExtended/CombatExtended/StatWorkers/StatWorker_BipodDisplay.cs index e64c661055..2e77bf605f 100644 --- a/Source/CombatExtended/CombatExtended/StatWorkers/StatWorker_BipodDisplay.cs +++ b/Source/CombatExtended/CombatExtended/StatWorkers/StatWorker_BipodDisplay.cs @@ -72,11 +72,11 @@ public override string GetExplanationFinalizePart(StatRequest req, ToStringNumbe { var BipodCompProps = bipodComp(req); var VerbPropsCE = verbPropsCE(req); - string result = "Time to set up bipod: " + BipodCompProps.ticksToSetUp + " ticks (" + (BipodCompProps.ticksToSetUp / 60) + "s)"; + string result = "CE_BipodSetupTime".Translate() + BipodCompProps.ticksToSetUp + " ticks (" + (BipodCompProps.ticksToSetUp / 60) + "s)"; if (Controller.settings.AutoSetUp) { - result += "\n" + "Auto sets up in firemode: " + "\n"; + result += "\n" + "CE_BipodAutoSetupMode".Translate() + "\n"; if (BipodCompProps.catDef.useAutoSetMode) { result += "- " + BipodCompProps.catDef.autosetMode.ToString() + "\n"; @@ -89,35 +89,35 @@ public override string GetExplanationFinalizePart(StatRequest req, ToStringNumbe } - result += "\n" + "Stats when set up: ".Colorize(Color.green) + "\n"; + result += "\n" + "CE_BipodStatWhenSetUp".Translate().Colorize(Color.green) + "\n"; - result += "Recoil: " + Math.Round((VerbPropsCE.recoilAmount * BipodCompProps.recoilMulton), 2); + result += CE_StatDefOf.Recoil.label + ": " + Math.Round((VerbPropsCE.recoilAmount * BipodCompProps.recoilMulton), 2); result += "\n"; - result += "Sway: " + Math.Round((req.Thing.def.statBases.Find(x => x.stat == CE_StatDefOf.SwayFactor).value * BipodCompProps.swayMult), 2); + result += CE_StatDefOf.SwayFactor.label + ": " + Math.Round((req.Thing.def.statBases.Find(x => x.stat == CE_StatDefOf.SwayFactor).value * BipodCompProps.swayMult), 2); result += "\n"; - result += "Range: " + (BipodCompProps.additionalrange + VerbPropsCE.range); + result += "CE_BipodStatRange".Translate() + ": " + (BipodCompProps.additionalrange + VerbPropsCE.range); result += "\n"; - result += "Warmup Time: " + (BipodCompProps.warmupMult * VerbPropsCE.warmupTime); + result += "CE_BipodStatWarmUp".Translate() + ": " + (BipodCompProps.warmupMult * VerbPropsCE.warmupTime); result += "\n" + "\n"; - result += "Stats when NOT set up: ".Colorize(Color.red) + "\n"; + result += "CE_BipodStatWhenNotSetUp".Translate().Colorize(Color.red) + "\n"; - result += "Recoil: " + Math.Round((VerbPropsCE.recoilAmount * BipodCompProps.recoilMultoff), 2); + result += CE_StatDefOf.Recoil.label + ": " + Math.Round((VerbPropsCE.recoilAmount * BipodCompProps.recoilMultoff), 2); result += "\n"; - result += "Sway: " + Math.Round((req.Thing.def.statBases.Find(x => x.stat == CE_StatDefOf.SwayFactor).value * BipodCompProps.swayPenalty), 2); + result += CE_StatDefOf.SwayFactor.label + ": " + Math.Round((req.Thing.def.statBases.Find(x => x.stat == CE_StatDefOf.SwayFactor).value * BipodCompProps.swayPenalty), 2); result += "\n"; - result += "Range: " + (VerbPropsCE.range); + result += "CE_BipodStatRange".Translate() + ": " + (VerbPropsCE.range); result += "\n"; - result += "Warmup Time: " + (BipodCompProps.warmupPenalty * VerbPropsCE.warmupTime); + result += "CE_BipodStatWarmUp".Translate() + ": " + (BipodCompProps.warmupPenalty * VerbPropsCE.warmupTime); return result; } @@ -132,39 +132,39 @@ public override string GetExplanationFinalizePart(StatRequest req, ToStringNumbe return base.GetExplanationFinalizePart(req, numberSense, finalVal); } - string result = "Time to set up bipod: " + BipodCompProps.ticksToSetUp + " ticks (" + (BipodCompProps.ticksToSetUp / 60) + "s)" + "\n" + "Stats when set up: ".Colorize(Color.green) + "\n"; + string result = "CE_BipodSetupTime".Translate() + BipodCompProps.ticksToSetUp + " ticks (" + (BipodCompProps.ticksToSetUp / 60) + "s)" + "\n" + "Stats when set up: ".Colorize(Color.green) + "\n"; - result += "Recoil: " + (VerbPropsCE.recoilAmount * BipodCompProps.recoilMulton); + result += CE_StatDefOf.Recoil.label + ": " + (VerbPropsCE.recoilAmount * BipodCompProps.recoilMulton); result += "\n"; - result += "Sway: " + (((ThingDef)(req.Def)).statBases.Find(x => x.stat == CE_StatDefOf.SwayFactor).value * BipodCompProps.swayPenalty); + result += CE_StatDefOf.SwayFactor.label + ": " + (((ThingDef)(req.Def)).statBases.Find(x => x.stat == CE_StatDefOf.SwayFactor).value * BipodCompProps.swayPenalty); result += "\n"; - result += "Range: " + (BipodCompProps.additionalrange + VerbPropsCE.range); + result += "CE_BipodStatRange".Translate() + ": " + (BipodCompProps.additionalrange + VerbPropsCE.range); result += "\n"; - result += "Warmup Time: " + (BipodCompProps.warmupMult * VerbPropsCE.warmupTime); + result += "CE_BipodStatWarmUp".Translate() + ": " + (BipodCompProps.warmupMult * VerbPropsCE.warmupTime); result += "\n" + "\n"; - result += "Stats when NOT set up: ".Colorize(Color.red) + "\n"; + result += "CE_BipodStatWhenNotSetUp".Translate().Colorize(Color.red) + "\n"; - result += "Recoil: " + (VerbPropsCE.recoilAmount * BipodCompProps.recoilMultoff); + result += CE_StatDefOf.Recoil.label + ": " + (VerbPropsCE.recoilAmount * BipodCompProps.recoilMultoff); result += "\n"; - result += "Sway: " + (((ThingDef)(req.Def)).statBases.Find(x => x.stat == CE_StatDefOf.SwayFactor).value * BipodCompProps.swayPenalty); + result += CE_StatDefOf.SwayFactor.label + ": " + (((ThingDef)(req.Def)).statBases.Find(x => x.stat == CE_StatDefOf.SwayFactor).value * BipodCompProps.swayPenalty); result += "\n"; - result += "Range: " + (VerbPropsCE.range); + result += "CE_BipodStatRange".Translate() + ": " + (VerbPropsCE.range); result += "\n"; - result += "Warmup Time: " + (BipodCompProps.warmupPenalty * VerbPropsCE.warmupTime); + result += "CE_BipodStatWarmUp".Translate() + ": " + (BipodCompProps.warmupPenalty * VerbPropsCE.warmupTime); return result; } @@ -178,7 +178,7 @@ public override string ValueToString(float val, bool finalized, ToStringNumberSe { if (finalized) { - return "Hover over"; + return "CE_BipodHoverOverStat".Translate(); } else { diff --git a/Source/CombatExtended/CombatExtended/Things/Building_TurretGunCE.cs b/Source/CombatExtended/CombatExtended/Things/Building_TurretGunCE.cs index 99bb02f5d3..f13f4eb3c2 100644 --- a/Source/CombatExtended/CombatExtended/Things/Building_TurretGunCE.cs +++ b/Source/CombatExtended/CombatExtended/Things/Building_TurretGunCE.cs @@ -306,15 +306,22 @@ public override void Tick() //Autoreload code and IsReloading check ticksUntilAutoReload--; // Reduce time until we can auto-reload } - if (!isReloading && this.IsHashIntervalTick(TicksBetweenAmmoChecks) && (MannableComp?.MannedNow ?? false)) + if (!isReloading && this.IsHashIntervalTick(TicksBetweenAmmoChecks)) { - TryOrderReload(); + if (MannableComp?.MannedNow ?? false) + { + TryOrderReload(); + } + else + { + TryReloadViaAutoLoader(); + } } //This code runs TryOrderReload for manning pawns or for non-humanlike intelligence such as mechs /*if (this.IsHashIntervalTick(TicksBetweenAmmoChecks) && !isReloading && (MannableComp?.MannedNow ?? false)) TryOrderReload(CompAmmo?.CurMagCount == 0);*/ - if (!CanSetForcedTarget && !isReloading && forcedTarget.IsValid && burstCooldownTicksLeft <= 0) + if (!CanSetForcedTarget && !isReloading && forcedTarget.IsValid && !globalTargetInfo.IsValid && burstCooldownTicksLeft <= 0) { ResetForcedTarget(); } @@ -574,7 +581,13 @@ public override string GetInspectString() // Replaced vanilla loaded text public override void Draw() { - top.DrawTurret(Vector3.zero, 0f); + Vector3 drawOffset = Vector3.zero; + float angleOffset = 0f; + if (Controller.settings.RecoilAnim) + { + CE_Utility.Recoil(def.building.turretGunDef, AttackVerb, out drawOffset, out angleOffset, top.CurRotation, false); + } + top.DrawTurret(drawOffset, angleOffset); base.Draw(); } @@ -845,6 +858,11 @@ public void TryOrderReload(bool forced = false) return; } + if (TryReloadViaAutoLoader()) + { + return; + } + //Non-mannableComp interaction if (!mannableComp?.MannedNow ?? true) { @@ -872,7 +890,26 @@ public void TryOrderReload(bool forced = false) manningPawn.jobs.StartJob(jobOnThing, JobCondition.Ongoing, null, manningPawn.CurJob?.def != CE_JobDefOf.ReloadTurret); } } + } + + public bool TryReloadViaAutoLoader() + { + if (TargetCurrentlyAimingAt != null) + { + return false; + } + List adjThings = new List(); + GenAdjFast.AdjacentThings8Way(this, adjThings); + + foreach (Thing building in adjThings) + { + if (building is Building_AutoloaderCE container && container.StartReload(compAmmo)) + { + return true; + } + } + return false; } #endregion } 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_LaunchProjectileCE.cs b/Source/CombatExtended/CombatExtended/Verbs/Verb_LaunchProjectileCE.cs index 34f0835f61..3a96eafa35 100644 --- a/Source/CombatExtended/CombatExtended/Verbs/Verb_LaunchProjectileCE.cs +++ b/Source/CombatExtended/CombatExtended/Verbs/Verb_LaunchProjectileCE.cs @@ -1085,6 +1085,7 @@ public override bool TryCastShot() CompReloadable.UsedOnce(); } } + lastShotTick = Find.TickManager.TicksGame; return true; } diff --git a/Source/CombatExtended/CombatExtended/Verbs/Verb_MeleeAttackCE.cs b/Source/CombatExtended/CombatExtended/Verbs/Verb_MeleeAttackCE.cs index 63ae7bd171..9abc3aedf0 100644 --- a/Source/CombatExtended/CombatExtended/Verbs/Verb_MeleeAttackCE.cs +++ b/Source/CombatExtended/CombatExtended/Verbs/Verb_MeleeAttackCE.cs @@ -240,19 +240,27 @@ public override bool TryCastShot() BattleLogEntry_MeleeCombat log = CreateCombatLog((ManeuverDef maneuver) => maneuver.combatLogRulesHit, false); // Attack connects + DamageWorker.DamageResult damageResult; if (surpriseAttack || Rand.Chance(GetComparativeChanceAgainst(casterPawn, defender, CE_StatDefOf.MeleeCritChance, BaseCritChance))) { // Do a critical hit isCrit = true; - ApplyMeleeDamageToTarget(currentTarget).AssociateWithLog(log); + damageResult = ApplyMeleeDamageToTarget(currentTarget); moteText = casterPawn.def.race.Animal ? null : "CE_TextMote_CriticalHit".Translate(); casterPawn.skills?.Learn(SkillDefOf.Melee, CritXP * verbProps.AdjustedFullCycleTime(this, casterPawn), false); } else { // Do a regular hit as per vanilla - ApplyMeleeDamageToTarget(currentTarget).AssociateWithLog(log); + damageResult = ApplyMeleeDamageToTarget(currentTarget); } + + damageResult.AssociateWithLog(log); + if (defender != null && damageResult.totalDamageDealt > 0f) + { + this.ApplyMeleeSlaveSuppression(defender, damageResult.totalDamageDealt); + } + result = true; soundDef = targetThing.def.category == ThingCategory.Building ? SoundHitBuilding() : SoundHitPawn(); } @@ -536,6 +544,7 @@ public override DamageWorker.DamageResult ApplyMeleeDamageToTarget(LocalTargetIn DamageWorker.DamageResult result = new DamageWorker.DamageResult(); IEnumerable damageInfosToApply = DamageInfosToApply(target, isCrit); bool isHeadHit = false; + float totalDmg = 0; foreach (DamageInfo current in damageInfosToApply) { if (target.ThingDestroyed) @@ -550,6 +559,7 @@ public override DamageWorker.DamageResult ApplyMeleeDamageToTarget(LocalTargetIn LastAttackVerb = this; result = target.Thing.TakeDamage(current); + totalDmg += result.totalDamageDealt; LastAttackVerb = null; } // Apply animal knockdown @@ -581,6 +591,7 @@ public override DamageWorker.DamageResult ApplyMeleeDamageToTarget(LocalTargetIn } } isCrit = false; + result.totalDamageDealt = totalDmg; return result; } diff --git a/Source/CombatExtended/CombatExtended/Verbs/Verb_ShootCE.cs b/Source/CombatExtended/CombatExtended/Verbs/Verb_ShootCE.cs index 8b6331a2cd..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,16 +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 && projectilePropsCE.dropsCasings) + if (VerbPropsCE.ejectsCasings) { - CE_Utility.ThrowEmptyCasing(caster.DrawPos, caster.Map, DefDatabase.GetNamed(projectilePropsCE.casingMoteDefname)); - CE_Utility.MakeCasingFilth(caster.Position, caster.Map, DefDatabase.GetNamed(projectilePropsCE.casingFilthDefname)); + 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) @@ -396,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/CombatExtended/Verbs/Verb_ShootMortarCE.cs b/Source/CombatExtended/CombatExtended/Verbs/Verb_ShootMortarCE.cs index 134917c780..2f548cd217 100644 --- a/Source/CombatExtended/CombatExtended/Verbs/Verb_ShootMortarCE.cs +++ b/Source/CombatExtended/CombatExtended/Verbs/Verb_ShootMortarCE.cs @@ -215,6 +215,7 @@ public virtual bool TryCastGlobalShot() CompReloadable.UsedOnce(); } } + lastShotTick = Find.TickManager.TicksGame; return true; } diff --git a/Source/CombatExtended/CombatExtended/WorldObjects/WorldObjectDamageWorker.cs b/Source/CombatExtended/CombatExtended/WorldObjects/WorldObjectDamageWorker.cs index 2da6521235..5d773e3ac4 100644 --- a/Source/CombatExtended/CombatExtended/WorldObjects/WorldObjectDamageWorker.cs +++ b/Source/CombatExtended/CombatExtended/WorldObjects/WorldObjectDamageWorker.cs @@ -34,7 +34,7 @@ public virtual float CalculateDamage(ThingDef projectile, Faction faction) empModifier = 1f; } } - var result = FragmentsPotentialDamage(projectile) + ExplosionPotentialDamage(projectile) + FirePotentialDamage(projectile) + EMPPotentialDamage(projectile, empModifier); + var result = FragmentsPotentialDamage(projectile) + FirePotentialDamage(projectile) + EMPPotentialDamage(projectile, empModifier) + OtherPotentialDamage(projectile); //Damage calculated as in-map damage, needs to be converted into world object damage. 3500f experimentally obtained result /= 3500f; //manual overwrite @@ -91,19 +91,29 @@ protected virtual float FirePotentialDamage(ThingDef projectile) } return result; } - protected virtual float ExplosionPotentialDamage(ThingDef projectile) + protected virtual float OtherPotentialDamage(ThingDef projectile) { float result = 0f; - if (projectile.projectile is ProjectilePropertiesCE props && props.damageDef == DamageDefOf.Bomb) + if (projectile.projectile is ProjectilePropertiesCE props) { + if (props.damageDef == DamageDefOf.EMP || props.damageDef == CE_DamageDefOf.PrometheumFlame) + { + return 0f; + } result += props.damageAmountBase; for (int i = 1; i < props.explosionRadius; i++) { result += DamageAtRadius(projectile, i) * Mathf.Pow(2, i); } + var extension = props.damageDef.GetModExtension(); + if (extension != null && extension.worldDamageMultiplier >= 0.0f) + { + result *= extension.worldDamageMultiplier; + } } return result; } + public static float DamageAtRadius(ThingDef projectile, int radius) { if (!projectile.projectile.explosionDamageFalloff) diff --git a/Source/CombatExtended/Compatibility/BlockerRegistry.cs b/Source/CombatExtended/Compatibility/BlockerRegistry.cs index ab526dff6d..484f205492 100644 --- a/Source/CombatExtended/Compatibility/BlockerRegistry.cs +++ b/Source/CombatExtended/Compatibility/BlockerRegistry.cs @@ -11,38 +11,88 @@ namespace CombatExtended.Compatibility { public static class BlockerRegistry { - private static bool enabled = false; + private static bool enabledCB = false; + private static bool enabledCFC = false; + private static bool enabledIS = false; + private static bool enabledBCW = false; + private static List> checkForCollisionBetweenCallbacks; private static List> checkCellForCollisionCallbacks; private static List> impactSomethingCallbacks; + private static List> beforeCollideWithCallbacks; - private static void Enable() + private static void EnableCB() { - enabled = true; + enabledCB = true; + checkForCollisionBetweenCallbacks = new List>(); + } + private static void EnableIS() + { + enabledIS = true; impactSomethingCallbacks = new List>(); + } + private static void EnableCFC() + { + enabledCFC = true; checkCellForCollisionCallbacks = new List>(); } + private static void EnableBCW() + { + enabledBCW = true; + beforeCollideWithCallbacks = new List>(); + } + public static void RegisterCheckForCollisionBetweenCallback(Func f) + { + if (!enabledCB) + { + EnableCB(); + } + checkForCollisionBetweenCallbacks.Add(f); + } public static void RegisterCheckForCollisionCallback(Func f) { - if (!enabled) + if (!enabledCFC) { - Enable(); + EnableCFC(); } checkCellForCollisionCallbacks.Add(f); } public static void RegisterImpactSomethingCallback(Func f) { - if (!enabled) + if (!enabledIS) { - Enable(); + EnableIS(); } impactSomethingCallbacks.Add(f); } + public static void RegisterBeforeCollideWithCallback(Func f) + { + if (!enabledBCW) + { + EnableBCW(); + } + beforeCollideWithCallbacks.Add(f); + } + public static bool CheckForCollisionBetweenCallback(ProjectileCE projectile, Vector3 from, Vector3 to) + { + if (!enabledCB) + { + return false; + } + foreach (var cb in checkForCollisionBetweenCallbacks) + { + if (cb(projectile, from, to)) + { + return true; + } + } + return false; + } public static bool CheckCellForCollisionCallback(ProjectileCE projectile, IntVec3 cell, Thing launcher) { - if (!enabled) + if (!enabledCFC) { return false; } @@ -58,7 +108,7 @@ public static bool CheckCellForCollisionCallback(ProjectileCE projectile, IntVec public static bool ImpactSomethingCallback(ProjectileCE projectile, Thing launcher) { - if (!enabled) + if (!enabledIS) { return false; } @@ -72,6 +122,22 @@ public static bool ImpactSomethingCallback(ProjectileCE projectile, Thing launch return false; } + public static bool BeforeCollideWithCallback(ProjectileCE projectile, Thing collideWith) + { + if (!enabledBCW) + { + return false; + } + foreach (var cb in beforeCollideWithCallbacks) + { + if (cb(projectile, collideWith)) + { + return true; + } + } + return false; + } + public static Vector3 GetExactPosition(Vector3 origin, Vector3 curPosition, Vector3 shieldPosition, float radiusSq) { Vector3 velocity = curPosition - origin; @@ -87,5 +153,6 @@ public static Vector3 GetExactPosition(Vector3 origin, Vector3 curPosition, Vect float scalar = (float)(2 * c / (-b + Math.Sqrt(det))); return velocity * scalar + origin; } + } } diff --git a/Source/CombatExtended/Compatibility/EDShields.cs b/Source/CombatExtended/Compatibility/EDShields.cs index 4f418ee23f..173ee8047b 100644 --- a/Source/CombatExtended/Compatibility/EDShields.cs +++ b/Source/CombatExtended/Compatibility/EDShields.cs @@ -33,7 +33,7 @@ public bool CanInstall() } public void Install() { - BlockerRegistry.RegisterCheckForCollisionCallback(EDShields.CheckForCollisionCallback); + BlockerRegistry.RegisterCheckForCollisionBetweenCallback(EDShields.CheckForCollisionBetweenCallback); BlockerRegistry.RegisterImpactSomethingCallback(EDShields.ImpactSomethingCallback); Type t = Type.GetType("Jaxxa.EnhancedDevelopment.Shields.Shields.ShieldManagerMapComp, ED-Shields"); HitSoundDef = (SoundDef)t.GetField("HitSoundDef", BindingFlags.Static | BindingFlags.Public).GetValue(null); @@ -42,10 +42,15 @@ public IEnumerable GetCompatList() { yield break; } - public static bool CheckForCollisionCallback(ProjectileCE projectile, IntVec3 cell, Thing launcher) + public static bool CheckForCollisionBetweenCallback(ProjectileCE projectile, Vector3 from, Vector3 to) { - /* Check if an active shield can block this projectile, we don't check if the projectile flies overhead, as those projectiles don't call this function + /* Check if an active shield can block this projectile */ + if (projectile.def.projectile.flyOverhead) + { + return false; + } + Thing launcher = projectile.launcher; Map map = projectile.Map; Vector3 exactPosition = projectile.ExactPosition; IntVec3 origin = projectile.OriginIV3; @@ -66,33 +71,33 @@ public static bool CheckForCollisionCallback(ProjectileCE projectile, IntVec3 ce continue; } int fieldRadius = (int)generator.FieldRadius_Active(); - int fieldRadiusSq = fieldRadius * fieldRadius; - float DistanceSq = projectile.Position.DistanceToSquared(shield.Position) - fieldRadiusSq; - float originDistanceSq = origin.DistanceToSquared(shield.Position) - fieldRadiusSq; - if (DistanceSq > 0) + Vector3 shieldPosition2D = new Vector3(shield.Position.x, 0, shield.Position.z); + Vector3 nep; + + if (CE_Utility.IntersectionPoint(from, to, shieldPosition2D, fieldRadius, out Vector3[] sect)) { - continue; + nep = sect.OrderBy(x => (projectile.OriginIV3.ToVector3() - x).sqrMagnitude).First(); } - if (originDistanceSq < 0) + else { continue; } - Vector3 shieldPosition2D = new Vector3(shield.Position.x, 0, shield.Position.z); + + int fieldRadiusSq = fieldRadius * fieldRadius; + Quaternion targetAngle = projectile.ExactRotation; Quaternion shieldProjAng = Quaternion.LookRotation(exactPosition - shieldPosition2D); if ((Quaternion.Angle(targetAngle, shieldProjAng) > 90)) { - HitSoundDef.PlayOneShot((SoundInfo)new TargetInfo(shield.Position, map, false)); - int damage = (projectile.def.projectile.GetDamageAmount(launcher)); generator.FieldIntegrity_Current -= damage; - exactPosition = BlockerRegistry.GetExactPosition(origin.ToVector3(), projectile.ExactPosition, shield.Position.ToVector3(), (fieldRadius - 1) * (fieldRadius - 1)); + exactPosition = nep; FleckMakerCE.ThrowLightningGlow(exactPosition, map, 0.5f); - projectile.ExactPosition = exactPosition; + projectile.InterceptProjectile(shield, exactPosition, false); return true; } } @@ -133,6 +138,7 @@ public static bool ImpactSomethingCallback(ProjectileCE projectile, Thing launch FleckMakerCE.ThrowLightningGlow(destination, map, 0.5f); int damage = (projectile.def.projectile.GetDamageAmount(launcher)); generator.FieldIntegrity_Current -= damage; + projectile.InterceptProjectile(shield, projectile.ExactPosition, true); return true; } return false; diff --git a/Source/CombatExtended/Compatibility/Multiplayer.cs b/Source/CombatExtended/Compatibility/Multiplayer.cs index f44b1e6d3a..c4d4c05e7f 100644 --- a/Source/CombatExtended/Compatibility/Multiplayer.cs +++ b/Source/CombatExtended/Compatibility/Multiplayer.cs @@ -40,6 +40,19 @@ public static bool InMultiplayer } } + public static bool IsExecutingCommands + { + get + { + if (isMultiplayerActive) + { + return _isExecutingCommands(); + } + + return false; + } + } + public static bool IsExecutingCommandsIssuedBySelf { get @@ -52,14 +65,17 @@ public static bool IsExecutingCommandsIssuedBySelf } } - public static void registerCallbacks(Func inMP, Func iecibs) + public static void registerCallbacks(Func inMP, Func iec, Func iecibs) { _inMultiplayer = inMP; + _isExecutingCommands = iec; _isExecutingCommandsIssuedBySelf = iecibs; } private static Func _inMultiplayer = null; + private static Func _isExecutingCommands = null; + private static Func _isExecutingCommandsIssuedBySelf = null; [AttributeUsage(AttributeTargets.Method)] diff --git a/Source/CombatExtended/Compatibility/Rimatomics.cs b/Source/CombatExtended/Compatibility/Rimatomics.cs index 28495c9d88..2a9bc0d838 100644 --- a/Source/CombatExtended/Compatibility/Rimatomics.cs +++ b/Source/CombatExtended/Compatibility/Rimatomics.cs @@ -103,7 +103,7 @@ public static bool CheckForCollisionCallback(ProjectileCE projectile, IntVec3 ce } - + projectile.InterceptProjectile(shield, exactPosition, true); return true; } @@ -148,6 +148,7 @@ public static bool ImpactSomethingCallback(ProjectileCE projectile, Thing launch DamageInfo dinfo = new DamageInfo(projectile.def.projectile.damageDef, (float)damage, 0f, -1f, null, null, null, 0, null, true, true); shield.BreakShield(dinfo); } + projectile.InterceptProjectile(shield, projectile.ExactPosition, true); return true; } return false; diff --git a/Source/CombatExtended/Compatibility/VanillaExpandedFramework.cs b/Source/CombatExtended/Compatibility/VanillaExpandedFramework.cs index 66d8f7b6cb..fea239d207 100644 --- a/Source/CombatExtended/Compatibility/VanillaExpandedFramework.cs +++ b/Source/CombatExtended/Compatibility/VanillaExpandedFramework.cs @@ -39,7 +39,7 @@ private static bool CheckIntercept(ProjectileCE projectile, IntVec3 cell, Thing return false; } var def = projectile.def; - Vector3 lastExactPos = (Vector3)new Traverse(projectile).Field("lastExactPos").GetValue();//Why this field(or linked property) is private? + Vector3 lastExactPos = projectile.LastPos; var newExactPos = projectile.ExactPosition; foreach (var interceptor in interceptors) { @@ -73,16 +73,12 @@ private static bool CheckIntercept(ProjectileCE projectile, IntVec3 cell, Thing { continue; } - if (!IntersectLineSphericalOutline(shieldPosition, radius, lastExactPos, newExactPos)) - { - continue; - } - var intersectionPoints = //BlockerRegistry.GetExactPosition(projectile.OriginIV3.ToVector3(), projectile.ExactPosition, interceptorThing.Position.ToVector3(), (radius ) * (radius)); - VanillaPsycastExpanded.IntersectionPoint(projectile.OriginIV3.ToVector3(), projectile.ExactPosition, interceptor.parent.Position.ToVector3(), (radius)); - if (intersectionPoints == new Vector3[] { Vector3.zero, Vector3.zero }) + Vector3[] intersectionPoints; + if (!CE_Utility.IntersectionPoint(lastExactPos, newExactPos, shieldPosition, radius, out intersectionPoints)) { continue; } + projectile.ExactPosition = intersectionPoints.OrderBy(x => (projectile.OriginIV3.ToVector3() - x).sqrMagnitude).First(); projectile.landed = true; interceptorComp.AbsorbDamage(projectile.DamageAmount, projectile.def.projectile.damageDef, launcher); @@ -90,25 +86,6 @@ private static bool CheckIntercept(ProjectileCE projectile, IntVec3 cell, Thing } return false; } - /// - /// Copy of ProjectileCE method - /// - private static bool IntersectLineSphericalOutline(Vector3 center, float radius, Vector3 pointA, Vector3 pointB) - { - var pointAInShield = (center - pointA).sqrMagnitude <= Mathf.Pow(radius, 2); - var pointBInShield = (center - pointB).sqrMagnitude <= Mathf.Pow(radius, 2); - - if (pointAInShield && pointBInShield) - { - return false; - } - if (!pointAInShield && !pointBInShield) - { - return false; - } - - return true; - } } diff --git a/Source/CombatExtended/Compatibility/VanillaFurnitureExpandedSecurity.cs b/Source/CombatExtended/Compatibility/VanillaFurnitureExpandedSecurity.cs index 700f104c40..3852571d47 100644 --- a/Source/CombatExtended/Compatibility/VanillaFurnitureExpandedSecurity.cs +++ b/Source/CombatExtended/Compatibility/VanillaFurnitureExpandedSecurity.cs @@ -70,15 +70,16 @@ private static bool CheckCollision(ProjectileCE projectile, IntVec3 cell, Thing continue; } - projectile.ExactPosition = BlockerRegistry.GetExactPosition(projectile.OriginIV3.ToVector3(), - exactPosition, - new Vector3(shield.Position.x, 0, shield.Position.z), - shield.ShieldRadius * shield.ShieldRadius); + exactPosition = BlockerRegistry.GetExactPosition(projectile.OriginIV3.ToVector3(), + exactPosition, + new Vector3(shield.Position.x, 0, shield.Position.z), + shield.ShieldRadius * shield.ShieldRadius); if (!(projectile is ProjectileCE_Explosive)) { shield.AbsorbDamage(projectile.def.projectile.GetDamageAmount(launcher), projectile.def.projectile.damageDef, projectile.ExactRotation.eulerAngles.y); } + projectile.InterceptProjectile(shield, exactPosition, true); return true; } @@ -92,9 +93,15 @@ private static bool ImpactSomething(ProjectileCE projectile, Thing launcher) refreshShields(map); - var blocked = shields.Any(building => ShieldInterceptsProjectile(building as Building_Shield, projectile, launcher)); - CELogger.Message($"Blocked {projectile}? -- {blocked}"); - return blocked; + foreach (var building in shields) + { + if (building is Building_Shield bs && ShieldInterceptsProjectile(bs, projectile, launcher)) + { + projectile.InterceptProjectile(bs, exactPosition, true); + return true; + } + } + return false; } private static bool ShieldInterceptsProjectile(Building building, ProjectileCE projectile, Thing launcher) diff --git a/Source/CombatExtended/Compatibility/VanillaPsycastExpanded.cs b/Source/CombatExtended/Compatibility/VanillaPsycastExpanded.cs index 70d8adfec6..d4d0e27594 100644 --- a/Source/CombatExtended/Compatibility/VanillaPsycastExpanded.cs +++ b/Source/CombatExtended/Compatibility/VanillaPsycastExpanded.cs @@ -26,178 +26,88 @@ public IEnumerable GetCompatList() } public void Install() { - BlockerRegistry.RegisterImpactSomethingCallback(ImpactSomething); - BlockerRegistry.RegisterCheckForCollisionCallback(CheckIntercept); + BlockerRegistry.RegisterImpactSomethingCallback(ImpactSomething); //temp commented + BlockerRegistry.RegisterBeforeCollideWithCallback(BeforeCollideWith); + BlockerRegistry.RegisterCheckForCollisionCallback(Hediff_Overshield_InterceptCheck); + BlockerRegistry.RegisterCheckForCollisionBetweenCallback(AOE_CheckIntercept); } - private static bool ImpactSomething(ProjectileCE projectile, Thing launcher) + private static bool BeforeCollideWith(ProjectileCE projectile, Thing collideWith) { - - - var interceptor = projectile.Map.thingGrid.ThingsAt(projectile.ExactPosition.ToIntVec3()).FirstOrDefault(x => (x is Pawn) && ((x as Pawn).health?.hediffSet.hediffs.Any(x => x is Hediff_Overshield) ?? false)) as Pawn; - if (interceptor != null) - { - var hediff = interceptor.health.hediffSet.hediffs.FirstOrDefault(x => x is Hediff_Overshield) as Hediff_Overshield; - projectile.ExactPosition = IntersectionPoint(projectile.OriginIV3.ToVector3(), projectile.ExactPosition, interceptor.DrawPos, hediff.OverlaySize).OrderBy(x => (projectile.OriginIV3.ToVector3() - x).sqrMagnitude).First(); - projectile.landed = true; - - new Traverse(interceptor).Field("lastInterceptAngle").SetValue(projectile.ExactPosition.AngleToFlat(interceptor.TrueCenter())); - new Traverse(interceptor).Field("lastInterceptTicks").SetValue(Find.TickManager.TicksGame); - new Traverse(interceptor).Field("drawInterceptCone").SetValue(true); - - Effecter eff = new Effecter(EffecterDefOf.Interceptor_BlockedProjectile); - eff.Trigger(new TargetInfo(projectile.ExactPosition.ToIntVec3(), interceptor.Map, false), TargetInfo.Invalid); - eff.Cleanup(); - return true; - } - else + if (collideWith is Pawn pawn) { - return false; + var interceptor = pawn.health.hediffSet.hediffs.FirstOrDefault(x => x.GetType() == typeof(Hediff_Overshield)) as Hediff_Overshield; + if (interceptor != null) + { + OnIntercepted(interceptor, projectile, null); + return true; + } } + return false; } - - public static bool CheckIntercept(ProjectileCE projectile, IntVec3 cell, Thing launcher) + private static bool ImpactSomething(ProjectileCE projectile, Thing launcher) { - foreach (var interceptor in projectile.Map.listerThings.ThingsInGroup(ThingRequestGroup.Pawn).Cast() + return Hediff_Overshield_InterceptCheck(projectile, projectile.ExactPosition.ToIntVec3(), launcher); + } + public static bool Hediff_Overshield_InterceptCheck(ProjectileCE projectile, IntVec3 cell, Thing launcher) + { + foreach (var interceptor in projectile.Map.thingGrid.ThingsListAt(cell).OfType() .SelectMany(x => x.health.hediffSet.hediffs) - .Where(x => typeof(Hediff_Overshield).IsAssignableFrom(x.def.hediffClass)).Cast()) + .Where(x => x.GetType() == typeof(Hediff_Overshield)).Cast()) { var def = projectile.def; - Vector3 lastExactPos = (Vector3)new Traverse(projectile).Field("lastExactPos").GetValue();//Why this field(or linked property) is private? - var newExactPos = projectile.ExactPosition; - if (interceptor.GetType() == typeof(Hediff_Overshield)) + var result = interceptor.pawn != launcher && (interceptor.pawn.Position == cell); + if (result) { - var result = interceptor.pawn != launcher && (interceptor.pawn.Position == cell || PreventTryColideWithPawn(projectile, interceptor.pawn, newExactPos)); - if (result) - { - projectile.ExactPosition = IntersectionPoint(projectile.OriginIV3.ToVector3(), projectile.ExactPosition, interceptor.pawn.DrawPos, interceptor.OverlaySize).OrderBy(x => (projectile.OriginIV3.ToVector3() - x).sqrMagnitude).First(); - projectile.landed = true; - - new Traverse(interceptor).Field("lastInterceptAngle").SetValue(newExactPos.AngleToFlat(interceptor.pawn.TrueCenter())); - new Traverse(interceptor).Field("lastInterceptTicks").SetValue(Find.TickManager.TicksGame); - new Traverse(interceptor).Field("drawInterceptCone").SetValue(true); - - Effecter e = new Effecter(EffecterDefOf.Interceptor_BlockedProjectile); - e.Trigger(new TargetInfo(newExactPos.ToIntVec3(), interceptor.pawn.Map, false), TargetInfo.Invalid); - e.Cleanup(); - } - + OnIntercepted(interceptor, projectile, null); return result; } - #region AOE shields - Vector3 shieldPosition = interceptor.pawn.Position.ToVector3ShiftedWithAltitude(0.5f); - float radius = interceptor.OverlaySize; - float blockRadius = radius + def.projectile.SpeedTilesPerTick + 0.1f; - if ((lastExactPos - shieldPosition).sqrMagnitude < radius * radius) - { - return false; - } - if ((newExactPos - shieldPosition).sqrMagnitude > Mathf.Pow(blockRadius, 2)) - { - return false; - } - - if (projectile.def.projectile.flyOverhead) - { - return false; - } - - if ((shieldPosition - lastExactPos).sqrMagnitude <= Mathf.Pow((float)radius, 2)) - { - return false; - } - if (!IntersectLineSphericalOutline(shieldPosition, radius, lastExactPos, newExactPos)) - { - return false; - } - var exactPosition = //BlockerRegistry.GetExactPosition(projectile.OriginIV3.ToVector3(), projectile.ExactPosition, interceptorThing.Position.ToVector3(), (radius ) * (radius)); - IntersectionPoint(projectile.OriginIV3.ToVector3(), projectile.ExactPosition, interceptor.pawn.Position.ToVector3(), (radius)).OrderBy(x => (projectile.OriginIV3.ToVector3() - x).sqrMagnitude).First(); - projectile.ExactPosition = exactPosition; - projectile.landed = true; - - new Traverse(interceptor).Field("lastInterceptAngle").SetValue(newExactPos.AngleToFlat(interceptor.pawn.TrueCenter())); - new Traverse(interceptor).Field("lastInterceptTicks").SetValue(Find.TickManager.TicksGame); - new Traverse(interceptor).Field("drawInterceptCone").SetValue(true); - - Effecter eff = new Effecter(EffecterDefOf.Interceptor_BlockedProjectile); - eff.Trigger(new TargetInfo(newExactPos.ToIntVec3(), interceptor.pawn.Map, false), TargetInfo.Invalid); - eff.Cleanup(); - return true; } - return false; } - private static bool PreventTryColideWithPawn(ProjectileCE projectile, Thing pawn, Vector3 newExactPos) + public static bool AOE_CheckIntercept(ProjectileCE projectile, Vector3 from, Vector3 newExactPos) { - if (newExactPos.ToIntVec3() == pawn.Position) - { - return true; - } - - var bounds = CE_Utility.GetBoundsFor(pawn); - if (!bounds.IntersectRay(projectile.ShotLine, out var dist)) + var def = projectile.def; + if (projectile.def.projectile.flyOverhead) { return false; } - if (dist * dist > projectile.ExactMinusLastPos.sqrMagnitude + (projectile.minCollisionDistance * 2)) - { - return false; - } - return true; - } - - public static Vector3[] IntersectionPoint(Vector3 p1, Vector3 p2, Vector3 center, float radius) - { - Vector3 dp = new Vector3(); - Vector3[] sect; - float a, b, c; - float bb4ac; - float mu1; - float mu2; - - // get the distance between X and Z on the segment - dp.x = p2.x - p1.x; - dp.z = p2.z - p1.z; - // I don't get the math here - a = dp.x * dp.x + dp.z * dp.z; - b = 2 * (dp.x * (p1.x - center.x) + dp.z * (p1.z - center.z)); - c = center.x * center.x + center.z * center.z; - c += p1.x * p1.x + p1.z * p1.z; - c -= 2 * (center.x * p1.x + center.z * p1.z); - c -= radius * radius; - bb4ac = b * b - 4 * a * c; - if (Mathf.Abs(a) < float.Epsilon || bb4ac < 0) + foreach (var interceptor in projectile.Map.listerThings.ThingsInGroup(ThingRequestGroup.Pawn).Cast() + .SelectMany(x => x.health.hediffSet.hediffs) + .Where(x => x is Hediff_Overshield && x.GetType() != typeof(Hediff_Overshield)).Cast()) { - // line does not intersect - return new Vector3[] { Vector3.zero, Vector3.zero }; + Vector3 shieldPosition = interceptor.pawn.Position.ToVector3ShiftedWithAltitude(0.5f); + float radius = interceptor.OverlaySize; + float blockRadius = radius + def.projectile.SpeedTilesPerTick + 0.1f; + if (CE_Utility.IntersectionPoint(from, newExactPos, shieldPosition, radius, out Vector3[] sect)) + { + OnIntercepted(interceptor, projectile, sect); + return true; + } } - mu1 = (-b + Mathf.Sqrt(bb4ac)) / (2 * a); - mu2 = (-b - Mathf.Sqrt(bb4ac)) / (2 * a); - sect = new Vector3[2]; - sect[0] = new Vector3(p1.x + mu1 * (p2.x - p1.x), 0, p1.z + mu1 * (p2.z - p1.z)); - sect[1] = new Vector3(p1.x + mu2 * (p2.x - p1.x), 0, p1.z + mu2 * (p2.z - p1.z)); - return sect; + return false; } - /// - /// Copy of ProjectileCE method - /// - private static bool IntersectLineSphericalOutline(Vector3 center, float radius, Vector3 pointA, Vector3 pointB) - { - var pointAInShield = (center - pointA).sqrMagnitude <= Mathf.Pow(radius, 2); - var pointBInShield = (center - pointB).sqrMagnitude <= Mathf.Pow(radius, 2); - if (pointAInShield && pointBInShield) + private static void OnIntercepted(Hediff hediff, ProjectileCE projectile, Vector3[] sect) + { + if (!(hediff is Hediff_Overshield interceptor)) { - return false; + return; } - if (!pointAInShield && !pointBInShield) + var newExactPos = projectile.ExactPosition; + if (sect == null) { - return false; + CE_Utility.IntersectionPoint(projectile.OriginIV3.ToVector3(), projectile.ExactPosition, interceptor.pawn.Position.ToVector3(), interceptor.OverlaySize, out sect); } - - return true; + var exactPosition = sect.OrderBy(x => (projectile.OriginIV3.ToVector3() - x).sqrMagnitude).First(); + projectile.ExactPosition = exactPosition; + new Traverse(interceptor).Field("lastInterceptAngle").SetValue(exactPosition.AngleToFlat(interceptor.pawn.TrueCenter())); + new Traverse(interceptor).Field("lastInterceptTicks").SetValue(Find.TickManager.TicksGame); + new Traverse(interceptor).Field("drawInterceptCone").SetValue(true); + + FleckMakerCE.ThrowPsycastShieldFleck(exactPosition, projectile.Map, 0.35f); + projectile.InterceptProjectile(interceptor, projectile.ExactPosition, true); } } } -#endregion diff --git a/Source/CombatExtended/Contrib/ProjectileImpactFX/EffectProjectileExtension.cs b/Source/CombatExtended/Contrib/ProjectileImpactFX/EffectProjectileExtension.cs index 9cbed40350..5183ae580f 100644 --- a/Source/CombatExtended/Contrib/ProjectileImpactFX/EffectProjectileExtension.cs +++ b/Source/CombatExtended/Contrib/ProjectileImpactFX/EffectProjectileExtension.cs @@ -1,131 +1,31 @@ -using RimWorld; -using System; -using UnityEngine; -using Verse; -using Verse.Sound; +using Verse; namespace ProjectileImpactFX { // ProjectileImpactFX.EffectProjectileExtension public class EffectProjectileExtension : DefModExtension { - public bool explosionMote = false; - public string explosionMoteDef = string.Empty; - public float explosionMoteSize = 1f; + public bool AutoAssign = true; + public bool CreateTerrainEffects = true; + + public FleckDef explosionFleckDef; + public float explosionFleckSize = 1f; public EffecterDef explosionEffecter; - public FloatRange? explosionMoteSizeRange; - public string ImpactMoteDef = string.Empty; - public float ImpactMoteSize = 1f; - public FloatRange? ImpactMoteSizeRange; - public string ImpactGlowMoteDef = string.Empty; - public float ImpactGlowMoteSize = 1f; - public FloatRange? ImpactGlowMoteSizeRange; + public FloatRange? explosionFleckSizeRange; + + public FleckDef ImpactFleckDef; + public float ImpactFleckSize = 1f; + public FloatRange? ImpactFleckSizeRange; + public SoundDef ImpactSoundDef; + public FleckDef ImpactGlowFleckDef; + public float ImpactGlowFleckSize = 1f; + public FloatRange? ImpactGlowFleckSizeRange; + public bool muzzleFlare = false; public string muzzleFlareDef = string.Empty; public float muzzleFlareSize = 1f; public bool muzzleSmoke = false; public string muzzleSmokeDef = string.Empty; public float muzzleSmokeSize = 0.35f; - - public void ThrowMote(Vector3 loc, Map map, ThingDef explosionMoteDef, Color color, SoundDef sound, Thing hitThing = null) - { - ThingDef explosionmoteDef = explosionMoteDef; - ThingDef ImpactMoteDef = DefDatabase.GetNamedSilentFail(this.ImpactMoteDef) ?? null; - ThingDef ImpactGlowMoteDef = DefDatabase.GetNamedSilentFail(this.ImpactGlowMoteDef) ?? null; - float explosionSize = this.explosionMoteSize; - float ImpactMoteSize = this.ImpactMoteSizeRange?.RandomInRange ?? this.ImpactMoteSize; - float ImpactGlowMoteSize = this.ImpactGlowMoteSizeRange?.RandomInRange ?? this.ImpactGlowMoteSize; - if (!loc.ShouldSpawnMotesAt(map) || map.moteCounter.SaturatedLowPriority) - { - return; - } - Rand.PushState(); - float rotationRate = Rand.Range(-30f, 30f); - float VelocityAngel = (float)Rand.Range(0, 360); - float VelocitySpeed = Rand.Range(0.48f, 0.72f); - Rand.PopState(); - if (ImpactGlowMoteDef != null) - { - MoteMaker.MakeStaticMote(loc, map, ImpactGlowMoteDef, ImpactGlowMoteSize); - } - if (explosionMote) - { - if (!this.explosionMoteDef.NullOrEmpty()) - { - ThingDef def = DefDatabase.GetNamedSilentFail(this.explosionMoteDef); - if (def != null) - { - explosionmoteDef = def; - } - } - if (explosionmoteDef != null) - { - MoteThrown moteThrown; - moteThrown = (MoteThrown)ThingMaker.MakeThing(explosionmoteDef, null); - moteThrown.Scale = explosionSize; - Rand.PushState(); - moteThrown.rotationRate = Rand.Range(-30f, 30f); - Rand.PopState(); - moteThrown.exactPosition = loc; - moteThrown.instanceColor = color; - moteThrown.SetVelocity(VelocityAngel, VelocitySpeed); - GenSpawn.Spawn(moteThrown, loc.ToIntVec3(), map, WipeMode.Vanish); - } - - } - if (ImpactMoteDef != null) - { - if (hitThing != null && hitThing is Pawn pawn) - { - ImpactMoteDef = ThingDef.Named("Mote_BloodPuff"); - if (sound != null) - { - sound.PlayOneShot(new TargetInfo(loc.ToIntVec3(), map, false)); - } - MoteThrown moteThrown; - moteThrown = (MoteThrown)ThingMaker.MakeThing(ImpactMoteDef, null); - moteThrown.Scale = ImpactMoteSize; - Rand.PushState(); - moteThrown.rotationRate = Rand.Range(-30f, 30f); - Rand.PopState(); - moteThrown.exactPosition = loc; - moteThrown.instanceColor = pawn.RaceProps.BloodDef.graphic.color; - moteThrown.SetVelocity(VelocityAngel, VelocitySpeed); - GenSpawn.Spawn(moteThrown, loc.ToIntVec3(), map, WipeMode.Vanish); - if (explosionEffecter != null) - { - TriggerEffect(explosionEffecter, loc, map, hitThing); - } - } - else - { - if (explosionEffecter != null) - { - TriggerEffect(explosionEffecter, loc, map); - } - MoteMaker.MakeStaticMote(loc, map, ImpactMoteDef, ImpactMoteSize); - } - } - } - - void TriggerEffect(EffecterDef effect, Vector3 position, Map map, Thing hitThing = null) - { - TriggerEffect(effect, IntVec3.FromVector3(position), map); - } - - void TriggerEffect(EffecterDef effect, IntVec3 dest, Map map) - { - if (effect == null) - { - return; - } - - var targetInfo = new TargetInfo(dest, map, false); - - Effecter effecter = effect.Spawn(); - effecter.Trigger(targetInfo, targetInfo); - effecter.Cleanup(); - } - } } diff --git a/Source/CombatExtended/Contrib/ProjectileImpactFX/ImpactFleckThrower.cs b/Source/CombatExtended/Contrib/ProjectileImpactFX/ImpactFleckThrower.cs new file mode 100644 index 0000000000..f61081b4dc --- /dev/null +++ b/Source/CombatExtended/Contrib/ProjectileImpactFX/ImpactFleckThrower.cs @@ -0,0 +1,206 @@ +using CombatExtended; +using RimWorld; +using System.Linq; +using UnityEngine; +using Verse; +using Verse.Sound; + +namespace ProjectileImpactFX +{ + public static class ImpactFleckThrower + { + public static void ThrowFleck(Vector3 loc, IntVec3 position, Map map, ProjectilePropertiesCE projProps, ThingDef def, Thing hitThing = null, float direction = 0) + { + if (!loc.ShouldSpawnMotesAt(map) || map.moteCounter.SaturatedLowPriority) + { + return; + } + EffectProjectileExtension ext = def.HasModExtension() ? def.GetModExtension() : new EffectProjectileExtension(); + FleckDef ExplosionFleck = ext.explosionFleckDef; + FleckDef ImpactFleck = ext.ImpactFleckDef; + FleckDef ImpactGlowFleck = ext.ImpactGlowFleckDef; + SoundDef ImpactSound = ext.ImpactSoundDef; + float ExplosionFleckSize = ext.explosionFleckSizeRange?.RandomInRange ?? ext.explosionFleckSize; + float ImpactFleckSize = ext.ImpactFleckSizeRange?.RandomInRange ?? ext.ImpactFleckSize; + float ImpactGlowFleckSize = ext.ImpactGlowFleckSizeRange?.RandomInRange ?? ext.ImpactGlowFleckSize; + + Rand.PushState(); + float rotationRate = Rand.Range(-30f, 30f); + float VelocitySpeed = Rand.Range(0.5f, 1.0f); + int ImpactFleckCount = 1; + float ImpactFleckAirTimeLeft = 5f; + + //angle order for multiple smoke flecks going out: first one always up, 2nd and 3rd to the sides, rest random + float[] velocityAngleArray = { 0f, -60f, 60f }; + + DamageDef damageDef = projProps.damageDef; + if (ext.AutoAssign) + { + if (!projProps.secondaryDamage.NullOrEmpty()) + { + SecondaryDamage secondaryDamage = projProps.secondaryDamage.FirstOrDefault(); + if (secondaryDamage != null && (secondaryDamage.def == CE_DamageDefOf.Flame_Secondary || secondaryDamage.def == CE_DamageDefOf.PrometheumFlame)) + {//API ammo + ExplosionFleck = FleckDefOf.MicroSparksFast; + ExplosionFleckSize = ScaleToRange(0.2f, 2.0f, 1, 100, secondaryDamage.amount); + ImpactGlowFleck = CE_FleckDefOf.Fleck_HeatGlow_API; + ImpactGlowFleckSize = ExplosionFleckSize * 4f; + + } + else if (secondaryDamage != null && (secondaryDamage.def == CE_DamageDefOf.Bomb_Secondary)) + {//AP-HE ammo + ExplosionFleck = CE_FleckDefOf.BlastFlame; + ExplosionFleckSize = ScaleToRange(0.2f, 1.8f, 1, 100, secondaryDamage.amount); + ImpactGlowFleck = FleckDefOf.ExplosionFlash; + ImpactGlowFleckSize = ExplosionFleckSize * 7; + } + else if (secondaryDamage.def == DamageDefOf.EMP) + {//Ion ammo + ExplosionFleck = CE_FleckDefOf.ElectricalSpark; + ExplosionFleckSize = ScaleToRange(0.5f, 4f, 6, 30, secondaryDamage.amount); + ImpactGlowFleck = CE_FleckDefOf.Fleck_ElectricGlow_EMP; + ImpactGlowFleckSize = ImpactFleckSize * 3; + } + } + else if (damageDef == DamageDefOf.EMP && projProps.explosionRadius == 0) + {//shotgun EMP and similar + ExplosionFleck = CE_FleckDefOf.ElectricalSpark; + ExplosionFleckSize = ScaleToRange(0.5f, 4f, 6, 30, projProps.damageAmountBase); + ImpactGlowFleck = CE_FleckDefOf.Fleck_ElectricGlow_EMP; + ImpactGlowFleckSize = ImpactFleckSize * 3; + } + } + if (ext.CreateTerrainEffects) + { + if (hitThing == null) + {//if bullet landed on ground + TerrainDef terrain = position.GetTerrain(map); + ImpactFleckSize = ScaleToRange(1.0f, 3.0f, 10, 50, projProps.damageAmountBase); + if (projProps.damageAmountBase > 30) + { + ImpactFleckCount = 3; + VelocitySpeed = Rand.Range(1.5f, 2f); + ImpactFleckSize /= 2; + } + + //Water effects temporarily disabled due to no effecter texture + + //if (terrain.takeSplashes) + //{//water and swamp impact + // //ImpactFleck = CE_FleckDefOf.Fleck_BulletWaterSplash; + // TriggerWaterSplashes(loc, map, 5); + //} + if (terrain.takeFootprints) + {//soil and sand impact + ImpactFleck = FleckDefOf.DustPuffThick; + VelocitySpeed /= 2; + ImpactFleckSize = ScaleToRange(2.0f, 4.0f, 10, 50, projProps.damageAmountBase); + } + else if (terrain.holdSnow && (damageDef == DamageDefOf.Bullet || damageDef == DamageDefOf.Arrow)) + {//concrete and stone impact from shots. Only terrains that don't hold snow are non-solid ones, like water and vacuum from SOS2 + ImpactFleck = FleckDefOf.AirPuff; + TriggerBulletHole(loc, map, projProps.damageAmountBase < 50 ? ScaleToRange(0.1f, 0.7f, 1, 50, projProps.damageAmountBase) : 0.7f); + TriggerScatteredSparks(loc, map, projProps.damageAmountBase >= 10 && Rand.Chance(0.5f) ? (int)ScaleToRange(3, 15, 10, 100, projProps.damageAmountBase) : 2, direction > 0 ? 360 - direction : 0 - direction); + + } + } + if (hitThing is Building) + {//bullets that hit a building spread evenly over the building's texture + float offsetX = 0.3f * hitThing.DrawSize.x; + float offsetY = 0.3f * hitThing.DrawSize.y; + TriggerBulletHole(hitThing.DrawPos + new Vector3(Rand.Range(-offsetX, offsetX), 0f, Rand.Range(-offsetY, offsetY)), map, projProps.damageAmountBase < 50 ? ScaleToRange(0.1f, 0.7f, 1, 50, projProps.damageAmountBase) : 0.7f); + } + } + + if (ext.explosionEffecter != null) + { + TriggerEffect(ext.explosionEffecter, loc, map); + } + if (ImpactFleck != null) + { + FleckCreationData creationData = FleckMaker.GetDataStatic(loc, map, ImpactFleck); + for (int i = 0; i < ImpactFleckCount; i++) + { + creationData.rotation = Rand.Range(0, 360); + creationData.velocityAngle = i < 3 ? velocityAngleArray[i] : Rand.Range(-90, 90); + creationData.velocitySpeed = VelocitySpeed; + creationData.scale = ImpactFleckSize; + creationData.spawnPosition = loc; + creationData.spawnPosition.y += 3f; + creationData.airTimeLeft = ImpactFleckAirTimeLeft; + map.flecks.CreateFleck(creationData); + } + } + if (ImpactGlowFleck != null) + { + FleckCreationData creationData = FleckMaker.GetDataStatic(loc, map, ImpactGlowFleck); + creationData.scale = ImpactGlowFleckSize; + map.flecks.CreateFleck(creationData); + } + + if (ExplosionFleck != null) + { + FleckCreationData creationData = FleckMaker.GetDataStatic(loc, map, ExplosionFleck); + creationData.scale = ExplosionFleckSize; + creationData.rotationRate = rotationRate; + creationData.spawnPosition = loc; + creationData.instanceColor = projProps.damageDef.explosionColorCenter; + map.flecks.CreateFleck(creationData); + } + + if (ImpactSound != null) + { + ImpactSound.PlayOneShot(new TargetInfo(loc.ToIntVec3(), map)); + } + Rand.PopState(); + } + + private static void TriggerBulletHole(Vector3 loc, Map map, float size) + { + + FleckCreationData creationData = FleckMaker.GetDataStatic(loc, map, CE_FleckDefOf.Fleck_BulletHole); + creationData.rotation = Rand.Range(0, 360); + creationData.scale = size; + creationData.spawnPosition = loc; + map.flecks.CreateFleck(creationData); + } + + private static void TriggerScatteredSparks(Vector3 loc, Map map, int count, float direction) + { + FleckCreationData creationData = FleckMaker.GetDataStatic(loc, map, CE_FleckDefOf.Fleck_SparkThrownFast); + for (int i = 0; i < count; i++) + { + creationData.velocityAngle = direction + Rand.Range(-45, 45); + creationData.scale = 0.2f; + creationData.velocitySpeed = Rand.Range(5, 10); + creationData.spawnPosition = loc; + creationData.airTimeLeft = 0.2f; + map.flecks.CreateFleck(creationData); + } + } + + private static float ScaleToRange(float minNew, float maxNew, float minOld, float maxOld, float value) + { + return minNew + (value - minOld) / (maxOld - minOld) * (maxNew - minNew); + } + + public static void TriggerEffect(EffecterDef effect, Vector3 position, Map map, Thing hitThing = null) + { + TriggerEffect(effect, IntVec3.FromVector3(position), map); + } + + public static void TriggerEffect(EffecterDef effect, IntVec3 dest, Map map) + { + if (effect == null) + { + return; + } + + var targetInfo = new TargetInfo(dest, map, false); + + Effecter effecter = effect.Spawn(); + effecter.Trigger(targetInfo, targetInfo); + effecter.Cleanup(); + } + } +} diff --git a/Source/CombatExtended/Contrib/ProjectileImpactFX/TrailThrower.cs b/Source/CombatExtended/Contrib/ProjectileImpactFX/TrailThrower.cs index f73a984297..b3eeb23957 100644 --- a/Source/CombatExtended/Contrib/ProjectileImpactFX/TrailThrower.cs +++ b/Source/CombatExtended/Contrib/ProjectileImpactFX/TrailThrower.cs @@ -1,9 +1,4 @@ using RimWorld; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; using UnityEngine; using Verse; @@ -11,31 +6,27 @@ namespace ProjectileImpactFX { public class TrailThrower { - public static void ThrowSmoke(Vector3 loc, float size, Map map, string DefName) + public static void ThrowSmoke(Vector3 loc, float size, Map map, string defName) { if (!loc.ShouldSpawnMotesAt(map) || map.moteCounter.SaturatedLowPriority) { return; } + FleckDef fleck = DefDatabase.GetNamed(defName) ?? null; - //Rand.PushState(); - //MoteThrown moteThrown = (MoteThrown)ThingMaker.MakeThing(ThingDefOf.Mote_Smoke, null); - //moteThrown.Scale = Rand.Range(1.5f, 2.5f) * size; - //moteThrown.rotationRate = Rand.Range(-30f, 30f); - //moteThrown.exactPosition = loc; - //moteThrown.SetVelocity((float)Rand.Range(30, 40), Rand.Range(0.5f, 0.7f)); - //Rand.PopState(); - //GenSpawn.Spawn(moteThrown, loc.ToIntVec3(), map, WipeMode.Vanish); + if (fleck != null) + { + Rand.PushState(); + FleckCreationData dataStatic = FleckMaker.GetDataStatic(loc, map, fleck, Rand.Range(1.5f, 2.5f) * size); - Rand.PushState(); - FleckCreationData dataStatic = FleckMaker.GetDataStatic(loc, map, FleckDefOf.Smoke, Rand.Range(1.5f, 2.5f) * size); + dataStatic.rotationRate = Rand.Range(-30f, 30f); + dataStatic.velocityAngle = (float)Rand.Range(30, 40); + dataStatic.velocitySpeed = Rand.Range(0.5f, 0.7f); - dataStatic.rotationRate = Rand.Range(-30f, 30f); - dataStatic.velocityAngle = (float)Rand.Range(30, 40); - dataStatic.velocitySpeed = Rand.Range(0.5f, 0.7f); + Rand.PopState(); + map.flecks.CreateFleck(dataStatic); + } - Rand.PopState(); - map.flecks.CreateFleck(dataStatic); } } } diff --git a/Source/CombatExtended/Contrib/ProjectileImpactFX/TrailerProjectileExtension.cs b/Source/CombatExtended/Contrib/ProjectileImpactFX/TrailerProjectileExtension.cs index 6ece276fcd..c83e4ed5b2 100644 --- a/Source/CombatExtended/Contrib/ProjectileImpactFX/TrailerProjectileExtension.cs +++ b/Source/CombatExtended/Contrib/ProjectileImpactFX/TrailerProjectileExtension.cs @@ -9,7 +9,7 @@ namespace ProjectileImpactFX // ProjectileImpactFX.TrailerProjectileExtension public class TrailerProjectileExtension : DefModExtension { - public string trailMoteDef = "Mote_Smoke"; + public string trailMoteDef = "AirPuff"; public float trailMoteSize = 0.5f; public int trailerMoteInterval = 30; public int motesThrown = 1; diff --git a/Source/CombatExtended/Harmony/Harmony_PawnRenderer.cs b/Source/CombatExtended/Harmony/Harmony_PawnRenderer.cs index 463d2a2216..d611942154 100644 --- a/Source/CombatExtended/Harmony/Harmony_PawnRenderer.cs +++ b/Source/CombatExtended/Harmony/Harmony_PawnRenderer.cs @@ -2,6 +2,7 @@ using System.Collections; using System.Collections.Generic; using System.Linq; +using System.Net; using System.Reflection; using System.Reflection.Emit; using System.Runtime.CompilerServices; @@ -403,14 +404,31 @@ internal static class Harmony_PawnRenderer_DrawEquipmentAiming private static Pawn pawn; + private static Vector3 recoilOffset = new Vector3(); + + private static float muzzleJump = 0; + + 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 RecoilCE(Thing eq, Vector3 position, float aimAngle, float num, CompEquippable compEquippable) + { + if (Controller.settings.RecoilAnim && compEquippable.PrimaryVerb.verbProps is VerbPropertiesCE) + { + CE_Utility.Recoil(eq.def, compEquippable.PrimaryVerb, out var drawOffset, out var angleOffset, aimAngle, true); + recoilOffset = drawOffset; + muzzleJump = angleOffset; + } } private static void DrawMesh(Mesh mesh, Matrix4x4 matrix, Material mat, int layer, Thing eq, Vector3 position, float aimAngle) @@ -419,11 +437,19 @@ 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; + muzzleJump = -muzzleJump; + casingOffset.x *= -1; + } + matrix.SetTRS(position + posVec.RotatedBy(matrix.rotation.eulerAngles.y) + recoilOffset, Quaternion.AngleAxis(matrix.rotation.eulerAngles.y + muzzleJump, Vector3.up), scale); + CompEquippable compEquippable = eq.TryGetComp(); + if (compEquippable != null && compEquippable.PrimaryVerb is Verb_ShootCE verbCE) + { + verbCE.drawPos = casingDrawPos + (casingOffset + posVec).RotatedBy(matrix.rotation.eulerAngles.y); } - matrix.SetTRS(position + posVec.RotatedBy(matrix.rotation.eulerAngles.y), matrix.rotation, scale); if (eq is WeaponPlatform platform) { platform.DrawPlatform(matrix, mesh == MeshPool.plane10Flip, layer); @@ -434,12 +460,38 @@ private static void DrawMesh(Mesh mesh, Matrix4x4 matrix, Material mat, int laye } } + /* * This replace the last DrawMesh in */ internal static IEnumerable Transpiler(IEnumerable instructions) { var codes = instructions.ToList(); + var recoil_opcodes = new CodeInstruction[] + { + new CodeInstruction(OpCodes.Ldarg_1), + new CodeInstruction(OpCodes.Ldarg_2), + new CodeInstruction(OpCodes.Ldarg_3), + new CodeInstruction(OpCodes.Ldloc_1), + new CodeInstruction(OpCodes.Ldloc_2), + new CodeInstruction(OpCodes.Call, AccessTools.Method(typeof(Harmony_PawnRenderer_DrawEquipmentAiming), nameof(RecoilCE))) + }; + bool foundRecoil = false; + int index = 0; + for (int i = 0; i < codes.Count; i++) + { + CodeInstruction code = codes[i]; + if (foundRecoil && code.opcode == OpCodes.Stloc_1) + { + index = i + 1; + break; + } + else if (code.opcode == OpCodes.Call && ReferenceEquals(code.operand, typeof(EquipmentUtility).GetMethod("Recoil"))) + { + foundRecoil = true; + } + } + codes.InsertRange(index, recoil_opcodes); codes[codes.Count - 2].operand = AccessTools.Method(typeof(Harmony_PawnRenderer_DrawEquipmentAiming), nameof(DrawMesh)); codes.InsertRange(codes.Count - 2, new[] diff --git a/Source/CombatExtended/Harmony/Harmony_Pawn_DraftController.cs b/Source/CombatExtended/Harmony/Harmony_Pawn_DraftController.cs index 73608b7ad0..4f5c0d031f 100644 --- a/Source/CombatExtended/Harmony/Harmony_Pawn_DraftController.cs +++ b/Source/CombatExtended/Harmony/Harmony_Pawn_DraftController.cs @@ -4,6 +4,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; +using CombatExtended.Compatibility; using Verse.AI; namespace CombatExtended.HarmonyCE @@ -16,6 +17,16 @@ public static void Postfix(Pawn_DraftController __instance, bool ___fireAtWillIn { if (!___fireAtWillInt) { + // In Multiplayer, the FireAtWill setter is marked as a sync method. + // Due to how those work - the method will be stopped from running, the call synchronized to all players and then will run + // fully. However, because of how Harmony works all prefixes, postfixes, finalizers will still run - which will cause issues + // as this postfix will run before it ends up being synchronized in Multiplayer. + // Once Multiplayer API exposes `InInterface` method, it should replace this check (as it'll better handle a few edge cases). + if (Multiplayer.InMultiplayer && !Multiplayer.IsExecutingCommands) + { + return; + } + var jobTracker = __instance.pawn.jobs; foreach (var queuedJob in jobTracker.jobQueue.ToList()) { diff --git a/Source/MultiplayerCompat/MultiplayerCompat/MultiplayerCompat.cs b/Source/MultiplayerCompat/MultiplayerCompat/MultiplayerCompat.cs index 37787a498f..6612c50c92 100644 --- a/Source/MultiplayerCompat/MultiplayerCompat/MultiplayerCompat.cs +++ b/Source/MultiplayerCompat/MultiplayerCompat/MultiplayerCompat.cs @@ -65,7 +65,7 @@ public void SlowInit(ModContentPack content) MP.RegisterAll(); - global::CombatExtended.Compatibility.Multiplayer.registerCallbacks((() => MP.IsInMultiplayer), (() => MP.IsExecutingSyncCommandIssuedBySelf)); + global::CombatExtended.Compatibility.Multiplayer.registerCallbacks((() => MP.IsInMultiplayer), (() => MP.IsExecutingSyncCommand), (() => MP.IsExecutingSyncCommandIssuedBySelf)); } diff --git a/Source/VehiclesCompat/VehiclesCompat/VehiclesCompat.cs b/Source/VehiclesCompat/VehiclesCompat/VehiclesCompat.cs index 97f4808a4b..3437e71126 100644 --- a/Source/VehiclesCompat/VehiclesCompat/VehiclesCompat.cs +++ b/Source/VehiclesCompat/VehiclesCompat/VehiclesCompat.cs @@ -13,7 +13,6 @@ namespace CombatExtended.Compatibility.VehiclesCompat { - [StaticConstructorOnStartup] public class VehiclesCompat : IModPart { public Type GetSettingsType() @@ -29,10 +28,31 @@ public void PostLoad(ModContentPack content, ISettingsCE _) VehicleTurret.ProjectileAngleCE = ProjectileAngleCE; VehicleTurret.LookupAmmosetCE = LookupAmmosetCE; VehicleTurret.LaunchProjectileCE = LaunchProjectileCE; + VehicleTurret.LookupProjectileCountAndSpreadCE = LookupProjectileCountAndSpreadCE; global::CombatExtended.Compatibility.Patches.RegisterCollisionBodyFactorCallback(_GetCollisionBodyFactors); global::CombatExtended.Compatibility.Patches.UsedAmmoCallbacks.Add(_GetUsedAmmo); } + public static Tuple LookupProjectileCountAndSpreadCE(ThingDef _ammoDef, Def _ammosetDef, float spread) + { + if (_ammoDef is AmmoDef ammoDef && _ammosetDef is AmmoSetDef ammosetDef) + { + foreach (var al in ammosetDef.ammoTypes) + { + if (al.ammo == ammoDef) + { + var projectileDef = al.projectile; + if (projectileDef.projectile is ProjectilePropertiesCE pprop) + { + return new Tuple(pprop.pelletCount, spread * pprop.spreadMult); + } + break; + } + } + } + return new Tuple(1, spread); + } + public static Def LookupAmmosetCE(string defName) { return DefDatabase.AllDefs.Where(x => x.defName == defName).First(); @@ -40,13 +60,31 @@ public static Def LookupAmmosetCE(string defName) public static IEnumerable _GetUsedAmmo() { - foreach (VehicleTurretDef vtd in DefDatabase.AllDefs) + if (Controller.settings.EnableAmmoSystem) { - foreach (ThingDef td in vtd?.ammunition?.AllowedThingDefs) + foreach (VehicleTurretDef vtd in DefDatabase.AllDefs) { - if (td is AmmoDef ad) + if (vtd.GetModExtension() is CETurretDataDefModExtension cetddme) { - yield return td; + if (cetddme.ammoSet != null) + { + AmmoSetDef asd = (AmmoSetDef)LookupAmmosetCE(cetddme.ammoSet); + if (Controller.settings.GenericAmmo && asd?.similarTo != null) + { + asd = asd.similarTo; + } + if (asd != null) + { + cetddme._ammoSet = asd; + HashSet allowedAmmo = (HashSet)vtd.ammunition?.AllowedThingDefs; + allowedAmmo.Clear(); + foreach (var al in asd.ammoTypes) + { + allowedAmmo.Add(al.ammo); + yield return al.ammo; + } + } + } } } } diff --git a/Source/packages/Vehicles-reference.dll b/Source/packages/Vehicles-reference.dll index 7754af8032..5f2291ae6c 100644 Binary files a/Source/packages/Vehicles-reference.dll and b/Source/packages/Vehicles-reference.dll differ diff --git a/SupportedThirdPartyMods.md b/SupportedThirdPartyMods.md index a7bcdea2d6..4361f7192a 100644 --- a/SupportedThirdPartyMods.md +++ b/SupportedThirdPartyMods.md @@ -77,7 +77,9 @@ Alpha Mechs | Alpha Memes | Alpha Mythology | Alpha Ships | +Alpha Vehicles - Neolithic | Altered Carbon | +Ancient Arsenal: Warcaskets | Ancient Blade Cyborg | Ancient Eastern Armory | Ancient Fallout Armory | @@ -192,7 +194,9 @@ Erin's Miqo'te | Erin's Mountain Animals | Erin's Sephyr | Erin's Shisune | +Erin's Valheim Creatures | Erin's Viera | +ESCP - Spriggan | ESCP - Trolls | EvolvedOrgansRedux | Exotic Arsenal | @@ -227,6 +231,7 @@ Frontline Collection | FROG Suit Set | Fuck it Unboomas Your Lope | Gas Traps And Shells | +Gestalt Engine | Giddy-Up 2 | Gimmicks | Girls' Frontline Apparel Pack | @@ -250,6 +255,9 @@ High Tech Laboratory Facilities | Hive Armory | Idhale Race | Impact Weaponry | +Imperial Arsenal: Royal Warcasket | +Individuality | +Industrial Melee Weaponry | Infinity Rim: Ariadna (Continued) | Infused 2 Expansion | Infusion 2 | @@ -278,7 +286,7 @@ Let's Have a Cat! | Littluna Race | Logann Race | Logistics_Mechanoid | -Magic Wands | +Machines of War | Makeshift Melee Weapons | Marilyn the Mincho Worshipper Witch | Mass Effect - Playable Geth | @@ -294,6 +302,7 @@ Medieval Overhaul | Medieval Quest Rewards | Medieval Tailor | Megafauna | +Metal Gear Rimworld - Gekko | MH: Android Tiers | MH: Android Tiers Core | MH: Mechanical Biomimetics | @@ -354,10 +363,12 @@ Polarisbloc - Security Force | Poleepkwa Race | Possessed Weapons | pphhyy's Demigryphs | +phynilla Expanded Mechs Scyther | pphhyy Sanguinary Animals | Prestige Specialist Armours | Project RimFactory - Materials | Prostheses+ | +Protoswords | PsiTech | Pulsefire Turret (Continued) | Rabbie The Moonrabbit | @@ -392,6 +403,7 @@ Rim-Effect: N7 | Rimedieval - Medieval Royalty | Rimefeller | RimEffect - Asari of the Rims | +Rim-Gnoblins | Rim-Hivers! | Rim Flood | Rim-Robots_ | @@ -445,6 +457,7 @@ Tactical Extremity Protection [BAL] | Textiles+ (continued) | The Corporation - Mort's Factions | The Mantodean insectoid race | +The Wild Fields - apparel and weapons | T-45b Power Armor | The GiantRace | The Joris Experience | @@ -456,7 +469,6 @@ TouhouStyle | Trading Economy | Tribal Warrior Set! | Tsar Armory | -Turk's Guns | Turret Collection | Twi'lek Race | T's Conversion Staff | @@ -517,6 +529,7 @@ Vanilla Weapons Expanded - Tribal | Vanilla Storytellers Expanded - Perry Persistent | Vanilla Storytellers Expanded - Winston Waves | Vanilla XCOM Weapons | +Vehicle Framework Expanded - Classic Mechs | VFE - Mechanoids : Drones | VFE - Mechanoids : Unoffical Add-On | VGP Fabrics | @@ -527,6 +540,7 @@ WarCasket Expanded | WarCasket Gundam Addon | Warcasket Persona Weapons | Warcaskets: Adeptus Astartes | +Wasters Toxic Breather | Weapons+ | WWII German Uniforms - V's Edit | WWII Soviet Faction | diff --git a/Textures/Things/Ammo/Cannon/120mmTank/Canister.png b/Textures/Things/Ammo/Cannon/120mmTank/Canister.png deleted file mode 100644 index 8cd1c9d603..0000000000 Binary files a/Textures/Things/Ammo/Cannon/120mmTank/Canister.png and /dev/null differ diff --git a/Textures/Things/Ammo/Cannon/120mmTank/HE.png b/Textures/Things/Ammo/Cannon/120mmTank/HE.png deleted file mode 100644 index c998fea286..0000000000 Binary files a/Textures/Things/Ammo/Cannon/120mmTank/HE.png and /dev/null differ diff --git a/Textures/Things/Ammo/Cannon/120mmTank/HEAT.png b/Textures/Things/Ammo/Cannon/120mmTank/HEAT.png deleted file mode 100644 index 569704fd6e..0000000000 Binary files a/Textures/Things/Ammo/Cannon/120mmTank/HEAT.png and /dev/null differ diff --git a/Textures/Things/Ammo/Cannon/120mmTank/Sabot.png b/Textures/Things/Ammo/Cannon/120mmTank/Sabot.png deleted file mode 100644 index fed1469f03..0000000000 Binary files a/Textures/Things/Ammo/Cannon/120mmTank/Sabot.png and /dev/null differ diff --git a/Textures/Things/Ammo/Cannon/762x385mmR/EMP.png b/Textures/Things/Ammo/Cannon/762x385mmR/EMP.png deleted file mode 100644 index 8280a8348d..0000000000 Binary files a/Textures/Things/Ammo/Cannon/762x385mmR/EMP.png and /dev/null differ diff --git a/Textures/Things/Ammo/Cannon/762x385mmR/HE.png b/Textures/Things/Ammo/Cannon/762x385mmR/HE.png deleted file mode 100644 index d43a2f7c2d..0000000000 Binary files a/Textures/Things/Ammo/Cannon/762x385mmR/HE.png and /dev/null differ diff --git a/Textures/Things/Ammo/Cannon/762x385mmR/HEAT.png b/Textures/Things/Ammo/Cannon/762x385mmR/HEAT.png deleted file mode 100644 index 7c8aca9953..0000000000 Binary files a/Textures/Things/Ammo/Cannon/762x385mmR/HEAT.png and /dev/null differ diff --git a/Textures/Things/Ammo/Cannon/Flak/APHE/APHE_a.png b/Textures/Things/Ammo/Cannon/Flak/APHE/APHE_a.png deleted file mode 100644 index c234163fe6..0000000000 Binary files a/Textures/Things/Ammo/Cannon/Flak/APHE/APHE_a.png and /dev/null differ diff --git a/Textures/Things/Ammo/Cannon/Flak/APHE/APHE_b.png b/Textures/Things/Ammo/Cannon/Flak/APHE/APHE_b.png deleted file mode 100644 index 13c5320ea7..0000000000 Binary files a/Textures/Things/Ammo/Cannon/Flak/APHE/APHE_b.png and /dev/null differ diff --git a/Textures/Things/Ammo/Cannon/Flak/APHE/APHE_c.png b/Textures/Things/Ammo/Cannon/Flak/APHE/APHE_c.png deleted file mode 100644 index b6aae902fd..0000000000 Binary files a/Textures/Things/Ammo/Cannon/Flak/APHE/APHE_c.png and /dev/null differ diff --git a/Textures/Things/Ammo/Cannon/Flak/EMP/EMP_a.png b/Textures/Things/Ammo/Cannon/Flak/EMP/EMP_a.png deleted file mode 100644 index fec1f6c949..0000000000 Binary files a/Textures/Things/Ammo/Cannon/Flak/EMP/EMP_a.png and /dev/null differ diff --git a/Textures/Things/Ammo/Cannon/Flak/EMP/EMP_b.png b/Textures/Things/Ammo/Cannon/Flak/EMP/EMP_b.png deleted file mode 100644 index 6d465b5b1e..0000000000 Binary files a/Textures/Things/Ammo/Cannon/Flak/EMP/EMP_b.png and /dev/null differ diff --git a/Textures/Things/Ammo/Cannon/Flak/EMP/EMP_c.png b/Textures/Things/Ammo/Cannon/Flak/EMP/EMP_c.png deleted file mode 100644 index 9374dae051..0000000000 Binary files a/Textures/Things/Ammo/Cannon/Flak/EMP/EMP_c.png and /dev/null differ diff --git a/Textures/Things/Ammo/Cannon/Flak/HE/HE_a.png b/Textures/Things/Ammo/Cannon/Flak/HE/HE_a.png deleted file mode 100644 index 24b203b277..0000000000 Binary files a/Textures/Things/Ammo/Cannon/Flak/HE/HE_a.png and /dev/null differ diff --git a/Textures/Things/Ammo/Cannon/Flak/HE/HE_b.png b/Textures/Things/Ammo/Cannon/Flak/HE/HE_b.png deleted file mode 100644 index c515d391a5..0000000000 Binary files a/Textures/Things/Ammo/Cannon/Flak/HE/HE_b.png and /dev/null differ diff --git a/Textures/Things/Ammo/Cannon/Flak/HE/HE_c.png b/Textures/Things/Ammo/Cannon/Flak/HE/HE_c.png deleted file mode 100644 index c3ba0fd7ee..0000000000 Binary files a/Textures/Things/Ammo/Cannon/Flak/HE/HE_c.png and /dev/null differ diff --git a/Textures/Things/Ammo/Cannon/Flak/HEAT/HEAT_a.png b/Textures/Things/Ammo/Cannon/Flak/HEAT/HEAT_a.png deleted file mode 100644 index 883537b7ba..0000000000 Binary files a/Textures/Things/Ammo/Cannon/Flak/HEAT/HEAT_a.png and /dev/null differ diff --git a/Textures/Things/Ammo/Cannon/Flak/HEAT/HEAT_b.png b/Textures/Things/Ammo/Cannon/Flak/HEAT/HEAT_b.png deleted file mode 100644 index 899cf22f38..0000000000 Binary files a/Textures/Things/Ammo/Cannon/Flak/HEAT/HEAT_b.png and /dev/null differ diff --git a/Textures/Things/Ammo/Cannon/Flak/HEAT/HEAT_c.png b/Textures/Things/Ammo/Cannon/Flak/HEAT/HEAT_c.png deleted file mode 100644 index 93128e7f9f..0000000000 Binary files a/Textures/Things/Ammo/Cannon/Flak/HEAT/HEAT_c.png and /dev/null differ diff --git a/Textures/Things/Ammo/Cannon/Tank/AP/AP_a.png b/Textures/Things/Ammo/Cannon/Tank/AP/AP_a.png new file mode 100644 index 0000000000..d0df4f7483 Binary files /dev/null and b/Textures/Things/Ammo/Cannon/Tank/AP/AP_a.png differ diff --git a/Textures/Things/Ammo/Cannon/Tank/AP/AP_b.png b/Textures/Things/Ammo/Cannon/Tank/AP/AP_b.png new file mode 100644 index 0000000000..d4d3eda60a Binary files /dev/null and b/Textures/Things/Ammo/Cannon/Tank/AP/AP_b.png differ diff --git a/Textures/Things/Ammo/Cannon/Tank/AP/AP_c.png b/Textures/Things/Ammo/Cannon/Tank/AP/AP_c.png new file mode 100644 index 0000000000..92e3fce45e Binary files /dev/null and b/Textures/Things/Ammo/Cannon/Tank/AP/AP_c.png differ diff --git a/Textures/Things/Ammo/Cannon/Tank/APCR/APCR_a.png b/Textures/Things/Ammo/Cannon/Tank/APCR/APCR_a.png new file mode 100644 index 0000000000..b0c52df340 Binary files /dev/null and b/Textures/Things/Ammo/Cannon/Tank/APCR/APCR_a.png differ diff --git a/Textures/Things/Ammo/Cannon/Tank/APCR/APCR_b.png b/Textures/Things/Ammo/Cannon/Tank/APCR/APCR_b.png new file mode 100644 index 0000000000..040cce21c7 Binary files /dev/null and b/Textures/Things/Ammo/Cannon/Tank/APCR/APCR_b.png differ diff --git a/Textures/Things/Ammo/Cannon/Tank/APCR/APCR_c.png b/Textures/Things/Ammo/Cannon/Tank/APCR/APCR_c.png new file mode 100644 index 0000000000..cf867bc167 Binary files /dev/null and b/Textures/Things/Ammo/Cannon/Tank/APCR/APCR_c.png differ diff --git a/Textures/Things/Ammo/Cannon/Tank/APHE/APHE_a.png b/Textures/Things/Ammo/Cannon/Tank/APHE/APHE_a.png new file mode 100644 index 0000000000..edb73d9f0d Binary files /dev/null and b/Textures/Things/Ammo/Cannon/Tank/APHE/APHE_a.png differ diff --git a/Textures/Things/Ammo/Cannon/Tank/APHE/APHE_b.png b/Textures/Things/Ammo/Cannon/Tank/APHE/APHE_b.png new file mode 100644 index 0000000000..9ed121a341 Binary files /dev/null and b/Textures/Things/Ammo/Cannon/Tank/APHE/APHE_b.png differ diff --git a/Textures/Things/Ammo/Cannon/Tank/APHE/APHE_c.png b/Textures/Things/Ammo/Cannon/Tank/APHE/APHE_c.png new file mode 100644 index 0000000000..d4c36bb218 Binary files /dev/null and b/Textures/Things/Ammo/Cannon/Tank/APHE/APHE_c.png differ diff --git a/Textures/Things/Ammo/Cannon/Tank/Canister/Canister_a.png b/Textures/Things/Ammo/Cannon/Tank/Canister/Canister_a.png new file mode 100644 index 0000000000..508872e197 Binary files /dev/null and b/Textures/Things/Ammo/Cannon/Tank/Canister/Canister_a.png differ diff --git a/Textures/Things/Ammo/Cannon/Tank/Canister/Canister_b.png b/Textures/Things/Ammo/Cannon/Tank/Canister/Canister_b.png new file mode 100644 index 0000000000..8f9ab5f01f Binary files /dev/null and b/Textures/Things/Ammo/Cannon/Tank/Canister/Canister_b.png differ diff --git a/Textures/Things/Ammo/Cannon/Tank/Canister/Canister_c.png b/Textures/Things/Ammo/Cannon/Tank/Canister/Canister_c.png new file mode 100644 index 0000000000..cfce902220 Binary files /dev/null and b/Textures/Things/Ammo/Cannon/Tank/Canister/Canister_c.png differ diff --git a/Textures/Things/Ammo/Cannon/Tank/EMP/EMP_a.png b/Textures/Things/Ammo/Cannon/Tank/EMP/EMP_a.png new file mode 100644 index 0000000000..d21b91dab7 Binary files /dev/null and b/Textures/Things/Ammo/Cannon/Tank/EMP/EMP_a.png differ diff --git a/Textures/Things/Ammo/Cannon/Tank/EMP/EMP_b.png b/Textures/Things/Ammo/Cannon/Tank/EMP/EMP_b.png new file mode 100644 index 0000000000..877fac4e20 Binary files /dev/null and b/Textures/Things/Ammo/Cannon/Tank/EMP/EMP_b.png differ diff --git a/Textures/Things/Ammo/Cannon/Tank/EMP/EMP_c.png b/Textures/Things/Ammo/Cannon/Tank/EMP/EMP_c.png new file mode 100644 index 0000000000..e04e16dbe6 Binary files /dev/null and b/Textures/Things/Ammo/Cannon/Tank/EMP/EMP_c.png differ diff --git a/Textures/Things/Ammo/Cannon/Tank/HE/HE_a.png b/Textures/Things/Ammo/Cannon/Tank/HE/HE_a.png new file mode 100644 index 0000000000..7900b4a567 Binary files /dev/null and b/Textures/Things/Ammo/Cannon/Tank/HE/HE_a.png differ diff --git a/Textures/Things/Ammo/Cannon/Tank/HE/HE_b.png b/Textures/Things/Ammo/Cannon/Tank/HE/HE_b.png new file mode 100644 index 0000000000..e52d8b3a95 Binary files /dev/null and b/Textures/Things/Ammo/Cannon/Tank/HE/HE_b.png differ diff --git a/Textures/Things/Ammo/Cannon/Tank/HE/HE_c.png b/Textures/Things/Ammo/Cannon/Tank/HE/HE_c.png new file mode 100644 index 0000000000..6ef9f2284e Binary files /dev/null and b/Textures/Things/Ammo/Cannon/Tank/HE/HE_c.png differ diff --git a/Textures/Things/Ammo/Cannon/Tank/HEAT/HEAT_a.png b/Textures/Things/Ammo/Cannon/Tank/HEAT/HEAT_a.png new file mode 100644 index 0000000000..f954567c35 Binary files /dev/null and b/Textures/Things/Ammo/Cannon/Tank/HEAT/HEAT_a.png differ diff --git a/Textures/Things/Ammo/Cannon/Tank/HEAT/HEAT_b.png b/Textures/Things/Ammo/Cannon/Tank/HEAT/HEAT_b.png new file mode 100644 index 0000000000..45ed9b9b39 Binary files /dev/null and b/Textures/Things/Ammo/Cannon/Tank/HEAT/HEAT_b.png differ diff --git a/Textures/Things/Ammo/Cannon/Tank/HEAT/HEAT_c.png b/Textures/Things/Ammo/Cannon/Tank/HEAT/HEAT_c.png new file mode 100644 index 0000000000..32b608cfab Binary files /dev/null and b/Textures/Things/Ammo/Cannon/Tank/HEAT/HEAT_c.png differ diff --git a/Textures/Things/Ammo/Cannon/Tank/HEATFS/HEATFS_a.png b/Textures/Things/Ammo/Cannon/Tank/HEATFS/HEATFS_a.png new file mode 100644 index 0000000000..089cd11165 Binary files /dev/null and b/Textures/Things/Ammo/Cannon/Tank/HEATFS/HEATFS_a.png differ diff --git a/Textures/Things/Ammo/Cannon/Tank/HEATFS/HEATFS_b.png b/Textures/Things/Ammo/Cannon/Tank/HEATFS/HEATFS_b.png new file mode 100644 index 0000000000..0593920459 Binary files /dev/null and b/Textures/Things/Ammo/Cannon/Tank/HEATFS/HEATFS_b.png differ diff --git a/Textures/Things/Ammo/Cannon/Tank/HEATFS/HEATFS_c.png b/Textures/Things/Ammo/Cannon/Tank/HEATFS/HEATFS_c.png new file mode 100644 index 0000000000..23b9169631 Binary files /dev/null and b/Textures/Things/Ammo/Cannon/Tank/HEATFS/HEATFS_c.png differ diff --git a/Textures/Things/Ammo/Cannon/Tank/Sabot/Sabot_a.png b/Textures/Things/Ammo/Cannon/Tank/Sabot/Sabot_a.png new file mode 100644 index 0000000000..6e7c3f1e56 Binary files /dev/null and b/Textures/Things/Ammo/Cannon/Tank/Sabot/Sabot_a.png differ diff --git a/Textures/Things/Ammo/Cannon/Tank/Sabot/Sabot_b.png b/Textures/Things/Ammo/Cannon/Tank/Sabot/Sabot_b.png new file mode 100644 index 0000000000..44637789b1 Binary files /dev/null and b/Textures/Things/Ammo/Cannon/Tank/Sabot/Sabot_b.png differ diff --git a/Textures/Things/Ammo/Cannon/Tank/Sabot/Sabot_c.png b/Textures/Things/Ammo/Cannon/Tank/Sabot/Sabot_c.png new file mode 100644 index 0000000000..1e200cb885 Binary files /dev/null and b/Textures/Things/Ammo/Cannon/Tank/Sabot/Sabot_c.png differ diff --git a/Textures/Things/Building/AmmoBench/AmmoBench_east.png b/Textures/Things/Building/AmmoBench/AmmoBench_east.png index ac058c9a5f..6ec7a05375 100644 Binary files a/Textures/Things/Building/AmmoBench/AmmoBench_east.png and b/Textures/Things/Building/AmmoBench/AmmoBench_east.png differ diff --git a/Textures/Things/Building/AmmoBench/AmmoBench_eastm.png b/Textures/Things/Building/AmmoBench/AmmoBench_eastm.png index 1a413bc3e9..9f36a18749 100644 Binary files a/Textures/Things/Building/AmmoBench/AmmoBench_eastm.png and b/Textures/Things/Building/AmmoBench/AmmoBench_eastm.png differ diff --git a/Textures/Things/Building/AmmoBench/AmmoBench_north.png b/Textures/Things/Building/AmmoBench/AmmoBench_north.png index 1077080e3b..e7f384c7b9 100644 Binary files a/Textures/Things/Building/AmmoBench/AmmoBench_north.png and b/Textures/Things/Building/AmmoBench/AmmoBench_north.png differ diff --git a/Textures/Things/Building/AmmoBench/AmmoBench_northm.png b/Textures/Things/Building/AmmoBench/AmmoBench_northm.png index 4697d32c51..5f76228f5e 100644 Binary files a/Textures/Things/Building/AmmoBench/AmmoBench_northm.png and b/Textures/Things/Building/AmmoBench/AmmoBench_northm.png differ diff --git a/Textures/Things/Building/AmmoBench/AmmoBench_south.png b/Textures/Things/Building/AmmoBench/AmmoBench_south.png index 5cc035e75e..e6fefcf9ee 100644 Binary files a/Textures/Things/Building/AmmoBench/AmmoBench_south.png and b/Textures/Things/Building/AmmoBench/AmmoBench_south.png differ diff --git a/Textures/Things/Building/AmmoBench/AmmoBench_southm.png b/Textures/Things/Building/AmmoBench/AmmoBench_southm.png index 087c4baa51..bc2a68ce93 100644 Binary files a/Textures/Things/Building/AmmoBench/AmmoBench_southm.png and b/Textures/Things/Building/AmmoBench/AmmoBench_southm.png differ diff --git a/Textures/Things/Flecks/Fleck_BulletHole.png b/Textures/Things/Flecks/Fleck_BulletHole.png new file mode 100644 index 0000000000..34ddd7c645 Binary files /dev/null and b/Textures/Things/Flecks/Fleck_BulletHole.png differ diff --git a/Textures/Things/Projectile/Cannon/120mmTank/HE.png b/Textures/Things/Projectile/Cannon/120mmTank/HE.png deleted file mode 100644 index a97dec7330..0000000000 Binary files a/Textures/Things/Projectile/Cannon/120mmTank/HE.png and /dev/null differ diff --git a/Textures/Things/Projectile/Cannon/120mmTank/HEAT.png b/Textures/Things/Projectile/Cannon/120mmTank/HEAT.png deleted file mode 100644 index af284a2dc5..0000000000 Binary files a/Textures/Things/Projectile/Cannon/120mmTank/HEAT.png and /dev/null differ diff --git a/Textures/Things/Projectile/Cannon/120mmTank/Sabot.png b/Textures/Things/Projectile/Cannon/120mmTank/Sabot.png deleted file mode 100644 index aa05c790c5..0000000000 Binary files a/Textures/Things/Projectile/Cannon/120mmTank/Sabot.png and /dev/null differ diff --git a/Textures/Things/Projectile/Cannon/AP.png b/Textures/Things/Projectile/Cannon/AP.png new file mode 100644 index 0000000000..85af04eb36 Binary files /dev/null and b/Textures/Things/Projectile/Cannon/AP.png differ diff --git a/Textures/Things/Projectile/Cannon/APCR.png b/Textures/Things/Projectile/Cannon/APCR.png new file mode 100644 index 0000000000..740d562cd7 Binary files /dev/null and b/Textures/Things/Projectile/Cannon/APCR.png differ diff --git a/Textures/Things/Projectile/Cannon/APHE.png b/Textures/Things/Projectile/Cannon/APHE.png index 1798f11eff..70b56a8f6c 100644 Binary files a/Textures/Things/Projectile/Cannon/APHE.png and b/Textures/Things/Projectile/Cannon/APHE.png differ diff --git a/Textures/Things/Projectile/Cannon/EMP.png b/Textures/Things/Projectile/Cannon/EMP.png index f2b7b32031..c06eeafdf4 100644 Binary files a/Textures/Things/Projectile/Cannon/EMP.png and b/Textures/Things/Projectile/Cannon/EMP.png differ diff --git a/Textures/Things/Projectile/Cannon/EMPFS.png b/Textures/Things/Projectile/Cannon/EMPFS.png new file mode 100644 index 0000000000..6994983926 Binary files /dev/null and b/Textures/Things/Projectile/Cannon/EMPFS.png differ diff --git a/Textures/Things/Projectile/Cannon/HEAT.png b/Textures/Things/Projectile/Cannon/HEAT.png index 0c8f113e82..d3595cb860 100644 Binary files a/Textures/Things/Projectile/Cannon/HEAT.png and b/Textures/Things/Projectile/Cannon/HEAT.png differ diff --git a/Textures/Things/Projectile/Cannon/HEATFS.png b/Textures/Things/Projectile/Cannon/HEATFS.png new file mode 100644 index 0000000000..15bd706be0 Binary files /dev/null and b/Textures/Things/Projectile/Cannon/HEATFS.png differ diff --git a/Textures/Things/Projectile/Cannon/HEFS.png b/Textures/Things/Projectile/Cannon/HEFS.png new file mode 100644 index 0000000000..ad6200846b Binary files /dev/null and b/Textures/Things/Projectile/Cannon/HEFS.png differ diff --git a/Textures/Things/Projectile/Cannon/Sabot.png b/Textures/Things/Projectile/Cannon/Sabot.png new file mode 100644 index 0000000000..f36836c94e Binary files /dev/null and b/Textures/Things/Projectile/Cannon/Sabot.png differ diff --git a/Textures/UI/Buttons/CE_AutoLoader_Drop.png b/Textures/UI/Buttons/CE_AutoLoader_Drop.png new file mode 100644 index 0000000000..9dfb5ea5c2 Binary files /dev/null and b/Textures/UI/Buttons/CE_AutoLoader_Drop.png differ diff --git a/Textures/UI/Buttons/CE_AutoLoader_Reload.png b/Textures/UI/Buttons/CE_AutoLoader_Reload.png new file mode 100644 index 0000000000..cd7d0905be Binary files /dev/null and b/Textures/UI/Buttons/CE_AutoLoader_Reload.png differ diff --git a/Textures/UI/Buttons/CE_AutoLoader_ReplaceOff.png b/Textures/UI/Buttons/CE_AutoLoader_ReplaceOff.png new file mode 100644 index 0000000000..6d4e12b093 Binary files /dev/null and b/Textures/UI/Buttons/CE_AutoLoader_ReplaceOff.png differ diff --git a/Textures/UI/Buttons/CE_AutoLoader_ReplaceOn.png b/Textures/UI/Buttons/CE_AutoLoader_ReplaceOn.png new file mode 100644 index 0000000000..581eee318b Binary files /dev/null and b/Textures/UI/Buttons/CE_AutoLoader_ReplaceOn.png differ