This commit is contained in:
2025-11-19 17:30:22 +08:00
parent 985fa158c3
commit 5e550d89fc
14 changed files with 577 additions and 719 deletions

View File

@@ -23,24 +23,6 @@
<li>
<effects>
<li Class="WulaFallenEmpire.Effect_CloseDialog" />
<li Class="WulaFallenEmpire.Effect_TriggerRaid">
<letterLabel>陆行舰正在逼近</letterLabel>
<letterText>艾妮西娅按照要求,吸引了一艘乌拉帝国的陆行舰机械体攻击我们的殖民地!</letterText>
<points>100</points>
<faction>Mechanoid</faction>
<raidStrategy>ImmediateAttack</raidStrategy>
<raidArrivalMode>EdgeWalkIn</raidArrivalMode>
<groupKind>Combat</groupKind>
<pawnGroupMakers>
<li>
<kindDef>Combat</kindDef>
<commonality>100</commonality>
<options>
<Wula_Mech_Mobile_Factory_1>100</Wula_Mech_Mobile_Factory_1>
</options>
</li>
</pawnGroupMakers>
</li>
</effects>
</li>
</optionEffects>
@@ -80,6 +62,7 @@
</li>
</options>
</WulaFallenEmpire.EventDef>
<WulaFallenEmpire.EventDef>
<defName>Wula_UI_Legion_30</defName>
<label>和P.I.A的通讯</label>

View File

