using UnityEngine;
|
using UnityEngine.UI;
|
using EnhancedUI.EnhancedScroller;
|
using System.Collections.Generic;
|
using System;
|
using DG.Tweening;
|
|
namespace vnxbqy.UI
|
{
|
public class CrossSeverOneVsOneDayAwardCell : ScrollItem
|
{
|
[SerializeField] Text taskNameText;
|
[SerializeField] Slider progressSlider;
|
[SerializeField] Text progressText;
|
[SerializeField] Button recieveBtn;
|
[SerializeField] Image stateImg;
|
[SerializeField] List<CommonItemBaisc> itemBaiscs = new List<CommonItemBaisc>();
|
[SerializeField] CrossServerOneVsOneCyclicScroll m_CrossServerCyclicScroll;
|
|
[SerializeField] UIAlphaTween m_AlphaTween;
|
public UIAlphaTween alphaTween { get { return m_AlphaTween; } }
|
|
[SerializeField] UILinerMove m_LinerMove;
|
public UILinerMove linerMove { get { return m_LinerMove; } }
|
|
CrossServerOneVsOneModel crossServerModel { get { return ModelCenter.Instance.GetModel<CrossServerOneVsOneModel>(); } }
|
|
CrossServerOneVsOneRewardModel rewardModel { get { return ModelCenter.Instance.GetModel<CrossServerOneVsOneRewardModel>(); } }
|
|
CrossServerOneVsOneModel.AwardType awardType;
|
float height = 0;
|
bool isLineMove = false;
|
|
private void Awake()
|
{
|
recieveBtn.AddListener(ClickRecieve);
|
|
}
|
|
public override void Display(object _data)
|
{
|
base.Display(_data);
|
isLineMove = false;
|
awardType = (CrossServerOneVsOneModel.AwardType)_data;
|
DisplayDayAward();
|
crossServerModel.UpdateDayAwardsEvent -= UpdateDayAwards;
|
crossServerModel.UpdateDayAwardsEvent += UpdateDayAwards;
|
}
|
|
public override void Dispose()
|
{
|
base.Dispose();
|
crossServerModel.UpdateDayAwardsEvent -= UpdateDayAwards;
|
}
|
|
private void DisplayDayAward()
|
{
|
var awardItems = awardType.awardItems;
|
progressSlider.minValue = 0;
|
progressSlider.maxValue = awardType.num;
|
progressSlider.value = awardType.curCompletedNum;
|
progressText.text = StringUtility.Contact(awardType.curCompletedNum, "/", awardType.num);
|
for (int i = 0; i < itemBaiscs.Count; i++)
|
{
|
var itemBasic = itemBaiscs[i];
|
itemBasic.SetActive(i < awardItems.Count);
|
if (i < awardItems.Count)
|
{
|
var awardItem = awardItems[i];
|
ItemCellModel cellModel = new ItemCellModel(awardItem.itemId, true, (ulong)awardItem.itemCount);
|
itemBasic.Init(cellModel);
|
itemBasic.button.RemoveAllListeners();
|
itemBasic.button.AddListener(() =>
|
{
|
ItemTipUtility.Show(awardItem.itemId);
|
});
|
}
|
}
|
|
switch(awardType.type)
|
{
|
case 1:
|
taskNameText.text = Language.Get("CrossServer116",awardType.num);
|
break;
|
case 2:
|
taskNameText.text = Language.Get("CrossServer117", awardType.num);
|
break;
|
}
|
|
stateImg.SetActive(awardType.progress != CrossServerOneVsOneModel.AwardType.CompleteProgress.Completed);
|
recieveBtn.SetActive(awardType.progress == CrossServerOneVsOneModel.AwardType.CompleteProgress.Completed);
|
switch (awardType.progress)
|
{
|
case CrossServerOneVsOneModel.AwardType.CompleteProgress.Completed:
|
break;
|
case CrossServerOneVsOneModel.AwardType.CompleteProgress.UnCompleted:
|
stateImg.SetSprite("LVReward2");
|
break;
|
case CrossServerOneVsOneModel.AwardType.CompleteProgress.AlreadyReceived:
|
stateImg.SetSprite("LVReward1");
|
break;
|
}
|
}
|
|
private void ClickRecieve()
|
{
|
if (awardType == null || m_CrossServerCyclicScroll.showing) return;
|
|
isLineMove = true;
|
switch (awardType.type)
|
{
|
case 1:
|
rewardModel.CrossRealmPKGetAward(CrossRealmPKAwardStateEnum.DayWinCountAwardState,awardType.num);
|
break;
|
case 2:
|
rewardModel.CrossRealmPKGetAward(CrossRealmPKAwardStateEnum.DayPKCountAwardState, awardType.num);
|
break;
|
}
|
}
|
|
private void UpdateDayAwards()
|
{
|
if (!isLineMove) return;
|
|
isLineMove = false;
|
m_CrossServerCyclicScroll.ShowBegin(this);
|
}
|
|
}
|
}
|