コード例 #1
0
 public DefenderModel(DefenderSetting defenderSetting)
 {
     AttackSpeed        = defenderSetting.AttackSpeed;
     DefenderUnitLevels = defenderSetting.DefenderLevels;
     AttackValue        = defenderSetting.AttackValue;
     CurrentLevel       = defenderSetting.StartLevel;
     Experience         = defenderSetting.Experience;
 }
コード例 #2
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);
        }
    }