using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using vnxbqy.UI;
|
using System;
|
using UnityEngine.UI;
|
using LitJson;
|
using System.Linq;
|
|
namespace vnxbqy.UI
|
{
|
public class FairyBossHurtCell : CellView
|
{
|
[SerializeField] List<ItemCell> 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<FairyBossModel>());
|
}
|
}
|
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<int[][]>(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(() => {
|
|
//改成协程处理,间隔50毫秒领取一次
|
SnxxzGame.Instance.StartCoroutine(GetAward());
|
});
|
}
|
|
//改成协程处理,间隔50毫秒领取一次
|
IEnumerator GetAward()
|
{
|
var awardType = index / 1000;
|
//改成批量领取
|
List<int> keys = new List<int>();
|
if (awardType == 1)
|
{
|
keys = FamilyBossHurtAwardConfig.personalHurtAwards.Keys.ToList();
|
}
|
else
|
{
|
keys = FamilyBossHurtAwardConfig.familyHurtAwards.Keys.ToList();
|
}
|
|
for (int i = 0; i < keys.Count; i++)
|
{
|
if (fairyBossModel.GetAwardState(keys[i]) == 1)
|
{
|
var send = new CA504_tagCMPlayerGetReward();
|
send.RewardType = 63;
|
send.DataEx = (byte)awardType;
|
send.DataExStr = (keys[i] % 1000).ToString();
|
send.DataExStrLen = (byte)send.DataExStr.Length;
|
GameNetSystem.Instance.SendInfo(send);
|
yield return new WaitForSeconds(0.05f);
|
}
|
}
|
}
|
|
}
|
}
|
|