This commit is contained in:
Tourswen
2025-11-03 02:39:00 +08:00
parent 8f85bd00f3
commit 242866bada
183 changed files with 5967 additions and 3078 deletions

View File

@@ -60,9 +60,11 @@
</mote>
<drawOffscreen>true</drawOffscreen>
<graphicData>
<texPath>Things/Projectile/ChargeLanceShot</texPath>
<texPath>Things/Mote/GraserBeam</texPath>
<graphicClass>Graphic_MoteWithAgeSecs</graphicClass>
<shaderType>MoteBeam</shaderType>
<drawSize>(0.25,1)</drawSize>
<color>(165, 44, 2, 255)</color>
<shaderParameters>
<_ScrollSpeedA>0</_ScrollSpeedA>
<_ScrollSpeedB>0</_ScrollSpeedB>
@@ -70,4 +72,29 @@
</shaderParameters>
</graphicData>
</ThingDef>
<ThingDef ParentName="MoteBase">
<defName>Mote_WULA_Beam_Charge</defName>
<thingClass>MoteAttached</thingClass>
<altitudeLayer>MoteOverhead</altitudeLayer>
<mote>
<fadeInTime>0.15</fadeInTime>
<fadeOutTime>0.3</fadeOutTime>
<solidTime>999999</solidTime>
<needsMaintenance>True</needsMaintenance>
</mote>
<graphicData>
<texPath>Wula/Mote/Mote_WULA_Beam_Charge</texPath>
<graphicClass>Graphic_MoteWithAgeSecs</graphicClass>
<shaderType>MoteGlow</shaderType>
<shaderParameters>
<_RandomTex>/Things/Mote/RandomFlicker</_RandomTex>
<_FlickerFrequency>0.25</_FlickerFrequency>
<_FlickerAmount>0.6</_FlickerAmount>
<_InnerCircleIntensity>0.1</_InnerCircleIntensity>
<_InnerCircleSize>0.1</_InnerCircleSize>
<_InnerCircleShimmerAmount>0.14</_InnerCircleShimmerAmount>
</shaderParameters>
</graphicData>
</ThingDef>
</Defs>

View File

@@ -68,4 +68,17 @@
<solidTime>0.08</solidTime>
<fadeOutTime>0.13</fadeOutTime>
</FleckDef>
<FleckDef ParentName="FleckBase_Thrown">
<defName>WULA_Smoke_Tail</defName>
<graphicData>
<texPath>Things/Mote/Smoke</texPath>
<renderInstanced>true</renderInstanced>
</graphicData>
<altitudeLayer>MoteOverhead</altitudeLayer>
<fadeInTime>0.50</fadeInTime>
<solidTime>1</solidTime>
<fadeOutTime>1.2</fadeOutTime>
<growthRate>0.005</growthRate>
</FleckDef>
</Defs>

View File

@@ -98,8 +98,6 @@
<Wula_AI_Heavy_Panzer_PawnKind>100</Wula_AI_Heavy_Panzer_PawnKind>
<Mech_WULA_Cat_Assault>60</Mech_WULA_Cat_Assault>
<Mech_WULA_Cat_Constructor>30</Mech_WULA_Cat_Constructor>
<Mech_WULA_Cat_Fire>10</Mech_WULA_Cat_Fire>
<Mech_WULA_Cat_EMP>10</Mech_WULA_Cat_EMP>
</options>
</li>
<!-- 重甲部队,大量的猫猫混杂少量的重甲兵 -->
@@ -138,8 +136,6 @@
<kindDef>Combat</kindDef>
<commonality>30</commonality>
<options>
<Mech_WULA_Cat_Fire>2</Mech_WULA_Cat_Fire>
<Mech_WULA_Cat_EMP>2</Mech_WULA_Cat_EMP>
<Wula_Broken_Personality_Pawn_2>10</Wula_Broken_Personality_Pawn_2>
<Wula_Broken_Personality_Pawn_3>3</Wula_Broken_Personality_Pawn_3>
<Wula_Broken_Personality_Pawn_4>3</Wula_Broken_Personality_Pawn_4>

View File

@@ -4,7 +4,7 @@
<HediffDef>
<defName>Wula_Synth</defName>
<label>合成人</label>
<description>乌拉帝国制式合成人,拥有一部分机械体的特性——她们无法被点燃、不会中毒、免疫大量疾病、不会抱怨温度,但是无法自我修复,并且需要获取能量以维持机体运转。</description>
<description>乌拉帝国合成人,拥有一部分机械体的特性——她们难以被点燃、免疫常规疾病、可以使用纳米系统自我修复,但是需要获取能量以维持机体运转。</description>
<hediffClass>Hediff_High</hediffClass>
<everCurableByItem>false</everCurableByItem>
<duplicationAllowed>false</duplicationAllowed>
@@ -20,16 +20,9 @@
<naturalHealingFactor>0</naturalHealingFactor>
<!-- 不会感到痛苦 -->
<painFactor>0</painFactor>
<!-- 抗毒抗火抗寒热 -->
<statOffsets>
<ComfyTemperatureMin>-100</ComfyTemperatureMin>
<ComfyTemperatureMax>120</ComfyTemperatureMax>
<ToxicResistance>1</ToxicResistance>
<ToxicEnvironmentResistance MayRequire="Ludeon.RimWorld.Biotech">1</ToxicEnvironmentResistance>
</statOffsets>
<statFactors>
<!-- 易燃性,作为半机械生物很难起火 -->
<Flammability>0</Flammability>
<!-- 易燃性 -->
<Flammability>0.05</Flammability>
</statFactors>
<!-- 免疫非纳米机械疾病 -->
<makeImmuneTo>
@@ -75,71 +68,10 @@
</li>
</stages>
</HediffDef>
<HediffDef ParentName="ImplantHediffBase">
<defName>WULA_Heavy_Infantry_PowerArmor_PowerFist</defName>
<label>动力拳</label>
<labelNoun>动力拳</labelNoun>
<description>一个由外骨骼和加压线圈组成的拳套,内置于乌拉帝国重装装甲的夹层中,可以击碎任何胆敢靠近的敌军的头颅。这套武备是由神经系统直接驱动的——无论盔甲穿戴者是否还拥有生物学意义上的“手”。</description>
<comps>
<li Class="HediffCompProperties_VerbGiver">
<tools>
<li>
<label>动力拳</label>
<capacities>
<li>Poke</li>
</capacities>
<power>25</power>
<cooldownTime>2.2</cooldownTime>
<alwaysTreatAsWeapon>true</alwaysTreatAsWeapon>
<surpriseAttack>
<extraMeleeDamages>
<li>
<def>Stun</def>
<amount>12</amount>
</li>
</extraMeleeDamages>
</surpriseAttack>
<!-- <soundMeleeHit>Pawn_Melee_PowerClaw_Hit</soundMeleeHit>
<soundMeleeMiss>Pawn_Melee_PowerClaw_Miss</soundMeleeMiss> -->
</li>
</tools>
</li>
<li Class="HediffCompProperties_RemoveIfApparelDropped" />
</comps>
</HediffDef>
<HediffDef>
<defName>WULA_Shutdown</defName>
<label>停机</label>
<description>机械乌拉的机体能量已完全耗尽,所有非核心功能已下线,需要立刻补充能量。\n\n如果需要重启机械乌拉你需要建造一个抢修点或者合成人充电站可以从事医生职位的殖民者将会把失能的机械乌拉带到修复站并使用乌拉帝国能源核心重启机械乌拉。</description>
<hediffClass>HediffWithComps</hediffClass>
<isBad>true</isBad>
<stages>
<li>
<label>停机</label>
<minSeverity>0</minSeverity>
<capMods>
<li>
<capacity>Consciousness</capacity>
<setMax>0.1</setMax>
</li>
<li>
<capacity>Moving</capacity>
<setMax>0.1</setMax>
</li>
<li>
<capacity>Manipulation</capacity>
<setMax>0.1</setMax>
</li>
</capMods>
</li>
</stages>
</HediffDef>
<HediffDef>
<defName>WULA_Maintenance_Neglect</defName>
<label>维护</label>
<description>如果缺乏定期维护,身体机能将会出现衰退迹象。需要进入维护舱进行修复。</description>
<description>乌拉帝国的合成人因为设计的过于繁琐,导致需要频繁维护。当她们处于良好维护状态时,各方面的能力都会有所上升,反之如果常年得不到维护或是短时间受到大量伤害,则其将变得难以自主运行甚至直接停机!</description>
<hediffClass>Hediff_High</hediffClass>
<defaultLabelColor>(0.8, 0.35, 0.35)</defaultLabelColor>
<isBad>false</isBad>
@@ -213,6 +145,67 @@
</stages>
</HediffDef>
<HediffDef ParentName="ImplantHediffBase">
<defName>WULA_Heavy_Infantry_PowerArmor_PowerFist</defName>
<label>动力拳</label>
<labelNoun>动力拳</labelNoun>
<description>一个由外骨骼和加压线圈组成的拳套,内置于乌拉帝国重装装甲的夹层中,可以击碎任何胆敢靠近的敌军的头颅。这套武备是由神经系统直接驱动的——无论盔甲穿戴者是否还拥有生物学意义上的“手”。</description>
<comps>
<li Class="HediffCompProperties_VerbGiver">
<tools>
<li>
<label>动力拳</label>
<capacities>
<li>Poke</li>
</capacities>
<power>25</power>
<cooldownTime>2.2</cooldownTime>
<alwaysTreatAsWeapon>true</alwaysTreatAsWeapon>
<surpriseAttack>
<extraMeleeDamages>
<li>
<def>Stun</def>
<amount>12</amount>
</li>
</extraMeleeDamages>
</surpriseAttack>
<!-- <soundMeleeHit>Pawn_Melee_PowerClaw_Hit</soundMeleeHit>
<soundMeleeMiss>Pawn_Melee_PowerClaw_Miss</soundMeleeMiss> -->
</li>
</tools>
</li>
<li Class="HediffCompProperties_RemoveIfApparelDropped" />
</comps>
</HediffDef>
<HediffDef>
<defName>WULA_Shutdown</defName>
<label>停机</label>
<description>机械乌拉的机体能量已完全耗尽,所有非核心功能已下线,需要立刻补充能量。\n\n如果需要重启机械乌拉你需要建造一个抢修点或者合成人充电站可以从事医生职位的殖民者将会把失能的机械乌拉带到修复站并使用乌拉帝国能源核心重启机械乌拉。</description>
<hediffClass>HediffWithComps</hediffClass>
<isBad>true</isBad>
<stages>
<li>
<label>停机</label>
<minSeverity>0</minSeverity>
<capMods>
<li>
<capacity>Consciousness</capacity>
<setMax>0.1</setMax>
</li>
<li>
<capacity>Moving</capacity>
<setMax>0.1</setMax>
</li>
<li>
<capacity>Manipulation</capacity>
<setMax>0.1</setMax>
</li>
</capMods>
</li>
</stages>
</HediffDef>
<HediffDef>
<defName>WULA_MechCarrierSwitchHediff</defName>
<label>生产抑制</label>
@@ -302,4 +295,35 @@
</stages>
<isBad>false</isBad>
</HediffDef>
<HediffDef>
<defName>WULA_NanoRepairHediff</defName>
<label>纳米维修</label>
<description>乌拉帝国的机械体集成了纳米修复系统,只要有电量,它们就能一直修复机械体受到的损伤——这套系统的设计使其需要在一段时间内未受到伤害才能启动。</description>
<hediffClass>HediffWithComps</hediffClass>
<defaultLabelColor>(0.6, 0.4, 0.8)</defaultLabelColor>
<isBad>false</isBad>
<scenarioCanAdd>false</scenarioCanAdd>
<comps>
</comps>
<stages>
<li>
<label>启动</label>
<minSeverity>0</minSeverity>
</li>
<li>
<label>休眠</label>
<minSeverity>1</minSeverity>
</li>
</stages>
<comps>
<li Class="WulaFallenEmpire.HediffCompProperties_NanoRepair">
<activeSeverity>0.5</activeSeverity>
<inactiveSeverity>1.5</inactiveSeverity>
<minEnergyThreshold>0.1</minEnergyThreshold>
<repairCostPerHP>0.01</repairCostPerHP>
<repairCooldownAfterDamage>1200</repairCooldownAfterDamage>
</li>
</comps>
</HediffDef>
</Defs>

View File

@@ -4,7 +4,7 @@
<defName>WULA_Energy</defName>
<needClass>WulaFallenEmpire.Need_WulaEnergy</needClass>
<label>能量</label>
<description>乌拉帝国的合成人正常活动需要能量维持,在缺少能量时将倒地不起,无法进行任何工作。\n\n机械乌拉和常规机械体不同,她们只有一种指定的能量接口,只能通过能源核心补充能量,在乌拉帝国编织体工作台制造这种核心</description>
<description>乌拉帝国的合成人正常活动需要能量维持,在缺少能量时将倒地不起,无法进行任何工作。\n\n机械乌拉的充电站是特殊的,她们只能在合成人充电站充电,无法使用常规充电站</description>
<listPriority>800</listPriority>
<major>true</major>
<onlyIfCausedByHediff>true</onlyIfCausedByHediff>

View File

@@ -267,7 +267,6 @@
</li>
</lifeStages>
</PawnKindDef>
<PawnKindDef Abstract="True" Name="Mech_WULA_Cat_Soldier_PawnKind" ParentName="LightMechanoidKind">
<lifeStages>
<li>
@@ -288,24 +287,6 @@
<techHediffsMoney>9999~9999</techHediffsMoney>
<controlGroupPortraitZoom>0.65</controlGroupPortraitZoom> -->
</PawnKindDef>
<PawnKindDef ParentName="Mech_WULA_Cat_Soldier_PawnKind">
<defName>Mech_WULA_Cat_Fire</defName>
<label>乌拉猫猫掷弹兵(燃烧弹)</label>
<race>Mech_WULA_Cat_Fire</race>
<combatPower>200</combatPower>
<weaponTags>
<li>GrenadeFlame</li>
</weaponTags>
</PawnKindDef>
<PawnKindDef ParentName="Mech_WULA_Cat_Soldier_PawnKind">
<defName>Mech_WULA_Cat_EMP</defName>
<label>乌拉猫猫掷弹兵EMP</label>
<race>Mech_WULA_Cat_EMP</race>
<combatPower>200</combatPower>
<weaponTags>
<li>GrenadeEMP</li>
</weaponTags>
</PawnKindDef>
<PawnKindDef ParentName="Mech_WULA_Cat_Soldier_PawnKind">
<defName>Mech_WULA_Cat_Constructor</defName>
<label>土木乌拉猫猫</label>
@@ -346,30 +327,6 @@
<li>Wula_Assault_Cat_Weapon</li>
</weaponTags>
</PawnKindDef>
<PawnKindDef ParentName="NonCombatLightMechanoidKind">
<defName>Mech_WULA_Cat_DM</defName>
<label>暗物质猫猫</label>
<race>Mech_WULA_Cat_DM</race>
<defaultFactionType>PlayerColony</defaultFactionType>
<allowInMechClusters>False</allowInMechClusters>
<combatPower>1000</combatPower>
<lifeStages>
<li>
<bodyGraphicData>
<texPath>Wula/Things/WULA_DM_Cat/WULA_Cat_Thin</texPath>
<maskPath>Wula/Things/WULA_DM_Cat/AllegianceOverlays/None</maskPath>
<shaderType>CutoutWithOverlay</shaderType>
<graphicClass>Graphic_Multi</graphicClass>
<drawSize>1.1</drawSize>
</bodyGraphicData>
</li>
</lifeStages>
<techHediffsTags>
<li>Mech_WULA_Cat_DM_HediffTag</li>
</techHediffsTags>
<techHediffsMoney>9999~9999</techHediffsMoney>
<techHediffsChance>1</techHediffsChance>
</PawnKindDef>
<!-- 乌拉族反常网络 -->
<PawnKindDef Name="Wula_Broken_Personality_Pawn_Base" Abstract="True">

View File

@@ -648,66 +648,6 @@
</descriptionHyperlinks>
<researchPrerequisite>WULA_Machine_Productor_Technology</researchPrerequisite>
</RecipeDef>
<RecipeDef ParentName="LightMechanoidRecipe">
<defName>WULA_Build_Mech_Cat_EMP</defName>
<label>建造CAt-23"闪电猫猫"</label>
<description>建造一台CAt-23"闪电猫猫"辅助机器人可以执行搬运、清理、和灭火工作配备EMP手榴弹。</description>
<ingredients Inherit="False">
<li>
<filter>
<thingDefs>
<li>Steel</li>
</thingDefs>
</filter>
<count>50</count>
</li>
<li>
<filter>
<thingDefs>
<li>ComponentIndustrial</li>
</thingDefs>
</filter>
<count>4</count>
</li>
</ingredients>
<products>
<Mech_WULA_Cat_EMP>1</Mech_WULA_Cat_EMP>
</products>
<descriptionHyperlinks>
<ThingDef>Mech_WULA_Cat_EMP</ThingDef>
</descriptionHyperlinks>
<researchPrerequisite>WULA_Machine_Productor_1_Technology</researchPrerequisite>
</RecipeDef>
<RecipeDef ParentName="LightMechanoidRecipe">
<defName>WULA_Build_Mech_Cat_Fire</defName>
<label>建造CAt-42"烈焰猫猫"</label>
<description>建造一台CAt-42"烈焰猫猫"辅助机器人,可以执行搬运、清理、和灭火工作,配备燃烧瓶。</description>
<ingredients Inherit="False">
<li>
<filter>
<thingDefs>
<li>Steel</li>
</thingDefs>
</filter>
<count>50</count>
</li>
<li>
<filter>
<thingDefs>
<li>ComponentIndustrial</li>
</thingDefs>
</filter>
<count>4</count>
</li>
</ingredients>
<products>
<Mech_WULA_Cat_Fire>1</Mech_WULA_Cat_Fire>
</products>
<descriptionHyperlinks>
<ThingDef>Mech_WULA_Cat_Fire</ThingDef>
</descriptionHyperlinks>
<researchPrerequisite>WULA_Machine_Productor_1_Technology</researchPrerequisite>
</RecipeDef>
<RecipeDef ParentName="LightMechanoidRecipe">
<defName>WULA_Build_Mech_Cat_Assault</defName>
<label>建造CAt-46"突击猫猫"</label>
@@ -738,42 +678,4 @@
</descriptionHyperlinks>
<researchPrerequisite>WULA_Machine_Productor_1_Technology</researchPrerequisite>
</RecipeDef>
<RecipeDef ParentName="LightMechanoidRecipe">
<defName>WULA_Build_Mech_Cat_DM</defName>
<label>建造CAt-96"暗物质猫猫"</label>
<description>建造一台CAt-96"暗物质猫猫"辅助机器人,可以执行包括搬运、烹饪、种植收割、清理、急救和灭火一类的简单工作,无需充电,但是死亡时会产生湮灭爆炸。</description>
<ingredients Inherit="False">
<li>
<filter>
<thingDefs>
<li>Steel</li>
</thingDefs>
</filter>
<count>50</count>
</li>
<li>
<filter>
<thingDefs>
<li>ComponentIndustrial</li>
</thingDefs>
</filter>
<count>4</count>
</li>
<li>
<filter>
<thingDefs>
<li>WULA_Dark_Matter_Item</li>
</thingDefs>
</filter>
<count>1</count>
</li>
</ingredients>
<products>
<Mech_WULA_Cat_DM>1</Mech_WULA_Cat_DM>
</products>
<descriptionHyperlinks>
<ThingDef>Mech_WULA_Cat_DM</ThingDef>
</descriptionHyperlinks>
<researchPrerequisite>WULA_Mech_WULA_Cat_DM_Technology</researchPrerequisite>
</RecipeDef>
</Defs>

View File

@@ -32,4 +32,57 @@
</li>
</subSounds>
</SoundDef>
<SoundDef>
<defName>WULA_MW_Breaker_Bar_Hit</defName>
<context>MapOnly</context>
<maxSimultaneous>2</maxSimultaneous>
<subSounds>
<li>
<grains>
<li Class="AudioGrain_Clip">
<clipPath>Wula/WULA_MW_Breaker_Bar_Hit</clipPath>
</li>
</grains>
<volumeRange>65</volumeRange>
<pitchRange>0.9~1.1</pitchRange>
</li>
</subSounds>
</SoundDef>
<SoundDef>
<defName>WULA_RW_Railgun_Shootingsound</defName>
<context>MapOnly</context>
<maxSimultaneous>2</maxSimultaneous>
<subSounds>
<li>
<grains>
<li Class="AudioGrain_Clip">
<clipPath>Wula/WULA_RW_Railgun_Shootingsound</clipPath>
</li>
</grains>
<volumeRange>65</volumeRange>
<pitchRange>0.9~1.1</pitchRange>
</li>
</subSounds>
</SoundDef>
<SoundDef>
<defName>WULA_RW_Beam_Shootingsound</defName>
<sustain>true</sustain>
<context>MapOnly</context>
<maxSimultaneous>99</maxSimultaneous>
<priorityMode>PrioritizeNearest</priorityMode>
<!-- <sustainStopSound>BeamGraser_Shooting_Resolve</sustainStopSound> -->
<subSounds>
<li>
<!-- <tempoAffectedByGameSpeed>true</tempoAffectedByGameSpeed> -->
<grains>
<li Class="AudioGrain_Clip">
<clipPath>Wula/WULA_RW_Beam_Shootingsound</clipPath>
</li>
</grains>
<pitchRange>0.99~1.01</pitchRange>
<volumeRange>50</volumeRange>
<sustainRelease>0.2</sustainRelease>
</li>
</subSounds>
</SoundDef>
</Defs>

View File

