private void CreateGates(Configs.DungeonConfig dungeonCfg, DungeonLogic dungeonLogic)
        {
            foreach (GateConfig gateConfig in dungeonCfg.ShowGateList())
            {
                Type gateClass = Type.GetType(gateConfig.ClassName());
                Gates.GateController gateController = (Gates.GateController)gateClass
                                                      .GetConstructor(new[] { typeof(int), typeof(Environment.Environment) })
                                                      .Invoke(new object[] { gateConfig.Id(), defaultEnvironment });
                gateClass.GetMethod("SetCookies").Invoke(gateController, new[] { gateConfig.CookiesList() });

                dungeonLogic.AddGate(gateController);
            }
        }
        private void CreateStageActivators(Configs.DungeonConfig dungeonConfigCfg, DungeonLogic dungeonLogic)
        {
            foreach (StageActivatorConfig stageActivatorConfig in dungeonConfigCfg.StageActivatorList())
            {
                Type stageActivatorClass = Type.GetType(stageActivatorConfig.ClassName());
                StageActivators.StageActivator stageActivator =
                    (StageActivators.StageActivator)stageActivatorClass
                    .GetConstructor(new[] { typeof(Environment.Environment) })
                    .Invoke(new object[] { defaultEnvironment });
                stageActivatorClass.GetMethod("SetCookies")
                .Invoke(stageActivator, new[] { stageActivatorConfig.CookiesList() });

                dungeonLogic.AddStageActivator(stageActivator);
            }
        }