Exemple #1
0
 private void OnAchievmentRewarded(AchievmentData achievmentData, AchievmentTierData tierData)
 {
     if (data != null)
     {
         if (data.id == achievmentData.id)
         {
             Setup(data);
         }
     }
 }
Exemple #2
0
        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);
                }
            }
        }
Exemple #3
0
 public static void OnTierAchieved(AchievmentInfo info, AchievmentTierData data)
 {
     TierAchieved?.Invoke(info, data);
 }
Exemple #4
0
        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();
            }
        }
Exemple #5
0
 public static void OnAchievmentRewarded(AchievmentData achievmentData, AchievmentTierData tierData)
 {
     AchievmentRewarded?.Invoke(achievmentData, tierData);
 }