RimWorld

RimWorld

Rimlaser
Ackapus 30 Aug, 2023 @ 9:21am
Rimlaser for Combat Extended
I made a request at the CE Github for a compatibility port on this mod, but I'm not especially hopeful. Started a game with CE and Rimlaser together and while it's not immediately incompatible, it seems CE takes Rimlaser weapons at their base damage with no armor piercing ability- meaning that anything with even a bit of armor is shrugging off your hits.
Given the graphics used in the mod, the power level I normally imagine Rimlaser to be is about where the laser weapons in XCOM lay- better than post-industrial ballistics, and certainly able to handle armor plating even on heavy mechanical units. And no, that's not just because classic Sectopods had an electronic sensitivity to laser-class weapons. The lightning gun does still cause a nice staggering effect and the incendiary laser still burns but even the hyperboloid death ray doesn't appear to do any damage whatsoever, to even moderately armored targets.
If anyone wants to take a look at the files, the paths should be thus:

Rimlaser mod: %SteamApps%\Workshop\Content\294100\1465459039\
Combat Extended mod: %SteamApps%\Workstop\Content\294100\289091044\

Also, the github for CE: https://github.com/CombatExtended-Continued/CombatExtended/tree/Development
I am still poking through it trying to find something I can build off of.

I'm not exactly a deft hand at coding and haven't really mucked with it since C++ but I'll try to find a template or something. Any updates, or even a usable product, I will put in here.
< >
Showing 1-5 of 5 comments
Ackapus 4 Apr, 2024 @ 5:30pm 
Well, I have a working compatibility patch that translates everything in Rimlaser to Combat Extended terms, and adds some flavoring to the more exotic guns to take advantage of CE's extra damage and armor types, so they fit into proper niche roles better. This also includes compatibility with CE's RunAndGun choices- if you have RunAndGun as well, you can take snap shots with pistols, rifles, incendiaries, and teslas. Heavies, snipers, miniguns, and hyperboloids are standing only.
There's one thing that I still can't get proper, and that's the different beam colors for different qualities. I've tracked this down to the cs source file in CE, and I'm not sure how to proceed. The code statement should work, but it always returns normal quality for the gun instead.
Ackapus 7 Apr, 2024 @ 5:19am 
Looks to be as far as I can go with this. Everything else works except the beam color selection. Copy the following three posts of code in their entirety to one file, Rimlaser.XML, and make a folder for it in the Combat Extended \Patches\ folder. The path to CE is posted above. Without being able to reproduce or port the entire functionality of Rimlaser, I can't really propose this to be added to CE, so I'll leave it here for whoever wants it. Needed to make three posts for the code as even with the comments trimmed out it was still over the char count by about six thousand, and even when broken into two still produced some undefined error until I broke it into three.
Last edited by Ackapus; 7 Apr, 2024 @ 5:25am
Ackapus 7 Apr, 2024 @ 5:20am 
<?xml version="1.0" encoding="utf-8"?> <!-- Compatability patch for Rimlaser to work in Combat Extended. Rimlaser Weapons: Rimlaser_LaserPistol Rimlaser_LaserRifle Rimlaser_LaserHeavy Rimlaser_LaserSniper Rimlaser_LaserIncendiary Rimlaser_LaserMinigun Rimlaser_Deathray Rimlaser_Teslagun Rimlaser_LaserRifleMounted Rimlaser_LaserHeavyMounted Rimlaser_LaserHeavyMinigunMounted In keeping with the original source graphics, these guns do not require ammo. May create some in the future or associate the guns with some existing, but let's be honest, I barely figured this much out. --> <Patch> <Operation Class="PatchOperationFindMod"> <mods> <li>Rimlaser</li> </mods> <match Class="PatchOperationSequence"> <operations> <!-- ****Begin patching projectiles**** --> <li Class="PatchOperationAdd"> <xpath>Defs</xpath> <value> <!-- Parent Laser Visual Defs --> <!-- Beam Graphic def --> <ThingDef> <defName>RimlaserBeamGraphic</defName> <!--Use the thingClass call to CombatExtended.Lasers.LaserBeamGraphic to produce only Normal quality lasers. Use the thingClass call to Rimlaser.LaserBeamGraphic to not call textures for any of these beams. That's it. That's literally it, I have no bloody clue why Rimlaser native classes wouldn't be able to call their own graphics. I also have no clue why the exact same function on Combat Extended can't find a gun but can call those same textures.--> <thingClass>CombatExtended.Lasers.LaserBeamGraphicCE</thingClass> <!-- <thingClass>Rimlaser.LaserBeamGraphic</thingClass> --> <label>laser beam</label> <category>Projectile</category> <drawOffscreen>true</drawOffscreen> <tickerType>Normal</tickerType> <altitudeLayer>Projectile</altitudeLayer> <useHitPoints>False</useHitPoints> <neverMultiSelect>True</neverMultiSelect> </ThingDef> <!-- Base laser beam --> <ThingDef Class="CombatExtended.Lasers.LaserBeamDefCE" Name="RimlaserBeam" ParentName="BaseLaserBullet" Abstract="True"> <thingClass>CombatExtended.Lasers.LaserBeamCE</thingClass> <label>laser beam</label> <beamGraphic>RimlaserBeamGraphic</beamGraphic> <graphicData> <texPath>Rimlaser/Effects/LaserRed</texPath> <graphicClass>Graphic_Single</graphicClass> <shaderType>TransparentPostLight</shaderType> <drawSize>1.5</drawSize> </graphicData> <altitudeLayer>Projectile</altitudeLayer> <seam>0.25</seam> <projectile Class="CombatExtended.ProjectilePropertiesCE"> <isInstant>true</isInstant> <damageDef>CE_Laser</damageDef> </projectile> </ThingDef> <!-- Comp Quality Colors --> <ThingDef Class="CombatExtended.Lasers.LaserBeamDefCE" Name="Bullet_RimlaserColored" Abstract="True" ParentName="RimlaserBeam"> <seam>0.25</seam> <textures> <li>Rimlaser/Effects/LaserAwful</li> <li>Rimlaser/Effects/LaserPoor</li> <li>Rimlaser/Effects/LaserNormal</li> <li>Rimlaser/Effects/LaserGood</li> <li>Rimlaser/Effects/LaserExcellent</li> <li>Rimlaser/Effects/LaserMasterwork</li> <li>Rimlaser/Effects/LaserLegendary</li> </textures> </ThingDef> <!-- Comp Quality Incendiary --> <ThingDef Class="CombatExtended.Lasers.LaserBeamDefCE" Name="Bullet_RimlaserInc" Abstract="True" ParentName="RimlaserBeam"> <textures> <li>Rimlaser/Effects/LaserIncAwful</li> <li>Rimlaser/Effects/LaserIncPoor</li> <li>Rimlaser/Effects/LaserIncNormal</li> <li>Rimlaser/Effects/LaserIncGood</li> <li>Rimlaser/Effects/LaserIncExcellent</li> <li>Rimlaser/Effects/LaserIncMasterwork</li> <li>Rimlaser/Effects/LaserIncLegendary</li> </textures> <seam>0.02083333333</seam> </ThingDef> <!-- Deathray Beam Special --> <!-- Decoration Mote Yellow --> <ThingDef ParentName="MoteBase" Name="Rimlaser_Mote_LaserDecoration"> <defName>Rimlaser_Mote_LaserDecorationYellow</defName> <thingClass>CombatExtended.Lasers.MoteLaserDectorationCE</thingClass> <graphicData> <texPath>Rimlaser/Effects/LaserDecorationYellow</texPath> <shaderType>TransparentPostLight</shaderType> </graphicData> <altitudeLayer>MoteOverhead</altitudeLayer> <mote> <fadeInTime>0.0</fadeInTime> <solidTime>1.0</solidTime> <fadeOutTime>0.0</fadeOutTime> </mote> </ThingDef> <!-- Decoration Mote Purple --> <ThingDef ParentName="Rimlaser_Mote_LaserDecoration"> <defName>Rimlaser_Mote_LaserDecorationPurple</defName> <graphicData> <texPath>Rimlaser/Effects/LaserDecorationPurple</texPath> <shaderType>TransparentPostLight</shaderType> </graphicData> </ThingDef> <!-- Beam and decorations --> <ThingDef Class="CombatExtended.Lasers.LaserBeamDefCE" Name="Bullet_RimlaserDeathRay" Abstract="True" ParentName="RimlaserBeam"> <textures> <li>Rimlaser/Effects/LaserDeathRay</li> </textures> <decorations> <li> <mote>Rimlaser_Mote_LaserDecorationYellow</mote> <spacing>0.8</spacing> <initialOffset>-0.1</initialOffset> <speed>1.0</speed> <speedJitter>0.55</speedJitter> <speedJitterOffset>90</speedJitterOffset> </li> <li> <mote>Rimlaser_Mote_LaserDecorationPurple</mote> <spacing>0.8</spacing> <initialOffset>0.3</initialOffset> <speed>1.0</speed> <speedJitter>0.45</speedJitter> <speedJitterOffset>90</speedJitterOffset> </li> </decorations> </ThingDef> <!-- End Base Visual Defs --> <!--====Individual guns' laser stats====--> <!-- Rimlaser_LaserPistol Small beam, light penetration--> <ThingDef Class="CombatExtended.Lasers.LaserBeamDefCE" ParentName="Bullet_RimlaserColored"> <defName>Bullet_Rimlaser_LaserPistol</defName> <label>laser pistol beam</label> <projectile Class="CombatExtended.ProjectilePropertiesCE"> <damageDef>CE_Laser</damageDef> <damageAmountBase>14</damageAmountBase> <armorPenetrationSharp>16</armorPenetrationSharp> <armorPenetrationBlunt>0.01</armorPenetrationBlunt> </projectile> </ThingDef> <!-- Rimlaser_LaserRifle Sufficient for most front-line conflict--> <ThingDef Class="CombatExtended.Lasers.LaserBeamDefCE" ParentName="Bullet_RimlaserColored"> <defName>Bullet_Rimlaser_LaserRifle</defName> <label>laser rifle beam</label> <projectile Class="CombatExtended.ProjectilePropertiesCE"> <damageDef>CE_Laser</damageDef> <damageAmountBase>22</damageAmountBase> <armorPenetrationSharp>24</armorPenetrationSharp> <armorPenetrationBlunt>0.01</armorPenetrationBlunt> </projectile> </ThingDef> <!-- Rimlaser_LaserHeavy Severe damage and able to penetrate hull plate--> <ThingDef Class="CombatExtended.Lasers.LaserBeamDefCE" ParentName="Bullet_RimlaserColored"> <defName>Bullet_Rimlaser_LaserHeavy</defName> <label>heavy laser beam</label> <projectile Class="CombatExtended.ProjectilePropertiesCE"> <damageDef>CE_Laser</damageDef> <damageAmountBase>48</damageAmountBase> <armorPenetrationSharp>121</armorPenetrationSharp> <armorPenetrationBlunt>0.03</armorPenetrationBlunt> </projectile> <beamWidth>1.8</beamWidth> <lifetime>120</lifetime> <impulse>6</impulse> </ThingDef> <!-- Rimlaser_LaserSniper Ramped up from the rifle in both damage and penetration for anti-material use--> <ThingDef Class="CombatExtended.Lasers.LaserBeamDefCE" ParentName="Bullet_RimlaserColored"> <defName>Bullet_Rimlaser_LaserSniper</defName> <label>laser sniper beam</label> <projectile Class="CombatExtended.ProjectilePropertiesCE"> <damageDef>CE_Laser</damageDef> <damageAmountBase>36</damageAmountBase> <armorPenetrationSharp>39</armorPenetrationSharp> <armorPenetrationBlunt>0.03</armorPenetrationBlunt> </projectile> <beamWidth>0.9</beamWidth> </ThingDef> <!-- Rimlaser_LaserMinigun Slightly less powerful than the rifle, meant to deter or suppress crowds.--> <ThingDef Class="CombatExtended.Lasers.LaserBeamDefCE" ParentName="Bullet_RimlaserColored"> <defName>Bullet_Rimlaser_LaserMinigun</defName> <label>laser minigun beam</label> <projectile Class="CombatExtended.ProjectilePropertiesCE"> <damageDef>CE_Laser</damageDef> <damageAmountBase>16</damageAmountBase> <armorPenetrationSharp>22</armorPenetrationSharp> <armorPenetrationBlunt>0.01</armorPenetrationBlunt> </projectile> <beamWidth>0.4</beamWidth> <lifetime>16</lifetime> </ThingDef> <!-- Rimlaser_LaserIncendiary Keeps the base laser definition but primary damage is through induced burns. Penetration is to reflect that superheated armor isn't really all that great, whether it's hard or soft. Secondary damage is the primary threat.--> <ThingDef Class="CombatExtended.Lasers.LaserBeamDefCE" ParentName="Bullet_RimlaserInc"> <defName>Bullet_Rimlaser_LaserIncendiary</defName> <label>infrared beam</label> <projectile Class="CombatExtended.ProjectilePropertiesCE"> <damageDef>CE_Laser</damageDef> <damageAmountBase>5</damageAmountBase> <armorPenetrationSharp>10</armorPenetrationSharp> <armorPenetrationBlunt>10</armorPenetrationBlunt> <secondaryDamage> <li> <def>Flame</def> <amount>10</amount> </li> <li> <def>Flame_Secondary</def> <amount>10</amount> </li> </secondaryDamage> </projectile> <beamWidth>1.4</beamWidth> </ThingDef> <!-- Rimlaser_Deathray Garin's Hyperboloid is not meant to leave a body behind. Given the increase of armor significance in CE, the damage has been punched up from the original stats, and given the penetration one would expect from the violation of thermodynamics. Secondary damage and stopping power added to put variety in the threat profile, since this wasn't technically flavored as a true laser before.--> <ThingDef Class="CombatExtended.Lasers.LaserBeamDefCE" ParentName="Bullet_RimlaserDeathRay"> <defName>Bullet_Rimlaser_DeathRay</defName> <label>death ray</label> <projectile Class="CombatExtended.ProjectilePropertiesCE"> <damageDef>CE_Laser</damageDef> <damageAmountBase>100</damageAmountBase> <armorPenetrationSharp>300</armorPenetrationSharp> <armorPenetrationBlunt>300</armorPenetrationBlunt> <stoppingPower>20</stoppingPower> <secondaryDamage> <li> <def>Electrical</def> <amount>100</amount> </li> <li> <def>Burn</def> <amount>100</amount> </li> <li> <def>Bomb_Secondary</def> <amount>100</amount> </li> </secondaryDamage> </projectile> <beamWidth>1.5</beamWidth> <lifetime>120</lifetime> <impulse>6</impulse> <shieldDamageMultiplier>250</shieldDamageMultiplier> </ThingDef> <!-- Rimlaser_Teslagun Damage type has been changed to Electrical as primary, with EMP and a bit of burn as secondary. While the stopping power is still high, the penetration is there as the bolt doesn't care how hard the armor is, just how much conductive mass is there to absorb the shock. Can and will scramble shields and mechanoids, and leave any surviving enemies tasting everything like zinc for two days.--> <ThingDef Class="CombatExtended.Lasers.LaserBeamDefCE" ParentName="RimlaserBeam"> <defName>Bullet_Rimlaser_Tesla</defName> <label>bolt of lightning</label> <textures> <li>Rimlaser/Effects/Lightning</li> </textures> <seam>0</seam> <projectile Class="CombatExtended.ProjectilePropertiesCE"> <damageDef>Electrical</damageDef> <armorPenetrationBlunt>30</armorPenetrationBlunt> <armorPenetrationSharp>30</armorPenetrationSharp> <damageAmountBase>15</damageAmountBase> <stoppingPower>20</stoppingPower> <secondaryDamage> <li> <def>EMP</def> <amount>18</amount> </li> <li> <def>Flame</def> <amount>5</amount> </li> </secondaryDamage> </projectile> <beamWidth>1.5</beamWidth> <shieldDamageMultiplier>200</shieldDamageMultiplier> </ThingDef> </value> <!-- ****End patching projectiles**** --> </li> <!--====================================-->
Ackapus 7 Apr, 2024 @ 5:23am 
<!--====================================--> <!-- ****Begin patching guns.**** --> <!-- Melee Values Based on approximate wieldiness. Pistols can be swung quickly, larger weapons able to shoot on the run can be used in melee to greater effect, and weapons too bulky to easily swing might hit harder but take longer to manuever. --> <!-- Laser Pistol --> <li Class="PatchOperationReplace"> <xpath>Defs/ThingDef[defName="Rimlaser_LaserPistol"]/tools</xpath> <value> <tools> <li Class="CombatExtended.ToolCE"> <label>grip</label> <capacities> <li>Blunt</li> </capacities> <power>2</power> <cooldownTime>1.54</cooldownTime> <chanceFactor>1.5</chanceFactor> <armorPenetrationBlunt>0.555</armorPenetrationBlunt> <linkedBodyPartsGroup>Grip</linkedBodyPartsGroup> </li> <li Class="CombatExtended.ToolCE"> <label>muzzle</label> <capacities> <li>Poke</li> </capacities> <power>2</power> <cooldownTime>1.54</cooldownTime> <armorPenetrationBlunt>0.555</armorPenetrationBlunt> <linkedBodyPartsGroup>Muzzle</linkedBodyPartsGroup> </li> </tools> </value> </li> <!-- Medium Laser Weapons --> <li Class="PatchOperationReplace"> <xpath>Defs/ThingDef[ defName = "Rimlaser_LaserRifle" or defName = "Rimlaser_LaserIncendiary" or defName = "Rimlaser_Teslagun" ]/tools </xpath> <value> <tools> <li Class="CombatExtended.ToolCE"> <label>stock</label> <capacities> <li>Blunt</li> </capacities> <power>8</power> <cooldownTime>1.55</cooldownTime> <chanceFactor>1.5</chanceFactor> <armorPenetrationBlunt>2.755</armorPenetrationBlunt> <linkedBodyPartsGroup>Stock</linkedBodyPartsGroup> </li> <li Class="CombatExtended.ToolCE"> <label>barrel</label> <capacities> <li>Blunt</li> </capacities> <power>5</power> <cooldownTime>2.02</cooldownTime> <armorPenetrationBlunt>1.630</armorPenetrationBlunt> <linkedBodyPartsGroup>Barrel</linkedBodyPartsGroup> </li> <li Class="CombatExtended.ToolCE"> <label>muzzle</label> <capacities> <li>Poke</li> </capacities> <power>8</power> <cooldownTime>1.55</cooldownTime> <armorPenetrationBlunt>2.755</armorPenetrationBlunt> <linkedBodyPartsGroup>Muzzle</linkedBodyPartsGroup> </li> </tools> </value> </li> <!-- Large Laser Weapons --> <li Class="PatchOperationReplace"> <xpath>Defs/ThingDef[ defName = "Rimlaser_LaserHeavy" or defName = "Rimlaser_LaserSniper" or defName = "Rimlaser_LaserMinigun" or defName = "Rimlaser_Deathray" ]/tools </xpath> <value> <tools> <li Class="CombatExtended.ToolCE"> <label>barrel</label> <capacities> <li>Blunt</li> </capacities> <power>14</power> <cooldownTime>2.44</cooldownTime> <armorPenetrationBlunt>3.5</armorPenetrationBlunt> <linkedBodyPartsGroup>Barrel</linkedBodyPartsGroup> </li> </tools> </value> </li> <!-- End Melee Stats --> <!--====================================--> <!-- Begin Gun Ranged Stats --> <!-- === Laser Pistol === Lightweight, quick charge, one handed, a trusty sidearm--> <li Class="CombatExtended.PatchOperationMakeGunCECompatible"> <defName>Rimlaser_LaserPistol</defName> <statBases> <Mass>2.4</Mass> <Bulk>1.6</Bulk> <SwayFactor>2</SwayFactor> <ShotSpread>0.02</ShotSpread> <SightsEfficiency>0.8</SightsEfficiency> <RangedWeapon_Cooldown>.3</RangedWeapon_Cooldown> </statBases> <Properties> <verbClass>CombatExtended.Verb_ShootCE</verbClass> <hasStandardCommand>True</hasStandardCommand> <defaultProjectile>Bullet_Rimlaser_LaserPistol</defaultProjectile> <warmupTime>0.3</warmupTime> <range>28</range> <soundCast>LaserPistol_fire</soundCast> <soundCastTail>GunTail_Heavy</soundCastTail> <muzzleFlashScale>8</muzzleFlashScale> </Properties> <FireModes> <aiAimMode>AimedShot</aiAimMode> </FireModes> <weaponTags> <li>SpacerGun</li> <li>LaserGun</li> <li>CE_OneHandedWeapon</li> </weaponTags> <AllowWithRunAndGun>true</AllowWithRunAndGun> </li> <!-- === Laser Rifle === Compact and efficient. Serves well for all but the big guys.--> <li Class="CombatExtended.PatchOperationMakeGunCECompatible"> <defName>Rimlaser_LaserRifle</defName> <statBases> <Mass>5.5</Mass> <Bulk>5</Bulk> <SwayFactor>0.6</SwayFactor> <ShotSpread>0.02</ShotSpread> <SightsEfficiency>1.4</SightsEfficiency> <RangedWeapon_Cooldown>0.5</RangedWeapon_Cooldown> </statBases> <Properties> <verbClass>CombatExtended.Verb_ShootCE</verbClass> <hasStandardCommand>True</hasStandardCommand> <defaultProjectile>Bullet_Rimlaser_LaserRifle</defaultProjectile> <warmupTime>1</warmupTime> <range>60</range> <soundCast>LaserRifle_Fire</soundCast> <!--It appears this is the only soundcast call in the original mod that capitalizes "Fire"--> <soundCastTail>GunTail_Heavy</soundCastTail> <muzzleFlashScale>9</muzzleFlashScale> </Properties> <FireModes> <aiAimMode>AimedShot</aiAimMode> </FireModes> <weaponTags> <li>SpacerGun</li> <li>LaserGun</li> </weaponTags> <AllowWithRunAndGun>true</AllowWithRunAndGun> </li> <!-- === Heavy Laser === Unwieldy, especially at max range. Designed for careful shooting from a protected location. Invaluable against heavy armor.--> <li Class="CombatExtended.PatchOperationMakeGunCECompatible"> <defName>Rimlaser_LaserHeavy</defName> <statBases> <Mass>20</Mass> <Bulk>20</Bulk> <SwayFactor>.9</SwayFactor> <ShotSpread>0.01</ShotSpread> <SightsEfficiency>1.75</SightsEfficiency> <NightVisionEfficiency_Weapon>1</NightVisionEfficiency_Weapon> <RangedWeapon_Cooldown>1</RangedWeapon_Cooldown> </statBases> <Properties> <recoilAmount>0.01</recoilAmount> <verbClass>CombatExtended.Verb_ShootCE</verbClass> <hasStandardCommand>True</hasStandardCommand> <defaultProjectile>Bullet_Rimlaser_LaserHeavy</defaultProjectile> <warmupTime>1.4</warmupTime> <range>68</range> <soundCast>LaserHeavy_fire</soundCast> <soundCastTail>GunTail_Heavy</soundCastTail> <muzzleFlashScale>9</muzzleFlashScale> <targetParams> <canTargetLocations>true</canTargetLocations> </targetParams> </Properties> <FireModes> <aiAimMode>AimedShot</aiAimMode> <noSnapshot>true</noSnapshot> </FireModes> <weaponTags> <li>SpacerGun</li> <li>LaserGun</li> <li>GunHeavy</li> </weaponTags> <AllowWithRunAndGun>false</AllowWithRunAndGun> </li> <!-- === Laser Sniper === Not as clumsy as the heavy, but not meant for heavy combat. Excels at recon wet work and picking off specific targets at range. You know, like a sniper rifle.--> <li Class="CombatExtended.PatchOperationMakeGunCECompatible"> <defName>Rimlaser_LaserSniper</defName> <statBases> <Mass>10</Mass> <Bulk>8.00</Bulk> <SwayFactor>.8</SwayFactor> <ShotSpread>0.01</ShotSpread> <SightsEfficiency>2.0</SightsEfficiency> <NightVisionEfficiency_Weapon>1</NightVisionEfficiency_Weapon> <RangedWeapon_Cooldown>1</RangedWeapon_Cooldown> </statBases> <Properties> <recoilAmount>0.01</recoilAmount> <verbClass>CombatExtended.Verb_ShootCE</verbClass> <hasStandardCommand>True</hasStandardCommand> <defaultProjectile>Bullet_Rimlaser_LaserSniper</defaultProjectile> <warmupTime>1.5</warmupTime> <range>82</range> <soundCast>LaserSniper_fire</soundCast> <soundCastTail>GunTail_Heavy</soundCastTail> <muzzleFlashScale>9</muzzleFlashScale> </Properties> <FireModes> <aiAimMode>AimedShot</aiAimMode> <noSnapshot>true</noSnapshot> </FireModes> <weaponTags> <li>Bipod_DMR</li> <li>SpacerGun</li> <li>LaserGun</li> <li>SniperRifle</li> </weaponTags> <AllowWithRunAndGun>false</AllowWithRunAndGun> </li> <!-- === Laser Minigun === Higher sway than motionless laser weapons, but much less than physical projectile miniguns. The only moving parts are the gyroscopically balanced prism chambers and barrels, so accuracy makes up for the lower damage output of the beam.--> <li Class="CombatExtended.PatchOperationMakeGunCECompatible"> <defName>Rimlaser_LaserMinigun</defName> <statBases> <Mass>20</Mass> <Bulk>15</Bulk> <SwayFactor>1.12</SwayFactor> <ShotSpread>0.06</ShotSpread> <SightsEfficiency>.8</SightsEfficiency> <RangedWeapon_Cooldown>1</RangedWeapon_Cooldown> </statBases> <Properties> <recoilAmount>0.05</recoilAmount> <verbClass>CombatExtended.Verb_ShootCE</verbClass> <hasStandardCommand>True</hasStandardCommand> <defaultProjectile>Bullet_Rimlaser_LaserMinigun</defaultProjectile> <warmupTime>2</warmupTime> <range>45.9</range> <burstShotCount>30</burstShotCount> <ticksBetweenBurstShots>10</ticksBetweenBurstShots> <soundCast>LaserMinigun_fire</soundCast> <soundCastTail>GunTail_Heavy</soundCastTail> <muzzleFlashScale>9</muzzleFlashScale> <targetParams> <canTargetLocations>true</canTargetLocations> </targetParams> </Properties> <FireModes> <aiAimMode>SuppressFire</aiAimMode> <aimedBurstShotCount>30</aimedBurstShotCount> <noSingleShot>true</noSingleShot> </FireModes> <weaponTags> <li>SpacerGun</li> <li>LaserGun</li> <li>GunHeavy</li> </weaponTags> <AllowWithRunAndGun>false</AllowWithRunAndGun> </li> <!-- === Laser Incendiary === Similar to the rifle in form and stats.--> <li Class="CombatExtended.PatchOperationMakeGunCECompatible"> <defName>Rimlaser_LaserIncendiary</defName> <statBases> <Mass>6</Mass> <Bulk>6.00</Bulk> <SwayFactor>.6</SwayFactor> <ShotSpread>0.04</ShotSpread> <SightsEfficiency>.8</SightsEfficiency> <RangedWeapon_Cooldown>.8</RangedWeapon_Cooldown> </statBases> <Properties> <verbClass>CombatExtended.Verb_ShootCE</verbClass> <hasStandardCommand>True</hasStandardCommand> <defaultProjectile>Bullet_Rimlaser_LaserIncendiary</defaultProjectile> <warmupTime>.8</warmupTime> <range>41.8</range> <soundCast>LaserIncendiary_fire</soundCast> <soundCastTail>GunTail_Heavy</soundCastTail> <muzzleFlashScale>8</muzzleFlashScale> <targetParams> <canTargetLocations>true</canTargetLocations> </targetParams> </Properties> <FireModes> <aiAimMode>AimedShot</aiAimMode> </FireModes> <weaponTags> <li>SpacerGun</li> <li>LaserGun</li> </weaponTags> <AllowWithRunAndGun>true</AllowWithRunAndGun> </li> <!-- === Laser Deathray/Hyperboloid === The delivery system of the Deathray is as cumbersome as it is deadly. Statted to be back-line artillery and weighty enough to take up most of a pawn's carrying cap.--> <li Class="CombatExtended.PatchOperationMakeGunCECompatible"> <defName>Rimlaser_DeathRay</defName> <statBases> <Mass>30.00</Mass> <Bulk>15.00</Bulk> <SwayFactor>.9</SwayFactor> <ShotSpread>0.05</ShotSpread> <SightsEfficiency>1.5</SightsEfficiency> <RangedWeapon_Cooldown>0.7</RangedWeapon_Cooldown> </statBases> <Properties> <verbClass>CombatExtended.Verb_ShootCE</verbClass> <hasStandardCommand>True</hasStandardCommand> <defaultProjectile>Bullet_Rimlaser_DeathRay</defaultProjectile> <warmupTime>2.8</warmupTime> <range>75.9</range> <soundCast>DeathRay_fire</soundCast> <soundCastTail>GunTail_Heavy</soundCastTail> <muzzleFlashScale>11</muzzleFlashScale> <recoilAmount>0.05</recoilAmount> <recoilPattern>Regular</recoilPattern> </Properties> <!-- This tag does not appear to exist in CE. Left in here in case I ever discover what the equivalent is. <tradeTags> <li>ExoticMisc</li> </tradeTags> --> <FireModes> <aiAimMode>AimedShot</aiAimMode> <noSnapshot>true</noSnapshot> </FireModes> <weaponTags> <li>SpacerGun</li> <li>GunHeavy</li> </weaponTags> <AllowWithRunAndGun>false</AllowWithRunAndGun> </li> <!-- === Tesla Gun === Lightweight for the space it takes up, meant to be used on the run and at close range. Still statted as heavier than a rifle to keep from everyone carrying one of these in their backpack.--> <li Class="CombatExtended.PatchOperationMakeGunCECompatible"> <defName>Rimlaser_TeslaGun</defName> <statBases> <Mass>10.0</Mass> <Bulk>10.0</Bulk> <SwayFactor>.05</SwayFactor> <ShotSpread>0.15</ShotSpread> <SightsEfficiency>.5</SightsEfficiency> <RangedWeapon_Cooldown>.5</RangedWeapon_Cooldown> </statBases> <Properties> <verbClass>CombatExtended.Verb_ShootCE</verbClass> <hasStandardCommand>True</hasStandardCommand> <defaultProjectile>Bullet_Rimlaser_Tesla</defaultProjectile> <warmupTime>0.75</warmupTime> <range>20</range> <soundCast>Tesla_fire</soundCast> <soundCastTail>GunTail_Heavy</soundCastTail> <muzzleFlashScale>13</muzzleFlashScale> <recoilAmount>0.05</recoilAmount> </Properties> <FireModes> <aiAimMode>AimedShot</aiAimMode> </FireModes> <weaponTags> <li>SpacerGun</li> </weaponTags> <AllowWithRunAndGun>true</AllowWithRunAndGun> </li> <!-- End Ranged Weapon Stats --> <!-- ****End patching guns.**** -->
Ackapus 7 Apr, 2024 @ 5:24am 
<!-- Begin Turret Weapon Stats --> <!-- Laser Rifle Turret --> <li Class="CombatExtended.PatchOperationMakeGunCECompatible"> <defName>Rimlaser_LaserRifleMounted</defName> <statBases> <Mass>5.5</Mass> <Bulk>5</Bulk> <SwayFactor>0.6</SwayFactor> <ShotSpread>0.02</ShotSpread> <SightsEfficiency>1.4</SightsEfficiency> <RangedWeapon_Cooldown>0.5</RangedWeapon_Cooldown> </statBases> <Properties> <verbClass>CombatExtended.Verb_ShootCE</verbClass> <hasStandardCommand>True</hasStandardCommand> <defaultProjectile>Bullet_Rimlaser_LaserRifle</defaultProjectile> <warmupTime>1</warmupTime> <range>60</range> <soundCast>LaserRifle_Fire</soundCast> <soundCastTail>GunTail_Heavy</soundCastTail> <muzzleFlashScale>9</muzzleFlashScale> </Properties> <FireModes> <aiAimMode>AimedShot</aiAimMode> </FireModes> </li> <!-- Heavy Laser Turret --> <li Class="CombatExtended.PatchOperationMakeGunCECompatible"> <defName>Rimlaser_LaserHeavyMounted</defName> <statBases> <Mass>20</Mass> <Bulk>20</Bulk> <SwayFactor>0.55</SwayFactor> <ShotSpread>0.01</ShotSpread> <SightsEfficiency>1.75</SightsEfficiency> <NightVisionEfficiency_Weapon>1</NightVisionEfficiency_Weapon> <RangedWeapon_Cooldown>1</RangedWeapon_Cooldown> </statBases> <Properties> <recoilAmount>0.001</recoilAmount> <verbClass>CombatExtended.Verb_ShootCE</verbClass> <hasStandardCommand>True</hasStandardCommand> <defaultProjectile>Bullet_Rimlaser_LaserHeavy</defaultProjectile> <warmupTime>1.2</warmupTime> <range>74</range> <soundCast>LaserHeavy_fire</soundCast> <soundCastTail>GunTail_Heavy</soundCastTail> <muzzleFlashScale>13</muzzleFlashScale> <targetParams> <canTargetLocations>true</canTargetLocations> </targetParams> </Properties> <FireModes> <aiAimMode>AimedShot</aiAimMode> <noSnapshot>true</noSnapshot> </FireModes> </li> <!-- Minigun Laser Turret --> <li Class="CombatExtended.PatchOperationMakeGunCECompatible"> <defName>LaserHeavyMinigunMounted</defName> <statBases> <Mass>18</Mass> <Bulk>18</Bulk> <SwayFactor>.09</SwayFactor> <ShotSpread>0.02</ShotSpread> <SightsEfficiency>1</SightsEfficiency> <RangedWeapon_Cooldown>1.1</RangedWeapon_Cooldown> </statBases> <Properties> <recoilAmount>0.01</recoilAmount> <verbClass>CombatExtended.Verb_ShootCE</verbClass> <hasStandardCommand>True</hasStandardCommand> <defaultProjectile>Bullet_Rimlaser_LaserHeavy</defaultProjectile> <range>70</range> <burstShotCount>5</burstShotCount> <ticksBetweenBurstShots>5</ticksBetweenBurstShots> <warmupTime>1.5</warmupTime> <soundCast>LaserHeavyMinigun_fire</soundCast> <soundCastTail>GunTail_Heavy</soundCastTail> <muzzleFlashScale>13</muzzleFlashScale> <targetParams> <canTargetLocations>true</canTargetLocations> </targetParams> </Properties> </li> <!-- End Turret Stats--> </operations> </match> </Operation> </Patch>
< >
Showing 1-5 of 5 comments
Per page: 1530 50