private void OnAchievmentRewarded(AchievmentData achievmentData, AchievmentTierData tierData) { if (data != null) { if (data.id == achievmentData.id) { Setup(data); } } }
public void RewardAchievment(string id) { AchievmentInfo info = GetAchievment(id); if (info.HasReward) { AchievmentTierData nextTierData = info.NextTier; if (nextTierData != null) { engine.Cast <RavenhillEngine>().DropItems(new List <DropItem> { nextTierData.rewardItem }); info.GoToNextTier(); RavenhillEvents.OnAchievmentRewarded(info.Data, nextTierData); } } }
public static void OnTierAchieved(AchievmentInfo info, AchievmentTierData data) { TierAchieved?.Invoke(info, data); }
public override void Setup(AchievmentData data) { base.Setup(data); this.data = data; achievmentIconImage.overrideSprite = resourceService.GetSprite(data); achievmentNameText.text = resourceService.GetString(data.nameId); AchievmentInfo aInfo = engine.GetService <IAchievmentService>().GetAchievment(data); AchievmentTierData nextTierData = aInfo.NextTier; if (nextTierData != null) { descriptionText.text = resourceService.GetString(data.rankDescriptionId).ReplaceVar("%count%", nextTierData.count); progressImage.fillAmount = Mathf.Clamp01((float)aInfo.Count / (float)nextTierData.count); countText.text = $"{aInfo.Count}/{nextTierData.count}"; if (nextTierData.rewardItem != null && nextTierData.rewardItem != null) { rewardIconImage.overrideSprite = resourceService.GetSprite(nextTierData.rewardItem); rewardCountText.text = nextTierData.rewardItem.count.ToString(); } else { ClearRewardView(); } } else { descriptionText.text = resourceService.GetString(data.descriptionId); progressImage.fillAmount = 1.0f; countText.text = string.Empty; ClearRewardView(); } foreach (AchievmentMedalView medalView in medalViews) { medalView.Setup(data); } if (aInfo.HasReward) { takeButton.ActivateSelf(); takeButton.SetListener(() => { /* * if (aInfo.HasReward && nextTierData != null) { * engine.Cast<RavenhillEngine>().DropItems(new List<DropItem> { aInfo.NextTier.rewardItem }); * aInfo.GoToNextTier(); * Setup(data); * RavenhillEvents.OnAchievmentRewarded(data, nextTierData); * }*/ //engine.GetService<IAchievmentService>().RewardAchievment(data.id); if (aInfo.HasReward && nextTierData != null) { viewService.ShowView(RavenhillViewType.achievment_rank_view, new AchievmentRankView.Data { info = aInfo, tier = nextTierData }); } }, engine.GetService <IAudioService>()); } else { takeButton.DeactivateSelf(); } }
public static void OnAchievmentRewarded(AchievmentData achievmentData, AchievmentTierData tierData) { AchievmentRewarded?.Invoke(achievmentData, tierData); }