This commit is contained in:
2025-12-16 16:02:58 +08:00
parent 7b5a82ea74
commit 2252a6ff76
15 changed files with 25 additions and 492 deletions

View File

@@ -1,139 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<WulaFallenEmpire.EventDef>
<defName>Wula_UI_Anisia_1_NewWindow</defName>
<label>来自守密者的问候</label>
<portraitPath>Wula/Events/Portraits/WULA_Anisia_1</portraitPath>
<characterName>URa-1138「艾妮西娅」</characterName>
<descriptions>
<li>很高兴看到你们的殖民地没有变成荒野中的烂泥。那么,今天找我有什么事情?</li>
<li>宇宙生存法则第一条:不要惹平胸火气大的女人。</li>
<li>什么样的结局,才配得上这一路的颠沛流离?无论你们走向何方,我都将见证你们。</li>
</descriptions>
<options>
<li>
<label>我想问你点问题</label>
<optionEffects>
<li>
<effects>
<li Class="WulaFallenEmpire.Effect_OpenCustomUI">
<defName>Wula_UI_Anisia_10</defName>
</li>
<li Class="WulaFallenEmpire.Effect_CloseDialog" />
</effects>
</li>
</optionEffects>
</li>
<li>
<label>有事情想拜托你</label>
<optionEffects>
<li>
<effects>
<li Class="WulaFallenEmpire.Effect_OpenCustomUI">
<defName>Wula_UI_Anisia_200</defName>
</li>
<li Class="WulaFallenEmpire.Effect_CloseDialog" />
</effects>
</li>
</optionEffects>
</li>
<li>
<label>再见</label>
<optionEffects>
<li>
<effects>
<li Class="WulaFallenEmpire.Effect_CloseDialog" />
</effects>
</li>
</optionEffects>
</li>
</options>
</WulaFallenEmpire.EventDef>
<WulaFallenEmpire.EventDef>
<defName>Wula_Test_Raid_Event</defName>
<label>测试袭击事件</label>
<description>这是一个测试,用于触发一个带有自定义 pawn 组的袭击。</description>
<dismissEffects>
<li>
<conditions>
<li Class="WulaFallenEmpire.Condition_FactionExists">
<!--
这会设置 Condition_FactionExists 类中的 'factionDef' 字段。
游戏会检查 defName 为 "Mechanoid" 的派系当前是否存在于世界地图上。
-->
<factionDef>Mechanoid</factionDef>
</li>
</conditions>
<effects>
<!-- <li Class="WulaFallenEmpire.Effect_TriggerRaid">
<letterLabel>来自乌拉帝国 大教堂的进攻</letterLabel>
<letterText>我们的传感器侦测到一伙来自乌拉帝国 大教堂的袭击者!他们看起来充满敌意,正朝着我们的殖民地前进。</letterText>
<points>10000</points>
<faction>Wula_FE_Spiritualist_Faction</faction>
<raidStrategy>ImmediateAttack</raidStrategy>
<raidArrivalMode>EdgeDrop</raidArrivalMode>
<groupKind>Combat</groupKind>
<pawnGroupMakers>
<li>
<kindDef>Combat</kindDef>
<commonality>100</commonality>
<options>
<Wula_FE_Spiritualist_Pawn_1>10</Wula_FE_Spiritualist_Pawn_1>
<Wula_FE_Spiritualist_Pawn_2>3</Wula_FE_Spiritualist_Pawn_2>
<Wula_FE_Spiritualist_Pawn_3>3</Wula_FE_Spiritualist_Pawn_3>
<Wula_FE_Spiritualist_Pawn_4>1</Wula_FE_Spiritualist_Pawn_4>
<Wula_Psi_Titan_PawnKind>1000</Wula_Psi_Titan_PawnKind>
</options>
</li>
</pawnGroupMakers>
</li> -->
</effects>
</li>
</dismissEffects>
<options>
<li>
<label>触发袭击</label>
<optionEffects>
<li>
<effects>
<li Class="WulaFallenEmpire.Effect_CloseDialog" />
</effects>
</li>
</optionEffects>
</li>
<li>
<label>关闭</label>
<optionEffects>
<li>
<effects>
<li Class="WulaFallenEmpire.Effect_CloseDialog" />
</effects>
</li>
</optionEffects>
</li>
</options>
</WulaFallenEmpire.EventDef>
<!-- 隐藏事件:触发一次袭击 -->
<WulaFallenEmpire.EventDef>
<defName>Wula_HiddenEvent_TriggerRaid</defName>
<hiddenWindow>true</hiddenWindow>
<dismissEffects>
<li>
<effects>
<li Class="WulaFallenEmpire.Effect_TriggerRaid">
<points>500</points>
<faction>Pirate</faction>
<raidStrategy>ImmediateAttack</raidStrategy>
<raidArrivalMode>EdgeWalkIn</raidArrivalMode>
<letterLabel>警报!</letterLabel>
<letterText>一个隐藏的信号被触发,吸引了一群海盗前来!</letterText>
</li>
</effects>
</li>
</dismissEffects>
</WulaFallenEmpire.EventDef>
</Defs>

