Esempio n. 1
0
        /// <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);
        }
Esempio n. 2
0
        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);
        }