|
@@ -6,6 +6,7 @@ using FairyGUI;
|
|
using System;
|
|
using System;
|
|
using UI.CommonGame;
|
|
using UI.CommonGame;
|
|
using static GFGGame.ShopSProxy;
|
|
using static GFGGame.ShopSProxy;
|
|
|
|
+using System.Threading.Tasks;
|
|
|
|
|
|
namespace GFGGame
|
|
namespace GFGGame
|
|
{
|
|
{
|
|
@@ -16,8 +17,7 @@ namespace GFGGame
|
|
private struct GetState
|
|
private struct GetState
|
|
{
|
|
{
|
|
public int rewardID;
|
|
public int rewardID;
|
|
- public int dayIndex;
|
|
|
|
- public bool canGet;
|
|
|
|
|
|
+ public bool canGet;
|
|
public bool isVip;
|
|
public bool isVip;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -42,7 +42,7 @@ namespace GFGGame
|
|
|
|
|
|
// Data
|
|
// Data
|
|
ActivityAfuGiftDataManager.Instance.InitActivityInfo();
|
|
ActivityAfuGiftDataManager.Instance.InitActivityInfo();
|
|
-
|
|
|
|
|
|
+
|
|
// UI
|
|
// UI
|
|
_rewardListUI = _ui.m_panel.m_scrollPane.m_list;
|
|
_rewardListUI = _ui.m_panel.m_scrollPane.m_list;
|
|
_rewardListUI.itemRenderer = RenderListReward;
|
|
_rewardListUI.itemRenderer = RenderListReward;
|
|
@@ -53,10 +53,10 @@ namespace GFGGame
|
|
protected override void OnShown()
|
|
protected override void OnShown()
|
|
{
|
|
{
|
|
base.OnShown();
|
|
base.OnShown();
|
|
-
|
|
|
|
- _ui.m_panel.m_scrollPane.target.scrollPane.posX = 0;
|
|
|
|
|
|
+ ProgressAutoLocate();
|
|
UpdateTime(null);
|
|
UpdateTime(null);
|
|
Timers.inst.Add(1, 0, UpdateTime);
|
|
Timers.inst.Add(1, 0, UpdateTime);
|
|
|
|
+ UpdateButtonState();
|
|
}
|
|
}
|
|
|
|
|
|
protected override void OnHide()
|
|
protected override void OnHide()
|
|
@@ -95,6 +95,18 @@ namespace GFGGame
|
|
float marginLeft = 149;
|
|
float marginLeft = 149;
|
|
GProgressBar gProgressBar = _ui.m_panel.m_scrollPane.m_progress;
|
|
GProgressBar gProgressBar = _ui.m_panel.m_scrollPane.m_progress;
|
|
gProgressBar.width = marginLeft + _rewardListUI.GetChildAt(_rewardListUI.numChildren - 1).position.x - _rewardListUI.GetChildAt(0).position.x;
|
|
gProgressBar.width = marginLeft + _rewardListUI.GetChildAt(_rewardListUI.numChildren - 1).position.x - _rewardListUI.GetChildAt(0).position.x;
|
|
|
|
+ // 初始化进度条值
|
|
|
|
+ int indexDay = ActivityAfuGiftDataManager.Instance.GetIndexDay();
|
|
|
|
+ gProgressBar.value = CalculateProgressCount(indexDay, _rewardListUI.numChildren);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /// <summary>
|
|
|
|
+ /// 滚动到最新日期
|
|
|
|
+ /// </summary>
|
|
|
|
+ private void ProgressAutoLocate()
|
|
|
|
+ {
|
|
|
|
+ _ui.m_panel.m_scrollPane.target.scrollPane.posX
|
|
|
|
+ = (ActivityAfuGiftDataManager.Instance.GetIndexDay() - 1) * (_rewardListUI.GetChildAt(0).width + _rewardListUI.columnGap);
|
|
}
|
|
}
|
|
|
|
|
|
private float CalculateListWidth(int num, float itemWidth, float columnGap)
|
|
private float CalculateListWidth(int num, float itemWidth, float columnGap)
|
|
@@ -102,6 +114,21 @@ namespace GFGGame
|
|
return num * itemWidth + (num - 1) * columnGap;
|
|
return num * itemWidth + (num - 1) * columnGap;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ private double CalculateProgressCount(int indexDay, int sumDay)
|
|
|
|
+ {
|
|
|
|
+ int defaultLen = 18;
|
|
|
|
+ if (indexDay == sumDay)
|
|
|
|
+ {
|
|
|
|
+ return 100;
|
|
|
|
+ }
|
|
|
|
+ if (indexDay == 1)
|
|
|
|
+ {
|
|
|
|
+ return defaultLen;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return defaultLen + (100 - defaultLen) / (sumDay - 1) * (indexDay - 1);
|
|
|
|
+ }
|
|
|
|
+
|
|
private void UpdateTime(object param)
|
|
private void UpdateTime(object param)
|
|
{
|
|
{
|
|
long curTime = TimeHelper.ServerNow();
|
|
long curTime = TimeHelper.ServerNow();
|
|
@@ -111,13 +138,17 @@ namespace GFGGame
|
|
|
|
|
|
private void RenderListReward(int index, GObject item)
|
|
private void RenderListReward(int index, GObject item)
|
|
{
|
|
{
|
|
|
|
+ item.data = index;
|
|
|
|
+ UI_reward.ProxyEnd();
|
|
UI_reward rewardUI = UI_reward.Proxy(item);
|
|
UI_reward rewardUI = UI_reward.Proxy(item);
|
|
rewardUI.m_day.m_day.SetVar("day", (index + 1).ToString()).FlushVars();
|
|
rewardUI.m_day.m_day.SetVar("day", (index + 1).ToString()).FlushVars();
|
|
|
|
|
|
// 已经到达的日期
|
|
// 已经到达的日期
|
|
- int passDay = ActivityAfuGiftDataManager.Instance.GetMaxPassDay();
|
|
|
|
|
|
+ int passDay = ActivityAfuGiftDataManager.Instance.GetIndexDay();
|
|
int arrive = (index + 1) <= passDay ? 0 : 1;
|
|
int arrive = (index + 1) <= passDay ? 0 : 1;
|
|
rewardUI.m_day.m_light.SetSelectedIndex(arrive);
|
|
rewardUI.m_day.m_light.SetSelectedIndex(arrive);
|
|
|
|
+ // 当日高亮
|
|
|
|
+ rewardUI.m_c1.SetSelectedIndex((index + 1) == passDay ? 1 : 0);
|
|
|
|
|
|
int itemNormalId = ActivityAfuGiftDataManager.Instance.RewardCfgs[index].bonusFreeArr[0][0];
|
|
int itemNormalId = ActivityAfuGiftDataManager.Instance.RewardCfgs[index].bonusFreeArr[0][0];
|
|
int itemVipId1 = ActivityAfuGiftDataManager.Instance.RewardCfgs[index].bonusPayArr[0][0];
|
|
int itemVipId1 = ActivityAfuGiftDataManager.Instance.RewardCfgs[index].bonusPayArr[0][0];
|
|
@@ -125,68 +156,81 @@ namespace GFGGame
|
|
|
|
|
|
LoadItem(itemNormalId, rewardUI.m_reward_normal, ActivityAfuGiftDataManager.Instance.RewardCfgs[index].bonusFreeArr[0][1]);
|
|
LoadItem(itemNormalId, rewardUI.m_reward_normal, ActivityAfuGiftDataManager.Instance.RewardCfgs[index].bonusFreeArr[0][1]);
|
|
LoadItem(itemVipId1, rewardUI.m_reward_vip1, ActivityAfuGiftDataManager.Instance.RewardCfgs[index].bonusPayArr[0][1], true);
|
|
LoadItem(itemVipId1, rewardUI.m_reward_vip1, ActivityAfuGiftDataManager.Instance.RewardCfgs[index].bonusPayArr[0][1], true);
|
|
- LoadItem(itemVipId2, rewardUI.m_reward_vip2, ActivityAfuGiftDataManager.Instance.RewardCfgs[index].bonusPayArr[1][1], true);
|
|
|
|
-
|
|
|
|
- UI_reward.ProxyEnd();
|
|
|
|
|
|
+ LoadItem(itemVipId2, rewardUI.m_reward_vip2, ActivityAfuGiftDataManager.Instance.RewardCfgs[index].bonusPayArr[1][1], true, true);
|
|
}
|
|
}
|
|
|
|
|
|
- private void LoadItem(int id, GObject obj, int num, bool isVip = false)
|
|
|
|
|
|
+ private void LoadItem(int itemID, GObject obj, int num, bool isVip = false, bool release = false)
|
|
{
|
|
{
|
|
- ItemCfg itemNormal = ItemCfgArray.Instance.GetCfg(id);
|
|
|
|
|
|
+ ItemCfg itemNormal = ItemCfgArray.Instance.GetCfg(itemID);
|
|
UI_ComItem comItem = UI_ComItem.Proxy(obj);
|
|
UI_ComItem comItem = UI_ComItem.Proxy(obj);
|
|
|
|
+
|
|
comItem.m_loaIcon.url = ResPathUtil.GetIconPath(itemNormal);
|
|
comItem.m_loaIcon.url = ResPathUtil.GetIconPath(itemNormal);
|
|
comItem.m_txtCount.text = num.ToString();
|
|
comItem.m_txtCount.text = num.ToString();
|
|
comItem.m_QualityType.selectedIndex = itemNormal.rarity - 1;
|
|
comItem.m_QualityType.selectedIndex = itemNormal.rarity - 1;
|
|
comItem.target.onClick.Add(OnItemClick);
|
|
comItem.target.onClick.Add(OnItemClick);
|
|
|
|
|
|
- int isLock = 0;
|
|
|
|
|
|
+ int dayIndex = (int)obj.parent.data + 1;
|
|
|
|
+ // 已经到达的日期
|
|
|
|
+ int passDay = ActivityAfuGiftDataManager.Instance.GetIndexDay();
|
|
|
|
+ bool arrive = dayIndex <= passDay;
|
|
|
|
+
|
|
if (isVip)
|
|
if (isVip)
|
|
{
|
|
{
|
|
- isLock = ActivityAfuGiftDataManager.Instance.GetIsBuy() ? 0 : 1;
|
|
|
|
|
|
+ if (ActivityAfuGiftDataManager.Instance.GetIsBuy())
|
|
|
|
+ {
|
|
|
|
+ comItem.m_Lock.SetSelectedIndex(arrive ? 0 : 2);
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ comItem.m_Lock.SetSelectedIndex(1);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
- comItem.m_Lock.selectedIndex = isLock;
|
|
|
|
-
|
|
|
|
- int dayIndex = _rewardListUI.GetChildIndex(obj) + 1;
|
|
|
|
- // 已经到达的日期
|
|
|
|
- int passDay = ActivityAfuGiftDataManager.Instance.GetMaxPassDay();
|
|
|
|
- bool arrive = dayIndex <= passDay;
|
|
|
|
- comItem.target.data = new GetState
|
|
|
|
|
|
+ else
|
|
{
|
|
{
|
|
- rewardID = id,
|
|
|
|
- canGet = arrive,
|
|
|
|
- dayIndex = dayIndex,
|
|
|
|
- isVip = isVip
|
|
|
|
- };
|
|
|
|
|
|
+ comItem.m_Lock.SetSelectedIndex(arrive ? 0 : 2);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ bool canGet = false;
|
|
|
|
+ int getState;
|
|
if (arrive)
|
|
if (arrive)
|
|
{
|
|
{
|
|
- ActivityInfo activityInfo = ActivityAfuGiftDataManager.Instance.Info;
|
|
|
|
- bool canGet = false;
|
|
|
|
// Vip专属
|
|
// Vip专属
|
|
if (isVip)
|
|
if (isVip)
|
|
{
|
|
{
|
|
- canGet = ActivityAfuGiftDataManager.Instance.CanGetSuperReward(dayIndex);
|
|
|
|
|
|
+ getState = ActivityAfuGiftDataManager.Instance.GetSuperRewardStateByDay(dayIndex - 1);
|
|
}
|
|
}
|
|
else
|
|
else
|
|
{
|
|
{
|
|
- canGet = ActivityAfuGiftDataManager.Instance.CanGetNormalReward(dayIndex);
|
|
|
|
|
|
+ getState = ActivityAfuGiftDataManager.Instance.GetNormalRewardStateByDay(dayIndex - 1);
|
|
}
|
|
}
|
|
- // 已领
|
|
|
|
- if (!canGet)
|
|
|
|
- {
|
|
|
|
- //bonus.m_imgGot.visible = true;
|
|
|
|
- obj.touchable = false;
|
|
|
|
- // 隐藏红点
|
|
|
|
- RedDotController.Instance.SetComRedDot(obj.asCom, false);
|
|
|
|
- }
|
|
|
|
- // 未领
|
|
|
|
- else
|
|
|
|
|
|
+
|
|
|
|
+ switch (getState)
|
|
{
|
|
{
|
|
- //bonus.m_imgGot.visible = false;
|
|
|
|
- // 显示红点
|
|
|
|
- RedDotController.Instance.SetComRedDot(obj.asCom, true);
|
|
|
|
|
|
+ case ConstBonusStatus.CAN_NOT_GET:
|
|
|
|
+ break;
|
|
|
|
+
|
|
|
|
+ case ConstBonusStatus.CAN_GET:
|
|
|
|
+ canGet = true;
|
|
|
|
+ comItem.m_grpGot.visible = false;
|
|
|
|
+ // 显示红点
|
|
|
|
+ RedDotController.Instance.SetComRedDot(obj.asCom, true, "", -33, 27);
|
|
|
|
+ break;
|
|
|
|
+
|
|
|
|
+ case ConstBonusStatus.GOT:
|
|
|
|
+ comItem.m_grpGot.visible = true;
|
|
|
|
+ obj.touchable = false;
|
|
|
|
+ // 隐藏红点
|
|
|
|
+ RedDotController.Instance.SetComRedDot(obj.asCom, false);
|
|
|
|
+ break;
|
|
}
|
|
}
|
|
-
|
|
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ obj.data = new GetState
|
|
|
|
+ {
|
|
|
|
+ rewardID = itemID,
|
|
|
|
+ isVip = isVip,
|
|
|
|
+ canGet = canGet
|
|
|
|
+ };
|
|
UI_ComItem.ProxyEnd();
|
|
UI_ComItem.ProxyEnd();
|
|
}
|
|
}
|
|
|
|
|
|
@@ -197,17 +241,7 @@ namespace GFGGame
|
|
|
|
|
|
if (getState.canGet)
|
|
if (getState.canGet)
|
|
{
|
|
{
|
|
- // Vip奖励同时领取两个
|
|
|
|
- if (getState.isVip)
|
|
|
|
- {
|
|
|
|
- int rewardID1 = ActivityAfuGiftDataManager.Instance.RewardCfgs[getState.dayIndex - 1].bonusPayArr[0][1];
|
|
|
|
- int rewardID2 = ActivityAfuGiftDataManager.Instance.RewardCfgs[getState.dayIndex - 1].bonusPayArr[1][1];
|
|
|
|
- }
|
|
|
|
- else
|
|
|
|
- {
|
|
|
|
- int ID = ActivityAfuGiftDataManager.Instance.RewardCfgs[getState.dayIndex - 1].bonusFreeArr[0][1];
|
|
|
|
- }
|
|
|
|
- //ActivityGlobalSProxy.ReqGetActivityBonus(_activityInfo.ActivityId, getState.rewardID).Coroutine();
|
|
|
|
|
|
+ GetReward(getState, (int)obj.parent.data + 1);
|
|
}
|
|
}
|
|
else
|
|
else
|
|
{
|
|
{
|
|
@@ -215,6 +249,36 @@ namespace GFGGame
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ private async Task GetReward(GetState getState, int indexDay)
|
|
|
|
+ {
|
|
|
|
+ ActivityAfuGiftDataManager.Instance.ClearGetReward();
|
|
|
|
+ await ActivityAfuGiftProxy.ReqGetReward(getState.isVip, indexDay);
|
|
|
|
+ // 奖励弹窗
|
|
|
|
+ BonusController.TryShowBonusList(ActivityAfuGiftDataManager.Instance.GetRewardList);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private async Task GetAllReward()
|
|
|
|
+ {
|
|
|
|
+ int passDay = ActivityAfuGiftDataManager.Instance.GetIndexDay();
|
|
|
|
+ ActivityAfuGiftDataManager.Instance.ClearGetReward();
|
|
|
|
+
|
|
|
|
+ for (int i = passDay - 1; i >= 0; i--)
|
|
|
|
+ {
|
|
|
|
+ if (ActivityAfuGiftDataManager.Instance.GetNormalRewardStateByDay(i) == ConstBonusStatus.CAN_GET)
|
|
|
|
+ {
|
|
|
|
+ await ActivityAfuGiftProxy.ReqGetReward(false, (i + 1));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (ActivityAfuGiftDataManager.Instance.GetSuperRewardStateByDay(i) == ConstBonusStatus.CAN_GET)
|
|
|
|
+ {
|
|
|
|
+ await ActivityAfuGiftProxy.ReqGetReward(true, (i + 1));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 奖励弹窗
|
|
|
|
+ BonusController.TryShowBonusList(ActivityAfuGiftDataManager.Instance.GetRewardList);
|
|
|
|
+ }
|
|
|
|
+
|
|
/// <summary>
|
|
/// <summary>
|
|
/// 领取所有奖励按钮
|
|
/// 领取所有奖励按钮
|
|
/// </summary>
|
|
/// </summary>
|
|
@@ -227,26 +291,7 @@ namespace GFGGame
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
|
|
|
|
- // 一键领取
|
|
|
|
- int passDay = ActivityAfuGiftDataManager.Instance.GetMaxPassDay();
|
|
|
|
- for(int i = passDay - 1; i >= 0; i++)
|
|
|
|
- {
|
|
|
|
- int itemNormalId = ActivityAfuGiftDataManager.Instance.RewardCfgs[i].bonusFreeArr[0][0];
|
|
|
|
- int itemVipId1 = ActivityAfuGiftDataManager.Instance.RewardCfgs[i].bonusPayArr[0][0];
|
|
|
|
- int itemVipId2 = ActivityAfuGiftDataManager.Instance.RewardCfgs[i].bonusPayArr[1][0];
|
|
|
|
- if (ActivityAfuGiftDataManager.Instance.CanGetNormalReward(itemNormalId))
|
|
|
|
- {
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
- if (ActivityAfuGiftDataManager.Instance.CanGetSuperReward(itemVipId1))
|
|
|
|
- {
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
- if (ActivityAfuGiftDataManager.Instance.CanGetSuperReward(itemVipId2))
|
|
|
|
- {
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
|
|
+ GetAllReward();
|
|
}
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// <summary>
|
|
@@ -254,10 +299,28 @@ namespace GFGGame
|
|
/// </summary>
|
|
/// </summary>
|
|
private void UpdateState()
|
|
private void UpdateState()
|
|
{
|
|
{
|
|
- // 更新底部按钮
|
|
|
|
|
|
+ // 更新底部按钮文本
|
|
_ui.m_c1.SetSelectedIndex(ActivityAfuGiftDataManager.Instance.GetIsBuy() ? 1 : 0);
|
|
_ui.m_c1.SetSelectedIndex(ActivityAfuGiftDataManager.Instance.GetIsBuy() ? 1 : 0);
|
|
// 更新锁 红点状态
|
|
// 更新锁 红点状态
|
|
_rewardListUI.numItems = ActivityAfuGiftDataManager.Instance.RewardCfgs.Count;
|
|
_rewardListUI.numItems = ActivityAfuGiftDataManager.Instance.RewardCfgs.Count;
|
|
|
|
+ UpdateButtonState();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /// <summary>
|
|
|
|
+ /// 更新一键领取按钮状态
|
|
|
|
+ /// </summary>
|
|
|
|
+ public void UpdateButtonState()
|
|
|
|
+ {
|
|
|
|
+ if (ActivityAfuGiftDataManager.Instance.GetIsBuy())
|
|
|
|
+ {
|
|
|
|
+ // 0-普通 1-变灰
|
|
|
|
+ _ui.m_btnGetState.SetSelectedIndex(ActivityAfuGiftDataManager.Instance.HaveCanGetReward() ? 0 : 1);
|
|
|
|
+ }
|
|
|
|
+ // 没有充值,保持常亮
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ _ui.m_btnGetState.SetSelectedIndex(0);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|