Ejemplo n.º 1
0
        /// <summary>
        /// Spawnerを初期化
        /// </summary>
        /// <param name="amount">量</param>
        private void GenerateSpawner(int amount)
        {
            for (int i = 0; i < amount; i++)
            {
                Vector3 randomSpace = map.RandomSpace();
                if (randomSpace == Vector3.Zero)                    //Error対策
                {
                    break;
                }

                EnemySetting setting = gameManager.EnemySetting.RandomSpawnerSetting();
                if (setting.ids.Length > 1)                         //配列の場合
                {
                    Spawner spawner = new Spawner(
                        setting.rate, randomSpace, setting.ids,
                        setting.max, setting.amountPerSpawn, characterManager);
                    spawner.InitCurrentTime();
                    characterManager.AddSpawner(spawner);
                }
                else
                {
                    Spawner spawner = new Spawner(
                        setting.rate, randomSpace, setting.ids[0],
                        setting.max, setting.amountPerSpawn, characterManager);
                    spawner.InitCurrentTime();
                    characterManager.AddSpawner(spawner);
                }
            }
        }
Ejemplo n.º 2
0
 public EnemyModel(EnemySetting enemySetting)
 {
     AttackSpeed        = enemySetting.AttackSpeed;
     MovementSpeedRange = enemySetting.MovementSpeedRange;
     Health             = enemySetting.Health;
     AttackValue        = enemySetting.AttackValue;
     ExpForKill         = enemySetting.ExpForKill;
 }
Ejemplo n.º 3
0
    // ===========================
    // Private Function
    // ===========================

    private void Spawn()
    {
        int randomIndex = Random.Range(0, enemySettingList.Count);

        EnemySetting setting = enemySettingList[randomIndex];

        //GameObject enemy = ObjectPooler.Instance.SpawnFormPool(setting.enemyTag, GetSpawnPosition(), Quaternion.identity);
        ObjectPooler.Instance.SpawnFormPool(setting.enemyTag, GetSpawnPosition(), Quaternion.identity);

        float randomTime = Random.Range(minSpawnSpacingTime, maxSapwnSpacingTime);

        Invoke("Spawn", randomTime);
    }
Ejemplo n.º 4
0
        /// <summary>
        /// 配置よりボスを生成
        /// </summary>
        private void GeneratBoss()
        {
            EnemySetting setting = gameManager.EnemySetting.BossSetting;

            for (int i = 0; i < setting.ids.Length; i++)
            {
                int id = setting.ids[i];
                if (id < 0)
                {
                    continue;
                }

                Vector3 bossPosition = map.BossPoint(i);
                characterManager.AddCharacterBossScene(characterManager.Enemys()[id].Clone(bossPosition));
            }
        }
Ejemplo n.º 5
0
    public void InitCurrentLevel(int level)
    {
        ClearLevel();

        CurrentGameLevel = level;
        DefenderSetting     defenderSetting     = Resources.Load <DefenderSetting>("DefenderSetting");
        DefenderViewFactory defenderViewFactory = new DefenderViewFactory(defSpawnPoints);

        DefenderViewUi[] defenderViewUiList = FindObjectsOfType <DefenderViewUi>();
        FortView         fortView           = FindObjectOfType <FortView>();

        fortView.OnKill += OnKillEnemy;
        for (int i = 0; i < defenderViewFactory.Views.Count; i++)
        {
            objectsToClear.Add(defenderViewFactory.Views[i].gameObject);
            defenderControllers.Add(new DefenderController(defenderViewFactory.Views[i], new DefenderModel(defenderSetting), defenderViewUiList[i]));
            defenderViewFactory.Views[i].OnKill += OnKillEnemy;
        }

        EnemySetting     enemySettings    = Resources.Load <EnemySetting>("EnemySetting");
        EnemyViewFactory EnemyViewFactory = new EnemyViewFactory(LevelModels[CurrentGameLevel].EnemiesOnLevelCount, enemySpot);

        LevelModels[CurrentGameLevel].InitCurrentLevel(enemySettings.ExpForKill, LevelClearedGameOver);

        if (fortController != null)
        {
            fortController.Init(FindObjectOfType <FortView>(), FindObjectOfType <FortViewUi>(), LevelModels[CurrentGameLevel]);
        }
        else
        {
            FortController.OnFortDestroyed += LevelLossGameOver;
            fortController = new FortController(fortView, FindObjectOfType <FortViewUi>(), LevelModels[CurrentGameLevel]);
        }

        foreach (var view in EnemyViewFactory.Views)
        {
            objectsToClear.Add(view.gameObject);
            EnemyController enemyController = new EnemyController(view, new EnemyModel(enemySettings));
            foreach (var defender in defenderControllers)
            {
                enemyController.OnDie += defender.OnTargetDieHandler;
            }
            enemyControllers.Add(enemyController);
        }
    }
Ejemplo n.º 6
0
 public DepthMove(EnemySetting setting, Transform transform) : base(setting, transform)
 {
 }
Ejemplo n.º 7
0
 public VerticalMove(EnemySetting setting, Transform transform) : base(setting, transform)
 {
 }
Ejemplo n.º 8
0
 public HorizontalMove(EnemySetting setting, Transform transform) : base(setting, transform)
 {
 }
Ejemplo n.º 9
0
 public EnemyMove(EnemySetting setting, Transform transform)
 {
     m_Setting   = setting;
     myTramsform = transform;
 }