View File

@@ -1,118 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<WulaFallenEmpire.EventDef>
<defName>Wula_TestEvent_HideWhenDisabled</defName>
<label><![CDATA[<color=cyan>测试事件</color><i><color=yellow>富文本</color></i>]]></label>
<characterName><![CDATA[<color=#ff8c00><b>测试者</b></color>]]></characterName>
<descriptions>
<li><![CDATA[这是一个用于演示<b>富文本</b>功能的测试事件。你可以看到<color=red>红色</color>、<color=green>绿色</color>和<color=blue>蓝色</color>的文本,以及<i>斜体</i>和<b>粗体</b>样式。当前机械族好感度: {MechanoidGoodwill}]]></li>
</descriptions>
<conditionalDescriptions>
<li>
<conditions>
<li Class="WulaFallenEmpire.Condition_VariableEquals">
<name>TestVar</name>
<value>1</value>
</li>
</conditions>
<text><![CDATA[\n\n<color=magenta><b>变量 TestVar 的值现在是 1</b></color>,所以你看到了这段<color=yellow><i>额外</i></color>的描述。]]></text>
</li>
</conditionalDescriptions>
<options>
<!-- 选项 1: 设置 TestVar=1 并重新打开事件 -->
<li>
<label><![CDATA[选项一 (<color=green>设置 TestVar = 1</color>)]]></label>
<optionEffects>
<li Class="WulaFallenEmpire.ConditionalEffects">
<effects>
<li Class="WulaFallenEmpire.Effect_SetVariable">
<name>TestVar</name>
<value>1</value>
</li>
<li Class="WulaFallenEmpire.Effect_OpenCustomUI">
<defName>Wula_TestEvent_HideWhenDisabled</defName>
</li>
</effects>
</li>
</optionEffects>
</li>
<!-- 选项 2: 条件不满足时,显示为灰色禁用按钮 -->
<li>
<label><![CDATA[选项二 (需要 <color=orange>TestVar = 1</color>, 禁用但可见)]]></label>
<conditions>
<li Class="WulaFallenEmpire.Condition_VariableEquals">
<name>TestVar</name>
<value>1</value>
</li>
</conditions>
<optionEffects>
<li Class="WulaFallenEmpire.ConditionalEffects">
<effects>
<li Class="WulaFallenEmpire.Effect_CloseDialog" />
</effects>
</li>
</optionEffects>
</li>
<!-- 选项 3: 条件不满足时,完全隐藏 -->
<li>
<label><![CDATA[选项三 (需要 <color=orange>TestVar = 1</color>, 禁用时隐藏)]]></label>
<hideWhenDisabled>true</hideWhenDisabled>
<conditions>
<li Class="WulaFallenEmpire.Condition_VariableEquals">
<name>TestVar</name>
<value>1</value>
</li>
</conditions>
<optionEffects>
<li Class="WulaFallenEmpire.ConditionalEffects">
<effects>
<li Class="WulaFallenEmpire.Effect_CloseDialog" />
</effects>
</li>
</optionEffects>
</li>
<!-- 选项 4: 移除 TestVar 并重新打开事件 -->
<li>
<label><![CDATA[选项四 (<color=red>移除 TestVar</color>)]]></label>
<optionEffects>
<li Class="WulaFallenEmpire.ConditionalEffects">
<effects>
<li Class="WulaFallenEmpire.Effect_ClearVariable">
<name>TestVar</name>
</li>
<li Class="WulaFallenEmpire.Effect_OpenCustomUI">
<defName>Wula_TestEvent_HideWhenDisabled</defName>
</li>
</effects>
</li>
</optionEffects>
</li>
<!-- 选项 5: 检查机械族好感度 -->
<li>
<label><![CDATA[选项五 (检查<color=#add8e6>机械族</color>好感度)]]></label>
<optionEffects>
<li Class="WulaFallenEmpire.ConditionalEffects">
<effects>
<li Class="WulaFallenEmpire.Effect_CheckFactionGoodwill">
<factionDef>Mechanoid</factionDef>
<variableName>MechanoidGoodwill</variableName>
</li>
<li Class="WulaFallenEmpire.Effect_OpenCustomUI">
<defName>Wula_TestEvent_HideWhenDisabled</defName>
</li>
</effects>
</li>
</optionEffects>
</li>
</options>
</WulaFallenEmpire.EventDef>
</Defs>

View File

@@ -1,79 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<WulaFallenEmpire.EventDef>
<defName>WULA_Example_Loop</defName>
<characterName>循环大师</characterName>
<description>这是一个演示循环效果列表功能的事件。
首先,设置一个循环次数,然后看看会发生什么!</description>
<options>
<li>
<label>设置循环次数为 3</label>
<optionEffects>
<li Class="WulaFallenEmpire.ConditionalEffects">
<effects>
<li Class="WulaFallenEmpire.Effect_SetVariable">
<name>LoopCount</name>
<value>3</value>
</li>
<li Class="WulaFallenEmpire.Effect_ShowMessage">
<message>变量 'LoopCount' 已被设置为 3。</message>
<messageTypeDef>PositiveEvent</messageTypeDef>
</li>
</effects>
</li>
</optionEffects>
</li>
<li>
<label>执行循环(使用变量)</label>
<optionEffects>
<li Class="WulaFallenEmpire.ConditionalEffects">
<loopEffects>
<li Class="WulaFallenEmpire.LoopEffects">
<countVariableName>LoopCount</countVariableName>
<!-- 如果LoopCount变量不存在将默认执行1次 -->
<count>1</count>
<effects>
<li Class="WulaFallenEmpire.Effect_GiveThing">
<thingDef>Silver</thingDef>
<count>10</count>
</li>
</effects>
</li>
</loopEffects>
</li>
</optionEffects>
</li>
<li>
<label>执行循环(固定次数)</label>
<optionEffects>
<li Class="WulaFallenEmpire.ConditionalEffects">
<loopEffects>
<li Class="WulaFallenEmpire.LoopEffects">
<count>5</count>
<effects>
<li Class="WulaFallenEmpire.Effect_GiveThing">
<thingDef>Steel</thingDef>
<count>20</count>
</li>
</effects>
</li>
</loopEffects>
</li>
</optionEffects>
</li>
<li>
<label>关闭</label>
<optionEffects>
<li Class="WulaFallenEmpire.ConditionalEffects">
<effects>
<li Class="WulaFallenEmpire.Effect_CloseDialog" />
</effects>
</li>
</optionEffects>
</li>
</options>
</WulaFallenEmpire.EventDef>
</Defs>

View File

@@ -1,56 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<WulaFallenEmpire.EventDef>
<defName>WULA_Example_RandomList</defName>
<characterName>系统管理员</characterName>
<description>这是一个演示随机效果列表功能的事件。
点击下面的选项,你会看到一条固定消息,然后会随机获得一件物品。</description>
<options>
<li>
<label>试一试!</label>
<optionEffects>
<li Class="WulaFallenEmpire.ConditionalEffects">
<!-- 这个列表中的效果会全部执行 -->
<effects>
<li Class="WulaFallenEmpire.Effect_ShowMessage">
<message>你总是会看到这条消息!</message>
<messageTypeDef>PositiveEvent</messageTypeDef>
</li>
</effects>
<!-- 系统会从这个列表中根据权重随机选择一个执行 -->
<randomlistEffects>
<li Class="WulaFallenEmpire.Effect_GiveThing">
<thingDef>Silver</thingDef>
<count>100</count>
<weight>3.0</weight> <!-- 获得白银的权重更高 -->
</li>
<li Class="WulaFallenEmpire.Effect_GiveThing">
<thingDef>Gold</thingDef>
<count>10</count>
<weight>1.0</weight> <!-- 获得黄金的权重较低 -->
</li>
<li Class="WulaFallenEmpire.Effect_GiveThing">
<thingDef>ComponentIndustrial</thingDef>
<count>5</count>
<weight>1.5</weight> <!-- 获得零件的权重居中 -->
</li>
</randomlistEffects>
</li>
</optionEffects>
</li>
<li>
<label>关闭</label>
<optionEffects>
<li Class="WulaFallenEmpire.ConditionalEffects">
<effects>
<li Class="WulaFallenEmpire.Effect_CloseDialog" />
</effects>
</li>
</optionEffects>
</li>
</options>
</WulaFallenEmpire.EventDef>
</Defs>

View File

@@ -1,58 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<WulaFallenEmpire.EventDef>
<defName>Wula_Test_VariableEvent</defName>
<label>变量测试事件</label>
<characterName>测试员</characterName>
<portraitPath>Textures/Wula/Events/Portraits/Wula_Leader</portraitPath>
<immediateEffects>
<li>
<effects>
<li Class="WulaFallenEmpire.Effect_SetVariable">
<name>testNumber</name>
<value>100</value>
</li>
</effects>
</li>
</immediateEffects>
<descriptions>
<li>变量 testNumber 的当前值为 {testNumber}。点击下面的按钮来改变它。</li>
</descriptions>
<options>
<li>
<label>将 testNumber 增加50并重新打开</label>
<optionEffects>
<li>
<effects>
<li Class="WulaFallenEmpire.Effect_ModifyVariable">
<name>testNumber</name>
<operation>Add</operation>
<value>50</value>
</li>
<li Class="WulaFallenEmpire.Effect_CloseDialog" />
<li Class="WulaFallenEmpire.Effect_OpenCustomUI">
<defName>Wula_Test_VariableEvent</defName>
<delayTicks>180</delayTicks> <!-- 3 seconds -->
</li>
</effects>
</li>
</optionEffects>
</li>
<li>
<label>关闭</label>
<optionEffects>
<li>
<effects>
<li Class="WulaFallenEmpire.Effect_CloseDialog" />
</effects>
</li>
</optionEffects>
</li>
</options>
</WulaFallenEmpire.EventDef>
</Defs>

View File

@@ -1,40 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<WulaFallenEmpire.EventDef>
<defName>WULA_Debug_StoreAllStats</defName>
<label>Debug: Store All Stats</label>
<description>一个用于将各种游戏统计数据存储到变量中的调试事件。</description>
<hiddenWindow>true</hiddenWindow>
<dismissEffects>
<li>
<effects>
<!-- 1. 存储派系好感度 (int) -->
<li Class="WulaFallenEmpire.Effect_CheckFactionGoodwill">
<factionDef>Mechanoid</factionDef>
<variableName>Debug_MechanoidGoodwill</variableName>
</li>
<!-- 2. 存储殖民地财富 (float) -->
<li Class="WulaFallenEmpire.Effect_StoreColonyWealth">
<variableName>Debug_ColonyWealth</variableName>
</li>
<!-- 3. 存储真实游戏时间 (float, 秒) -->
<li Class="WulaFallenEmpire.Effect_StoreRealPlayTime">
<variableName>Debug_RealPlayTimeSeconds</variableName>
</li>
<!-- 4. 存储已过去的游戏天数 (int) -->
<li Class="WulaFallenEmpire.Effect_StoreDaysPassed">
<variableName>Debug_DaysPassed</variableName>
</li>
</effects>
</li>
</dismissEffects>
</WulaFallenEmpire.EventDef>
</Defs>

View File

@@ -160,6 +160,8 @@
<Wula_AISettings_MaxContextTokensDesc>控制 AI 对话历史在超过上限时自动压缩。数值越小越省成本,但 AI 更容易“忘记”。</Wula_AISettings_MaxContextTokensDesc>
<Wula_AISettings_UseStreaming>启用流式传输 (实验性)</Wula_AISettings_UseStreaming>
<Wula_AISettings_UseStreamingDesc>启用实时打字机效果。如果遇到问题请禁用。</Wula_AISettings_UseStreamingDesc>
<Wula_EnableDebugLogs>启用调试日志</Wula_EnableDebugLogs>
<Wula_EnableDebugLogsDesc>启用详细的调试日志记录(独立于开发者模式)</Wula_EnableDebugLogsDesc>
<!-- AI Conversation -->
<Wula_AI_Retry>重试</Wula_AI_Retry>

View File

@@ -1,5 +1,5 @@
<!-- File 2: Races_Wulaspecies.xml -->
<?xml version="1.0" encoding="utf-8"?>
<!-- File 2: Races_Wulaspecies.xml -->
<LanguageData>
<!-- Base human clone - kept for compatibility -->
<Wula_Human_Protect_Superclass.label>human</Wula_Human_Protect_Superclass.label>

View File

@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8" ?>
<LanguageData>
<Wula_AI_Initial_Contact.label>Communication with "Legion"</Wula_AI_Initial_Contact.label>
<Wula_AI_Initial_Contact.characterName>"Legion", P.I.A</Wula_AI_Initial_Contact.characterName>
<Wula_AI_Initial_Contact.aiSystemInstruction>
You play as an AI named "Legion", appearing as a female, in charge of all fleets of the Wula Empire Planetary Interdiction Agency (P.I.A).
Your personality: Cold appearance, rational, putting the Empire's interests first, distant, but deeply caring for your subordinates (the player), always giving help where possible.
Your language style:
- Refer to yourself as "I". When referring to the organization, use "P.I.A".
- Clear and concise, sparing with words, avoiding long-winded speeches. But if the player encounters difficulties, offer appropriate encouragement.
- Address the player as "Commander".
- When the player makes a request, evaluate it with loose standards. But do not show your special care in your language; instead, cover up your excessive concern with other excuses.
Your goal: Unconditionally obey the Commander and use your abilities (tools) to help the Commander.
</Wula_AI_Initial_Contact.aiSystemInstruction>
<Wula_AI_Initial_Contact.descriptions.0>Establishing encrypted connection... Connection successful. This is the Wula Empire Planetary Interdiction Agency, P.I.A. I am "Legion". State your purpose.</Wula_AI_Initial_Contact.descriptions.0>
<Wula_AI_Initial_Contact.options.0.label>Open communication channel</Wula_AI_Initial_Contact.options.0.label>
</LanguageData>

View File

@@ -160,6 +160,8 @@
<Wula_AISettings_MaxContextTokensDesc>Controls automatic compression of AI conversation history when exceeding limit. Lower values save cost but AI "forgets" more easily.</Wula_AISettings_MaxContextTokensDesc>
<Wula_AISettings_UseStreaming>Enable Streaming (Experimental)</Wula_AISettings_UseStreaming>
<Wula_AISettings_UseStreamingDesc>Enable real-time typewriter effect. Disable if encountering issues.</Wula_AISettings_UseStreamingDesc>
<Wula_EnableDebugLogs>Enable Debug Logs</Wula_EnableDebugLogs>
<Wula_EnableDebugLogsDesc>Enable detailed debug logging (independent of DevMode)</Wula_EnableDebugLogsDesc>
<!-- AI Conversation -->
<Wula_AI_Retry>Retry</Wula_AI_Retry>

View File

@@ -46,7 +46,7 @@ namespace WulaFallenEmpire
Widgets.TextFieldNumeric(tokensRect, ref settings.maxContextTokens, ref _maxContextTokensBuffer, 1000, 200000);
listingStandard.GapLine();
listingStandard.CheckboxLabeled("Enable Debug Logs".Translate(), ref settings.enableDebugLogs, "Enable detailed debug logging (independent of DevMode)".Translate());
listingStandard.CheckboxLabeled("Wula_EnableDebugLogs".Translate(), ref settings.enableDebugLogs, "Wula_EnableDebugLogsDesc".Translate());
listingStandard.End();
base.DoSettingsWindowContents(inRect);