//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Tuesday, December 11, 2018
|
//--------------------------------------------------------
|
using UnityEngine;
|
using System.Collections;
|
using UnityEngine.UI;
|
using System.Linq;
|
|
|
namespace vnxbqy.UI
|
{
|
//赛季奖励的奖励条
|
|
public class SeasonRewardCell : MonoBehaviour
|
{
|
[SerializeField] Text m_Text_Ranking;
|
[SerializeField] Transform m_Itemlist;
|
[SerializeField] Button m_ReceiveBtn;
|
[SerializeField] GameObject m_IsDrawImage;//已领
|
[SerializeField] GameObject m_IsReachImage;//未达成
|
[SerializeField] Image m_ImageColor;
|
[SerializeField] Image m_ImageWorld;
|
[SerializeField] Text m_Segmenttext;//段位
|
|
CrossServerOneVsOneRewardModel m_CrossServerRewardModel;
|
CrossServerOneVsOneRewardModel crossServerRewardModel { get { return m_CrossServerRewardModel ?? (m_CrossServerRewardModel = ModelCenter.Instance.GetModel<CrossServerOneVsOneRewardModel>()); } }
|
public Button ReceiveBtn
|
{
|
get { return m_ReceiveBtn; }
|
set { m_ReceiveBtn = value; }
|
|
}
|
public void ScrollerDataTypAndId(ScrollerDataType type, int id)
|
{
|
switch (type)
|
{
|
case ScrollerDataType.Header:
|
SetReceiveH(id);
|
break;
|
case ScrollerDataType.Normal:
|
SetReceiveN(id);
|
break;
|
}
|
}
|
|
private void SetReceiveH(int id)
|
{
|
if (!crossServerRewardModel.SeasonRewardDic.AwardDic.ContainsKey(id))
|
{
|
return;
|
}
|
m_Text_Ranking.SetActive(true);
|
m_Segmenttext.SetActive(false);
|
m_ImageColor.SetActive(true);
|
m_ImageWorld.SetActive(true);
|
var keyList = crossServerRewardModel.SeasonRewardDic.AwardDic.Keys.ToList();
|
int Index = keyList.IndexOf(id);
|
if (Index == 0)
|
{
|
m_Text_Ranking.text = Language.Get("CrossServer_Z5", 1, id);
|
}
|
else
|
{
|
int Number = keyList[(Index - 1)];
|
m_Text_Ranking.text = Language.Get("CrossServer_Z5", (Number + 1), id);
|
}
|
switch (Index)
|
{
|
case 0:
|
m_ImageColor.SetSprite("CrossServer_1");
|
m_ImageWorld.SetSprite("CrossServer_6");
|
break;
|
case 1:
|
m_ImageColor.SetSprite("CrossServer_2");
|
m_ImageWorld.SetSprite("CrossServer_7");
|
break;
|
case 2:
|
m_ImageColor.SetSprite("CrossServer_3");
|
m_ImageWorld.SetSprite("CrossServer_8");
|
break;
|
}
|
if (CrossServerOneVsOnePKSeason.Instance.SeasonState != 2)
|
{
|
m_ReceiveBtn.SetActive(false);
|
m_IsDrawImage.SetActive(false);
|
m_IsReachImage.SetActive(false);
|
}
|
else
|
{
|
if (IsOnTheList())
|
{
|
if (ListIndex(crossServerRewardModel.MyRank) == Index)
|
{
|
bool isbool = crossServerRewardModel.IsAwardState(CrossRealmPKAwardStateEnum.SeasonAwardState, -1);
|
if (isbool)
|
{
|
m_IsReachImage.SetActive(false);
|
m_ReceiveBtn.SetActive(false);
|
m_IsDrawImage.SetActive(true);
|
}
|
else
|
{
|
m_ReceiveBtn.SetActive(true);
|
m_IsReachImage.SetActive(false);
|
m_IsDrawImage.SetActive(false);
|
m_ReceiveBtn.SetListener(() =>
|
{
|
crossServerRewardModel.CrossRealmPKGetAward(CrossRealmPKAwardStateEnum.SeasonAwardState, 0);
|
});
|
}
|
}
|
else
|
{
|
m_IsReachImage.SetActive(true);
|
m_ReceiveBtn.SetActive(false);
|
m_IsDrawImage.SetActive(false);
|
}
|
|
}
|
else
|
{
|
m_IsReachImage.SetActive(true);
|
m_ReceiveBtn.SetActive(false);
|
m_IsDrawImage.SetActive(false);
|
}
|
}
|
ReceiveItemH(id);
|
}
|
|
private void ReceiveItemH(int Id)
|
{
|
var List = crossServerRewardModel.SeasonRewardDic.GetAwardItem(Id);
|
for (int i = 0; i < m_Itemlist.childCount; i++)
|
{
|
GameObject ObjChild = m_Itemlist.GetChild(i).gameObject;
|
KingRewardItem kingRewardItem = ObjChild.GetComponent<KingRewardItem>();
|
if (i < List.Count)
|
{
|
ObjChild.SetActive(true);
|
var config = KingTreasureItemConfig.Get(List[i].id);
|
var Itemconfig = ItemConfig.Get(List[i].id);
|
if (config != null)
|
{
|
kingRewardItem.KingText.SetActive(true);
|
kingRewardItem.KingText.text = config.qualityName;
|
if (Itemconfig != null)
|
{
|
kingRewardItem.KingText.color = UIHelper.GetUIColor(Itemconfig.ItemColor,false);
|
}
|
}
|
else
|
{
|
kingRewardItem.KingText.SetActive(false);
|
}
|
ItemCell _ItemCell = kingRewardItem.ItemCell;
|
UIEffect ui = kingRewardItem.ItemCell.GetComponent<UIEffect>();
|
if (Itemconfig.ItemColor >= 5)
|
{
|
ui.Play();
|
}
|
else
|
{
|
ui.Stop();
|
}
|
ItemCellModel cellModel = new ItemCellModel(List[i].id, true, (ulong)List[i].count);
|
_ItemCell.Init(cellModel);
|
int type = i;
|
_ItemCell.button.SetListener(() =>
|
{
|
ItemTipUtility.Show(List[type].id);
|
});
|
}
|
else
|
{
|
ObjChild.SetActive(false);
|
}
|
|
}
|
}
|
|
private void SetReceiveN(int Id)
|
{
|
if (!crossServerRewardModel.SeasonRewardConfigDic.ContainsKey(Id))
|
{
|
return;
|
}
|
m_Text_Ranking.SetActive(false);
|
m_Segmenttext.SetActive(true);
|
m_ImageColor.SetActive(true);
|
m_ImageColor.SetSprite("CrossServer_4");
|
m_ImageWorld.SetActive(false);
|
var config = CrossServerArenaConfig.Get(Id);
|
if (config != null)
|
{
|
m_Segmenttext.text = config.Name;
|
// m_Segmenttext.color = UIHelper.GetDanLVColor(config.DanLV, false);
|
}
|
if (CrossServerOneVsOnePKSeason.Instance.SeasonState != 2)
|
{
|
m_ReceiveBtn.SetActive(false);
|
m_IsDrawImage.SetActive(false);
|
m_IsReachImage.SetActive(false);
|
}
|
else
|
{
|
if (!IsOnTheList())
|
{
|
if (CrossServerOneVsOnePlayerInfo.Instance.DanLV == Id)
|
{
|
bool isbool = crossServerRewardModel.IsAwardState(CrossRealmPKAwardStateEnum.SeasonAwardState, -1);
|
if (isbool)
|
{
|
m_IsReachImage.SetActive(false);
|
m_ReceiveBtn.SetActive(false);
|
m_IsDrawImage.SetActive(true);
|
}
|
else
|
{
|
m_ReceiveBtn.SetActive(true);
|
m_IsReachImage.SetActive(false);
|
m_IsDrawImage.SetActive(false);
|
m_ReceiveBtn.SetListener(()=>
|
{
|
crossServerRewardModel.CrossRealmPKGetAward(CrossRealmPKAwardStateEnum.SeasonAwardState,0);
|
});
|
}
|
}
|
else
|
{
|
m_IsReachImage.SetActive(true);
|
m_ReceiveBtn.SetActive(false);
|
m_IsDrawImage.SetActive(false);
|
}
|
}
|
else
|
{
|
m_IsReachImage.SetActive(true);
|
m_ReceiveBtn.SetActive(false);
|
m_IsDrawImage.SetActive(false);
|
}
|
}
|
ReceiveItemN(Id);
|
}
|
private void ReceiveItemN(int Id)
|
{
|
var List = crossServerRewardModel.SeasonRewardConfigDic[Id];
|
for (int i = 0; i < m_Itemlist.childCount; i++)
|
{
|
GameObject ObjChild = m_Itemlist.GetChild(i).gameObject;
|
KingRewardItem kingRewardItem = ObjChild.GetComponent<KingRewardItem>();
|
if (i < List.Count)
|
{
|
ObjChild.SetActive(true);
|
var config = KingTreasureItemConfig.Get(List[i].ItemId);
|
var Itemconfig = ItemConfig.Get(List[i].ItemId);
|
if (config != null)
|
{
|
kingRewardItem.KingText.SetActive(true);
|
kingRewardItem.KingText.text = config.qualityName;
|
|
if (Itemconfig != null)
|
{
|
kingRewardItem.KingText.color = UIHelper.GetUIColor(Itemconfig.ItemColor, false);
|
}
|
}
|
else
|
{
|
kingRewardItem.KingText.SetActive(false);
|
}
|
ItemCell _ItemCell = kingRewardItem.ItemCell;
|
UIEffect ui = kingRewardItem.ItemCell.GetComponent<UIEffect>();
|
if (Itemconfig.ItemColor >= 5)
|
{
|
ui.Play();
|
}
|
else
|
{
|
ui.Stop();
|
}
|
ItemCellModel cellModel = new ItemCellModel(List[i].ItemId, true, (ulong)List[i].ItemNumber);
|
_ItemCell.Init(cellModel);
|
int type = i;
|
_ItemCell.button.SetListener(() =>
|
{
|
ItemTipUtility.Show(List[type].ItemId);
|
});
|
}
|
else
|
{
|
ObjChild.SetActive(false);
|
}
|
}
|
}
|
private bool IsOnTheList()
|
{
|
bool Isbool = false;
|
|
if (CrossServerOneVsOnePlayerInfo.Instance.Score > 0)
|
{
|
int Number = 0;
|
var keyList = crossServerRewardModel.SeasonRewardDic.AwardDic.Keys.ToList();
|
for (int i = 0; i < keyList.Count; i++)
|
{
|
Number = keyList[i];
|
}
|
|
if (crossServerRewardModel.MyRank > -1 && crossServerRewardModel.MyRank < Number)
|
{
|
Isbool = true;
|
}
|
}
|
|
return Isbool;
|
}
|
|
private int ListIndex(int myRank)
|
{
|
int type = 0;
|
var keyList = crossServerRewardModel.SeasonRewardDic.AwardDic.Keys.ToList();
|
for (int i = 0; i < keyList.Count; i++)
|
{
|
if (myRank < keyList[i])
|
{
|
type= i;
|
return type;
|
}
|
}
|
return type;
|
}
|
}
|
|
}
|
|
|
|