/// <summary> /// Makes this event happen right now. /// </summary> public void Execute() { foreach (var m in Template.OccurrenceMessages) { foreach (var emp in AffectedEmpires) { var context = new SafeDictionary <string, object>(); var text = m.Text.Evaluate(context); emp.RecordLog(this, text, LogMessages.LogMessageType.Generic); } } var dict = new SafeDictionary <string, object>(); dict.Add("target", Target); // SE4/SE5 style replacement strings turn into dynamic formulas var regex = new Regex(@"\[\%(.*?)\%?\]"); var matches = regex.Matches(Template.Type.Action.Text); foreach (Match m in matches) { dict.Add(m.Captures[0].Value, new ComputedFormula <string>(m.Captures[0].Value, this, true).Value); } PythonScriptEngine.RunScript(Template.Type.Action, dict); }
public override void Act(TDomain domain, TContext context, SafeDictionary <string, ICollection <string> > EnabledMinisters) { var variables = new Dictionary <string, object>(); variables.Add("domain", domain); var readOnlyVariables = new Dictionary <string, object>(); readOnlyVariables.Add("context", context); readOnlyVariables.Add("enabledMinisters", EnabledMinisters); PythonScriptEngine.RunScript <object>(Script as PythonScript, variables, readOnlyVariables); }