@@ -0,0 +1,233 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<!-- 工作定义 -->
<JobDef>
<defName>WULA_RecycleMechanoid</defName>
<driverClass>WulaFallenEmpire.JobDriver_RecycleMechanoid</driverClass>
<reportString>正在准备进入猫猫地堡。</reportString>
</JobDef>
<ThingDef ParentName="BuildingBase">
<defName>WULA_Cat_Bunker_Cleanzone</defName>
<label>乌拉猫猫地堡</label>
<description>清理出一块场地并准备好资源,使得乌拉帝国母舰可以向此处投放建筑。建造好的信标可以收起或移至他处,但是必须要有母舰或者后勤舰在上空才能投送建筑。\n\n乌拉猫猫地堡是集生产和防御为一体的坚实建筑3只乌拉猫猫自律机械体会和地堡一起空降。地堡可供乌拉猫猫更换工作类型并允许乌拉猫猫进驻使用内部武器击败来犯敌军。</description>
<uiIconPath>Wula/Building/WULA_Cat_Bunker_south</uiIconPath>
<minifiedDef>MinifiedThing</minifiedDef>
<tickerType>Normal</tickerType>
<descriptionHyperlinks>
<ThingDef>WULA_Cat_Bunker</ThingDef>
<ThingDef>Mech_WULA_Cat</ThingDef>
<ThingDef>Mech_WULA_Cat_Constructor</ThingDef>
<ThingDef>Mech_WULA_Cat_Assault</ThingDef>
</descriptionHyperlinks>
<thingCategories Inherit="False">
<li>BuildingsMisc</li>
</thingCategories>
<graphicData>
<texPath>Wula/Building/WULA_Dropping_Building_Cleanzone</texPath>
<graphicClass>Graphic_Multi</graphicClass>
<drawSize>(3,3)</drawSize>
<damageData>
<enabled>false</enabled>
</damageData>
</graphicData>
<altitudeLayer>Building</altitudeLayer>
<passability>PassThroughOnly</passability>
<castEdgeShadows>false</castEdgeShadows>
<fillPercent>0.5</fillPercent>
<canOverlapZones>false</canOverlapZones>
<pathCost>0</pathCost>
<hasInteractionCell>false</hasInteractionCell>
<!-- <interactionCellOffset>(0,0,-2)</interactionCellOffset> -->
<statBases>
<MaxHitPoints>1</MaxHitPoints>
<WorkToBuild>1</WorkToBuild>
<Mass>1</Mass>
<Flammability>0</Flammability>
</statBases>
<size>(3,3)</size>
<constructionSkillPrerequisite>0</constructionSkillPrerequisite>
<resourcesFractionWhenDeconstructed>1</resourcesFractionWhenDeconstructed>
<costList>
<Steel>300</Steel>
</costList>
<building>
<destroySound>BuildingDestroyed_Metal_Small</destroySound>
</building>
<designationCategory>WULA_Buildings</designationCategory>
<comps>
<li Class="WulaFallenEmpire.CompProperties_SkyfallerCaller">
<skyfallerDef>WULA_Cat_Bunker_Incoming</skyfallerDef> <!-- 替换为您想要的Skyfaller类型 -->
<destroyBuilding>true</destroyBuilding>
<delayTicks>1</delayTicks>
<requiredFlyOverType>WULA_Flyover_BaseBuilder</requiredFlyOverType>
<allowThinRoof>true</allowThinRoof>
<allowThickRoof>false</allowThickRoof>
<requiredFlyOverLabel>乌拉帝国母舰或后勤舰</requiredFlyOverLabel> <!-- 新增显示标签 -->
</li>
</comps>
</ThingDef>
<ThingDef ParentName="SkyfallerBase">
<defName>WULA_Cat_Bunker_Incoming</defName>
<label>乌拉猫猫地堡(空投中)</label>
<size>(3,3)</size>
<graphicData>
<texPath>Wula/Building/WULA_Cat_Bunker_Incoming</texPath>
<graphicClass>Graphic_Single</graphicClass>
<shaderType>CutoutFlying</shaderType>
<drawSize>(3,3)</drawSize>
</graphicData>
<skyfaller>
<movementType>Accelerate</movementType>
<shadow>Things/Skyfaller/SkyfallerShadowDropPod</shadow>
<shadowSize>(2, 2)</shadowSize>
<anticipationSound>DropPod_Fall</anticipationSound>
<anticipationSoundTicks>100</anticipationSoundTicks>
<impactSound>Explosion_Vaporize</impactSound>
<moteSpawnTime>0.05</moteSpawnTime>
<motesPerCell>1</motesPerCell>
<cameraShake>1</cameraShake>
<angleCurve>
<points>
<li>(0,0)</li>
<li>(1, 1)</li>
</points>
</angleCurve>
<spawnThing>WULA_Cat_Bunker</spawnThing>
</skyfaller>
<comps>
<li Class="CompProperties_Effecter">
<effecterDef>Smoke_Joint</effecterDef>
</li>
</comps>
</ThingDef>
<ThingDef ParentName="BuildingBase">
<defName>WULA_Cat_Bunker</defName>
<label>乌拉猫猫地堡</label>
<description>这是一个从乌拉帝国母舰上空投下来的地堡,它拥有一些预制件,可以供乌拉猫猫更换其工作类型。此外,当敌人袭击时,可将乌拉猫猫召回至地堡内,它们将在地堡里对外射击以击退来犯者。</description>
<thingClass>WulaFallenEmpire.Building_MechanoidRecycler</thingClass>
<tickerType>Normal</tickerType>
<descriptionHyperlinks>
<ThingDef>WULA_Cat_Bunker_TurretGun</ThingDef>
<ThingDef>Mech_WULA_Cat</ThingDef>
<ThingDef>Mech_WULA_Cat_Constructor</ThingDef>
<ThingDef>Mech_WULA_Cat_Assault</ThingDef>
</descriptionHyperlinks>
<graphicData>
<texPath>Wula/Building/WULA_Cat_Bunker</texPath>
<graphicClass>Graphic_Multi</graphicClass>
<drawSize>(3,3)</drawSize>
<damageData>
<enabled>false</enabled>
</damageData>
<shadowData>
<volume>(1.65, 1.65, 0.85)</volume>
<offset>(0, 0, -0.2)</offset>
</shadowData>
</graphicData>
<altitudeLayer>Building</altitudeLayer>
<passability>PassThroughOnly</passability>
<castEdgeShadows>false</castEdgeShadows>
<fillPercent>0.5</fillPercent>
<canOverlapZones>false</canOverlapZones>
<pathCost>42</pathCost>
<hasInteractionCell>false</hasInteractionCell>
<!-- <interactionCellOffset>(0,0,-2)</interactionCellOffset> -->
<resourcesFractionWhenDeconstructed>0</resourcesFractionWhenDeconstructed>
<statBases>
<MaxHitPoints>2500</MaxHitPoints>
<WorkToBuild>1</WorkToBuild>
<Mass>20</Mass>
<Flammability>0</Flammability>
</statBases>
<size>(3,3)</size>
<costList>
<Steel>200</Steel>
</costList>
<building>
<destroySound>BuildingDestroyed_Metal_Small</destroySound>
<turretBurstCooldownTime>3.5</turretBurstCooldownTime>
</building>
<thingCategories>
<li>BuildingsMisc</li>
</thingCategories>
<comps>
<li Class="WulaFallenEmpire.CompProperties_MechanoidRecycler">
<maxStorageCapacity>6</maxStorageCapacity>
<!-- 可回收的机械族种族 -->
<recyclableRaces>
<li>Mech_WULA_Cat</li>
<li>Mech_WULA_Cat_Constructor</li>
<li>Mech_WULA_Cat_Assault</li>
</recyclableRaces>
<recycleJobDef>WULA_RecycleMechanoid</recycleJobDef>
<recycleRange>5</recycleRange>
<!-- 可生成的机械族种类 -->
<spawnablePawnKinds>
<li>Mech_WULA_Cat</li>
<li>Mech_WULA_Cat_Constructor</li>
<li>Mech_WULA_Cat_Assault</li>
</spawnablePawnKinds>
<!-- 新增初始单位配置 -->
<initialUnits>
<li>
<pawnKindDef>Mech_WULA_Cat</pawnKindDef>
<count>1</count>
</li>
<li>
<pawnKindDef>Mech_WULA_Cat_Constructor</pawnKindDef>
<count>1</count>
</li>
<li>
<pawnKindDef>Mech_WULA_Cat_Assault</pawnKindDef>
<count>1</count>
</li>
</initialUnits>
<!-- <ownershipFaction>Player</ownershipFaction> -->
</li>
<li Class="WulaFallenEmpire.CompProperties_StorageTurret">
<turretDef>WULA_Cat_Bunker_TurretGun</turretDef> <!-- 替换为您想要的炮塔 -->
<angleOffset>0</angleOffset>
<autoAttack>true</autoAttack>
<maxTurrets>6</maxTurrets>
<turretSpacing>1.5</turretSpacing>
</li>
</comps>
</ThingDef>
<ThingDef ParentName="BaseWeaponTurret">
<defName>WULA_Cat_Bunker_TurretGun</defName>
<label>地堡炮塔</label>
<description>由进入地堡的乌拉猫猫操纵的炮塔——说那么多干什么,扣扳机就完了,殖民地会报销弹药的。</description>
<graphicData>
<texPath>Wula/Weapon/WULA_Weapon_Empty</texPath>
<graphicClass>Graphic_Single</graphicClass>
</graphicData>
<statBases>
<AccuracyTouch>0.5</AccuracyTouch>
<AccuracyShort>0.3</AccuracyShort>
<AccuracyMedium>0.25</AccuracyMedium>
<AccuracyLong>0.12</AccuracyLong>
<RangedWeapon_Cooldown>4.8</RangedWeapon_Cooldown>
<DeteriorationRate>0</DeteriorationRate>
<Mass>5</Mass>
<Flammability>0</Flammability>
</statBases>
<verbs>
<li>
<verbClass>Verb_Shoot</verbClass>
<defaultProjectile>Bullet_WULA_RW_Base_AR</defaultProjectile>
<warmupTime>0</warmupTime>
<range>21</range>
<ticksBetweenBurstShots>32</ticksBetweenBurstShots>
<burstShotCount>2</burstShotCount>
<soundCast>Shot_AssaultRifle</soundCast>
<soundCastTail>GunTail_Medium</soundCastTail>
<muzzleFlashScale>9</muzzleFlashScale>
<consumeFuelPerShot>1</consumeFuelPerShot>
</li>
</verbs>
</ThingDef>
</Defs>

View File

@@ -1,103 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<ThingDef ParentName="BuildingBase">
<defName>WULA_ComponentAssembler</defName>
<label>零件组装机</label>
<description>一台复杂的机器,可以缓慢地用原材料组装零部件。需要钢铁和木材才能运作。</description>
<thingClass>Building</thingClass>
<graphicData>
<texPath>Things/Building/Production/FabricationBench</texPath>
<graphicClass>Graphic_Multi</graphicClass>
<drawSize>(3.5, 1.5)</drawSize>
<damageData>
<cornerTL>Damage/Corner</cornerTL>
<cornerTR>Damage/Corner</cornerTR>
<cornerBL>Damage/Corner</cornerBL>
<cornerBR>Damage/Corner</cornerBR>
</damageData>
</graphicData>
<altitudeLayer>Building</altitudeLayer>
<passability>PassThroughOnly</passability>
<fillPercent>0.5</fillPercent>
<pathCost>70</pathCost>
<rotatable>true</rotatable>
<statBases>
<MaxHitPoints>350</MaxHitPoints>
<WorkToBuild>4000</WorkToBuild>
<Flammability>1.0</Flammability>
<Beauty>-15</Beauty>
</statBases>
<tickerType>Normal</tickerType>
<size>(3,1)</size>
<costList>
<Steel>200</Steel>
<ComponentIndustrial>8</ComponentIndustrial>
</costList>
<comps>
<!-- Power Connection -->
<li Class="CompProperties_Power">
<compClass>CompPowerTrader</compClass>
<basePowerConsumption>350</basePowerConsumption>
</li>
<li Class="CompProperties_Flickable"/>
<!-- Our simple spawner component -->
<li Class="WulaFallenEmpire.CompProperties_MultiFuelSpawner">
<spawnIntervalRange>120000~120000</spawnIntervalRange>
<products>
<li>
<thingDef>ComponentIndustrial</thingDef>
<count>5</count>
</li>
<li>
<thingDef>ComponentSpacer</thingDef>
<count>1</count>
</li>
</products>
<showMessageIfOwned>true</showMessageIfOwned>
</li>
<!-- First fuel component: Steel -->
<li Class="WulaFallenEmpire.CompProperties_RefuelableWithKey">
<saveKeysPrefix>steel</saveKeysPrefix>
<fuelLabel>钢材储量</fuelLabel>
<fuelFilter>
<thingDefs>
<li>Steel</li>
</thingDefs>
</fuelFilter>
<fuelCapacity>200</fuelCapacity>
<fuelConsumptionRate>1</fuelConsumptionRate>
<consumeFuelOnlyWhenUsed>true</consumeFuelOnlyWhenUsed>
<showAllowAutoRefuelToggle>true</showAllowAutoRefuelToggle>
<targetFuelLevelConfigurable>true</targetFuelLevelConfigurable>
</li>
<!-- Second fuel component: Wood -->
<li Class="WulaFallenEmpire.CompProperties_RefuelableWithKey">
<saveKeysPrefix>wood</saveKeysPrefix>
<fuelLabel>木材储量</fuelLabel>
<fuelFilter>
<thingDefs>
<li>WoodLog</li>
</thingDefs>
</fuelFilter>
<fuelCapacity>300</fuelCapacity>
<fuelConsumptionRate>2</fuelConsumptionRate>
<consumeFuelOnlyWhenUsed>true</consumeFuelOnlyWhenUsed>
<showAllowAutoRefuelToggle>true</showAllowAutoRefuelToggle>
<targetFuelLevelConfigurable>true</targetFuelLevelConfigurable>
</li>
<li Class="CompProperties_Breakdownable"/>
</comps>
<terrainAffordanceNeeded>Heavy</terrainAffordanceNeeded>
<designationCategory>Production</designationCategory>
<constructionSkillPrerequisite>6</constructionSkillPrerequisite>
<researchPrerequisites>
<li>Fabrication</li>
</researchPrerequisites>
</ThingDef>
</Defs>

View File

@@ -344,18 +344,6 @@
</li>
</comps>
</ThingDef>
<!-- 乌拉族睡眠点 -->
<ThingDef ParentName="SleepingSpotBase">
<defName>Wula_SleepingSpot</defName>
<label>乌拉帝国抢修点</label>
<description>指定一块地方,供机械乌拉躺下以进行抢修。</description>
<graphicData>
<texPath>Things/Building/Furniture/Bed/SleepSpot</texPath>
<graphicClass>Graphic_Multi</graphicClass>
<drawSize>(3,4)</drawSize>
</graphicData>
<size>(1,2)</size>
</ThingDef>
<!-- 机械工厂 -->
<ThingDef ParentName="BuildingBase">
@@ -837,78 +825,4 @@
<li>PlaceWorker_PreventInteractionSpotOverlap</li>
</placeWorkers>
</ThingDef>
<!-- 产铁机 -->
<ThingDef ParentName="BuildingBase">
<defName>WULA_Steel_Assembler</defName>
<label>乌拉帝国铸铁仪</label>
<description>一台来自于乌拉帝国的极其复杂的机器,无法在边缘世界建造。其可以将有机物转化通过分子重构转换为无机物钢铁,以辅助乌拉帝国殖民地的开拓进程。</description>
<thingClass>Building</thingClass>
<minifiedDef>MinifiedThing</minifiedDef>
<graphicData>
<texPath>Things/Building/Production/FabricationBench</texPath>
<graphicClass>Graphic_Multi</graphicClass>
<drawSize>(3.5, 1.5)</drawSize>
<damageData>
<cornerTL>Damage/Corner</cornerTL>
<cornerTR>Damage/Corner</cornerTR>
<cornerBL>Damage/Corner</cornerBL>
<cornerBR>Damage/Corner</cornerBR>
</damageData>
</graphicData>
<altitudeLayer>Building</altitudeLayer>
<passability>PassThroughOnly</passability>
<fillPercent>0.5</fillPercent>
<pathCost>70</pathCost>
<rotatable>true</rotatable>
<thingCategories>
<li>BuildingsMisc</li>
</thingCategories>
<statBases>
<MaxHitPoints>1000</MaxHitPoints>
<Flammability>0</Flammability>
<Beauty>-15</Beauty>
<Mass>20</Mass>
</statBases>
<tickerType>Normal</tickerType>
<size>(3,3)</size>
<comps>
<!-- Power Connection -->
<li Class="CompProperties_Power">
<compClass>CompPowerTrader</compClass>
<basePowerConsumption>100</basePowerConsumption>
</li>
<li Class="CompProperties_Flickable"/>
<li Class="WulaFallenEmpire.CompProperties_MultiFuelSpawner">
<spawnIntervalRange>120000~120000</spawnIntervalRange>
<products>
<li>
<thingDef>Steel</thingDef>
<count>100</count>
</li>
</products>
<showMessageIfOwned>true</showMessageIfOwned>
</li>
<li Class="WulaFallenEmpire.CompProperties_RefuelableWithKey">
<saveKeysPrefix>steel</saveKeysPrefix>
<fuelLabel>有机物储量</fuelLabel>
<fuelFilter>
<thingDefs>
<li>Wula_Organic_Precursor</li>
</thingDefs>
</fuelFilter>
<fuelCapacity>200</fuelCapacity>
<fuelConsumptionRate>10</fuelConsumptionRate>
<canEjectFuel>true</canEjectFuel>
<autoRefuelPercent>1</autoRefuelPercent>
<consumeFuelOnlyWhenUsed>false</consumeFuelOnlyWhenUsed>
<showAllowAutoRefuelToggle>true</showAllowAutoRefuelToggle>
<targetFuelLevelConfigurable>true</targetFuelLevelConfigurable>
</li>
<li Class="CompProperties_Breakdownable"/>
</comps>
<terrainAffordanceNeeded>Heavy</terrainAffordanceNeeded>
</ThingDef>
</Defs>

View File

