示例#1
0
        public ServiceBusEventController(IEventTransport transport, ISettingsProvider settingsProvider)
        {
            //TODO : Add Factory method to choose map provider
            this.mapController                = new WireGeoRoomController(settingsProvider);
            this.OnRoomSensorChanged         += this.mapController.OnRoomSensorChanged;
            this.OnRoomScheduleStatusChanged += this.mapController.OnRoomScheduleStatusChanged;

            string levelId = settingsProvider.GetPropertyValue(SettingsConst.DefaultLevel_PropertyName);

            this.levelConfig = settingsProvider.GetLevelConfig(levelId);

            this.transport = transport;

            // Check if settings loaded or wait until Configuration will be ready for that
            if (this.levelConfig.isLoaded)
            {
                InitTransport();
            }
            else
            {
                this.levelConfig.OnSettingsLoaded += LevelConfig_OnSettingsLoaded;
            }


            StartUpdateTimer();
        }
        public override void Execute()
        {
            gameCamera.gameObject.GetComponent <CameraView> ().ResetPosition();
            ILevelConfig level = config.getLevel(gameModel.level);
            Vector3      dest  = screenUtil.FillFrustum(level.width * 5f, level.height * 5f);

            gameCamera.gameObject.GetComponent <CameraView> ().GoToPosition(dest);
        }
示例#3
0
 public void Connect(ILevelConfig levelConfig)
 {
     this.levelConfig = levelConfig;
     if (this.levelConfig.isLoaded) // Check if settings ready
     {
         Connect();
     }
     else
     {
         this.levelConfig.OnSettingsLoaded += LevelConfig_OnSettingsLoaded;
     }
 }
示例#4
0
        public ILevelConfig GetLevelConfig(string levelId)
        {
            ILevelConfig cfg = LevelConfig.ContainsKey(levelId) ? LevelConfig[levelId] : null;

            if (cfg == null)
            {
                cfg = new LevelXmlConfig(this, levelId);
                cfg.OnSettingsLoaded += Cfg_OnSettingsLoaded;
                LevelConfig[levelId]  = cfg;
            }

            return(cfg);
        }
示例#5
0
        public ILevelConfig[] EndConfig()
        {
            var          list     = new List <ILevelConfig>();
            ILevelConfig curLevel = this;

            while (curLevel != null)
            {
                list.Add(curLevel);
                curLevel = curLevel.LevelUp;
            }
            list.Reverse();
            return(list.ToArray());
        }
示例#6
0
    public void SelectTestLevelWithIndex(int level) // maybe pass in levels by an index? or by name
    {
        if (level == 1)
        {
            selectedLevel = new BounceLevelConfig();
        }
        else if (level == 2)
        {
            selectedLevel = new HexLevelConfig();
        }
        else if (level == 3)
        {
            selectedLevel = new LavaLevelConfig();
        }

        CheckLoadButtonAvailability();
    }
        public override void Execute()
        {
            Vector3    center = Vector3.zero;
            GameObject gameField;

            //setup the game field
            if (injectionBinder.GetBinding <GameObject> (GameElement.GAME_FIELD) == null)
            {
                gameField = new GameObject(GameElement.GAME_FIELD.ToString());
                gameField.transform.localPosition = center;
                gameField.transform.parent        = contextView.transform;
                //Bind it so we can use it elsewhere
                injectionBinder.Bind <GameObject> ().ToValue(gameField).ToName(GameElement.GAME_FIELD);
            }
            else
            {
                gameField = injectionBinder.GetInstance <GameObject>(GameElement.GAME_FIELD);
            }

            GameObject evenTile = Resources.Load <GameObject> ("EvenTile");
            GameObject oddTile  = Resources.Load <GameObject> ("OddTile");

            //Create tiles
            ILevelConfig level = config.getLevel(gameModel.level);
            int          w     = level.width;
            int          h     = level.height;

            float halfW = (float)w * .5f;
            float halfH = (float)h * .5f;

            int a = 0;

            for (int x = 0; x < w; x++)
            {
                for (int y = 0; y < h; y++)
                {
                    a++;
                    float zPos = ((float)x + .5f - halfW) * level.magnifier;
                    float xPos = ((float)y + .5f - halfH) * level.magnifier;

                    GameObject tile    = (a % 2 == 0) ? evenTile : oddTile;
                    GameObject newTile = GameObject.Instantiate(tile, new Vector3(xPos, 0f, zPos), Quaternion.identity) as GameObject;
                    newTile.transform.parent = gameField.transform;
                }
            }
        }
