using UnityEngine; using System.Collections; using UnityEngine.UI; using GCGame.Table; using System.Collections.Generic; public class AdvanceWishPanelCtr : MonoBehaviour { public Slider wishSlider; public Text valueDesc; public AdvanceStarPanelCtr starPanel; public int _CurWishValue; private Dictionary GradeStarDic = new Dictionary(); public Text _WishDesc; //祝福值作用描述 public Text _WishDayDecDesc; //祝福值每日减少描述 public void GetAllGradeStarCount() { var AllStarCountDic = TableManager.GetAdvanceBase().Values; GradeStarDic = new Dictionary(); foreach (var info in AllStarCountDic) { if((info.Id - info.Level) / 1000 -1 == curAdvanceType) { if (!GradeStarDic.ContainsKey(info.Grade)) { GradeStarDic.Add(info.Grade, info.GradeTotalStar); } } } } private int curAdvanceType; private int curBaseId; public void InitWishPanel(AdvanceInfo info) { //baseId curBaseId = (info.type + 1) * 1000 + info.level; Tab_AdvanceBase advanceBase = TableManager.GetAdvanceBaseByID(curBaseId, 0); if (advanceBase == null) { return; } int nextBaseId = curBaseId + 1; Tab_AdvanceBase nextAdvanceBase = TableManager.GetAdvanceBaseByID(nextBaseId, 0); if (nextAdvanceBase == null) { return; } //当前祝福值百分比 wishSlider.value = (float)info.wish / (float)nextAdvanceBase.WishValueLimit; valueDesc.text = info.wish + "/" + nextAdvanceBase.WishValueLimit; _CurWishValue = info.wish; curAdvanceType = info.type; GetAllGradeStarCount(); RefreshStarPanel(curBaseId); InitWishDesc(); InitWishDayDecDesc(advanceBase.DayDecWishValuePercent > 0); } public void InitWishDesc() { switch(curAdvanceType) { case (int)AdvanceBase.AdvanceType.Ride: { _WishDesc.gameObject.SetActive(false); } break; default: { _WishDesc.gameObject.SetActive(true); _WishDesc.text = StrDictionary.GetClientDictionaryString("#{42713}"); } break; } } private int _CurAdvanceType = -1; public void RefreshWishPanel(AdvanceRetInfo info) { if(_CurAdvanceType != info.type) { GetAllGradeStarCount(); _CurAdvanceType = info.type; } int baseId = (info.type + 1) * 1000 + info.level; Tab_AdvanceBase advanceBase = TableManager.GetAdvanceBaseByID(baseId, 0); if (advanceBase == null) { return; } RefreshStarPanel(baseId); int nextBaseId = baseId + 1; Tab_AdvanceBase nextAdvanceBase = TableManager.GetAdvanceBaseByID(nextBaseId, 0); if (nextAdvanceBase == null) { return; } //当前祝福值百分比 wishSlider.value = (float)info.wish / (float)nextAdvanceBase.WishValueLimit; valueDesc.text = info.wish + "/" + nextAdvanceBase.WishValueLimit; _CurWishValue = info.wish; InitWishDayDecDesc(advanceBase.DayDecWishValuePercent > 0); } public void InitWishDayDecDesc(bool _IsDec) { _WishDayDecDesc.text = StrDictionary.GetClientDictionaryString(_IsDec ? "#{42715}" : "#{42714}"); } public void RefreshStarPanel(int baseId) { Tab_AdvanceBase advanceBase = TableManager.GetAdvanceBaseByID(baseId, 0); if(advanceBase == null) { return; } int curGradeStarCount = GradeStarDic.ContainsKey(advanceBase.Grade) ? GradeStarDic[advanceBase.Grade] : -1; if(curGradeStarCount == -1) { starPanel.gameObject.SetActive(false); } else { starPanel.gameObject.SetActive(true); starPanel.InitAdvaceStarItem(curGradeStarCount, advanceBase.Star); } } }