放弃了

This commit is contained in:
2025-08-30 22:43:43 +08:00
parent 34e3e92ec4
commit 9c56f029d5
5 changed files with 122 additions and 21 deletions

View File

@@ -1,5 +1,64 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<QuestScriptDef>
<defName>Wula_Quest_ExampleEvent</defName>
<label>乌拉的呼唤</label>
<description>一个强大的心灵实体将它的意志强加于你的意识之中。</description>
<root Class="QuestNode_Sequence">
<nodes>
<li Class="QuestNode_ResolveQuestName">
<rules>
<rulesStrings>
<li>questName->乌拉的呼唤</li>
</rulesStrings>
</rules>
</li>
<li Class="QuestNode_ResolveQuestDescription">
<rules>
<rulesStrings>
<li>questDescription->一个强大的心灵实体将它的意志强加于你的意识之中。</li>
</rulesStrings>
</rules>
</li>
<li Class="WulaFallenEmpire.QuestNode_Root_EventLetter">
<letterLabel>乌拉需要你的注意</letterLabel>
<letterTitle>乌拉需要你的注意</letterTitle>
<letterText>一个强大的心灵实体将它的意志强加于你的意识之中。它自称为“乌拉”,并要求你阅览它的消息。这股力量是压倒性的,不容拒绝。</letterText>
<options>
<li>
<label>阅览消息</label>
<optionEffects>
<li>
<effects>
<li Class="WulaFallenEmpire.Effect_OpenCustomUI">
<defName>Wula_UI_Anisia_1</defName>
</li>
</effects>
</li>
</optionEffects>
</li>
<li>
<label>尝试抵抗(但失败了)</label>
<optionEffects>
<li>
<effects>
<li Class="WulaFallenEmpire.Effect_OpenCustomUI">
<defName>Wula_UI_Anisia_1</defName>
</li>
<li Class="WulaFallenEmpire.Effect_ShowMessage">
<message>你试图抵抗心灵入侵,但这股力量过于强大。无论如何,消息还是涌入了你的脑海。</message>
<messageTypeDef>NegativeEvent</messageTypeDef>
</li>
</effects>
</li>
</optionEffects>
</li>
</options>
</li>
</nodes>
</root>
</QuestScriptDef>
<QuestScriptDef>
<defName>Wula_Quest_RecoverItem</defName>
<root Class="QuestNode_Sequence">
@@ -50,15 +109,15 @@
<def>Wula_QuestItem_AncientDataDevice</def>
<storeAs>itemStashContents</storeAs>
</li>
<!-- Resolve text -->
<li Class="QuestNode_ResolveQuestName" />
<li Class="QuestNode_ResolveQuestDescription" />
<li Class="WulaFallenEmpire.Quests.QuestNode_AddThingRules">
<thing>$itemStashContents</thing>
<prefix>itemStashContents</prefix>
</li>
<!-- Resolve text -->
<li Class="QuestNode_ResolveQuestName" />
<li Class="QuestNode_ResolveQuestDescription" />
<!-- Start Quest -->
<li Class="QuestNode_Letter">
<label Tkey="LetterLabelQuestAvailable">任务:[questName]</label>
@@ -83,11 +142,19 @@
</li>
<li Class="QuestNode_Signal">
<inSignal>WulaFallenEmpire.Quest.RecoverItem.ItemRecoveredToHome</inSignal>
<node Class="WulaFallenEmpire.Quests.QuestNode_DropShuttleForRecovery">
<map>$itemStashContents.Map</map>
<itemToRecover>$itemStashContents</itemToRecover>
</node>
<inSignal>site.AllEnemiesDefeated</inSignal>
<node Class="QuestNode_Sequence">
<nodes>
<li Class="QuestNode_Letter">
<label>回收穿梭机即将抵达</label>
<text>任务地点的敌人已被清除。乌拉族的回收穿梭机正在赶来,请等待其抵达并装载物品。</text>
</li>
<li Class="WulaFallenEmpire.Quests.QuestNode_DropShuttleForRecovery">
<map>$site.Map</map>
<itemToRecover>$itemStashContents</itemToRecover>
</li>
</nodes>
</node>
</li>
<li Class="QuestNode_Signal">
@@ -96,7 +163,7 @@
<nodes>
<li Class="QuestNode_GiveRewards">
<parms>
<rewardValue>$(800 * questPointFactor)</rewardValue>
<rewardValue>$(800 * questPointFactor)</rewardValue>
</parms>
</li>
<li Class="QuestNode_End">
@@ -106,13 +173,29 @@
</node>
</li>
<!-- Timeout -->
<li Class="QuestNode_SignalActivable">
<inSignal>site.MapRemoved</inSignal>
<inSignalEnable>site.MapGenerated</inSignalEnable>
<node Class="QuestNode_Sequence">
<nodes>
<li Class="QuestNode_Letter">
<label>任务失败:未回收物品</label>
<text>你离开了任务地点,但未能将[itemStashContents_label]装载到回收穿梭机中。乌拉族对此表示失望,任务失败。</text>
</li>
<li Class="QuestNode_End">
<outcome>Fail</outcome>
</li>
</nodes>
</node>
</li>
<!-- Timeout (如果需要仍然可以保留但根据新逻辑MapRemoved可能更优先) -->
<li Class="QuestNode_WorldObjectTimeout">
<worldObject>$site</worldObject>
<isQuestTimeout>true</isQuestTimeout>
<delayTicks>$(randInt(12,28)*60000)</delayTicks>
<inSignalDisable>site.MapGenerated</inSignalDisable>
<outSignalComplete>QuestTimeout</outSignalComplete>
<worldObject>$site</worldObject>
<isQuestTimeout>true</isQuestTimeout>
<delayTicks>$(randInt(12,28)*60000)</delayTicks>
<inSignalDisable>site.MapGenerated</inSignalDisable>
<outSignalComplete>QuestTimeout</outSignalComplete>
</li>
<li Class="QuestNode_End">
<inSignal>QuestTimeout</inSignal>

