22
@@ -518,7 +518,7 @@
|
|||||||
<_DistortionIntensity>0.5</_DistortionIntensity>
|
<_DistortionIntensity>0.5</_DistortionIntensity>
|
||||||
<_TexAScaleDivisorPerProgress>1.5</_TexAScaleDivisorPerProgress>
|
<_TexAScaleDivisorPerProgress>1.5</_TexAScaleDivisorPerProgress>
|
||||||
</shaderParameters>
|
</shaderParameters>
|
||||||
<drawSize>(4, 4)</drawSize>
|
<drawSize>(5, 5)</drawSize>
|
||||||
</graphicData>
|
</graphicData>
|
||||||
</FleckDef>
|
</FleckDef>
|
||||||
|
|
||||||
|
|||||||
@@ -1118,6 +1118,11 @@
|
|||||||
<value>0</value>
|
<value>0</value>
|
||||||
<type>Int</type>
|
<type>Int</type>
|
||||||
</li>
|
</li>
|
||||||
|
<li Class="WulaFallenEmpire.Effect_SetVariable">
|
||||||
|
<name>WULA_Boss_Super_Fortress_Has_Start</name>
|
||||||
|
<value>0</value>
|
||||||
|
<type>Int</type>
|
||||||
|
</li>
|
||||||
</effects>
|
</effects>
|
||||||
</li>
|
</li>
|
||||||
</immediateEffects>
|
</immediateEffects>
|
||||||
@@ -1142,6 +1147,26 @@
|
|||||||
</li>
|
</li>
|
||||||
</optionEffects>
|
</optionEffects>
|
||||||
</li>
|
</li>
|
||||||
|
<li>
|
||||||
|
<label>···火山炮要塞?</label>
|
||||||
|
<hideWhenDisabled>true</hideWhenDisabled>
|
||||||
|
<conditions>
|
||||||
|
<li Class="WulaFallenEmpire.Condition_VariableNotEqual">
|
||||||
|
<name>WULA_Boss_Super_Fortress_Has_Start</name>
|
||||||
|
<value>1</value>
|
||||||
|
</li>
|
||||||
|
</conditions>
|
||||||
|
<optionEffects>
|
||||||
|
<li>
|
||||||
|
<effects>
|
||||||
|
<li Class="WulaFallenEmpire.Effect_OpenCustomUI">
|
||||||
|
<defName>WULA_Boss_Super_Fortress_UI_1</defName>
|
||||||
|
</li>
|
||||||
|
<li Class="WulaFallenEmpire.Effect_CloseDialog" />
|
||||||
|
</effects>
|
||||||
|
</li>
|
||||||
|
</optionEffects>
|
||||||
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<label>···度假?</label>
|
<label>···度假?</label>
|
||||||
<hideWhenDisabled>true</hideWhenDisabled>
|
<hideWhenDisabled>true</hideWhenDisabled>
|
||||||
|
|||||||
@@ -322,4 +322,28 @@
|
|||||||
</stages>
|
</stages>
|
||||||
<isBad>false</isBad>
|
<isBad>false</isBad>
|
||||||
</HediffDef>
|
</HediffDef>
|
||||||
|
|
||||||
|
<HediffDef>
|
||||||
|
<defName>WULA_Cat_Invisibility</defName>
|
||||||
|
<hediffClass>HediffWithComps</hediffClass>
|
||||||
|
<label>特战小子</label>
|
||||||
|
<description>这只乌拉猫猫经过了特殊改装,无法用肉眼目视到,只有在开枪时会短暂现身。</description>
|
||||||
|
<isBad>false</isBad>
|
||||||
|
<stages>
|
||||||
|
<li>
|
||||||
|
<minSeverity>0.01</minSeverity>
|
||||||
|
<statFactors>
|
||||||
|
<ShootingAccuracyPawn>5000</ShootingAccuracyPawn>
|
||||||
|
</statFactors>
|
||||||
|
</li>
|
||||||
|
</stages>
|
||||||
|
<comps>
|
||||||
|
<li Class="HediffCompProperties_Invisibility">
|
||||||
|
<visibleToPlayer>false</visibleToPlayer>
|
||||||
|
<fadeDurationTicks>60</fadeDurationTicks>
|
||||||
|
<recoverFromDisruptedTicks>90</recoverFromDisruptedTicks>
|
||||||
|
</li>
|
||||||
|
<li Class="HediffCompProperties_DisappearsOnDeath" />
|
||||||
|
</comps>
|
||||||
|
</HediffDef>
|
||||||
</Defs>
|
</Defs>
|
||||||
@@ -121,6 +121,29 @@
|
|||||||
<li>Wula_Assault_Cat_Weapon</li>
|
<li>Wula_Assault_Cat_Weapon</li>
|
||||||
</weaponTags>
|
</weaponTags>
|
||||||
</PawnKindDef>
|
</PawnKindDef>
|
||||||
|
<PawnKindDef ParentName="Mech_WULA_Cat_Soldier_PawnKind">
|
||||||
|
<defName>Mech_WULA_Cat_Cloak_Sniper</defName>
|
||||||
|
<label>CAt-71"特战猫猫"</label>
|
||||||
|
<race>Mech_WULA_Cat_Cloak_Sniper</race>
|
||||||
|
<combatPower>500</combatPower>
|
||||||
|
<defaultFactionType>AncientsHostile</defaultFactionType>
|
||||||
|
<destroyGearOnDrop>false</destroyGearOnDrop>
|
||||||
|
<lifeStages Inherit="False">
|
||||||
|
<li>
|
||||||
|
<bodyGraphicData>
|
||||||
|
<texPath>Wula/Things/WULA_Cloak_Sniper_Cat/WULA_Cat_Thin</texPath>
|
||||||
|
<maskPath>Wula/Things/WULA_Cloak_Sniper_Cat/AllegianceOverlays/None</maskPath>
|
||||||
|
<shaderType>CutoutWithOverlay</shaderType>
|
||||||
|
<graphicClass>Graphic_Multi</graphicClass>
|
||||||
|
<drawSize>1.2</drawSize>
|
||||||
|
</bodyGraphicData>
|
||||||
|
</li>
|
||||||
|
</lifeStages>
|
||||||
|
<weaponTags>
|
||||||
|
<li>WULA_RW_SuperLongRange_RF</li>
|
||||||
|
</weaponTags>
|
||||||
|
<weaponMoney>9999~9999</weaponMoney>
|
||||||
|
</PawnKindDef>
|
||||||
|
|
||||||
<PawnKindDef ParentName="HeavyMechanoidKind">
|
<PawnKindDef ParentName="HeavyMechanoidKind">
|
||||||
<defName>Wula_AI_Heavy_Panzer</defName> <!-- 修改了defName以避免冲突 -->
|
<defName>Wula_AI_Heavy_Panzer</defName> <!-- 修改了defName以避免冲突 -->
|
||||||
|
|||||||
@@ -1,5 +1,47 @@
|
|||||||
<?xml version="1.0" encoding="utf-8" ?>
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
<Defs>
|
<Defs>
|
||||||
|
<!-- <WulaFallenEmpire.EventDef>
|
||||||
|
<defName>WULA_Base_Tex_Quest_UI_1</defName>
|
||||||
|
<label>未知通讯</label>
|
||||||
|
<portraitPath>Wula/Events/Portraits/WULA_Legion_4</portraitPath>
|
||||||
|
<characterName>「军团」,P.I.A</characterName>
|
||||||
|
<descriptions>
|
||||||
|
<li>好吧,我知道你们在想什么。\n\n这样,我可以给你们额外申请一张纳税凭证,你们记得乖乖交税就行。</li>
|
||||||
|
</descriptions>
|
||||||
|
<options>
|
||||||
|
<li>
|
||||||
|
<label>我们已经准备好白银了</label>
|
||||||
|
<optionEffects>
|
||||||
|
<li>
|
||||||
|
<effects>
|
||||||
|
<li Class="WulaFallenEmpire.Effect_SetTimedFlag">
|
||||||
|
<flagName>WULA_Extra_Tex_Quest_Has_Start</flagName>
|
||||||
|
<durationTicks>900000</durationTicks>
|
||||||
|
</li>
|
||||||
|
<li Class="WulaFallenEmpire.Effect_AddQuest">
|
||||||
|
<quest>WULA_Extra_Tex_Quest</quest>
|
||||||
|
</li>
|
||||||
|
<li Class="WulaFallenEmpire.Effect_CloseDialog" />
|
||||||
|
</effects>
|
||||||
|
</li>
|
||||||
|
</optionEffects>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<label>再思考看看···</label>
|
||||||
|
<useCustomColors>false</useCustomColors>
|
||||||
|
<optionEffects>
|
||||||
|
<li>
|
||||||
|
<effects>
|
||||||
|
<li Class="WulaFallenEmpire.Effect_OpenCustomUI">
|
||||||
|
<defName>Wula_UI_Legion_50</defName>
|
||||||
|
</li>
|
||||||
|
<li Class="WulaFallenEmpire.Effect_CloseDialog" />
|
||||||
|
</effects>
|
||||||
|
</li>
|
||||||
|
</optionEffects>
|
||||||
|
</li>
|
||||||
|
</options>
|
||||||
|
</WulaFallenEmpire.EventDef> -->
|
||||||
<!-- 纳税 -->
|
<!-- 纳税 -->
|
||||||
<IncidentDef>
|
<IncidentDef>
|
||||||
<defName>WULA_GiveQuest_Base_Tex</defName>
|
<defName>WULA_GiveQuest_Base_Tex</defName>
|
||||||
@@ -149,7 +191,7 @@
|
|||||||
<nodes>
|
<nodes>
|
||||||
<li Class="WulaFallenEmpire.QuestNode_EventLetter">
|
<li Class="WulaFallenEmpire.QuestNode_EventLetter">
|
||||||
<inSignal>Handle_Outtime</inSignal>
|
<inSignal>Handle_Outtime</inSignal>
|
||||||
<eventDefName>WULA_Base_Tex_Quest_UI_1</eventDefName>
|
<eventDefName>WULA_Base_Tex_Quest_UI_2</eventDefName>
|
||||||
</li>
|
</li>
|
||||||
<li Class="QuestNode_Letter">
|
<li Class="QuestNode_Letter">
|
||||||
<label>未按时纳税</label>
|
<label>未按时纳税</label>
|
||||||
@@ -199,7 +241,7 @@
|
|||||||
</root>
|
</root>
|
||||||
</ThingSetMakerDef>
|
</ThingSetMakerDef>
|
||||||
<WulaFallenEmpire.EventDef>
|
<WulaFallenEmpire.EventDef>
|
||||||
<defName>WULA_Base_Tex_Quest_UI_1</defName>
|
<defName>WULA_Base_Tex_Quest_UI_2</defName>
|
||||||
<label>和P.I.A的通讯</label>
|
<label>和P.I.A的通讯</label>
|
||||||
<portraitPath>Wula/Events/Portraits/WULA_Legion_6</portraitPath>
|
<portraitPath>Wula/Events/Portraits/WULA_Legion_6</portraitPath>
|
||||||
<characterName>「军团」,P.I.A</characterName>
|
<characterName>「军团」,P.I.A</characterName>
|
||||||
|
|||||||
@@ -1,5 +1,56 @@
|
|||||||
<?xml version="1.0" encoding="utf-8" ?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Defs>
|
<Defs>
|
||||||
|
<WulaFallenEmpire.EventDef>
|
||||||
|
<defName>WULA_Boss_Super_Fortress_UI_1</defName>
|
||||||
|
<label>未知通讯</label>
|
||||||
|
<portraitPath>Wula/Events/Portraits/WULA_Legion_1</portraitPath>
|
||||||
|
<characterName>「军团」,P.I.A</characterName>
|
||||||
|
<descriptions>
|
||||||
|
<li>我们的观察员发现,你们附近有一个不处于我们掌控下的巨型要塞——很可能是叛军留下的要塞。没有发现人影,但是防御系统还在工作,我们尝试发射了几轮EMP炮弹,但是很可惜没有击中要塞的干扰器,我们的舰队没办法顶着信号干扰进行进一步轰炸。\n\n拿上武器,把你们最好的战士派过去,扫平那座堡垒。事成之后,我会给你们批复火山炮的申请权限,如何?哦对了,要塞里面应该有这种火山炮,记得小心点,有困难就叫舰队,有引导的情况下轰炸是可以正常进行的。</li>
|
||||||
|
</descriptions>
|
||||||
|
<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_Boss_Super_Fortress_Has_Start</name>
|
||||||
|
<value>1</value>
|
||||||
|
<operation>Add</operation>
|
||||||
|
</li>
|
||||||
|
<li Class="WulaFallenEmpire.Effect_AddQuest">
|
||||||
|
<quest>WULA_Boss_Super_Fortress</quest>
|
||||||
|
</li>
|
||||||
|
<li Class="WulaFallenEmpire.Effect_CloseDialog" />
|
||||||
|
</effects>
|
||||||
|
</li>
|
||||||
|
</optionEffects>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<label>再思考看看···</label>
|
||||||
|
<useCustomColors>false</useCustomColors>
|
||||||
|
<optionEffects>
|
||||||
|
<li>
|
||||||
|
<effects>
|
||||||
|
<li Class="WulaFallenEmpire.Effect_OpenCustomUI">
|
||||||
|
<defName>Wula_UI_Legion_50</defName>
|
||||||
|
</li>
|
||||||
|
<li Class="WulaFallenEmpire.Effect_CloseDialog" />
|
||||||
|
</effects>
|
||||||
|
</li>
|
||||||
|
</optionEffects>
|
||||||
|
</li>
|
||||||
|
</options>
|
||||||
|
</WulaFallenEmpire.EventDef>
|
||||||
<QuestScriptDef>
|
<QuestScriptDef>
|
||||||
<defName>WULA_Boss_Super_Fortress</defName>
|
<defName>WULA_Boss_Super_Fortress</defName>
|
||||||
<rootSelectionWeight>0</rootSelectionWeight>
|
<rootSelectionWeight>0</rootSelectionWeight>
|
||||||
@@ -20,15 +71,17 @@
|
|||||||
</questDescriptionRules>
|
</questDescriptionRules>
|
||||||
<root Class="QuestNode_Sequence">
|
<root Class="QuestNode_Sequence">
|
||||||
<nodes>
|
<nodes>
|
||||||
<li Class="QuestNode_GetMap"/>
|
<li Class="QuestNode_GetMap" />
|
||||||
|
|
||||||
<!-- 产生超链接 -->
|
<!-- 产生超链接 -->
|
||||||
<li Class="WulaFallenEmpire.QuestNode_Hyperlinks">
|
<li Class="WulaFallenEmpire.QuestNode_Hyperlinks">
|
||||||
<thingDefs>
|
<thingDefs>
|
||||||
<li>Wula_Psi_Titan</li>
|
<li>WULA_Cat_Bunker</li>
|
||||||
<li>Wula_AI_Rocket_Panzer</li>
|
<li>Wula_Base_ATGun_Turret</li>
|
||||||
<li>Wula_AI_Heavy_Panzer</li>
|
<li>Wula_Base_Laser_Turret</li>
|
||||||
<li>WULA_Sky_Lock</li>
|
<li>Wula_Base_Mortar_Turret</li>
|
||||||
|
<li>Wula_Disturber_Turret</li>
|
||||||
|
<li>Mech_WULA_Cat_Cloak_Sniper</li>
|
||||||
</thingDefs>
|
</thingDefs>
|
||||||
<factionDefs>
|
<factionDefs>
|
||||||
<li>Wula_PIA_Legion_Faction</li>
|
<li>Wula_PIA_Legion_Faction</li>
|
||||||
@@ -57,33 +110,45 @@
|
|||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li Class="QuestNode_Letter">
|
<li Class="QuestNode_Letter">
|
||||||
<label TKey="LetterLabelShuttleDestroyed">灵能泰坦抵达</label>
|
<label TKey="LetterLabelShuttleDestroyed">已标记巨型要塞</label>
|
||||||
<letterDef>NegativeEvent</letterDef>
|
<letterDef>NegativeEvent</letterDef>
|
||||||
<text TKey="LetterTextShuttleDestroyed">在一艘巡洋舰向失控运输舰狠狠撞击后,碎裂的运输舰如流星般坠入边缘世界地表。不过灵能泰坦随后便在地表上被目击——地点已经标记出来了。</text>
|
<text TKey="LetterTextShuttleDestroyed">乌拉帝国进步派所建立的巨型要塞已经在地图上标记——似乎因为干扰,舰队无法直接攻击这个要塞,但是如果附近有引导员,舰队依然可以正常进入要塞的上方轨道。</text>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<!-- 灵能泰坦被击毁··· -->
|
<!-- 堡垒被破坏··· -->
|
||||||
<li Class="QuestNode_Signal">
|
<li Class="QuestNode_Signal">
|
||||||
<inSignal>PsiTitan.0.Destroyed</inSignal>
|
<inSignal>site.AllEnemiesDefeated</inSignal>
|
||||||
<node Class="QuestNode_Sequence">
|
<node Class="QuestNode_Sequence">
|
||||||
<nodes>
|
<nodes>
|
||||||
<li Class="QuestNode_Letter">
|
|
||||||
<label TKey="LetterLabelShuttleDestroyed">灵能泰坦已停机</label>
|
|
||||||
<letterDef>PositiveEvent</letterDef>
|
|
||||||
<text TKey="LetterTextShuttleDestroyed">灵能泰坦在殖民者的攻击下已经停止运转,其灵能回路核心已经暴露并掉落。\n\n记得回收灵能回路核心,这是建造新的灵能泰坦所需的材料。</text>
|
|
||||||
</li>
|
|
||||||
<li Class="QuestNode_ChangeFactionGoodwill">
|
<li Class="QuestNode_ChangeFactionGoodwill">
|
||||||
<faction>Wula_PIA_Legion_Faction</faction>
|
<faction>Wula_PIA_Legion_Faction</faction>
|
||||||
<change>25</change>
|
<change>25</change>
|
||||||
<reason>WULA_Killed_Psititan</reason>
|
<reason>WULA_Destroyed_Super_Fortress</reason>
|
||||||
</li>
|
</li>
|
||||||
<li Class="WulaFallenEmpire.QuestNode_EventLetter">
|
<li Class="WulaFallenEmpire.QuestNode_EventLetter">
|
||||||
<inSignal>PsiTitan.0.Destroyed</inSignal>
|
<inSignal>site.AllEnemiesDefeated</inSignal>
|
||||||
<eventDefName>WULA_Boss_Sky_Lock_UI_2</eventDefName>
|
<eventDefName>WULA_Boss_Super_Fortress_UI_2</eventDefName>
|
||||||
</li>
|
</li>
|
||||||
<li Class="QuestNode_End">
|
<li Class="QuestNode_ResolveQuestDescription">
|
||||||
<outcome>Success</outcome>
|
<rules>
|
||||||
<sendStandardLetter>true</sendStandardLetter>
|
<rulesStrings>
|
||||||
|
<li>questDescription->任务已经完成,奖励已经发放,现在在乌拉帝国舰队整天蔽日的弹雨落下前,你还有1天的时间撤出巨型要塞。</li>
|
||||||
|
</rulesStrings>
|
||||||
|
</rules>
|
||||||
|
</li>
|
||||||
|
<li Class="QuestNode_Delay">
|
||||||
|
<delayTicks>60000</delayTicks> <!-- 1day -->
|
||||||
|
<node Class="QuestNode_Sequence">
|
||||||
|
<nodes>
|
||||||
|
<li Class="QuestNode_DestroyWorldObject">
|
||||||
|
<worldObject>$site</worldObject>
|
||||||
|
</li>
|
||||||
|
<li Class="QuestNode_End">
|
||||||
|
<outcome>Success</outcome>
|
||||||
|
<sendStandardLetter>true</sendStandardLetter>
|
||||||
|
</li>
|
||||||
|
</nodes>
|
||||||
|
</node>
|
||||||
</li>
|
</li>
|
||||||
</nodes>
|
</nodes>
|
||||||
</node>
|
</node>
|
||||||
@@ -92,8 +157,8 @@
|
|||||||
</root>
|
</root>
|
||||||
</QuestScriptDef>
|
</QuestScriptDef>
|
||||||
<HistoryEventDef>
|
<HistoryEventDef>
|
||||||
<defName>WULA_Killed_Psititan</defName>
|
<defName>WULA_Destroyed_Super_Fortress</defName>
|
||||||
<label>协助处理失控灵能泰坦</label>
|
<label>协助摧毁巨型火山炮要塞</label>
|
||||||
</HistoryEventDef>
|
</HistoryEventDef>
|
||||||
<QuestEditor_Library.CustomMapDataDef>
|
<QuestEditor_Library.CustomMapDataDef>
|
||||||
<defName>WULA_Super_Fortress_Map</defName>
|
<defName>WULA_Super_Fortress_Map</defName>
|
||||||
@@ -102,6 +167,128 @@
|
|||||||
<size>(80, 1, 80)</size>
|
<size>(80, 1, 80)</size>
|
||||||
<isPart>true</isPart>
|
<isPart>true</isPart>
|
||||||
<commonality>0</commonality>
|
<commonality>0</commonality>
|
||||||
|
<pawns>
|
||||||
|
<li>
|
||||||
|
<key>(38, 0, 8)</key>
|
||||||
|
<value>
|
||||||
|
<li>
|
||||||
|
<dataName>WULA_Sniper_Cat</dataName>
|
||||||
|
<kind>Mech_WULA_Cat_Cloak_Sniper</kind>
|
||||||
|
<enableLord>true</enableLord>
|
||||||
|
<lordDataName>WULA_Sniper_Cat_Group</lordDataName>
|
||||||
|
<count>2~3</count>
|
||||||
|
<faction>AncientsHostile</faction>
|
||||||
|
<duty>DefendBase</duty>
|
||||||
|
<spawnType>MapGeneration</spawnType>
|
||||||
|
</li>
|
||||||
|
</value>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<key>(7, 0, 39)</key>
|
||||||
|
<value>
|
||||||
|
<li>
|
||||||
|
<dataName>WULA_Sniper_Cat</dataName>
|
||||||
|
<kind>Mech_WULA_Cat_Cloak_Sniper</kind>
|
||||||
|
<enableLord>true</enableLord>
|
||||||
|
<lordDataName>WULA_Sniper_Cat_Group</lordDataName>
|
||||||
|
<count>2~3</count>
|
||||||
|
<faction>AncientsHostile</faction>
|
||||||
|
<duty>DefendBase</duty>
|
||||||
|
<spawnType>MapGeneration</spawnType>
|
||||||
|
</li>
|
||||||
|
</value>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<key>(39, 0, 71)</key>
|
||||||
|
<value>
|
||||||
|
<li>
|
||||||
|
<dataName>WULA_Sniper_Cat</dataName>
|
||||||
|
<kind>Mech_WULA_Cat_Cloak_Sniper</kind>
|
||||||
|
<enableLord>true</enableLord>
|
||||||
|
<lordDataName>WULA_Sniper_Cat_Group</lordDataName>
|
||||||
|
<count>2~3</count>
|
||||||
|
<faction>AncientsHostile</faction>
|
||||||
|
<duty>DefendBase</duty>
|
||||||
|
<spawnType>MapGeneration</spawnType>
|
||||||
|
</li>
|
||||||
|
</value>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<key>(73, 0, 37)</key>
|
||||||
|
<value>
|
||||||
|
<li>
|
||||||
|
<dataName>WULA_Sniper_Cat</dataName>
|
||||||
|
<kind>Mech_WULA_Cat_Cloak_Sniper</kind>
|
||||||
|
<enableLord>true</enableLord>
|
||||||
|
<lordDataName>WULA_Sniper_Cat_Group</lordDataName>
|
||||||
|
<count>2~3</count>
|
||||||
|
<faction>AncientsHostile</faction>
|
||||||
|
<duty>DefendBase</duty>
|
||||||
|
<spawnType>MapGeneration</spawnType>
|
||||||
|
</li>
|
||||||
|
</value>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<key>(39, 0, 48)</key>
|
||||||
|
<value>
|
||||||
|
<li>
|
||||||
|
<dataName>WULA_Hositile</dataName>
|
||||||
|
<kind>WULA_Hostile_Progressive_Light_Unit</kind>
|
||||||
|
<enableLord>true</enableLord>
|
||||||
|
<lordDataName>WULA_Hostile_Group</lordDataName>
|
||||||
|
<count>3~4</count>
|
||||||
|
<faction>AncientsHostile</faction>
|
||||||
|
<duty>DefendBase</duty>
|
||||||
|
<spawnType>MapGeneration</spawnType>
|
||||||
|
</li>
|
||||||
|
</value>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<key>(31, 0, 39)</key>
|
||||||
|
<value>
|
||||||
|
<li>
|
||||||
|
<dataName>WULA_Hositile</dataName>
|
||||||
|
<kind>WULA_Hostile_Progressive_Light_Unit</kind>
|
||||||
|
<enableLord>true</enableLord>
|
||||||
|
<lordDataName>WULA_Hostile_Group</lordDataName>
|
||||||
|
<count>3~4</count>
|
||||||
|
<faction>AncientsHostile</faction>
|
||||||
|
<duty>DefendBase</duty>
|
||||||
|
<spawnType>MapGeneration</spawnType>
|
||||||
|
</li>
|
||||||
|
</value>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<key>(40, 0, 31)</key>
|
||||||
|
<value>
|
||||||
|
<li>
|
||||||
|
<dataName>WULA_Hositile</dataName>
|
||||||
|
<kind>WULA_Hostile_Progressive_Light_Unit</kind>
|
||||||
|
<enableLord>true</enableLord>
|
||||||
|
<lordDataName>WULA_Hostile_Group</lordDataName>
|
||||||
|
<count>3~4</count>
|
||||||
|
<faction>AncientsHostile</faction>
|
||||||
|
<duty>DefendBase</duty>
|
||||||
|
<spawnType>MapGeneration</spawnType>
|
||||||
|
</li>
|
||||||
|
</value>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<key>(48, 0, 40)</key>
|
||||||
|
<value>
|
||||||
|
<li>
|
||||||
|
<dataName>WULA_Hositile</dataName>
|
||||||
|
<kind>WULA_Hostile_Progressive_Light_Unit</kind>
|
||||||
|
<enableLord>true</enableLord>
|
||||||
|
<lordDataName>WULA_Hostile_Group</lordDataName>
|
||||||
|
<count>3~4</count>
|
||||||
|
<faction>AncientsHostile</faction>
|
||||||
|
<duty>DefendBase</duty>
|
||||||
|
<spawnType>MapGeneration</spawnType>
|
||||||
|
</li>
|
||||||
|
</value>
|
||||||
|
</li>
|
||||||
|
</pawns>
|
||||||
<roofRects>
|
<roofRects>
|
||||||
<li>
|
<li>
|
||||||
<key>RoofRockThick</key>
|
<key>RoofRockThick</key>
|
||||||
@@ -157,8 +344,8 @@
|
|||||||
<li>(14,11,14,12)</li>
|
<li>(14,11,14,12)</li>
|
||||||
<li>(12,15,12,22)</li>
|
<li>(12,15,12,22)</li>
|
||||||
<li>(15,12,22,12)</li>
|
<li>(15,12,22,12)</li>
|
||||||
<li>(16,13,16,14)</li>
|
|
||||||
<li>(13,16,14,16)</li>
|
<li>(13,16,14,16)</li>
|
||||||
|
<li>(16,13,16,14)</li>
|
||||||
<li>(20,13,20,14)</li>
|
<li>(20,13,20,14)</li>
|
||||||
<li>(13,20,14,20)</li>
|
<li>(13,20,14,20)</li>
|
||||||
<li>(10,22,11,22)</li>
|
<li>(10,22,11,22)</li>
|
||||||
@@ -167,18 +354,18 @@
|
|||||||
<li>(10,23,10,26)</li>
|
<li>(10,23,10,26)</li>
|
||||||
<li>(26,11,26,12)</li>
|
<li>(26,11,26,12)</li>
|
||||||
<li>(11,26,12,26)</li>
|
<li>(11,26,12,26)</li>
|
||||||
<li>(15,26,16,26)</li>
|
|
||||||
<li>(26,15,29,15)</li>
|
<li>(26,15,29,15)</li>
|
||||||
|
<li>(15,26,16,26)</li>
|
||||||
<li>(26,16,26,16)</li>
|
<li>(26,16,26,16)</li>
|
||||||
<li>(15,27,15,29)</li>
|
<li>(15,27,15,29)</li>
|
||||||
<li>(11,30,13,30)</li>
|
|
||||||
<li>(30,11,34,11)</li>
|
<li>(30,11,34,11)</li>
|
||||||
|
<li>(11,30,13,30)</li>
|
||||||
<li>(30,12,30,13)</li>
|
<li>(30,12,30,13)</li>
|
||||||
<li>(11,31,11,34)</li>
|
<li>(11,31,11,34)</li>
|
||||||
<li>(31,15,34,15)</li>
|
|
||||||
<li>(15,31,15,34)</li>
|
<li>(15,31,15,34)</li>
|
||||||
<li>(12,34,12,38)</li>
|
<li>(31,15,34,15)</li>
|
||||||
<li>(34,12,38,12)</li>
|
<li>(34,12,38,12)</li>
|
||||||
|
<li>(12,34,12,38)</li>
|
||||||
<li>(16,34,16,34)</li>
|
<li>(16,34,16,34)</li>
|
||||||
<li>(34,16,34,16)</li>
|
<li>(34,16,34,16)</li>
|
||||||
<li>(38,13,38,15)</li>
|
<li>(38,13,38,15)</li>
|
||||||
@@ -191,68 +378,68 @@
|
|||||||
<li>(12,42,12,45)</li>
|
<li>(12,42,12,45)</li>
|
||||||
<li>(45,11,49,11)</li>
|
<li>(45,11,49,11)</li>
|
||||||
<li>(11,45,11,49)</li>
|
<li>(11,45,11,49)</li>
|
||||||
<li>(45,15,48,15)</li>
|
|
||||||
<li>(15,45,16,45)</li>
|
<li>(15,45,16,45)</li>
|
||||||
<li>(41,24,43,24)</li>
|
<li>(45,15,48,15)</li>
|
||||||
<li>(24,41,24,43)</li>
|
<li>(24,41,24,43)</li>
|
||||||
|
<li>(41,24,43,24)</li>
|
||||||
<li>(45,16,45,16)</li>
|
<li>(45,16,45,16)</li>
|
||||||
<li>(15,46,15,48)</li>
|
<li>(15,46,15,48)</li>
|
||||||
<li>(49,12,49,13)</li>
|
|
||||||
<li>(12,49,13,49)</li>
|
<li>(12,49,13,49)</li>
|
||||||
|
<li>(49,12,49,13)</li>
|
||||||
<li>(50,15,53,15)</li>
|
<li>(50,15,53,15)</li>
|
||||||
<li>(15,50,15,53)</li>
|
<li>(15,50,15,53)</li>
|
||||||
<li>(53,10,57,10)</li>
|
|
||||||
<li>(10,53,12,53)</li>
|
<li>(10,53,12,53)</li>
|
||||||
|
<li>(53,10,57,10)</li>
|
||||||
<li>(53,11,53,12)</li>
|
<li>(53,11,53,12)</li>
|
||||||
<li>(10,54,10,57)</li>
|
<li>(10,54,10,57)</li>
|
||||||
<li>(53,16,53,16)</li>
|
|
||||||
<li>(16,53,16,53)</li>
|
<li>(16,53,16,53)</li>
|
||||||
|
<li>(53,16,53,16)</li>
|
||||||
<li>(11,57,12,57)</li>
|
<li>(11,57,12,57)</li>
|
||||||
<li>(57,11,57,12)</li>
|
<li>(57,11,57,12)</li>
|
||||||
<li>(12,58,12,65)</li>
|
|
||||||
<li>(58,12,65,12)</li>
|
<li>(58,12,65,12)</li>
|
||||||
|
<li>(12,58,12,65)</li>
|
||||||
<li>(13,59,14,59)</li>
|
<li>(13,59,14,59)</li>
|
||||||
<li>(59,13,59,14)</li>
|
<li>(59,13,59,14)</li>
|
||||||
<li>(13,63,14,63)</li>
|
<li>(13,63,14,63)</li>
|
||||||
<li>(63,13,63,14)</li>
|
<li>(63,13,63,14)</li>
|
||||||
<li>(36,55,38,55)</li>
|
<li>(36,55,38,55)</li>
|
||||||
<li>(55,36,55,38)</li>
|
<li>(55,36,55,38)</li>
|
||||||
<li>(10,65,11,65)</li>
|
|
||||||
<li>(65,10,69,10)</li>
|
<li>(65,10,69,10)</li>
|
||||||
|
<li>(10,65,11,65)</li>
|
||||||
<li>(65,11,65,11)</li>
|
<li>(65,11,65,11)</li>
|
||||||
<li>(10,66,10,69)</li>
|
<li>(10,66,10,69)</li>
|
||||||
<li>(16,65,16,67)</li>
|
|
||||||
<li>(65,16,67,16)</li>
|
<li>(65,16,67,16)</li>
|
||||||
<li>(65,20,67,20)</li>
|
<li>(16,65,16,67)</li>
|
||||||
<li>(20,65,20,67)</li>
|
<li>(20,65,20,67)</li>
|
||||||
<li>(63,26,64,26)</li>
|
<li>(65,20,67,20)</li>
|
||||||
<li>(26,63,26,64)</li>
|
<li>(26,63,26,64)</li>
|
||||||
|
<li>(63,26,64,26)</li>
|
||||||
<li>(14,67,15,67)</li>
|
<li>(14,67,15,67)</li>
|
||||||
<li>(67,14,69,14)</li>
|
<li>(67,14,69,14)</li>
|
||||||
<li>(41,55,43,55)</li>
|
<li>(41,55,43,55)</li>
|
||||||
<li>(55,41,55,43)</li>
|
<li>(55,41,55,43)</li>
|
||||||
<li>(67,15,67,15)</li>
|
<li>(67,15,67,15)</li>
|
||||||
<li>(67,17,67,19)</li>
|
|
||||||
<li>(17,67,19,67)</li>
|
<li>(17,67,19,67)</li>
|
||||||
|
<li>(67,17,67,19)</li>
|
||||||
<li>(14,68,14,69)</li>
|
<li>(14,68,14,69)</li>
|
||||||
<li>(64,27,64,29)</li>
|
|
||||||
<li>(27,64,29,64)</li>
|
<li>(27,64,29,64)</li>
|
||||||
<li>(69,11,69,13)</li>
|
<li>(64,27,64,29)</li>
|
||||||
<li>(11,69,13,69)</li>
|
<li>(11,69,13,69)</li>
|
||||||
<li>(21,67,22,67)</li>
|
<li>(69,11,69,13)</li>
|
||||||
<li>(67,21,67,22)</li>
|
<li>(67,21,67,22)</li>
|
||||||
|
<li>(21,67,22,67)</li>
|
||||||
<li>(31,64,34,64)</li>
|
<li>(31,64,34,64)</li>
|
||||||
<li>(64,31,64,34)</li>
|
<li>(64,31,64,34)</li>
|
||||||
<li>(22,68,22,69)</li>
|
<li>(22,68,22,69)</li>
|
||||||
<li>(68,22,69,22)</li>
|
<li>(68,22,69,22)</li>
|
||||||
<li>(63,34,63,34)</li>
|
|
||||||
<li>(34,63,34,63)</li>
|
<li>(34,63,34,63)</li>
|
||||||
|
<li>(63,34,63,34)</li>
|
||||||
<li>(26,67,26,69)</li>
|
<li>(26,67,26,69)</li>
|
||||||
<li>(67,26,69,26)</li>
|
<li>(67,26,69,26)</li>
|
||||||
<li>(30,66,30,68)</li>
|
<li>(30,66,30,68)</li>
|
||||||
<li>(66,30,68,30)</li>
|
<li>(66,30,68,30)</li>
|
||||||
<li>(23,69,25,69)</li>
|
|
||||||
<li>(69,23,69,25)</li>
|
<li>(69,23,69,25)</li>
|
||||||
|
<li>(23,69,25,69)</li>
|
||||||
<li>(64,38,67,38)</li>
|
<li>(64,38,67,38)</li>
|
||||||
<li>(38,64,38,67)</li>
|
<li>(38,64,38,67)</li>
|
||||||
<li>(68,31,68,34)</li>
|
<li>(68,31,68,34)</li>
|
||||||
@@ -263,20 +450,20 @@
|
|||||||
<li>(41,64,41,67)</li>
|
<li>(41,64,41,67)</li>
|
||||||
<li>(45,63,45,64)</li>
|
<li>(45,63,45,64)</li>
|
||||||
<li>(63,45,64,45)</li>
|
<li>(63,45,64,45)</li>
|
||||||
<li>(64,46,64,48)</li>
|
|
||||||
<li>(46,64,48,64)</li>
|
<li>(46,64,48,64)</li>
|
||||||
|
<li>(64,46,64,48)</li>
|
||||||
<li>(42,67,45,67)</li>
|
<li>(42,67,45,67)</li>
|
||||||
<li>(67,42,67,45)</li>
|
<li>(67,42,67,45)</li>
|
||||||
<li>(50,64,53,64)</li>
|
|
||||||
<li>(64,50,64,53)</li>
|
<li>(64,50,64,53)</li>
|
||||||
|
<li>(50,64,53,64)</li>
|
||||||
<li>(45,68,49,68)</li>
|
<li>(45,68,49,68)</li>
|
||||||
<li>(68,45,68,49)</li>
|
<li>(68,45,68,49)</li>
|
||||||
<li>(66,49,67,49)</li>
|
<li>(66,49,67,49)</li>
|
||||||
<li>(49,66,49,67)</li>
|
<li>(49,66,49,67)</li>
|
||||||
<li>(63,53,63,53)</li>
|
<li>(63,53,63,53)</li>
|
||||||
<li>(53,63,53,63)</li>
|
<li>(53,63,53,63)</li>
|
||||||
<li>(67,53,69,53)</li>
|
|
||||||
<li>(53,67,53,69)</li>
|
<li>(53,67,53,69)</li>
|
||||||
|
<li>(67,53,69,53)</li>
|
||||||
<li>(69,54,69,57)</li>
|
<li>(69,54,69,57)</li>
|
||||||
<li>(54,69,57,69)</li>
|
<li>(54,69,57,69)</li>
|
||||||
<li>(59,65,59,67)</li>
|
<li>(59,65,59,67)</li>
|
||||||
@@ -285,12 +472,12 @@
|
|||||||
<li>(57,67,58,67)</li>
|
<li>(57,67,58,67)</li>
|
||||||
<li>(67,58,67,58)</li>
|
<li>(67,58,67,58)</li>
|
||||||
<li>(57,68,57,68)</li>
|
<li>(57,68,57,68)</li>
|
||||||
<li>(60,67,65,67)</li>
|
|
||||||
<li>(67,60,67,65)</li>
|
<li>(67,60,67,65)</li>
|
||||||
|
<li>(60,67,65,67)</li>
|
||||||
<li>(63,65,63,66)</li>
|
<li>(63,65,63,66)</li>
|
||||||
<li>(65,63,66,63)</li>
|
<li>(65,63,66,63)</li>
|
||||||
<li>(65,68,65,69)</li>
|
|
||||||
<li>(68,65,69,65)</li>
|
<li>(68,65,69,65)</li>
|
||||||
|
<li>(65,68,65,69)</li>
|
||||||
<li>(66,69,69,69)</li>
|
<li>(66,69,69,69)</li>
|
||||||
<li>(69,66,69,68)</li>
|
<li>(69,66,69,68)</li>
|
||||||
</allRect>
|
</allRect>
|
||||||
@@ -317,8 +504,8 @@
|
|||||||
<li>(28,27,28,28)</li>
|
<li>(28,27,28,28)</li>
|
||||||
<li>(27,28,27,28)</li>
|
<li>(27,28,27,28)</li>
|
||||||
<li>(17,35,17,38)</li>
|
<li>(17,35,17,38)</li>
|
||||||
<li>(36,19,38,19)</li>
|
|
||||||
<li>(19,36,21,36)</li>
|
<li>(19,36,21,36)</li>
|
||||||
|
<li>(36,19,38,19)</li>
|
||||||
<li>(28,30,28,36)</li>
|
<li>(28,30,28,36)</li>
|
||||||
<li>(30,28,36,28)</li>
|
<li>(30,28,36,28)</li>
|
||||||
<li>(36,20,36,21)</li>
|
<li>(36,20,36,21)</li>
|
||||||
@@ -393,25 +580,25 @@
|
|||||||
<li>(60,37,60,38)</li>
|
<li>(60,37,60,38)</li>
|
||||||
<li>(35,62,38,62)</li>
|
<li>(35,62,38,62)</li>
|
||||||
<li>(62,35,62,38)</li>
|
<li>(62,35,62,38)</li>
|
||||||
<li>(57,43,60,43)</li>
|
|
||||||
<li>(43,57,43,60)</li>
|
<li>(43,57,43,60)</li>
|
||||||
<li>(50,52,51,52)</li>
|
<li>(57,43,60,43)</li>
|
||||||
<li>(52,50,57,50)</li>
|
<li>(52,50,57,50)</li>
|
||||||
|
<li>(50,52,51,52)</li>
|
||||||
<li>(57,45,57,49)</li>
|
<li>(57,45,57,49)</li>
|
||||||
<li>(45,57,50,57)</li>
|
<li>(45,57,50,57)</li>
|
||||||
<li>(60,41,60,42)</li>
|
|
||||||
<li>(41,60,42,60)</li>
|
<li>(41,60,42,60)</li>
|
||||||
|
<li>(60,41,60,42)</li>
|
||||||
<li>(50,53,50,56)</li>
|
<li>(50,53,50,56)</li>
|
||||||
<li>(62,41,62,45)</li>
|
|
||||||
<li>(41,62,45,62)</li>
|
<li>(41,62,45,62)</li>
|
||||||
|
<li>(62,41,62,45)</li>
|
||||||
<li>(53,53,57,53)</li>
|
<li>(53,53,57,53)</li>
|
||||||
<li>(45,60,53,60)</li>
|
<li>(45,60,53,60)</li>
|
||||||
<li>(60,45,61,45)</li>
|
<li>(60,45,61,45)</li>
|
||||||
<li>(60,46,60,53)</li>
|
<li>(60,46,60,53)</li>
|
||||||
<li>(53,54,53,57)</li>
|
<li>(53,54,53,57)</li>
|
||||||
<li>(45,61,45,61)</li>
|
<li>(45,61,45,61)</li>
|
||||||
<li>(53,59,53,59)</li>
|
|
||||||
<li>(59,53,59,53)</li>
|
<li>(59,53,59,53)</li>
|
||||||
|
<li>(53,59,53,59)</li>
|
||||||
<li>(61,53,62,53)</li>
|
<li>(61,53,62,53)</li>
|
||||||
<li>(53,61,53,62)</li>
|
<li>(53,61,53,62)</li>
|
||||||
<li>(62,54,62,62)</li>
|
<li>(62,54,62,62)</li>
|
||||||
@@ -604,14 +791,17 @@
|
|||||||
<li>
|
<li>
|
||||||
<def>Wula_DarkEnergy_Generators</def>
|
<def>Wula_DarkEnergy_Generators</def>
|
||||||
<faction>AncientsHostile</faction>
|
<faction>AncientsHostile</faction>
|
||||||
<storedEnergy>1.98768</storedEnergy>
|
<storedEnergy>2</storedEnergy>
|
||||||
<position>(54,0,32)</position>
|
<allRect>
|
||||||
</li>
|
<li>(25,32,25,32)</li>
|
||||||
<li>
|
<li>(32,25,32,25)</li>
|
||||||
<def>Wula_DarkEnergy_Generators</def>
|
<li>(25,47,25,47)</li>
|
||||||
<faction>AncientsHostile</faction>
|
<li>(47,25,47,25)</li>
|
||||||
<storedEnergy>1.98768663</storedEnergy>
|
<li>(32,54,32,54)</li>
|
||||||
<position>(32,0,25)</position>
|
<li>(54,32,54,32)</li>
|
||||||
|
<li>(47,54,47,54)</li>
|
||||||
|
<li>(54,47,54,47)</li>
|
||||||
|
</allRect>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<def>Wula_Disturber_Turret</def>
|
<def>Wula_Disturber_Turret</def>
|
||||||
@@ -623,42 +813,31 @@
|
|||||||
<li>(47,47,47,47)</li>
|
<li>(47,47,47,47)</li>
|
||||||
</allRect>
|
</allRect>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
|
||||||
<def>Wula_DarkEnergy_Generators</def>
|
|
||||||
<faction>AncientsHostile</faction>
|
|
||||||
<storedEnergy>1.98771334</storedEnergy>
|
|
||||||
<position>(32,0,54)</position>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<def>Wula_DarkEnergy_Generators</def>
|
|
||||||
<faction>AncientsHostile</faction>
|
|
||||||
<storedEnergy>1.98772669</storedEnergy>
|
|
||||||
<position>(25,0,47)</position>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<def>Wula_DarkEnergy_Generators</def>
|
|
||||||
<faction>AncientsHostile</faction>
|
|
||||||
<storedEnergy>1.98775172</storedEnergy>
|
|
||||||
<position>(47,0,25)</position>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<def>Wula_DarkEnergy_Generators</def>
|
|
||||||
<faction>AncientsHostile</faction>
|
|
||||||
<storedEnergy>1.98775339</storedEnergy>
|
|
||||||
<position>(47,0,54)</position>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<def>Wula_DarkEnergy_Generators</def>
|
|
||||||
<faction>AncientsHostile</faction>
|
|
||||||
<storedEnergy>1.98776674</storedEnergy>
|
|
||||||
<position>(25,0,32)</position>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<def>Wula_DarkEnergy_Generators</def>
|
|
||||||
<faction>AncientsHostile</faction>
|
|
||||||
<storedEnergy>1.98778009</storedEnergy>
|
|
||||||
<position>(54,0,47)</position>
|
|
||||||
</li>
|
|
||||||
</thingDatas>
|
</thingDatas>
|
||||||
</QuestEditor_Library.CustomMapDataDef>
|
</QuestEditor_Library.CustomMapDataDef>
|
||||||
|
<WulaFallenEmpire.EventDef>
|
||||||
|
<defName>WULA_Boss_Super_Fortress_UI_2</defName>
|
||||||
|
<label>未知通讯</label>
|
||||||
|
<portraitPath>Wula/Events/Portraits/WULA_Legion_1</portraitPath>
|
||||||
|
<characterName>「军团」,P.I.A</characterName>
|
||||||
|
<descriptions>
|
||||||
|
<li>不错,你们确实是我最值得信赖的下属,我还在想这个要塞对你们来说会不会太大了一点。\n\n许可已经给你们准备好了,你们随时可以部署火山炮以打击帝国之敌。现在,把人员从那个堡垒撤出吧,我们的舰队会用舰炮把这里洗个底朝天。</li>
|
||||||
|
</descriptions>
|
||||||
|
<options>
|
||||||
|
<li>
|
||||||
|
<label>明白了</label>
|
||||||
|
<useCustomColors>false</useCustomColors>
|
||||||
|
<optionEffects>
|
||||||
|
<li>
|
||||||
|
<effects>
|
||||||
|
<li Class="WulaFallenEmpire.Effect_FinishResearch">
|
||||||
|
<research>Wula_Disturber_Turret_Technology</research>
|
||||||
|
</li>
|
||||||
|
<li Class="WulaFallenEmpire.Effect_CloseDialog" />
|
||||||
|
</effects>
|
||||||
|
</li>
|
||||||
|
</optionEffects>
|
||||||
|
</li>
|
||||||
|
</options>
|
||||||
|
</WulaFallenEmpire.EventDef>
|
||||||
</Defs>
|
</Defs>
|
||||||
@@ -522,12 +522,15 @@
|
|||||||
<defName>Wula_Disturber_Turret_Technology</defName>
|
<defName>Wula_Disturber_Turret_Technology</defName>
|
||||||
<researchViewX>11.00</researchViewX>
|
<researchViewX>11.00</researchViewX>
|
||||||
<researchViewY>0.90</researchViewY>
|
<researchViewY>0.90</researchViewY>
|
||||||
<label>中型舰炮许可</label>
|
<label>火山炮许可</label>
|
||||||
<description>允许殖民地申请空投四联装舰炮,以毁灭性的等离子风暴连射毁灭一切帝国之敌。</description>
|
<description>允许殖民地申请空投四联装火山炮,以毁灭性的熔岩风暴抹去一切帝国之敌。\n\n这种武备对殖民地来说是过剩的,并不是所有的殖民地都有能力拿到这个许可···</description>
|
||||||
<baseCost>4500</baseCost>
|
<baseCost>4500</baseCost>
|
||||||
<prerequisites>
|
<techprintCount>9999</techprintCount>
|
||||||
<li>WULA_Turret_Base_Mortar_Technology</li>
|
<techprintCommonality>0</techprintCommonality>
|
||||||
</prerequisites>
|
<techprintMarketValue>0</techprintMarketValue>
|
||||||
|
<heldByFactionCategoryTags>
|
||||||
|
<li>Wula_PIA_Legion_Faction</li>
|
||||||
|
</heldByFactionCategoryTags>
|
||||||
</ResearchProjectDef>
|
</ResearchProjectDef>
|
||||||
|
|
||||||
<!-- 植物 -->
|
<!-- 植物 -->
|
||||||
|
|||||||
@@ -468,8 +468,7 @@
|
|||||||
<tickerType>Normal</tickerType>
|
<tickerType>Normal</tickerType>
|
||||||
<tradeability>None</tradeability>
|
<tradeability>None</tradeability>
|
||||||
<descriptionHyperlinks>
|
<descriptionHyperlinks>
|
||||||
<ThingDef>Wula_Mech_Mobile_Factory</ThingDef>
|
<ThingDef>Wula_Psi_Titan</ThingDef>
|
||||||
<ThingDef>WULA_Mech_Flyer</ThingDef>
|
|
||||||
</descriptionHyperlinks>
|
</descriptionHyperlinks>
|
||||||
<thingCategories Inherit="False">
|
<thingCategories Inherit="False">
|
||||||
<li>BuildingsMisc</li>
|
<li>BuildingsMisc</li>
|
||||||
|
|||||||
@@ -486,13 +486,13 @@
|
|||||||
<maxTurrets>6</maxTurrets>
|
<maxTurrets>6</maxTurrets>
|
||||||
<turretSpacing>1.5</turretSpacing>
|
<turretSpacing>1.5</turretSpacing>
|
||||||
</li>
|
</li>
|
||||||
<li Class="WulaFallenEmpire.CompProperties_TransformAtFullCapacity">
|
<!-- <li Class="WulaFallenEmpire.CompProperties_TransformAtFullCapacity">
|
||||||
<targetPawnKind>WULA_Mobile_Bunker</targetPawnKind>
|
<targetPawnKind>WULA_Mobile_Bunker</targetPawnKind>
|
||||||
<requiredCapacity>6</requiredCapacity>
|
<requiredCapacity>6</requiredCapacity>
|
||||||
<gizmoLabel>转换为BUk-1"地堡猫猫"</gizmoLabel>
|
<gizmoLabel>转换为BUk-1"地堡猫猫"</gizmoLabel>
|
||||||
<gizmoDesc>让地堡中的两只乌拉猫猫继续操纵地堡中的机枪,剩下的乌拉猫猫抬着地堡移动——虽然很难相信但是事实就是这样的。</gizmoDesc>
|
<gizmoDesc>让地堡中的两只乌拉猫猫继续操纵地堡中的机枪,剩下的乌拉猫猫抬着地堡移动——虽然很难相信但是事实就是这样的。</gizmoDesc>
|
||||||
<gizmoIconPath>Wula/UI/Commands/WULA_BunkerCat</gizmoIconPath>
|
<gizmoIconPath>Wula/UI/Commands/WULA_BunkerCat</gizmoIconPath>
|
||||||
</li>
|
</li> -->
|
||||||
<li Class="WulaFallenEmpire.CompProperties_PathCostUpdater">
|
<li Class="WulaFallenEmpire.CompProperties_PathCostUpdater">
|
||||||
<adaptiveExpansion>true</adaptiveExpansion>
|
<adaptiveExpansion>true</adaptiveExpansion>
|
||||||
</li>
|
</li>
|
||||||
@@ -1641,7 +1641,7 @@
|
|||||||
</li>
|
</li>
|
||||||
<li Class="CompProperties_Power">
|
<li Class="CompProperties_Power">
|
||||||
<compClass>CompPowerTrader</compClass>
|
<compClass>CompPowerTrader</compClass>
|
||||||
<basePowerConsumption>300</basePowerConsumption> <!-- 电力消耗较低 -->
|
<basePowerConsumption>1500</basePowerConsumption> <!-- 电力消耗较低 -->
|
||||||
</li>
|
</li>
|
||||||
<li Class="CompProperties_Glower">
|
<li Class="CompProperties_Glower">
|
||||||
<glowRadius>6</glowRadius>
|
<glowRadius>6</glowRadius>
|
||||||
|
|||||||
@@ -2011,7 +2011,7 @@
|
|||||||
<li>(1, -31)</li>
|
<li>(1, -31)</li>
|
||||||
</points>
|
</points>
|
||||||
</angleCurve>
|
</angleCurve>
|
||||||
<explosionRadius>35</explosionRadius>
|
<explosionRadius>25</explosionRadius>
|
||||||
<explosionDamage>WULA_DarkMatterBomb</explosionDamage>
|
<explosionDamage>WULA_DarkMatterBomb</explosionDamage>
|
||||||
<explosionDamageFactor>1</explosionDamageFactor>
|
<explosionDamageFactor>1</explosionDamageFactor>
|
||||||
<spawnThing>CraterLarge</spawnThing>
|
<spawnThing>CraterLarge</spawnThing>
|
||||||
|
|||||||
@@ -1173,6 +1173,92 @@
|
|||||||
</li>
|
</li>
|
||||||
</comps>
|
</comps>
|
||||||
</AbilityDef>
|
</AbilityDef>
|
||||||
|
<ThingDef ParentName="WULA_ExperienceCore_Weapon_Ranged">
|
||||||
|
<defName>WULA_RW_SuperLongRange_RF</defName>
|
||||||
|
<label>SRr-3"鸣石"</label>
|
||||||
|
<description>乌拉帝国的重型磁轨狙击枪,射程比制式磁轨狙击枪远得多,虽然需要一些时间瞄准但是拥有堪比战车炮的破坏力。这种现役武器不会轻易下发给边缘世界这样的边陲星区······</description>
|
||||||
|
<techLevel>Spacer</techLevel>
|
||||||
|
<graphicData>
|
||||||
|
<texPath>Wula/Weapon/WULA_RW_SuperLongRange_RF/WULA_RW_SuperLongRange_RF</texPath>
|
||||||
|
<graphicClass>Graphic_Single</graphicClass>
|
||||||
|
<drawSize>1.5</drawSize>
|
||||||
|
</graphicData>
|
||||||
|
<!-- <uiIconScale>0.85</uiIconScale> -->
|
||||||
|
<soundInteract>Interact_Rifle</soundInteract>
|
||||||
|
<weaponTags Inherit="False">
|
||||||
|
<li>WULA_RW_SuperLongRange_RF</li>
|
||||||
|
</weaponTags>
|
||||||
|
<statBases>
|
||||||
|
<WorkToMake>1200</WorkToMake>
|
||||||
|
<Mass>3.5</Mass>
|
||||||
|
<AccuracyTouch>0.3</AccuracyTouch>
|
||||||
|
<AccuracyShort>0.7</AccuracyShort>
|
||||||
|
<AccuracyMedium>1</AccuracyMedium>
|
||||||
|
<AccuracyLong>1</AccuracyLong>
|
||||||
|
<RangedWeapon_Cooldown>1.5</RangedWeapon_Cooldown>
|
||||||
|
</statBases>
|
||||||
|
<costList Inherit="False">
|
||||||
|
<WULA_Alloy>300</WULA_Alloy>
|
||||||
|
<WULA_Charge_Cube>25</WULA_Charge_Cube>
|
||||||
|
<WULA_Dark_Matter_Item>12</WULA_Dark_Matter_Item>
|
||||||
|
</costList>
|
||||||
|
<verbs>
|
||||||
|
<li>
|
||||||
|
<verbClass>WulaFallenEmpire.Verb_ShootWithOffset</verbClass>
|
||||||
|
<hasStandardCommand>true</hasStandardCommand>
|
||||||
|
<defaultProjectile>Bullet_WULA_RW_SuperLongRange_RF</defaultProjectile>
|
||||||
|
<warmupTime>1.75</warmupTime>
|
||||||
|
<range>500</range>
|
||||||
|
<burstShotCount>1</burstShotCount>
|
||||||
|
<soundCast>WULA_RW_Railgun_Shootingsound</soundCast>
|
||||||
|
<soundCastTail>GunTail_Medium</soundCastTail>
|
||||||
|
<muzzleFlashScale>9</muzzleFlashScale>
|
||||||
|
<canGoWild>false</canGoWild>
|
||||||
|
</li>
|
||||||
|
</verbs>
|
||||||
|
<comps>
|
||||||
|
<li Class="WulaFallenEmpire.CompProperties_WeaponRenderDynamic">
|
||||||
|
<TexturePath>Wula/Weapon/WULA_RW_SuperLongRange_RF/WULA_RW_SuperLongRange_RF_Anim</TexturePath>
|
||||||
|
<totalFrames>8</totalFrames>
|
||||||
|
<ticksPerFrame>8</ticksPerFrame>
|
||||||
|
</li>
|
||||||
|
</comps>
|
||||||
|
<modExtensions>
|
||||||
|
<li Class="WulaFallenEmpire.ModExtension_ShootWithOffset">
|
||||||
|
<offsets>
|
||||||
|
<li>(0, -1.0)</li>
|
||||||
|
</offsets>
|
||||||
|
</li>
|
||||||
|
</modExtensions>
|
||||||
|
</ThingDef>
|
||||||
|
<ThingDef ParentName="BaseBullet">
|
||||||
|
<defName>Bullet_WULA_RW_SuperLongRange_RF</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_Lighting_Small</tailFleckDef> <!-- 拖尾特效定义 -->
|
||||||
|
<fleckDelayTicks>0</fleckDelayTicks>
|
||||||
|
<impactEffecter>Bullet_WULA_RW_Fractal_RF_Hit</impactEffecter>
|
||||||
|
</li>
|
||||||
|
</modExtensions>
|
||||||
|
<graphicData>
|
||||||
|
<texPath>Wula/Projectile/WULA_Bullet_Needle_AT</texPath>
|
||||||
|
<graphicClass>Graphic_Single</graphicClass>
|
||||||
|
<shaderType>TransparentPostLight</shaderType>
|
||||||
|
<drawSize>1.4</drawSize>
|
||||||
|
</graphicData>
|
||||||
|
<projectile>
|
||||||
|
<damageDef>WULA_Armour_Piercing_Projectile_4_Damage</damageDef>
|
||||||
|
<damageAmountBase>150</damageAmountBase>
|
||||||
|
<speed>130</speed>
|
||||||
|
<armorPenetrationBase>2</armorPenetrationBase>
|
||||||
|
<stoppingPower>10</stoppingPower>
|
||||||
|
</projectile>
|
||||||
|
</ThingDef>
|
||||||
|
|
||||||
<!-- 激光武器 -->
|
<!-- 激光武器 -->
|
||||||
<HediffDef>
|
<HediffDef>
|
||||||
|
|||||||
@@ -1011,6 +1011,41 @@
|
|||||||
<MoveSpeed>4</MoveSpeed>
|
<MoveSpeed>4</MoveSpeed>
|
||||||
</statBases>
|
</statBases>
|
||||||
</AlienRace.ThingDef_AlienRace>
|
</AlienRace.ThingDef_AlienRace>
|
||||||
|
<AlienRace.ThingDef_AlienRace ParentName="Mech_WULA_Cat_Base">
|
||||||
|
<defName>Mech_WULA_Cat_Cloak_Sniper</defName>
|
||||||
|
<label>CAt-71"特战猫猫"</label>
|
||||||
|
<description>由乌拉帝国的进步派叛军改装的乌拉猫猫机械体,手持一把特殊的磁轨狙击枪,可以凭借光学迷彩和娇小身形隐藏在野外,随时准备给敌人一发冷枪。</description>
|
||||||
|
<uiIconPath>Wula/Things/WULA_Cloak_Sniper_Cat/WULA_Cat_Thin_south</uiIconPath>
|
||||||
|
|
||||||
|
<alienRace>
|
||||||
|
<raceRestriction>
|
||||||
|
<onlyUseRaceRestrictedApparel>true</onlyUseRaceRestrictedApparel>
|
||||||
|
</raceRestriction>
|
||||||
|
<compatibility>
|
||||||
|
<isFlesh>false</isFlesh>
|
||||||
|
</compatibility>
|
||||||
|
</alienRace>
|
||||||
|
<statBases>
|
||||||
|
<ArmorRating_Sharp>0.5</ArmorRating_Sharp>
|
||||||
|
<ArmorRating_Blunt>0.5</ArmorRating_Blunt>
|
||||||
|
<!-- <WorkSpeedGlobal>2</WorkSpeedGlobal> -->
|
||||||
|
<MoveSpeed>6</MoveSpeed>
|
||||||
|
</statBases>
|
||||||
|
<comps>
|
||||||
|
<li Class="WulaFallenEmpire.CompProperties_FighterInvisible">
|
||||||
|
<InvisibilityDef>WULA_Cat_Invisibility</InvisibilityDef>
|
||||||
|
<stealthCooldownTicks>120</stealthCooldownTicks>
|
||||||
|
<revealOnEnemyInSight>true</revealOnEnemyInSight>
|
||||||
|
</li>
|
||||||
|
<li Class="WulaFallenEmpire.CompProperties_HediffGiver">
|
||||||
|
<hediffs>
|
||||||
|
<li>WULA_Cat_Invisibility</li>
|
||||||
|
</hediffs>
|
||||||
|
<addChance>1.0</addChance>
|
||||||
|
<allowDuplicates>false</allowDuplicates>
|
||||||
|
</li>
|
||||||
|
</comps>
|
||||||
|
</AlienRace.ThingDef_AlienRace>
|
||||||
|
|
||||||
<!-- 大型机械族 -->
|
<!-- 大型机械族 -->
|
||||||
<AlienRace.ThingDef_AlienRace ParentName="WULA_BaseMechanoid">
|
<AlienRace.ThingDef_AlienRace ParentName="WULA_BaseMechanoid">
|
||||||
|
|||||||
@@ -4,6 +4,16 @@
|
|||||||
<defName>WULA_AutonomousMech</defName>
|
<defName>WULA_AutonomousMech</defName>
|
||||||
<thinkRoot Class="ThinkNode_Priority">
|
<thinkRoot Class="ThinkNode_Priority">
|
||||||
<subNodes>
|
<subNodes>
|
||||||
|
<li Class="ThinkNode_ConditionalPawnKind">
|
||||||
|
<pawnKind>Mech_WULA_Cat_Cloak_Sniper</pawnKind>
|
||||||
|
<subNodes>
|
||||||
|
<li Class="JobGiver_AIFightEnemies">
|
||||||
|
<targetAcquireRadius>500</targetAcquireRadius>
|
||||||
|
<targetKeepRadius>500</targetKeepRadius>
|
||||||
|
</li>
|
||||||
|
</subNodes>
|
||||||
|
</li>
|
||||||
|
|
||||||
<!-- Despawned -->
|
<!-- Despawned -->
|
||||||
<li Class="ThinkNode_Subtree">
|
<li Class="ThinkNode_Subtree">
|
||||||
<treeDef>Despawned</treeDef>
|
<treeDef>Despawned</treeDef>
|
||||||
|
|||||||
@@ -0,0 +1,9 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<LanguageData>
|
||||||
|
<WULA_Boss_Super_Fortress.questNameRules.rulesStrings>
|
||||||
|
<li>questName->特殊任务:清扫巨型要塞</li>
|
||||||
|
</WULA_Boss_Super_Fortress.questNameRules.rulesStrings>
|
||||||
|
<WULA_Boss_Super_Fortress.questDescriptionRules.rulesStrings>
|
||||||
|
<li>questDescription->乌拉帝国行星封锁机关的总控AI向殖民地发送了一个特殊的请求,一座装备了火山炮的<color=#C87451><i>巨型要塞</i></color>被发现,它不处于行星封锁机关的控制下,很可能是叛军的一个根据地,你的殖民地必须使用一切力量将其消灭。行星封锁机关为殖民地提供了以下信息:\n\n<color=#9F0400><i>-先发制人</i></color> 这个要塞已经被乌拉帝国舰队的EMP炮弹攻击过,需要一段时间才能重启防御系统——但是从轰炸效果来说,这个空窗时间可能不会太长\n<color=#9F0400><i>-炼狱号角</i></color> 要塞中有四门火山炮,一旦其重启完成,将对所有进攻部队造成毁灭性打击,应该优先解决\n<color=#9F0400><i>-碉楼林立</i></color> 要塞被多层防御设施所保护,正面攻击会非常花费时间,并且要塞的顶部进行了特别加厚,厚度堪比岩顶\n<color=#9F0400><i>-草木皆兵</i></color> 要塞附近很可能有别的不可见的埋伏,舰队在此处检测到的活动迹象与目视不匹配\n\n行星封锁机关承诺,一旦摧毁<color=#C87451><i>巨型要塞</i></color>,她们就会派遣舰队轰炸残余的设施,并为殖民地开放火山炮的申请权限。</li>
|
||||||
|
</WULA_Boss_Super_Fortress.questDescriptionRules.rulesStrings>
|
||||||
|
</LanguageData>
|
||||||
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 46 KiB |
|
After Width: | Height: | Size: 99 KiB |
|
After Width: | Height: | Size: 536 KiB |
@@ -217,6 +217,12 @@ namespace WulaFallenEmpire
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
private Gizmo CreateWeaponSwitchGizmo()
|
private Gizmo CreateWeaponSwitchGizmo()
|
||||||
{
|
{
|
||||||
|
// 检查Pawn是否属于玩家派系
|
||||||
|
if (MechPawn?.Faction != Faction.OfPlayer)
|
||||||
|
{
|
||||||
|
return null; // 非玩家派系时不显示
|
||||||
|
}
|
||||||
|
|
||||||
Command_Action switchWeaponCommand = new Command_Action
|
Command_Action switchWeaponCommand = new Command_Action
|
||||||
{
|
{
|
||||||
defaultLabel = "WULA_SwitchWeapon".Translate(),
|
defaultLabel = "WULA_SwitchWeapon".Translate(),
|
||||||
@@ -224,7 +230,6 @@ namespace WulaFallenEmpire
|
|||||||
icon = ContentFinder<Texture2D>.Get("Wula/UI/Abilities/WULA_WeaponSwitchAbility", false) ?? BaseContent.BadTex,
|
icon = ContentFinder<Texture2D>.Get("Wula/UI/Abilities/WULA_WeaponSwitchAbility", false) ?? BaseContent.BadTex,
|
||||||
action = SwitchWeapon
|
action = SwitchWeapon
|
||||||
};
|
};
|
||||||
|
|
||||||
return switchWeaponCommand;
|
return switchWeaponCommand;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,274 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
|
using RimWorld;
|
||||||
|
using UnityEngine;
|
||||||
|
using Verse;
|
||||||
|
using Verse.AI;
|
||||||
|
using Verse.AI.Group;
|
||||||
|
using Verse.Sound;
|
||||||
|
|
||||||
|
namespace WulaFallenEmpire
|
||||||
|
{
|
||||||
|
public class CompFighterInvisible : ThingComp
|
||||||
|
{
|
||||||
|
public CompProperties_FighterInvisible Props => (CompProperties_FighterInvisible)props;
|
||||||
|
[Unsaved(false)]
|
||||||
|
private HediffComp_Invisibility invisibility;
|
||||||
|
private int lastDetectedTick = -99999;
|
||||||
|
private int lastRevealedTick = -99999;
|
||||||
|
private Pawn Sightstealer => (Pawn)parent;
|
||||||
|
|
||||||
|
// 新增:记录最后一次检查敌人的时间
|
||||||
|
private int lastEnemyCheckTick = -99999;
|
||||||
|
|
||||||
|
public HediffDef GetTargetInvisibilityDef()
|
||||||
|
{
|
||||||
|
return Props.InvisibilityDef;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 添加一个属性来检查是否有效
|
||||||
|
private bool IsValid => Sightstealer?.health?.hediffSet != null &&
|
||||||
|
GetTargetInvisibilityDef() != null &&
|
||||||
|
!Sightstealer.IsShambler &&
|
||||||
|
Sightstealer.Spawned &&
|
||||||
|
Sightstealer.Map != null;
|
||||||
|
|
||||||
|
private HediffComp_Invisibility Invisibility
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (!IsValid) return null;
|
||||||
|
return invisibility ?? (invisibility = Sightstealer.health.hediffSet
|
||||||
|
.GetFirstHediffOfDef(GetTargetInvisibilityDef())
|
||||||
|
?.TryGetComp<HediffComp_Invisibility>());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void PostExposeData()
|
||||||
|
{
|
||||||
|
base.PostExposeData();
|
||||||
|
Scribe_Values.Look(ref lastDetectedTick, "lastDetectedTick", 0);
|
||||||
|
Scribe_Values.Look(ref lastRevealedTick, "lastRevealedTick", 0);
|
||||||
|
Scribe_Values.Look(ref lastEnemyCheckTick, "lastEnemyCheckTick", 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void CompTick()
|
||||||
|
{
|
||||||
|
// 使用统一的有效性检查
|
||||||
|
if (!IsValid || Invisibility == null) return;
|
||||||
|
|
||||||
|
// 检查敌人
|
||||||
|
CheckForEnemiesInSight();
|
||||||
|
|
||||||
|
// 隐身恢复逻辑
|
||||||
|
if (Sightstealer.IsHashIntervalTick(Props.CheckDetectedIntervalTicks))
|
||||||
|
{
|
||||||
|
if (Find.TickManager.TicksGame > lastDetectedTick + Props.stealthCooldownTicks)
|
||||||
|
{
|
||||||
|
Invisibility.BecomeInvisible();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Notify_UsedVerb(Pawn pawn, Verb verb)
|
||||||
|
{
|
||||||
|
base.Notify_UsedVerb(pawn, verb);
|
||||||
|
|
||||||
|
// 统一的 null 检查
|
||||||
|
if (Invisibility == null) return;
|
||||||
|
|
||||||
|
Invisibility.BecomeVisible();
|
||||||
|
lastDetectedTick = Find.TickManager.TicksGame;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 检查视线内是否有敌人
|
||||||
|
/// </summary>
|
||||||
|
private void CheckForEnemiesInSight()
|
||||||
|
{
|
||||||
|
|
||||||
|
// 检查频率:每30 tick检查一次(约0.5秒)
|
||||||
|
if (!Sightstealer.IsHashIntervalTick(30) ||
|
||||||
|
Find.TickManager.TicksGame <= lastEnemyCheckTick + 30)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
lastEnemyCheckTick = Find.TickManager.TicksGame;
|
||||||
|
|
||||||
|
// 如果配置为只在战斗状态时检查,且当前不在战斗状态,则跳过
|
||||||
|
if (Props.onlyCheckInCombat && !IsInCombatState())
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 检查视线内是否有敌人
|
||||||
|
bool enemyInSight = false;
|
||||||
|
List<Pawn> enemiesInSight = new List<Pawn>();
|
||||||
|
|
||||||
|
// 获取地图上所有Pawn
|
||||||
|
IReadOnlyList<Pawn> allPawns = Sightstealer.Map.mapPawns.AllPawnsSpawned;
|
||||||
|
|
||||||
|
foreach (Pawn otherPawn in allPawns)
|
||||||
|
{
|
||||||
|
// 跳过自身
|
||||||
|
if (otherPawn == Sightstealer) continue;
|
||||||
|
|
||||||
|
// 跳过自律机械
|
||||||
|
if (otherPawn.GetComp<CompAutonomousMech>() != null) continue;
|
||||||
|
|
||||||
|
// 跳过死亡的
|
||||||
|
if (otherPawn.Dead) continue;
|
||||||
|
|
||||||
|
// 跳过倒地的(如果配置为忽略)
|
||||||
|
if (Props.ignoreDownedEnemies && otherPawn.Downed) continue;
|
||||||
|
|
||||||
|
// 跳过睡着的(如果配置为忽略)
|
||||||
|
if (Props.ignoreSleepingEnemies && otherPawn.CurJobDef == JobDefOf.LayDown) continue;
|
||||||
|
|
||||||
|
// 检查是否为敌对关系
|
||||||
|
if (!otherPawn.HostileTo(Sightstealer)) continue;
|
||||||
|
|
||||||
|
// 检查敌人类型过滤器(如果有)
|
||||||
|
if (Props.enemyTypeFilter != null && Props.enemyTypeFilter.Count > 0)
|
||||||
|
{
|
||||||
|
if (!Props.enemyTypeFilter.Contains(otherPawn.def)) continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 关键修改:直接检查直线可见性,不使用距离限制
|
||||||
|
if (GenSight.LineOfSight(Sightstealer.Position, otherPawn.Position, Sightstealer.Map))
|
||||||
|
{
|
||||||
|
enemiesInSight.Add(otherPawn);
|
||||||
|
enemyInSight = true;
|
||||||
|
|
||||||
|
// 如果只需要知道是否有敌人,且已经找到一个,可以提前退出循环
|
||||||
|
if (Props.minEnemiesToReveal <= 1)
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 如果启用敌人检测后解除隐身,并且发现了足够数量的敌人
|
||||||
|
if (enemyInSight && Props.revealOnEnemyInSight && enemiesInSight.Count >= Props.minEnemiesToReveal)
|
||||||
|
{
|
||||||
|
// 立即解除隐身
|
||||||
|
Invisibility.BecomeVisible();
|
||||||
|
lastDetectedTick = Find.TickManager.TicksGame;
|
||||||
|
lastRevealedTick = Find.TickManager.TicksGame;
|
||||||
|
|
||||||
|
// 可选:添加视觉或声音效果
|
||||||
|
if (Props.showRevealEffect)
|
||||||
|
{
|
||||||
|
ShowRevealEffect(enemiesInSight);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 可选:发送消息
|
||||||
|
if (Props.sendRevealMessage && Sightstealer.Faction == Faction.OfPlayer)
|
||||||
|
{
|
||||||
|
SendRevealMessage(enemiesInSight);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 检查是否处于战斗状态
|
||||||
|
/// </summary>
|
||||||
|
private bool IsInCombatState()
|
||||||
|
{
|
||||||
|
// 如果有当前工作且是战斗相关工作
|
||||||
|
if (Sightstealer.CurJob != null)
|
||||||
|
{
|
||||||
|
JobDef jobDef = Sightstealer.CurJob.def;
|
||||||
|
if (jobDef == JobDefOf.AttackMelee ||
|
||||||
|
jobDef == JobDefOf.AttackStatic ||
|
||||||
|
jobDef == JobDefOf.Wait_Combat ||
|
||||||
|
jobDef == JobDefOf.Flee ||
|
||||||
|
jobDef == JobDefOf.FleeAndCower)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 如果有敌人目标
|
||||||
|
if (Sightstealer.mindState.enemyTarget != null)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 如果最近受到过伤害
|
||||||
|
if (Find.TickManager.TicksGame - Sightstealer.mindState.lastHarmTick < 300) // 最近5秒内受到伤害
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 如果最近攻击过目标
|
||||||
|
if (Find.TickManager.TicksGame - Sightstealer.mindState.lastAttackTargetTick < 300)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 显示解除隐身的效果
|
||||||
|
/// </summary>
|
||||||
|
private void ShowRevealEffect(List<Pawn> enemies)
|
||||||
|
{
|
||||||
|
if (Sightstealer.Map == null) return;
|
||||||
|
|
||||||
|
// 创建一个闪光效果
|
||||||
|
FleckMaker.ThrowLightningGlow(Sightstealer.Position.ToVector3Shifted(),
|
||||||
|
Sightstealer.Map, 2f);
|
||||||
|
|
||||||
|
// 可选:播放声音
|
||||||
|
if (Props.revealSound != null)
|
||||||
|
{
|
||||||
|
Props.revealSound.PlayOneShot(new TargetInfo(Sightstealer.Position, Sightstealer.Map));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 发送解除隐身消息
|
||||||
|
/// </summary>
|
||||||
|
private void SendRevealMessage(List<Pawn> enemies)
|
||||||
|
{
|
||||||
|
if (enemies.Count == 0) return;
|
||||||
|
|
||||||
|
string message;
|
||||||
|
if (enemies.Count == 1)
|
||||||
|
{
|
||||||
|
message = "WFE.RevealedBySingleEnemy".Translate(
|
||||||
|
Sightstealer.LabelShort,
|
||||||
|
enemies[0].LabelShort
|
||||||
|
);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
message = "WFE.RevealedByMultipleEnemies".Translate(
|
||||||
|
Sightstealer.LabelShort,
|
||||||
|
enemies.Count
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Messages.Message(message, Sightstealer, MessageTypeDefOf.NeutralEvent);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取下次可以隐身的时间
|
||||||
|
/// </summary>
|
||||||
|
public int NextInvisibilityTick => lastDetectedTick + Props.stealthCooldownTicks;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 手动触发解除隐身(供外部调用)
|
||||||
|
/// </summary>
|
||||||
|
public void ForceReveal()
|
||||||
|
{
|
||||||
|
if (Invisibility == null) return;
|
||||||
|
|
||||||
|
Invisibility.BecomeVisible();
|
||||||
|
lastDetectedTick = Find.TickManager.TicksGame;
|
||||||
|
lastRevealedTick = Find.TickManager.TicksGame;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,73 @@
|
|||||||
|
using RimWorld;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using Verse;
|
||||||
|
|
||||||
|
namespace WulaFallenEmpire
|
||||||
|
{
|
||||||
|
public class CompProperties_FighterInvisible : CompProperties
|
||||||
|
{
|
||||||
|
public float BaseVisibleRadius = 14f;
|
||||||
|
public int UndetectedTimeout = 120;
|
||||||
|
public int CheckDetectedIntervalTicks = 7;
|
||||||
|
public float FirstDetectedRadius = 30f;
|
||||||
|
public int RevealedLetterDelayTicks = 6;
|
||||||
|
public int AmbushCallMTBTicks = 600;
|
||||||
|
|
||||||
|
// 修改:一个可定义的提供隐身的hediff
|
||||||
|
public HediffDef InvisibilityDef;
|
||||||
|
|
||||||
|
// 隐身冷却
|
||||||
|
public int stealthCooldownTicks = 1200;
|
||||||
|
|
||||||
|
// 新增:是否在视线内出现敌人时解除隐身
|
||||||
|
public bool revealOnEnemyInSight = false;
|
||||||
|
|
||||||
|
// 新增:解除隐身的检测半径(默认为FirstDetectedRadius)
|
||||||
|
public float revealDetectionRadius = 500f;
|
||||||
|
|
||||||
|
// 新增:是否显示解除隐身效果
|
||||||
|
public bool showRevealEffect = true;
|
||||||
|
|
||||||
|
// 新增:解除隐身时的声音
|
||||||
|
public SoundDef revealSound;
|
||||||
|
|
||||||
|
// 新增:是否发送解除隐身消息
|
||||||
|
public bool sendRevealMessage = false;
|
||||||
|
|
||||||
|
// 新增:解除隐身的最小敌人数量(默认为1)
|
||||||
|
public int minEnemiesToReveal = 1;
|
||||||
|
|
||||||
|
// 新增:敌人类型过滤器(空表示所有敌人)
|
||||||
|
public List<ThingDef> enemyTypeFilter;
|
||||||
|
|
||||||
|
// 新增:是否只在战斗状态时检查敌人
|
||||||
|
public bool onlyCheckInCombat = false;
|
||||||
|
|
||||||
|
// 新增:是否忽略某些状态的敌人(如倒地、死亡等)
|
||||||
|
public bool ignoreDownedEnemies = true;
|
||||||
|
public bool ignoreSleepingEnemies = false;
|
||||||
|
|
||||||
|
public CompProperties_FighterInvisible()
|
||||||
|
{
|
||||||
|
compClass = typeof(CompFighterInvisible);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override IEnumerable<string> ConfigErrors(ThingDef parentDef)
|
||||||
|
{
|
||||||
|
foreach (string error in base.ConfigErrors(parentDef))
|
||||||
|
{
|
||||||
|
yield return error;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (InvisibilityDef == null)
|
||||||
|
{
|
||||||
|
yield return "InvisibilityDef is not defined for CompProperties_FighterInvisible";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (revealDetectionRadius <= 0)
|
||||||
|
{
|
||||||
|
revealDetectionRadius = FirstDetectedRadius;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -269,6 +269,8 @@
|
|||||||
<Compile Include="Pawn\WULA_BrokenPersonality\MentalBreakWorker_BrokenPersonality.cs" />
|
<Compile Include="Pawn\WULA_BrokenPersonality\MentalBreakWorker_BrokenPersonality.cs" />
|
||||||
<Compile Include="Pawn\WULA_BrokenPersonality\MentalStateDefExtension_BrokenPersonality.cs" />
|
<Compile Include="Pawn\WULA_BrokenPersonality\MentalStateDefExtension_BrokenPersonality.cs" />
|
||||||
<Compile Include="Pawn\WULA_BrokenPersonality\MentalState_BrokenPersonality.cs" />
|
<Compile Include="Pawn\WULA_BrokenPersonality\MentalState_BrokenPersonality.cs" />
|
||||||
|
<Compile Include="Pawn\WULA_Cat_Invisible\CompFighterInvisible.cs" />
|
||||||
|
<Compile Include="Pawn\WULA_Cat_Invisible\CompProperties_FighterInvisible.cs" />
|
||||||
<Compile Include="Pawn\WULA_CompHediffGiver\CompHediffGiver.cs" />
|
<Compile Include="Pawn\WULA_CompHediffGiver\CompHediffGiver.cs" />
|
||||||
<Compile Include="Pawn\WULA_CompHediffGiver\CompProperties_HediffGiver.cs" />
|
<Compile Include="Pawn\WULA_CompHediffGiver\CompProperties_HediffGiver.cs" />
|
||||||
<Compile Include="Pawn\WULA_Energy\CompChargingBed.cs" />
|
<Compile Include="Pawn\WULA_Energy\CompChargingBed.cs" />
|
||||||
|
|||||||
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 22 KiB |