feat(weapons): 为多种武器添加偏移射击功能并更新相关配置

为多个武器定义添加了带偏移的射击 Verb 类,并引入
`ArachnaeSwarm.ModExtension_ShootWithOffset` 扩展以支持
自定义射击位置偏移。同时优化了 `CompGiveHediffOnShot`
组件的 Harmony 补丁逻辑,使其兼容新 Verb 类型。

此外,调整了 Swarm Turret 的电力消耗逻辑和建造成本,
This commit is contained in:
2025-10-03 16:12:22 +08:00
parent 8c806e49af
commit ba5e282ea0
6 changed files with 264 additions and 50 deletions

Binary file not shown.

View File

@@ -415,7 +415,7 @@
</statBases>
<verbs>
<li>
<verbClass>Verb_Shoot</verbClass>
<verbClass>ArachnaeSwarm.Verb_ShootWithOffset</verbClass>
<hasStandardCommand>true</hasStandardCommand>
<forceNormalTimeSpeed>false</forceNormalTimeSpeed>
<warmupTime>0.8</warmupTime>
@@ -457,6 +457,13 @@
</numTraitsRange>
</li>
</comps>
<modExtensions>
<li Class="ArachnaeSwarm.ModExtension_ShootWithOffset">
<offsets>
<li>(0, -1)</li>
</offsets>
</li>
</modExtensions>
</ThingDef>
<ThingDef ParentName="BaseHumanMakeableGun">
<defName>ARA_RW_Toxic_Needle_SG</defName>
@@ -493,7 +500,7 @@
</statBases>
<verbs>
<li>
<verbClass>ArachnaeSwarm.Verb_ShootShotgun</verbClass>
<verbClass>ArachnaeSwarm.Verb_ShootShotgunWithOffset</verbClass>
<hasStandardCommand>true</hasStandardCommand>
<forceNormalTimeSpeed>false</forceNormalTimeSpeed>
<warmupTime>0.8</warmupTime>
@@ -535,6 +542,13 @@
</numTraitsRange>
</li>
</comps>
<modExtensions>
<li Class="ArachnaeSwarm.ModExtension_ShootWithOffset">
<offsets>
<li>(0, -1)</li>
</offsets>
</li>
</modExtensions>
</ThingDef>
<ThingDef ParentName="BaseBullet">
<defName>ARA_Bullet_SniperCannon</defName>
@@ -587,7 +601,7 @@
</statBases>
<verbs>
<li>
<verbClass>Verb_Shoot</verbClass>
<verbClass>ArachnaeSwarm.Verb_ShootWithOffset</verbClass>
<hasStandardCommand>true</hasStandardCommand>
<defaultProjectile>ARA_Bullet_SniperCannon</defaultProjectile>
<warmupTime>2.5</warmupTime>
@@ -632,6 +646,13 @@
</numTraitsRange>
</li>
</comps>
<modExtensions>
<li Class="ArachnaeSwarm.ModExtension_ShootWithOffset">
<offsets>
<li>(0, -1)</li>
</offsets>
</li>
</modExtensions>
</ThingDef>
<ThingDef ParentName="BaseBullet">
<defName>ARA_Bullet_Rail</defName>
@@ -693,7 +714,7 @@
</statBases>
<verbs>
<li>
<verbClass>Verb_Shoot</verbClass>
<verbClass>ArachnaeSwarm.Verb_ShootWithOffset</verbClass>
<hasStandardCommand>true</hasStandardCommand>
<defaultProjectile>ARA_Bullet_Rail</defaultProjectile>
<warmupTime>2.5</warmupTime>
@@ -734,6 +755,13 @@
</numTraitsRange>
</li>
</comps>
<modExtensions>
<li Class="ArachnaeSwarm.ModExtension_ShootWithOffset">
<offsets>
<li>(0, -1)</li>
</offsets>
</li>
</modExtensions>
</ThingDef>
<!---->
@@ -1150,7 +1178,7 @@
</statBases>
<verbs>
<li>
<verbClass>ArachnaeSwarm.Verb_ShootShotgun</verbClass>
<verbClass>ArachnaeSwarm.Verb_ShootShotgunWithOffset</verbClass>
<hasStandardCommand>true</hasStandardCommand>
<forceNormalTimeSpeed>false</forceNormalTimeSpeed>
<warmupTime>3</warmupTime>
@@ -1193,6 +1221,13 @@
</numTraitsRange>
</li>
</comps>
<modExtensions>
<li Class="ArachnaeSwarm.ModExtension_ShootWithOffset">
<offsets>
<li>(0, -1)</li>
</offsets>
</li>
</modExtensions>
</ThingDef>
<ThingDef ParentName="BaseBullet">
<defName>Bullet_RW_Missile_HG_Gun</defName>
@@ -1275,13 +1310,13 @@
</statBases>
<verbs>
<li>
<verbClass>Verb_Shoot</verbClass>
<verbClass>ArachnaeSwarm.Verb_ShootWithOffset</verbClass>
<hasStandardCommand>true</hasStandardCommand>
<forceNormalTimeSpeed>false</forceNormalTimeSpeed>
<warmupTime>4.5</warmupTime>
<warmupTime>2.8</warmupTime>
<defaultProjectile>Bullet_RW_Missile_AR_Gun</defaultProjectile>
<range>38</range>
<burstShotCount>12</burstShotCount>
<burstShotCount>10</burstShotCount>
<ticksBetweenBurstShots>4</ticksBetweenBurstShots>
<soundCast>SpitterSpit</soundCast>
<targetParams>
@@ -1319,6 +1354,13 @@
</numTraitsRange>
</li>
</comps>
<modExtensions>
<li Class="ArachnaeSwarm.ModExtension_ShootWithOffset">
<offsets>
<li>(0, -1.4)</li>
</offsets>
</li>
</modExtensions>
</ThingDef>
<ThingDef ParentName="BaseBullet">
<defName>Bullet_RW_Missile_AR_Gun</defName>

View File

@@ -141,7 +141,7 @@
</li>
<li Class="CompProperties_MechPowerCell">
<totalPowerTicks>600000</totalPowerTicks>
<killWhenDepleted>true</killWhenDepleted>
<killWhenDepleted>false</killWhenDepleted>
<labelOverride>寿命</labelOverride>
<tooltipOverride>这种半植物生命的寿命转瞬即逝。</tooltipOverride>
</li>
@@ -357,6 +357,9 @@
<ShootingAccuracyTurret>0.9</ShootingAccuracyTurret>
<Beauty>-20</Beauty>
</statBases>
<costList>
<ARA_Carapace>50</ARA_Carapace>
</costList>
<damageMultipliers>
<li>
<damageDef>Flame</damageDef>
@@ -506,6 +509,9 @@
<ShootingAccuracyTurret>0.9</ShootingAccuracyTurret>
<Beauty>-20</Beauty>
</statBases>
<costList>
<ARA_Carapace>50</ARA_Carapace>
</costList>
<damageMultipliers>
<li>
<damageDef>Flame</damageDef>