View File

@@ -8,7 +8,9 @@
<Wula_Quest_RecoverItem_LetterText>你收到了一个来自乌拉族的任务请求。</Wula_Quest_RecoverItem_LetterText>
<Wula_Quest_RecoverItem_ItemPickedUp_Label>已取回物品</Wula_Quest_RecoverItem_ItemPickedUp_Label>
<Wula_Quest_RecoverItem_ItemPickedUp_Text>你的人已经拿到了{0}。现在需要将它安全带回殖民地,乌拉族会派穿梭机来取走它。</Wula_Quest_RecoverItem_ItemPickedUp_Text>
<Wula_Quest_RecoverItem_ShuttleArrived_Label>回收穿梭机抵达</Wula_Quest_RecoverItem_ShuttleArrived_Label>
<Wula_Quest_RecoverItem_ShuttleArrived_Text>乌拉族的回收穿梭机已经抵达。请将{0}装载到穿梭机中以完成任务</Wula_Quest_RecoverItem_ShuttleArrived_Text>
<Wula_Quest_RecoverItem_ShuttleArrived_Label>回收穿梭机即将抵达</Wula_Quest_RecoverItem_ShuttleArrived_Label>
<Wula_Quest_RecoverItem_ShuttleArrived_Text>任务地点的敌人已被清除。乌拉族的回收穿梭机正在赶来,请等待其抵达并装载物品</Wula_Quest_RecoverItem_ShuttleArrived_Text>
<Wula_Quest_RecoverItem_FailedNoShuttle_Label>任务失败:未回收物品</Wula_Quest_RecoverItem_FailedNoShuttle_Label>
<Wula_Quest_RecoverItem_FailedNoShuttle_Text>你离开了任务地点,但未能将{0}装载到回收穿梭机中。乌拉族对此表示失望,任务失败。</Wula_Quest_RecoverItem_FailedNoShuttle_Text>
</LanguageData>

View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8" ?>
<LanguageData>
<!-- Recover Item Quest -->
<Wula_Quest_RecoverItem_Name>Recover: {0}</Wula_Quest_RecoverItem_Name>
<Wula_Quest_RecoverItem_Description>An agent of the Wula has contacted you. They have located an ancient relic containing {0}, guarded by {1} of the {2}.\n\nThey wish for you to retrieve this item. In return, they will provide a reward.\n\nThe location is at [site_tile_label], [site_tile_distance] days travel from [site_tile_label].</Wula_Quest_RecoverItem_Description>
<Wula_Quest_RecoverItem_LetterLabel>Quest: Recover Item</Wula_Quest_RecoverItem_LetterLabel>
<Wula_Quest_RecoverItem_LetterText>You have received a quest request from the Wula.</Wula_Quest_RecoverItem_LetterText>
<Wula_Quest_RecoverItem_ItemPickedUp_Label>Item Retrieved</Wula_Quest_RecoverItem_ItemPickedUp_Label>
<Wula_Quest_RecoverItem_ItemPickedUp_Text>Your people have retrieved the {0}. You now need to bring it safely back to your colony, and the Wula will send a shuttle to collect it.</Wula_Quest_RecoverItem_ItemPickedUp_Text>
<Wula_Quest_RecoverItem_ShuttleArrived_Label>Recovery Shuttle Arrived</Wula_Quest_RecoverItem_ShuttleArrived_Label>
<Wula_Quest_RecoverItem_ShuttleArrived_Text>The enemies at the quest site have been cleared. The Wula recovery shuttle is en route, please wait for its arrival and load the item.</Wula_Quest_RecoverItem_ShuttleArrived_Text>
<Wula_Quest_RecoverItem_FailedNoShuttle_Label>Quest Failed: Item Not Recovered</Wula_Quest_RecoverItem_FailedNoShuttle_Label>
<Wula_Quest_RecoverItem_FailedNoShuttle_Text>You left the quest site without loading the {0} onto the recovery shuttle. The Wula are disappointed, and the quest has failed.</Wula_Quest_RecoverItem_FailedNoShuttle_Text>
</LanguageData>

View File

@@ -50,13 +50,13 @@ namespace WulaFallenEmpire.Quests
if (item.Map != null && item.Map.IsPlayerHome)
{
Find.SignalManager.SendSignal(new Signal("WulaFallenEmpire.Quest.RecoverItem.ItemRecoveredToHome"));
Find.SignalManager.SendSignal(new Signal("WulaFallenEmpire.Quest.RecoverItem.ItemRecoveredToHome", new NamedArgument(item, "SUBJECT")));
}
if (item.ParentHolder is CompTransporter transporter && transporter.groupID == shuttleGroupID)
{
Find.SignalManager.SendSignal(new Signal("WulaFallenEmpire.Quest.RecoverItem.ItemLoadedOnShuttle"));
UnregisterRecoveryQuest(item);
Find.SignalManager.SendSignal(new Signal("WulaFallenEmpire.Quest.RecoverItem.ItemLoadedOnShuttle", new NamedArgument(item, "SUBJECT")));
UnregisterRecoveryQuest(item);
}
}
}