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; }
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())); }