예제 #1
0
    private void Awake()
    {
        Application.targetFrameRate = 60;

        _config = Configurable.Instance;

        _playerController  = FindObjectOfType <PlayerController>();
        _uiController      = FindObjectOfType <UiController>();
        _enemiesController = FindObjectOfType <EnemiesController>();

        _enemiesController.Init();

        MakeBlockOnBorders();

        _playerController.Init();

        _uiController.Init(_playerController.GetHp());

        for (int i = 0; i < 3; i++)
        {
            _uiController.SetCurrency((ECurrencyType)i, _config.GetCurrency((ECurrencyType)i));
        }

        SetupAchievementItems();

        _playerController.EvnPlayerHpChange      += OnPlayerHpChange;
        _playerController.EvnPlayerDefeated      += OnPlayerDefeated;
        _enemiesController.EvnAsteroidTerminated += OnAsteroidTerminated;
        _uiController.EvnAchievementDone         += OnAchievementDone;
    }
예제 #2
0
    private void OnAchievementDone(int index)
    {
        AchievementProperty achievementProperty =
            Resources.Load <AchievementData>(AchievementData.ResourcePath).achievementProperties[index];

        int achieveLevel = _config.GetAchievementLevel(achievementProperty.achieveName);

        _config.TakeStatusPoints(achievementProperty.statusType.ToString(),
                                 achievementProperty.points[achieveLevel].point);

        _config.AddAchievementLevel(achievementProperty.achieveName);

        _uiController.SetCurrency(achievementProperty.points[achieveLevel].rewardType,
                                  _config.GiveCurrency(achievementProperty.points[achieveLevel].rewardType,
                                                       achievementProperty.points[achieveLevel].reward));

        achieveLevel = _config.GetAchievementLevel(achievementProperty.achieveName);

        _uiController.SetAchievementItem(index, achievementProperty.achieveName, achievementProperty.description,
                                         achievementProperty.statusType,
                                         achievementProperty.points[achieveLevel].rewardType.ToString(),
                                         achievementProperty.points[achieveLevel].reward,
                                         achieveLevel,
                                         achievementProperty.points[achieveLevel].point,
                                         _config.GetStatusPoint(achievementProperty.statusType.ToString()));

        _uiController.SetAchievementPoint(achievementProperty.statusType,
                                          _config.GetStatusPoint(achievementProperty.statusType.ToString()));
    }