@@ -0,0 +1,342 @@
<?xml version="1.0" encoding="utf-8"?>
<Defs>
<ThingDef ParentName="EtherealThingBase">
<defName>WULA_BattleShip</defName>
<label>乌拉帝国战舰</label>
<thingClass>WulaFallenEmpire.FlyOver</thingClass>
<tickerType>Normal</tickerType>
<drawerType>RealtimeOnly</drawerType>
<graphicData>
<texPath>Wula/FlyoverThing/WULA_BattleShip_Shadow</texPath>
<graphicClass>Graphic_Single</graphicClass>
<shaderType>TransparentPostLight</shaderType>
<drawSize>(100,250)</drawSize>
<color>(195,195,195,45)</color>
</graphicData>
<skyfaller>
<shadow>Wula/Weapon/WULA_Weapon_Empty</shadow>
<shadowSize>(0, 0)</shadowSize>
<motesPerCell>0</motesPerCell>
<floatingSound>FlyOver/Flying</floatingSound>
<impactSound>FlyOver/Landing</impactSound>
</skyfaller>
<modExtensions>
<li Class="WulaFallenEmpire.FlyOverShadowExtension">
<customShadowPath>Wula/Weapon/WULA_Weapon_Empty</customShadowPath>
<useCustomShadow>true</useCustomShadow>
<shadowIntensity>0.8</shadowIntensity>
<minShadowAlpha>0</minShadowAlpha>
<maxShadowAlpha>0</maxShadowAlpha>
<minShadowScale>0</minShadowScale>
<maxShadowScale>0</maxShadowScale>
<useApproachAnimation>true</useApproachAnimation>
<approachDuration>1</approachDuration>
<approachOffsetDistance>50</approachOffsetDistance>
</li>
</modExtensions>
<seeThroughFog>true</seeThroughFog>
<useHitPoints>false</useHitPoints>
<selectable>false</selectable>
<alwaysHaulable>false</alwaysHaulable>
<altitudeLayer>MetaOverlays</altitudeLayer>
<comps>
<!-- 入场信封信息 -->
<li Class="WulaFallenEmpire.CompProperties_SendLetterAfterTicks">
<ticksDelay>60</ticksDelay> <!-- 2秒后发送 -->
<letterLabel>帝国母舰已抵达</letterLabel>
<letterText>一艘帝国母舰响应请求抵达殖民地上空!</letterText>
<letterDef>PositiveEvent</letterDef>
<onlySendOnce>true</onlySendOnce>
<requireOnMap>true</requireOnMap>
<destroyAfterSending>false</destroyAfterSending> <!-- 发送后销毁flyover -->
</li>
<li Class="WulaFallenEmpire.CompProperties_FlyOverType">
<flyOverType>WULA_Flyover_BaseBuilder</flyOverType>
<isRequiredForDrop>true</isRequiredForDrop>
</li>
</comps>
</ThingDef>
<AbilityDef>
<defName>WULA_CallBattleShip</defName>
<label>帝国战舰召唤</label>
<description>发送增援请求,呼叫乌拉帝国舰队的战舰前往殖民地</description>
<iconPath>Wula/UI/Abilities/WULA_CallBattleShip</iconPath>
<cooldownTicksRange>1</cooldownTicksRange>
<hotKey>Misc12</hotKey>
<casterMustBeCapableOfViolence>false</casterMustBeCapableOfViolence>
<verbProperties>
<verbClass>Verb_CastAbility</verbClass>
<drawAimPie>false</drawAimPie>
<requireLineOfSight>false</requireLineOfSight>
<nonInterruptingSelfCast>true</nonInterruptingSelfCast>
<warmupTime>1</warmupTime>
<range>19.9</range>
<targetable>true</targetable>
<targetParams>
<canTargetSelf>True</canTargetSelf>
</targetParams>
</verbProperties>
<comps>
<li Class="WulaFallenEmpire.CompProperties_AbilitySpawnFlyOver">
<flyOverDef>WULA_BattleShip</flyOverDef>
<flyOverType>Standard</flyOverType>
<flightSpeed>0.01</flightSpeed>
<altitude>20</altitude>
<startPosition>MapEdge</startPosition>
<endPosition>OppositeMapEdge</endPosition>
<playFlyOverSound>true</playFlyOverSound>
</li>
</comps>
</AbilityDef>
<ThingDef Name="WULA_Fighter_Base" ParentName="EtherealThingBase" Abstract="True">
<label>乌拉帝国战机</label>
<thingClass>WulaFallenEmpire.FlyOver</thingClass>
<tickerType>Normal</tickerType>
<drawerType>RealtimeOnly</drawerType>
<graphicData>
<!-- <texPath>ArachnaeSwarm/Weapon/ARA_Weapon_Empty</texPath> -->
<texPath>Wula/FlyoverThing/WULA_Fighter_Shadow</texPath>
<graphicClass>Graphic_Single</graphicClass>
<shaderType>TransparentPostLight</shaderType>
<drawSize>(40,20)</drawSize>
<color>(195,195,195,45)</color>
</graphicData>
<castEdgeShadows>false</castEdgeShadows>
<staticSunShadowHeight>0</staticSunShadowHeight>
<skyfaller>
<shadow>Wula/Weapon/WULA_Weapon_Empty</shadow>
<shadowSize>(0, 0)</shadowSize>
<motesPerCell>0</motesPerCell>
<floatingSound>FlyOver/Flying</floatingSound>
<impactSound>FlyOver/Landing</impactSound>
</skyfaller>
<modExtensions>
<li Class="WulaFallenEmpire.FlyOverShadowExtension">
<customShadowPath>Wula/Weapon/WULA_Weapon_Empty</customShadowPath>
<useCustomShadow>true</useCustomShadow>
<shadowIntensity>0.8</shadowIntensity>
<minShadowAlpha>0</minShadowAlpha>
<maxShadowAlpha>0</maxShadowAlpha>
<minShadowScale>0</minShadowScale>
<maxShadowScale>0</maxShadowScale>
<useApproachAnimation>true</useApproachAnimation>
<approachDuration>1</approachDuration>
<approachOffsetDistance>20</approachOffsetDistance>
</li>
</modExtensions>
<seeThroughFog>true</seeThroughFog>
<useHitPoints>false</useHitPoints>
<selectable>false</selectable>
<alwaysHaulable>false</alwaysHaulable>
<altitudeLayer>MetaOverlays</altitudeLayer>
</ThingDef>
<ThingDef ParentName="WULA_Fighter_Base">
<defName>WULA_Fighter_A</defName>
<comps>
<li Class="WulaFallenEmpire.CompProperties_GroundStrafing">
<projectileDef>Bullet_WULA_Fighter_A_Rocket</projectileDef>
<range>50</range>
<!-- 横向偏移配置(左右) -->
<lateralOffsetDistance>13</lateralOffsetDistance>
<lateralInitialOffsetAngle>0</lateralInitialOffsetAngle>
<lateralMaxOffsetAngle>0</lateralMaxOffsetAngle>
<lateralAngleIncrement>0</lateralAngleIncrement>
<lateralOffsetMode>Alternating</lateralOffsetMode>
<!-- 纵向偏移配置(前后) -->
<longitudinalInitialOffset>10</longitudinalInitialOffset>
<longitudinalMinOffset>10</longitudinalMinOffset>
<longitudinalMaxOffset>10</longitudinalMaxOffset>
<longitudinalOffsetMode>Fixed</longitudinalOffsetMode>
<!-- 视觉效果 -->
<spawnOffsetEffect>true</spawnOffsetEffect>
<offsetEffectDef>Mote_SparkSimple</offsetEffectDef>
</li>
<li Class="WulaFallenEmpire.CompProperties_SectorSurveillance">
<projectileDef>Bullet_WULA_RW_Fractal_RF</projectileDef>
<sectorAngle>30</sectorAngle> <!-- 扇形角度 -->
<sectorRange>50</sectorRange> <!-- 射程 -->
<shotCount>3</shotCount> <!-- 发射次数 -->
<shotInterval>0.3</shotInterval> <!-- 发射间隔 -->
<maxProjectiles>24</maxProjectiles><!-- 最大射弹数量限制-->
<!-- 横向偏移配置(左右) -->
<lateralOffsetDistance>13</lateralOffsetDistance>
<lateralInitialOffsetAngle>0</lateralInitialOffsetAngle>
<lateralMaxOffsetAngle>0</lateralMaxOffsetAngle>
<lateralAngleIncrement>0</lateralAngleIncrement>
<lateralOffsetMode>Alternating</lateralOffsetMode>
<!-- 纵向偏移配置(前后) -->
<longitudinalInitialOffset>13</longitudinalInitialOffset>
<longitudinalMinOffset>13</longitudinalMinOffset>
<longitudinalMaxOffset>13</longitudinalMaxOffset>
<longitudinalOffsetMode>Fixed</longitudinalOffsetMode>
<!-- 视觉效果 -->
<spawnOffsetEffect>true</spawnOffsetEffect>
<offsetEffectDef>Mote_SparkSimple</offsetEffectDef>
</li>
</comps>
</ThingDef>
<ThingDef ParentName="BaseBullet">
<defName>Bullet_WULA_Fighter_A_Rocket</defName>
<label>沸石巡飞弹</label>
<graphicData>
<texPath>Wula/Projectile/WULA_Loitering_Munition</texPath>
<graphicClass>Graphic_Single</graphicClass>
</graphicData>
<thingClass>WulaFallenEmpire.Projectile_ExplosiveWithTrail</thingClass>
<projectile>
<damageDef>BombSuper</damageDef>
<speed>180</speed>
<damageAmountBase>30</damageAmountBase>
<armorPenetrationBase>1</armorPenetrationBase>
<stoppingPower>2.0</stoppingPower>
<explosionRadius>4</explosionRadius>
<soundExplode>MortarBomb_Explode</soundExplode>
<screenShakeFactor>0.5</screenShakeFactor>
<flyOverhead>false</flyOverhead>
</projectile>
<modExtensions>
<li Class="WulaFallenEmpire.TrackingBulletDef">
<tailFleckDef>WULA_GunTail_Plasma</tailFleckDef>
<fleckMakeFleckTickMax>3</fleckMakeFleckTickMax>
</li>
</modExtensions>
</ThingDef>
<AbilityDef>
<defName>WULA_Spawn_Fighter_Rocket</defName>
<label>战机巡航</label>
<description>指挥乌拉帝国的战机,中速掠过战场,使用其导弹对目标区域发起打击。\n\n在飞行期间它会使用磁轨炮打击遇到的敌人。</description>
<!-- <iconPath>ArachnaeSwarm/UI/Abilities/ARA_Spawn_ARA_HiveCorvette_Rocket</iconPath> -->
<cooldownTicksRange>1</cooldownTicksRange>
<hotKey>Misc12</hotKey>
<casterMustBeCapableOfViolence>false</casterMustBeCapableOfViolence>
<verbProperties>
<verbClass>Verb_CastAbility</verbClass>
<drawAimPie>false</drawAimPie>
<requireLineOfSight>false</requireLineOfSight>
<warmupTime>1</warmupTime>
<range>120</range>
<targetable>true</targetable>
<targetParams>
<canTargetSelf>false</canTargetSelf>
<canTargetLocations>true</canTargetLocations>
</targetParams>
</verbProperties>
<comps>
<!-- <li Class="WulaFallenEmpire.CompProperties_AircraftStrike">
<requiredAircraftType>ARA_HiveCorvette_Entity</requiredAircraftType>
<aircraftCooldownTicks>5000</aircraftCooldownTicks>
<aircraftsPerUse>1</aircraftsPerUse>
</li> -->
<li Class="WulaFallenEmpire.CompProperties_AbilitySpawnFlyOver">
<flyOverDef>WULA_Fighter_A</flyOverDef>
<flyOverType>GroundStrafing</flyOverType>
<flightSpeed>3</flightSpeed>
<altitude>20</altitude>
<playFlyOverSound>true</playFlyOverSound>
<approachType>Perpendicular</approachType>
<!-- 扫射参数 -->
<enableGroundStrafing>true</enableGroundStrafing>
<strafeWidth>4</strafeWidth>
<strafeLength>25</strafeLength>
<strafeFireChance>0.13</strafeFireChance>
<!-- 新增:控制最终射弹数量 -->
<minStrafeProjectiles>12</minStrafeProjectiles>
<maxStrafeProjectiles>16</maxStrafeProjectiles>
<!-- 只传递信号,不传递具体参数 -->
<enableSectorSurveillance>true</enableSectorSurveillance>
<!-- 可视化 -->
<showStrafePreview>true</showStrafePreview>
<strafePreviewColor>(1.0,0.3,0.1,0.2)</strafePreviewColor>
<!-- 预览配置 -->
<showSectorPreview>true</showSectorPreview>
<sectorPreviewColor>(0.3,0.7,1.0,0.3)</sectorPreviewColor>
</li>
</comps>
</AbilityDef>
<ThingDef ParentName="WULA_Fighter_Base">
<defName>WULA_Fighter_B</defName>
<comps>
<li Class="WulaFallenEmpire.CompProperties_SectorSurveillance">
<projectileDef>Bullet_WULA_RW_Fractal_RF</projectileDef>
<sectorAngle>30</sectorAngle> <!-- 扇形角度 -->
<sectorRange>50</sectorRange> <!-- 射程 -->
<shotCount>6</shotCount> <!-- 发射次数 -->
<shotInterval>0.1</shotInterval> <!-- 发射间隔 -->
<maxProjectiles>-1</maxProjectiles><!-- 最大射弹数量限制-->
<!-- 横向偏移配置(左右) -->
<lateralOffsetDistance>13</lateralOffsetDistance>
<lateralInitialOffsetAngle>0</lateralInitialOffsetAngle>
<lateralMaxOffsetAngle>0</lateralMaxOffsetAngle>
<lateralAngleIncrement>0</lateralAngleIncrement>
<lateralOffsetMode>Alternating</lateralOffsetMode>
<!-- 纵向偏移配置(前后) -->
<longitudinalInitialOffset>13</longitudinalInitialOffset>
<longitudinalMinOffset>13</longitudinalMinOffset>
<longitudinalMaxOffset>13</longitudinalMaxOffset>
<longitudinalOffsetMode>Fixed</longitudinalOffsetMode>
<!-- 视觉效果 -->
<spawnOffsetEffect>true</spawnOffsetEffect>
<offsetEffectDef>Mote_SparkSimple</offsetEffectDef>
</li>
</comps>
</ThingDef>
<AbilityDef>
<defName>WULA_Spawn_Fighter_RailGun</defName>
<label>战机巡航(磁轨炮)</label>
<description>指挥乌拉帝国的战机,低速掠过战场,使用其磁轨炮打击遇到的所有敌人。</description>
<!-- <iconPath>ArachnaeSwarm/UI/Abilities/ARA_Spawn_ARA_HiveCorvette_Rocket</iconPath> -->
<cooldownTicksRange>1</cooldownTicksRange>
<hotKey>Misc12</hotKey>
<casterMustBeCapableOfViolence>false</casterMustBeCapableOfViolence>
<verbProperties>
<verbClass>Verb_CastAbility</verbClass>
<drawAimPie>false</drawAimPie>
<requireLineOfSight>false</requireLineOfSight>
<warmupTime>1</warmupTime>
<range>120</range>
<targetable>true</targetable>
<targetParams>
<canTargetSelf>false</canTargetSelf>
<canTargetLocations>true</canTargetLocations>
</targetParams>
</verbProperties>
<comps>
<!-- <li Class="WulaFallenEmpire.CompProperties_AircraftStrike">
<requiredAircraftType>ARA_HiveCorvette_Entity</requiredAircraftType>
<aircraftCooldownTicks>5000</aircraftCooldownTicks>
<aircraftsPerUse>1</aircraftsPerUse>
</li> -->
<li Class="WulaFallenEmpire.CompProperties_AbilitySpawnFlyOver">
<flyOverDef>WULA_Fighter_B</flyOverDef>
<flyOverType>GroundStrafing</flyOverType>
<flightSpeed>3</flightSpeed>
<altitude>20</altitude>
<playFlyOverSound>true</playFlyOverSound>
<approachType>Perpendicular</approachType>
<!-- 只传递信号,不传递具体参数 -->
<enableSectorSurveillance>true</enableSectorSurveillance>
<!-- 预览配置 -->
<showSectorPreview>true</showSectorPreview>
<sectorPreviewColor>(0.3,0.7,1.0,0.3)</sectorPreviewColor>
</li>
</comps>
</AbilityDef>
</Defs>

View File

@@ -1,217 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Defs>
<ThingDef ParentName="BaseHumanMakeableGun">
<defName>WULA_RW_Base_AR</defName>
<label>DLa-1"页岩"</label>
<description>乌拉帝国的旧式突击步枪,仍然使用落后的导气式结构驱动自动射击构件,通常被派发给炮灰战斗人员。</description>
<tickerType>Normal</tickerType>
<techLevel>Spacer</techLevel>
<graphicData>
<texPath>Wula/Weapon/WULA_RW_Base_AR</texPath>
<graphicClass>Graphic_Single</graphicClass>
</graphicData>
<soundInteract>Interact_Rifle</soundInteract>
<recipeMaker>
<recipeUsers Inherit="False">
<li>WULA_Cube_Productor_BIO</li>
<li>WULA_Cube_Productor_Energy</li>
</recipeUsers>
<researchPrerequisite>WULA_Synth_Weapon_Technology</researchPrerequisite>
<unfinishedThingDef>UnfinishedWeapon</unfinishedThingDef>
</recipeMaker>
<statBases>
<WorkToMake>1300</WorkToMake>
<!-- <MarketValue>370</MarketValue> -->
<Mass>3.5</Mass>
<AccuracyTouch>0.75</AccuracyTouch>
<AccuracyShort>0.75</AccuracyShort>
<AccuracyMedium>0.65</AccuracyMedium>
<AccuracyLong>0.45</AccuracyLong>
<RangedWeapon_Cooldown>1.2</RangedWeapon_Cooldown>
</statBases>
<verbs>
<li>
<verbClass>Verb_Shoot</verbClass>
<hasStandardCommand>true</hasStandardCommand>
<defaultProjectile>Bullet_AssaultRifle</defaultProjectile>
<warmupTime>1</warmupTime>
<range>25</range>
<burstShotCount>1</burstShotCount>
<ticksBetweenBurstShots>3</ticksBetweenBurstShots>
<soundCast>Shot_AssaultRifle</soundCast>
<soundCastTail>GunTail_Medium</soundCastTail>
<muzzleFlashScale>7</muzzleFlashScale>
</li>
</verbs>
<costList Inherit="False">
<Steel>60</Steel>
<ComponentIndustrial>8</ComponentIndustrial>
</costList>
<weaponTags>
<li>Wula_Weapon_Init</li>
</weaponTags>
<thingSetMakerTags>
<li>RewardStandardQualitySuper</li>
</thingSetMakerTags>
</ThingDef>
<ThingDef ParentName="BaseHumanMakeableGun">
<defName>WULA_RW_Fractal_RF</defName>
<label>SLr-14"蓝锥"</label>
<description>乌拉帝国的旧式猎枪,使用简易的磁轨结构发射钢针,射速较慢,但是强大的动能使其在击中第一个目标后仍能继续飞行,对路径上的多个敌人造成伤害。</description>
<techLevel>Spacer</techLevel>
<graphicData>
<texPath>Wula/Weapon/WULA_RW_Fractal_RF</texPath>
<graphicClass>Graphic_Single</graphicClass>
<!-- <drawSize>1.2</drawSize> -->
</graphicData>
<!-- <uiIconScale>0.85</uiIconScale> -->
<soundInteract>Interact_Rifle</soundInteract>
<weaponClasses>
<li>LongShots</li>
<li>RangedHeavy</li>
</weaponClasses>
<recipeMaker>
<!-- <WorkToMake>60000</WorkToMake> -->
<recipeUsers Inherit="False">
<li>WULA_Cube_Productor_BIO</li>
<li>WULA_Cube_Productor_Energy</li>
</recipeUsers>
<researchPrerequisite>WULA_Synth_Weapon_Technology</researchPrerequisite>
<unfinishedThingDef>UnfinishedWeapon</unfinishedThingDef>
</recipeMaker>
<statBases>
<WorkToMake>1300</WorkToMake>
<Mass>3.5</Mass>
<AccuracyTouch>0.3</AccuracyTouch>
<AccuracyShort>0.8</AccuracyShort>
<AccuracyMedium>0.9</AccuracyMedium>
<AccuracyLong>0.8</AccuracyLong>
<RangedWeapon_Cooldown>0.8</RangedWeapon_Cooldown>
</statBases>
<costList Inherit="False">
<Steel>120</Steel>
<ComponentIndustrial>6</ComponentIndustrial>
</costList>
<verbs>
<li>
<verbClass>Verb_Shoot</verbClass>
<hasStandardCommand>true</hasStandardCommand>
<defaultProjectile>Bullet_WULA_RW_Fractal_RF</defaultProjectile>
<warmupTime>2</warmupTime>
<range>38</range>
<burstShotCount>1</burstShotCount>
<soundCast>Shot_ChargeBlaster</soundCast>
<soundCastTail>GunTail_Medium</soundCastTail>
<muzzleFlashScale>9</muzzleFlashScale>
</li>
</verbs>
<weaponTags>
<li>Wula_Ranged_Weapon_T2</li>
</weaponTags>
<thingSetMakerTags>
<li>RewardStandardQualitySuper</li>
</thingSetMakerTags>
</ThingDef>
<ThingDef ParentName="BaseBullet">
<defName>Bullet_WULA_RW_Fractal_RF</defName>
<label>蓝锥钢针弹</label>
<thingClass>WulaFallenEmpire.Projectile_WulaLineAttack</thingClass>
<modExtensions>
<li Class="WulaFallenEmpire.Wula_PathPierce_Extension">
<maxHits>-1</maxHits> <!-- 无限穿透 -->
<damageFalloff>0</damageFalloff> <!-- 无伤害衰减 -->
<preventFriendlyFire>false</preventFriendlyFire> <!-- 是否阻止友方火力 -->
<tailFleckDef>WULA_GunTail_Lighting</tailFleckDef> <!-- 拖尾特效定义 -->
</li>
</modExtensions>
<graphicData>
<texPath>Wula/Projectile/WULA_Bullet_ChargeLanceShot_Red</texPath>
<graphicClass>Graphic_Single</graphicClass>
<shaderType>TransparentPostLight</shaderType>
<drawSize>1.4</drawSize>
</graphicData>
<projectile>
<damageDef>Bullet</damageDef>
<damageAmountBase>25</damageAmountBase>
<speed>130</speed>
<armorPenetrationBase>0.5</armorPenetrationBase>
<stoppingPower>5</stoppingPower>
</projectile>
</ThingDef>
<!-- 乌拉帝国霰弹枪 -->
<ThingDef ParentName="BaseHumanMakeableGun">
<defName>WULA_RW_StarDrift_SG</defName>
<label>DCs-7"黑曜石"</label>
<description>乌拉帝国配发的近距离霰弹枪,以威力巨大的梭镖破甲弹为核心,专注于在短距离上的快速反应战斗和持续性压制能力</description>
<techLevel>Ultra</techLevel>
<weaponTags>
<li>Wula_Ranged_Weapon_T2</li>
</weaponTags>
<!-- <techLevel>Spacer</techLevel> -->
<graphicData>
<texPath>Wula/Weapon/WULA_RW_StarDrift_SG</texPath>
<graphicClass>Graphic_Single</graphicClass>
</graphicData>
<soundInteract>Interact_ChargeRifle</soundInteract>
<recipeMaker>
<recipeUsers Inherit="False">
<li>WULA_Cube_Productor_BIO</li>
<li>WULA_Cube_Productor_Energy</li>
</recipeUsers>
<researchPrerequisite>WULA_Synth_Weapon_Technology</researchPrerequisite>
<unfinishedThingDef>UnfinishedWeapon</unfinishedThingDef>
</recipeMaker>
<statBases>
<WorkToMake>25000</WorkToMake>
<Mass>3.5</Mass>
<AccuracyTouch>1</AccuracyTouch>
<AccuracyShort>0.9</AccuracyShort>
<AccuracyMedium>0.5</AccuracyMedium>
<AccuracyLong>0.25</AccuracyLong>
<RangedWeapon_Cooldown>1.4</RangedWeapon_Cooldown>
</statBases>
<costList Inherit="False">
<Steel>120</Steel>
<ComponentIndustrial>6</ComponentIndustrial>
</costList>
<verbs>
<li>
<verbClass>WulaFallenEmpire.Verb_ShootShotgun</verbClass>
<hasStandardCommand>true</hasStandardCommand>
<defaultProjectile>WULA_Bullet_StarDrift_Shotgun_Spear</defaultProjectile>
<warmupTime>0.2</warmupTime>
<range>18</range>
<burstShotCount>3</burstShotCount>
<ticksBetweenBurstShots>3</ticksBetweenBurstShots>
<soundCast>Shot_BeamRepeater</soundCast>
<soundCastTail>GunTail_Medium</soundCastTail>
<muzzleFlashScale>7</muzzleFlashScale>
</li>
</verbs>
<thingSetMakerTags>
<li>RewardStandardQualitySuper</li>
</thingSetMakerTags>
</ThingDef>
<ThingDef ParentName="BaseBullet">
<defName>WULA_Bullet_StarDrift_Shotgun_Spear</defName>
<label>梭镖</label>
<graphicData>
<texPath>Wula/Projectile/WULA_Bullet_StarDrift_Shotgun_Spear</texPath>
<graphicClass>Graphic_Single</graphicClass>
</graphicData>
<projectile>
<damageDef>Bullet</damageDef>
<damageAmountBase>8</damageAmountBase>
<stoppingPower>2.5</stoppingPower>
<armorPenetrationBase>0.65</armorPenetrationBase>
<speed>55</speed>
</projectile>
<modExtensions>
<li Class="WulaFallenEmpire.ShotgunExtension">
<pelletCount>3</pelletCount>
</li>
</modExtensions>
</ThingDef>
</Defs>

View File

