diff --git a/1.6/1.6/Assemblies/WulaFallenEmpire.dll b/1.6/1.6/Assemblies/WulaFallenEmpire.dll
index 918fd4d8..4d844f30 100644
Binary files a/1.6/1.6/Assemblies/WulaFallenEmpire.dll and b/1.6/1.6/Assemblies/WulaFallenEmpire.dll differ
diff --git a/1.6/1.6/Defs/EventDefs/EventDef_Wula/Wula_MainEvent.xml b/1.6/1.6/Defs/EventDefs/EventDef_Wula/Wula_MainEvent.xml
index b561a564..28342a2f 100644
--- a/1.6/1.6/Defs/EventDefs/EventDef_Wula/Wula_MainEvent.xml
+++ b/1.6/1.6/Defs/EventDefs/EventDef_Wula/Wula_MainEvent.xml
@@ -13,7 +13,7 @@
-
+
true
(255,255,255,255)
(157,201,185,195)
@@ -23,24 +23,6 @@
-
- 增援
- 乌拉帝国 行星封锁机关的一支分队正在接近。
- 10000
- Wula_PIA_Legion_Faction
- ImmediateAttack
- EdgeDrop
- Combat
-
-
- Combat
- 100
-
- 10
-
-
-
-
@@ -91,4 +73,4 @@
-
+
\ No newline at end of file
diff --git a/1.6/1.6/Defs/StoryTellers/WULA_Storytellers.xml b/1.6/1.6/Defs/StoryTellers/WULA_Storytellers.xml
index 5f8a0e91..5a023ae6 100644
--- a/1.6/1.6/Defs/StoryTellers/WULA_Storytellers.xml
+++ b/1.6/1.6/Defs/StoryTellers/WULA_Storytellers.xml
@@ -180,6 +180,17 @@
8
1
+
+
+ WULA_GiveQuest_Intro_Spy
+ 6
+
+ WULA_Awakened_Synth
+
+
+
\ No newline at end of file
diff --git a/Source/WulaFallenEmpire/Storyteller/StorytellerComp_SingleOnceFixed_FactionFilter.cs b/Source/WulaFallenEmpire/Storyteller/StorytellerComp_SingleOnceFixed_FactionFilter.cs
new file mode 100644
index 00000000..685fe4d9
--- /dev/null
+++ b/Source/WulaFallenEmpire/Storyteller/StorytellerComp_SingleOnceFixed_FactionFilter.cs
@@ -0,0 +1,63 @@
+using System.Collections.Generic;
+using RimWorld;
+using Verse;
+
+namespace WulaFallenEmpire
+{
+ public class StorytellerComp_SingleOnceFixed_FactionFilter : StorytellerComp_SingleOnceFixed
+ {
+ private StorytellerCompProperties_SingleOnceFixed_FactionFilter PropsFilter => (StorytellerCompProperties_SingleOnceFixed_FactionFilter)props;
+
+ public override IEnumerable MakeIntervalIncidents(IIncidentTarget target)
+ {
+ // 检查派系过滤条件
+ if (!CheckFactionFilter())
+ {
+ yield break;
+ }
+
+ // 调用父类的逻辑
+ foreach (var incident in base.MakeIntervalIncidents(target))
+ {
+ yield return incident;
+ }
+ }
+
+ private bool CheckFactionFilter()
+ {
+ if (Faction.OfPlayer == null)
+ return false;
+
+ var playerFactionDef = Faction.OfPlayer.def;
+
+ // 优先检查白名单:如果白名单有内容,只有白名单内的派系才能触发
+ if (PropsFilter.allowedFactionTypes != null && PropsFilter.allowedFactionTypes.Count > 0)
+ {
+ return PropsFilter.allowedFactionTypes.Contains(playerFactionDef);
+ }
+
+ // 然后检查黑名单:如果黑名单有内容,黑名单内的派系不能触发
+ if (PropsFilter.excludedFactionTypes != null && PropsFilter.excludedFactionTypes.Count > 0)
+ {
+ return !PropsFilter.excludedFactionTypes.Contains(playerFactionDef);
+ }
+
+ // 如果既没有白名单也没有黑名单,所有派系都能触发
+ return true;
+ }
+ }
+
+ public class StorytellerCompProperties_SingleOnceFixed_FactionFilter : StorytellerCompProperties_SingleOnceFixed
+ {
+ // 黑名单:这些派系类型不会触发事件
+ public List excludedFactionTypes;
+
+ // 白名单:只有这些派系类型会触发事件(优先级高于黑名单)
+ public List allowedFactionTypes;
+
+ public StorytellerCompProperties_SingleOnceFixed_FactionFilter()
+ {
+ compClass = typeof(StorytellerComp_SingleOnceFixed_FactionFilter);
+ }
+ }
+}
diff --git a/Source/WulaFallenEmpire/WulaFallenEmpire.csproj b/Source/WulaFallenEmpire/WulaFallenEmpire.csproj
index 357129fe..ff80bf29 100644
--- a/Source/WulaFallenEmpire/WulaFallenEmpire.csproj
+++ b/Source/WulaFallenEmpire/WulaFallenEmpire.csproj
@@ -207,6 +207,7 @@
+