Exemplo n.º 1
0
        /// <summary>
        /// MapMasterを指定して敵Viewの生成等、開始処理を行う
        /// </summary>
        public void Startup(MapMaster mapMaster, int mapLevel)
        {
            _mapMaster = mapMaster;
            _mapLevel  = mapLevel;

            for (int i = 0, size = _mapMaster.InitCreateNum.GetRandomValue(); i < size; ++i)
            {
                // プールから敵を取得する
                var enemyControl = GetEnemyByPool();
                var mapEnemyData = _mapMaster.GetRandomEnemyDataFromPopRate();
                var enemyMaster  = _masterHolder.EnemyRepository.Find(mapEnemyData.EnemyType);
                EnemyFactory.Create(this, enemyControl, enemyMaster);

                Models.Add(enemyControl.Model);
                _keyModelValueControl.Add(enemyControl.Model, enemyControl);

                // 削除時
                var subject = new Subject <EnemyControl>();
                subject.Subscribe(enemy_ =>
                {
                    RemoveChara(enemy_);
                });

                enemyControl.OnDestroyed = subject;

                ++_enemyCount;
            }
        }