@@ -1,389 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<Defs>
<ThingDef ParentName="BaseHumanMakeableGun">
<defName>WULA_RW_Beam_Base_AR</defName>
<label>SLb-3"星岚"</label>
<description>一把经过实验性改造的步枪,使用小型能量光束,通常被派发给炮灰战斗人员。</description>
<tickerType>Normal</tickerType>
<techLevel>Spacer</techLevel>
<graphicData>
<texPath>Wula/Weapon/WULA_RW_Beam_Base_AR</texPath>
<graphicClass>Graphic_Single</graphicClass>
</graphicData>
<soundInteract>Interact_Rifle</soundInteract>
<recipeMaker>
<recipeUsers Inherit="False">
<li>WULA_Cube_Productor_BIO</li>
<li>WULA_Cube_Productor_Energy</li>
</recipeUsers>
<researchPrerequisite>WULA_Synth_Weapon_2_Laser_Technology</researchPrerequisite>
<unfinishedThingDef>UnfinishedWeapon</unfinishedThingDef>
</recipeMaker>
<statBases>
<WorkToMake>1300</WorkToMake>
<!-- <MarketValue>370</MarketValue> -->
<Mass>3.5</Mass>
<AccuracyTouch>0.75</AccuracyTouch>
<AccuracyShort>0.75</AccuracyShort>
<AccuracyMedium>0.65</AccuracyMedium>
<AccuracyLong>0.45</AccuracyLong>
<RangedWeapon_Cooldown>1.2</RangedWeapon_Cooldown>
</statBases>
<verbs>
<li>
<verbClass>Verb_Shoot</verbClass>
<hasStandardCommand>true</hasStandardCommand>
<defaultProjectile>Bullet_WULA_RW_Penetrating_Rifle</defaultProjectile>
<warmupTime>2</warmupTime>
<range>16</range>
<burstShotCount>3</burstShotCount>
<ticksBetweenBurstShots>12</ticksBetweenBurstShots>
<soundCast>Shot_BeamRepeater</soundCast>
<soundCastTail>GunTail_Medium</soundCastTail>
<muzzleFlashScale>7</muzzleFlashScale>
<aimingChargeMote>Mote_BeamRepeater_Charge</aimingChargeMote>
<aimingChargeMoteOffset>1.07</aimingChargeMoteOffset>
</li>
</verbs>
<costList Inherit="False">
<Steel>60</Steel>
<ComponentIndustrial>4</ComponentIndustrial>
<Plasteel>20</Plasteel>
</costList>
<weaponTags>
<li>Wula_Ranged_Weapon_T2</li>
</weaponTags>
<thingSetMakerTags>
<li>RewardStandardQualitySuper</li>
</thingSetMakerTags>
</ThingDef>
<ThingDef ParentName="BaseBullet">
<defName>Bullet_WULA_RW_Penetrating_Rifle</defName>
<label>穿透光束</label>
<thingClass>WulaFallenEmpire.Projectile_WulaLineAttack</thingClass>
<modExtensions>
<li Class="WulaFallenEmpire.Wula_PathPierce_Extension">
<maxHits>-1</maxHits> <!-- 无限穿透 -->
<damageFalloff>0</damageFalloff> <!-- 无伤害衰减 -->
<preventFriendlyFire>true</preventFriendlyFire> <!-- 是否阻止友方火力 -->
<tailFleckDef>WULA_GunTail_Plasma</tailFleckDef>
</li>
</modExtensions>
<tickerType>Normal</tickerType>
<neverMultiSelect>True</neverMultiSelect>
<graphicData>
<texPath>Things/Projectile/ChargeLanceShot</texPath>
<graphicClass>Graphic_Single</graphicClass>
<shaderType>TransparentPostLight</shaderType>
<drawSize>1.4</drawSize>
</graphicData>
<projectile>
<damageDef>BeamBypassShields</damageDef>
<damageAmountBase>5</damageAmountBase>
<speed>130</speed>
<armorPenetrationBase>0.9</armorPenetrationBase>
<stoppingPower>1</stoppingPower>
</projectile>
</ThingDef>
<!-- Penetrating Beam Rifle -->
<ThingDef ParentName="BaseHumanMakeableGun">
<defName>WULA_RW_Penetrating_Beam_Rifle</defName>
<label>SLb-15 "三叉戟"</label>
<description>一把经过实验性改造的“蓝锥”步枪,能够发射一道可以穿透多个目标的能量光束。</description>
<techLevel>Spacer</techLevel>
<graphicData>
<texPath>Wula/Weapon/WULA_RW_Penetrating_Beam_Rifle</texPath>
<graphicClass>Graphic_Single</graphicClass>
</graphicData>
<soundInteract>Interact_Rifle</soundInteract>
<weaponClasses>
<li>LongShots</li>
<li>RangedHeavy</li>
</weaponClasses>
<statBases>
<WorkToMake>1300</WorkToMake>
<Mass>3.5</Mass>
<AccuracyTouch>0.65</AccuracyTouch>
<AccuracyShort>0.72</AccuracyShort>
<AccuracyMedium>0.65</AccuracyMedium>
<AccuracyLong>0.6</AccuracyLong>
<RangedWeapon_Cooldown>1.5</RangedWeapon_Cooldown>
</statBases>
<costList Inherit="False">
<Steel>120</Steel>
<ComponentIndustrial>6</ComponentIndustrial>
<Plasteel>20</Plasteel>
</costList>
<recipeMaker>
<recipeUsers Inherit="False">
<li>WULA_Cube_Productor_Energy</li>
</recipeUsers>
<researchPrerequisite>WULA_Synth_Weapon_2_Laser_Technology</researchPrerequisite>
<unfinishedThingDef>UnfinishedWeapon</unfinishedThingDef>
</recipeMaker>
<verbs>
<li>
<verbClass>WulaFallenEmpire.Verb_ShootShotgun</verbClass>
<hasStandardCommand>true</hasStandardCommand>
<defaultProjectile>Bullet_WULA_RW_Penetrating_Beam</defaultProjectile>
<warmupTime>2.0</warmupTime>
<range>28</range>
<burstShotCount>3</burstShotCount>
<ticksBetweenBurstShots>12</ticksBetweenBurstShots>
<soundCast>Shot_BeamRepeater</soundCast>
<soundCastTail>GunTail_Medium</soundCastTail>
<muzzleFlashScale>9</muzzleFlashScale>
<aimingChargeMote>Mote_BeamRepeater_Charge</aimingChargeMote>
<aimingChargeMoteOffset>1.07</aimingChargeMoteOffset>
</li>
</verbs>
<weaponTags>
<li>Wula_Ranged_Weapon_T2</li>
</weaponTags>
<thingSetMakerTags>
<li>RewardStandardQualitySuper</li>
</thingSetMakerTags>
<comps>
<li Class="WulaFallenEmpire.CompProperties_Switch">
<changeTo>WULA_RW_Penetrating_Beam_Rifle_Ranged</changeTo>
<abilityDef>WULA_RW_Penetrating_Beam_RifleSwitchAbility</abilityDef>
</li>
</comps>
</ThingDef>
<!-- Penetrating Beam Rifle -->
<ThingDef ParentName="BaseHumanMakeableGun">
<defName>WULA_RW_Penetrating_Beam_Rifle_Ranged</defName>
<label>SLb-15 "三叉戟"(远射)</label>
<description>一把经过实验性改造的“蓝锥”步枪,能够发射一道可以穿透多个目标的能量光束。</description>
<techLevel>Spacer</techLevel>
<graphicData>
<texPath>Wula/Weapon/WULA_RW_Penetrating_Beam_Rifle_Ranged</texPath>
<graphicClass>Graphic_Single</graphicClass>
</graphicData>
<soundInteract>Interact_Rifle</soundInteract>
<weaponClasses>
<li>LongShots</li>
<li>RangedHeavy</li>
</weaponClasses>
<statBases>
<WorkToMake>1300</WorkToMake>
<Mass>3.5</Mass>
<AccuracyTouch>0.65</AccuracyTouch>
<AccuracyShort>0.8</AccuracyShort>
<AccuracyMedium>0.9</AccuracyMedium>
<AccuracyLong>0.8</AccuracyLong>
<RangedWeapon_Cooldown>2.0</RangedWeapon_Cooldown>
</statBases>
<costList Inherit="False">
<Steel>120</Steel>
<ComponentIndustrial>6</ComponentIndustrial>
</costList>
<recipeMaker Inherit="False" IsNull="True" />
<verbs>
<li>
<verbClass>Verb_Shoot</verbClass>
<hasStandardCommand>true</hasStandardCommand>
<defaultProjectile>Bullet_WULA_RW_Penetrating_Beam_Ranged</defaultProjectile>
<warmupTime>3.0</warmupTime>
<range>38</range>
<burstShotCount>3</burstShotCount>
<ticksBetweenBurstShots>12</ticksBetweenBurstShots>
<soundCast>Shot_BeamRepeater</soundCast>
<soundCastTail>GunTail_Medium</soundCastTail>
<muzzleFlashScale>9</muzzleFlashScale>
<aimingChargeMote>Mote_BeamRepeater_Charge</aimingChargeMote>
<aimingChargeMoteOffset>1.07</aimingChargeMoteOffset>
</li>
</verbs>
<weaponTags>
<li>Wula_Weapon_Init</li>
</weaponTags>
<thingSetMakerTags>
<li>RewardStandardQualitySuper</li>
</thingSetMakerTags>
<comps>
<li Class="WulaFallenEmpire.CompProperties_Switch">
<changeTo>WULA_RW_Penetrating_Beam_Rifle</changeTo>
<abilityDef>WULA_RW_Penetrating_Beam_RifleSwitchAbility</abilityDef>
</li>
</comps>
<!--加上这个就行-->
<!-- <tickerType>Normal</tickerType> -->
<!--避免被生成-->
<generateCommonality>0</generateCommonality>
</ThingDef>
<!--三叉模式-->
<ThingDef ParentName="BaseBullet">
<defName>Bullet_WULA_RW_Penetrating_Beam</defName>
<label>穿透光束</label>
<thingClass>WulaFallenEmpire.Projectile_WulaPenetratingBeam</thingClass>
<modExtensions>
<li Class="WulaFallenEmpire.Wula_BeamPierce_Extension">
<maxHits>-1</maxHits> <!-- -1 for infinite hits -->
<damageFalloff>0</damageFalloff> <!-- 0 for no damage falloff -->
<preventFriendlyFire>true</preventFriendlyFire>
<beamMoteDef>Mote_WULA_RW_Penetrating_Beam</beamMoteDef>
<beamStartOffset>0.5</beamStartOffset>
</li>
<li Class="WulaFallenEmpire.ShotgunExtension">
<pelletCount>3</pelletCount>
</li>
</modExtensions>
<graphicData>
<texPath>Things/Projectile/ChargeLanceShot</texPath>
<graphicClass>Graphic_Single</graphicClass>
</graphicData>
<projectile>
<damageDef>BeamBypassShields</damageDef>
<damageAmountBase>5</damageAmountBase>
<armorPenetrationBase>0.8</armorPenetrationBase>
<stoppingPower>1</stoppingPower>
</projectile>
</ThingDef>
<!--集束模式-->
<ThingDef ParentName="BaseBullet">
<defName>Bullet_WULA_RW_Penetrating_Beam_Ranged</defName>
<label>穿透光束</label>
<thingClass>WulaFallenEmpire.Projectile_WulaPenetratingBeam</thingClass>
<modExtensions>
<li Class="WulaFallenEmpire.Wula_BeamPierce_Extension">
<maxHits>-1</maxHits> <!-- -1 for infinite hits -->
<damageFalloff>0</damageFalloff> <!-- 0 for no damage falloff -->
<preventFriendlyFire>true</preventFriendlyFire>
<beamMoteDef>Mote_WULA_RW_Penetrating_Beam</beamMoteDef>
<beamStartOffset>0.5</beamStartOffset>
</li>
</modExtensions>
<graphicData>
<texPath>Things/Projectile/ChargeLanceShot</texPath>
<graphicClass>Graphic_Single</graphicClass>
</graphicData>
<projectile>
<damageDef>BeamBypassShields</damageDef>
<damageAmountBase>15</damageAmountBase>
<armorPenetrationBase>0.8</armorPenetrationBase>
<stoppingPower>1</stoppingPower>
</projectile>
</ThingDef>
<AbilityDef>
<defName>WULA_RW_Penetrating_Beam_RifleSwitchAbility</defName>
<label>武装解放 / 武装闭锁</label>
<description>控制分光棱镜档位以决定SLb-15 "三叉戟"是否切换到光束散射模式。</description>
<cooldownTicksRange>601</cooldownTicksRange>
<iconPath>Wula/UI/Abilities/WULA_WeaponSwitchAbility</iconPath>
<hostile>false</hostile>
<showOnCharacterCard>false</showOnCharacterCard>
<aiCanUse>false</aiCanUse>
<targetRequired>false</targetRequired>
<casterMustBeCapableOfViolence>false</casterMustBeCapableOfViolence>
<statBases>
<!-- 如果不需要限时,可以把这玩意删了-->
<!--<Ability_Duration>10</Ability_Duration>-->
</statBases>
<verbProperties>
<verbClass>Verb_CastAbility</verbClass>
<warmupTime>0</warmupTime>
<drawAimPie>false</drawAimPie>
<requireLineOfSight>false</requireLineOfSight>
<targetable>false</targetable>
<targetParams>
<canTargetSelf>true</canTargetSelf>
</targetParams>
</verbProperties>
<comps>
<li Class="CompProperties_AbilityEffect">
<compClass>WulaFallenEmpire.CompAbilityEffect_Switch</compClass>
</li>
<!-- 如果不需要限时,可以把这玩意删了-->
<!--<li Class="CompProperties_AbilityGiveHediff">
<compClass>CompAbilityEffect_GiveHediff</compClass>
<hediffDef>WULA_HediffSwitchDuration</hediffDef>
<onlyApplyToSelf>True</onlyApplyToSelf>
</li>-->
</comps>
</AbilityDef>
<!-- 机枪 -->
<ThingDef ParentName="BaseHumanMakeableGun">
<defName>WULA_RW_Sphene_MG</defName>
<label>FLm-43"榍石"</label>
<description>乌拉帝国的通用机枪,负责在班组中提供如暴雨倾泻的高速连射光束流,产生的高温熔烧效果将融化一切敌人的装甲。</description>
<techLevel>Ultra</techLevel>
<weaponTags>
<li>Wula_Ranged_Weapon_T3</li>
</weaponTags>
<!-- <techLevel>Spacer</techLevel> -->
<graphicData>
<texPath>Wula/Weapon/WULA_RW_Sphene_MG</texPath>
<graphicClass>Graphic_Single</graphicClass>
</graphicData>
<soundInteract>Interact_ChargeRifle</soundInteract>
<recipeMaker>
<recipeUsers Inherit="False">
<li>WULA_Cube_Productor_Energy</li>
</recipeUsers>
<researchPrerequisite>WULA_Synth_Weapon_2_Ranged_Technology</researchPrerequisite>
<unfinishedThingDef>UnfinishedWeapon</unfinishedThingDef>
</recipeMaker>
<costList Inherit="False">
<Steel>350</Steel>
<Plasteel>200</Plasteel>
<ComponentSpacer>8</ComponentSpacer>
</costList>
<statBases>
<WorkToMake>40000</WorkToMake>
<Mass>4.5</Mass>
<AccuracyTouch>0.5</AccuracyTouch>
<AccuracyShort>0.5</AccuracyShort>
<AccuracyMedium>0.5</AccuracyMedium>
<AccuracyLong>0.4</AccuracyLong>
<RangedWeapon_Cooldown>2</RangedWeapon_Cooldown>
</statBases>
<verbs>
<li>
<verbClass>Verb_Shoot</verbClass>
<hasStandardCommand>true</hasStandardCommand>
<defaultProjectile>Bullet_WULA_RW_Sphene_MG</defaultProjectile>
<warmupTime>0.5</warmupTime>
<range>33.9</range>
<burstShotCount>32</burstShotCount>
<ticksBetweenBurstShots>6</ticksBetweenBurstShots>
<soundCast>Shot_ChargeRifle</soundCast>
<soundCastTail>GunTail_Medium</soundCastTail>
<muzzleFlashScale>9</muzzleFlashScale>
</li>
</verbs>
<thingSetMakerTags>
<li>RewardStandardQualitySuper</li>
</thingSetMakerTags>
</ThingDef>
<ThingDef ParentName="BaseBullet">
<defName>Bullet_WULA_RW_Sphene_MG</defName>
<label>榍石光束</label>
<thingClass>WulaFallenEmpire.Projectile_WulaPenetratingBeam</thingClass>
<graphicData>
<texPath>Things/Projectile/ChargeLanceShot</texPath>
<graphicClass>Graphic_Single</graphicClass>
</graphicData>
<projectile>
<damageDef>BeamBypassShields</damageDef><!-- BeamBypassShields -->
<damageAmountBase>5</damageAmountBase>
<beamStartOffset>0.5</beamStartOffset>
<armorPenetrationBase>1.5</armorPenetrationBase>
<stoppingPower>1</stoppingPower>
</projectile>
<modExtensions>
<li Class="WulaFallenEmpire.Wula_BeamPierce_Extension">
<maxHits>-1</maxHits> <!-- -1 for infinite hits -->
<damageFalloff>0</damageFalloff> <!-- 0 for no damage falloff -->
<preventFriendlyFire>true</preventFriendlyFire>
<beamMoteDef>Mote_WULA_RW_Penetrating_Beam</beamMoteDef>
<beamStartOffset>0.5</beamStartOffset>
</li>
</modExtensions>
</ThingDef>
<!-- 暗物质步枪 -->
<ThingDef ParentName="BaseHumanMakeableGun">

View File

@@ -1,97 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Defs>
<ThingDef ParentName="BaseHumanMakeableGun">
<defName>WULA_RW_Base_Loitering_Munition</defName>
<label>WLl-35"沸石"</label>
<description>乌拉帝国使用的一种反装甲肩扛式巡飞弹,开火速度和飞弹飞行速度都较慢,但是可以在远距离上击穿装甲并造成伤害。</description>
<tickerType>Normal</tickerType>
<techLevel>Spacer</techLevel>
<graphicData>
<texPath>Wula/Weapon/WULA_RW_Base_Loitering_Munition</texPath>
<graphicClass>Graphic_Single</graphicClass>
<drawSize>1.35</drawSize>
</graphicData>
<uiIconScale>0.8</uiIconScale>
<soundInteract>Interact_Rifle</soundInteract>
<recipeMaker>
<recipeUsers Inherit="False">
<li>WULA_Cube_Productor_Energy</li>
</recipeUsers>
<researchPrerequisite>WULA_Synth_Weapon_2_Missile_Technology</researchPrerequisite>
<unfinishedThingDef>UnfinishedWeapon</unfinishedThingDef>
</recipeMaker>
<researchPrerequisites>
<li>WULA_Adv_WorkTable_Technology</li>
</researchPrerequisites>
<statBases>
<WorkToMake>2500</WorkToMake>
<!-- <MarketValue>370</MarketValue> -->
<Mass>8</Mass>
<AccuracyTouch>1</AccuracyTouch>
<AccuracyShort>1</AccuracyShort>
<AccuracyMedium>1</AccuracyMedium>
<AccuracyLong>1</AccuracyLong>
<RangedWeapon_Cooldown>3.5</RangedWeapon_Cooldown>
</statBases>
<verbs>
<li>
<verbClass>Verb_Shoot</verbClass>
<hasStandardCommand>true</hasStandardCommand>
<!-- <defaultProjectile>Bullet_AssaultRifle</defaultProjectile> -->
<defaultProjectile>Bullet_WULA_RW_Base_Loitering_Munition</defaultProjectile>
<warmupTime>5</warmupTime>
<range>46</range>
<burstShotCount>1</burstShotCount>
<soundCast>RocketswarmLauncher_Fire</soundCast>
<soundCastTail>GunTail_Heavy</soundCastTail>
<muzzleFlashScale>12</muzzleFlashScale>
<targetParams>
<canTargetPawns>true</canTargetPawns>
<canTargetLocations>true</canTargetLocations>
<canTargetBuildings>true</canTargetBuildings>
</targetParams>
</li>
</verbs>
<costList Inherit="False">
<Steel>200</Steel>
<ComponentIndustrial>12</ComponentIndustrial>
</costList>
<weaponTags>
<li>Wula_Ranged_Weapon_T2</li>
</weaponTags>
<thingSetMakerTags>
<li>RewardStandardQualitySuper</li>
</thingSetMakerTags>
</ThingDef>
<ThingDef ParentName="BaseBullet">
<defName>Bullet_WULA_RW_Base_Loitering_Munition</defName>
<label>沸石巡飞弹</label>
<graphicData>
<texPath>Wula/Projectile/WULA_Loitering_Munition</texPath>
<graphicClass>Graphic_Single</graphicClass>
</graphicData>
<thingClass>WulaFallenEmpire.Projectile_ExplosiveTrackingBullet</thingClass>
<projectile>
<speed>25</speed>
<damageDef>Bomb</damageDef>
<damageAmountBase>100</damageAmountBase>
<armorPenetrationBase>1.5</armorPenetrationBase>
<stoppingPower>10</stoppingPower>
</projectile>
<modExtensions>
<li Class="WulaFallenEmpire.ExplosiveTrackingBulletDef">
<explosionRadius>1.5</explosionRadius>
<damageDef>Bomb</damageDef>
</li>
<li Class="WulaFallenEmpire.TrackingBulletDef">
<homingSpeed>0.75</homingSpeed>
<initRotateAngle>0</initRotateAngle>
<destroyTicksAfterLosingTrack>
<min>60</min>
<max>120</max>
</destroyTicksAfterLosingTrack>
<impactThreshold>1</impactThreshold>
</li>
</modExtensions>
</ThingDef>
</Defs>

View File

