22
@@ -518,7 +518,7 @@
|
||||
<_DistortionIntensity>0.5</_DistortionIntensity>
|
||||
<_TexAScaleDivisorPerProgress>1.5</_TexAScaleDivisorPerProgress>
|
||||
</shaderParameters>
|
||||
<drawSize>(4, 4)</drawSize>
|
||||
<drawSize>(5, 5)</drawSize>
|
||||
</graphicData>
|
||||
</FleckDef>
|
||||
|
||||
|
||||
@@ -1118,6 +1118,11 @@
|
||||
<value>0</value>
|
||||
<type>Int</type>
|
||||
</li>
|
||||
<li Class="WulaFallenEmpire.Effect_SetVariable">
|
||||
<name>WULA_Boss_Super_Fortress_Has_Start</name>
|
||||
<value>0</value>
|
||||
<type>Int</type>
|
||||
</li>
|
||||
</effects>
|
||||
</li>
|
||||
</immediateEffects>
|
||||
@@ -1142,6 +1147,26 @@
|
||||
</li>
|
||||
</optionEffects>
|
||||
</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>
|
||||
<label>···度假?</label>
|
||||
<hideWhenDisabled>true</hideWhenDisabled>
|
||||
|
||||
@@ -322,4 +322,28 @@
|
||||
</stages>
|
||||
<isBad>false</isBad>
|
||||
</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>
|
||||
@@ -121,6 +121,29 @@
|
||||
<li>Wula_Assault_Cat_Weapon</li>
|
||||
</weaponTags>
|
||||
</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">
|
||||
<defName>Wula_AI_Heavy_Panzer</defName> <!-- 修改了defName以避免冲突 -->
|
||||
|
||||
@@ -1,5 +1,47 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<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>
|
||||
<defName>WULA_GiveQuest_Base_Tex</defName>
|
||||
@@ -149,7 +191,7 @@
|
||||
<nodes>
|
||||
<li Class="WulaFallenEmpire.QuestNode_EventLetter">
|
||||
<inSignal>Handle_Outtime</inSignal>
|
||||
<eventDefName>WULA_Base_Tex_Quest_UI_1</eventDefName>
|
||||
<eventDefName>WULA_Base_Tex_Quest_UI_2</eventDefName>
|
||||
</li>
|
||||
<li Class="QuestNode_Letter">
|
||||
<label>未按时纳税</label>
|
||||
@@ -199,7 +241,7 @@
|
||||
</root>
|
||||
</ThingSetMakerDef>
|
||||
<WulaFallenEmpire.EventDef>
|
||||
<defName>WULA_Base_Tex_Quest_UI_1</defName>
|
||||
<defName>WULA_Base_Tex_Quest_UI_2</defName>
|
||||
<label>和P.I.A的通讯</label>
|
||||
<portraitPath>Wula/Events/Portraits/WULA_Legion_6</portraitPath>
|
||||
<characterName>「军团」,P.I.A</characterName>
|
||||
|
||||
@@ -1,12 +1,63 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<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>
|
||||
<defName>WULA_Boss_Super_Fortress</defName>
|
||||
<rootSelectionWeight>0</rootSelectionWeight>
|
||||
<autoAccept>true</autoAccept>
|
||||
<sendAvailableLetter>false</sendAvailableLetter>
|
||||
<defaultChallengeRating>4</defaultChallengeRating> <!-- 挑战等级(星级) -->
|
||||
<isRootSpecial>true</isRootSpecial> <!-- 特殊任务 -->
|
||||
<isRootSpecial>true</isRootSpecial> <!-- 特殊任务 -->
|
||||
|
||||
<questNameRules>
|
||||
<rulesStrings>
|
||||
@@ -20,15 +71,17 @@
|
||||
</questDescriptionRules>
|
||||
<root Class="QuestNode_Sequence">
|
||||
<nodes>
|
||||
<li Class="QuestNode_GetMap"/>
|
||||
<li Class="QuestNode_GetMap" />
|
||||
|
||||
<!-- 产生超链接 -->
|
||||
<li Class="WulaFallenEmpire.QuestNode_Hyperlinks">
|
||||
<thingDefs>
|
||||
<li>Wula_Psi_Titan</li>
|
||||
<li>Wula_AI_Rocket_Panzer</li>
|
||||
<li>Wula_AI_Heavy_Panzer</li>
|
||||
<li>WULA_Sky_Lock</li>
|
||||
<li>WULA_Cat_Bunker</li>
|
||||
<li>Wula_Base_ATGun_Turret</li>
|
||||
<li>Wula_Base_Laser_Turret</li>
|
||||
<li>Wula_Base_Mortar_Turret</li>
|
||||
<li>Wula_Disturber_Turret</li>
|
||||
<li>Mech_WULA_Cat_Cloak_Sniper</li>
|
||||
</thingDefs>
|
||||
<factionDefs>
|
||||
<li>Wula_PIA_Legion_Faction</li>
|
||||
@@ -57,33 +110,45 @@
|
||||
</li>
|
||||
|
||||
<li Class="QuestNode_Letter">
|
||||
<label TKey="LetterLabelShuttleDestroyed">灵能泰坦抵达</label>
|
||||
<label TKey="LetterLabelShuttleDestroyed">已标记巨型要塞</label>
|
||||
<letterDef>NegativeEvent</letterDef>
|
||||
<text TKey="LetterTextShuttleDestroyed">在一艘巡洋舰向失控运输舰狠狠撞击后,碎裂的运输舰如流星般坠入边缘世界地表。不过灵能泰坦随后便在地表上被目击——地点已经标记出来了。</text>
|
||||
<text TKey="LetterTextShuttleDestroyed">乌拉帝国进步派所建立的巨型要塞已经在地图上标记——似乎因为干扰,舰队无法直接攻击这个要塞,但是如果附近有引导员,舰队依然可以正常进入要塞的上方轨道。</text>
|
||||
</li>
|
||||
|
||||
<!-- 灵能泰坦被击毁··· -->
|
||||
<!-- 堡垒被破坏··· -->
|
||||
<li Class="QuestNode_Signal">
|
||||
<inSignal>PsiTitan.0.Destroyed</inSignal>
|
||||
<inSignal>site.AllEnemiesDefeated</inSignal>
|
||||
<node Class="QuestNode_Sequence">
|
||||
<nodes>
|
||||
<li Class="QuestNode_Letter">
|
||||
<label TKey="LetterLabelShuttleDestroyed">灵能泰坦已停机</label>
|
||||
<letterDef>PositiveEvent</letterDef>
|
||||
<text TKey="LetterTextShuttleDestroyed">灵能泰坦在殖民者的攻击下已经停止运转,其灵能回路核心已经暴露并掉落。\n\n记得回收灵能回路核心,这是建造新的灵能泰坦所需的材料。</text>
|
||||
</li>
|
||||
<li Class="QuestNode_ChangeFactionGoodwill">
|
||||
<faction>Wula_PIA_Legion_Faction</faction>
|
||||
<change>25</change>
|
||||
<reason>WULA_Killed_Psititan</reason>
|
||||
<reason>WULA_Destroyed_Super_Fortress</reason>
|
||||
</li>
|
||||
<li Class="WulaFallenEmpire.QuestNode_EventLetter">
|
||||
<inSignal>PsiTitan.0.Destroyed</inSignal>
|
||||
<eventDefName>WULA_Boss_Sky_Lock_UI_2</eventDefName>
|
||||
<inSignal>site.AllEnemiesDefeated</inSignal>
|
||||
<eventDefName>WULA_Boss_Super_Fortress_UI_2</eventDefName>
|
||||
</li>
|
||||
<li Class="QuestNode_End">
|
||||
<outcome>Success</outcome>
|
||||
<sendStandardLetter>true</sendStandardLetter>
|
||||
<li Class="QuestNode_ResolveQuestDescription">
|
||||
<rules>
|
||||
<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>
|
||||
</nodes>
|
||||
</node>
|
||||
@@ -92,8 +157,8 @@
|
||||
</root>
|
||||
</QuestScriptDef>
|
||||
<HistoryEventDef>
|
||||
<defName>WULA_Killed_Psititan</defName>
|
||||
<label>协助处理失控灵能泰坦</label>
|
||||
<defName>WULA_Destroyed_Super_Fortress</defName>
|
||||
<label>协助摧毁巨型火山炮要塞</label>
|
||||
</HistoryEventDef>
|
||||
<QuestEditor_Library.CustomMapDataDef>
|
||||
<defName>WULA_Super_Fortress_Map</defName>
|
||||
@@ -102,6 +167,128 @@
|
||||
<size>(80, 1, 80)</size>
|
||||
<isPart>true</isPart>
|
||||
<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>
|
||||
<li>
|
||||
<key>RoofRockThick</key>
|
||||
@@ -157,8 +344,8 @@
|
||||
<li>(14,11,14,12)</li>
|
||||
<li>(12,15,12,22)</li>
|
||||
<li>(15,12,22,12)</li>
|
||||
<li>(16,13,16,14)</li>
|
||||
<li>(13,16,14,16)</li>
|
||||
<li>(16,13,16,14)</li>
|
||||
<li>(20,13,20,14)</li>
|
||||
<li>(13,20,14,20)</li>
|
||||
<li>(10,22,11,22)</li>
|
||||
@@ -167,18 +354,18 @@
|
||||
<li>(10,23,10,26)</li>
|
||||
<li>(26,11,26,12)</li>
|
||||
<li>(11,26,12,26)</li>
|
||||
<li>(15,26,16,26)</li>
|
||||
<li>(26,15,29,15)</li>
|
||||
<li>(15,26,16,26)</li>
|
||||
<li>(26,16,26,16)</li>
|
||||
<li>(15,27,15,29)</li>
|
||||
<li>(11,30,13,30)</li>
|
||||
<li>(30,11,34,11)</li>
|
||||
<li>(11,30,13,30)</li>
|
||||
<li>(30,12,30,13)</li>
|
||||
<li>(11,31,11,34)</li>
|
||||
<li>(31,15,34,15)</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>(12,34,12,38)</li>
|
||||
<li>(16,34,16,34)</li>
|
||||
<li>(34,16,34,16)</li>
|
||||
<li>(38,13,38,15)</li>
|
||||
@@ -191,68 +378,68 @@
|
||||
<li>(12,42,12,45)</li>
|
||||
<li>(45,11,49,11)</li>
|
||||
<li>(11,45,11,49)</li>
|
||||
<li>(45,15,48,15)</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>(41,24,43,24)</li>
|
||||
<li>(45,16,45,16)</li>
|
||||
<li>(15,46,15,48)</li>
|
||||
<li>(49,12,49,13)</li>
|
||||
<li>(12,49,13,49)</li>
|
||||
<li>(49,12,49,13)</li>
|
||||
<li>(50,15,53,15)</li>
|
||||
<li>(15,50,15,53)</li>
|
||||
<li>(53,10,57,10)</li>
|
||||
<li>(10,53,12,53)</li>
|
||||
<li>(53,10,57,10)</li>
|
||||
<li>(53,11,53,12)</li>
|
||||
<li>(10,54,10,57)</li>
|
||||
<li>(53,16,53,16)</li>
|
||||
<li>(16,53,16,53)</li>
|
||||
<li>(53,16,53,16)</li>
|
||||
<li>(11,57,12,57)</li>
|
||||
<li>(57,11,57,12)</li>
|
||||
<li>(12,58,12,65)</li>
|
||||
<li>(58,12,65,12)</li>
|
||||
<li>(12,58,12,65)</li>
|
||||
<li>(13,59,14,59)</li>
|
||||
<li>(59,13,59,14)</li>
|
||||
<li>(13,63,14,63)</li>
|
||||
<li>(63,13,63,14)</li>
|
||||
<li>(36,55,38,55)</li>
|
||||
<li>(55,36,55,38)</li>
|
||||
<li>(10,65,11,65)</li>
|
||||
<li>(65,10,69,10)</li>
|
||||
<li>(10,65,11,65)</li>
|
||||
<li>(65,11,65,11)</li>
|
||||
<li>(10,66,10,69)</li>
|
||||
<li>(16,65,16,67)</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>(63,26,64,26)</li>
|
||||
<li>(65,20,67,20)</li>
|
||||
<li>(26,63,26,64)</li>
|
||||
<li>(63,26,64,26)</li>
|
||||
<li>(14,67,15,67)</li>
|
||||
<li>(67,14,69,14)</li>
|
||||
<li>(41,55,43,55)</li>
|
||||
<li>(55,41,55,43)</li>
|
||||
<li>(67,15,67,15)</li>
|
||||
<li>(67,17,67,19)</li>
|
||||
<li>(17,67,19,67)</li>
|
||||
<li>(67,17,67,19)</li>
|
||||
<li>(14,68,14,69)</li>
|
||||
<li>(64,27,64,29)</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>(21,67,22,67)</li>
|
||||
<li>(69,11,69,13)</li>
|
||||
<li>(67,21,67,22)</li>
|
||||
<li>(21,67,22,67)</li>
|
||||
<li>(31,64,34,64)</li>
|
||||
<li>(64,31,64,34)</li>
|
||||
<li>(22,68,22,69)</li>
|
||||
<li>(68,22,69,22)</li>
|
||||
<li>(63,34,63,34)</li>
|
||||
<li>(34,63,34,63)</li>
|
||||
<li>(63,34,63,34)</li>
|
||||
<li>(26,67,26,69)</li>
|
||||
<li>(67,26,69,26)</li>
|
||||
<li>(30,66,30,68)</li>
|
||||
<li>(66,30,68,30)</li>
|
||||
<li>(23,69,25,69)</li>
|
||||
<li>(69,23,69,25)</li>
|
||||
<li>(23,69,25,69)</li>
|
||||
<li>(64,38,67,38)</li>
|
||||
<li>(38,64,38,67)</li>
|
||||
<li>(68,31,68,34)</li>
|
||||
@@ -263,20 +450,20 @@
|
||||
<li>(41,64,41,67)</li>
|
||||
<li>(45,63,45,64)</li>
|
||||
<li>(63,45,64,45)</li>
|
||||
<li>(64,46,64,48)</li>
|
||||
<li>(46,64,48,64)</li>
|
||||
<li>(64,46,64,48)</li>
|
||||
<li>(42,67,45,67)</li>
|
||||
<li>(67,42,67,45)</li>
|
||||
<li>(50,64,53,64)</li>
|
||||
<li>(64,50,64,53)</li>
|
||||
<li>(50,64,53,64)</li>
|
||||
<li>(45,68,49,68)</li>
|
||||
<li>(68,45,68,49)</li>
|
||||
<li>(66,49,67,49)</li>
|
||||
<li>(49,66,49,67)</li>
|
||||
<li>(63,53,63,53)</li>
|
||||
<li>(53,63,53,63)</li>
|
||||
<li>(67,53,69,53)</li>
|
||||
<li>(53,67,53,69)</li>
|
||||
<li>(67,53,69,53)</li>
|
||||
<li>(69,54,69,57)</li>
|
||||
<li>(54,69,57,69)</li>
|
||||
<li>(59,65,59,67)</li>
|
||||
@@ -285,12 +472,12 @@
|
||||
<li>(57,67,58,67)</li>
|
||||
<li>(67,58,67,58)</li>
|
||||
<li>(57,68,57,68)</li>
|
||||
<li>(60,67,65,67)</li>
|
||||
<li>(67,60,67,65)</li>
|
||||
<li>(60,67,65,67)</li>
|
||||
<li>(63,65,63,66)</li>
|
||||
<li>(65,63,66,63)</li>
|
||||
<li>(65,68,65,69)</li>
|
||||
<li>(68,65,69,65)</li>
|
||||
<li>(65,68,65,69)</li>
|
||||
<li>(66,69,69,69)</li>
|
||||
<li>(69,66,69,68)</li>
|
||||
</allRect>
|
||||
@@ -317,8 +504,8 @@
|
||||
<li>(28,27,28,28)</li>
|
||||
<li>(27,28,27,28)</li>
|
||||
<li>(17,35,17,38)</li>
|
||||
<li>(36,19,38,19)</li>
|
||||
<li>(19,36,21,36)</li>
|
||||
<li>(36,19,38,19)</li>
|
||||
<li>(28,30,28,36)</li>
|
||||
<li>(30,28,36,28)</li>
|
||||
<li>(36,20,36,21)</li>
|
||||
@@ -393,25 +580,25 @@
|
||||
<li>(60,37,60,38)</li>
|
||||
<li>(35,62,38,62)</li>
|
||||
<li>(62,35,62,38)</li>
|
||||
<li>(57,43,60,43)</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>(50,52,51,52)</li>
|
||||
<li>(57,45,57,49)</li>
|
||||
<li>(45,57,50,57)</li>
|
||||
<li>(60,41,60,42)</li>
|
||||
<li>(41,60,42,60)</li>
|
||||
<li>(60,41,60,42)</li>
|
||||
<li>(50,53,50,56)</li>
|
||||
<li>(62,41,62,45)</li>
|
||||
<li>(41,62,45,62)</li>
|
||||
<li>(62,41,62,45)</li>
|
||||
<li>(53,53,57,53)</li>
|
||||
<li>(45,60,53,60)</li>
|
||||
<li>(60,45,61,45)</li>
|
||||
<li>(60,46,60,53)</li>
|
||||
<li>(53,54,53,57)</li>
|
||||
<li>(45,61,45,61)</li>
|
||||
<li>(53,59,53,59)</li>
|
||||
<li>(59,53,59,53)</li>
|
||||
<li>(53,59,53,59)</li>
|
||||
<li>(61,53,62,53)</li>
|
||||
<li>(53,61,53,62)</li>
|
||||
<li>(62,54,62,62)</li>
|
||||
@@ -604,14 +791,17 @@
|
||||
<li>
|
||||
<def>Wula_DarkEnergy_Generators</def>
|
||||
<faction>AncientsHostile</faction>
|
||||
<storedEnergy>1.98768</storedEnergy>
|
||||
<position>(54,0,32)</position>
|
||||
</li>
|
||||
<li>
|
||||
<def>Wula_DarkEnergy_Generators</def>
|
||||
<faction>AncientsHostile</faction>
|
||||
<storedEnergy>1.98768663</storedEnergy>
|
||||
<position>(32,0,25)</position>
|
||||
<storedEnergy>2</storedEnergy>
|
||||
<allRect>
|
||||
<li>(25,32,25,32)</li>
|
||||
<li>(32,25,32,25)</li>
|
||||
<li>(25,47,25,47)</li>
|
||||
<li>(47,25,47,25)</li>
|
||||
<li>(32,54,32,54)</li>
|
||||
<li>(54,32,54,32)</li>
|
||||
<li>(47,54,47,54)</li>
|
||||
<li>(54,47,54,47)</li>
|
||||
</allRect>
|
||||
</li>
|
||||
<li>
|
||||
<def>Wula_Disturber_Turret</def>
|
||||
@@ -623,42 +813,31 @@
|
||||
<li>(47,47,47,47)</li>
|
||||
</allRect>
|
||||
</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>
|
||||
</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>
|
||||
@@ -522,12 +522,15 @@
|
||||
<defName>Wula_Disturber_Turret_Technology</defName>
|
||||
<researchViewX>11.00</researchViewX>
|
||||
<researchViewY>0.90</researchViewY>
|
||||
<label>中型舰炮许可</label>
|
||||
<description>允许殖民地申请空投四联装舰炮,以毁灭性的等离子风暴连射毁灭一切帝国之敌。</description>
|
||||
<label>火山炮许可</label>
|
||||
<description>允许殖民地申请空投四联装火山炮,以毁灭性的熔岩风暴抹去一切帝国之敌。\n\n这种武备对殖民地来说是过剩的,并不是所有的殖民地都有能力拿到这个许可···</description>
|
||||
<baseCost>4500</baseCost>
|
||||
<prerequisites>
|
||||
<li>WULA_Turret_Base_Mortar_Technology</li>
|
||||
</prerequisites>
|
||||
<techprintCount>9999</techprintCount>
|
||||
<techprintCommonality>0</techprintCommonality>
|
||||
<techprintMarketValue>0</techprintMarketValue>
|
||||
<heldByFactionCategoryTags>
|
||||
<li>Wula_PIA_Legion_Faction</li>
|
||||
</heldByFactionCategoryTags>
|
||||
</ResearchProjectDef>
|
||||
|
||||
<!-- 植物 -->
|
||||
|
||||
@@ -468,8 +468,7 @@
|
||||
<tickerType>Normal</tickerType>
|
||||
<tradeability>None</tradeability>
|
||||
<descriptionHyperlinks>
|
||||
<ThingDef>Wula_Mech_Mobile_Factory</ThingDef>
|
||||
<ThingDef>WULA_Mech_Flyer</ThingDef>
|
||||
<ThingDef>Wula_Psi_Titan</ThingDef>
|
||||
</descriptionHyperlinks>
|
||||
<thingCategories Inherit="False">
|
||||
<li>BuildingsMisc</li>
|
||||
|
||||
@@ -486,13 +486,13 @@
|
||||
<maxTurrets>6</maxTurrets>
|
||||
<turretSpacing>1.5</turretSpacing>
|
||||
</li>
|
||||
<li Class="WulaFallenEmpire.CompProperties_TransformAtFullCapacity">
|
||||
<!-- <li Class="WulaFallenEmpire.CompProperties_TransformAtFullCapacity">
|
||||
<targetPawnKind>WULA_Mobile_Bunker</targetPawnKind>
|
||||
<requiredCapacity>6</requiredCapacity>
|
||||
<gizmoLabel>转换为BUk-1"地堡猫猫"</gizmoLabel>
|
||||
<gizmoDesc>让地堡中的两只乌拉猫猫继续操纵地堡中的机枪,剩下的乌拉猫猫抬着地堡移动——虽然很难相信但是事实就是这样的。</gizmoDesc>
|
||||
<gizmoIconPath>Wula/UI/Commands/WULA_BunkerCat</gizmoIconPath>
|
||||
</li>
|
||||
</li> -->
|
||||
<li Class="WulaFallenEmpire.CompProperties_PathCostUpdater">
|
||||
<adaptiveExpansion>true</adaptiveExpansion>
|
||||
</li>
|
||||
@@ -1641,7 +1641,7 @@
|
||||
</li>
|
||||
<li Class="CompProperties_Power">
|
||||
<compClass>CompPowerTrader</compClass>
|
||||
<basePowerConsumption>300</basePowerConsumption> <!-- 电力消耗较低 -->
|
||||
<basePowerConsumption>1500</basePowerConsumption> <!-- 电力消耗较低 -->
|
||||
</li>
|
||||
<li Class="CompProperties_Glower">
|
||||
<glowRadius>6</glowRadius>
|
||||
|
||||
@@ -2011,7 +2011,7 @@
|
||||
<li>(1, -31)</li>
|
||||
</points>
|
||||
</angleCurve>
|
||||
<explosionRadius>35</explosionRadius>
|
||||
<explosionRadius>25</explosionRadius>
|
||||
<explosionDamage>WULA_DarkMatterBomb</explosionDamage>
|
||||
<explosionDamageFactor>1</explosionDamageFactor>
|
||||
<spawnThing>CraterLarge</spawnThing>
|
||||
|
||||
@@ -1173,6 +1173,92 @@
|
||||
</li>
|
||||
</comps>
|
||||
</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>
|
||||
|
||||
@@ -1011,6 +1011,41 @@
|
||||
<MoveSpeed>4</MoveSpeed>
|
||||
</statBases>
|
||||
</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">
|
||||
|
||||
@@ -4,6 +4,16 @@
|
||||
<defName>WULA_AutonomousMech</defName>
|
||||
<thinkRoot Class="ThinkNode_Priority">
|
||||
<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 -->
|
||||
<li Class="ThinkNode_Subtree">
|
||||
<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>
|
||||
private Gizmo CreateWeaponSwitchGizmo()
|
||||
{
|
||||
// 检查Pawn是否属于玩家派系
|
||||
if (MechPawn?.Faction != Faction.OfPlayer)
|
||||
{
|
||||
return null; // 非玩家派系时不显示
|
||||
}
|
||||
|
||||
Command_Action switchWeaponCommand = new Command_Action
|
||||
{
|
||||
defaultLabel = "WULA_SwitchWeapon".Translate(),
|
||||
@@ -224,7 +230,6 @@ namespace WulaFallenEmpire
|
||||
icon = ContentFinder<Texture2D>.Get("Wula/UI/Abilities/WULA_WeaponSwitchAbility", false) ?? BaseContent.BadTex,
|
||||
action = SwitchWeapon
|
||||
};
|
||||
|
||||
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\MentalStateDefExtension_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\CompProperties_HediffGiver.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 |