@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<!-- 初始任务 -->
<IncidentDef>
<defName>WULA_GiveQuest_Intro_Spy</defName>
<category>GiveQuest</category>
@@ -12,23 +13,19 @@
<baseChance>0</baseChance>
<requireColonistsPresent>True</requireColonistsPresent>
</IncidentDef>
<QuestScriptDef>
<defName>WULA_Intro_Spy</defName>
<defaultChallengeRating>1</defaultChallengeRating> <!-- 挑战等级(星级) -->
<expireDaysRange>2</expireDaysRange> <!-- 过期时间 -->
<isRootSpecial>true</isRootSpecial> <!-- 特殊任务 -->
<defaultCharity>false</defaultCharity> <!-- 是否仁善 -->
<!-- 仁善想法 -->
<defaultChallengeRating>1</defaultChallengeRating> <!-- 挑战等级(星级) -->
<expireDaysRange>2</expireDaysRange> <!-- 过期时间 -->
<isRootSpecial>true</isRootSpecial> <!-- 特殊任务 -->
<defaultCharity>false</defaultCharity> <!-- 是否仁善 -->
<!-- 仁善想法 -->
<!-- <successHistoryEvent MayRequire="Ludeon.RimWorld.Ideology">CharityFulfilled_IntroWimp</successHistoryEvent>
<failedOrExpiredHistoryEvent MayRequire="Ludeon.RimWorld.Ideology">CharityRefused_IntroWimp</failedOrExpiredHistoryEvent> -->
<!-- 命名规则 -->
<questNameRules>
<rulesStrings>
<li>questName->[QuestName]</li>
<!-- Pieces -->
<li>QuestName->hunted</li>
<li>questName->WULA_Intro_Spy_questName</li>
</rulesStrings>
</questNameRules>
<questDescriptionRules>
@@ -36,7 +33,7 @@
<li>QuestHospitalityCommon</li>
</include>
<rulesStrings>
<li>questDescription->[asker_nameFull], a [asker_royalTitleInCurrentFaction] of [asker_faction_name] is calling from nearby. [asker_possessive] guards were killed in an ambush. [asker_pronoun] escaped, but is now being followed by (*Threat)a manhunting [animalKindDef_label](/Threat).\n\n[asker_nameDef] wants you to keep [asker_objective] safe at [map_definite] for a few hours until [asker_possessive] shuttle can come pick [asker_objective] up.\n[asker_pronoun] will bestow [royalFavorReward] [asker_faction_royalFavorLabel] on whoever accepts this quest. This is enough [asker_faction_royalFavorLabel] to receive the royal title of Novice, and all benefits that come with it - including the first level of psychic powers.</li>
<li>questDescription->WULA_Intro_Spy_questDescription</li>
</rulesStrings>
</questDescriptionRules>
@@ -46,20 +43,6 @@
<li Class="WulaFallenEmpire.QuestNode_Root_EventLetter">
<eventDefName>Wula_Intro_Spy_UI_1</eventDefName>
</li>
<li Class="QuestNode_ResolveQuestName">
<rules>
<rulesStrings>
<li>questName->掩护帝国密探</li>
</rulesStrings>
</rules>
</li>
<li Class="QuestNode_ResolveQuestDescription">
<rules>
<rulesStrings>
<li>questDescription->乌拉帝国行星封锁机关的总控AI向殖民地发送了一个请求。一位乌拉帝国密探已经暴露正在遭受未知派系追杀——密探手无寸铁且携带重要信息殖民地需要掩护它直到乌拉帝国的穿梭机抵达并将其接走。袭击不会太剧烈密探已经甩掉了大部分敌人。</li>
</rulesStrings>
</rules>
</li>
<li Class="QuestNode_SubScript">
<def>Util_RandomizePointsChallengeRating</def>
@@ -99,11 +82,11 @@
<!-- 生成pawn -->
<li Class="QuestNode_GeneratePawn">
<kindDef>Wula_PawnKind</kindDef>
<storeAs>asker</storeAs> <!-- 特殊的字段,供后续调用 -->
<storeAs>asker</storeAs> <!-- 特殊的字段,供后续调用 -->
<faction>Wula_PIA_Legion_Faction</faction>
<biocodeWeaponChance>1</biocodeWeaponChance>
<biocodeApparelChance>1</biocodeApparelChance>
<allowPregnant>false</allowPregnant> <!-- 允许怀孕? -->
<allowPregnant>false</allowPregnant> <!-- 允许怀孕? -->
</li>
<!-- pawn抵达 -->
<li Class="QuestNode_PawnsArrive">
@@ -130,7 +113,7 @@
<delayTicks>1800</delayTicks>
<!-- 判断条件:是否允许暴力行为(游戏设置) -->
<node Class="QuestNode_ViolentQuestsAllowed">
<!-- 允许暴力则生成狂暴动物袭击 -->
<!-- 允许暴力则生成袭击 -->
<node Class="QuestNode_SubScript">
<def>Util_Raid</def>
<prefix>raid</prefix>
@@ -141,39 +124,26 @@
<enemyFaction>$enemyFaction</enemyFaction>
<walkInSpot>$walkInSpot</walkInSpot>
<customLetterLabel TKey="LetterLabelChasing">{BASELABEL} chasing [../asker_nameDef]</customLetterLabel>
<customLetterText TKey="LetterTextChasing">{BASETEXT}
\nThe [enemyFaction_pawnsPlural] have come to get [../asker_nameDef].</customLetterText>
<customLetterText TKey="LetterTextChasing">{BASETEXT}\nThe [enemyFaction_pawnsPlural] have come to get [../asker_nameDef].</customLetterText>
</parms>
</node>
<!-- 不允许暴力则生成温和动物 -->
<elseNode Class="QuestNode_Sequence">
<nodes>
<li Class="QuestNode_GetAnimalKindByPoints" />
<li Class="QuestNode_GeneratePawn">
<kindDef>$animalKindDef</kindDef>
<storeAs>peacefulAnimal</storeAs>
</li>
<li Class="QuestNode_PawnsArrive">
<pawns>$peacefulAnimal</pawns>
<customLetterLabel TKey="LetterLabelAnimalArrived">[animalKindDef_label] arrived</customLetterLabel>
<customLetterText TKey="LetterTextAnimalArrived">The [animalKindDef_label] that [asker_nameDef] was fleeing has arrived.\n\nIt turned out to be quite gentle and not aggressive at all.</customLetterText>
</li>
</nodes>
</elseNode>
</node>
</li>
<!-- 穿梭机延迟抵达 -->
<li Class="QuestNode_ShuttleDelay">
<delayTicks>7500</delayTicks>
<lodgers>$asker</lodgers> <!-- 必须装载人员 -->
<lodgers>$asker</lodgers> <!-- 必须装载人员 -->
<node Class="QuestNode_Sequence">
<nodes>
<li Class="QuestNode_SubScript">
<def>Util_TransportShip_Pickup</def>
<parms>
<leaveDelayTicks>45000</leaveDelayTicks> <!-- 强制起飞时间 -->
<requiredPawns>$asker</requiredPawns> <!-- 起飞需求的人员 -->
<leaveImmediatelyWhenSatisfied>true</leaveImmediatelyWhenSatisfied> <!--装载后立刻离开 -->
<leaveDelayTicks>45000</leaveDelayTicks> <!-- 强制起飞时间 -->
<requiredPawns>$asker</requiredPawns> <!-- 起飞需求的人员 -->
<leaveImmediatelyWhenSatisfied>true</leaveImmediatelyWhenSatisfied> <!--装载后立刻离开 -->
</parms>
</li>
<!-- 选中指定对象时显示自定义的检查信息 -->
@@ -637,4 +607,83 @@
</li>
</options>
</WulaFallenEmpire.EventDef>
<!-- 纳税 -->
<IncidentDef>
<defName>WULA_GiveQuest_Base_Tex</defName>
<category>GiveQuest</category>
<label>纳税</label>
<targetTags>
<li>Map_PlayerHome</li>
</targetTags>
<questScriptDef>WULA_Base_Tex_Quest</questScriptDef>
<workerClass>IncidentWorker_GiveQuest</workerClass>
<baseChance>0</baseChance>
<requireColonistsPresent>True</requireColonistsPresent>
</IncidentDef>
<QuestScriptDef>
<defName>WULA_Base_Tex_Quest</defName>
<rootSelectionWeight>0</rootSelectionWeight>
<autoAccept>true</autoAccept>
<sendAvailableLetter>false</sendAvailableLetter>
<defaultChallengeRating>1</defaultChallengeRating> <!-- 挑战等级(星级) -->
<isRootSpecial>true</isRootSpecial> <!-- 特殊任务 -->
<defaultCharity>false</defaultCharity> <!-- 是否仁善 -->
<!-- 命名规则 -->
<questNameRules>
<rulesStrings>
<li>questName->WULA_Base_Tex_Quest_questName</li>
</rulesStrings>
</questNameRules>
<questDescriptionRules>
<include>
<li>QuestHospitalityCommon</li>
</include>
<rulesStrings>
<li>questDescription->WULA_Intro_Spy_questDescription</li>
</rulesStrings>
</questDescriptionRules>
<!-- 运行规则 -->
<root Class="QuestNode_Sequence">
<nodes>
<!-- 设置钢铁需求 -->
<li Class="QuestNode_Set">
<name>taxAmount</name>
<value>100</value>
</li>
<li Class="QuestNode_Set">
<name>taxInterval</name>
<value>250</value> <!-- 较短的测试间隔 -->
</li>
<!-- 检查全局资源 -->
<li Class="WulaFallenEmpire.QuestNode_CheckGlobalResource">
<resourceDef>Steel</resourceDef>
<requiredCount>$taxAmount</requiredCount>
<retryDelayTicks>$taxInterval</retryDelayTicks>
<successSignal>TaxPaymentSuccess</successSignal>
<failSignal>TaxPaymentFailed</failSignal>
<deductOnSuccess>true</deductOnSuccess>
<useInputStorage>true</useInputStorage>
</li>
<!-- 支付成功处理 -->
<li Class="QuestNode_Signal">
<inSignal>TaxPaymentSuccess</inSignal>
<node Class="QuestNode_Sequence">
<nodes>
<li Class="QuestNode_Letter">
<label>纳税完成</label>
<text>已成功从全局储存中扣除100钢铁作为税款。</text>
<letterDef>PositiveEvent</letterDef>
</li>
<li Class="QuestNode_End">
<outcome>Success</outcome>
<sendStandardLetter>false</sendStandardLetter>
</li>
</nodes>
</node>
</li>
</nodes>
</root>
</QuestScriptDef>
</Defs>