@@ -1,536 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Defs>
<!-- 双用枪 -->
<ThingDef ParentName="BaseHumanMakeableGun">
<defName>WULA_RW_Plasma_AR</defName>
<label>PMa-72"磷叶"</label>
<description>乌拉帝国的旧式多用途突击步枪,搭载了一套用于发射等离子体的谐振器,可以射出高精度的等离子体,也可以在近距离搏斗上当成等离子喷枪来使用。</description>
<!-- <tickerType>Normal</tickerType> -->
<techLevel>Spacer</techLevel>
<graphicData>
<texPath>Wula/Weapon/WULA_RW_Plasma_AR</texPath>
<graphicClass>Graphic_Single</graphicClass>
<drawSize>1.4</drawSize>
</graphicData>
<soundInteract>Interact_Rifle</soundInteract>
<recipeMaker>
<recipeUsers Inherit="False">
<li>WULA_Cube_Productor_BIO</li>
<li>WULA_Cube_Productor_Energy</li>
</recipeUsers>
<researchPrerequisite>WULA_Synth_Weapon_2_Plasma_Technology</researchPrerequisite>
<unfinishedThingDef>UnfinishedWeapon</unfinishedThingDef>
</recipeMaker>
<statBases>
<WorkToMake>7500</WorkToMake>
<!-- <MarketValue>370</MarketValue> -->
<Mass>3.5</Mass>
<AccuracyTouch>0.85</AccuracyTouch>
<AccuracyShort>0.85</AccuracyShort>
<AccuracyMedium>0.75</AccuracyMedium>
<AccuracyLong>0.5</AccuracyLong>
<RangedWeapon_Cooldown>1.2</RangedWeapon_Cooldown>
</statBases>
<verbs>
<li>
<verbClass>Verb_Shoot</verbClass>
<hasStandardCommand>true</hasStandardCommand>
<defaultProjectile>Bullet_WULA_RW_Plasma_AR</defaultProjectile>
<warmupTime>2.0</warmupTime>
<range>16</range>
<burstShotCount>2</burstShotCount>
<ticksBetweenBurstShots>12</ticksBetweenBurstShots>
<soundCast>ChargeLance_Fire</soundCast>
<soundCastTail>GunTail_Medium</soundCastTail>
<muzzleFlashScale>7</muzzleFlashScale>
<aimingChargeMote>Mote_BeamRepeater_Charge</aimingChargeMote>
<aimingChargeMoteOffset>1.07</aimingChargeMoteOffset>
<forcedMissRadius>0.1</forcedMissRadius>
</li>
</verbs>
<costList Inherit="False">
<Steel>60</Steel>
<ComponentIndustrial>4</ComponentIndustrial>
<Plasteel>20</Plasteel>
</costList>
<weaponTags>
<li>Wula_Ranged_Weapon_T2</li>
</weaponTags>
<thingSetMakerTags>
<li>RewardStandardQualitySuper</li>
</thingSetMakerTags>
<comps>
<li Class="WulaFallenEmpire.CompProperties_Switch">
<changeTo>WULA_RW_Plasma_AR_Melee</changeTo>
<abilityDef>WULA_RW_Plasma_AR_WeaponSwitchAbility</abilityDef>
</li>
</comps>
</ThingDef>
<ThingDef ParentName="BaseHumanMakeableGun">
<defName>WULA_RW_Plasma_AR_Melee</defName>
<label>PMa-72"磷叶"(等离子喷枪)</label>
<description>乌拉帝国的旧式多用途突击步枪,搭载了一套用于发射等离子体的谐振器,可以射出高精度的等离子体,也可以在近距离搏斗上当成等离子喷枪来使用。</description>
<!-- <tickerType>Normal</tickerType> -->
<techLevel>Spacer</techLevel>
<graphicData>
<texPath>Wula/Weapon/WULA_RW_Plasma_AR_Melee</texPath>
<graphicClass>Graphic_Single</graphicClass>
<drawSize>1.4</drawSize>
</graphicData>
<soundInteract>Interact_Rifle</soundInteract>
<recipeMaker Inherit="False" IsNull="True" />
<generateCommonality>0</generateCommonality>
<statBases>
<WorkToMake>7500</WorkToMake>
<!-- <MarketValue>370</MarketValue> -->
<Mass>3.5</Mass>
</statBases>
<tools>
<li>
<label>等离子切割</label>
<capacities>
<li>Blunt</li>
</capacities>
<power>25</power>
<cooldownTime>2</cooldownTime>
<armorPenetration>0.75</armorPenetration>
<soundMeleeHit>ChargeLance_Fire</soundMeleeHit>
</li>
</tools>
<costList Inherit="False">
<Steel>180</Steel>
<ComponentIndustrial>10</ComponentIndustrial>
</costList>
<weaponTags>
<li>Wula_Weapon_Init</li>
</weaponTags>
<thingSetMakerTags>
<li>RewardStandardQualitySuper</li>
</thingSetMakerTags>
<comps>
<li Class="WulaFallenEmpire.CompProperties_Switch">
<changeTo>WULA_RW_Plasma_AR</changeTo>
<abilityDef>WULA_RW_Plasma_AR_WeaponSwitchAbility</abilityDef>
</li>
</comps>
</ThingDef>
<ThingDef ParentName="BaseBullet">
<defName>Bullet_WULA_RW_Plasma_AR</defName>
<label>磷叶等离子体射弹</label>
<graphicData>
<texPath>Wula/Projectile/WULA_Bullet_Plasma_Yellow</texPath>
<graphicClass>Graphic_Single</graphicClass>
<shaderType>MoteGlow</shaderType>
<!-- <color>(61,199,157,202)</color> -->
<drawSize>(0.75,1)</drawSize>
</graphicData>
<projectile>
<damageDef>Damage_WULA_Plasma</damageDef>
<damageAmountBase>6</damageAmountBase>
<explosionRadius>0.9</explosionRadius>
<soundExplode>Explosion_EMP</soundExplode>
<armorPenetrationBase>0.75</armorPenetrationBase>
<speed>55</speed>
</projectile>
<thingClass>WulaFallenEmpire.Projectile_ExplosiveWithTrail</thingClass>
<modExtensions>
<li Class="WulaFallenEmpire.TrackingBulletDef">
<tailFleckDef>WULA_GunTail_Plasma_Yellow</tailFleckDef>
</li>
</modExtensions>
</ThingDef>
<AbilityDef>
<defName>WULA_RW_Plasma_AR_WeaponSwitchAbility</defName>
<label>武装解放 / 武装闭锁</label>
<description>控制谐振器的等离子喷射方案以决定PMa-72"磷叶"是否切换到近距离格斗模式</description>
<cooldownTicksRange>601</cooldownTicksRange>
<iconPath>Wula/UI/Abilities/WULA_WeaponSwitchAbility</iconPath>
<hostile>false</hostile>
<showOnCharacterCard>false</showOnCharacterCard>
<aiCanUse>false</aiCanUse>
<targetRequired>false</targetRequired>
<casterMustBeCapableOfViolence>false</casterMustBeCapableOfViolence>
<statBases>
<!-- 如果不需要限时,可以把这玩意删了-->
<!--<Ability_Duration>10</Ability_Duration>-->
</statBases>
<verbProperties>
<verbClass>Verb_CastAbility</verbClass>
<warmupTime>0</warmupTime>
<drawAimPie>false</drawAimPie>
<requireLineOfSight>false</requireLineOfSight>
<targetable>false</targetable>
<targetParams>
<canTargetSelf>true</canTargetSelf>
</targetParams>
</verbProperties>
<comps>
<li Class="CompProperties_AbilityEffect">
<compClass>WulaFallenEmpire.CompAbilityEffect_Switch</compClass>
</li>
<!-- 如果不需要限时,可以把这玩意删了-->
<!--<li Class="CompProperties_AbilityGiveHediff">
<compClass>CompAbilityEffect_GiveHediff</compClass>
<hediffDef>WULA_HediffSwitchDuration</hediffDef>
<onlyApplyToSelf>True</onlyApplyToSelf>
</li>-->
</comps>
</AbilityDef>
<ThingDef ParentName="BaseHumanMakeableGun">
<defName>WULA_RW_Plasma_Homing_AR</defName>
<label>PMr-88"三叶"</label>
<description>乌拉帝国的等离子体霰弹枪,搭载了一套用于发射等离子体的谐振器,可以喷射多道等离子体射流;也可以进入超频状态,聚焦于主枪管以发射能量高度集中且会产生爆炸的射弹。</description>
<techLevel>Spacer</techLevel>
<graphicData>
<texPath>Wula/Weapon/WULA_RW_Plasma_Homing_AR</texPath>
<graphicClass>Graphic_Single</graphicClass>
<drawSize>1.4</drawSize>
</graphicData>
<generateCommonality>1</generateCommonality>
<soundInteract>Interact_Rifle</soundInteract>
<weaponClasses>
<li>LongShots</li>
<li>RangedHeavy</li>
</weaponClasses>
<recipeMaker>
<recipeUsers Inherit="False">
<li>WULA_Cube_Productor_Energy</li>
</recipeUsers>
<researchPrerequisite>WULA_Synth_Weapon_2_Plasma_Technology</researchPrerequisite>
<unfinishedThingDef>UnfinishedWeapon</unfinishedThingDef>
</recipeMaker>
<researchPrerequisites>
<li>WULA_Adv_WorkTable_Technology</li>
</researchPrerequisites>
<statBases>
<WorkToMake>1500</WorkToMake>
<Mass>3.0</Mass>
<AccuracyTouch>0.6</AccuracyTouch>
<AccuracyShort>0.75</AccuracyShort>
<AccuracyMedium>0.85</AccuracyMedium>
<AccuracyLong>0.8</AccuracyLong>
<RangedWeapon_Cooldown>1.2</RangedWeapon_Cooldown>
</statBases>
<costList Inherit="False">
<Steel>120</Steel>
<ComponentIndustrial>6</ComponentIndustrial>
<Plasteel>20</Plasteel>
</costList>
<verbs>
<li>
<verbClass>WulaFallenEmpire.Verb_ShootShotgun</verbClass>
<hasStandardCommand>true</hasStandardCommand>
<defaultProjectile>Bullet_WULA_RW_Plasma_Homing_AR</defaultProjectile>
<warmupTime>2.0</warmupTime>
<range>28</range>
<burstShotCount>3</burstShotCount>
<ticksBetweenBurstShots>12</ticksBetweenBurstShots>
<soundCast>ChargeLance_Fire</soundCast>
<soundCastTail>GunTail_Medium</soundCastTail>
<muzzleFlashScale>9</muzzleFlashScale>
<aimingChargeMote>Mote_BeamRepeater_Charge</aimingChargeMote>
<aimingChargeMoteOffset>1.07</aimingChargeMoteOffset>
<forcedMissRadius>1.1</forcedMissRadius>
</li>
</verbs>
<weaponTags>
<li>Wula_Ranged_Weapon_T2</li>
</weaponTags>
<thingSetMakerTags>
<li>RewardStandardQualitySuper</li>
</thingSetMakerTags>
<comps>
<li Class="WulaFallenEmpire.CompProperties_Switch">
<changeTo>WULA_RW_Plasma_Homing_AR_Ex</changeTo>
<abilityDef>WULA_RW_Plasma_Homing_AR_WeaponSwitchAbility</abilityDef>
</li>
</comps>
</ThingDef>
<ThingDef ParentName="BaseHumanMakeableGun">
<defName>WULA_RW_Plasma_Homing_AR_Ex</defName>
<label>PMr-88"三叶"(超频)</label>
<description>乌拉帝国的等离子体霰弹枪,搭载了一套用于发射等离子体的谐振器,可以喷射多道等离子体射流;也可以进入超频状态,聚焦于主枪管以发射能量高度集中且会产生爆炸的射弹。</description>
<techLevel>Spacer</techLevel>
<graphicData>
<texPath>Wula/Weapon/WULA_RW_Plasma_Homing_AR_Ex</texPath>
<graphicClass>Graphic_Single</graphicClass>
<drawSize>1.4</drawSize>
</graphicData>
<soundInteract>Interact_Rifle</soundInteract>
<weaponClasses>
<li>LongShots</li>
<li>RangedHeavy</li>
</weaponClasses>
<recipeMaker Inherit="False" IsNull="True" />
<generateCommonality>0</generateCommonality>
<statBases>
<WorkToMake>1500</WorkToMake>
<Mass>3.0</Mass>
<AccuracyTouch>0.6</AccuracyTouch>
<AccuracyShort>0.75</AccuracyShort>
<AccuracyMedium>0.85</AccuracyMedium>
<AccuracyLong>0.8</AccuracyLong>
<RangedWeapon_Cooldown>1.2</RangedWeapon_Cooldown>
</statBases>
<costList Inherit="False">
<Steel>100</Steel>
<ComponentIndustrial>5</ComponentIndustrial>
<Plasteel>20</Plasteel>
</costList>
<verbs>
<li>
<verbClass>WulaFallenEmpire.Verb_ShootShotgun</verbClass>
<hasStandardCommand>true</hasStandardCommand>
<defaultProjectile>Bullet_WULA_RW_Plasma_Homing_AR_Ex</defaultProjectile>
<warmupTime>2.0</warmupTime>
<range>12</range>
<burstShotCount>3</burstShotCount>
<ticksBetweenBurstShots>12</ticksBetweenBurstShots>
<soundCast>ChargeLance_Fire</soundCast>
<soundCastTail>GunTail_Medium</soundCastTail>
<muzzleFlashScale>9</muzzleFlashScale>
<aimingChargeMote>Mote_BeamRepeater_Charge</aimingChargeMote>
<aimingChargeMoteOffset>1.07</aimingChargeMoteOffset>
<forcedMissRadius>1.1</forcedMissRadius>
</li>
</verbs>
<weaponTags>
<li>Wula_Weapon_Init</li>
</weaponTags>
<thingSetMakerTags>
<li>RewardStandardQualitySuper</li>
</thingSetMakerTags>
<comps>
<li Class="WulaFallenEmpire.CompProperties_Switch">
<changeTo>WULA_RW_Plasma_Homing_AR</changeTo>
<abilityDef>WULA_RW_Plasma_Homing_AR_WeaponSwitchAbility</abilityDef>
</li>
</comps>
</ThingDef>
<ThingDef ParentName="BaseBullet">
<defName>Bullet_WULA_RW_Plasma_Homing_AR</defName>
<label>磷叶等离子体射弹</label>
<graphicData>
<texPath>Wula/Projectile/WULA_Bullet_Plasma_Yellow</texPath>
<graphicClass>Graphic_Single</graphicClass>
<!-- <color>(61,199,157,202)</color> -->
<drawSize>(0.75,1)</drawSize>
</graphicData>
<projectile>
<!-- 基础伤害和穿透。对于这个投射物,实际伤害由爆炸决定 -->
<damageDef>Damage_WULA_Plasma</damageDef>
<damageAmountBase>6</damageAmountBase>
<explosionRadius>0.9</explosionRadius>
<soundExplode>Explosion_EMP</soundExplode>
<armorPenetrationBase>0.75</armorPenetrationBase>
<speed>55</speed>
</projectile>
<thingClass>WulaFallenEmpire.Projectile_ExplosiveWithTrail</thingClass>
<modExtensions>
<li Class="WulaFallenEmpire.TrackingBulletDef">
<tailFleckDef>WULA_GunTail_Plasma_Yellow</tailFleckDef>
</li>
<li Class="WulaFallenEmpire.ShotgunExtension">
<pelletCount>3</pelletCount>
</li>
</modExtensions>
</ThingDef>
<ThingDef ParentName="BaseBullet">
<defName>Bullet_WULA_RW_Plasma_Homing_AR_Ex</defName>
<label>磷叶等离子体射弹</label>
<graphicData>
<texPath>Wula/Projectile/WULA_Bullet_Plasma</texPath>
<graphicClass>Graphic_Single</graphicClass>
<shaderType>MoteGlow</shaderType>
<!-- <color>(61,199,157,202)</color> -->
<drawSize>(2,1.5)</drawSize>
</graphicData>
<projectile>
<damageDef>Damage_WULA_Plasma_Explosive</damageDef>
<damageAmountBase>16</damageAmountBase>
<explosionRadius>2</explosionRadius>
<soundExplode>Explosion_EMP</soundExplode>
<armorPenetrationBase>0.75</armorPenetrationBase>
<speed>55</speed>
</projectile>
<thingClass>WulaFallenEmpire.Projectile_ExplosiveWithTrail</thingClass>
<modExtensions>
<li Class="WulaFallenEmpire.TrackingBulletDef">
<tailFleckDef>WULA_GunTail_Plasma</tailFleckDef>
</li>
</modExtensions>
</ThingDef>
<AbilityDef>
<defName>WULA_RW_Plasma_Homing_AR_WeaponSwitchAbility</defName>
<label>武装解放 / 武装闭锁</label>
<description>控制谐振器的等离子喷射方案以决定PMr-88"三叶"是否放弃追踪射弹切换到充能等离子模式</description>
<cooldownTicksRange>601</cooldownTicksRange>
<iconPath>Wula/UI/Abilities/WULA_WeaponSwitchAbility</iconPath>
<hostile>false</hostile>
<showOnCharacterCard>false</showOnCharacterCard>
<aiCanUse>false</aiCanUse>
<targetRequired>false</targetRequired>
<casterMustBeCapableOfViolence>false</casterMustBeCapableOfViolence>
<statBases>
<!-- 如果不需要限时,可以把这玩意删了-->
<!--<Ability_Duration>10</Ability_Duration>-->
</statBases>
<verbProperties>
<verbClass>Verb_CastAbility</verbClass>
<warmupTime>0</warmupTime>
<drawAimPie>false</drawAimPie>
<requireLineOfSight>false</requireLineOfSight>
<targetable>false</targetable>
<targetParams>
<canTargetSelf>true</canTargetSelf>
</targetParams>
</verbProperties>
<comps>
<li Class="CompProperties_AbilityEffect">
<compClass>WulaFallenEmpire.CompAbilityEffect_Switch</compClass>
</li>
<!-- 如果不需要限时,可以把这玩意删了-->
<!--<li Class="CompProperties_AbilityGiveHediff">
<compClass>CompAbilityEffect_GiveHediff</compClass>
<hediffDef>WULA_HediffSwitchDuration</hediffDef>
<onlyApplyToSelf>True</onlyApplyToSelf>
</li>-->
</comps>
</AbilityDef>
<!-- 手持火炮 -->
<ThingDef ParentName="BaseGun">
<defName>WULA_RW_Handle_Cannon</defName>
<label>KRc-7"熔叶"</label>
<description>一般由乌拉帝国跳帮组或骑士军团携带的手持火炮,能够在锁定后连续发射三轮炮弹,夷平敌人的复合型工事或舰船内壁,并给敌人送来最炽热的消亡。</description>
<techLevel>Ultra</techLevel>
<weaponTags>
<li>Wula_Ranged_Weapon_Wall_Destoryer</li>
</weaponTags>
<graphicData>
<texPath>Wula/Weapon/WULA_RW_Handle_Cannon</texPath>
<graphicClass>Graphic_Single</graphicClass>
<drawSize>1.35</drawSize>
</graphicData>
<tradeability>None</tradeability>
<recipeMaker>
<recipeUsers Inherit="False">
<li>WULA_Cube_Productor_Energy</li>
</recipeUsers>
<researchPrerequisite>WULA_Synth_Weapon_3_Bomb_Technology</researchPrerequisite>
<unfinishedThingDef>UnfinishedWeapon</unfinishedThingDef>
</recipeMaker>
<statBases>
<WorkToMake>50000</WorkToMake>
<Mass>20</Mass>
<AccuracyTouch>0.03</AccuracyTouch>
<AccuracyShort>0.03</AccuracyShort>
<AccuracyMedium>0.03</AccuracyMedium>
<AccuracyLong>0.02</AccuracyLong>
<RangedWeapon_Cooldown>3.0</RangedWeapon_Cooldown>
</statBases>
<costList Inherit="False">
<Steel>500</Steel>
<Plasteel>300</Plasteel>
<ComponentSpacer>12</ComponentSpacer>
</costList>
<verbs>
<li>
<verbClass>Verb_Shoot</verbClass>
<hasStandardCommand>true</hasStandardCommand>
<defaultProjectile>Bullet_WULA_RW_Handle_Cannon</defaultProjectile>
<warmupTime>3</warmupTime>
<range>20</range>
<soundCast>Shot_HellsphereCannonGun</soundCast>
<soundCastTail>GunTail_Heavy</soundCastTail>
<muzzleFlashScale>9</muzzleFlashScale>
<ai_AvoidFriendlyFireRadius>6</ai_AvoidFriendlyFireRadius>
<ai_RangedAlawaysShootGroundBelowTarget>true</ai_RangedAlawaysShootGroundBelowTarget>
<ai_ProjectileLaunchingIgnoresMeleeThreats>true</ai_ProjectileLaunchingIgnoresMeleeThreats>
<ai_IsBuildingDestroyer>true</ai_IsBuildingDestroyer>
<ai_TargetHasRangedAttackScoreOffset>50</ai_TargetHasRangedAttackScoreOffset>
<minRange>6</minRange>
<targetParams>
<canTargetLocations>true</canTargetLocations>
<canTargetPawns>false</canTargetPawns>
</targetParams>
<aimingLineMote>Mote_HellsphereCannon_Aim</aimingLineMote>
<aimingChargeMote>Mote_HellsphereCannon_Charge</aimingChargeMote>
<aimingChargeMoteOffset>1.07</aimingChargeMoteOffset>
<aimingLineMoteFixedLength>3.9</aimingLineMoteFixedLength>
<aimingTargetMote>Mote_HellsphereCannon_Target</aimingTargetMote>
<burstShotCount>3</burstShotCount>
<beamTargetsGround>true</beamTargetsGround>
<soundAiming>HellsphereCannon_Aiming</soundAiming>
<canGoWild>false</canGoWild>
<forcedMissRadius>1.1</forcedMissRadius>
</li>
</verbs>
<tools>
<li>
<label>barrel</label>
<capacities>
<li>Blunt</li>
<li>Poke</li>
</capacities>
<power>9</power>
<cooldownTime>2.6</cooldownTime>
</li>
</tools>
<comps>
<li Class="CompProperties_Biocodable"/>
</comps>
<thingSetMakerTags>
<li>RewardStandardQualitySuper</li>
</thingSetMakerTags>
</ThingDef>
<ThingDef ParentName="BaseBullet">
<defName>Bullet_WULA_RW_Handle_Cannon</defName>
<label>熔叶等离子爆弹</label>
<graphicData>
<texPath>Wula/Projectile/WULA_Bullet_Plasma</texPath>
<graphicClass>Graphic_Single</graphicClass>
<shaderType>MoteGlow</shaderType>
<!-- <color>(61,199,157,202)</color> -->
<drawSize>(3,4)</drawSize>
</graphicData>
<thingClass>WulaFallenEmpire.Projectile_ExplosiveWithTrail</thingClass>
<!-- <thingClass>WulaFallenEmpire.Projectile_ExplosiveTrackingBullet</thingClass> -->
<projectile>
<speed>25</speed>
<damageDef>Damage_WULA_Plasma_Explosive</damageDef>
<damageAmountBase>40</damageAmountBase>
<armorPenetrationBase>0.7</armorPenetrationBase>
<stoppingPower>2.0</stoppingPower>
<explosionRadius>2.5</explosionRadius>
<soundExplode>Explosion_EMP</soundExplode>
<armorPenetrationBase>0.75</armorPenetrationBase>
<screenShakeFactor>0.5</screenShakeFactor>
<flyOverhead>true</flyOverhead>
</projectile>
<modExtensions>
<!-- <li Class="WulaFallenEmpire.ExplosiveTrackingBulletDef">
<explosionRadius>2.5</explosionRadius>
<damageDef>Damage_WULA_Plasma_Explosive</damageDef>
</li> -->
<!-- <li Class="WulaFallenEmpire.TrackingBulletDef">
<homingSpeed>0</homingSpeed>
<initRotateAngle>0</initRotateAngle>
<destroyTicksAfterLosingTrack>
<min>60</min>
<max>120</max>
</destroyTicksAfterLosingTrack>
<tailFleckDef>WULA_GunTail_Plasma</tailFleckDef>
<impactThreshold>1</impactThreshold>
</li> -->
<li Class="WulaFallenEmpire.TrackingBulletDef">
<tailFleckDef>WULA_GunTail_Plasma</tailFleckDef>
<fleckMakeFleckTickMax>3</fleckMakeFleckTickMax>
</li>
<li Class="WulaFallenEmpire.ShotgunExtension">
<pelletCount>3</pelletCount>
</li>
</modExtensions>
</ThingDef>
</Defs>

File diff suppressed because it is too large Load Diff

View File

