diff --git a/1.6/Assemblies/WulaFallenEmpire.dll b/1.6/Assemblies/WulaFallenEmpire.dll
index 2b898e73..56556321 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
new file mode 100644
index 00000000..e6c92970
--- /dev/null
+++ b/1.6/Defs/EventDefs/EventDef_VariableTest.xml
@@ -0,0 +1,57 @@
+
+
+
+
+ Wula_Test_VariableEvent
+
+ 测试员
+ Textures/Wula/Events/Portraits/Wula_Leader
+
+
+
+
+
+ testNumber
+ 100
+
+
+
+
+
+
+ 变量 testNumber 的当前值为 {testNumber}。点击下面的按钮来改变它。
+
+
+
+
+
+
+
+
+
+ testNumber
+ Add
+ 50
+
+
+
+ Wula_Test_VariableEvent
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Source/WulaFallenEmpire/EventSystem/Dialog_CustomDisplay.cs b/Source/WulaFallenEmpire/EventSystem/Dialog_CustomDisplay.cs
index 2184bd81..75563575 100644
--- a/Source/WulaFallenEmpire/EventSystem/Dialog_CustomDisplay.cs
+++ b/Source/WulaFallenEmpire/EventSystem/Dialog_CustomDisplay.cs
@@ -84,6 +84,9 @@ namespace WulaFallenEmpire
}
HandleAction(def.immediateEffects);
+
+ // Format the description AFTER immediate effects have run
+ selectedDescription = FormatDescription(selectedDescription);
}
public override void DoWindowContents(Rect inRect)
@@ -256,5 +259,14 @@ namespace WulaFallenEmpire
base.PostClose();
HandleAction(def.dismissEffects);
}
+ private string FormatDescription(string description)
+ {
+ var variables = EventContext.GetAllVariables();
+ foreach (var variable in variables)
+ {
+ description = description.Replace("{" + variable.Key + "}", variable.Value.ToString());
+ }
+ return description;
+ }
}
}
diff --git a/Source/WulaFallenEmpire/EventSystem/EventContext.cs b/Source/WulaFallenEmpire/EventSystem/EventContext.cs
index 94a1b3fa..5760f2cf 100644
--- a/Source/WulaFallenEmpire/EventSystem/EventContext.cs
+++ b/Source/WulaFallenEmpire/EventSystem/EventContext.cs
@@ -48,6 +48,11 @@ namespace WulaFallenEmpire
return variables.ContainsKey(name);
}
+ public static Dictionary GetAllVariables()
+ {
+ return new Dictionary(variables);
+ }
+
public static void Clear()
{
variables.Clear();