View File

@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<!-- 全局资源检查工具 -->
<QuestScriptDef>
<defName>Util_Wula_GlobalResourceCheck</defName>
<root Class="QuestNode_Sequence">
<nodes>
<!-- 检查全局资源 -->
<li Class="WulaFallenEmpire.QuestNode_CheckGlobalResource">
<resourceDef>$resourceDef</resourceDef>
<requiredCount>$requiredCount</requiredCount>
<retryDelayTicks>$retryDelayTicks</retryDelayTicks>
<successSignal>$successSignal</successSignal>
<failSignal>$failSignal</failSignal>
<deductOnSuccess>$deductOnSuccess</deductOnSuccess>
<useInputStorage>$useInputStorage</useInputStorage>
</li>
</nodes>
</root>
</QuestScriptDef>
</Defs>

View File

@@ -976,7 +976,7 @@
<ThingDef Name="Wula_AI_Heavy_Panzer" ParentName="WULA_BaseMechanoid">
<defName>Wula_AI_Heavy_Panzer</defName> <!-- 修改了defName以避免冲突 -->
<label>HAp-6"战车"</label>
<description>乌拉帝国的中型战争机械,以悬浮的方式穿梭于战场之上,使用穿透力强大的战车炮和导弹打击敌方,是乌拉帝国前锋部队的中流砥柱。</description>
<description>乌拉帝国的中型战争机械,以悬浮的方式穿梭于战场之上,使用破坏力巨大的自动炮和车体臼炮打击敌方,是乌拉帝国前锋部队的中流砥柱。</description>
<uiIconPath>Wula/Things/Wula_AI_Heavy_Panzer/Wula_AI_Heavy_Panzer_Icon</uiIconPath>
<statBases>
<BandwidthCost>1</BandwidthCost>
@@ -1519,10 +1519,10 @@
<comps Inherit="False">
<!--加上这个组件的机械体可以更换武器-->
<li Class="WulaFallenEmpire.CompProperties_MechWeapon" />
<li Class="CompProperties_CanBeDormant" />
<li Class="CompProperties_CanBeDormant">
<compClass>CompMechanoid</compClass>
</li>
<li Class="CompProperties_WakeUpDormant">
<wakeUpOnDamage>true</wakeUpOnDamage>
<wakeUpCheckRadius>30</wakeUpCheckRadius>
<wakeUpSound>MechanoidsWakeUp</wakeUpSound>
</li>