@@ -1,945 +1,6 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<!-- 简易武器 -->
<ThingDef ParentName="BaseMeleeWeapon_Blunt">
<defName>WULA_MW_Mace</defName>
<label>战壕狼牙棒</label>
<description>这种细长的狼牙棒很适合在狭窄空间挥舞,也是乌拉帝国王权的象征——尽管在你手里这只是一根带刺的棍子。</description>
<graphicData>
<texPath>Wula/Weapon/WULA_MW_Mace</texPath>
<graphicClass>Graphic_Single</graphicClass>
<shaderType>CutoutComplex</shaderType>
<drawSize>0.8</drawSize>
</graphicData>
<uiIconScale>1.1</uiIconScale>
<techLevel>Medieval</techLevel>
<statBases>
<!-- <MarketValue>76</MarketValue> -->
<WorkToMake>300</WorkToMake>
<Mass>2</Mass>
</statBases>
<equippedAngleOffset>-65</equippedAngleOffset>
<costList>
<Steel>10</Steel>
</costList>
<costStuffCount>30</costStuffCount>
<stuffCategories>
<li>Metallic</li>
<li>Woody</li>
<li>Stony</li>
</stuffCategories>
<recipeMaker>
<recipeUsers Inherit="False">
<li>WULA_Cube_Productor_BIO</li>
<li>WULA_Cube_Productor_Energy</li>
</recipeUsers>
<researchPrerequisite>WULA_Synth_Weapon_Technology</researchPrerequisite>
<displayPriority>300</displayPriority>
<unfinishedThingDef>UnfinishedWeapon</unfinishedThingDef>
</recipeMaker>
<tools>
<li>
<label>棍柄</label>
<capacities>
<li>Poke</li>
</capacities>
<power>9</power>
<cooldownTime>1</cooldownTime>
<chanceFactor>0.5</chanceFactor>
</li>
<li>
<label>尖头</label>
<labelUsedInLogging>false</labelUsedInLogging>
<capacities>
<li>Stab</li>
</capacities>
<power>18</power>
<cooldownTime>1.25</cooldownTime>
</li>
</tools>
<weaponTags>
<li>Wula_Weapon_Init</li>
</weaponTags>
<thingSetMakerTags>
<li>RewardStandardQualitySuper</li>
</thingSetMakerTags>
</ThingDef>
<ThingDef ParentName="BaseMeleeWeapon_Blunt_Quality">
<defName>WULA_MW_Constructor_Hammer</defName>
<label>HAm-1"装修锤"</label>
<description>供乌拉猫猫使用的多功能工具,兼具施工和开采的能力。</description>
<graphicData>
<texPath>Wula/Weapon/WULA_MW_Constructor_Hammer</texPath>
<graphicClass>Graphic_Single</graphicClass>
<shaderType>CutoutComplex</shaderType>
</graphicData>
<equippedAngleOffset>-65</equippedAngleOffset>
<techLevel>Spacer</techLevel>
<smeltable>false</smeltable>
<relicChance>0</relicChance>
<statBases>
<MarketValue>100</MarketValue>
<WorkToMake>1000</WorkToMake>
<Mass>1</Mass>
</statBases>
<costList Inherit="False">
<Steel>20</Steel>
</costList>
<tools>
<li>
<label>槌头</label>
<capacities>
<li>Poke</li>
</capacities>
<power>14</power>
<cooldownTime>1.5</cooldownTime>
<armorPenetration>0.8</armorPenetration>
</li>
</tools>
<recipeMaker>
<recipeUsers Inherit="False" />
</recipeMaker>
<weaponTags>
<li>Wula_Constructor_Cat_Weapon</li>
</weaponTags>
</ThingDef>
<ThingDef ParentName="BaseHumanMakeableGun">
<defName>WULA_RW_Base_AR_Cat</defName>
<label>DLa-4"云母"</label>
<description>乌拉帝国的旧式突击步枪比起DLa-1"页岩"来说更小一些,射程和精度有所下降,但是下挂了一把刺刀用于近身战斗,专为乌拉猫猫机械体设计。</description>
<!-- <techLevel>Industrial</techLevel> -->
<tickerType>Normal</tickerType>
<techLevel>Spacer</techLevel>
<weaponTags>
<li>Wula_Assault_Cat_Weapon</li>
</weaponTags>
<graphicData>
<texPath>Wula/Weapon/WULA_RW_Base_AR_Cat</texPath>
<graphicClass>Graphic_Single</graphicClass>
<drawSize>0.7</drawSize>
</graphicData>
<soundInteract>Interact_Rifle</soundInteract>
<relicChance>0</relicChance>
<statBases>
<WorkToMake>700</WorkToMake>
<!-- <MarketValue>370</MarketValue> -->
<Mass>3.5</Mass>
<AccuracyTouch>0.6</AccuracyTouch>
<AccuracyShort>0.6</AccuracyShort>
<AccuracyMedium>0.5</AccuracyMedium>
<AccuracyLong>0.25</AccuracyLong>
<RangedWeapon_Cooldown>1.6</RangedWeapon_Cooldown>
</statBases>
<verbs>
<li>
<verbClass>Verb_Shoot</verbClass>
<hasStandardCommand>true</hasStandardCommand>
<defaultProjectile>Bullet_AssaultRifle</defaultProjectile>
<warmupTime>0.7</warmupTime>
<range>20</range>
<burstShotCount>3</burstShotCount>
<ticksBetweenBurstShots>3</ticksBetweenBurstShots>
<soundCast>Shot_AssaultRifle</soundCast>
<soundCastTail>GunTail_Medium</soundCastTail>
<muzzleFlashScale>7</muzzleFlashScale>
</li>
</verbs>
<costList Inherit="False">
<Steel>60</Steel>
<ComponentIndustrial>8</ComponentIndustrial>
</costList>
<tools>
<li>
<label>刺刀戳刺</label>
<capacities>
<li>Stab</li>
</capacities>
<power>15</power>
<armorPenetration>0.50</armorPenetration>
<cooldownTime>2.2</cooldownTime>
</li>
</tools>
<recipeMaker>
<recipeUsers Inherit="False" />
<researchPrerequisite Inherit="False" />
</recipeMaker>
</ThingDef>
<!-- 动力破墙锤 -->
<ThingDef ParentName="BaseMeleeWeapon_Blunt_Quality">
<defName>WULA_MW_Breaker_Bar</defName>
<label>PMb-97"破墙槌"</label>
<description>一种沉重的破墙设备,通常由装备外骨骼的乌拉帝国士兵携带,可以通过加压挥出势大力沉的一击,连续击倒多名敌人。</description>
<graphicData>
<texPath>Wula/Weapon/WULA_MW_Breaker_Bar</texPath>
<shaderType>CutoutComplex</shaderType>
<graphicClass>Graphic_Single</graphicClass>
<drawSize>1.35</drawSize>
</graphicData>
<equippedAngleOffset>-65</equippedAngleOffset>
<weaponTags>
<li>Wula_Melee_Weapon_T3</li>
</weaponTags>
<techLevel>Spacer</techLevel>
<costStuffCount>50</costStuffCount>
<statBases>
<!-- <MarketValue>441</MarketValue> -->
<WorkToMake>20000</WorkToMake>
<Mass>20</Mass>
</statBases>
<stuffCategories>
<li>Metallic</li>
</stuffCategories>
<costList Inherit="False">
<Plasteel>20</Plasteel>
<ComponentIndustrial>4</ComponentIndustrial>
</costList>
<tools>
<li>
<label>横扫</label>
<capacities>
<li>WULA_MW_Breaker_Bar_Demolish</li>
</capacities>
<power>150</power>
<cooldownTime>5</cooldownTime>
<armorPenetration>1</armorPenetration>
<!-- <extraMeleeDamages>
<li>
<def>Stun</def>
<amount>34</amount>
</li>
</extraMeleeDamages> -->
</li>
</tools>
<recipeMaker>
<recipeUsers Inherit="False">
<li>WULA_Cube_Productor_Energy</li>
</recipeUsers>
<researchPrerequisite>WULA_Synth_Weapon_2_Stun_Technology</researchPrerequisite>
<skillRequirements>
<Crafting>7</Crafting>
</skillRequirements>
<displayPriority>450</displayPriority>
<unfinishedThingDef>UnfinishedWeapon</unfinishedThingDef>
</recipeMaker>
<thingSetMakerTags>
<li>RewardStandardQualitySuper</li>
</thingSetMakerTags>
<comps>
<li Class="WulaFallenEmpire.CompProperties_Cleave">
<cleaveAngle>90</cleaveAngle>
<cleaveRange>2.5</cleaveRange>
<cleaveDamageFactor>0.5</cleaveDamageFactor>
<damageDowned>false</damageDowned>
<explosionDamageDef>Blunt</explosionDamageDef>
</li>
<li Class="WulaFallenEmpire.CompProperties_CustomUniqueWeapon" MayRequire="Ludeon.RimWorld.Odyssey">
<forcedTraits>
<li>WULA_Melee_Cleave</li>
</forcedTraits>
<numTraitsRange>
<min>1</min>
<max>1</max>
</numTraitsRange>
</li>
</comps>
</ThingDef>
<ToolCapacityDef>
<defName>WULA_MW_Breaker_Bar_Demolish</defName>
<label>加压锤击</label>
</ToolCapacityDef>
<ManeuverDef>
<defName>WULA_MW_Breaker_Bar_Maneuver</defName>
<requiredCapacity>WULA_MW_Breaker_Bar_Demolish</requiredCapacity>
<verb>
<verbClass>WulaFallenEmpire.Verb_MeleeAttack_Cleave</verbClass>
<meleeDamageDef>Demolish</meleeDamageDef>
</verb>
<logEntryDef>MeleeAttack</logEntryDef>
<combatLogRulesHit>Maneuver_Slash_MeleeHit</combatLogRulesHit>
<combatLogRulesDeflect>Maneuver_Slash_MeleeDeflect</combatLogRulesDeflect>
<combatLogRulesMiss>Maneuver_Slash_MeleeMiss</combatLogRulesMiss>
<combatLogRulesDodge>Maneuver_Slash_MeleeDodge</combatLogRulesDodge>
</ManeuverDef>
<!-- 动力钉头锤 -->
<ThingDef ParentName="BaseMeleeWeapon_Blunt_Quality">
<defName>WULA_MW_Charge_Mace</defName>
<label>CMp-7"钉头锤"</label>
<description>这种乌拉帝国战士使用的近战武器由多层复合的高密度钨合金或贫铀合金核心构成可以利用无与伦比的冲击质量击碎护甲同时锤头镶嵌着数个单分子碳化硅撞针用于为EMP装置的释放创造接触点。</description>
<graphicData>
<texPath>Wula/Weapon/WULA_MW_Charge_Mace</texPath>
<graphicClass>Graphic_Single</graphicClass>
<shaderType>CutoutComplex</shaderType>
</graphicData>
<weaponTags>
<li>Wula_Melee_Weapon_T2</li>
</weaponTags>
<equippedAngleOffset>-65</equippedAngleOffset>
<techLevel>Spacer</techLevel>
<statBases>
<WorkToMake>20000</WorkToMake>
<Mass>5</Mass>
</statBases>
<costStuffCount>60</costStuffCount>
<stuffCategories>
<li>Metallic</li>
</stuffCategories>
<costList Inherit="False">
<Plasteel>5</Plasteel>
<ComponentIndustrial>6</ComponentIndustrial>
</costList>
<tools>
<li>
<label>槌头</label>
<capacities>
<li>Poke</li>
</capacities>
<power>18</power>
<cooldownTime>1.5</cooldownTime>
<armorPenetration>0.8</armorPenetration>
<extraMeleeDamages>
<li>
<def>Stun</def>
<amount>4</amount>
</li>
</extraMeleeDamages>
</li>
</tools>
<recipeMaker>
<recipeUsers Inherit="False">
<li>WULA_Cube_Productor_Energy</li>
</recipeUsers>
<researchPrerequisite>WULA_Synth_Weapon_2_Stun_Technology</researchPrerequisite>
<skillRequirements>
<Crafting>7</Crafting>
</skillRequirements>
<displayPriority>450</displayPriority>
<unfinishedThingDef>UnfinishedWeapon</unfinishedThingDef>
</recipeMaker>
<thingSetMakerTags>
<li>RewardStandardQualitySuper</li>
</thingSetMakerTags>
</ThingDef>
<!-- 链锯剑 -->
<ThingDef ParentName="BaseMeleeWeapon_Sharp_Quality">
<defName>WULA_MW_ChainSword</defName>
<label>CMs-1"链锯剑"</label>
<description>这种嗡嗡作响的乌拉帝国链锯类武器有多条环绕剑脊高速旋转的多层复合锯齿链条,之间嵌有能量传导节点或微型冷却剂喷口,是力量与纯粹疯狂的象征——它在一次的攻击中会造成大量的伤口,足以从头到脚撕裂敌人的身体。</description>
<graphicData>
<texPath>Wula/Weapon/WULA_MW_ChainSword</texPath>
<graphicClass>Graphic_Single</graphicClass>
<shaderType>CutoutComplex</shaderType>
</graphicData>
<soundInteract>Interact_WULA_MW_ChainSword</soundInteract>
<!-- <equippedAngleOffset>-65</equippedAngleOffset> -->
<techLevel>Spacer</techLevel>
<costStuffCount>60</costStuffCount>
<stuffCategories>
<li>Metallic</li>
</stuffCategories>
<costList Inherit="False">
<Plasteel>5</Plasteel>
<ComponentIndustrial>3</ComponentIndustrial>
</costList>
<statBases>
<WorkToMake>20000</WorkToMake>
<Mass>2.5</Mass>
</statBases>
<tools Inherit="False">
<li>
<label>链锯</label>
<capacities>
<li>WULA_MW_ChainSword_MultiStrike</li>
</capacities>
<armorPenetration>0.5</armorPenetration>
<power>25</power>
<cooldownTime>1.2</cooldownTime>
<soundMeleeHit>WULA_MW_ChainSword_Hit</soundMeleeHit>
<soundMeleeMiss>WULA_MW_ChainSword_Hit</soundMeleeMiss>
</li>
<li>
<label>柄击</label>
<capacities>
<li>Blunt</li>
<li>Poke</li>
</capacities>
<power>18</power>
<cooldownTime>1.5</cooldownTime>
<surpriseAttack>
<extraMeleeDamages>
<li>
<def>Stun</def>
<amount>5</amount>
</li>
</extraMeleeDamages>
</surpriseAttack>
</li>
</tools>
<recipeMaker>
<recipeUsers Inherit="False">
<li>WULA_Cube_Productor_Energy</li>
</recipeUsers>
<researchPrerequisite>WULA_Synth_Weapon_2_Melee_Technology</researchPrerequisite>
<skillRequirements>
<Crafting>7</Crafting>
</skillRequirements>
<displayPriority>450</displayPriority>
<unfinishedThingDef>UnfinishedWeapon</unfinishedThingDef>
</recipeMaker>
<weaponTags>
<li>Wula_Melee_Weapon_T2</li>
</weaponTags>
<thingSetMakerTags>
<li>RewardStandardQualitySuper</li>
</thingSetMakerTags>
<comps>
<li Class="WulaFallenEmpire.CompProperties_MultiStrike">
<strikeCount>5~8</strikeCount>
<damageMultiplierPerStrike>0.2</damageMultiplierPerStrike>
</li>
</comps>
</ThingDef>
<ToolCapacityDef>
<defName>WULA_MW_ChainSword_MultiStrike</defName>
<label>链锯切割</label>
</ToolCapacityDef>
<ManeuverDef>
<defName>WULA_MW_ChainSword_Maneuver</defName>
<requiredCapacity>WULA_MW_ChainSword_MultiStrike</requiredCapacity>
<verb>
<verbClass>WulaFallenEmpire.Verb_MeleeAttack_MultiStrike</verbClass>
<meleeDamageDef>Cut</meleeDamageDef>
</verb>
<logEntryDef>MeleeAttack</logEntryDef>
<combatLogRulesHit>Maneuver_Slash_MeleeHit</combatLogRulesHit>
<combatLogRulesDeflect>Maneuver_Slash_MeleeDeflect</combatLogRulesDeflect>
<combatLogRulesMiss>Maneuver_Slash_MeleeMiss</combatLogRulesMiss>
<combatLogRulesDodge>Maneuver_Slash_MeleeDodge</combatLogRulesDodge>
</ManeuverDef>
<!-- 双头刀 -->
<ThingDef ParentName="BaseMeleeWeapon_Sharp_Quality">
<defName>WULA_MW_Glaive</defName>
<label>CMl-99"剑冢"</label>
<description>乌拉帝国修女惯用的大型双头刀,装备了悬浮轴承、能量刃、惯性控制场和精密的传感器系统,让使用者能像舞蹈般挥舞两端的致命锋刃。</description>
<weaponTags>
<li>Wula_Melee_Weapon_FE_Spiritualist</li>
<!-- <li>Spear</li> -->
</weaponTags>
<graphicData>
<texPath>Wula/Weapon/WULA_MW_Glaive</texPath>
<graphicClass>Graphic_Single</graphicClass>
<shaderType>CutoutComplex</shaderType>
<drawSize>1.5</drawSize>
</graphicData>
<uiIconScale>0.75</uiIconScale>
<!-- <equippedAngleOffset>-65</equippedAngleOffset> -->
<techLevel>Spacer</techLevel>
<!-- <equippedAngleOffset>-25</equippedAngleOffset> -->
<costStuffCount>200</costStuffCount>
<stuffCategories>
<li>Metallic</li>
</stuffCategories>
<costList Inherit="False">
<Plasteel>10</Plasteel>
<ComponentIndustrial>6</ComponentIndustrial>
</costList>
<statBases>
<WorkToMake>30000</WorkToMake>
<Mass>5</Mass>
</statBases>
<tools Inherit="False">
<li>
<label>横扫</label>
<capacities>
<li>Cut</li>
</capacities>
<power>35</power>
<cooldownTime>1.9</cooldownTime>
<armorPenetration>0.50</armorPenetration>
</li>
<li>
<label>穿刺</label>
<capacities>
<li>Stab</li>
</capacities>
<power>40</power>
<armorPenetration>0.90</armorPenetration>
<cooldownTime>2.2</cooldownTime>
</li>
</tools>
<recipeMaker>
<recipeUsers Inherit="False">
<li>WULA_Cube_Productor_Energy</li>
</recipeUsers>
<researchPrerequisite>WULA_Synth_Weapon_2_Melee_Technology</researchPrerequisite>
<unfinishedThingDef>UnfinishedWeapon</unfinishedThingDef>
</recipeMaker>
<weaponTags>
<li>Wula_Melee_Weapon_T2</li>
</weaponTags>
<thingSetMakerTags>
<li>RewardStandardQualitySuper</li>
</thingSetMakerTags>
</ThingDef>
<!-- 自动炮 -->
<ThingDef ParentName="BaseHumanMakeableGun">
<defName>WULA_RW_AutoCannon</defName>
<label>FLm-78"萤石"</label>
<description>一般由乌拉帝国跳帮组或骑士军团携带的自动炮,在拥有长射程的同时火力也非常凶猛,会造成区域性的爆炸效果以控制集群敌军。</description>
<techLevel>Ultra</techLevel>
<weaponTags>
<li>Wula_Ranged_Weapon_T3</li>
</weaponTags>
<!-- <techLevel>Spacer</techLevel> -->
<graphicData>
<texPath>Wula/Weapon/WULA_RW_AutoCannon</texPath>
<graphicClass>Graphic_Single</graphicClass>
<drawSize>1.65</drawSize>
</graphicData>
<tradeability>None</tradeability>
<uiIconScale>0.75</uiIconScale>
<soundInteract>Interact_ChargeRifle</soundInteract>
<recipeMaker>
<recipeUsers Inherit="False">
<li>WULA_Cube_Productor_Energy</li>
</recipeUsers>
<researchPrerequisite>WULA_Synth_Weapon_3_Bomb_Technology</researchPrerequisite>
<unfinishedThingDef>UnfinishedWeapon</unfinishedThingDef>
</recipeMaker>
<costList Inherit="False">
<Steel>300</Steel>
<Plasteel>80</Plasteel>
<ComponentSpacer>8</ComponentSpacer>
</costList>
<statBases>
<WorkToMake>40000</WorkToMake>
<Mass>20</Mass>
<AccuracyTouch>0.85</AccuracyTouch>
<AccuracyShort>0.85</AccuracyShort>
<AccuracyMedium>0.75</AccuracyMedium>
<AccuracyLong>0.65</AccuracyLong>
<RangedWeapon_Cooldown>1</RangedWeapon_Cooldown>
</statBases>
<verbs>
<li>
<verbClass>Verb_Shoot</verbClass>
<hasStandardCommand>true</hasStandardCommand>
<defaultProjectile>Bullet_WULA_RW_AutoCannon</defaultProjectile>
<warmupTime>1.5</warmupTime>
<range>32</range>
<forcedMissRadius>0.1</forcedMissRadius>
<burstShotCount>6</burstShotCount>
<ticksBetweenBurstShots>8</ticksBetweenBurstShots>
<soundCast>Shot_ChargeRifle</soundCast>
<soundCastTail>GunTail_Medium</soundCastTail>
<muzzleFlashScale>9</muzzleFlashScale>
<targetParams>
<canTargetPawns>true</canTargetPawns>
<canTargetLocations>true</canTargetLocations>
<canTargetBuildings>true</canTargetBuildings>
</targetParams>
</li>
</verbs>
<thingSetMakerTags>
<li>RewardStandardQualitySuper</li>
</thingSetMakerTags>
</ThingDef>
<ThingDef ParentName="BaseBullet">
<defName>Bullet_WULA_RW_AutoCannon</defName>
<label>萤石自动炮子弹</label>
<thingClass>Projectile_Explosive</thingClass>
<tickerType>Normal</tickerType>
<neverMultiSelect>True</neverMultiSelect>
<graphicData>
<texPath>Wula/Projectile/WULA_Bullet_ChargeLanceShot_Red</texPath>
<graphicClass>Graphic_Single</graphicClass>
<shaderType>TransparentPostLight</shaderType>
<drawSize>1.4</drawSize>
</graphicData>
<projectile>
<damageDef>Bullet</damageDef>
<damageAmountBase>22</damageAmountBase>
<speed>90</speed>
<explosionRadius>1.2</explosionRadius>
<arcHeightFactor>0.4</arcHeightFactor>
<soundExplode>Explosion_Rocket</soundExplode>
<armorPenetrationBase>0.75</armorPenetrationBase>
<screenShakeFactor>0.1</screenShakeFactor>
</projectile>
</ThingDef>
<!-- 榴弹发射器 -->
<ThingDef ParentName="BaseHumanMakeableGun">
<defName>WULA_RW_Auto_GL</defName>
<label>SEl-78"角砾岩"</label>
<description>乌拉帝国所装备的自动榴弹炮,所发射高抛的高爆榴弹或许杀伤力没有想象的这么强,但是射速极快,几乎可以依靠单兵创造一片轰炸区。</description>
<techLevel>Ultra</techLevel>
<tradeability>None</tradeability>
<!-- <techLevel>Spacer</techLevel> -->
<graphicData>
<texPath>Wula/Weapon/WULA_RW_Auto_GL</texPath>
<graphicClass>Graphic_Single</graphicClass>
<drawSize>1.65</drawSize>
</graphicData>
<weaponTags>
<li>Wula_Ranged_Weapon_T3</li>
</weaponTags>
<uiIconScale>0.75</uiIconScale>
<recipeMaker>
<recipeUsers Inherit="False">
<li>WULA_Cube_Productor_Energy</li>
</recipeUsers>
<researchPrerequisite>WULA_Synth_Weapon_3_Bomb_Technology</researchPrerequisite>
<unfinishedThingDef>UnfinishedWeapon</unfinishedThingDef>
</recipeMaker>
<costList Inherit="False">
<Steel>380</Steel>
<Plasteel>60</Plasteel>
<ComponentSpacer>8</ComponentSpacer>
</costList>
<statBases>
<WorkToMake>40000</WorkToMake>
<Mass>20</Mass>
<AccuracyTouch>0.5</AccuracyTouch>
<AccuracyShort>0.5</AccuracyShort>
<AccuracyMedium>0.4</AccuracyMedium>
<AccuracyLong>0.3</AccuracyLong>
<RangedWeapon_Cooldown>1</RangedWeapon_Cooldown>
</statBases>
<verbs>
<li>
<verbClass>Verb_Shoot</verbClass>
<hasStandardCommand>true</hasStandardCommand>
<defaultProjectile>Bullet_WULA_RW_Auto_GL</defaultProjectile>
<warmupTime>0.2</warmupTime>
<forcedMissRadius>4</forcedMissRadius>
<forcedMissRadiusClassicMortars>4</forcedMissRadiusClassicMortars>
<isMortar>true</isMortar>
<requireLineOfSight>false</requireLineOfSight>
<minRange>4</minRange>
<range>48</range>
<burstShotCount>1</burstShotCount>
<soundCast>Mortar_LaunchA</soundCast>
<muzzleFlashScale>12</muzzleFlashScale>
<targetParams>
<canTargetLocations>true</canTargetLocations>
</targetParams>
</li>
</verbs>
<thingSetMakerTags>
<li>RewardStandardQualitySuper</li>
</thingSetMakerTags>
</ThingDef>
<ThingDef ParentName="BaseBullet">
<defName>Bullet_WULA_RW_Auto_GL</defName>
<label>角砾岩榴弹</label>
<graphicData>
<texPath>Wula/Projectile/WULA_Shrapnel</texPath>
<graphicClass>Graphic_Single</graphicClass>
<shaderType>TransparentPostLight</shaderType>
</graphicData>
<!-- <thingClass>WulaFallenEmpire.Projectile_CruiseMissile</thingClass> -->
<thingClass>Projectile_Explosive</thingClass>
<projectile>
<damageDef>Bomb</damageDef>
<damageAmountBase>25</damageAmountBase>
<speed>35</speed>
<explosionRadius>3.5</explosionRadius>
<armorPenetrationBase>0.1</armorPenetrationBase>
<flyOverhead>true</flyOverhead>
<soundHitThickRoof>Artillery_HitThickRoof</soundHitThickRoof>
<soundExplode>MortarBomb_Explode</soundExplode>
<soundImpactAnticipate>MortarRound_PreImpact</soundImpactAnticipate>
<soundAmbient>MortarRound_Ambient</soundAmbient>
</projectile>
</ThingDef>
<!-- 铳枪 -->
<ThingDef ParentName="BaseMeleeWeapon_Sharp_Quality">
<defName>WULA_MW_Lance</defName>
<label>CMl-28"铳枪"</label>
<description>乌拉帝国骑士所喜爱的枪炮合一的重型近战武器,采用高强度纳米碳纤维复合材料内芯,外层覆盖着带有散热格栅和能量导流槽的记忆合金装甲板,既可以在近战中刺穿对手,也可以从远距离上发射暗物质射流打击敌军。</description>
<weaponTags>
<li>Spear</li>
</weaponTags>
<graphicData>
<texPath>Wula/Weapon/WULA_MW_Lance</texPath>
<graphicClass>Graphic_Single</graphicClass>
<shaderType>CutoutComplex</shaderType>
<drawSize>2</drawSize>
</graphicData>
<techLevel>Spacer</techLevel>
<costStuffCount>120</costStuffCount>
<generateCommonality>0</generateCommonality>
<stuffCategories>
<li>Metallic</li>
</stuffCategories>
<costList Inherit="False">
<Plasteel>150</Plasteel>
<WULA_Dark_Matter_Item>2</WULA_Dark_Matter_Item>
</costList>
<statBases>
<WorkToMake>20000</WorkToMake>
<Mass>10</Mass>
<AccuracyTouch>0.5</AccuracyTouch>
<AccuracyShort>0.5</AccuracyShort>
<AccuracyMedium>0.4</AccuracyMedium>
<AccuracyLong>0.3</AccuracyLong>
<RangedWeapon_Cooldown>0</RangedWeapon_Cooldown>
</statBases>
<tools>
<li>
<label>横扫</label>
<capacities>
<li>Blunt</li>
<li>Poke</li>
</capacities>
<power>42</power>
<cooldownTime>1.6</cooldownTime>
<surpriseAttack>
<extraMeleeDamages>
<li>
<def>Stun</def>
<amount>14</amount>
</li>
</extraMeleeDamages>
</surpriseAttack>
</li>
<li>
<label>穿刺</label>
<capacities>
<li>Stab</li>
</capacities>
<power>65</power>
<armorPenetration>0.80</armorPenetration>
<cooldownTime>2.6</cooldownTime>
</li>
</tools>
<recipeMaker>
<recipeUsers Inherit="False">
<li>WULA_Cube_Productor_Energy</li>
</recipeUsers>
<researchPrerequisite>WULA_Synth_Weapon_4_DM_Base_Technology</researchPrerequisite>
<skillRequirements>
<Crafting>7</Crafting>
</skillRequirements>
<displayPriority>450</displayPriority>
<unfinishedThingDef>UnfinishedWeapon</unfinishedThingDef>
</recipeMaker>
<verbs>
<!--<li>
<verbClass>Verb_Shoot</verbClass>
<hasStandardCommand>true</hasStandardCommand>
<defaultProjectile>Bullet_WULA_MW_Lance</defaultProjectile>
<warmupTime>2</warmupTime>
<minRange>6</minRange>
<forcedMissRadius>0.1</forcedMissRadius>
<range>38</range>
<burstShotCount>1</burstShotCount>
<soundCast>Shot_TurretSniper</soundCast>
<soundCastTail>GunTail_Heavy</soundCastTail>
<muzzleFlashScale>6</muzzleFlashScale>
</li>-->
</verbs>
<thingSetMakerTags>
<li>RewardStandardQualitySuper</li>
</thingSetMakerTags>
<comps>
<li Class="WulaFallenEmpire.CompProperties_Switch">
<changeTo>WULA_MW_Lance_Ranged</changeTo>
<abilityDef>WULA_WULA_MW_Lance_WeaponSwitchAbility</abilityDef>
</li>
</comps>
</ThingDef>
<ThingDef ParentName="BaseMeleeWeapon_Sharp_Quality">
<defName>WULA_MW_Lance_Ranged</defName>
<label>CMl-28"铳枪"(远程)</label>
<description>乌拉帝国骑士所喜爱的枪炮合一的重型近战武器,采用高强度纳米碳纤维复合材料内芯,外层覆盖着带有散热格栅和能量导流槽的记忆合金装甲板,既可以在近战中刺穿对手,也可以从远距离上发射暗物质射流打击敌军。</description>
<weaponTags>
<!-- <li>Spear</li> -->
</weaponTags>
<graphicData>
<texPath>Wula/Weapon/WULA_MW_Lance_Ranged</texPath>
<graphicClass>Graphic_Single</graphicClass>
<shaderType>CutoutComplex</shaderType>
<drawSize>2</drawSize>
</graphicData>
<techLevel>Spacer</techLevel>
<costStuffCount>120</costStuffCount>
<stuffCategories>
<li>Metallic</li>
</stuffCategories>
<costList Inherit="False">
<Plasteel>150</Plasteel>
<WULA_Dark_Matter_Item>2</WULA_Dark_Matter_Item>
</costList>
<statBases>
<WorkToMake>20000</WorkToMake>
<Mass>10</Mass>
<AccuracyTouch>1</AccuracyTouch>
<AccuracyShort>1</AccuracyShort>
<AccuracyMedium>1</AccuracyMedium>
<AccuracyLong>1</AccuracyLong>
<RangedWeapon_Cooldown>0</RangedWeapon_Cooldown>
</statBases>
<tools>
<li>
<label>横扫</label>
<capacities>
<li>Blunt</li>
<li>Poke</li>
</capacities>
<power>42</power>
<cooldownTime>1.6</cooldownTime>
<surpriseAttack>
<extraMeleeDamages>
<li>
<def>Stun</def>
<amount>14</amount>
</li>
</extraMeleeDamages>
</surpriseAttack>
</li>
<li>
<label>穿刺</label>
<capacities>
<li>Stab</li>
</capacities>
<power>65</power>
<armorPenetration>0.80</armorPenetration>
<cooldownTime>2.6</cooldownTime>
</li>
</tools>
<!--加上这个就行-->
<!-- <tickerType>Normal</tickerType> -->
<!--避免被生成-->
<generateCommonality>0</generateCommonality>
<!--不可制作-->
<recipeMaker Inherit="False" />
<verbs>
<li Class="WulaFallenEmpire.VerbPropertiesExplosiveBeam">
<verbClass>WulaFallenEmpire.Verb_ShootBeamExplosive</verbClass>
<!-- 基础射线参数 -->
<hasStandardCommand>true</hasStandardCommand>
<warmupTime>1</warmupTime>
<range>24</range>
<burstShotCount>6</burstShotCount>
<ticksBetweenBurstShots>4</ticksBetweenBurstShots>
<beamDamageDef>Wula_Dark_Matter_Beam</beamDamageDef>
<!-- 消除射线偏移的参数 -->
<beamFullWidthRange>1000</beamFullWidthRange>
<beamWidth>-1</beamWidth>
<beamMaxDeviation>0</beamMaxDeviation>
<beamCurvature>0</beamCurvature>
<beamStartOffset>0</beamStartOffset>
<!-- 视觉和音效 -->
<muzzleFlashScale>0</muzzleFlashScale>
<soundCastBeam>BeamGraser_Shooting</soundCastBeam>
<beamGroundFleckDef>Fleck_BeamBurn</beamGroundFleckDef>
<beamFleckChancePerTick>0.32</beamFleckChancePerTick>
<beamMoteDef>Mote_Wula_Dark_Matter_Beam</beamMoteDef>
<beamEndEffecterDef>GraserBeam_End</beamEndEffecterDef>
<screenShakeFactor>0.35</screenShakeFactor>
<!-- 火焰效果 -->
<beamChanceToStartFire>0.6</beamChanceToStartFire>
<beamChanceToAttachFire>0.6</beamChanceToAttachFire>
<beamFireSizeRange>0.25</beamFireSizeRange>
<!-- 其他射线属性 -->
<beamHitsNeighborCells>true</beamHitsNeighborCells>
<beamLineFleckChanceCurve>
<points>
<li>(0, 0)</li>
<li>(0.65, 0.4)</li>
<li>(1, 0.75)</li>
</points>
</beamLineFleckChanceCurve>
<!-- 攻击目标设置 -->
<targetParams>
<canTargetLocations>true</canTargetLocations>
</targetParams>
<enableExplosion>true</enableExplosion>
<explosionShotInterval>3</explosionShotInterval>
<explosionRadius>0.25</explosionRadius>
<explosionDamageDef>Wula_Dark_Matter_Flame</explosionDamageDef>
<explosionDamage>15</explosionDamage>
<explosionSound>Explosion_Bomb</explosionSound>
<chanceToStartFire>0.6</chanceToStartFire>
</li>
</verbs>
<thingSetMakerTags>
<li>RewardStandardQualitySuper</li>
</thingSetMakerTags>
<comps>
<li Class="WulaFallenEmpire.CompProperties_Switch">
<changeTo>WULA_MW_Lance</changeTo>
<abilityDef>WULA_WULA_MW_Lance_WeaponSwitchAbility</abilityDef>
</li>
</comps>
</ThingDef>
<AbilityDef>
<defName>WULA_WULA_MW_Lance_WeaponSwitchAbility</defName>
<label>武装解放 / 武装闭锁</label>
<description>控制暗物质能源炉的能量输出以决定CMl-28"铳枪"是否可以发射暗物质射流</description>
<cooldownTicksRange>601</cooldownTicksRange>
<iconPath>Wula/UI/Abilities/WULA_WeaponSwitchAbility</iconPath>
<hostile>false</hostile>
<showOnCharacterCard>false</showOnCharacterCard>
<aiCanUse>false</aiCanUse>
<targetRequired>false</targetRequired>
<casterMustBeCapableOfViolence>false</casterMustBeCapableOfViolence>
<statBases>
<!-- 如果不需要限时,可以把这玩意删了-->
<!--<Ability_Duration>10</Ability_Duration>-->
</statBases>
<verbProperties>
<verbClass>Verb_CastAbility</verbClass>
<warmupTime>0</warmupTime>
<drawAimPie>false</drawAimPie>
<requireLineOfSight>false</requireLineOfSight>
<targetable>false</targetable>
<targetParams>
<canTargetSelf>true</canTargetSelf>
</targetParams>
</verbProperties>
<comps>
<li Class="CompProperties_AbilityEffect">
<compClass>WulaFallenEmpire.CompAbilityEffect_Switch</compClass>
</li>
<!-- 如果不需要限时,可以把这玩意删了-->
<!--<li
Class="CompProperties_AbilityGiveHediff">
<compClass>CompAbilityEffect_GiveHediff</compClass>
<hediffDef>WULA_HediffSwitchDuration</hediffDef>
<onlyApplyToSelf>True</onlyApplyToSelf>
</li>-->
</comps>
</AbilityDef>
<!--<HediffDef>
<defName>WULA_HediffSwitchDuration</defName>
<label>变换形态</label>
<description>变换形态的持续时间显示。</description>
<hediffClass>HediffWithComps</hediffClass>
<isBad>false</isBad>
<comps>
<li Class="HediffCompProperties_Disappears">
<showRemainingTime>true</showRemainingTime>
</li>
<li Class="WulaFallenEmpire.HediffCompPropertiesSwitch">
<abilityDef>WeaponSwitchCancel</abilityDef>
</li>
</comps>
</HediffDef>-->
<!-- 萨克森装备 -->
<ThingDef ParentName="BaseWeaponTurret">
<defName>WULA_WM_Panzer_Turret</defName>

