protected NonPlayableCreatureObject(SaveData data) : base(data)
        {
            Logic        = new Logic();
            turnsCounter = float.Parse(data.GetStringValue(SaveKeyTurnsCounter));
            logicPattern = data.GetStringValue(SaveKeyLogicPattern);

            if (!string.IsNullOrEmpty(logicPattern))
            {
                var configurator = StandardLogicFactory.GetConfigurator(logicPattern);
                configurator.Configure(Logic);
            }
            else
            {
                Logic.SetInitialStrategy(new StandStillStrategy());
            }

            MaxHealth = data.GetIntValue(SaveKeyMaxHealth);
        }
        protected NonPlayableCreatureObject(string name, int maxHealth, string logicPattern)
            : base(name, maxHealth)
        {
            Logic             = new Logic();
            turnsCounter      = 0;
            this.logicPattern = logicPattern;

            if (!string.IsNullOrEmpty(logicPattern))
            {
                var configurator = StandardLogicFactory.GetConfigurator(logicPattern);
                configurator.Configure(Logic);
            }
            else
            {
                Logic.SetInitialStrategy(new StandStillStrategy());
            }

            MaxHealth = maxHealth;
        }