示例#8
0
        private ILevelConfig CreateFromOverride(LevelOverride lvlOverride, ILevelConfig template = null)
        {
            var level = lvlOverride.Level;

            var result = template?.Clone() ?? new LevelConfig();

            result.LevelIndex     = lvlOverride.LevelIndex.Value;
            result.IsFromAbstract = false;
            result.NumberId       = (lvlOverride.Parent as NumberingInstance).NumberID.Value;
            result.StartValue     = lvlOverride.StartOverrideNumberingValue?.Val?.Value ?? result.StartValue;

            if (level != null)
            {
                result.NumberingFormat  = level.NumberingFormat?.Val?.Value ?? result.NumberingFormat;
                result.ParagraphStyleId = level.ParagraphStyleIdInLevel?.Val?.Value ?? result.ParagraphStyleId;
                result.Text             = level.LevelText?.Val?.Value ?? result.Text;
            }

            return(result);
        }
        public override void Execute()
        {
            ILevelConfig levelConfig = gameConfig.getLevel(gameModel.level);

            gameModel.currentLevel = new LevelModel(levelConfig);

            var halfW = (float)gameModel.currentLevel.width * .5f;
            var halfH = (float)gameModel.currentLevel.height * .5f;

            int enemyCount = gameModel.currentLevel.enemies.Count;

            for (int a = 0; a < enemyCount; a++)
            {
                var   enemy = (ObjectStatus)gameModel.currentLevel.enemies[a];
                float xPos  = (enemy.y + .5f - halfH) * gameModel.currentLevel.magnifier;
                float zPos  = (enemy.x + .5f - halfW) * gameModel.currentLevel.magnifier;

                Vector3 pos = new Vector3(xPos, 0f, zPos);

                createEnemySignal.Dispatch(enemy, 1, pos);
            }
            createPlayerSignal.Dispatch();
        }
示例#10
0
 public void AddConfig(ILevelConfig config)
 {
     this.configs.Add(config.GetType(), config);
 }
 protected void recordPresentedConfig(ILevelConfig para_config)
 {
     if(acResultData == null) { acResultData = new ActivityResult(); }
     acResultData.addPresentedContent(para_config);
     Debug.Log("Registered Presented Content");
 }
示例#12
0
 public void SelectTestLevel()
 {
     selectedLevel = new TestLevelConfig();
     CheckLoadButtonAvailability();
 }
示例#13
0
 public void addPresentedContent(ILevelConfig para_presentedConfig)
 {
     if(presentedContentList == null) { presentedContentList = new List<ILevelConfig>(); }
     presentedContentList.Add(para_presentedConfig);
 }
示例#14
0
        private IEnumerable <(ILevelConfig, LevelOverride)> FindMatchingLevelOverride(ILevelConfig identationConfig, IEnumerable <LevelOverride> levelOverrides)
        {
            var level = levelOverrides.Where(y => y.LevelIndex.Value == identationConfig.LevelIndex).SingleOrDefault();

            if (level != null)
            {
                return(Enumerable.Repeat((identationConfig, level), 1));
            }
            else
            {
                return(Enumerable.Empty <(ILevelConfig, LevelOverride)>());
            }
        }
示例#15
0
 public void Connect(ILevelConfig SettingsProvider)
 {
     throw new NotImplementedException();
 }
示例#16
0
 public LevelModel(ILevelConfig config)
 {
     _config = config;
     Reset();
 }