View File

@@ -234,8 +234,7 @@
<AlienRace.ThingDef_AlienRace Name="Race_Wula_Machine" ParentName="Wula_Human_Base">
<defName>WulaSpecies</defName>
<label>机械乌拉</label>
<description>诞生于乌拉帝国的机械生命体</description>
<uiIconPath>Wula/Things/WulaSpecies/WULA_Species_Icon</uiIconPath>
<description>诞生于乌拉帝国的机械生命体,是对这个帝国的统治者精妙的仿制。作为机械生命,乌拉帝国合成人比常规的人类要坚韧的多——她们不害怕极端气候、真空和毒气侵袭,也不需要常规意义上的食物。\n\n然而她们也有自己的缺陷——她们移动速度较慢、害怕EMP攻击、不擅长采矿和建造并且如时钟发条的精密的身体难以连续承受高额伤害必须定期返回维修舱检修。</description>
<alienRace>
<!-- 核心设置 -->
@@ -256,7 +255,7 @@
<canLayDown>true</canLayDown>
<validBeds>
<li>WULA_Charging_Station_Synth</li>
<li>Wula_SleepingSpot</li>
<li>SleepingSpot</li>
</validBeds>
<!-- 各种零件定义 -->
<alienPartGenerator Inherit="False">
@@ -621,13 +620,16 @@
<soundImpactDefault>BulletImpact_Metal</soundImpactDefault>
<statBases>
<WorkToMake>7200</WorkToMake>
<MarketValue>12000</MarketValue>
<MarketValue>10000</MarketValue>
<Mass>50</Mass>
<MoveSpeed>4.5</MoveSpeed>
<MoveSpeed>4</MoveSpeed>
<EatingSpeed>1000</EatingSpeed>
<!-- 温度适应性在hediff修改 -->
<ComfyTemperatureMin>-100</ComfyTemperatureMin>
<ComfyTemperatureMax>100</ComfyTemperatureMax>
<ComfyTemperatureMax>250</ComfyTemperatureMax>
<VacuumResistance MayRequire="Ludeon.RimWorld.Odyssey">1</VacuumResistance>
<ToxicResistance>1</ToxicResistance>
<ToxicEnvironmentResistance MayRequire="Ludeon.RimWorld.Biotech">1</ToxicEnvironmentResistance>
<!-- 心灵敏感,很低 -->
<PsychicSensitivity>0.25</PsychicSensitivity>
<!-- 肉量 -->
@@ -639,18 +641,18 @@
<!-- 社交效果,机械乌拉社交的影响很小 -->
<SocialImpact>0.25</SocialImpact>
<!-- 挖矿速度 -->
<MiningSpeed>1</MiningSpeed>
<MiningSpeed>0.25</MiningSpeed>
<!-- 采矿效率 -->
<MiningYield>1</MiningYield>
<MiningYield>0.5</MiningYield>
<!-- 种植速度 -->
<PlantWorkSpeed>1</PlantWorkSpeed>
<!-- 狩猎隐蔽 -->
<HuntingStealth>1</HuntingStealth>
<!-- 建造速度 -->
<ConstructionSpeed>1</ConstructionSpeed>
<ConstructionSpeed>0.25</ConstructionSpeed>
<ConstructSuccessChance>0.5</ConstructSuccessChance>
<!-- 研究速度 -->
<ResearchSpeed>1</ResearchSpeed>
<VacuumResistance MayRequire="Ludeon.RimWorld.Odyssey">1</VacuumResistance>
</statBases>
<race>
@@ -661,8 +663,8 @@
<intelligence>Humanlike</intelligence>
<!-- 血液,不流血 -->
<bloodDef>Filth_MachineBits</bloodDef>
<!-- 基础血量,很高 -->
<baseHealthScale>1.5</baseHealthScale>
<!-- 基础血量 -->
<baseHealthScale>1</baseHealthScale>
<!-- 解剖产物 -->
<leatherDef>Steel</leatherDef>
<specificMeatDef>Steel</specificMeatDef>
@@ -696,9 +698,28 @@
</lifeStageWorkSettings>
<lifeStageAges Inherit="False">
<li>
<def>Wula_Species_Lifestage</def>
<def>HumanlikeBaby</def>
<minAge>0</minAge>
</li>
<li>
<def>HumanlikeChild</def>
<minAge>0.25</minAge>
</li>
<li MayRequire="Ludeon.RimWorld.Biotech">
<def>HumanlikePreTeenager</def>
<minAge>0.5</minAge>
</li>
<li>
<def>HumanlikeTeenager</def>
<minAge>0.75</minAge>
</li>
<li>
<def>HumanlikeAdult</def>
<minAge>1</minAge>
<!-- <soundWounded>Pawn_Mech_Warqueen_Wounded</soundWounded> -->
<soundDeath>Pawn_Mech_Warqueen_Death</soundDeath>
<!-- <soundCall>Pawn_Mech_Warqueen_Call</soundCall> -->
</li>
</lifeStageAges>
<canFlyInVacuum>true</canFlyInVacuum>
</race>
@@ -747,6 +768,13 @@
<li MayRequire="Nals.FacialAnimation">
<compClass>FacialAnimation.FacialAnimationControllerComp</compClass>
</li>
<li Class="WulaFallenEmpire.CompProperties_HediffGiver">
<hediffs>
<li>WULA_NanoRepairHediff</li>
</hediffs>
<addChance>1.0</addChance>
<allowDuplicates>false</allowDuplicates>
</li>
<!--<li>
<compClass>FacialAnimation.EmotionControllerComp</compClass>
</li>-->
@@ -924,7 +952,6 @@
<WorkSpeedGlobal MayRequire="Ludeon.RimWorld.Biotech">0.5</WorkSpeedGlobal>
<ArmorRating_Blunt>0.10</ArmorRating_Blunt>
<ArmorRating_Sharp>0.20</ArmorRating_Sharp>
<MechEnergyLossPerHP>0.66</MechEnergyLossPerHP>
</statBases>
<receivesSignals>true</receivesSignals>
<tradeability>None</tradeability>
@@ -962,6 +989,7 @@
</li>
</tools>
<comps>
<!-- 休眠系统 -->
<li Class="CompProperties_CanBeDormant">
<compClass>CompMechanoid</compClass>
</li>
@@ -970,20 +998,27 @@
<wakeUpCheckRadius>30</wakeUpCheckRadius>
<wakeUpSound>MechanoidsWakeUp</wakeUpSound>
</li>
<!--加上这个组件的机械体会直接跳过原版指挥范围判定,征召必须-->
<li Class="WulaFallenEmpire.CompProperties_GlobalMechCommand" />
<!-- 原版监护者系统,必须加不然绕不开征召 -->
<li MayRequire="Ludeon.RimWorld.Biotech" Class="CompProperties_OverseerSubject">
<needsOverseerEffect></needsOverseerEffect>
<delayUntilFeralCheck>-10</delayUntilFeralCheck>
<feralMtbDays>999999</feralMtbDays>
<feralCascadeRadialDistance>0</feralCascadeRadialDistance>
</li>
<!-- 自动机械族,不需要人工监管 -->
<li Class="WulaFallenEmpire.CompProperties_AutonomousMech">
<enableAutonomousDrafting>true</enableAutonomousDrafting>
<enableAutonomousWork>true</enableAutonomousWork>
<requirePowerForAutonomy>true</requirePowerForAutonomy>
</li>
<!--加上这个组件的机械体会直接跳过原版指挥范围判定,征召必须-->
<li Class="WulaFallenEmpire.CompProperties_GlobalMechCommand" />
<li MayRequire="Ludeon.RimWorld.Biotech" Class="CompProperties_MechRepairable" />
<li MayRequire="Ludeon.RimWorld.Biotech" Class="CompProperties_OverseerSubject">
<needsOverseerEffect></needsOverseerEffect>
<delayUntilFeralCheck>-10</delayUntilFeralCheck>
<feralMtbDays>999999</feralMtbDays>
<feralCascadeRadialDistance>0</feralCascadeRadialDistance>
<li Class="WulaFallenEmpire.CompProperties_HediffGiver">
<hediffs>
<li>WULA_NanoRepairHediff</li>
</hediffs>
<addChance>1.0</addChance>
<allowDuplicates>false</allowDuplicates>
</li>
</comps>
</ThingDef>
@@ -1045,16 +1080,6 @@
</mechEnabledWorkTypes>
</race>
</ThingDef>
<ThingDef ParentName="Mech_WULA_Cat_Base">
<defName>Mech_WULA_Cat_EMP</defName>
<label>CAt-23"闪电猫猫"</label>
<description>乌拉帝国的一种小型自律机械体无需监管者只能执行救火、搬运和清扫任务但是相比起基础型号多配备了一个EMP投掷物可以辅助乌拉帝国军团对抗机械部队。</description>
</ThingDef>
<ThingDef ParentName="Mech_WULA_Cat_Base">
<defName>Mech_WULA_Cat_Fire</defName>
<label>CAt-42"烈焰猫猫"</label>
<description>乌拉帝国的一种小型自律机械体,无需监管者,只能执行救火、搬运和清扫任务,但是相比起基础型号多配备了一个燃烧瓶投掷物,可以点燃靠近阵线的敌军。</description>
</ThingDef>
<ThingDef ParentName="Mech_WULA_Cat_Base">
<defName>Mech_WULA_Cat_Constructor</defName>
<label>CAt-86"猫猫劳工"</label>
@@ -1089,36 +1114,6 @@
<MoveSpeed>4</MoveSpeed>
</statBases>
</ThingDef>
<ThingDef ParentName="Mech_WULA_Cat_Base">
<defName>Mech_WULA_Cat_DM</defName>
<label>CAt-96"暗物质猫猫"</label>
<description>乌拉帝国的一种小型自律机械体,无需监管者,可以执行包括搬运、烹饪、种植收割、清理、急救和灭火一类的简单工作。这种型号的乌拉猫猫内置了一台不稳定暗物质引擎,这使得其无需充电,但是在死亡时会产生巨大的爆炸。</description>
<uiIconPath>Wula/Things/WULA_DM_Cat/WULA_Cat_Thin_south</uiIconPath>
<statBases>
<MoveSpeed>6</MoveSpeed>
<FoodPoisonChance>0.001</FoodPoisonChance>
<MechEnergyUsageFactor>-1</MechEnergyUsageFactor>
</statBases>
<race>
<mechEnabledWorkTypes>
<li>Hauling</li>
<li>Cooking</li>
<li>PlantCutting</li>
<li>Growing</li>
<li>Cleaning</li>
<li>Doctor</li>
<li>Firefighter</li>
</mechEnabledWorkTypes>
</race>
<comps>
<li Class="CompProperties_HunterDrone">
<explosionRadius>30</explosionRadius>
<explosionDamageType>BombSuper</explosionDamageType>
<explosionDamageAmount>550</explosionDamageAmount>
</li>
</comps>
</ThingDef>
@@ -1309,9 +1304,9 @@
<li>
<def>MechanoidFullyFormed</def>
<minAge>0</minAge>
<soundWounded>Pawn_Mech_Warqueen_Wounded</soundWounded>
<!-- <soundWounded>Pawn_Mech_Warqueen_Wounded</soundWounded> -->
<soundDeath>Pawn_Mech_Warqueen_Death</soundDeath>
<soundCall>Pawn_Mech_Warqueen_Call</soundCall>
<!-- <soundCall>Pawn_Mech_Warqueen_Call</soundCall> -->
</li>
</lifeStageAges>
<baseHealthScale>5</baseHealthScale>

