Merge branch 'main' of https://git.ra3battle.cn/Kalospacer/WulaFallenEmpireRW
@@ -3,15 +3,15 @@
|
|||||||
<FleckDef Name="WULA_GunTail_Plasma" ParentName="FleckBase">
|
<FleckDef Name="WULA_GunTail_Plasma" ParentName="FleckBase">
|
||||||
<defName>WULA_GunTail_Plasma</defName>
|
<defName>WULA_GunTail_Plasma</defName>
|
||||||
<altitudeLayer>Projectile</altitudeLayer>
|
<altitudeLayer>Projectile</altitudeLayer>
|
||||||
<fadeInTime>0.50</fadeInTime>
|
<fadeInTime>0.2</fadeInTime>
|
||||||
<solidTime>1</solidTime>
|
<solidTime>0.1</solidTime>
|
||||||
<fadeOutTime>1.2</fadeOutTime>
|
<fadeOutTime>0.2</fadeOutTime>
|
||||||
<growthRate>0.025</growthRate>
|
<growthRate>5</growthRate>
|
||||||
<graphicData>
|
<graphicData>
|
||||||
<texPath>Wula/Mote/WULA_GunTail_Plasma</texPath>
|
<texPath>Wula/Mote/WULA_GunTail_Plasma</texPath>
|
||||||
<shaderType>MoteGlow</shaderType>
|
<shaderType>MoteGlow</shaderType>
|
||||||
<drawSize>4.25</drawSize>
|
<drawSize>2.5</drawSize>
|
||||||
<color>(179,127,67,155)</color>
|
<color>(109, 208, 117, 155)</color>
|
||||||
</graphicData>
|
</graphicData>
|
||||||
</FleckDef>
|
</FleckDef>
|
||||||
|
|
||||||
|
|||||||
@@ -245,6 +245,43 @@
|
|||||||
<li>Wula_AI_Rocket_Panzer_Weapon</li>
|
<li>Wula_AI_Rocket_Panzer_Weapon</li>
|
||||||
</weaponTags>
|
</weaponTags>
|
||||||
</PawnKindDef>
|
</PawnKindDef>
|
||||||
|
<PawnKindDef ParentName="HeavyMechanoidKind">
|
||||||
|
<defName>Wula_AI_Panzer_Destroyer</defName> <!-- 修改了defName以避免冲突 -->
|
||||||
|
<label>HDp-1"冥波"</label>
|
||||||
|
<race>Wula_AI_Panzer_Destroyer</race>
|
||||||
|
<combatPower>500</combatPower>
|
||||||
|
<allowInMechClusters>false</allowInMechClusters>
|
||||||
|
<defaultFactionType>PlayerColony</defaultFactionType>
|
||||||
|
<canMeleeAttack>false</canMeleeAttack>
|
||||||
|
<isGoodBreacher>true</isGoodBreacher>
|
||||||
|
|
||||||
|
<flyingAnimationFramePathPrefix>Wula/Things/Wula_Mech_Mobile_Factory/Flying/Wula_Mech_Mobile_Factory_Flying_</flyingAnimationFramePathPrefix>
|
||||||
|
<flyingAnimationDrawSize>1</flyingAnimationDrawSize>
|
||||||
|
<flyingAnimationFrameCount>1</flyingAnimationFrameCount>
|
||||||
|
<flyingAnimationTicksPerFrame>2</flyingAnimationTicksPerFrame>
|
||||||
|
<flyingAnimationInheritColors>false</flyingAnimationInheritColors>
|
||||||
|
|
||||||
|
<lifeStages>
|
||||||
|
<li>
|
||||||
|
<bodyGraphicData>
|
||||||
|
<texPath>Wula/Things/Wula_AI_Heavy_Panzer/Bodies/Naked_Thin</texPath>
|
||||||
|
<maskPath>Wula/Things/WULA_Cat/AllegianceOverlays/None</maskPath>
|
||||||
|
<shaderType>CutoutWithOverlay</shaderType>
|
||||||
|
<graphicClass>Graphic_Multi</graphicClass>
|
||||||
|
<drawSize>9</drawSize>
|
||||||
|
<shadowData>
|
||||||
|
<volume>(1.4, 1.8, 1.4)</volume>
|
||||||
|
</shadowData>
|
||||||
|
</bodyGraphicData>
|
||||||
|
</li>
|
||||||
|
</lifeStages>
|
||||||
|
<weaponMoney>99999~99999</weaponMoney>
|
||||||
|
|
||||||
|
<controlGroupPortraitZoom>0.7</controlGroupPortraitZoom>
|
||||||
|
<weaponTags>
|
||||||
|
<li>Wula_AI_Panzer_Destroyer_Weapon</li>
|
||||||
|
</weaponTags>
|
||||||
|
</PawnKindDef>
|
||||||
<PawnKindDef ParentName="HeavyMechanoidKind">
|
<PawnKindDef ParentName="HeavyMechanoidKind">
|
||||||
<defName>Wula_Mech_Mobile_Shield</defName> <!-- 修改了defName以避免冲突 -->
|
<defName>Wula_Mech_Mobile_Shield</defName> <!-- 修改了defName以避免冲突 -->
|
||||||
<label>MSm-8"放射盾"</label>
|
<label>MSm-8"放射盾"</label>
|
||||||
|
|||||||
@@ -421,27 +421,13 @@
|
|||||||
</ResearchProjectDef>
|
</ResearchProjectDef>
|
||||||
<ResearchProjectDef ParentName="WULAtechBase">
|
<ResearchProjectDef ParentName="WULAtechBase">
|
||||||
<defName>WULA_Mech_Mobile_Shield_Technology</defName>
|
<defName>WULA_Mech_Mobile_Shield_Technology</defName>
|
||||||
<researchViewX>6.00</researchViewX>
|
<researchViewX>10.00</researchViewX>
|
||||||
<researchViewY>5.60</researchViewY>
|
<researchViewY>5.60</researchViewY>
|
||||||
<label>放射盾空投许可</label>
|
<label>放射盾空投许可</label>
|
||||||
<description>允许殖民地申请空投MSm-8"放射盾",乌拉帝国的中型战争机械,一种多足机械体,拥有密不透风的反射盾的同时,还可以灼烧那些企图进入护盾区域内的宵小之辈。</description>
|
<description>允许殖民地申请空投MSm-8"放射盾",乌拉帝国的中型战争机械,一种多足机械体,拥有密不透风的反射盾的同时,还可以灼烧那些企图进入护盾区域内的宵小之辈。</description>
|
||||||
<baseCost>2000</baseCost>
|
|
||||||
<hiddenPrerequisites>
|
|
||||||
<li>WULA_Synth_Productor_Technology</li>
|
|
||||||
</hiddenPrerequisites>
|
|
||||||
<prerequisites>
|
|
||||||
<li>WULA_Colony_License_LV2_Technology</li>
|
|
||||||
</prerequisites>
|
|
||||||
</ResearchProjectDef>
|
|
||||||
<ResearchProjectDef ParentName="WULAtechBase">
|
|
||||||
<defName>WULA_Mech_Mobile_Shield_Teleporter_Technology</defName>
|
|
||||||
<researchViewX>10.00</researchViewX>
|
|
||||||
<researchViewY>5.60</researchViewY>
|
|
||||||
<label>放射盾传送器许可</label>
|
|
||||||
<description>允许殖民地使用MSm-8"放射盾"内置的传送器,机械乌拉在其覆盖范围内,处于征召状态下进行常规移动时,会以瞬间传送代替步行。</description>
|
|
||||||
<baseCost>3000</baseCost>
|
<baseCost>3000</baseCost>
|
||||||
<hiddenPrerequisites>
|
<hiddenPrerequisites>
|
||||||
<li>WULA_Mech_Mobile_Shield_Technology</li>
|
<li>WULA_Synth_Productor_Technology</li>
|
||||||
</hiddenPrerequisites>
|
</hiddenPrerequisites>
|
||||||
<prerequisites>
|
<prerequisites>
|
||||||
<li>WULA_Colony_License_LV3_Technology</li>
|
<li>WULA_Colony_License_LV3_Technology</li>
|
||||||
|
|||||||
@@ -367,7 +367,7 @@
|
|||||||
<ThingDef ParentName="BaseWeaponTurret">
|
<ThingDef ParentName="BaseWeaponTurret">
|
||||||
<defName>Wula_AI_Heavy_Panzer_Turret_Weapon</defName>
|
<defName>Wula_AI_Heavy_Panzer_Turret_Weapon</defName>
|
||||||
<label>ATt-2"青金石"</label>
|
<label>ATt-2"青金石"</label>
|
||||||
<description>HAp-6"巨戟"的炮塔,两门可以洞穿护盾的晶化炮就是为打击护盾目标量身定做的。</description>
|
<description>HAp-6"巨戟"的炮塔,两门高射速晶化炮可以在对抗强大装甲目标和大量软目标间取得平衡。</description>
|
||||||
<tradeability>None</tradeability>
|
<tradeability>None</tradeability>
|
||||||
<destroyOnDrop>true</destroyOnDrop>
|
<destroyOnDrop>true</destroyOnDrop>
|
||||||
<techLevel>Ultra</techLevel>
|
<techLevel>Ultra</techLevel>
|
||||||
@@ -391,7 +391,7 @@
|
|||||||
<defaultProjectile>Bullet_Wula_AI_Heavy_Panzer_Turret_Weapon</defaultProjectile>
|
<defaultProjectile>Bullet_Wula_AI_Heavy_Panzer_Turret_Weapon</defaultProjectile>
|
||||||
<warmupTime>0</warmupTime>
|
<warmupTime>0</warmupTime>
|
||||||
<minRange>5.9</minRange>
|
<minRange>5.9</minRange>
|
||||||
<range>60</range>
|
<range>52</range>
|
||||||
<defaultCooldownTime>1</defaultCooldownTime>
|
<defaultCooldownTime>1</defaultCooldownTime>
|
||||||
<burstShotCount>2</burstShotCount>
|
<burstShotCount>2</burstShotCount>
|
||||||
<ticksBetweenBurstShots>4</ticksBetweenBurstShots>
|
<ticksBetweenBurstShots>4</ticksBetweenBurstShots>
|
||||||
@@ -649,6 +649,150 @@
|
|||||||
</li>
|
</li>
|
||||||
</comps>
|
</comps>
|
||||||
</ThingDef>
|
</ThingDef>
|
||||||
|
<ThingDef ParentName="BaseWeaponTurret">
|
||||||
|
<defName>Wula_AI_Panzer_Destroyer_Turret_Weapon</defName>
|
||||||
|
<label>DTt-9"琥珀"</label>
|
||||||
|
<description>HDp-1"冥波"的炮塔,其粒子炮可以洞穿那些最厚的护甲防御。</description>
|
||||||
|
<tradeability>None</tradeability>
|
||||||
|
<destroyOnDrop>true</destroyOnDrop>
|
||||||
|
<techLevel>Ultra</techLevel>
|
||||||
|
<graphicData>
|
||||||
|
<texPath>Wula/Weapon/WULA_WM_Panzer_Turret</texPath>
|
||||||
|
<graphicClass>Graphic_Single</graphicClass>
|
||||||
|
<drawSize>3</drawSize>
|
||||||
|
</graphicData>
|
||||||
|
<uiIconScale>0.33</uiIconScale>
|
||||||
|
<statBases>
|
||||||
|
<Mass>150</Mass>
|
||||||
|
<AccuracyTouch>1</AccuracyTouch>
|
||||||
|
<AccuracyShort>2</AccuracyShort>
|
||||||
|
<AccuracyMedium>2</AccuracyMedium>
|
||||||
|
<AccuracyLong>2</AccuracyLong>
|
||||||
|
</statBases>
|
||||||
|
<verbs>
|
||||||
|
<li>
|
||||||
|
<verbClass>WulaFallenEmpire.Verb_TurretOffestShoot</verbClass>
|
||||||
|
<hasStandardCommand>true</hasStandardCommand>
|
||||||
|
<defaultProjectile>Bullet_Wula_AI_Panzer_Destroyer_Turret_Weapon</defaultProjectile>
|
||||||
|
<warmupTime>0</warmupTime>
|
||||||
|
<minRange>8.9</minRange>
|
||||||
|
<range>79</range>
|
||||||
|
<defaultCooldownTime>8</defaultCooldownTime>
|
||||||
|
<burstShotCount>1</burstShotCount>
|
||||||
|
<ticksBetweenBurstShots>8</ticksBetweenBurstShots>
|
||||||
|
<requireLineOfSight>true</requireLineOfSight>
|
||||||
|
<soundCast>WULA_MW_Mass_Drivers_Shootingsound</soundCast>
|
||||||
|
<soundCastTail>GunTail_Heavy</soundCastTail>
|
||||||
|
<muzzleFlashScale>18</muzzleFlashScale>
|
||||||
|
<canGoWild>false</canGoWild>
|
||||||
|
</li>
|
||||||
|
</verbs>
|
||||||
|
<modExtensions>
|
||||||
|
<li Class="WulaFallenEmpire.ModExtension_ShootWithOffset">
|
||||||
|
<offsets>
|
||||||
|
<li>(0, -4.1)</li>
|
||||||
|
</offsets>
|
||||||
|
</li>
|
||||||
|
</modExtensions>
|
||||||
|
</ThingDef>
|
||||||
|
<ThingDef ParentName="BaseBullet">
|
||||||
|
<defName>Bullet_Wula_AI_Panzer_Destroyer_Turret_Weapon</defName>
|
||||||
|
<label>琥珀等离子弹</label>
|
||||||
|
<thingClass>WulaFallenEmpire.Projectile_ExplosiveWithDirectHit</thingClass>
|
||||||
|
<modExtensions>
|
||||||
|
<li Class="WulaFallenEmpire.ProjectileExtension_DirectHit">
|
||||||
|
<directDamageDef>Vaporize</directDamageDef>
|
||||||
|
<directDamageAmount>350</directDamageAmount>
|
||||||
|
<directArmorPenetration>2</directArmorPenetration>
|
||||||
|
<directImpactSound>Explosion_Vaporize</directImpactSound>
|
||||||
|
</li>
|
||||||
|
<li Class="WulaFallenEmpire.TrackingBulletDef">
|
||||||
|
<tailFleckDef>WULA_GunTail_Plasma</tailFleckDef>
|
||||||
|
<fleckMakeFleckTickMax>3</fleckMakeFleckTickMax>
|
||||||
|
</li>
|
||||||
|
</modExtensions>
|
||||||
|
<tickerType>Normal</tickerType>
|
||||||
|
<neverMultiSelect>True</neverMultiSelect>
|
||||||
|
<graphicData>
|
||||||
|
<texPath>Wula/Projectile/WULA_Plasma_Proj</texPath>
|
||||||
|
<graphicClass>Graphic_Single</graphicClass>
|
||||||
|
<shaderType>MoteGlow</shaderType>
|
||||||
|
<color>(109, 208, 117, 255)</color>
|
||||||
|
<drawSize>(2.5,3)</drawSize>
|
||||||
|
</graphicData>
|
||||||
|
<projectile>
|
||||||
|
<damageDef>WULA_GiantBomb</damageDef>
|
||||||
|
<damageAmountBase>45</damageAmountBase>
|
||||||
|
<speed>60</speed>
|
||||||
|
<explosionRadius>6</explosionRadius>
|
||||||
|
<armorPenetrationBase>1.5</armorPenetrationBase>
|
||||||
|
<flyOverhead>true</flyOverhead>
|
||||||
|
<soundHitThickRoof>Artillery_HitThickRoof</soundHitThickRoof>
|
||||||
|
<soundExplode>MortarBomb_Explode</soundExplode>
|
||||||
|
<soundImpactAnticipate>MortarRound_PreImpact</soundImpactAnticipate>
|
||||||
|
<soundAmbient>MortarRound_Ambient</soundAmbient>
|
||||||
|
<stoppingPower>10</stoppingPower>
|
||||||
|
<preExplosionSpawnSingleThingDef>Filth_BlastMark</preExplosionSpawnSingleThingDef>
|
||||||
|
</projectile>
|
||||||
|
</ThingDef>
|
||||||
|
<ThingDef ParentName="BaseHumanMakeableGun">
|
||||||
|
<defName>Wula_AI_Panzer_Destroyer_Main_Weapon</defName>
|
||||||
|
<label>目标标定器</label>
|
||||||
|
<description>HDp-1"冥波"车体上的测距器,可以确保其炮塔在可以开火的最佳距离,被其瞄准的目标会成为炮塔的优先攻击目标。</description>
|
||||||
|
<tickerType>Normal</tickerType>
|
||||||
|
<techLevel>Spacer</techLevel>
|
||||||
|
<tradeability>None</tradeability>
|
||||||
|
<destroyOnDrop>true</destroyOnDrop>
|
||||||
|
<uiIconPath>Wula/Projectile/WULA_Shrapnel</uiIconPath>
|
||||||
|
<graphicData>
|
||||||
|
<texPath>Wula/Weapon/WULA_Weapon_Empty</texPath>
|
||||||
|
<graphicClass>Graphic_Single</graphicClass>
|
||||||
|
<drawSize>1.35</drawSize>
|
||||||
|
</graphicData>
|
||||||
|
<soundInteract>Interact_Rifle</soundInteract>
|
||||||
|
<recipeMaker Inherit="False" IsNull="True"/>
|
||||||
|
<statBases>
|
||||||
|
<WorkToMake>2500</WorkToMake>
|
||||||
|
<!-- <MarketValue>370</MarketValue> -->
|
||||||
|
<Mass>8</Mass>
|
||||||
|
<AccuracyTouch>1</AccuracyTouch>
|
||||||
|
<AccuracyShort>1</AccuracyShort>
|
||||||
|
<AccuracyMedium>1</AccuracyMedium>
|
||||||
|
<AccuracyLong>1</AccuracyLong>
|
||||||
|
<RangedWeapon_Cooldown>0.1</RangedWeapon_Cooldown>
|
||||||
|
</statBases>
|
||||||
|
<verbs>
|
||||||
|
<li>
|
||||||
|
<verbClass>WulaFallenEmpire.Verb_RangeChecker</verbClass>
|
||||||
|
<hasStandardCommand>true</hasStandardCommand>
|
||||||
|
<defaultProjectile>Bullet_ChargeRifle</defaultProjectile>
|
||||||
|
<minRange>8.9</minRange>
|
||||||
|
<range>79</range>
|
||||||
|
<warmupTime>0.2</warmupTime>
|
||||||
|
<burstShotCount>1</burstShotCount>
|
||||||
|
<noiseRadius>0</noiseRadius>
|
||||||
|
<!-- <soundCast>RocketswarmLauncher_Fire</soundCast>
|
||||||
|
<soundCastTail>GunTail_Heavy</soundCastTail> -->
|
||||||
|
<targetParams>
|
||||||
|
<canTargetLocations>true</canTargetLocations>
|
||||||
|
</targetParams>
|
||||||
|
</li>
|
||||||
|
</verbs>
|
||||||
|
<costList Inherit="False">
|
||||||
|
<Steel>1</Steel>
|
||||||
|
</costList>
|
||||||
|
<weaponTags Inherit="False">
|
||||||
|
<li>Wula_AI_Panzer_Destroyer_Weapon</li>
|
||||||
|
</weaponTags>
|
||||||
|
<thingCategories Inherit="False"/>
|
||||||
|
<comps>
|
||||||
|
<li Class="WulaFallenEmpire.CompProperties_MechOnlyWeapon">
|
||||||
|
<allowedMechRaces>
|
||||||
|
<li>Wula_AI_Panzer_Destroyer</li>
|
||||||
|
</allowedMechRaces>
|
||||||
|
</li>
|
||||||
|
</comps>
|
||||||
|
</ThingDef>
|
||||||
|
|
||||||
<ThingDef ParentName="BaseHumanMakeableGun">
|
<ThingDef ParentName="BaseHumanMakeableGun">
|
||||||
<defName>Wula_Psi_Titan_Beam</defName>
|
<defName>Wula_Psi_Titan_Beam</defName>
|
||||||
|
|||||||
@@ -78,11 +78,11 @@
|
|||||||
<MaxFlightTime>9999</MaxFlightTime>
|
<MaxFlightTime>9999</MaxFlightTime>
|
||||||
<FlightCooldown>0</FlightCooldown>
|
<FlightCooldown>0</FlightCooldown>
|
||||||
|
|
||||||
<ArmorRating_Sharp>1</ArmorRating_Sharp>
|
<ArmorRating_Sharp>1.25</ArmorRating_Sharp>
|
||||||
<ArmorRating_Blunt>1</ArmorRating_Blunt>
|
<ArmorRating_Blunt>1.25</ArmorRating_Blunt>
|
||||||
<ArmorRating_Heat>2</ArmorRating_Heat>
|
<ArmorRating_Heat>2</ArmorRating_Heat>
|
||||||
|
|
||||||
<WULA_MechArmor>3</WULA_MechArmor>
|
<WULA_MechArmor>4</WULA_MechArmor>
|
||||||
</statBases>
|
</statBases>
|
||||||
<costList Inherit="False">
|
<costList Inherit="False">
|
||||||
<WULA_Alloy>300</WULA_Alloy>
|
<WULA_Alloy>300</WULA_Alloy>
|
||||||
@@ -180,7 +180,7 @@
|
|||||||
<exitCrewIcon>Wula/UI/Commands/WULA_ExitCrew</exitCrewIcon>
|
<exitCrewIcon>Wula/UI/Commands/WULA_ExitCrew</exitCrewIcon>
|
||||||
</li> -->
|
</li> -->
|
||||||
|
|
||||||
<li Class="WulaFallenEmpire.CompProperties_MechFuel">
|
<!-- <li Class="WulaFallenEmpire.CompProperties_MechFuel">
|
||||||
<fuelType>Chemfuel</fuelType>
|
<fuelType>Chemfuel</fuelType>
|
||||||
<fuelCapacity>70</fuelCapacity>
|
<fuelCapacity>70</fuelCapacity>
|
||||||
<dailyFuelConsumption>35</dailyFuelConsumption>
|
<dailyFuelConsumption>35</dailyFuelConsumption>
|
||||||
@@ -194,7 +194,7 @@
|
|||||||
<autoRefuelThreshold>1</autoRefuelThreshold>
|
<autoRefuelThreshold>1</autoRefuelThreshold>
|
||||||
|
|
||||||
<shutdownWhenEmpty>true</shutdownWhenEmpty>
|
<shutdownWhenEmpty>true</shutdownWhenEmpty>
|
||||||
</li>
|
</li> -->
|
||||||
<li Class="WulaFallenEmpire.CompProperties_MechRepairable">
|
<li Class="WulaFallenEmpire.CompProperties_MechRepairable">
|
||||||
<allowAutoRepair>true</allowAutoRepair>
|
<allowAutoRepair>true</allowAutoRepair>
|
||||||
<healthPercentThreshold>1</healthPercentThreshold>
|
<healthPercentThreshold>1</healthPercentThreshold>
|
||||||
@@ -302,7 +302,7 @@
|
|||||||
<stageTransitionCooldownTicks>3</stageTransitionCooldownTicks>
|
<stageTransitionCooldownTicks>3</stageTransitionCooldownTicks>
|
||||||
|
|
||||||
<!-- 碰撞区域 -->
|
<!-- 碰撞区域 -->
|
||||||
<collisionAreaRadius>3</collisionAreaRadius>
|
<collisionAreaRadius>2</collisionAreaRadius>
|
||||||
|
|
||||||
<!-- 目标过滤 -->
|
<!-- 目标过滤 -->
|
||||||
<onlyAffectEnemies>true</onlyAffectEnemies>
|
<onlyAffectEnemies>true</onlyAffectEnemies>
|
||||||
@@ -356,11 +356,11 @@
|
|||||||
<MaxFlightTime>9999</MaxFlightTime>
|
<MaxFlightTime>9999</MaxFlightTime>
|
||||||
<FlightCooldown>0</FlightCooldown>
|
<FlightCooldown>0</FlightCooldown>
|
||||||
|
|
||||||
<ArmorRating_Sharp>1</ArmorRating_Sharp>
|
<ArmorRating_Sharp>1.25</ArmorRating_Sharp>
|
||||||
<ArmorRating_Blunt>1</ArmorRating_Blunt>
|
<ArmorRating_Blunt>1.25</ArmorRating_Blunt>
|
||||||
<ArmorRating_Heat>2</ArmorRating_Heat>
|
<ArmorRating_Heat>2</ArmorRating_Heat>
|
||||||
|
|
||||||
<WULA_MechArmor>3</WULA_MechArmor>
|
<WULA_MechArmor>4</WULA_MechArmor>
|
||||||
</statBases>
|
</statBases>
|
||||||
<costList Inherit="False">
|
<costList Inherit="False">
|
||||||
<WULA_Alloy>300</WULA_Alloy>
|
<WULA_Alloy>300</WULA_Alloy>
|
||||||
@@ -448,7 +448,7 @@
|
|||||||
<summonPilotIcon>Wula/UI/Commands/WULA_Enter_Mech</summonPilotIcon>
|
<summonPilotIcon>Wula/UI/Commands/WULA_Enter_Mech</summonPilotIcon>
|
||||||
<ejectPilotIcon>Wula/UI/Commands/WULA_Exit_Mech</ejectPilotIcon>
|
<ejectPilotIcon>Wula/UI/Commands/WULA_Exit_Mech</ejectPilotIcon>
|
||||||
</li>
|
</li>
|
||||||
<li Class="WulaFallenEmpire.CompProperties_MechFuel">
|
<!-- <li Class="WulaFallenEmpire.CompProperties_MechFuel">
|
||||||
<fuelType>Chemfuel</fuelType>
|
<fuelType>Chemfuel</fuelType>
|
||||||
<fuelCapacity>70</fuelCapacity>
|
<fuelCapacity>70</fuelCapacity>
|
||||||
<dailyFuelConsumption>35</dailyFuelConsumption>
|
<dailyFuelConsumption>35</dailyFuelConsumption>
|
||||||
@@ -462,7 +462,7 @@
|
|||||||
<autoRefuelThreshold>1</autoRefuelThreshold>
|
<autoRefuelThreshold>1</autoRefuelThreshold>
|
||||||
|
|
||||||
<shutdownWhenEmpty>true</shutdownWhenEmpty>
|
<shutdownWhenEmpty>true</shutdownWhenEmpty>
|
||||||
</li>
|
</li> -->
|
||||||
<li Class="WulaFallenEmpire.CompProperties_MechRepairable">
|
<li Class="WulaFallenEmpire.CompProperties_MechRepairable">
|
||||||
<allowAutoRepair>true</allowAutoRepair>
|
<allowAutoRepair>true</allowAutoRepair>
|
||||||
<healthPercentThreshold>1</healthPercentThreshold>
|
<healthPercentThreshold>1</healthPercentThreshold>
|
||||||
@@ -570,7 +570,7 @@
|
|||||||
<stageTransitionCooldownTicks>3</stageTransitionCooldownTicks>
|
<stageTransitionCooldownTicks>3</stageTransitionCooldownTicks>
|
||||||
|
|
||||||
<!-- 碰撞区域 -->
|
<!-- 碰撞区域 -->
|
||||||
<collisionAreaRadius>3</collisionAreaRadius>
|
<collisionAreaRadius>2</collisionAreaRadius>
|
||||||
|
|
||||||
<!-- 目标过滤 -->
|
<!-- 目标过滤 -->
|
||||||
<onlyAffectEnemies>true</onlyAffectEnemies>
|
<onlyAffectEnemies>true</onlyAffectEnemies>
|
||||||
@@ -598,6 +598,280 @@
|
|||||||
<knockbackFlyerDef>PawnFlyer</knockbackFlyerDef>
|
<knockbackFlyerDef>PawnFlyer</knockbackFlyerDef>
|
||||||
<!-- <flightEffecterDef>FlyerTakeoff</flightEffecterDef> -->
|
<!-- <flightEffecterDef>FlyerTakeoff</flightEffecterDef> -->
|
||||||
<landingSound>PawnFlyerLand</landingSound>
|
<landingSound>PawnFlyerLand</landingSound>
|
||||||
|
|
||||||
|
<!-- 地形阻挡配置 -->
|
||||||
|
<narrowTerrainBlocked>true</narrowTerrainBlocked>
|
||||||
|
<maxBlockPenalty>1</maxBlockPenalty>
|
||||||
|
<terrainCheckInterval>60</terrainCheckInterval>
|
||||||
|
<blockedHediff>Wula_TerrainBlocked</blockedHediff>
|
||||||
|
|
||||||
|
<!-- 调试 -->
|
||||||
|
<enableDebugLogging>false</enableDebugLogging>
|
||||||
|
<enableDebugVisuals>false</enableDebugVisuals>
|
||||||
|
<debugDrawSpeedHistory>false</debugDrawSpeedHistory>
|
||||||
|
</li>
|
||||||
|
</comps>
|
||||||
|
</ThingDef>
|
||||||
|
<ThingDef ParentName="Wula_MechunitBase">
|
||||||
|
<defName>Wula_AI_Panzer_Destroyer</defName>
|
||||||
|
<label>HDp-1"冥波"</label>
|
||||||
|
<description>乌拉帝国的中型战争机械,以悬浮的方式穿梭于战场之上,拥有一门射速缓慢但射程极远、威力强大的电浆炮,足以威胁那些最厚实的装甲单位。</description>
|
||||||
|
<statBases>
|
||||||
|
<MoveSpeed>2</MoveSpeed>
|
||||||
|
<EnergyShieldEnergyMax>2</EnergyShieldEnergyMax>
|
||||||
|
<StaggerDurationFactor>0</StaggerDurationFactor>
|
||||||
|
|
||||||
|
<MaxFlightTime>9999</MaxFlightTime>
|
||||||
|
<FlightCooldown>0</FlightCooldown>
|
||||||
|
|
||||||
|
<ArmorRating_Sharp>1.25</ArmorRating_Sharp>
|
||||||
|
<ArmorRating_Blunt>1.25</ArmorRating_Blunt>
|
||||||
|
<ArmorRating_Heat>2</ArmorRating_Heat>
|
||||||
|
|
||||||
|
<WULA_MechArmor>4</WULA_MechArmor>
|
||||||
|
</statBases>
|
||||||
|
<costList Inherit="False">
|
||||||
|
<WULA_Alloy>300</WULA_Alloy>
|
||||||
|
<WULA_Charge_Cube>18</WULA_Charge_Cube>
|
||||||
|
<ComponentSpacer>2</ComponentSpacer>
|
||||||
|
</costList>
|
||||||
|
<butcherProducts Inherit="False">
|
||||||
|
<WULA_Alloy>300</WULA_Alloy>
|
||||||
|
<WULA_Charge_Cube>18</WULA_Charge_Cube>
|
||||||
|
<ComponentSpacer>2</ComponentSpacer>
|
||||||
|
</butcherProducts>
|
||||||
|
<race>
|
||||||
|
<body>WULA_AI_Heavy_Panzer_Body</body>
|
||||||
|
<baseBodySize>20</baseBodySize>
|
||||||
|
<thinkTreeMain>Wula_Battle_Mech_With_1_Pilot</thinkTreeMain>
|
||||||
|
<baseHealthScale>10</baseHealthScale>
|
||||||
|
|
||||||
|
<flightStartChanceOnJobStart>1</flightStartChanceOnJobStart>
|
||||||
|
</race>
|
||||||
|
<tools Inherit="False">
|
||||||
|
<li>
|
||||||
|
<label>碾压</label>
|
||||||
|
<capacities>
|
||||||
|
<li>Blunt</li>
|
||||||
|
</capacities>
|
||||||
|
<power>360</power>
|
||||||
|
<cooldownTime>8</cooldownTime>
|
||||||
|
<linkedBodyPartsGroup>Torso</linkedBodyPartsGroup>
|
||||||
|
<ensureLinkedBodyPartsGroupAlwaysUsable>true</ensureLinkedBodyPartsGroupAlwaysUsable>
|
||||||
|
</li>
|
||||||
|
</tools>
|
||||||
|
<comps>
|
||||||
|
<li Class="WulaFallenEmpire.CompProperties_MultiTurretGun">
|
||||||
|
<ID>0</ID>
|
||||||
|
<turretDef>Wula_AI_Panzer_Destroyer_Turret_Weapon</turretDef>
|
||||||
|
<traverseSpeed>20</traverseSpeed>
|
||||||
|
<aimTicks>0</aimTicks>
|
||||||
|
<idleRotationSpeed>3</idleRotationSpeed>
|
||||||
|
<smoothRotation>true</smoothRotation>
|
||||||
|
<resetCooldownTime>8.2</resetCooldownTime>
|
||||||
|
<!-- <angleOffset>-90</angleOffset> -->
|
||||||
|
<!-- <angleOffset>-90</angleOffset> -->
|
||||||
|
<renderNodeProperties>
|
||||||
|
<li>
|
||||||
|
<nodeClass>PawnRenderNode_TurretGun</nodeClass>
|
||||||
|
<workerClass>PawnRenderNodeWorker_TurretGun</workerClass>
|
||||||
|
<parentTagDef>Body</parentTagDef>
|
||||||
|
<overrideMeshSize>(8, 8)</overrideMeshSize>
|
||||||
|
<baseLayer>20</baseLayer>
|
||||||
|
<pawnType>Any</pawnType>
|
||||||
|
<drawData>
|
||||||
|
<dataNorth>
|
||||||
|
<rotationOffset>-90</rotationOffset>
|
||||||
|
</dataNorth>
|
||||||
|
<dataEast>
|
||||||
|
<rotationOffset>-90</rotationOffset>
|
||||||
|
</dataEast>
|
||||||
|
<dataSouth>
|
||||||
|
<rotationOffset>-90</rotationOffset>
|
||||||
|
</dataSouth>
|
||||||
|
<dataWest>
|
||||||
|
<rotationOffset>90</rotationOffset>
|
||||||
|
</dataWest>
|
||||||
|
</drawData>
|
||||||
|
</li>
|
||||||
|
</renderNodeProperties>
|
||||||
|
</li>
|
||||||
|
<li Class="WulaFallenEmpire.CompProperties_PawnFlight">
|
||||||
|
|
||||||
|
<!-- 飞行触发条件:仅在征召时飞行 -->
|
||||||
|
<flightCondition>DraftedAndMove</flightCondition>
|
||||||
|
|
||||||
|
<!-- 链接到我们刚刚创建的 AnimationDef -->
|
||||||
|
<flyingAnimationNorth>WULA_Hover_FlyNorth</flyingAnimationNorth>
|
||||||
|
<flyingAnimationEast>WULA_Hover_FlyEast</flyingAnimationEast>
|
||||||
|
<flyingAnimationSouth>WULA_Hover_FlySouth</flyingAnimationSouth>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li Class="WulaFallenEmpire.CompProperties_MechPilotHolder">
|
||||||
|
<maxPilots>1</maxPilots>
|
||||||
|
<pilotWorkTag>MechPilot</pilotWorkTag>
|
||||||
|
|
||||||
|
<ejectPilotHealthPercentThreshold>0.1</ejectPilotHealthPercentThreshold>
|
||||||
|
|
||||||
|
<summonPilotIcon>Wula/UI/Commands/WULA_Enter_Mech</summonPilotIcon>
|
||||||
|
<ejectPilotIcon>Wula/UI/Commands/WULA_Exit_Mech</ejectPilotIcon>
|
||||||
|
</li>
|
||||||
|
<!-- <li Class="WulaFallenEmpire.CompProperties_MechFuel">
|
||||||
|
<fuelType>Chemfuel</fuelType>
|
||||||
|
<fuelCapacity>70</fuelCapacity>
|
||||||
|
<dailyFuelConsumption>35</dailyFuelConsumption>
|
||||||
|
|
||||||
|
<refuelSpeedFactor>1</refuelSpeedFactor>
|
||||||
|
<refuelDuration>240</refuelDuration>
|
||||||
|
|
||||||
|
<fuelBarColor>(0.6, 0.5, 0.4)</fuelBarColor>
|
||||||
|
|
||||||
|
<allowAutoRefuel>true</allowAutoRefuel>
|
||||||
|
<autoRefuelThreshold>1</autoRefuelThreshold>
|
||||||
|
|
||||||
|
<shutdownWhenEmpty>true</shutdownWhenEmpty>
|
||||||
|
</li> -->
|
||||||
|
<li Class="WulaFallenEmpire.CompProperties_MechRepairable">
|
||||||
|
<allowAutoRepair>true</allowAutoRepair>
|
||||||
|
<healthPercentThreshold>1</healthPercentThreshold>
|
||||||
|
|
||||||
|
<repairAmountPerCycle>10</repairAmountPerCycle>
|
||||||
|
|
||||||
|
<repairSound></repairSound>
|
||||||
|
<repairEffect>ConstructMetal</repairEffect>
|
||||||
|
</li>
|
||||||
|
<li Class="WulaFallenEmpire.CompProperties_MechInherentWeapon">
|
||||||
|
<weaponDef>Wula_AI_Panzer_Destroyer_Main_Weapon</weaponDef>
|
||||||
|
</li>
|
||||||
|
<li Class="WulaFallenEmpire.CompProperties_MechDefaultPilot">
|
||||||
|
<enableForNonPlayerFaction>true</enableForNonPlayerFaction>
|
||||||
|
<enableForPlayerFaction>false</enableForPlayerFaction>
|
||||||
|
|
||||||
|
<defaultPilotChance>1.0</defaultPilotChance>
|
||||||
|
<spawnOnlyIfNoPilot>true</spawnOnlyIfNoPilot>
|
||||||
|
<replaceExistingPilots>false</replaceExistingPilots>
|
||||||
|
<maxDefaultPilots>3</maxDefaultPilots>
|
||||||
|
|
||||||
|
<defaultPilots>
|
||||||
|
<li>
|
||||||
|
<pawnKind>Wula_PIA_Light_Unit</pawnKind>
|
||||||
|
<weight>1</weight>
|
||||||
|
<required>false</required>
|
||||||
|
</li>
|
||||||
|
</defaultPilots>
|
||||||
|
</li>
|
||||||
|
<li Class="WulaFallenEmpire.CompProperties_MechSkillInheritance">
|
||||||
|
<baseSkillLevelWhenNoPilot>0</baseSkillLevelWhenNoPilot>
|
||||||
|
<skillMultiplierForPilots>1</skillMultiplierForPilots>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<!-- <li Class="WulaFallenEmpire.CompProperties_MoteEmitterNorthward">
|
||||||
|
<moteDef>WULA_Mote_MechBlackSmoke</moteDef>
|
||||||
|
<emitIntervalTicks>30</emitIntervalTicks>
|
||||||
|
<emitIntervalMovingTicks>20</emitIntervalMovingTicks>
|
||||||
|
<moveSpeed>1.5</moveSpeed>
|
||||||
|
<lifetimeTicks>10</lifetimeTicks>
|
||||||
|
<scale>0.25</scale>
|
||||||
|
<offset>(0.85,0,2.25)</offset>
|
||||||
|
</li>
|
||||||
|
<li Class="WulaFallenEmpire.CompProperties_MoteEmitterNorthward">
|
||||||
|
<moteDef>WULA_Mote_MechBlackSmoke</moteDef>
|
||||||
|
<emitIntervalTicks>30</emitIntervalTicks>
|
||||||
|
<emitIntervalMovingTicks>20</emitIntervalMovingTicks>
|
||||||
|
<moveSpeed>1.5</moveSpeed>
|
||||||
|
<lifetimeTicks>10</lifetimeTicks>
|
||||||
|
<scale>0.25</scale>
|
||||||
|
<offset>(-0.85,0,2.25)</offset>
|
||||||
|
</li> -->
|
||||||
|
|
||||||
|
<!-- <li Class="WulaFallenEmpire.CompProperties_MechMovementSound">
|
||||||
|
<movementSound>WULA_DHM70_Rampart_Mech_Moving_Sound</movementSound>
|
||||||
|
</li> -->
|
||||||
|
|
||||||
|
<li Class="WulaFallenEmpire.CompProperties_MechSelfDestruct">
|
||||||
|
<healthPercentThreshold>0.1</healthPercentThreshold>
|
||||||
|
<wickTicks>120~180</wickTicks>
|
||||||
|
<drawWick>true</drawWick>
|
||||||
|
|
||||||
|
<explosiveRadius>11.5</explosiveRadius>
|
||||||
|
<explosiveDamageType>Flame</explosiveDamageType>
|
||||||
|
<damageAmountBase>5</damageAmountBase>
|
||||||
|
<armorPenetrationBase>2</armorPenetrationBase>
|
||||||
|
<chanceToStartFire>0.25</chanceToStartFire>
|
||||||
|
<damageFalloff>true</damageFalloff>
|
||||||
|
<doVisualEffects>true</doVisualEffects>
|
||||||
|
<doSoundEffects>true</doSoundEffects>
|
||||||
|
<propagationSpeed>1</propagationSpeed>
|
||||||
|
|
||||||
|
<explosionSound>Explosion_Bomb</explosionSound>
|
||||||
|
|
||||||
|
<triggerOnDeath>true</triggerOnDeath>
|
||||||
|
<triggerOnHealthThreshold>true</triggerOnHealthThreshold>
|
||||||
|
<chanceNeverExplode>0</chanceNeverExplode>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<!-- <li Class="WulaFallenEmpire.CompProperties_HediffGiverByKind">
|
||||||
|
<debugMode>false</debugMode>
|
||||||
|
|
||||||
|
<defaultHediffs>
|
||||||
|
</defaultHediffs>
|
||||||
|
<defaultAddChance>1</defaultAddChance>
|
||||||
|
<defaultAllowDuplicates>false</defaultAllowDuplicates>
|
||||||
|
|
||||||
|
<pawnKindHediffs>
|
||||||
|
<li>
|
||||||
|
<pawnKind>WULA_DHM70_Rampart_Mech_Prototype</pawnKind>
|
||||||
|
<hediffs>
|
||||||
|
<li>WULA_MechPrototype</li>
|
||||||
|
</hediffs>
|
||||||
|
<addChance>1.0</addChance>
|
||||||
|
<allowDuplicates>false</allowDuplicates>
|
||||||
|
</li>
|
||||||
|
</pawnKindHediffs>
|
||||||
|
</li> -->
|
||||||
|
|
||||||
|
<li Class="WulaFallenEmpire.CompProperties_HighSpeedCollision">
|
||||||
|
<!-- 速度阈值 -->
|
||||||
|
<minSpeedForStage1>1.0</minSpeedForStage1>
|
||||||
|
<minSpeedForStage2>2.0</minSpeedForStage2>
|
||||||
|
<speedHistoryFrameCount>15</speedHistoryFrameCount>
|
||||||
|
<stageTransitionCooldownTicks>3</stageTransitionCooldownTicks>
|
||||||
|
|
||||||
|
<!-- 碰撞区域 -->
|
||||||
|
<collisionAreaRadius>2</collisionAreaRadius>
|
||||||
|
|
||||||
|
<!-- 目标过滤 -->
|
||||||
|
<onlyAffectEnemies>true</onlyAffectEnemies>
|
||||||
|
<excludeAlliedPawns>true</excludeAlliedPawns>
|
||||||
|
|
||||||
|
<!-- 阶段1效果 -->
|
||||||
|
<stage1DamageDef>Blunt</stage1DamageDef>
|
||||||
|
<stage1DamageAmount>1</stage1DamageAmount>
|
||||||
|
<armorPenetration>0.1</armorPenetration>
|
||||||
|
<!-- <stage1Hediff>Bruise</stage1Hediff>
|
||||||
|
<stage1HediffDurationTicks>120</stage1HediffDurationTicks>
|
||||||
|
<stage1HediffPreventsDamage>true</stage1HediffPreventsDamage> -->
|
||||||
|
<!-- <stage1Effecter>SparkImpact</stage1Effecter> -->
|
||||||
|
<stage1Sound>MeleeHit_BladelinkZeusHammer</stage1Sound>
|
||||||
|
|
||||||
|
<!-- 阶段2效果 -->
|
||||||
|
<stage2DamageDef>Blunt</stage2DamageDef>
|
||||||
|
<stage2DamageAmount>15</stage2DamageAmount>
|
||||||
|
<stage2KnockbackDistance>4</stage2KnockbackDistance>
|
||||||
|
<requireLineOfSightForKnockback>true</requireLineOfSightForKnockback>
|
||||||
|
<!-- <stage2Effecter>ExplosionFlash</stage2Effecter> -->
|
||||||
|
<stage2Sound>MeleeHit_BladelinkZeusHammer</stage2Sound>
|
||||||
|
|
||||||
|
<!-- 击飞配置 -->
|
||||||
|
<knockbackFlyerDef>PawnFlyer</knockbackFlyerDef>
|
||||||
|
<!-- <flightEffecterDef>FlyerTakeoff</flightEffecterDef> -->
|
||||||
|
<landingSound>PawnFlyerLand</landingSound>
|
||||||
|
|
||||||
|
<!-- 地形阻挡配置 -->
|
||||||
|
<narrowTerrainBlocked>true</narrowTerrainBlocked>
|
||||||
|
<maxBlockPenalty>1</maxBlockPenalty>
|
||||||
|
<terrainCheckInterval>60</terrainCheckInterval>
|
||||||
|
<blockedHediff>Wula_TerrainBlocked</blockedHediff>
|
||||||
|
|
||||||
<!-- 调试 -->
|
<!-- 调试 -->
|
||||||
<enableDebugLogging>false</enableDebugLogging>
|
<enableDebugLogging>false</enableDebugLogging>
|
||||||
@@ -616,6 +890,8 @@
|
|||||||
<ArmorRating_Sharp>0.5</ArmorRating_Sharp>
|
<ArmorRating_Sharp>0.5</ArmorRating_Sharp>
|
||||||
<ArmorRating_Blunt>0.5</ArmorRating_Blunt>
|
<ArmorRating_Blunt>0.5</ArmorRating_Blunt>
|
||||||
<ArmorRating_Heat>2</ArmorRating_Heat>
|
<ArmorRating_Heat>2</ArmorRating_Heat>
|
||||||
|
|
||||||
|
<WULA_MechArmor>5</WULA_MechArmor>
|
||||||
</statBases>
|
</statBases>
|
||||||
<costList Inherit="False">
|
<costList Inherit="False">
|
||||||
<WULA_Alloy>300</WULA_Alloy>
|
<WULA_Alloy>300</WULA_Alloy>
|
||||||
@@ -649,7 +925,7 @@
|
|||||||
</tools>
|
</tools>
|
||||||
<comps>
|
<comps>
|
||||||
<li Class="WulaFallenEmpire.CompProperties_AreaShield">
|
<li Class="WulaFallenEmpire.CompProperties_AreaShield">
|
||||||
<radius>15</radius>
|
<radius>25</radius>
|
||||||
<baseHitPoints>300</baseHitPoints>
|
<baseHitPoints>300</baseHitPoints>
|
||||||
<rechargeDelay>2400</rechargeDelay>
|
<rechargeDelay>2400</rechargeDelay>
|
||||||
<rechargeHitPointsIntervalTicks>30</rechargeHitPointsIntervalTicks>
|
<rechargeHitPointsIntervalTicks>30</rechargeHitPointsIntervalTicks>
|
||||||
@@ -669,13 +945,13 @@
|
|||||||
|
|
||||||
<!-- 反射设置 -->
|
<!-- 反射设置 -->
|
||||||
<canReflect>true</canReflect>
|
<canReflect>true</canReflect>
|
||||||
<reflectChance>0.85</reflectChance>
|
<reflectChance>0.95</reflectChance>
|
||||||
<reflectAngleRange>30</reflectAngleRange>
|
<reflectAngleRange>30</reflectAngleRange>
|
||||||
<reflectCost>0</reflectCost>
|
<reflectCost>0</reflectCost>
|
||||||
<reflectEffecter>Interceptor_BlockedProjectile</reflectEffecter>
|
<reflectEffecter>Interceptor_BlockedProjectile</reflectEffecter>
|
||||||
</li>
|
</li>
|
||||||
<li Class="WulaFallenEmpire.CompProperties_AreaDamage">
|
<li Class="WulaFallenEmpire.CompProperties_AreaDamage">
|
||||||
<radius>15</radius>
|
<radius>25</radius>
|
||||||
<damageIntervalTicks>30</damageIntervalTicks>
|
<damageIntervalTicks>30</damageIntervalTicks>
|
||||||
<damageDef>Flame</damageDef>
|
<damageDef>Flame</damageDef>
|
||||||
<damageAmount>8</damageAmount>
|
<damageAmount>8</damageAmount>
|
||||||
@@ -687,7 +963,7 @@
|
|||||||
<ignoreFactionRelations>false</ignoreFactionRelations>
|
<ignoreFactionRelations>false</ignoreFactionRelations>
|
||||||
<startEnabled>false</startEnabled>
|
<startEnabled>false</startEnabled>
|
||||||
<toggleLabel>热辐射</toggleLabel>
|
<toggleLabel>热辐射</toggleLabel>
|
||||||
<toggleDescription>MSm-8"放射盾"可以打开外壳,蒸发胆敢进入反射立场内的敌军——这同时会使得它伤害附近所有的散落物品。</toggleDescription>
|
<toggleDescription>MSm-8"放射盾"可以打开外壳,蒸发胆敢进入反射立场内的敌军。</toggleDescription>
|
||||||
<toggleIconPath>Wula/UI/Commands/Wula_Psi_Titan_AreaDamage</toggleIconPath>
|
<toggleIconPath>Wula/UI/Commands/Wula_Psi_Titan_AreaDamage</toggleIconPath>
|
||||||
</li>
|
</li>
|
||||||
<!-- <li Class="WulaFallenEmpire.CompProperties_AreaTeleporter">
|
<!-- <li Class="WulaFallenEmpire.CompProperties_AreaTeleporter">
|
||||||
@@ -716,7 +992,7 @@
|
|||||||
<summonPilotIcon>Wula/UI/Commands/WULA_Enter_Mech</summonPilotIcon>
|
<summonPilotIcon>Wula/UI/Commands/WULA_Enter_Mech</summonPilotIcon>
|
||||||
<ejectPilotIcon>Wula/UI/Commands/WULA_Exit_Mech</ejectPilotIcon>
|
<ejectPilotIcon>Wula/UI/Commands/WULA_Exit_Mech</ejectPilotIcon>
|
||||||
</li>
|
</li>
|
||||||
<li Class="WulaFallenEmpire.CompProperties_MechFuel">
|
<!-- <li Class="WulaFallenEmpire.CompProperties_MechFuel">
|
||||||
<fuelType>Chemfuel</fuelType>
|
<fuelType>Chemfuel</fuelType>
|
||||||
<fuelCapacity>70</fuelCapacity>
|
<fuelCapacity>70</fuelCapacity>
|
||||||
<dailyFuelConsumption>35</dailyFuelConsumption>
|
<dailyFuelConsumption>35</dailyFuelConsumption>
|
||||||
@@ -730,7 +1006,7 @@
|
|||||||
<autoRefuelThreshold>1</autoRefuelThreshold>
|
<autoRefuelThreshold>1</autoRefuelThreshold>
|
||||||
|
|
||||||
<shutdownWhenEmpty>true</shutdownWhenEmpty>
|
<shutdownWhenEmpty>true</shutdownWhenEmpty>
|
||||||
</li>
|
</li> -->
|
||||||
<li Class="WulaFallenEmpire.CompProperties_MechRepairable">
|
<li Class="WulaFallenEmpire.CompProperties_MechRepairable">
|
||||||
<allowAutoRepair>true</allowAutoRepair>
|
<allowAutoRepair>true</allowAutoRepair>
|
||||||
<healthPercentThreshold>1</healthPercentThreshold>
|
<healthPercentThreshold>1</healthPercentThreshold>
|
||||||
@@ -829,12 +1105,61 @@
|
|||||||
</li>
|
</li>
|
||||||
</pawnKindHediffs>
|
</pawnKindHediffs>
|
||||||
</li> -->
|
</li> -->
|
||||||
|
|
||||||
|
<li Class="WulaFallenEmpire.CompProperties_HighSpeedCollision">
|
||||||
|
<!-- 速度阈值 -->
|
||||||
|
<minSpeedForStage1>0.5</minSpeedForStage1>
|
||||||
|
<minSpeedForStage2>1.0</minSpeedForStage2>
|
||||||
|
<speedHistoryFrameCount>15</speedHistoryFrameCount>
|
||||||
|
<stageTransitionCooldownTicks>6</stageTransitionCooldownTicks>
|
||||||
|
|
||||||
|
<!-- 碰撞区域 -->
|
||||||
|
<collisionAreaRadius>3</collisionAreaRadius>
|
||||||
|
|
||||||
|
<!-- 目标过滤 -->
|
||||||
|
<onlyAffectEnemies>true</onlyAffectEnemies>
|
||||||
|
<excludeAlliedPawns>true</excludeAlliedPawns>
|
||||||
|
|
||||||
|
<!-- 阶段1效果 -->
|
||||||
|
<stage1DamageDef>Blunt</stage1DamageDef>
|
||||||
|
<stage1DamageAmount>1</stage1DamageAmount>
|
||||||
|
<armorPenetration>0.1</armorPenetration>
|
||||||
|
<!-- <stage1Hediff>Bruise</stage1Hediff>
|
||||||
|
<stage1HediffDurationTicks>120</stage1HediffDurationTicks>
|
||||||
|
<stage1HediffPreventsDamage>true</stage1HediffPreventsDamage> -->
|
||||||
|
<!-- <stage1Effecter>SparkImpact</stage1Effecter> -->
|
||||||
|
<stage1Sound>MeleeHit_BladelinkZeusHammer</stage1Sound>
|
||||||
|
|
||||||
|
<!-- 阶段2效果 -->
|
||||||
|
<stage2DamageDef>Blunt</stage2DamageDef>
|
||||||
|
<stage2DamageAmount>20</stage2DamageAmount>
|
||||||
|
<stage2KnockbackDistance>4</stage2KnockbackDistance>
|
||||||
|
<requireLineOfSightForKnockback>true</requireLineOfSightForKnockback>
|
||||||
|
<!-- <stage2Effecter>ExplosionFlash</stage2Effecter> -->
|
||||||
|
<stage2Sound>MeleeHit_BladelinkZeusHammer</stage2Sound>
|
||||||
|
|
||||||
|
<!-- 击飞配置 -->
|
||||||
|
<knockbackFlyerDef>PawnFlyer</knockbackFlyerDef>
|
||||||
|
<!-- <flightEffecterDef>FlyerTakeoff</flightEffecterDef> -->
|
||||||
|
<landingSound>PawnFlyerLand</landingSound>
|
||||||
|
|
||||||
|
<!-- 地形阻挡配置 -->
|
||||||
|
<narrowTerrainBlocked>true</narrowTerrainBlocked>
|
||||||
|
<maxBlockPenalty>1</maxBlockPenalty>
|
||||||
|
<terrainCheckInterval>60</terrainCheckInterval>
|
||||||
|
<blockedHediff>Wula_TerrainBlocked</blockedHediff>
|
||||||
|
|
||||||
|
<!-- 调试 -->
|
||||||
|
<enableDebugLogging>false</enableDebugLogging>
|
||||||
|
<enableDebugVisuals>false</enableDebugVisuals>
|
||||||
|
<debugDrawSpeedHistory>false</debugDrawSpeedHistory>
|
||||||
|
</li>
|
||||||
</comps>
|
</comps>
|
||||||
</ThingDef>
|
</ThingDef>
|
||||||
<ThingDef ParentName="Wula_MechunitBase">
|
<ThingDef ParentName="Wula_MechunitBase">
|
||||||
<defName>Wula_Mech_Mobile_Factory</defName>
|
<defName>Wula_Mech_Mobile_Factory</defName>
|
||||||
<label>MFm-2"陆行舰"</label>
|
<label>MFm-2"陆行舰"</label>
|
||||||
<description>乌拉帝国的大型战争机械,简直就是一座移动堡垒——它不仅装甲厚实、火炮林立,还能在战场上生产大量的辅助战争机械以形成坚实的弹性阵线,生来就是为了粉碎坚固的要塞和顽强的抵抗。</description>
|
<description>乌拉帝国的大型构装体,简直就是一座移动堡垒——它不仅装甲厚实、火炮林立,还能在战场上生产大量的辅助战争机械以形成坚实的弹性阵线,生来就是为了粉碎坚固的要塞和顽强的抵抗。</description>
|
||||||
<statBases>
|
<statBases>
|
||||||
<MoveSpeed>1</MoveSpeed>
|
<MoveSpeed>1</MoveSpeed>
|
||||||
<EnergyShieldEnergyMax>5</EnergyShieldEnergyMax>
|
<EnergyShieldEnergyMax>5</EnergyShieldEnergyMax>
|
||||||
@@ -845,6 +1170,8 @@
|
|||||||
<ArmorRating_Sharp>1.75</ArmorRating_Sharp>
|
<ArmorRating_Sharp>1.75</ArmorRating_Sharp>
|
||||||
<ArmorRating_Blunt>1.75</ArmorRating_Blunt>
|
<ArmorRating_Blunt>1.75</ArmorRating_Blunt>
|
||||||
<ArmorRating_Heat>2</ArmorRating_Heat>
|
<ArmorRating_Heat>2</ArmorRating_Heat>
|
||||||
|
|
||||||
|
<WULA_MechArmor>10</WULA_MechArmor>
|
||||||
</statBases>
|
</statBases>
|
||||||
<costList Inherit="False">
|
<costList Inherit="False">
|
||||||
<WULA_Alloy>300</WULA_Alloy>
|
<WULA_Alloy>300</WULA_Alloy>
|
||||||
@@ -1138,7 +1465,7 @@
|
|||||||
<summonPilotIcon>Wula/UI/Commands/WULA_Enter_Mech</summonPilotIcon>
|
<summonPilotIcon>Wula/UI/Commands/WULA_Enter_Mech</summonPilotIcon>
|
||||||
<ejectPilotIcon>Wula/UI/Commands/WULA_Exit_Mech</ejectPilotIcon>
|
<ejectPilotIcon>Wula/UI/Commands/WULA_Exit_Mech</ejectPilotIcon>
|
||||||
</li>
|
</li>
|
||||||
<li Class="WulaFallenEmpire.CompProperties_MechFuel">
|
<!-- <li Class="WulaFallenEmpire.CompProperties_MechFuel">
|
||||||
<fuelType>Chemfuel</fuelType>
|
<fuelType>Chemfuel</fuelType>
|
||||||
<fuelCapacity>70</fuelCapacity>
|
<fuelCapacity>70</fuelCapacity>
|
||||||
<dailyFuelConsumption>35</dailyFuelConsumption>
|
<dailyFuelConsumption>35</dailyFuelConsumption>
|
||||||
@@ -1152,7 +1479,7 @@
|
|||||||
<autoRefuelThreshold>1</autoRefuelThreshold>
|
<autoRefuelThreshold>1</autoRefuelThreshold>
|
||||||
|
|
||||||
<shutdownWhenEmpty>true</shutdownWhenEmpty>
|
<shutdownWhenEmpty>true</shutdownWhenEmpty>
|
||||||
</li>
|
</li> -->
|
||||||
<li Class="WulaFallenEmpire.CompProperties_MechRepairable">
|
<li Class="WulaFallenEmpire.CompProperties_MechRepairable">
|
||||||
<allowAutoRepair>true</allowAutoRepair>
|
<allowAutoRepair>true</allowAutoRepair>
|
||||||
<healthPercentThreshold>1</healthPercentThreshold>
|
<healthPercentThreshold>1</healthPercentThreshold>
|
||||||
@@ -1287,6 +1614,12 @@
|
|||||||
<knockbackFlyerDef>PawnFlyer</knockbackFlyerDef>
|
<knockbackFlyerDef>PawnFlyer</knockbackFlyerDef>
|
||||||
<!-- <flightEffecterDef>FlyerTakeoff</flightEffecterDef> -->
|
<!-- <flightEffecterDef>FlyerTakeoff</flightEffecterDef> -->
|
||||||
<landingSound>PawnFlyerLand</landingSound>
|
<landingSound>PawnFlyerLand</landingSound>
|
||||||
|
|
||||||
|
<!-- 地形阻挡配置 -->
|
||||||
|
<narrowTerrainBlocked>true</narrowTerrainBlocked>
|
||||||
|
<maxBlockPenalty>1</maxBlockPenalty>
|
||||||
|
<terrainCheckInterval>60</terrainCheckInterval>
|
||||||
|
<blockedHediff>Wula_TerrainBlocked</blockedHediff>
|
||||||
|
|
||||||
<!-- 调试 -->
|
<!-- 调试 -->
|
||||||
<enableDebugLogging>false</enableDebugLogging>
|
<enableDebugLogging>false</enableDebugLogging>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 5.6 KiB |
BIN
Content/Textures/Wula/Mote/WULA_Plasma_Proj.png
Normal file
|
After Width: | Height: | Size: 43 KiB |
BIN
Content/Textures/Wula/Projectile/WULA_Plasma_Proj.png
Normal file
|
After Width: | Height: | Size: 43 KiB |
|
Before Width: | Height: | Size: 184 KiB After Width: | Height: | Size: 446 KiB |
|
Before Width: | Height: | Size: 583 KiB After Width: | Height: | Size: 952 KiB |
|
Before Width: | Height: | Size: 136 KiB After Width: | Height: | Size: 408 KiB |
|
Before Width: | Height: | Size: 643 KiB After Width: | Height: | Size: 971 KiB |
|
Before Width: | Height: | Size: 182 KiB After Width: | Height: | Size: 182 KiB |
|
Before Width: | Height: | Size: 230 KiB After Width: | Height: | Size: 230 KiB |
@@ -0,0 +1,339 @@
|
|||||||
|
using RimWorld;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
using Verse;
|
||||||
|
using Verse.Sound;
|
||||||
|
|
||||||
|
namespace WulaFallenEmpire
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 支持直击伤害的爆炸弹丸
|
||||||
|
/// </summary>
|
||||||
|
public class Projectile_ExplosiveWithDirectHit : Projectile_Explosive
|
||||||
|
{
|
||||||
|
// 缓存ModExtension
|
||||||
|
private ProjectileExtension_DirectHit directHitExtension = null;
|
||||||
|
private TrackingBulletDef trackingDefInt;
|
||||||
|
private int Fleck_MakeFleckTick;
|
||||||
|
private Vector3 lastTickPosition;
|
||||||
|
|
||||||
|
public TrackingBulletDef TrackingDef
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (trackingDefInt == null)
|
||||||
|
{
|
||||||
|
trackingDefInt = def.GetModExtension<TrackingBulletDef>();
|
||||||
|
if (trackingDefInt == null)
|
||||||
|
{
|
||||||
|
Log.ErrorOnce($"TrackingBulletDef for {this.def.defName} is null. Creating a default instance.", this.thingIDNumber ^ 0x12345678);
|
||||||
|
this.trackingDefInt = new TrackingBulletDef();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return trackingDefInt;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public override void Launch(Thing launcher, Vector3 origin, LocalTargetInfo usedTarget, LocalTargetInfo intendedTarget, ProjectileHitFlags hitFlags, bool preventFriendlyFire = false, Thing equipment = null, ThingDef targetCoverDef = null)
|
||||||
|
{
|
||||||
|
base.Launch(launcher, origin, usedTarget, intendedTarget, hitFlags, preventFriendlyFire, equipment, targetCoverDef);
|
||||||
|
lastTickPosition = origin;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void Tick()
|
||||||
|
{
|
||||||
|
base.Tick();
|
||||||
|
|
||||||
|
// 处理拖尾特效
|
||||||
|
if (TrackingDef != null && TrackingDef.tailFleckDef != null)
|
||||||
|
{
|
||||||
|
Fleck_MakeFleckTick++;
|
||||||
|
if (Fleck_MakeFleckTick >= TrackingDef.fleckDelayTicks)
|
||||||
|
{
|
||||||
|
if (Fleck_MakeFleckTick >= (TrackingDef.fleckDelayTicks + TrackingDef.fleckMakeFleckTickMax))
|
||||||
|
{
|
||||||
|
Fleck_MakeFleckTick = TrackingDef.fleckDelayTicks;
|
||||||
|
}
|
||||||
|
|
||||||
|
Map map = base.Map;
|
||||||
|
int randomInRange = TrackingDef.fleckMakeFleckNum.RandomInRange;
|
||||||
|
Vector3 currentPosition = base.ExactPosition;
|
||||||
|
Vector3 previousPosition = lastTickPosition;
|
||||||
|
|
||||||
|
for (int i = 0; i < randomInRange; i++)
|
||||||
|
{
|
||||||
|
float num = (currentPosition - previousPosition).AngleFlat();
|
||||||
|
float velocityAngle = TrackingDef.fleckAngle.RandomInRange + num;
|
||||||
|
float randomInRange2 = TrackingDef.fleckScale.RandomInRange;
|
||||||
|
float randomInRange3 = TrackingDef.fleckSpeed.RandomInRange;
|
||||||
|
|
||||||
|
FleckCreationData dataStatic = FleckMaker.GetDataStatic(currentPosition, map, TrackingDef.tailFleckDef, randomInRange2);
|
||||||
|
dataStatic.rotation = (currentPosition - previousPosition).AngleFlat();
|
||||||
|
dataStatic.rotationRate = TrackingDef.fleckRotation.RandomInRange;
|
||||||
|
dataStatic.velocityAngle = velocityAngle;
|
||||||
|
dataStatic.velocitySpeed = randomInRange3;
|
||||||
|
map.flecks.CreateFleck(dataStatic);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
lastTickPosition = base.ExactPosition;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 标记是否已经应用了直击伤害
|
||||||
|
private bool directDamageApplied = false;
|
||||||
|
|
||||||
|
public override void ExposeData()
|
||||||
|
{
|
||||||
|
base.ExposeData();
|
||||||
|
Scribe_Values.Look(ref directDamageApplied, "directDamageApplied", false);
|
||||||
|
Scribe_Values.Look(ref Fleck_MakeFleckTick, "Fleck_MakeFleckTick", 0);
|
||||||
|
Scribe_Values.Look(ref lastTickPosition, "lastTickPosition", Vector3.zero);
|
||||||
|
if (Scribe.mode == LoadSaveMode.PostLoadInit)
|
||||||
|
{
|
||||||
|
if (this.trackingDefInt == null)
|
||||||
|
{
|
||||||
|
this.trackingDefInt = this.def.GetModExtension<TrackingBulletDef>();
|
||||||
|
if (this.trackingDefInt == null)
|
||||||
|
{
|
||||||
|
Log.ErrorOnce($"TrackingBulletDef is null for projectile {this.def.defName} after PostLoadInit. Creating a default instance.", this.thingIDNumber ^ 0x12345678);
|
||||||
|
this.trackingDefInt = new TrackingBulletDef();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void Impact(Thing hitThing, bool blockedByShield = false)
|
||||||
|
{
|
||||||
|
// 获取ModExtension
|
||||||
|
if (directHitExtension == null)
|
||||||
|
{
|
||||||
|
directHitExtension = def.GetModExtension<ProjectileExtension_DirectHit>();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 应用直击伤害(只在有直接击中目标时)
|
||||||
|
if (hitThing != null && directHitExtension != null &&
|
||||||
|
directHitExtension.directDamageAmount > 0 &&
|
||||||
|
!directDamageApplied)
|
||||||
|
{
|
||||||
|
ApplyDirectDamage(hitThing, blockedByShield);
|
||||||
|
directDamageApplied = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 调用基类方法处理爆炸
|
||||||
|
base.Impact(hitThing, blockedByShield);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 应用直击伤害
|
||||||
|
/// </summary>
|
||||||
|
private void ApplyDirectDamage(Thing hitThing, bool blockedByShield = false)
|
||||||
|
{
|
||||||
|
// 如果只在无护盾时生效且有护盾阻挡,则不应用
|
||||||
|
if (blockedByShield && directHitExtension.applyDirectDamageOnlyWithoutShield)
|
||||||
|
return;
|
||||||
|
|
||||||
|
// 准备伤害信息
|
||||||
|
DamageInfo damageInfo = CreateDirectDamageInfo();
|
||||||
|
|
||||||
|
// 对目标造成伤害
|
||||||
|
hitThing.TakeDamage(damageInfo);
|
||||||
|
|
||||||
|
// 播放效果
|
||||||
|
PlayDirectImpactEffects(hitThing);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 创建直击伤害信息
|
||||||
|
/// </summary>
|
||||||
|
private DamageInfo CreateDirectDamageInfo()
|
||||||
|
{
|
||||||
|
// 确定伤害类型
|
||||||
|
DamageDef damageDef = directHitExtension.directDamageDef;
|
||||||
|
if (damageDef == null)
|
||||||
|
{
|
||||||
|
// 默认使用爆炸伤害类型
|
||||||
|
damageDef = base.DamageDef ?? DamageDefOf.Bomb;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 确定伤害量
|
||||||
|
int damageAmount = directHitExtension.directDamageAmount;
|
||||||
|
if (directHitExtension.useEquipmentStatsForDirectDamage && equipment != null)
|
||||||
|
{
|
||||||
|
// 使用装备属性计算伤害
|
||||||
|
damageAmount = def.projectile.GetDamageAmount(equipment);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 确定护甲穿透
|
||||||
|
float armorPenetration = directHitExtension.directArmorPenetration;
|
||||||
|
if (directHitExtension.useEquipmentStatsForDirectDamage && equipment != null)
|
||||||
|
{
|
||||||
|
armorPenetration = def.projectile.GetArmorPenetration(equipment);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 创建伤害信息
|
||||||
|
DamageInfo damageInfo = new DamageInfo(
|
||||||
|
damageDef,
|
||||||
|
damageAmount,
|
||||||
|
armorPenetration,
|
||||||
|
-1f, // 角度
|
||||||
|
launcher,
|
||||||
|
null, // 击中部位
|
||||||
|
equipmentDef,
|
||||||
|
DamageInfo.SourceCategory.ThingOrUnknown,
|
||||||
|
intendedTarget.Thing
|
||||||
|
);
|
||||||
|
|
||||||
|
// 添加额外伤害
|
||||||
|
AddExtraDirectDamages(damageInfo);
|
||||||
|
|
||||||
|
return damageInfo;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 添加上额外伤害
|
||||||
|
/// </summary>
|
||||||
|
private void AddExtraDirectDamages(DamageInfo mainDamage)
|
||||||
|
{
|
||||||
|
if (directHitExtension?.extraDirectDamages == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
foreach (var extraDamage in directHitExtension.extraDirectDamages)
|
||||||
|
{
|
||||||
|
if (extraDamage != null && extraDamage.def != null && extraDamage.amount > 0)
|
||||||
|
{
|
||||||
|
DamageInfo extraDamageInfo = new DamageInfo(
|
||||||
|
extraDamage.def,
|
||||||
|
extraDamage.amount,
|
||||||
|
extraDamage.armorPenetration,
|
||||||
|
-1f,
|
||||||
|
launcher,
|
||||||
|
null,
|
||||||
|
equipmentDef,
|
||||||
|
DamageInfo.SourceCategory.ThingOrUnknown,
|
||||||
|
intendedTarget.Thing
|
||||||
|
);
|
||||||
|
|
||||||
|
// 应用额外伤害
|
||||||
|
if (mainDamage.IntendedTarget != null && mainDamage.IntendedTarget != null)
|
||||||
|
{
|
||||||
|
mainDamage.IntendedTarget.TakeDamage(extraDamageInfo);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 播放直击效果
|
||||||
|
/// </summary>
|
||||||
|
private void PlayDirectImpactEffects(Thing hitThing)
|
||||||
|
{
|
||||||
|
Map map = base.Map;
|
||||||
|
if (map == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
// 播放效果器
|
||||||
|
if (directHitExtension.directImpactEffecter != null)
|
||||||
|
{
|
||||||
|
Effecter effecter = directHitExtension.directImpactEffecter.Spawn();
|
||||||
|
effecter.Trigger(new TargetInfo(base.Position, map),
|
||||||
|
new TargetInfo(hitThing.Position, map));
|
||||||
|
effecter.Cleanup();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 播放音效
|
||||||
|
if (directHitExtension.directImpactSound != null)
|
||||||
|
{
|
||||||
|
directHitExtension.directImpactSound.PlayOneShot(new TargetInfo(base.Position, map));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 覆盖爆炸方法以添加直击伤害信息
|
||||||
|
/// </summary>
|
||||||
|
protected override void Explode()
|
||||||
|
{
|
||||||
|
// 在爆炸前确保直击伤害已经应用(如果是延迟爆炸的情况)
|
||||||
|
if (!directDamageApplied && directHitExtension != null &&
|
||||||
|
directHitExtension.directDamageAmount > 0 && intendedTarget.Thing != null)
|
||||||
|
{
|
||||||
|
ApplyDirectDamage(intendedTarget.Thing, false);
|
||||||
|
directDamageApplied = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 调用基类爆炸方法
|
||||||
|
base.Explode();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取调试信息
|
||||||
|
/// </summary>
|
||||||
|
public string GetDirectHitDebugInfo()
|
||||||
|
{
|
||||||
|
if (directHitExtension == null)
|
||||||
|
return "No direct hit extension configured.";
|
||||||
|
|
||||||
|
string info = "Direct Hit Configuration:\n";
|
||||||
|
info += $"Damage Def: {directHitExtension.directDamageDef?.defName ?? "None"}\n";
|
||||||
|
info += $"Damage Amount: {directHitExtension.directDamageAmount}\n";
|
||||||
|
info += $"Armor Penetration: {directHitExtension.directArmorPenetration}\n";
|
||||||
|
info += $"Use Equipment Stats: {directHitExtension.useEquipmentStatsForDirectDamage}\n";
|
||||||
|
info += $"Apply Without Shield Only: {directHitExtension.applyDirectDamageOnlyWithoutShield}\n";
|
||||||
|
info += $"Extra Damages Count: {directHitExtension.extraDirectDamages?.Count ?? 0}\n";
|
||||||
|
info += $"Direct Damage Applied: {directDamageApplied}";
|
||||||
|
|
||||||
|
return info;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 直击伤害ModExtension定义
|
||||||
|
/// </summary>
|
||||||
|
public class ProjectileExtension_DirectHit : DefModExtension
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 直击伤害类型(默认为爆炸伤害类型)
|
||||||
|
/// </summary>
|
||||||
|
public DamageDef directDamageDef = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 直击伤害量
|
||||||
|
/// </summary>
|
||||||
|
public int directDamageAmount = 0;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 直击伤害护甲穿透
|
||||||
|
/// </summary>
|
||||||
|
public float directArmorPenetration = 0f;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 直击伤害是否受装备影响
|
||||||
|
/// </summary>
|
||||||
|
public bool useEquipmentStatsForDirectDamage = false;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 直击伤害额外伤害列表
|
||||||
|
/// </summary>
|
||||||
|
public List<ExtraDamage> extraDirectDamages = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 直击伤害是否只在击穿护盾后生效
|
||||||
|
/// </summary>
|
||||||
|
public bool applyDirectDamageOnlyWithoutShield = false;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 直击伤害效果器
|
||||||
|
/// </summary>
|
||||||
|
public EffecterDef directImpactEffecter = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 直击伤害音效
|
||||||
|
/// </summary>
|
||||||
|
public SoundDef directImpactSound = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 是否显示直击伤害日志
|
||||||
|
/// </summary>
|
||||||
|
public bool logDirectDamage = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -106,6 +106,7 @@
|
|||||||
<Compile Include="Pawn_Comps\MechCrewHolder\CompProperties_MechCrewHolder.cs" />
|
<Compile Include="Pawn_Comps\MechCrewHolder\CompProperties_MechCrewHolder.cs" />
|
||||||
<Compile Include="Pawn_Comps\PawnRenderExtra\Comp_PawnRenderExtra.cs" />
|
<Compile Include="Pawn_Comps\PawnRenderExtra\Comp_PawnRenderExtra.cs" />
|
||||||
<Compile Include="Pawn_Comps\HighSpeedCollision\CompHighSpeedCollision.cs" />
|
<Compile Include="Pawn_Comps\HighSpeedCollision\CompHighSpeedCollision.cs" />
|
||||||
|
<Compile Include="Projectiles\Projectile_ExplosiveWithDirectHit.cs" />
|
||||||
<Compile Include="Verb\Verb_RangeChecker.cs" />
|
<Compile Include="Verb\Verb_RangeChecker.cs" />
|
||||||
<Compile Include="Verb\Verb_TurretOffestShoot.cs" />
|
<Compile Include="Verb\Verb_TurretOffestShoot.cs" />
|
||||||
<Compile Include="Work\BoardMech\FloatMenuOptionProvider_BoardMech.cs" />
|
<Compile Include="Work\BoardMech\FloatMenuOptionProvider_BoardMech.cs" />
|
||||||
|
|||||||
9
木精灵.ini
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
木精灵
|
||||||
|
|
||||||
|
居住在边缘世界的尖耳朵白皮精灵,种族擅长射击、种植、驯兽,不擅长挖矿。
|
||||||
|
崇尚自然的力量。整个社会停留在中世纪时期,树木会为精灵带来好心情。
|
||||||
|
厌恶破坏自然(砍树和挖矿),不会去做这些工作。
|
||||||
|
开局会携带精灵母树种子,这种母树是精灵的核心生产工具,可以升级解锁科技,可以产出多种种子,种下后可以获得持续的矿物、木材产出,获得树人侍从和防御塔等
|
||||||
|
本家矿物产量很低,但是科技不需要金属
|
||||||
|
擅长弓箭、标枪和长枪,装备围绕木制装备设计
|
||||||
|
树人是精灵的伙伴,拥有强大的承伤能力,可以作为前排,但是没什么输出能力,高级树人可以通过镇压大范围敌人来减速拉住敌人。平常不吃东西,受伤会吞噬树木恢复血量
|
||||||
|
Before Width: | Height: | Size: 291 KiB After Width: | Height: | Size: 272 KiB |