//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Tuesday, January 22, 2019
|
//--------------------------------------------------------
|
using EnhancedUI.EnhancedScroller;
|
using System.Collections;
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
using UnityEngine.UI;
|
using System;
|
|
namespace vnxbqy.UI
|
{
|
|
public class SpringFestivalCell : ScrollerUI
|
{
|
[SerializeField] Text m_TextA;
|
[SerializeField] Text m_TextB;
|
[SerializeField] Text m_TextC;
|
[SerializeField] Transform m_ItemList;
|
[SerializeField] Button m_Btn;
|
[SerializeField] Text m_BtnText;
|
[SerializeField] GameObject m_Miss;//错过
|
[SerializeField] GameObject m_Reach;//未达成
|
[SerializeField] GameObject m_Draw;//已领取
|
[SerializeField] Text m_TextNumber;//已领取次数
|
SpringFestivalModel model { get { return ModelCenter.Instance.GetModel<SpringFestivalModel>(); } }
|
|
public override void Refresh(CellView cell)
|
{
|
int ID = cell.index;
|
var config = HolidayHomingConfig.Get(ID);
|
if (config == null || !model.SpringFestivalDic.ContainsKey(ID))
|
{
|
return;
|
}
|
var SpringFestival = model.SpringFestivalDic[ID];
|
int rewardNum = model.GetRewardNumber(model.SelectedNow, ID);//已领奖次数
|
int carryOutNum = model.GetCarryOutNum(model.SelectedNow, ID);//已完成次数
|
int number = SpringFestival.TotalTimes / SpringFestival.SingleTimes;
|
var RemainingNum = 0;
|
if (SpringFestival.TotalTimes - rewardNum > 0)
|
{
|
RemainingNum = (SpringFestival.TotalTimes - rewardNum) / SpringFestival.SingleTimes;
|
}
|
if (SpringFestival.TotalTimes - carryOutNum > 0 && RemainingNum > 0)
|
{
|
m_TextA.text = Language.Get("OSA_1", RemainingNum);
|
}
|
else
|
{
|
m_TextA.text = Language.Get("OSA_4");
|
}
|
|
if (config.ActionType == 20)
|
{
|
m_TextB.text = string.Format(config.Description, (model.SelectedNow + 1));
|
}
|
else
|
{
|
m_TextB.text = string.Format(config.Description, SpringFestival.SingleTimes);
|
}
|
m_TextC.text = Language.Get("OSA_2", SpringFestival.Point);
|
for (int i = 0; i < m_ItemList.childCount; i++)
|
{
|
GameObject Obj = m_ItemList.GetChild(i).gameObject;
|
ItemCell itemCell = Obj.GetComponent<ItemCell>();
|
if (i < SpringFestival.WeekPartyItem.Length)
|
{
|
Obj.SetActive(true);
|
var Item = SpringFestival.WeekPartyItem[i];
|
ItemCellModel cellModel = new ItemCellModel(Item.ItemID, true, (ulong)Item.ItemCnt);
|
itemCell.Init(cellModel);
|
itemCell.button.SetListener(() =>
|
{
|
ItemTipUtility.Show(Item.ItemID);
|
});
|
}
|
else
|
{
|
Obj.SetActive(false);
|
}
|
}
|
bool IsOpenPreviewTime = OperationTimeHepler.Instance.SatisfyAdvanceCondition(Operation.SpringFestival);
|
if (model.SelectedNow != model.DayNow || IsOpenPreviewTime)
|
{
|
if (model.SelectedNow > model.DayNow || IsOpenPreviewTime)//还未到达的天数
|
{
|
m_Btn.SetActive(false);
|
m_TextNumber.SetActive(false);
|
m_Miss.SetActive(false);
|
m_Reach.SetActive(false);
|
m_Draw.SetActive(false);
|
}
|
else//已过的天数
|
{
|
|
int TaypeNumber = 0;
|
if (carryOutNum - rewardNum > 0)
|
{
|
TaypeNumber = (carryOutNum - rewardNum) / SpringFestival.SingleTimes;
|
}
|
if (TaypeNumber > 0)//可领
|
{
|
|
m_TextNumber.SetActive(true);
|
m_TextNumber.text = SetText(ID);
|
m_Btn.SetActive(true);
|
UIEffect uieffect = m_Btn.GetComponent<UIEffect>();
|
uieffect.Play();
|
m_BtnText.text = Language.Get("RealmPractice109");//领取
|
m_Miss.SetActive(false);
|
m_Reach.SetActive(false);
|
m_Draw.SetActive(false);
|
m_Btn.SetListener(() =>
|
{
|
bool _bool = model.IsOpenFeatures();
|
if (_bool)
|
{
|
model.SendGetSpringFestival(model.SelectedNow, ID);
|
}
|
else
|
{
|
SysNotifyMgr.Instance.ShowTip("SevenDayOver2");
|
}
|
});
|
}
|
else
|
{
|
if (rewardNum >= number)//已经领完
|
{
|
m_TextNumber.SetActive(false);
|
m_Btn.SetActive(false);
|
m_Miss.SetActive(false);
|
m_Reach.SetActive(false);
|
m_Draw.SetActive(true);
|
}
|
else//未到达
|
{
|
m_TextNumber.SetActive(false);
|
m_Btn.SetActive(false);
|
m_Miss.SetActive(false);
|
m_Reach.SetActive(true);
|
m_Draw.SetActive(false);
|
|
}
|
|
}
|
}
|
}
|
else//当前天
|
{
|
int TaypeNumber = 0;
|
if (carryOutNum - rewardNum > 0)
|
{
|
TaypeNumber = (carryOutNum - rewardNum) / SpringFestival.SingleTimes;
|
}
|
if (TaypeNumber > 0)//可领
|
{
|
m_TextNumber.SetActive(true);
|
m_TextNumber.text = SetText(ID);
|
m_Btn.SetActive(true);
|
UIEffect uieffect = m_Btn.GetComponent<UIEffect>();
|
uieffect.Play();
|
m_BtnText.text = Language.Get("RealmPractice109");//领取
|
m_Miss.SetActive(false);
|
m_Reach.SetActive(false);
|
m_Draw.SetActive(false);
|
m_Btn.SetListener(() =>
|
{
|
bool _bool = model.IsOpenFeatures();
|
if (_bool)
|
{
|
model.SendGetSpringFestival(model.SelectedNow, ID);
|
}
|
else
|
{
|
SysNotifyMgr.Instance.ShowTip("SevenDayOver2");
|
}
|
});
|
}
|
else
|
{
|
if (rewardNum >= SpringFestival.TotalTimes)//已经领完
|
{
|
m_TextNumber.SetActive(false);
|
m_Btn.SetActive(false);
|
m_Miss.SetActive(false);
|
m_Reach.SetActive(false);
|
m_Draw.SetActive(true);
|
}
|
else//未到达(前往)
|
{
|
m_TextNumber.SetActive(true);
|
m_TextNumber.text = SetText(ID);
|
m_Btn.SetActive(true);
|
m_BtnText.text = Language.Get("RealmPractice108");//前往
|
UIEffect uieffect = m_Btn.GetComponent<UIEffect>();
|
uieffect.Stop();
|
m_Miss.SetActive(false);
|
m_Reach.SetActive(false);
|
m_Draw.SetActive(false);
|
m_Btn.SetListener(() =>
|
{
|
WindowJumpMgr.Instance.WindowJumpTo((JumpUIType)config.jump);
|
});
|
}
|
}
|
}
|
}
|
string SetText(int ID)
|
{
|
string str = string.Empty;
|
var SpringFestival = model.SpringFestivalDic[ID];
|
int rewardNum = model.GetRewardNumber(model.SelectedNow, ID);//已领奖次数
|
int carryOutNum = model.GetCarryOutNum(model.SelectedNow, ID);//已完成次数
|
var config = HolidayHomingConfig.Get(ID);
|
if (config != null && config.SpecialDisplayType == 1)
|
{
|
|
if (carryOutNum > 0)
|
{
|
str = "1/1";
|
}
|
else
|
{
|
str = "0/1";
|
}
|
return str;
|
}
|
int TaypeNumber = 0;
|
if (carryOutNum - rewardNum > 0)
|
{
|
TaypeNumber = (carryOutNum - rewardNum) / SpringFestival.SingleTimes;
|
}
|
if (TaypeNumber > 0)
|
{
|
str = SpringFestival.SingleTimes + "/" + SpringFestival.SingleTimes;
|
return str;
|
}
|
else
|
{
|
int type = carryOutNum % SpringFestival.SingleTimes;
|
str = type + "/" + SpringFestival.SingleTimes;
|
}
|
return str;
|
}
|
|
}
|
|
}
|
|
|
|