This commit is contained in:
2025-08-19 16:17:16 +08:00
parent 4205273197
commit 0b2efcd559
9 changed files with 491 additions and 14 deletions

View File

@@ -0,0 +1,187 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<!-- 这是一个使用我们新系统的战争女皇示例 -->
<!-- 它被设置为自动生产,且生产不消耗资源 -->
<ThingDef ParentName="SuperHeavyMechanoid">
<defName>WULA_Mech_Warqueen</defName> <!-- 修改了defName以避免冲突 -->
<label>war queen (WULA)</label>
<description>An ultra-heavy mech with a built-in mech gestator. Fed with appropriate resources, the war queen can form small war urchin combat mechs within its massive carapace and deploy them into combat.\n\nEven more than other mechanoids, the war queen resembles a giant, living insect. All war mechs can be terrifying, but humans tend to find the war queen disturbing on a deeper level.</description>
<statBases>
<MoveSpeed>1.6</MoveSpeed>
<EnergyShieldRechargeRate>0.5</EnergyShieldRechargeRate>
<EnergyShieldEnergyMax>3</EnergyShieldEnergyMax>
<MeleeDoorDamageFactor>1.5</MeleeDoorDamageFactor>
<EMPResistance>0.7</EMPResistance>
</statBases>
<race>
<body>Mech_Warqueen</body>
<baseBodySize>4</baseBodySize>
<lifeStageAges>
<li>
<def>MechanoidFullyFormed</def>
<minAge>0</minAge>
<soundWounded>Pawn_Mech_Warqueen_Wounded</soundWounded>
<soundDeath>Pawn_Mech_Warqueen_Death</soundDeath>
<soundCall>Pawn_Mech_Warqueen_Call</soundCall>
</li>
<li>
<def>MechanoidFullyFormed</def>
<minAge>100</minAge>
<soundWounded>Pawn_Mech_Warqueen_Wounded</soundWounded>
<soundDeath>Pawn_Mech_Warqueen_Death</soundDeath>
<soundCall>Pawn_Mech_Warqueen_Call</soundCall>
</li>
</lifeStageAges>
<baseHealthScale>5.2</baseHealthScale>
<dutyBoss>Warqueen</dutyBoss>
<detritusLeavings>
<li>
<def>ChunkMechanoidSlag</def>
<texOverrideIndex>13</texOverrideIndex>
<spawnChance>0.75</spawnChance>
</li>
<li>
<def>ChunkMechanoidSlag</def>
<texOverrideIndex>3</texOverrideIndex>
<spawnChance>0.75</spawnChance>
</li>
<li>
<def>ChunkMechanoidSlag</def>
<texOverrideIndex>0</texOverrideIndex>
<spawnChance>0.75</spawnChance>
</li>
</detritusLeavings>
</race>
<tools>
<li>
<label>head</label>
<capacities>
<li>Blunt</li>
</capacities>
<power>4</power>
<cooldownTime>2</cooldownTime>
<linkedBodyPartsGroup>HeadAttackTool</linkedBodyPartsGroup>
<ensureLinkedBodyPartsGroupAlwaysUsable>true</ensureLinkedBodyPartsGroupAlwaysUsable>
<chanceFactor>0.2</chanceFactor>
</li>
</tools>
<comps>
<!-- 这里是我们修改的核心部分 -->
<li Class="WulaFallenEmpire.CompProperties_AutoMechCarrier">
<startsAsAutoSpawn>true</startsAsAutoSpawn>
<freeProduction>true</freeProduction>
<cooldownTicks>900</cooldownTicks> <!-- 15 seconds -->
<productionQueue>
<li>
<pawnKind>Mech_WarUrchin</pawnKind>
<count>2</count>
</li>
<li>
<pawnKind>Mech_Lancer</pawnKind>
<count>1</count>
</li>
</productionQueue>
<spawnEffecter>WarqueenWarUrchinsSpawned</spawnEffecter>
<spawnedMechEffecter>WarUrchinSpawned</spawnedMechEffecter>
</li>
<li Class="CompProperties_TurretGun">
<turretDef>WULA_Penetrating_BeamTurret</turretDef>
<angleOffset>-90</angleOffset>
<autoAttack>false</autoAttack>
<renderNodeProperties>
<li>
<nodeClass>PawnRenderNode_TurretGun</nodeClass>
<workerClass>PawnRenderNodeWorker_TurretGun</workerClass>
<overrideMeshSize>(1, 1)</overrideMeshSize>
<parentTagDef>Body</parentTagDef>
<baseLayer>20</baseLayer>
<pawnType>Any</pawnType>
<drawData>
<dataWest>
<rotationOffset>180</rotationOffset>
</dataWest>
</drawData>
</li>
</renderNodeProperties>
</li>
</comps>
<killedLeavingsPlayerHostile>
<PowerfocusChip>1</PowerfocusChip>
</killedLeavingsPlayerHostile>
</ThingDef>
<ThingDef ParentName="BaseWeaponTurret">
<defName>WULA_Penetrating_BeamTurret</defName>
<label>charge blaster turret</label>
<description>A small charge blaster designed for use on a defense turret.</description>
<tradeability>None</tradeability>
<destroyOnDrop>true</destroyOnDrop>
<graphicData>
<texPath>Things/Item/Equipment/WeaponRanged/ChargeBlasterTurret</texPath>
<graphicClass>Graphic_Single</graphicClass>
</graphicData>
<statBases>
<Mass>2.6</Mass>
<AccuracyTouch>0.60</AccuracyTouch>
<AccuracyShort>0.80</AccuracyShort>
<AccuracyMedium>0.90</AccuracyMedium>
<AccuracyLong>0.85</AccuracyLong>
</statBases>
<verbs>
<li>
<verbClass>Verb_Shoot</verbClass>
<defaultProjectile>Bullet_WULA_RW_Penetrating_Beam_Ranged</defaultProjectile>
<range>44.9</range>
<ticksBetweenBurstShots>30</ticksBetweenBurstShots>
<soundCast>Shot_ChargeBlaster</soundCast>
<soundCastTail>GunTail_Heavy</soundCastTail>
<muzzleFlashScale>9</muzzleFlashScale>
<defaultCooldownTime>2.5</defaultCooldownTime>
<linkedBodyPartsGroup>BulbTurret</linkedBodyPartsGroup>
<ensureLinkedBodyPartsGroupAlwaysUsable>true</ensureLinkedBodyPartsGroupAlwaysUsable>
<ticksBetweenBurstShots>50</ticksBetweenBurstShots>
</li>
</verbs>
</ThingDef>
<PawnKindDef ParentName="HeavyMechanoidKind">
<defName>WULA_Mech_Warqueen</defName> <!-- 修改了defName以避免冲突 -->
<label>war queen (WULA)</label>
<labelPlural>war queens (WULA)</labelPlural>
<race>WULA_Mech_Warqueen</race>
<combatPower>600</combatPower>
<maxPerGroup>3</maxPerGroup>
<isBoss>true</isBoss>
<allowInMechClusters>false</allowInMechClusters>
<lifeStages>
<li>
<bodyGraphicData>
<texPath>Things/Pawn/Mechanoid/Warqueen</texPath>
<maskPath>Things/Pawn/Mechanoid/AllegianceOverlays/MechWarqueen</maskPath>
<shaderType>CutoutWithOverlay</shaderType>
<graphicClass>Graphic_Multi</graphicClass>
<drawSize>3</drawSize>
<shadowData>
<volume>(0.7, 0.8, 0.7)</volume>
</shadowData>
</bodyGraphicData>
</li>
<li>
<bodyGraphicData>
<texPath>Things/Pawn/Mechanoid/WarqueenAncient</texPath>
<maskPath>Things/Pawn/Mechanoid/AllegianceOverlays/MechWarqueen</maskPath>
<shaderType>CutoutWithOverlay</shaderType>
<graphicClass>Graphic_Multi</graphicClass>
<drawSize>3</drawSize>
<shadowData>
<volume>(0.7, 0.8, 0.7)</volume>
</shadowData>
</bodyGraphicData>
</li>
</lifeStages>
<controlGroupPortraitZoom>0.7</controlGroupPortraitZoom>
</PawnKindDef>
</Defs>

View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8" ?>
<LanguageData>
<!-- CompAutoMechCarrier -->
<MechCarrierDesc_Free>命令该单位生成 {0} 个 {1}。此操作不消耗任何资源。</MechCarrierDesc_Free>
<WULA_AutoSpawn_Label>自动生产</WULA_AutoSpawn_Label>
<WULA_AutoSpawn_Desc>切换是否自动生产单位。开启后,当资源和冷却允许时,会自动生产单位以维持队列上限。</WULA_AutoSpawn_Desc>
<WULA_AutoSpawn_On_Reason>自动生产已开启。再次点击以关闭。</WULA_AutoSpawn_On_Reason>
</LanguageData>