2
This commit is contained in:
Binary file not shown.
@@ -220,7 +220,7 @@
|
||||
<AbilityDef>
|
||||
<defName>WULA_Spawn_BattleShip_Artillery</defName>
|
||||
<label>呼叫全域封锁舰队</label>
|
||||
<description>申请沿指定航道发起全域封锁,一整只乌拉帝国舰队将在大量战机编队的掩护下沿着航道行进,并使用所有的可用武器进行轰炸,以彻底粉碎一切抵抗。</description>
|
||||
<description>申请沿指定航道发起全域封锁,一整只乌拉帝国舰队将在大量战机编队的掩护下沿着航道行进,并使用舰炮进行轰炸,以彻底粉碎一切抵抗。\n\n轰炸的范围几乎覆盖整张地图,炮击会尽可能避免击中殖民地的人员和资产,但是巨大的轰炸范围使得底下的一切都难逃厄运——尽可能不要在自己的殖民地上空呼叫。</description>
|
||||
<iconPath>Wula/UI/Abilities/WULA_Spawn_Fighter_Drone_Laser</iconPath>
|
||||
<cooldownTicksRange>1</cooldownTicksRange>
|
||||
<hotKey>Misc12</hotKey>
|
||||
@@ -238,18 +238,18 @@
|
||||
</targetParams>
|
||||
</verbProperties>
|
||||
<comps>
|
||||
<!-- <li Class="WulaFallenEmpire.CompProperties_AbilityResearchPrereq">
|
||||
<li Class="WulaFallenEmpire.CompProperties_AbilityResearchPrereq">
|
||||
<requiredResearch>WULA_Light_Fighter_Drone_Technology</requiredResearch>
|
||||
</li> -->
|
||||
<!-- <li Class="WulaFallenEmpire.CompProperties_AircraftStrike">
|
||||
<requiredAircraftType>WULA_Fighter_Drone_Entity</requiredAircraftType>
|
||||
<aircraftCooldownTicks>5000</aircraftCooldownTicks>
|
||||
</li>
|
||||
<li Class="WulaFallenEmpire.CompProperties_AircraftStrike">
|
||||
<requiredAircraftType>WULA_MotherShip_Entity</requiredAircraftType>
|
||||
<aircraftCooldownTicks>15000</aircraftCooldownTicks>
|
||||
<aircraftsPerUse>1</aircraftsPerUse>
|
||||
</li> -->
|
||||
</li>
|
||||
<li Class="WulaFallenEmpire.CompProperties_AbilitySpawnFlyOver">
|
||||
<flyOverDef>WULA_MotherShip_Planet_Interdiction</flyOverDef>
|
||||
<flyOverType>GroundStrafing</flyOverType>
|
||||
<flightSpeed>0.005</flightSpeed>
|
||||
<flightSpeed>0.02</flightSpeed>
|
||||
<altitude>20</altitude>
|
||||
<playFlyOverSound>true</playFlyOverSound>
|
||||
<approachType>Perpendicular</approachType>
|
||||
|
||||
@@ -45,6 +45,24 @@
|
||||
</li>
|
||||
</optionEffects>
|
||||
</li>
|
||||
<li>
|
||||
<label>我们要申请支援!</label>
|
||||
<useCustomColors>true</useCustomColors>
|
||||
<normalColor>(255,255,255,255)</normalColor>
|
||||
<hoverColor>(157,201,185,195)</hoverColor>
|
||||
<textColor>(255,255,255,255)</textColor>
|
||||
<textHoverColor>(255,255,255,255)</textHoverColor>
|
||||
<optionEffects>
|
||||
<li>
|
||||
<effects>
|
||||
<li Class="WulaFallenEmpire.Effect_OpenCustomUI">
|
||||
<defName>Wula_UI_Legion_30</defName>
|
||||
</li>
|
||||
<li Class="WulaFallenEmpire.Effect_CloseDialog" />
|
||||
</effects>
|
||||
</li>
|
||||
</optionEffects>
|
||||
</li>
|
||||
<li>
|
||||
<label>再见</label>
|
||||
<useCustomColors>true</useCustomColors>
|
||||
@@ -62,6 +80,344 @@
|
||||
</li>
|
||||
</options>
|
||||
</WulaFallenEmpire.EventDef>
|
||||
<WulaFallenEmpire.EventDef>
|
||||
<defName>Wula_UI_Legion_30</defName>
|
||||
<label>和P.I.A的通讯</label>
|
||||
<portraitPath>Wula/Events/Portraits/WULA_Legion_5</portraitPath>
|
||||
<characterName>「军团」,P.I.A</characterName>
|
||||
<descriptions>
|
||||
<li>好的好的,那么,你们需要什么?</li>
|
||||
<li>嗯嗯,你们遇到什么麻烦了?</li>
|
||||
<li>希望你们没给我捅什么大篓子。</li>
|
||||
</descriptions>
|
||||
<immediateEffects>
|
||||
<li>
|
||||
<effects>
|
||||
<li Class="WulaFallenEmpire.Effect_SetVariable">
|
||||
<name>Wula_Has_Receive_Silver_From_PIA</name>
|
||||
<value>0</value>
|
||||
<type>Int</type>
|
||||
</li>
|
||||
<li Class="WulaFallenEmpire.Effect_SetVariable">
|
||||
<name>Wula_Has_Receive_MechWula_From_PIA</name>
|
||||
<value>0</value>
|
||||
<type>Int</type>
|
||||
</li>
|
||||
<li Class="WulaFallenEmpire.Effect_SetVariable">
|
||||
<name>Wula_Has_Receive_Reinforcement_From_PIA</name>
|
||||
<value>0</value>
|
||||
<type>Int</type>
|
||||
</li>
|
||||
|
||||
<!-- 获取好感 -->
|
||||
<li Class="WulaFallenEmpire.Effect_ClearVariable">
|
||||
<name>Wula_Goodwill_To_PIA</name>
|
||||
</li>
|
||||
<li Class="WulaFallenEmpire.Effect_CheckFactionGoodwill">
|
||||
<factionDef>Wula_PIA_Legion_Faction</factionDef>
|
||||
<variableName>Wula_Goodwill_To_PIA</variableName>
|
||||
</li>
|
||||
</effects>
|
||||
</li>
|
||||
</immediateEffects>
|
||||
<options>
|
||||
<li>
|
||||
<label>我们需要资金支持</label>
|
||||
<disabledReason>应急资金,我好像已经发给你们了?</disabledReason>
|
||||
<hideWhenDisabled>false</hideWhenDisabled>
|
||||
<conditions>
|
||||
<li Class="WulaFallenEmpire.Condition_VariableEquals">
|
||||
<name>Wula_Has_Receive_Silver_From_PIA</name>
|
||||
<value>0</value>
|
||||
</li>
|
||||
</conditions>
|
||||
<optionEffects>
|
||||
<li>
|
||||
<effects>
|
||||
<li Class="WulaFallenEmpire.Effect_OpenCustomUI">
|
||||
<defName>Wula_UI_Legion_31</defName>
|
||||
</li>
|
||||
<li Class="WulaFallenEmpire.Effect_CloseDialog" />
|
||||
</effects>
|
||||
</li>
|
||||
</optionEffects>
|
||||
</li>
|
||||
<li>
|
||||
<label>我们需要一只新的机械乌拉</label>
|
||||
<disabledReason>你们不会自己去造吗?</disabledReason>
|
||||
<hideWhenDisabled>false</hideWhenDisabled>
|
||||
<conditions>
|
||||
<li Class="WulaFallenEmpire.Condition_VariableEquals">
|
||||
<name>Wula_Has_Receive_MechWula_From_PIA</name>
|
||||
<value>0</value>
|
||||
</li>
|
||||
</conditions>
|
||||
<optionEffects>
|
||||
<li>
|
||||
<effects>
|
||||
<li Class="WulaFallenEmpire.Effect_OpenCustomUI">
|
||||
<defName>Wula_UI_Anisia_32</defName>
|
||||
</li>
|
||||
<li Class="WulaFallenEmpire.Effect_CloseDialog" />
|
||||
</effects>
|
||||
</li>
|
||||
</optionEffects>
|
||||
</li>
|
||||
<li>
|
||||
<label>我们需要直接的武力支援</label>
|
||||
<disabledReason>我们的特遣队都在忙,请稍后再试——好吧我骗你们的,你们就不能自己搞两杆枪吗?</disabledReason>
|
||||
<hideWhenDisabled>false</hideWhenDisabled>
|
||||
<conditions>
|
||||
<li Class="WulaFallenEmpire.Condition_VariableEquals">
|
||||
<name>Wula_Has_Receive_Reinforcement_From_PIA</name>
|
||||
<value>0</value>
|
||||
</li>
|
||||
</conditions>
|
||||
<optionEffects>
|
||||
<li>
|
||||
<effects>
|
||||
<li Class="WulaFallenEmpire.Effect_OpenCustomUI">
|
||||
<defName>Wula_UI_Anisia_33</defName>
|
||||
</li>
|
||||
<li Class="WulaFallenEmpire.Effect_CloseDialog" />
|
||||
</effects>
|
||||
</li>
|
||||
</optionEffects>
|
||||
</li>
|
||||
<li>
|
||||
<label>还有其他事情···</label>
|
||||
<useCustomColors>true</useCustomColors>
|
||||
<normalColor>(255,255,255,255)</normalColor>
|
||||
<hoverColor>(157,201,185,195)</hoverColor>
|
||||
<textColor>(255,255,255,255)</textColor>
|
||||
<textHoverColor>(255,255,255,255)</textHoverColor>
|
||||
<optionEffects>
|
||||
<li>
|
||||
<effects>
|
||||
<li Class="WulaFallenEmpire.Effect_OpenCustomUI">
|
||||
<defName>Wula_UI_Legion_1</defName>
|
||||
</li>
|
||||
<li Class="WulaFallenEmpire.Effect_CloseDialog" />
|
||||
</effects>
|
||||
</li>
|
||||
</optionEffects>
|
||||
</li>
|
||||
</options>
|
||||
</WulaFallenEmpire.EventDef>
|
||||
<WulaFallenEmpire.EventDef>
|
||||
<defName>Wula_UI_Legion_31</defName>
|
||||
<label>和P.I.A的通讯</label>
|
||||
<portraitPath>Wula/Events/Portraits/WULA_Legion_5</portraitPath>
|
||||
<characterName>「军团」,P.I.A</characterName>
|
||||
<descriptions>
|
||||
<li>原来是来要钱的嘛···我可以给你们调拨一轮紧急资金,但是这是有限的,并且仅能作殖民地发展之用。\n\n话说回来,你们真的缺钱吗,我怎么有点不信?</li>
|
||||
</descriptions>
|
||||
<immediateEffects>
|
||||
<li>
|
||||
<effects>
|
||||
<!-- 获取好感 -->
|
||||
<li Class="WulaFallenEmpire.Effect_ClearVariable">
|
||||
<name>Wula_Goodwill_To_PIA</name>
|
||||
</li>
|
||||
<li Class="WulaFallenEmpire.Effect_CheckFactionGoodwill">
|
||||
<factionDef>Wula_PIA_Legion_Faction</factionDef>
|
||||
<variableName>Wula_Goodwill_To_PIA</variableName>
|
||||
</li>
|
||||
</effects>
|
||||
</li>
|
||||
</immediateEffects>
|
||||
<options>
|
||||
<li>
|
||||
<label>对的对的,我们是真穷!</label>
|
||||
<disabledReason>殖民地的表现让P.I.A相当不满意,不会为殖民地派出任何额外增援</disabledReason>
|
||||
<hideWhenDisabled>false</hideWhenDisabled>
|
||||
<conditions>
|
||||
<li Class="WulaFallenEmpire.Condition_VariableGreaterThan">
|
||||
<name>Wula_Goodwill_To_PIA</name>
|
||||
<value>-75</value>
|
||||
</li>
|
||||
</conditions>
|
||||
<optionEffects>
|
||||
<li>
|
||||
<effects>
|
||||
<li Class="WulaFallenEmpire.Effect_GiveThing">
|
||||
<thingDef>Silver</thingDef>
|
||||
<count>3000</count>
|
||||
</li>
|
||||
<li Class="WulaFallenEmpire.Effect_ModifyVariable">
|
||||
<name>Wula_Has_Receive_Silver_From_PIA</name>
|
||||
<value>1</value>
|
||||
<operation>Add</operation>
|
||||
</li>
|
||||
<li Class="WulaFallenEmpire.Effect_ShowMessage">
|
||||
<message>P.I.A的紧急资金已经空投(3000银)</message>
|
||||
<messageTypeDef>PositiveEvent</messageTypeDef>
|
||||
</li>
|
||||
<li Class="WulaFallenEmpire.Effect_CloseDialog" />
|
||||
</effects>
|
||||
</li>
|
||||
</optionEffects>
|
||||
</li>
|
||||
<li>
|
||||
<label>还是算了</label>
|
||||
<optionEffects>
|
||||
<li>
|
||||
<effects>
|
||||
<li Class="WulaFallenEmpire.Effect_OpenCustomUI">
|
||||
<defName>Wula_UI_Legion_1</defName>
|
||||
</li>
|
||||
<li Class="WulaFallenEmpire.Effect_CloseDialog" />
|
||||
</effects>
|
||||
</li>
|
||||
</optionEffects>
|
||||
</li>
|
||||
</options>
|
||||
</WulaFallenEmpire.EventDef>
|
||||
<WulaFallenEmpire.EventDef>
|
||||
<defName>Wula_UI_Anisia_32</defName>
|
||||
<label>和P.I.A的通讯</label>
|
||||
<portraitPath>Wula/Events/Portraits/WULA_Legion_2</portraitPath>
|
||||
<characterName>「军团」,P.I.A</characterName>
|
||||
<descriptions>
|
||||
<li>唔,现在我手上确实有一台乌拉帝国合成人还没有分配殖民地,你们需要的话可以划拨给你们。但是下次你们得记得自己造——造合成人的材料是要花项目资金的。</li>
|
||||
</descriptions>
|
||||
<immediateEffects>
|
||||
<li>
|
||||
<effects>
|
||||
<!-- 获取好感 -->
|
||||
<li Class="WulaFallenEmpire.Effect_ClearVariable">
|
||||
<name>Wula_Goodwill_To_PIA</name>
|
||||
</li>
|
||||
<li Class="WulaFallenEmpire.Effect_CheckFactionGoodwill">
|
||||
<factionDef>Wula_PIA_Legion_Faction</factionDef>
|
||||
<variableName>Wula_Goodwill_To_PIA</variableName>
|
||||
</li>
|
||||
</effects>
|
||||
</li>
|
||||
</immediateEffects>
|
||||
<options>
|
||||
<li>
|
||||
<label>我们欣然接受</label>
|
||||
<disabledReason>殖民地的表现让P.I.A相当不满意,不会为殖民地派出任何额外增援</disabledReason>
|
||||
<hideWhenDisabled>false</hideWhenDisabled>
|
||||
<conditions>
|
||||
<li Class="WulaFallenEmpire.Condition_VariableGreaterThan">
|
||||
<name>Wula_Goodwill_To_PIA</name>
|
||||
<value>-75</value>
|
||||
</li>
|
||||
</conditions>
|
||||
<optionEffects>
|
||||
<li>
|
||||
<effects>
|
||||
<li Class="WulaFallenEmpire.Effect_SpawnPawn">
|
||||
<kindDef>Wula_PawnKind</kindDef>
|
||||
<count>1</count>
|
||||
<joinPlayerFaction>true</joinPlayerFaction>
|
||||
<letterLabel>机械乌拉加入殖民地</letterLabel>
|
||||
<letterText>一台乌拉帝国合成人受命加入了殖民地。</letterText>
|
||||
</li>
|
||||
<li Class="WulaFallenEmpire.Effect_ModifyVariable">
|
||||
<name>Wula_Has_Receive_MechWula_From_PIA</name>
|
||||
<value>1</value>
|
||||
<operation>Add</operation>
|
||||
</li>
|
||||
<li Class="WulaFallenEmpire.Effect_CloseDialog" />
|
||||
</effects>
|
||||
</li>
|
||||
</optionEffects>
|
||||
</li>
|
||||
<li>
|
||||
<label>还是算了</label>
|
||||
<optionEffects>
|
||||
<li>
|
||||
<effects>
|
||||
<li Class="WulaFallenEmpire.Effect_OpenCustomUI">
|
||||
<defName>Wula_UI_Legion_1</defName>
|
||||
</li>
|
||||
<li Class="WulaFallenEmpire.Effect_CloseDialog" />
|
||||
</effects>
|
||||
</li>
|
||||
</optionEffects>
|
||||
</li>
|
||||
</options>
|
||||
</WulaFallenEmpire.EventDef>
|
||||
<WulaFallenEmpire.EventDef>
|
||||
<defName>Wula_UI_Anisia_33</defName>
|
||||
<label>和P.I.A的通讯</label>
|
||||
<portraitPath>Wula/Events/Portraits/WULA_Legion_1</portraitPath>
|
||||
<characterName>「军团」,P.I.A</characterName>
|
||||
<descriptions>
|
||||
<li>遇到麻烦了?我可以把手上的特遣队丢下去,你们记得找好掩体。</li>
|
||||
</descriptions>
|
||||
<immediateEffects>
|
||||
<li>
|
||||
<effects>
|
||||
<!-- 获取好感 -->
|
||||
<li Class="WulaFallenEmpire.Effect_ClearVariable">
|
||||
<name>Wula_Goodwill_To_PIA</name>
|
||||
</li>
|
||||
<li Class="WulaFallenEmpire.Effect_CheckFactionGoodwill">
|
||||
<factionDef>Wula_PIA_Legion_Faction</factionDef>
|
||||
<variableName>Wula_Goodwill_To_PIA</variableName>
|
||||
</li>
|
||||
</effects>
|
||||
</li>
|
||||
</immediateEffects>
|
||||
<options>
|
||||
<li>
|
||||
<label>再不来我们要死完啦</label>
|
||||
<disabledReason>殖民地的表现让P.I.A相当不满意,不会为殖民地派出任何额外增援</disabledReason>
|
||||
<hideWhenDisabled>false</hideWhenDisabled>
|
||||
<conditions>
|
||||
<li Class="WulaFallenEmpire.Condition_VariableGreaterThan">
|
||||
<name>Wula_Goodwill_To_PIA</name>
|
||||
<value>-75</value>
|
||||
</li>
|
||||
</conditions>
|
||||
<optionEffects>
|
||||
<li>
|
||||
<effects>
|
||||
<li Class="WulaFallenEmpire.Effect_ModifyVariable">
|
||||
<name>Wula_Has_Receive_Reinforcement_From_PIA</name>
|
||||
<value>1</value>
|
||||
<operation>Add</operation>
|
||||
</li>
|
||||
<li Class="WulaFallenEmpire.Effect_TriggerRaid">
|
||||
<points>6000</points>
|
||||
<faction>Wula_PIA_Legion_Faction</faction>
|
||||
<raidStrategy>ImmediateAttackFriendly</raidStrategy>
|
||||
<raidArrivalMode>EdgeDropGroups</raidArrivalMode>
|
||||
<groupKind>Combat</groupKind>
|
||||
<pawnGroupMakers>
|
||||
<li>
|
||||
<kindDef>Combat</kindDef>
|
||||
<commonality>100</commonality>
|
||||
<options>
|
||||
<Wula_PIA_Heavy_Unit>1</Wula_PIA_Heavy_Unit>
|
||||
</options>
|
||||
</li>
|
||||
</pawnGroupMakers>
|
||||
</li>
|
||||
<li Class="WulaFallenEmpire.Effect_CloseDialog" />
|
||||
</effects>
|
||||
</li>
|
||||
</optionEffects>
|
||||
</li>
|
||||
<li>
|
||||
<label>还是算了</label>
|
||||
<optionEffects>
|
||||
<li>
|
||||
<effects>
|
||||
<li Class="WulaFallenEmpire.Effect_OpenCustomUI">
|
||||
<defName>Wula_UI_Legion_1</defName>
|
||||
</li>
|
||||
<li Class="WulaFallenEmpire.Effect_CloseDialog" />
|
||||
</effects>
|
||||
</li>
|
||||
</optionEffects>
|
||||
</li>
|
||||
</options>
|
||||
</WulaFallenEmpire.EventDef>
|
||||
|
||||
<!-- 乱丢垃圾 -->
|
||||
<WulaFallenEmpire.EventDef>
|
||||
|
||||
@@ -78,7 +78,7 @@
|
||||
<canUseAvoidGrid>false</canUseAvoidGrid>
|
||||
<techLevel>Ultra</techLevel>
|
||||
<earliestRaidDays>999999</earliestRaidDays> <!-- 通过事件发动袭击,不走常规袭击 -->
|
||||
<permanentEnemy>true</permanentEnemy>
|
||||
<permanentEnemy>false</permanentEnemy>
|
||||
<hostileToFactionlessHumanlikes>true</hostileToFactionlessHumanlikes>
|
||||
<maxPawnCostPerTotalPointsCurve>
|
||||
<points>
|
||||
@@ -94,7 +94,7 @@
|
||||
<kindDef>Combat</kindDef>
|
||||
<commonality>30</commonality>
|
||||
<options>
|
||||
<Wula_PawnKind>10</Wula_PawnKind>
|
||||
<Mech_WULA_Cat_Assault>10</Mech_WULA_Cat_Assault>
|
||||
</options>
|
||||
</li>
|
||||
</pawnGroupMakers>
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<Defs>
|
||||
|
||||
<!--
|
||||
这是作为炮塔的武器定义 (ThingDef)
|
||||
它本身是一个不可装备、不可见的物品,仅作为 HediffComp 的数据源。
|
||||
HediffComp_TopTurret 会从这里读取武器的属性 (verb)、射程、冷却时间等,
|
||||
以及炮塔的图形 (graphicData)。
|
||||
-->
|
||||
|
||||
</Defs>
|
||||
@@ -1318,66 +1318,6 @@
|
||||
</recipeUsers>
|
||||
</RecipeDef>
|
||||
|
||||
<!-- 抽魂 -->
|
||||
<HediffDef ParentName="ImplantHediffBase">
|
||||
<defName>WULA_Extract_Soul_Wedge_Hediff</defName>
|
||||
<hediffClass>HediffWithComps</hediffClass>
|
||||
<label>灵魂抽离</label>
|
||||
<description>该生物的灵魂被人为的分离了。</description>
|
||||
<descriptionShort>该生物的灵魂被人为的分离了,在这种状态下,目标不稳定的灵魂每过一段时间都可能导致目标无法行动、陷入昏迷甚至是直接死亡——这种症状没有固定的治愈时间,但是每天都将有一定几率自动消失,届时可再次开展提取手术。</descriptionShort>
|
||||
<!-- <initialSeverity>0.5</initialSeverity> -->
|
||||
<minSeverity>0.01</minSeverity>
|
||||
<maxSeverity>1</maxSeverity>
|
||||
<alwaysShowSeverity>true</alwaysShowSeverity>
|
||||
<isBad>true</isBad>
|
||||
<duplicationAllowed>true</duplicationAllowed>
|
||||
<keepOnBodyPartRestoration>true</keepOnBodyPartRestoration> <!-- true -->
|
||||
<defaultInstallPart>Brain</defaultInstallPart>
|
||||
<comps>
|
||||
<li Class="HediffCompProperties_ChanceToRemove">
|
||||
<intervalTicks>60000</intervalTicks>
|
||||
<chance>0.5</chance>
|
||||
</li>
|
||||
<li Class="HediffCompProperties_RandomizeStageWithInterval">
|
||||
<ticksToRandomize>60000</ticksToRandomize>
|
||||
<notifyMessage>{PAWN_labelShort} 的灵魂状态从 {1} 转变为 {2}.</notifyMessage>
|
||||
</li>
|
||||
<li Class="HediffCompProperties_DisappearsOnDeath"/>
|
||||
</comps>
|
||||
<stages>
|
||||
<li>
|
||||
<label>残缺</label>
|
||||
<minSeverity>0.01</minSeverity>
|
||||
<capMods>
|
||||
<li>
|
||||
<capacity>Consciousness</capacity>
|
||||
<setMax>0.5</setMax>
|
||||
</li>
|
||||
</capMods>
|
||||
</li>
|
||||
<li>
|
||||
<label>破碎</label>
|
||||
<minSeverity>0.3</minSeverity>
|
||||
<capMods>
|
||||
<li>
|
||||
<capacity>Consciousness</capacity>
|
||||
<setMax>0.1</setMax>
|
||||
</li>
|
||||
</capMods>
|
||||
</li>
|
||||
<li>
|
||||
<label>弥散</label>
|
||||
<minSeverity>0.9</minSeverity>
|
||||
<capMods>
|
||||
<li>
|
||||
<capacity>Consciousness</capacity>
|
||||
<setMax>0</setMax>
|
||||
</li>
|
||||
</capMods>
|
||||
</li>
|
||||
</stages>
|
||||
</HediffDef>
|
||||
|
||||
<!-- 关机 -->
|
||||
<RecipeDef ParentName="SurgeryInstallBodyPartArtificialBase">
|
||||
<defName>WULA_Shutdown_Synth</defName>
|
||||
@@ -1466,4 +1406,66 @@
|
||||
</li>
|
||||
</stages>
|
||||
</HediffDef>
|
||||
|
||||
<!-- 特殊-传送器 -->
|
||||
<HediffDef>
|
||||
<defName>WULA_AutoJumpdrive_Hediff</defName>
|
||||
<label>微型传送装置</label>
|
||||
<description>安装在乌拉帝国合成人军团体内的微型跃迁引擎,会在合成人到达指定作战时间或死亡时将其回收</description>
|
||||
<hediffClass>HediffWithComps</hediffClass>
|
||||
<defaultLabelColor>(1,0,0.5)</defaultLabelColor>
|
||||
<maxSeverity>1.0</maxSeverity>
|
||||
<initialSeverity>0.0</initialSeverity>
|
||||
<isBad>true</isBad>
|
||||
<spawnThingOnRemoved>WULA_AutoJumpdrive</spawnThingOnRemoved>
|
||||
<comps>
|
||||
<li Class="HediffCompProperties_DissolveGearOnDeath">
|
||||
<fleck>AcidCloud</fleck>
|
||||
<moteCount>6</moteCount>
|
||||
<moteOffsetRange>0.25~0.75</moteOffsetRange>
|
||||
<filth>Filth_Slime</filth>
|
||||
<sound>DeathAcidifier</sound>
|
||||
<injuryCreatedOnDeath>ChemicalBurn</injuryCreatedOnDeath>
|
||||
<injuryCount>3~6</injuryCount>
|
||||
</li>
|
||||
<li Class="HediffCompProperties_Disappears">
|
||||
<disappearsAfterTicks>10000</disappearsAfterTicks> <!-- 2/3 RimWorld days -->
|
||||
</li>
|
||||
<li Class="WulaFallenEmpire.HediffCompProperties_DisappearWithEffect">
|
||||
<disappearsAfterTicks>15000</disappearsAfterTicks>
|
||||
<showRemainingTime>true</showRemainingTime>
|
||||
<fleckDef>PsycastAreaEffect</fleckDef>
|
||||
<fleckScale>2.5</fleckScale>
|
||||
<dropEquipment>false</dropEquipment>
|
||||
<destroyCorpse>true</destroyCorpse>
|
||||
<playSound>true</playSound>
|
||||
<messageOnDisappear>{0} 通过传送离开了殖民地</messageOnDisappear>
|
||||
</li>
|
||||
</comps>
|
||||
<stages>
|
||||
<li>
|
||||
<label>微弱</label>
|
||||
<minSeverity>0</minSeverity>
|
||||
</li>
|
||||
</stages>
|
||||
</HediffDef>
|
||||
<ThingDef ParentName="BodyPartBase">
|
||||
<defName>WULA_AutoJumpdrive</defName>
|
||||
<label>微型传送装置</label>
|
||||
<description>安装在乌拉帝国合成人军团体内的微型跃迁引擎,会在合成人到达指定作战时间或死亡时将其回收。</description>
|
||||
<statBases>
|
||||
<Mass>0.3</Mass>
|
||||
<WorkToMake>1</WorkToMake>
|
||||
</statBases>
|
||||
<techHediffsTags>
|
||||
<li>WULA_AutoJumpdrive</li>
|
||||
</techHediffsTags>
|
||||
<costList>
|
||||
<ComponentIndustrial>1</ComponentIndustrial>
|
||||
</costList>
|
||||
<recipeMaker>
|
||||
<soundWorking>Recipe_Smith</soundWorking>
|
||||
<recipeUsers Inherit="False" IsNull="True"/>
|
||||
</recipeMaker>
|
||||
</ThingDef>
|
||||
</Defs>
|
||||
|
||||
@@ -277,4 +277,57 @@
|
||||
<damageAmountBase>1</damageAmountBase>
|
||||
</projectile>
|
||||
</ThingDef>
|
||||
|
||||
<!-- 战斗类乌拉 -->
|
||||
<PawnKindDef>
|
||||
<defName>Wula_PIA_Heavy_Unit</defName>
|
||||
<label>军团重装步兵</label>
|
||||
<race>WulaSpecies</race>
|
||||
<lifeStages>
|
||||
<li>
|
||||
<bodyGraphicData>
|
||||
<texPath>Wula/Item/WULA_Species_Icon</texPath>
|
||||
<maskPath>SRA/Pawn/Mechanoid/AllegianceOverlays/None</maskPath>
|
||||
<shaderType>CutoutWithOverlay</shaderType>
|
||||
<graphicClass>Graphic_Multi</graphicClass>
|
||||
<drawSize>1.1</drawSize>
|
||||
<shadowData>
|
||||
<volume>(0.2, 0.3, 0.2)</volume>
|
||||
</shadowData>
|
||||
</bodyGraphicData>
|
||||
</li>
|
||||
</lifeStages>
|
||||
<minGenerationAge>18</minGenerationAge>
|
||||
<maxGenerationAge>20</maxGenerationAge>
|
||||
<combatPower>500</combatPower>
|
||||
<initialWillRange>10~20</initialWillRange>
|
||||
<initialResistanceRange>10~20</initialResistanceRange>
|
||||
<itemQuality>Poor</itemQuality>
|
||||
<isFighter>true</isFighter>
|
||||
<apparelTags>
|
||||
<li>Wula_Armor_Super_Heavy</li>
|
||||
</apparelTags>
|
||||
<weaponTags>
|
||||
<li>Wula_Melee_Weapon_T1</li>
|
||||
<li>Wula_Melee_Weapon_T3</li>
|
||||
<li>Wula_Ranged_Weapon_T2</li>
|
||||
</weaponTags>
|
||||
<abilities>
|
||||
</abilities>
|
||||
<weaponMoney>3000~8000</weaponMoney>
|
||||
<apparelAllowHeadgearChance>1</apparelAllowHeadgearChance>
|
||||
<apparelMoney>999999~999999</apparelMoney>
|
||||
<techHediffsMoney>1000~2000</techHediffsMoney>
|
||||
<techHediffsTags>
|
||||
<li>WULA_AutoJumpdrive</li>
|
||||
</techHediffsTags>
|
||||
|
||||
<backstoryFiltersOverride>
|
||||
<li>
|
||||
<categories>
|
||||
<li>Wula_Backstory_Categories</li>
|
||||
</categories>
|
||||
</li>
|
||||
</backstoryFiltersOverride>
|
||||
</PawnKindDef>
|
||||
</Defs>
|
||||
@@ -719,17 +719,6 @@
|
||||
<alwaysHaulable>false</alwaysHaulable>
|
||||
<altitudeLayer>MetaOverlays</altitudeLayer>
|
||||
<comps>
|
||||
<li Class="WulaFallenEmpire.CompProperties_ShipArtillery">
|
||||
<ticksBetweenAttacks>300</ticksBetweenAttacks>
|
||||
<attackDurationTicks>30</attackDurationTicks>
|
||||
<attackRadius>65</attackRadius>
|
||||
<skyfallerDef>WULA_Firepower_Primary_Cannon_Strafe_Skyfaller</skyfallerDef>
|
||||
<shellsPerVolley>3</shellsPerVolley>
|
||||
|
||||
<!-- 新增派系甄别配置 -->
|
||||
<useFactionDiscrimination>true</useFactionDiscrimination>
|
||||
<useMicroTracking>true</useMicroTracking>
|
||||
</li>
|
||||
<!-- 入场信封信息 -->
|
||||
<li Class="WulaFallenEmpire.CompProperties_SendLetterAfterTicks">
|
||||
<ticksDelay>60</ticksDelay> <!-- 2秒后发送 -->
|
||||
@@ -740,58 +729,13 @@
|
||||
<requireOnMap>true</requireOnMap>
|
||||
<destroyAfterSending>false</destroyAfterSending> <!-- 发送后销毁flyover -->
|
||||
</li>
|
||||
<!-- 伴飞 -->
|
||||
<li Class="WulaFallenEmpire.CompProperties_FlyOverEscort">
|
||||
<escortFlyOverDef>WULA_BattleShip_Planet_Interdiction</escortFlyOverDef>
|
||||
|
||||
<!-- 生成配置 -->
|
||||
<spawnIntervalTicks>0</spawnIntervalTicks> <!-- 5秒 -->
|
||||
<maxEscorts>5</maxEscorts>
|
||||
<spawnCount>1</spawnCount>
|
||||
|
||||
<!-- 位置配置 -->
|
||||
<spawnDistance>0</spawnDistance>
|
||||
<lateralOffset>40</lateralOffset>
|
||||
<verticalOffset>5</verticalOffset>
|
||||
<useRandomOffset>true</useRandomOffset>
|
||||
<minSafeDistanceBetweenEscorts>10</minSafeDistanceBetweenEscorts> <!-- 伴飞物之间的距离 -->
|
||||
<minSafeDistanceFromMain>70</minSafeDistanceFromMain> <!-- 与主飞行物的距离检查 -->
|
||||
|
||||
<!-- 飞行配置 -->
|
||||
<escortSpeedMultiplier>1</escortSpeedMultiplier> <!-- 比主舰稍快 -->
|
||||
<escortAltitudeOffset>10</escortAltitudeOffset> <!-- 比主舰稍高 -->
|
||||
<mirrorMovement>false</mirrorMovement>
|
||||
|
||||
<!-- 行为配置 -->
|
||||
<spawnOnStart>true</spawnOnStart>
|
||||
<destroyWithParent>false</destroyWithParent>
|
||||
<continuousSpawning>true</continuousSpawning>
|
||||
|
||||
<!-- 外观配置 -->
|
||||
<useParentRotation>true</useParentRotation>
|
||||
|
||||
<!-- 缩放区间配置 -->
|
||||
<escortScaleRange>
|
||||
<min>0.4</min>
|
||||
<max>0.6</max>
|
||||
</escortScaleRange>
|
||||
|
||||
<!-- 高度遮罩配置 -->
|
||||
<useHeightMask>true</useHeightMask>
|
||||
<heightMaskAlphaRange>
|
||||
<min>0.6</min>
|
||||
<max>0.8</max>
|
||||
</heightMaskAlphaRange>
|
||||
<heightMaskColor>(0.7,0.85,1.0,1.0)</heightMaskColor>
|
||||
<heightMaskScaleMultiplier>1.3</heightMaskScaleMultiplier>
|
||||
</li>
|
||||
<li Class="WulaFallenEmpire.CompProperties_FlyOverEscort">
|
||||
<escortFlyOverDef>WULA_Striker_Escort</escortFlyOverDef>
|
||||
|
||||
<!-- 生成配置 -->
|
||||
<spawnIntervalTicks>1000</spawnIntervalTicks> <!-- 5秒 -->
|
||||
<maxEscorts>20</maxEscorts>
|
||||
<spawnCount>1</spawnCount>
|
||||
<maxEscorts>30</maxEscorts>
|
||||
<spawnCount>2</spawnCount>
|
||||
|
||||
<!-- 位置配置 -->
|
||||
<spawnDistance>0</spawnDistance>
|
||||
@@ -802,7 +746,7 @@
|
||||
<minSafeDistanceFromMain>70</minSafeDistanceFromMain> <!-- 与主飞行物的距离检查 -->
|
||||
|
||||
<!-- 飞行配置 -->
|
||||
<escortSpeedMultiplier>25</escortSpeedMultiplier> <!-- 比主舰稍快 -->
|
||||
<escortSpeedMultiplier>50</escortSpeedMultiplier> <!-- 比主舰稍快 -->
|
||||
<escortAltitudeOffset>10</escortAltitudeOffset> <!-- 比主舰稍高 -->
|
||||
<mirrorMovement>false</mirrorMovement>
|
||||
|
||||
@@ -830,23 +774,23 @@
|
||||
<heightMaskScaleMultiplier>1.3</heightMaskScaleMultiplier>
|
||||
</li>
|
||||
<li Class="WulaFallenEmpire.CompProperties_FlyOverEscort">
|
||||
<escortFlyOverDef>WULA_Bomber_Escort</escortFlyOverDef>
|
||||
<escortFlyOverDef>WULA_BattleShip_Planet_Interdiction</escortFlyOverDef>
|
||||
|
||||
<!-- 生成配置 -->
|
||||
<spawnIntervalTicks>1350</spawnIntervalTicks> <!-- 5秒 -->
|
||||
<maxEscorts>10</maxEscorts>
|
||||
<maxEscorts>4</maxEscorts>
|
||||
<spawnCount>1</spawnCount>
|
||||
|
||||
<!-- 位置配置 -->
|
||||
<spawnDistance>0</spawnDistance>
|
||||
<lateralOffset>130</lateralOffset>
|
||||
<lateralOffset>60</lateralOffset>
|
||||
<verticalOffset>5</verticalOffset>
|
||||
<useRandomOffset>true</useRandomOffset>
|
||||
<minSafeDistanceBetweenEscorts>10</minSafeDistanceBetweenEscorts> <!-- 伴飞物之间的距离 -->
|
||||
<minSafeDistanceFromMain>70</minSafeDistanceFromMain> <!-- 与主飞行物的距离检查 -->
|
||||
<minSafeDistanceBetweenEscorts>30</minSafeDistanceBetweenEscorts> <!-- 伴飞物之间的距离 -->
|
||||
<minSafeDistanceFromMain>60</minSafeDistanceFromMain> <!-- 与主飞行物的距离检查 -->
|
||||
|
||||
<!-- 飞行配置 -->
|
||||
<escortSpeedMultiplier>10</escortSpeedMultiplier> <!-- 比主舰稍快 -->
|
||||
<escortSpeedMultiplier>30</escortSpeedMultiplier> <!-- 比主舰稍快 -->
|
||||
<escortAltitudeOffset>10</escortAltitudeOffset> <!-- 比主舰稍高 -->
|
||||
<mirrorMovement>false</mirrorMovement>
|
||||
|
||||
@@ -931,108 +875,6 @@
|
||||
<useFactionDiscrimination>true</useFactionDiscrimination>
|
||||
<useMicroTracking>true</useMicroTracking>
|
||||
</li>
|
||||
<li Class="WulaFallenEmpire.CompProperties_ShipArtillery">
|
||||
<ticksBetweenAttacks>300</ticksBetweenAttacks>
|
||||
<attackDurationTicks>30</attackDurationTicks>
|
||||
<attackRadius>25</attackRadius>
|
||||
<skyfallerDef>WULA_Planet_Interdiction_EnergyLance_Skyfaller</skyfallerDef>
|
||||
<shellsPerVolley>1</shellsPerVolley>
|
||||
|
||||
<!-- 新增派系甄别配置 -->
|
||||
<useRandomTargets>true</useRandomTargets>
|
||||
<useFactionDiscrimination>true</useFactionDiscrimination>
|
||||
</li>
|
||||
</comps>
|
||||
</ThingDef>
|
||||
<ThingDef ParentName="SkyfallerBase">
|
||||
<defName>WULA_Planet_Interdiction_EnergyLance_Skyfaller</defName>
|
||||
<label>光矛监视信标</label>
|
||||
<size>(1,1)</size>
|
||||
<graphicData>
|
||||
<texPath>Wula/Weapon/WULA_Weapon_Empty</texPath>
|
||||
<graphicClass>Graphic_Single</graphicClass>
|
||||
<shaderType>TransparentPostLight</shaderType>
|
||||
<drawSize>(1,1)</drawSize>
|
||||
<color>(255,255,255,150)</color>
|
||||
<damageData>
|
||||
<enabled>false</enabled>
|
||||
</damageData>
|
||||
</graphicData>
|
||||
<skyfaller>
|
||||
<movementType>Decelerate</movementType>
|
||||
<shadow>Things/Skyfaller/SkyfallerShadowDropPod</shadow>
|
||||
<shadowSize>(0, 0)</shadowSize>
|
||||
<anticipationSound>DropPod_Fall</anticipationSound>
|
||||
<anticipationSoundTicks>100</anticipationSoundTicks>
|
||||
<!-- <impactSound>Explosion_Vaporize</impactSound> -->
|
||||
<moteSpawnTime>0.05</moteSpawnTime>
|
||||
<motesPerCell>0</motesPerCell>
|
||||
<cameraShake>0</cameraShake>
|
||||
<angleCurve>
|
||||
<points>
|
||||
<li>(0,0)</li>
|
||||
<li>(1, 1)</li>
|
||||
</points>
|
||||
</angleCurve>
|
||||
<spawnThing>WULA_Planet_Interdiction_EnergyLance_Beacon</spawnThing>
|
||||
</skyfaller>
|
||||
</ThingDef>
|
||||
<ThingDef ParentName="BuildingBase">
|
||||
<defName>WULA_Planet_Interdiction_EnergyLance_Beacon</defName>
|
||||
<label>光矛监视信标</label>
|
||||
<description>一枚标定监视区的轰炸信标,进入此处的敌对势力都会被乌拉帝国舰队的舰炮狠狠打击。</description>
|
||||
<uiIconPath>Wula/Building/WULA_WeaponArmor_Productor</uiIconPath>
|
||||
<tickerType>Normal</tickerType>
|
||||
<selectable>false</selectable>
|
||||
<useHitPoints>false</useHitPoints>
|
||||
<size>(1,1)</size>
|
||||
<graphicData>
|
||||
<texPath>Wula/Weapon/WULA_Weapon_Empty</texPath>
|
||||
<graphicClass>Graphic_Single</graphicClass>
|
||||
<shaderType>TransparentPostLight</shaderType>
|
||||
<drawSize>(72,72)</drawSize>
|
||||
<color>(255,255,255,150)</color>
|
||||
<damageData>
|
||||
<enabled>false</enabled>
|
||||
</damageData>
|
||||
</graphicData>
|
||||
<altitudeLayer>Building</altitudeLayer>
|
||||
<passability>Standable</passability>
|
||||
<castEdgeShadows>false</castEdgeShadows>
|
||||
<fillPercent>0.5</fillPercent>
|
||||
<canOverlapZones>false</canOverlapZones>
|
||||
<pathCost>0</pathCost>
|
||||
<hasInteractionCell>false</hasInteractionCell>
|
||||
<rotatable>false</rotatable>
|
||||
<statBases>
|
||||
<WorkToBuild>1</WorkToBuild>
|
||||
<Mass>0</Mass>
|
||||
<Flammability>0</Flammability>
|
||||
</statBases>
|
||||
<resourcesFractionWhenDeconstructed>0</resourcesFractionWhenDeconstructed>
|
||||
<building>
|
||||
<expandHomeArea>false</expandHomeArea>
|
||||
<destroySound>BuildingDestroyed_Metal_Small</destroySound>
|
||||
</building>
|
||||
<comps>
|
||||
<li Class="WulaFallenEmpire.CompProperties_EnergyLanceTurret">
|
||||
<energyLanceDef>WULA_EnergyLance_Surveillance</energyLanceDef>
|
||||
<energyLanceDuration>600</energyLanceDuration>
|
||||
<energyLanceMoveDistance>25</energyLanceMoveDistance>
|
||||
<detectionRange>36</detectionRange>
|
||||
<targetUpdateInterval>30</targetUpdateInterval>
|
||||
<targetSwitchRange>20</targetSwitchRange>
|
||||
<warmupTicks>45</warmupTicks>
|
||||
<cooldownTicks>180</cooldownTicks>
|
||||
</li>
|
||||
<li Class="WulaFallenEmpire.CompProperties_FactionSetter">
|
||||
<!-- <factionDef>Mechanoid</factionDef> 不写默认玩家派系-->
|
||||
<usePlayerFactionIfNull>true</usePlayerFactionIfNull>
|
||||
<overrideExistingFaction>false</overrideExistingFaction>
|
||||
</li>
|
||||
<li Class="CompProperties_Lifespan">
|
||||
<lifespanTicks>600</lifespanTicks>
|
||||
</li>
|
||||
</comps>
|
||||
</ThingDef>
|
||||
|
||||
|
||||
@@ -110,7 +110,7 @@
|
||||
<shaderType>CutoutComplex</shaderType>
|
||||
</graphicData>
|
||||
<weaponTags>
|
||||
<li>Wula_Melee_Weapon_T2</li>
|
||||
<li>Wula_Melee_Weapon_T1</li>
|
||||
</weaponTags>
|
||||
<equippedAngleOffset>-65</equippedAngleOffset>
|
||||
<techLevel>Spacer</techLevel>
|
||||
|
||||
@@ -0,0 +1,279 @@
|
||||
using RimWorld;
|
||||
using Verse;
|
||||
using Verse.Sound;
|
||||
|
||||
namespace WulaFallenEmpire
|
||||
{
|
||||
// HediffCompProperties 定义
|
||||
public class HediffCompProperties_DisappearWithEffect : HediffCompProperties_Disappears
|
||||
{
|
||||
public FleckDef fleckDef; // 要播放的特效
|
||||
public float fleckScale = 1f; // 特效缩放
|
||||
public bool dropEquipment = false; // 是否掉落装备(false = 直接销毁)
|
||||
public bool destroyCorpse = true; // 是否销毁尸体
|
||||
public bool playSound = true; // 是否播放音效
|
||||
public SoundDef soundDef; // 自定义音效
|
||||
|
||||
public HediffCompProperties_DisappearWithEffect()
|
||||
{
|
||||
compClass = typeof(HediffComp_DisappearWithEffect);
|
||||
}
|
||||
}
|
||||
|
||||
// HediffComp 实现
|
||||
public class HediffComp_DisappearWithEffect : HediffComp
|
||||
{
|
||||
public HediffCompProperties_DisappearWithEffect Props =>
|
||||
(HediffCompProperties_DisappearWithEffect)props;
|
||||
|
||||
private int ticksUntilDisappear = -1;
|
||||
private bool triggered = false;
|
||||
|
||||
public override void CompPostMake()
|
||||
{
|
||||
base.CompPostMake();
|
||||
if (Props.disappearsAfterTicks != null)
|
||||
{
|
||||
ticksUntilDisappear = Props.disappearsAfterTicks.RandomInRange;
|
||||
}
|
||||
}
|
||||
|
||||
// 重写 CompPostTick 方法,在到达指定 tick 时触发效果
|
||||
public override void CompPostTick(ref float severityAdjustment)
|
||||
{
|
||||
base.CompPostTick(ref severityAdjustment);
|
||||
|
||||
if (triggered || Pawn == null || Pawn.Destroyed) return;
|
||||
|
||||
// 检查是否到达消失时间
|
||||
if (ticksUntilDisappear > 0)
|
||||
{
|
||||
ticksUntilDisappear--;
|
||||
if (ticksUntilDisappear <= 0)
|
||||
{
|
||||
TriggerDisappearEffect();
|
||||
}
|
||||
}
|
||||
// 如果 pawn 已经死亡,立即触发效果
|
||||
else if (Pawn.Dead)
|
||||
{
|
||||
TriggerDisappearEffect();
|
||||
}
|
||||
}
|
||||
|
||||
// 处理 pawn 死亡事件 - 修复参数问题
|
||||
public override void Notify_PawnDied(DamageInfo? dinfo, Hediff culprit = null)
|
||||
{
|
||||
base.Notify_PawnDied(dinfo, culprit);
|
||||
if (!triggered)
|
||||
{
|
||||
TriggerDisappearEffect();
|
||||
}
|
||||
}
|
||||
|
||||
// 触发消失效果的核心方法
|
||||
private void TriggerDisappearEffect()
|
||||
{
|
||||
if (triggered || Pawn == null || Pawn.Map == null || Pawn.Destroyed)
|
||||
return;
|
||||
|
||||
triggered = true;
|
||||
|
||||
try
|
||||
{
|
||||
// 记录位置
|
||||
IntVec3 position = Pawn.Position;
|
||||
Map map = Pawn.Map;
|
||||
|
||||
// 1. 清除所有装备
|
||||
ClearAllEquipment(map);
|
||||
|
||||
// 2. 播放特效
|
||||
PlayFleckEffect(position, map);
|
||||
|
||||
// 3. 播放音效
|
||||
PlaySoundEffect(position, map);
|
||||
|
||||
// 4. 发送消失消息(如果配置了)
|
||||
SendDisappearMessage();
|
||||
|
||||
// 5. 删除 pawn
|
||||
DestroyPawn();
|
||||
|
||||
Log.Message($"[DisappearWithEffect] Pawn {Pawn.LabelCap} disappeared at {position}");
|
||||
}
|
||||
catch (System.Exception ex)
|
||||
{
|
||||
Log.Error($"[DisappearWithEffect] Error in TriggerDisappearEffect: {ex}");
|
||||
}
|
||||
}
|
||||
|
||||
// 清除所有装备 - 修复参数问题
|
||||
private void ClearAllEquipment(Map map)
|
||||
{
|
||||
if (Pawn.equipment == null && Pawn.apparel == null && Pawn.inventory == null)
|
||||
return;
|
||||
|
||||
// 清除装备(武器)
|
||||
if (Pawn.equipment != null)
|
||||
{
|
||||
var allEquipment = Pawn.equipment.AllEquipmentListForReading.ListFullCopy();
|
||||
foreach (var thing in allEquipment)
|
||||
{
|
||||
if (Props.dropEquipment)
|
||||
{
|
||||
// 掉落装备 - 修复类型转换问题
|
||||
ThingWithComps droppedWeapon;
|
||||
Pawn.equipment.TryDropEquipment(thing, out droppedWeapon, Pawn.Position, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
// 直接销毁装备
|
||||
thing.Destroy(DestroyMode.Vanish);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 清除 apparel(服装)
|
||||
if (Pawn.apparel != null)
|
||||
{
|
||||
var wornApparel = Pawn.apparel.WornApparel.ListFullCopy();
|
||||
foreach (var apparel in wornApparel)
|
||||
{
|
||||
if (Props.dropEquipment)
|
||||
{
|
||||
// 掉落服装
|
||||
Apparel droppedApparel;
|
||||
Pawn.apparel.TryDrop(apparel, out droppedApparel, Pawn.Position, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
// 直接销毁服装
|
||||
apparel.Destroy(DestroyMode.Vanish);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 清除 inventory(物品栏)
|
||||
if (Pawn.inventory != null)
|
||||
{
|
||||
var innerContainer = Pawn.inventory.innerContainer.InnerListForReading.ListFullCopy();
|
||||
foreach (var thing in innerContainer)
|
||||
{
|
||||
if (Props.dropEquipment)
|
||||
{
|
||||
// 掉落物品
|
||||
Thing droppedThing;
|
||||
Pawn.inventory.innerContainer.TryDrop(thing, Pawn.Position, map, ThingPlaceMode.Near, out droppedThing);
|
||||
}
|
||||
else
|
||||
{
|
||||
// 直接销毁物品
|
||||
thing.Destroy(DestroyMode.Vanish);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 播放特效
|
||||
private void PlayFleckEffect(IntVec3 position, Map map)
|
||||
{
|
||||
FleckDef fleckToUse = Props.fleckDef ?? FleckDefOf.PsycastAreaEffect;
|
||||
|
||||
// 在 pawn 位置播放特效
|
||||
FleckMaker.Static(position, map, fleckToUse, Props.fleckScale);
|
||||
|
||||
// 额外在周围格子上播放特效,增强视觉效果
|
||||
for (int i = 0; i < 8; i++)
|
||||
{
|
||||
IntVec3 nearbyCell = position + GenAdj.AdjacentCells[i];
|
||||
if (nearbyCell.InBounds(map))
|
||||
{
|
||||
FleckMaker.Static(nearbyCell, map, fleckToUse, Props.fleckScale * 0.7f);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 播放音效 - 修复音效播放问题
|
||||
private void PlaySoundEffect(IntVec3 position, Map map)
|
||||
{
|
||||
if (!Props.playSound) return;
|
||||
|
||||
SoundDef soundToUse = Props.soundDef ?? SoundDefOf.PsycastPsychicPulse;
|
||||
|
||||
// 使用 SoundStarter 播放音效
|
||||
SoundInfo soundInfo = SoundInfo.InMap(new TargetInfo(position, map));
|
||||
soundToUse.PlayOneShot(soundInfo);
|
||||
}
|
||||
|
||||
// 发送消失消息
|
||||
private void SendDisappearMessage()
|
||||
{
|
||||
var disappearProps = props as HediffCompProperties_Disappears;
|
||||
if (disappearProps?.messageOnDisappear != null)
|
||||
{
|
||||
Messages.Message(disappearProps.messageOnDisappear.Translate(Pawn.LabelShort),
|
||||
Pawn, MessageTypeDefOf.NeutralEvent);
|
||||
}
|
||||
|
||||
if (disappearProps?.letterLabelOnDisappear != null &&
|
||||
disappearProps?.letterTextOnDisappear != null &&
|
||||
Pawn.Faction == Faction.OfPlayer)
|
||||
{
|
||||
Find.LetterStack.ReceiveLetter(
|
||||
disappearProps.letterLabelOnDisappear.Translate(Pawn.LabelShort),
|
||||
disappearProps.letterTextOnDisappear.Translate(Pawn.LabelShort),
|
||||
LetterDefOf.NeutralEvent,
|
||||
new LookTargets(Pawn)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
// 删除 pawn
|
||||
private void DestroyPawn()
|
||||
{
|
||||
if (Pawn.Dead && Props.destroyCorpse)
|
||||
{
|
||||
// 如果是尸体,直接销毁
|
||||
Pawn.Destroy();
|
||||
}
|
||||
else if (!Pawn.Dead)
|
||||
{
|
||||
// 如果是活着的 pawn,先杀死再销毁
|
||||
Pawn.Kill(null, this.parent);
|
||||
if (Props.destroyCorpse)
|
||||
{
|
||||
Pawn.Destroy();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 重写 CompTipStringExtra 显示额外信息
|
||||
public override string CompTipStringExtra
|
||||
{
|
||||
get
|
||||
{
|
||||
if (ticksUntilDisappear > 0 && Props.showRemainingTime)
|
||||
{
|
||||
return "DisappearWithEffect_TimeRemaining".Translate(
|
||||
ticksUntilDisappear.ToStringTicksToPeriod(Props.canUseDecimalsShortForm));
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
// 重写 CompDebugString 用于调试
|
||||
public override string CompDebugString()
|
||||
{
|
||||
return $"Will disappear in: {ticksUntilDisappear} ticks (Triggered: {triggered})";
|
||||
}
|
||||
|
||||
// 序列化数据
|
||||
public override void CompExposeData()
|
||||
{
|
||||
base.CompExposeData();
|
||||
Scribe_Values.Look(ref ticksUntilDisappear, "ticksUntilDisappear", -1);
|
||||
Scribe_Values.Look(ref triggered, "triggered", false);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -160,6 +160,7 @@
|
||||
<Compile Include="HarmonyPatches\WULA_AutonomousMech\Patch_CaravanFormingUtility_AllSendablePawns.cs" />
|
||||
<Compile Include="HarmonyPatches\WULA_AutonomousMech\Patch_Pawn_ThreatDisabled.cs" />
|
||||
<Compile Include="HarmonyPatches\WULA_AutonomousMech\Patch_UncontrolledMechDrawPulse.cs" />
|
||||
<Compile Include="HediffComp\HediffCompProperties_DisappearWithEffect .cs" />
|
||||
<Compile Include="HediffComp\HediffCompProperties_NanoRepair.cs" />
|
||||
<Compile Include="HediffComp\HediffCompProperties_SwitchableHediff.cs" />
|
||||
<Compile Include="HediffComp\WULA_HediffDamgeShield\DRMDamageShield.cs" />
|
||||
|
||||
Reference in New Issue
Block a user