using System.Collections; using System.Collections.Generic; using UnityEngine; using vnxbqy.UI; using System; using UnityEngine.UI; using LitJson; namespace vnxbqy.UI { public class FairyBossHurtCell : CellView { [SerializeField] List m_Items; [SerializeField] IntensifySmoothSlider m_Slider; [SerializeField] Text m_SliderTxt; [SerializeField] ButtonEx m_GetBtn; [SerializeField] Image m_State; FairyBossModel m_Model; FairyBossModel fairyBossModel { get { return m_Model ?? (m_Model = ModelCenter.Instance.GetModel()); } } public void Display(int index) { var awardType = index / 1000; var awardIndex = index % 1000; var awardConfig = awardType == 1 ? FamilyBossHurtAwardConfig.personalHurtAwards[index] : FamilyBossHurtAwardConfig.familyHurtAwards[index]; var awards = JsonMapper.ToObject(awardConfig.AwardItemList); for(int i = 0;i< m_Items.Count;i++) { if (i < awards.Length) { m_Items[i].SetActive(true); int itemID = awards[i][0]; m_Items[i].Init(new ItemCellModel(awards[i][0], false, (ulong)awards[i][1])); m_Items[i].button.AddListener(() => { ItemTipUtility.Show(itemID); }); } else { m_Items[i].SetActive(false); } } long curValue = awardType == 1 ? fairyBossModel.m_PlayerHurt : fairyBossModel.m_FamilyHurt; m_Slider.value = (float)Math.Round((double)curValue / awardConfig.NeedHurtTotal, 2, MidpointRounding.AwayFromZero); m_SliderTxt.text = UIHelper.ReplaceLargeNum(curValue) + "/" + UIHelper.ReplaceLargeNum(awardConfig.NeedHurtTotal); var state = fairyBossModel.GetAwardState(index); m_GetBtn.SetActive(state != 2); m_State.SetActive(state == 2); m_GetBtn.interactable = state == 1; m_GetBtn.AddListener(() => { var send = new CA504_tagCMPlayerGetReward(); send.RewardType = 63; send.DataEx = (byte)awardType; send.DataExStr = awardIndex.ToString(); send.DataExStrLen = (byte)awardIndex.ToString().Length; GameNetSystem.Instance.SendInfo(send); }); } } }