private void DescribeCurrentWorldState(AIScenarioAgent agent, ref List <string> aResult)
        {
            bool value;

            foreach (var kv in agent.GetConditions())
            {
                if (kv.Value == null)
                {
                    continue;
                }

                value = kv.Value.OnCheck();
                aResult.Add(string.Format("      '<color={2}>{0}</color>' = <color={2}>{1}</color>",
                                          kv.Key, value, (value) ? _trueColor : _falseColor));
            }
        }
        /// <summary>
        /// Описывает конкретное действие из плана ИИ.
        /// </summary>
        private string DescribePlanAction(AIScenarioAgent agent, Action action, out int aNumLines)
        {
            var lines = new List <string> ();

            lines.Add(string.Format("<b><color={1}>ACTION</color> '<color={2}>{0}</color>'</b>",
                                    action.name, _titleColor, _nameColor));
            lines.Add("   <b>Post Conditions</b>");

            bool value;

            foreach (var kv in agent.GetConditions())
            {
                if (kv.Value == null)
                {
                    continue;
                }

                value = kv.Value.OnCheck();

                bool diff = false;
                foreach (var set in action._preConditions)
                {
                    if (set.Item1 == kv.Key && set.Item2 != value)
                    {
                        diff  = true;
                        value = set.Item2;
                        break;
                    }
                }
                foreach (var set in action._postConditions)
                {
                    if (set.Item1 == kv.Key && set.Item2 != value)
                    {
                        diff  = true;
                        value = set.Item2;
                        break;
                    }
                }

                if (diff)
                {
                    lines.Add(string.Format(
                                  "      <color=#a873dd><b>></b></color> <i>'<color={2}>{0}</color>' = <color={2}>{1}</color></i>",
                                  kv.Key, value, value ? _trueColor : _falseColor));
                }
                else
                {
                    lines.Add(string.Format("      '<color={2}>{0}</color>' = <color={2}>{1}</color>",
                                            kv.Key, value, value ? _trueColor : _falseColor));
                }
            }

            StringBuilder text = new StringBuilder();

            for (int i = 0, n = lines.Count; i < n; i++)
            {
                text.AppendLine(lines[i]);
            }

            aNumLines = lines.Count;
            return(text.ToString());
        }