View File

@@ -49,7 +49,7 @@
<!-- Do a queued job (支持右键强制高优先级工作) -->
<li Class="ThinkNode_QueuedJob" />
<!-- 更完整的征召战斗行为 -->
<!-- 征召行为:使用独立的条件节点 -->
<li Class="ThinkNode_ConditionalOfPlayerFaction">
<subNodes>
<li Class="ThinkNode_Tagger">
@@ -57,11 +57,6 @@
<subNodes>
<li Class="JobGiver_MoveToStandable" />
<li Class="JobGiver_Orders" />
<!-- 4. 自主战斗工作(独立系统) -->
<li Class="WulaFallenEmpire.JobGiver_AutonomousCombat">
<priority>8</priority>
<expiryInterval>30</expiryInterval>
</li>
</subNodes>
</li>
</subNodes>
@@ -206,36 +201,4 @@
</subNodes>
</thinkRoot>
</ThinkTreeDef>
<!-- 自主机械族专用工作类型 -->
<WorkTypeDef>
<defName>WULA_AutonomousCombat</defName>
<label>自主战斗</label>
<gerundLabel>战斗中</gerundLabel>
<verb>战斗</verb>
<visible>false</visible> <!-- 不在工作面板显示 -->
<naturalPriority>99</naturalPriority>
<workTags>Violent</workTags>
<alwaysStartActive>true</alwaysStartActive>
</WorkTypeDef>
<!-- 自主机械族征召工作 -->
<JobDef>
<defName>WULA_AutonomousWaitCombat</defName>
<driverClass>WulaFallenEmpire.JobDriver_AutonomousWaitCombat</driverClass>
<reportString>standing guard.</reportString>
<playerInterruptible>true</playerInterruptible>
<checkOverrideOnDamage>true</checkOverrideOnDamage>
<canBeForcedByDuty>false</canBeForcedByDuty>
<alwaysShowWeapon>true</alwaysShowWeapon>
<suspendsUntilCombatEnd>false</suspendsUntilCombatEnd>
<ignoreJoyTimeAssignment>true</ignoreJoyTimeAssignment>
<makeTargetPause>false</makeTargetPause>
<modExtensions>
<li Class="WulaFallenEmpire.JobExtension_AutonomousCombat">
<canUseRangedWeapon>true</canUseRangedWeapon>
<autoAttackEnabled>true</autoAttackEnabled>
<attackSearchRadius>35</attackSearchRadius>
</li>
</modExtensions>
</JobDef>
</Defs>

View File

@@ -39,4 +39,57 @@
<WULA_Autonomous_Mode>征召自律机械</WULA_Autonomous_Mode>
<WULA_Autonomous_Mode_Desc>使自律机械进入征召状态</WULA_Autonomous_Mode_Desc>
<WULA_NanoRepair_Active>纳米修复系统:修复中</WULA_NanoRepair_Active>
<WULA_NanoRepair_Inactive>纳米修复系统:待机</WULA_NanoRepair_Inactive>
<WULA_CurrentEnergy>当前能量:{0}</WULA_CurrentEnergy>
<WULA_NoEnergyNeed>无能量需求</WULA_NoEnergyNeed>
<WULA_DamageDetected>检测到损伤</WULA_DamageDetected>
<WULA_NoDamage>无损伤</WULA_NoDamage>
<WULA_RepairCooldown>修复冷却:{0}秒</WULA_RepairCooldown>
<!-- 中文 -->
<WULA_NanoRepair_Disable>禁用纳米修复</WULA_NanoRepair_Disable>
<WULA_NanoRepair_DisableDesc>关闭纳米修复系统以节省能量</WULA_NanoRepair_DisableDesc>
<WULA_NanoRepair_Enable>启用纳米修复</WULA_NanoRepair_Enable>
<WULA_NanoRepair_EnableDesc>开启纳米修复系统以自动修复损伤</WULA_NanoRepair_EnableDesc>
<WULA_NanoRepair_EnabledMsg>{0}的纳米修复系统已启用</WULA_NanoRepair_EnabledMsg>
<WULA_NanoRepair_DisabledMsg>{0}的纳米修复系统已禁用</WULA_NanoRepair_DisabledMsg>
<WULA_NanoRepair_Disabled>纳米修复: 已禁用</WULA_NanoRepair_Disabled>
<!-- 消息文本 -->
<WULA_NoRecyclableMechanoidsNearby>附近没有可回收的乌拉猫猫。</WULA_NoRecyclableMechanoidsNearby>
<WULA_RecyclerStorageFull>地堡已满。</WULA_RecyclerStorageFull>
<WULA_CalledMechanoidsForRecycling>已调用 {0} 个乌拉猫猫回到地堡。</WULA_CalledMechanoidsForRecycling>
<WULA_MechanoidRecycled>已回收 {0}。</WULA_MechanoidRecycled>
<WULA_NoMechanoidsAvailableForConversion>没有可转换的乌拉猫猫。</WULA_NoMechanoidsAvailableForConversion>
<WULA_NotEnoughStoredMechanoids>地堡内的的乌拉猫猫不足。</WULA_NotEnoughStoredMechanoids>
<WULA_ConvertingMechanoids>正在将地堡内的{0}个乌拉猫猫转换为{1}。</WULA_ConvertingMechanoids>
<!-- Gizmo 文本 -->
<WULA_RecycleNearbyMechanoids>呼叫乌拉猫猫进驻</WULA_RecycleNearbyMechanoids>
<WULA_RecycleNearbyMechanoidsDesc>呼叫{0}格内的乌拉猫猫前来报到,以便转换为其他类型的猫猫,或是使用地堡内武器抵御敌军。</WULA_RecycleNearbyMechanoidsDesc>
<WULA_RecycleNearbyMechanoidsDisabled>地堡存储已满。</WULA_RecycleNearbyMechanoidsDisabled>
<WULA_ConvertMechanoids>释放乌拉猫猫</WULA_ConvertMechanoids>
<WULA_ConvertMechanoidsDesc>将地堡内的乌拉猫猫释放出来,它们可以在离开前重新选择装备以转变类型。\n容量{0}/{1}</WULA_ConvertMechanoidsDesc>
<WULA_ConvertMechanoidsDisabled>地堡内没有乌拉猫猫待命。</WULA_ConvertMechanoidsDisabled>
<!-- 检查字符串 -->
<WULA_StoredInfo>容量:{0}/{1}</WULA_StoredInfo>
<WULA_CallSkyfaller>召唤空投建筑</WULA_CallSkyfaller>
<WULA_CallSkyfallerDesc>从乌拉帝国的舰队呼叫对应的建筑空投到此处</WULA_CallSkyfallerDesc>
<WULA_SkyfallerIncoming>空投建筑将在 {0} 后到达</WULA_SkyfallerIncoming>
<WULA_SkyfallerArrivingIn>空投建筑将在 {0} 后到达</WULA_SkyfallerArrivingIn>
<WULA_ReadyToCallSkyfaller>准备召唤空投建筑</WULA_ReadyToCallSkyfaller>
<!-- FlyOver 相关翻译 -->
<WULA_Flyover_BaseBuilder>可空投建筑</WULA_Flyover_BaseBuilder>
<WULA_NoRequiredFlyOver>需要 {0} 在殖民地上空时才可以空投建筑</WULA_NoRequiredFlyOver>
<WULA_RequiresFlyOver>需要 {0} 在殖民地上空时才可以空投建筑</WULA_RequiresFlyOver>
<WULA_MissingFlyOver>需要 {0} 在殖民地上空时才可以空投建筑</WULA_MissingFlyOver>
<!-- 屋顶相关翻译 -->
<WULA_ThickRoofBlocking>厚岩顶阻挡空投</WULA_ThickRoofBlocking>
<WULA_RoofBlocking>屋顶阻挡空投</WULA_RoofBlocking>
<WULA_ThickRoofBlockingDesc>该空投地点顶部有厚岩顶,无法进行空投</WULA_ThickRoofBlockingDesc>
<WULA_RoofBlockingDesc>该空投地点顶部有屋顶,无法进行空投</WULA_RoofBlockingDesc>
<WULA_BlockedByThickRoof>被厚岩顶阻挡</WULA_BlockedByThickRoof>
<WULA_BlockedByRoof>被屋顶阻挡</WULA_BlockedByRoof>
</LanguageData>

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 584 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 189 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 189 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 189 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 312 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.8 KiB

After

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 170 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 182 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 213 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 730 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 176 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 236 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

After

Width:  |  Height:  |  Size: 89 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 839 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 288 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 328 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 319 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 302 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 204 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 170 KiB

View File

@@ -0,0 +1,414 @@
using RimWorld;
using System.Collections.Generic;
using System.Text;
using UnityEngine;
using Verse;
using Verse.AI;
namespace WulaFallenEmpire
{
public class Building_MechanoidRecycler : Building
{
// 翻译键定义
public static class TranslationKeys
{
// 消息文本
public const string NoRecyclableMechanoidsNearby = "WULA_NoRecyclableMechanoidsNearby";
public const string RecyclerStorageFull = "WULA_RecyclerStorageFull";
public const string CalledMechanoidsForRecycling = "WULA_CalledMechanoidsForRecycling";
public const string MechanoidRecycled = "WULA_MechanoidRecycled";
public const string NoMechanoidsAvailableForConversion = "WULA_NoMechanoidsAvailableForConversion";
public const string NotEnoughStoredMechanoids = "WULA_NotEnoughStoredMechanoids";
public const string ConvertingMechanoids = "WULA_ConvertingMechanoids";
// Gizmo 文本
public const string RecycleNearbyMechanoids = "WULA_RecycleNearbyMechanoids";
public const string RecycleNearbyMechanoidsDesc = "WULA_RecycleNearbyMechanoidsDesc";
public const string RecycleNearbyMechanoidsDisabled = "WULA_RecycleNearbyMechanoidsDisabled";
public const string ConvertMechanoids = "WULA_ConvertMechanoids";
public const string ConvertMechanoidsDesc = "WULA_ConvertMechanoidsDesc";
public const string ConvertMechanoidsDisabled = "WULA_ConvertMechanoidsDisabled";
// 检查字符串
public const string StoredInfo = "WULA_StoredInfo";
}
public CompProperties_MechanoidRecycler Props => def.GetCompProperties<CompProperties_MechanoidRecycler>();
// 存储的机械族列表
public List<Pawn> storedMechanoids = new List<Pawn>();
// 生成队列
private Queue<PawnGenerationRequest> spawnQueue = new Queue<PawnGenerationRequest>();
// 是否已经生成初始单位
private bool initialUnitsSpawned = false;
// 是否已经执行过归属权转换
private bool ownershipTransferred = false;
public int StoredCount => storedMechanoids.Count;
public int MaxStorage => Props.maxStorageCapacity;
// 强制归属权转换
private void TransferOwnership()
{
if (ownershipTransferred)
return;
// 获取目标派系(默认为玩家派系)
Faction targetFaction = Props.ownershipFaction ?? Faction.OfPlayer;
if (Faction != targetFaction)
{
Log.Message($"[MechanoidRecycler] Transferring ownership from {Faction?.Name ?? "NULL"} to {targetFaction.Name}");
SetFaction(targetFaction);
}
ownershipTransferred = true;
}
// 生成初始单位
private void SpawnInitialUnits()
{
if (initialUnitsSpawned || Props.initialUnits == null || Props.initialUnits.Count == 0)
return;
foreach (var initialUnit in Props.initialUnits)
{
if (storedMechanoids.Count >= MaxStorage)
break;
// 生成初始机械族
PawnGenerationRequest request = new PawnGenerationRequest(
initialUnit.pawnKindDef,
Faction, // 使用当前建筑的派系
PawnGenerationContext.NonPlayer,
-1,
forceGenerateNewPawn: true,
allowDead: false,
allowDowned: false,
canGeneratePawnRelations: false,
mustBeCapableOfViolence: true
);
Pawn initialMech = PawnGenerator.GeneratePawn(request);
storedMechanoids.Add(initialMech);
Log.Message($"Mechanoid Recycler spawned initial unit: {initialMech.LabelCap} for faction: {Faction.Name}");
}
initialUnitsSpawned = true;
}
public override void SpawnSetup(Map map, bool respawningAfterLoad)
{
base.SpawnSetup(map, respawningAfterLoad);
// 执行归属权转换
if (!respawningAfterLoad)
{
TransferOwnership();
}
// 如果不是从存档加载,生成初始单位
if (!respawningAfterLoad)
{
SpawnInitialUnits();
}
}
// 回收附近机械族
public void RecycleNearbyMechanoids()
{
if (!CanRecycleNow())
return;
List<Pawn> nearbyMechs = FindNearbyRecyclableMechanoids();
if (nearbyMechs.Count == 0)
{
Messages.Message(TranslationKeys.NoRecyclableMechanoidsNearby.Translate(), MessageTypeDefOf.RejectInput);
return;
}
int assignedCount = 0;
foreach (Pawn mech in nearbyMechs)
{
if (StartRecycleJob(mech))
{
assignedCount++;
}
}
Messages.Message(TranslationKeys.CalledMechanoidsForRecycling.Translate(assignedCount), MessageTypeDefOf.PositiveEvent);
}
private bool CanRecycleNow()
{
if (storedMechanoids.Count >= Props.maxStorageCapacity)
{
return false;
}
return true;
}
private List<Pawn> FindNearbyRecyclableMechanoids()
{
List<Pawn> result = new List<Pawn>();
CellRect searchRect = CellRect.CenteredOn(Position, Props.recycleRange);
foreach (Pawn pawn in Map.mapPawns.AllPawnsSpawned)
{
if (searchRect.Contains(pawn.Position) &&
IsRecyclableMechanoid(pawn) &&
!storedMechanoids.Contains(pawn) &&
!IsAlreadyGoingToRecycler(pawn) && // 检查是否已经在前往回收器
pawn.CanReach(this, PathEndMode.InteractionCell, Danger.Some))
{
result.Add(pawn);
}
}
return result;
}
private bool IsRecyclableMechanoid(Pawn pawn)
{
return pawn.RaceProps.IsMechanoid &&
Props.recyclableRaces.Contains(pawn.def) &&
!pawn.Downed &&
pawn.Faction == Faction; // 使用当前建筑的派系
}
// 检查机械族是否已经在前往此回收器
private bool IsAlreadyGoingToRecycler(Pawn mech)
{
// 检查当前工作是否是前往此回收器
Job curJob = mech.CurJob;
if (curJob != null && curJob.def == Props.recycleJobDef && curJob.targetA.Thing == this)
return true;
return false;
}
private bool StartRecycleJob(Pawn mech)
{
// 防止重复分配
if (IsAlreadyGoingToRecycler(mech))
return false;
Job job = JobMaker.MakeJob(Props.recycleJobDef, this);
if (mech.jobs.TryTakeOrderedJob(job))
{
return true;
}
return false;
}
// 机械族进入建筑
public void AcceptMechanoid(Pawn mech)
{
if (storedMechanoids.Contains(mech))
return;
if (storedMechanoids.Count >= Props.maxStorageCapacity)
{
Messages.Message(TranslationKeys.RecyclerStorageFull.Translate(), MessageTypeDefOf.RejectInput);
return;
}
storedMechanoids.Add(mech);
mech.DeSpawn();
Messages.Message(TranslationKeys.MechanoidRecycled.Translate(mech.LabelCap), MessageTypeDefOf.PositiveEvent);
}
protected override void Tick()
{
base.Tick();
// 处理生成队列
if (spawnQueue.Count > 0 && Find.TickManager.TicksGame % 10 == 0)
{
TrySpawnFromQueue();
}
}
// 打开生成界面
public void OpenSpawnInterface()
{
if (storedMechanoids.Count == 0)
{
Messages.Message(TranslationKeys.NoMechanoidsAvailableForConversion.Translate(), MessageTypeDefOf.RejectInput);
return;
}
List<FloatMenuOption> kindOptions = new List<FloatMenuOption>();
foreach (PawnKindDef kindDef in Props.spawnablePawnKinds)
{
kindOptions.Add(new FloatMenuOption(
kindDef.LabelCap,
() => TrySpawnMechanoids(kindDef, 1)
));
}
Find.WindowStack.Add(new FloatMenu(kindOptions));
}
private void TrySpawnMechanoids(PawnKindDef kindDef, int count)
{
if (storedMechanoids.Count < count)
{
Messages.Message(TranslationKeys.NotEnoughStoredMechanoids.Translate(), MessageTypeDefOf.RejectInput);
return;
}
// 消耗存储的机械族并生成
for (int i = 0; i < count; i++)
{
if (storedMechanoids.Count > 0)
{
Pawn consumedMech = storedMechanoids[0];
storedMechanoids.RemoveAt(0);
if (consumedMech.Spawned)
consumedMech.Destroy();
}
PawnGenerationRequest request = new PawnGenerationRequest(
kindDef,
Faction, // 使用当前建筑的派系
PawnGenerationContext.NonPlayer,
-1,
forceGenerateNewPawn: true,
allowDead: false,
allowDowned: false,
canGeneratePawnRelations: false,
mustBeCapableOfViolence: true
);
spawnQueue.Enqueue(request);
}
TrySpawnFromQueue();
Messages.Message(TranslationKeys.ConvertingMechanoids.Translate(count, kindDef.LabelCap), MessageTypeDefOf.PositiveEvent);
}
private void TrySpawnFromQueue()
{
if (spawnQueue.Count == 0)
return;
int spawnCount = Mathf.Min(spawnQueue.Count, 5);
for (int i = 0; i < spawnCount; i++)
{
if (spawnQueue.Count == 0)
break;
PawnGenerationRequest request = spawnQueue.Dequeue();
Pawn newMech = PawnGenerator.GeneratePawn(request);
IntVec3 spawnPos = GetSpawnPosition();
if (spawnPos.IsValid)
{
GenSpawn.Spawn(newMech, spawnPos, Map);
}
else
{
GenSpawn.Spawn(newMech, Position, Map);
}
}
}
private IntVec3 GetSpawnPosition()
{
for (int i = 1; i <= 3; i++)
{
foreach (IntVec3 cell in GenRadial.RadialCellsAround(Position, i, true))
{
if (cell.InBounds(Map) && cell.Walkable(Map) && cell.GetFirstPawn(Map) == null)
return cell;
}
}
return IntVec3.Invalid;
}
// 右键菜单选项
public override IEnumerable<Gizmo> GetGizmos()
{
foreach (Gizmo g in base.GetGizmos())
yield return g;
// 回收附近机械族按钮
Command_Action recycleCommand = new Command_Action
{
defaultLabel = TranslationKeys.RecycleNearbyMechanoids.Translate(),
defaultDesc = TranslationKeys.RecycleNearbyMechanoidsDesc.Translate(Props.recycleRange),
icon = ContentFinder<Texture2D>.Get("Wula/UI/Commands/WULA_RecycleNearbyMechanoids"),
action = RecycleNearbyMechanoids
};
if (!CanRecycleNow())
{
recycleCommand.Disable(TranslationKeys.RecycleNearbyMechanoidsDisabled.Translate());
}
yield return recycleCommand;
// 生成机械族按钮
Command_Action spawnCommand = new Command_Action
{
defaultLabel = TranslationKeys.ConvertMechanoids.Translate(),
defaultDesc = TranslationKeys.ConvertMechanoidsDesc.Translate(storedMechanoids.Count, Props.maxStorageCapacity),
icon = ContentFinder<Texture2D>.Get("Wula/UI/Commands/WULA_ConvertMechanoids"),
action = OpenSpawnInterface
};
if (storedMechanoids.Count == 0)
{
spawnCommand.Disable(TranslationKeys.ConvertMechanoidsDisabled.Translate());
}
yield return spawnCommand;
}
public override string GetInspectString()
{
StringBuilder stringBuilder = new StringBuilder();
string baseString = base.GetInspectString();
if (!string.IsNullOrEmpty(baseString))
{
stringBuilder.Append(baseString);
}
string storedInfo = TranslationKeys.StoredInfo.Translate(storedMechanoids.Count, Props.maxStorageCapacity);
if (stringBuilder.Length > 0)
stringBuilder.AppendLine();
stringBuilder.Append(storedInfo);
return stringBuilder.ToString();
}
public override void ExposeData()
{
base.ExposeData();
Scribe_Collections.Look(ref storedMechanoids, "storedMechanoids", LookMode.Reference);
Scribe_Collections.Look(ref spawnQueue, "spawnQueue", LookMode.Deep);
Scribe_Values.Look(ref initialUnitsSpawned, "initialUnitsSpawned", false);
Scribe_Values.Look(ref ownershipTransferred, "ownershipTransferred", false);
if (Scribe.mode == LoadSaveMode.PostLoadInit)
{
storedMechanoids?.RemoveAll(pawn => pawn == null);
if (spawnQueue == null)
spawnQueue = new Queue<PawnGenerationRequest>();
}
}
}
}

View File

@@ -0,0 +1,42 @@
using System.Collections.Generic;
using RimWorld;
using Verse;
namespace WulaFallenEmpire
{
// 初始单位配置类
public class InitialUnitConfig
{
public PawnKindDef pawnKindDef;
public int count = 1;
}
public class CompProperties_MechanoidRecycler : CompProperties
{
// 回收相关
public List<ThingDef> recyclableRaces = new List<ThingDef>();
public int recycleRange = 15;
public JobDef recycleJobDef;
public int maxStorageCapacity = 5;
// 生成相关
public List<PawnKindDef> spawnablePawnKinds = new List<PawnKindDef>();
// 初始单位配置
public List<InitialUnitConfig> initialUnits = new List<InitialUnitConfig>();
// 归属权配置
public Faction ownershipFaction = null; // 如果为null则默认使用玩家派系
public CompProperties_MechanoidRecycler()
{
compClass = typeof(CompMechanoidRecycler);
}
}
// 空的组件类,用于属性存储
public class CompMechanoidRecycler : ThingComp
{
// 组件逻辑主要在建筑类中实现
}
}

View File

@@ -0,0 +1,36 @@
using RimWorld;
using Verse;
using Verse.AI;
using System.Collections.Generic;
namespace WulaFallenEmpire
{
public class JobDriver_RecycleMechanoid : JobDriver
{
private Building_MechanoidRecycler Recycler => job.targetA.Thing as Building_MechanoidRecycler;
public override bool TryMakePreToilReservations(bool errorOnFailed)
{
return pawn.Reserve(job.targetA, job, 1, -1, null, errorOnFailed);
}
protected override IEnumerable<Toil> MakeNewToils()
{
// 前往回收器
yield return Toils_Goto.GotoThing(TargetIndex.A, PathEndMode.InteractionCell);
// 进入回收器
yield return new Toil
{
initAction = () =>
{
if (Recycler != null)
{
Recycler.AcceptMechanoid(pawn);
}
},
defaultCompleteMode = ToilCompleteMode.Instant
};
}
}
}

Some files were not shown because too many files have changed in this diff Show More