diff --git a/1.6/1.6/Assemblies/WulaFallenEmpire.dll b/1.6/1.6/Assemblies/WulaFallenEmpire.dll
index 27ce99e8..e38939e6 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/Wula_AI_Events.xml b/1.6/1.6/Defs/EventDefs/Wula_AI_Events.xml
index 8cfd99a5..89b3ed22 100644
--- a/1.6/1.6/Defs/EventDefs/Wula_AI_Events.xml
+++ b/1.6/1.6/Defs/EventDefs/Wula_AI_Events.xml
@@ -31,6 +31,18 @@
+
+
+
+
+
+
+ Wula_AI_Initial_Contact
+
+
+
+
+
diff --git a/Source/WulaFallenEmpire/EventSystem/Effect/Effect_OpenAIConversation.cs b/Source/WulaFallenEmpire/EventSystem/Effect/Effect_OpenAIConversation.cs
index 30533397..721fc540 100644
--- a/Source/WulaFallenEmpire/EventSystem/Effect/Effect_OpenAIConversation.cs
+++ b/Source/WulaFallenEmpire/EventSystem/Effect/Effect_OpenAIConversation.cs
@@ -38,4 +38,35 @@ namespace WulaFallenEmpire
}
}
}
+ public class Effect_OpenWulaLink : EffectBase
+ {
+ public string defName;
+
+ public override void Execute(Window dialog = null)
+ {
+ if (string.IsNullOrEmpty(WulaFallenEmpireMod.settings.apiKey))
+ {
+ Messages.Message("AI API Key is not configured in Mod Settings. AI conversation cannot be started.", MessageTypeDefOf.RejectInput, false);
+ return;
+ }
+
+ EventDef eventDef = DefDatabase.GetNamed(defName, false);
+ if (eventDef != null)
+ {
+ var existing = Find.WindowStack.WindowOfType();
+ if (existing != null)
+ {
+ existing.Expand();
+ }
+ else
+ {
+ Find.WindowStack.Add(new Overlay_WulaLink(eventDef));
+ }
+ }
+ else
+ {
+ WulaLog.Debug($"[WulaFallenEmpire] Effect_OpenWulaLink could not find EventDef named '{defName}'");
+ }
+ }
+ }
}