|
@@ -23,6 +23,7 @@ namespace GFGGame
|
|
|
private int _month;
|
|
|
private int _day;
|
|
|
private bool isOpenPanel = true;
|
|
|
+ DateTime dateTime;
|
|
|
|
|
|
public override void Dispose()
|
|
|
{
|
|
@@ -87,6 +88,8 @@ namespace GFGGame
|
|
|
_day = TimeUtil.GetCurDay();
|
|
|
_ui.m_txtMonth.text = NumberUtil.GetOldChiniseNumberText(_month);
|
|
|
|
|
|
+ DateTime unixStartTime = new DateTime(1970, 1, 1);
|
|
|
+ dateTime = unixStartTime.AddMilliseconds(GameGlobal.OpenServerTime);
|
|
|
UpdateSignView();
|
|
|
//从主界面自动打开这个界面的话,就显示 1
|
|
|
if (this.viewData != null)
|
|
@@ -126,16 +129,28 @@ namespace GFGGame
|
|
|
_signCount = MathUtil.CountOnes2(GameGlobal.myNumericComponent.GetAsLong(NumericType.SignDay));
|
|
|
_ui.m_proSign.m_txtSignCount.text = _signCount.ToString();
|
|
|
List<DailySignBonusCfg> signBonusCfgs = DailySignBonusCfgArray.Instance.GetCfgsBymonth(_month);
|
|
|
- _ui.m_proSign.target.max = signBonusCfgs.Count;
|
|
|
- _ui.m_proSign.target.value = _signCount;
|
|
|
- _ui.m_proSign.m_holder.x = _signCount / signBonusCfgs.Count * _ui.m_proSign.target.width - 68;
|
|
|
+
|
|
|
List<DailySignCfg> signCfgs = DailySignCfgArray.Instance.GetCfgsBymonth(_month);
|
|
|
+ _ui.m_proSign.target.max = signCfgs[signCfgs.Count - 1].day;
|
|
|
+ _ui.m_proSign.target.value = _signCount;
|
|
|
+ _ui.m_proSign.m_holder.x = _signCount / signCfgs[signCfgs.Count - 1].day * _ui.m_proSign.target.width - 88;
|
|
|
+
|
|
|
_ui.m_proSign.m_holderReward.visible = false;
|
|
|
for (int i = 0; i < signCfgs.Count; i++)
|
|
|
{
|
|
|
GComponent comProBonus = _ui.m_proSign.target.GetChild("comProBonus" + i).asCom;
|
|
|
- comProBonus.x = ((float)signCfgs[i].day / (float)signBonusCfgs.Count) * _ui.m_proSign.target.width;
|
|
|
+ if (i == signCfgs.Count - 1)
|
|
|
+ {
|
|
|
+ comProBonus.x = ((float)signCfgs[i].day / (float)signCfgs[signCfgs.Count - 1].day) * _ui.m_proSign.target.width - 30;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ comProBonus.x = ((float)signCfgs[i].day / (float)signCfgs[signCfgs.Count-1].day) * _ui.m_proSign.target.width - 10;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
UI_ComProBonus item = UI_ComProBonus.Proxy(comProBonus);
|
|
|
+ item.target.visible = true;
|
|
|
item.m_loaIcon.url = ResPathUtil.GetIconPath(ItemCfgArray.Instance.GetCfg(signCfgs[i].bonusArr[0][0]));
|
|
|
item.m_txtCount.text = signCfgs[i].bonusArr[0][1].ToString();
|
|
|
item.m_txtDay.text = signCfgs[i].day.ToString();
|
|
@@ -164,8 +179,14 @@ namespace GFGGame
|
|
|
RedDotController.Instance.SetComRedDot(item.target, canGet);
|
|
|
UI_ComProBonus.ProxyEnd();
|
|
|
}
|
|
|
-
|
|
|
- _ui.m_list.numItems = signBonusCfgs.Count > 29 ? signBonusCfgs.Count + 1 : signBonusCfgs.Count;
|
|
|
+ if (_month > dateTime.Month)
|
|
|
+ {
|
|
|
+ _ui.m_list.numItems = signBonusCfgs.Count > 29 ? signBonusCfgs.Count + 1 : signBonusCfgs.Count;
|
|
|
+ }
|
|
|
+ else if (_month == dateTime.Month)
|
|
|
+ {
|
|
|
+ _ui.m_list.numItems = signBonusCfgs.Count > 29 ? signBonusCfgs.Count + 1 - dateTime.Day : signBonusCfgs.Count - dateTime.Day + 1;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
private async void OnBtnGetProBonus(EventContext context)
|
|
@@ -181,7 +202,7 @@ namespace GFGGame
|
|
|
{
|
|
|
bool result = await DailyWelfareSProxy.ReqGetSignReward(signCfg.day);
|
|
|
if (result)
|
|
|
- {
|
|
|
+ {
|
|
|
UpdateSignView();
|
|
|
}
|
|
|
}
|
|
@@ -190,14 +211,20 @@ namespace GFGGame
|
|
|
private void ListItemRender(int index, GObject obj)
|
|
|
{
|
|
|
UI_ListSignItem item = UI_ListSignItem.Proxy(obj);
|
|
|
- if (index == 29)
|
|
|
+
|
|
|
+ if (_month == dateTime.Month)
|
|
|
+ {
|
|
|
+ index += dateTime.Day - 1;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (index == 29 && _ui.m_list.numItems > 29)
|
|
|
{
|
|
|
item.target.touchable = false;
|
|
|
item.target.visible = false;
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- int _index = index >= 29 ? index - 1 : index;
|
|
|
+ int _index = index >= 29 && _ui.m_list.numItems > 29 ? index - 1 : index;
|
|
|
DailySignBonusCfg bonusCfg = DailySignBonusCfgArray.Instance.GetCfgsBymonth(_month)[_index];
|
|
|
int itemType = ItemDataManager.GetItemType(bonusCfg.bonusArr[0][0]);
|
|
|
bool isGot = MathUtil.isBitSet(GameGlobal.myNumericComponent.GetAsLong(NumericType.SignDay), bonusCfg.day);
|