View File

@@ -0,0 +1,58 @@
<?xml version="1.0" encoding="UTF-8"?>
<LanguageData>
<WULA_Intro_Spy.questNameRules.rulesStrings>
<li>questName->掩护帝国密探</li>
</WULA_Intro_Spy.questNameRules.rulesStrings>
<WULA_Intro_Spy.questDescriptionRules.rulesStrings>
<li>questDescription->乌拉帝国行星封锁机关的总控AI向殖民地发送了一个请求。一位乌拉帝国密探已经暴露正在遭受其他派系追杀——密探手无寸铁且携带重要信息殖民地需要掩护它直到乌拉帝国的穿梭机抵达并将其接走。虽然对方未透露更多信息不过她指明袭击不会太剧烈密探已经甩掉了大部分敌人。</li>
</WULA_Intro_Spy.questDescriptionRules.rulesStrings>
<WULA_Intro_Spy.LetterLabelChasing.slateRef>{BASELABEL} 追捕[../asker_nameDef]</WULA_Intro_Spy.LetterLabelChasing.slateRef>
<WULA_Intro_Spy.LetterTextChasing.slateRef>{BASETEXT}\n\n[enemyFaction_pawnsPlural]来此追捕[../asker_nameDef]。</WULA_Intro_Spy.LetterTextChasing.slateRef>
<WULA_Intro_Spy.InspectStringDepartShuttle.slateRef>应该乘坐穿梭机出发</WULA_Intro_Spy.InspectStringDepartShuttle.slateRef>
<!-- EN: Shuttle arrived -->
<WULA_Intro_Spy.LetterLabelShuttleArrived.slateRef>穿梭机已抵达</WULA_Intro_Spy.LetterLabelShuttleArrived.slateRef>
<!-- EN: The shuttle has arrived to collect [asker_nameDef]. -->
<WULA_Intro_Spy.LetterTextShuttleArrived.slateRef>前来迎接[asker_nameDef]的穿梭机已抵达。</WULA_Intro_Spy.LetterTextShuttleArrived.slateRef>
<!-- EN: Guest died: {SUBJECT_definite} -->
<WULA_Intro_Spy.LetterLabelGuestDied.slateRef>宾客已死亡:{SUBJECT_definite}</WULA_Intro_Spy.LetterLabelGuestDied.slateRef>
<!-- EN: {SUBJECT_definite}, who you were charged to protect, has died. [failLetterEndingCommon] -->
<WULA_Intro_Spy.LetterTextGuestDied.slateRef>需要你小心保护的{SUBJECT_definite}已经死亡。[failLetterEndingCommon]</WULA_Intro_Spy.LetterTextGuestDied.slateRef>
<!-- EN: Guest left behind: {SUBJECT_definite} -->
<WULA_Intro_Spy.root.nodes.askerLeftBehind.node.nodes.Letter.label.slateRef>宾客被遗弃:{SUBJECT_definite}</WULA_Intro_Spy.root.nodes.askerLeftBehind.node.nodes.Letter.label.slateRef>
<!-- EN: {SUBJECT_definite}, who you were charged to protect, has been left behind. [failLetterEndingCommon] -->
<WULA_Intro_Spy.root.nodes.askerLeftBehind.node.nodes.Letter.text.slateRef>需要你小心保护的{SUBJECT_definite}被遗弃。[failLetterEndingCommon]</WULA_Intro_Spy.root.nodes.askerLeftBehind.node.nodes.Letter.text.slateRef>
<!-- EN: Unauthorized surgery: {SUBJECT_definite} -->
<WULA_Intro_Spy.LetterLabelUnauthorizedSurgery.slateRef>未授权手术:{SUBJECT_definite}</WULA_Intro_Spy.LetterLabelUnauthorizedSurgery.slateRef>
<!-- EN: Unauthorized, violating surgery has been performed on {SUBJECT_definite}, who you were charged to protect. Because of this violation, [asker_pronoun] will now attempt to leave. [failLetterEndingCommon] -->
<WULA_Intro_Spy.LetterTextUnauthorizedSurgery.slateRef>需要你小心保护的{SUBJECT_definite}接受了一次未授权的额外手术。因为你违规在先,[asker_pronoun]将要离开此处。[failLetterEndingCommon]</WULA_Intro_Spy.LetterTextUnauthorizedSurgery.slateRef>
<!-- EN: Xenogerm absorbed: {SUBJECT_definite} -->
<WULA_Intro_Spy.root.nodes.askerXenogermAbsorbed.node.nodes.Letter.label.slateRef>异种胚芽被吸收:{SUBJECT_definite}</WULA_Intro_Spy.root.nodes.askerXenogermAbsorbed.node.nodes.Letter.label.slateRef>
<!-- EN: {SUBJECT_definite}, who you were charged to protect, has had {SUBJECT_possessive} xenogerm forcibly absorbed. Because of this violation, {SUBJECT_pronoun} will now attempt to leave. [failLetterEndingCommon] -->
<WULA_Intro_Spy.root.nodes.askerXenogermAbsorbed.node.nodes.Letter.text.slateRef>指定由你保护的{SUBJECT_definite}在你的殖民地被吸收了异种胚芽。这是一种侵犯行为,{SUBJECT_pronoun}现在将会直接离开[failLetterEndingCommon]。</WULA_Intro_Spy.root.nodes.askerXenogermAbsorbed.node.nodes.Letter.text.slateRef>
<!-- EN: Captured: {SUBJECT_definite} -->
<WULA_Intro_Spy.LetterLabelCaptured.slateRef>已被俘:{SUBJECT_definite}</WULA_Intro_Spy.LetterLabelCaptured.slateRef>
<!-- EN: {SUBJECT_definite}, who you were charged to host, has been arrested. [failLetterEndingCommon] -->
<WULA_Intro_Spy.LetterTextCaptured.slateRef>需要你小心保护的{SUBJECT_definite}已被俘虏。[failLetterEndingCommon]</WULA_Intro_Spy.LetterTextCaptured.slateRef>
<!-- EN: Guest lost: {SUBJECT_definite} -->
<WULA_Intro_Spy.LetterLabelGuestLost.slateRef>宾客失踪:{SUBJECT_definite}</WULA_Intro_Spy.LetterLabelGuestLost.slateRef>
<!-- EN: {SUBJECT_definite}, who you were charged to protect, has left the designated settlement. [failLetterEndingCommon] -->
<WULA_Intro_Spy.LetterTextGuestLost.slateRef>需要你小心保护的{SUBJECT_definite}在你的殖民地回归自然。[failLetterEndingCommon]</WULA_Intro_Spy.LetterTextGuestLost.slateRef>
<!-- EN: Guest lost: {SUBJECT_definite} -->
<WULA_Intro_Spy.LetterLabelLodgerRanWild.slateRef>宾客失踪:{SUBJECT_definite}</WULA_Intro_Spy.LetterLabelLodgerRanWild.slateRef>
<!-- EN: {SUBJECT_definite}, who you were charged to protect, has run wild. [failLetterEndingCommon] -->
<WULA_Intro_Spy.LetterTextLodgerRanWild.slateRef>需要你小心保护的{SUBJECT_definite}在你的殖民地回归自然。[failLetterEndingCommon]</WULA_Intro_Spy.LetterTextLodgerRanWild.slateRef>
<!-- EN: Shuttle destroyed -->
<WULA_Intro_Spy.LetterLabelShuttleDestroyed.slateRef>穿梭机被毁</WULA_Intro_Spy.LetterLabelShuttleDestroyed.slateRef>
<!-- EN: The shuttle sent to collect [asker_nameDef] has been destroyed. [asker_pronoun] will now leave on foot. [failLetterEndingCommon] -->
<WULA_Intro_Spy.LetterTextShuttleDestroyed.slateRef>前来迎接[asker_nameDef]的穿梭机已被毁。[asker_pronoun]现在只能走回去了。[failLetterEndingCommon]</WULA_Intro_Spy.LetterTextShuttleDestroyed.slateRef>
<!-- EN: Shuttle left behind -->
<WULA_Intro_Spy.root.nodes.pickupShipThingLeftBehind.node.nodes.Letter.label.slateRef>穿梭机被遗弃</WULA_Intro_Spy.root.nodes.pickupShipThingLeftBehind.node.nodes.Letter.label.slateRef>
<!-- EN: The shuttle sent to collect [asker_nameDef] has been left behind. [asker_pronoun] will now leave on foot. -->
<WULA_Intro_Spy.root.nodes.pickupShipThingLeftBehind.node.nodes.Letter.text.slateRef>前来迎接[asker_nameDef]的穿梭机已被遗弃。[asker_pronoun]现在只能走回去了。</WULA_Intro_Spy.root.nodes.pickupShipThingLeftBehind.node.nodes.Letter.text.slateRef>
<!-- EN: Quest failed: [resolvedQuestName] -->
<WULA_Intro_Spy.LetterLabelQuestFailed.slateRef>任务失败:[resolvedQuestName]</WULA_Intro_Spy.LetterLabelQuestFailed.slateRef>
<!-- EN: The shuttle sent to collect [asker_nameDef] has departed without [asker_objective]. [asker_pronoun] will now leave on foot. [failLetterEndingCommon] -->
<WULA_Intro_Spy.LetterTextQuestFailed.slateRef>前来迎接[asker_nameDef]的穿梭机在离开时因为一些原因落下了[asker_objective]。[asker_pronoun]现在只能走回去了。[failLetterEndingCommon]</WULA_Intro_Spy.LetterTextQuestFailed.slateRef>
</LanguageData>