diff --git a/1.6/Assemblies/WulaFallenEmpire.dll b/1.6/Assemblies/WulaFallenEmpire.dll
index 56556321..445cff53 100644
Binary files a/1.6/Assemblies/WulaFallenEmpire.dll and b/1.6/Assemblies/WulaFallenEmpire.dll differ
diff --git a/1.6/Defs/EventDefs/EventDef_VariableTest.xml b/1.6/Defs/EventDefs/EventDef_VariableTest.xml
index e6c92970..a6218566 100644
--- a/1.6/Defs/EventDefs/EventDef_VariableTest.xml
+++ b/1.6/Defs/EventDefs/EventDef_VariableTest.xml
@@ -36,6 +36,7 @@
Wula_Test_VariableEvent
+ 180
diff --git a/Source/WulaFallenEmpire/EventSystem/DelayedActionManager.cs b/Source/WulaFallenEmpire/EventSystem/DelayedActionManager.cs
new file mode 100644
index 00000000..09418e75
--- /dev/null
+++ b/Source/WulaFallenEmpire/EventSystem/DelayedActionManager.cs
@@ -0,0 +1,61 @@
+using System;
+using System.Collections.Generic;
+using RimWorld.Planet;
+using Verse;
+
+namespace WulaFallenEmpire
+{
+ public class DelayedActionManager : WorldComponent
+ {
+ private class DelayedAction
+ {
+ public int TicksRemaining;
+ public Action Action;
+ }
+
+ private List actions = new List();
+
+ public DelayedActionManager(World world) : base(world)
+ {
+ }
+
+ public void AddAction(Action action, int delayTicks)
+ {
+ if (action == null || delayTicks <= 0)
+ {
+ return;
+ }
+ actions.Add(new DelayedAction { TicksRemaining = delayTicks, Action = action });
+ }
+
+ public override void WorldComponentTick()
+ {
+ base.WorldComponentTick();
+ for (int i = actions.Count - 1; i >= 0; i--)
+ {
+ DelayedAction delayedAction = actions[i];
+ delayedAction.TicksRemaining--;
+ if (delayedAction.TicksRemaining <= 0)
+ {
+ try
+ {
+ delayedAction.Action();
+ }
+ catch (Exception ex)
+ {
+ Log.Error($"[WulaFallenEmpire] Error executing delayed action: {ex}");
+ }
+ actions.RemoveAt(i);
+ }
+ }
+ }
+
+ public override void ExposeData()
+ {
+ // This simple manager does not save scheduled actions across game loads.
+ // If you need actions to persist, you would need a more complex system
+ // to serialize the action's target and parameters.
+ base.ExposeData();
+ }
+ }
+}
\ No newline at end of file
diff --git a/Source/WulaFallenEmpire/EventSystem/Effect.cs b/Source/WulaFallenEmpire/EventSystem/Effect.cs
index 3f89eea6..c219dd7d 100644
--- a/Source/WulaFallenEmpire/EventSystem/Effect.cs
+++ b/Source/WulaFallenEmpire/EventSystem/Effect.cs
@@ -15,8 +15,29 @@ namespace WulaFallenEmpire
public class Effect_OpenCustomUI : Effect
{
public string defName;
+ public int delayTicks = 0;
public override void Execute(Dialog_CustomDisplay dialog = null)
+ {
+ if (delayTicks > 0)
+ {
+ var actionManager = Find.World.GetComponent();
+ if (actionManager != null)
+ {
+ actionManager.AddAction(() => OpenUI(), delayTicks);
+ }
+ else
+ {
+ Log.Error("[WulaFallenEmpire] DelayedActionManager not found. Cannot schedule delayed UI opening.");
+ }
+ }
+ else
+ {
+ OpenUI();
+ }
+ }
+
+ private void OpenUI()
{
EventDef nextDef = DefDatabase.GetNamed(defName);
if (nextDef != null)
diff --git a/Source/WulaFallenEmpire/WulaFallenEmpire.csproj b/Source/WulaFallenEmpire/WulaFallenEmpire.csproj
index 410e4be6..06dfecae 100644
--- a/Source/WulaFallenEmpire/WulaFallenEmpire.csproj
+++ b/Source/WulaFallenEmpire/WulaFallenEmpire.csproj
@@ -80,6 +80,7 @@
+