From 33130a24f50494083c9a65716f3aec1a50f3f966 Mon Sep 17 00:00:00 2001
From: client_Hale <339726288@qq.com>
Date: 星期一, 13 八月 2018 20:58:30 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts
---
System/HappyXB/HappyXBModel.cs | 72 +++++++++++---
System/Welfare/OperationTimeHepler.cs | 116 ++++++++++++++++++++++-
Utility/EnumHelper.cs | 1
System/HappyXB/RuneXBWin.cs | 21 +++
System/Welfare/WelfareCenter.cs | 4
System/HappyXB/HappyXBGetItemWin.cs | 2
System/Redpoint/RedpointBehaviour.cs | 8 +
System/HappyXB/BestXBWin.cs | 26 ++++
System/Vip/FairyJadeInvestmentModel.cs | 4
9 files changed, 220 insertions(+), 34 deletions(-)
diff --git a/System/HappyXB/BestXBWin.cs b/System/HappyXB/BestXBWin.cs
index bf6e4dd..b53a6d2 100644
--- a/System/HappyXB/BestXBWin.cs
+++ b/System/HappyXB/BestXBWin.cs
@@ -245,13 +245,13 @@
private void RefreshXBResult()
{
CreateGetItem();
- targetIndexs = XBModel.GetXbResultDict().Values.ToList();
+ targetIndexs = XBModel.rangelist;
StartCoroutine(PlayXBAni(0,0));
}
private void CreateGetItem()
{
- List<XBGetItem> xbResultlist = XBModel.GetXbResultDict().Values.ToList();
+ List<XBGetItem> xbResultlist = XBModel.rangelist;
if (xbResultlist.Count < 2) return;
luckDesObj.SetActive(false);
@@ -284,8 +284,19 @@
if (index < xbResultItemBasiclist.Count)
{
xbResultItemBasiclist[index].gameObject.SetActive(true);
- xbResultItemBasiclist[index].transform.DOScale(new Vector3(1, 1, 1), scaleTime);
+ xbResultItemBasiclist[index].transform.DOScale(new Vector3(1, 1, 1), scaleTime).OnComplete(()=>
+ {
+ if (index == xbResultItemBasiclist.Count - 1)
+ {
+ RestXBItemState();
+ }
+ });
+ if (xbResultItemBasiclist[index].itemConfig != null)
+ {
+ XBModel.GetNotifyResult(xbResultItemBasiclist[index].itemConfig.ID, int.Parse(xbResultItemBasiclist[index].countText.text));
+ }
XBModel.GetNotifyResult(xbResultItemBasiclist[index].itemConfig.ID, int.Parse(xbResultItemBasiclist[index].countText.text));
+
}
}
@@ -353,7 +364,14 @@
yield return new WaitForSeconds(stopTime);
if(isEndXB)
{
- RestXBItemState();
+ if(targetIndexs.Count > 1)
+ {
+ ShowXBResultCtrl(targetIndexs.Count - 1);
+ }
+ else
+ {
+ RestXBItemState();
+ }
}
else
{
diff --git a/System/HappyXB/HappyXBGetItemWin.cs b/System/HappyXB/HappyXBGetItemWin.cs
index 683d133..eb4f6a1 100644
--- a/System/HappyXB/HappyXBGetItemWin.cs
+++ b/System/HappyXB/HappyXBGetItemWin.cs
@@ -169,7 +169,7 @@
DestroyGetItemlist();
GetItemlist.Clear();
getItemBasiclist.Clear();
- xbItemlist = XBModel.GetXbResultDict().Values.ToList();
+ xbItemlist = XBModel.rangelist;
for (int i = 0; i < xbItemlist.Count; i++)
{
XBGetItem xbItem = xbItemlist[i];
diff --git a/System/HappyXB/HappyXBModel.cs b/System/HappyXB/HappyXBModel.cs
index 20368a5..785b799 100644
--- a/System/HappyXB/HappyXBModel.cs
+++ b/System/HappyXB/HappyXBModel.cs
@@ -101,7 +101,16 @@
public void GetNotifyResult(int itemId, int itemCount)
{
- DesignDebug.Log("GetNotifyResult" + XBNotifyParms.Count);
+ int notifyIndex = 0;
+ if(CheckNotifyItemByIdAndCnt(itemId,itemCount,out notifyIndex))
+ {
+ SysNotifyMgr.Instance.ShowTip("HappyXB", XBNotifyParms[notifyIndex].ToArray());
+ }
+ }
+
+ private bool CheckNotifyItemByIdAndCnt(int itemId,int itemCnt,out int notifyIndex)
+ {
+ notifyIndex = 0;
for (int i = 0; i < XBNotifyParms.Count; i++)
{
if (XBNotifyParms[i] != null && XBNotifyParms[i].Count > 3)
@@ -110,13 +119,14 @@
int.TryParse(XBNotifyParms[i][1].ToString(), out notifyItemId);
int notifyItemCnt = 0;
int.TryParse(XBNotifyParms[i][3].ToString(), out notifyItemCnt);
- if (notifyItemId == itemId && notifyItemCnt == itemCount)
+ if (notifyItemId == itemId && notifyItemCnt == itemCnt)
{
- SysNotifyMgr.Instance.ShowTip("HappyXB", XBNotifyParms[i].ToArray());
- break;
+ notifyIndex = i;
+ return true;
}
}
}
+ return false;
}
private void SetXBFuncDict(int type,FuncConfigConfig xbSet)
@@ -306,16 +316,17 @@
}
}
}
-
- if(RefreshXBResultAct != null)
+ SetXBResultRecord();
+ if (RefreshXBResultAct != null)
{
RefreshXBResultAct();
}
- SetXBResultRecord();
+
}
List<string> itemGetTimeArray = new List<string>();
List<string> getNewItemLoglist = new List<string>();
+ List<XBGetItem> xbItemRecordlist = new List<XBGetItem>();
public void SetXBResultRecord()
{
if (PlayerPrefs.HasKey(HAPPYXBITEMKEY))
@@ -326,22 +337,22 @@
{
itemGetTimeArray.Clear();
}
-
+ xbItemRecordlist.Clear();
getNewItemLoglist.Clear();
- List<XBGetItem> xbItemlist = GetXbResultDict().Values.ToList();
- if (xbItemlist != null)
+ xbItemRecordlist.AddRange(GetXBResultlist());
+ if (xbItemRecordlist != null)
{
- int remianLogNum = (itemGetTimeArray.Count + xbItemlist.Count) - 30;
+ int remianLogNum = (itemGetTimeArray.Count + xbItemRecordlist.Count) - 30;
if (remianLogNum > 0)
{
int startIndex = itemGetTimeArray.Count - remianLogNum;
itemGetTimeArray.RemoveRange(startIndex, remianLogNum);
}
- xbItemlist.Sort(CompareByTime);
- for (int i = 0; i < xbItemlist.Count; i++)
+ xbItemRecordlist.Sort(CompareByTime);
+ for (int i = 0; i < xbItemRecordlist.Count; i++)
{
- string log = Language.Get("HappyXBGetItemTime", xbItemlist[i].createTimeStr, UIHelper.ServerStringTrim(PlayerDatas.Instance.baseData.PlayerName),
- xbItemlist[i].itemId, xbItemlist[i].count);
+ string log = Language.Get("HappyXBGetItemTime", xbItemRecordlist[i].createTimeStr, UIHelper.ServerStringTrim(PlayerDatas.Instance.baseData.PlayerName),
+ xbItemRecordlist[i].itemId, xbItemRecordlist[i].count);
getNewItemLoglist.Add(log);
}
if (getNewItemLoglist.Count > 0)
@@ -362,6 +373,37 @@
return 0;
}
+ public List<XBGetItem> rangelist = new List<XBGetItem>();
+ List<int> index = new List<int>();
+ public List<XBGetItem> GetXBResultlist()
+ {
+ rangelist.Clear();
+ index.Clear();
+ List<XBGetItem> xbItemlist = xbResultDict.Values.ToList();
+ for(int i = 0; i < xbItemlist.Count; i++)
+ {
+ index.Add(i);
+ }
+ SetRandomList(xbItemlist);
+ return rangelist;
+ }
+
+ public void SetRandomList(List<XBGetItem> xbItemlist)
+ {
+ int currentRandom = UnityEngine.Random.Range(0,index.Count);
+ XBGetItem current = xbItemlist[index[currentRandom]];
+ if (!rangelist.Contains(current))
+ {
+ rangelist.Add(current);
+ index.Remove(index[currentRandom]);
+
+ }
+ if(index.Count > 0)
+ {
+ SetRandomList(xbItemlist);
+ }
+ }
+
public Dictionary<int, XBGetItem> GetXbResultDict()
{
return xbResultDict;
diff --git a/System/HappyXB/RuneXBWin.cs b/System/HappyXB/RuneXBWin.cs
index 67e7acd..ad8d081 100644
--- a/System/HappyXB/RuneXBWin.cs
+++ b/System/HappyXB/RuneXBWin.cs
@@ -254,13 +254,13 @@
private void RefreshXBResult()
{
CreateGetItem();
- targetIndexs = XBModel.GetXbResultDict().Values.ToList();
+ targetIndexs = XBModel.rangelist;
StartCoroutine(PlayXBAni(0,0));
}
private void CreateGetItem()
{
- List<XBGetItem> xbResultlist = XBModel.GetXbResultDict().Values.ToList();
+ List<XBGetItem> xbResultlist = XBModel.rangelist;
if (xbResultlist.Count < 2) return;
luckDesObj.SetActive(false);
getXBItemParent.gameObject.SetActive(true);
@@ -292,7 +292,13 @@
if (index < xbResultItemBasiclist.Count)
{
xbResultItemBasiclist[index].gameObject.SetActive(true);
- xbResultItemBasiclist[index].transform.DOScale(new Vector3(1, 1, 1), scaleTime);
+ xbResultItemBasiclist[index].transform.DOScale(new Vector3(1, 1, 1), scaleTime).OnComplete(() =>
+ {
+ if (index == xbResultItemBasiclist.Count - 1)
+ {
+ RestXBItemState();
+ }
+ }); ;
if(xbResultItemBasiclist[index].itemConfig != null)
{
XBModel.GetNotifyResult(xbResultItemBasiclist[index].itemConfig.ID, int.Parse(xbResultItemBasiclist[index].countText.text));
@@ -364,7 +370,14 @@
yield return new WaitForSeconds(stopTime);
if (isEndXB)
{
- RestXBItemState();
+ if (targetIndexs.Count > 1)
+ {
+ ShowXBResultCtrl(targetIndexs.Count - 1);
+ }
+ else
+ {
+ RestXBItemState();
+ }
}
else
{
diff --git a/System/Redpoint/RedpointBehaviour.cs b/System/Redpoint/RedpointBehaviour.cs
index d978e77..0da0c97 100644
--- a/System/Redpoint/RedpointBehaviour.cs
+++ b/System/Redpoint/RedpointBehaviour.cs
@@ -47,6 +47,9 @@
[SerializeField]
Transform m_FullRedpoint;
+ [SerializeField]
+ Transform m_GetRewardRedpoint;
+
bool m_Show = false;
public bool show {
get { return m_Show; }
@@ -98,6 +101,11 @@
m_FullRedpoint.gameObject.SetActive(state == RedPointState.Full);
}
+ if (m_GetRewardRedpoint != null)
+ {
+ m_GetRewardRedpoint.gameObject.SetActive(state == RedPointState.GetReward);
+ }
+
if (state == RedPointState.Quantity && m_Quantity != null)
{
var count = RedpointCenter.Instance.GetRedpointCount(redpointId);
diff --git a/System/Vip/FairyJadeInvestmentModel.cs b/System/Vip/FairyJadeInvestmentModel.cs
index 01c5f8d..644834a 100644
--- a/System/Vip/FairyJadeInvestmentModel.cs
+++ b/System/Vip/FairyJadeInvestmentModel.cs
@@ -228,7 +228,7 @@
int IsReceive = InfoSeriors[indexID];
if (IsReceive == 0)
{
- redPointStre1.state = RedPointState.Simple;
+ redPointStre1.state = RedPointState.GetReward;
JumpInedx = type;
return;
}
@@ -244,7 +244,7 @@
}
if (fairyJadeInvestmentItem[0].item.count > AtPresentNumber)
{
- redPointStre1.state = RedPointState.Simple;
+ redPointStre1.state = RedPointState.GetReward;
JumpInedx = type;
return;
}
diff --git a/System/Welfare/OperationTimeHepler.cs b/System/Welfare/OperationTimeHepler.cs
index 203f306..2bc2f4f 100644
--- a/System/Welfare/OperationTimeHepler.cs
+++ b/System/Welfare/OperationTimeHepler.cs
@@ -15,6 +15,7 @@
public event Action<Operation> operationServerCloseEvent;//鐗规畩鎯呭喌涓嬭Е鍙�
public event Action<Operation, int> operationEndEvent;//娲诲姩缁撴潫鏃堕棿瑙﹀彂 绗簩涓弬鏁�0--杩囨椿鍔ㄦ椂闂磋Е鍙� 1--杩囨椿鍔ㄥぉ瑙﹀彂
public event Action<Operation, int> operationStartEvent;//娲诲姩寮�濮嬫椂闂村苟涓旀弧瓒冲紑鍚潯浠惰Е鍙� 绗簩涓弬鏁�0--娲诲姩鏃堕棿瑙﹀彂 1--娲诲姩澶╄Е鍙�
+ public event Action<Operation> operationAdvanceEvent;//娲诲姩鎻愬墠寮�鏀句簨浠�
public OperationTimeHepler()
{
DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent += BeforePlayerDataInitializeEvent;
@@ -63,6 +64,7 @@
{
operation.inTimeNotify = true;
operation.stepTimeNotify = false;
+ operation.inAdvanceNotify = false;
DesignDebug.LogFormat("{0} 娲诲姩鏃堕棿寮�濮�", (Operation)i);
if (operationStartEvent != null)
{
@@ -77,6 +79,15 @@
if (operationEndEvent != null)
{
operationEndEvent((Operation)i, 0);
+ }
+ }
+
+ if (!operation.inAdvanceNotify && operation.InAdvanceTime(TimeUtility.ServerNow))
+ {
+ operation.inAdvanceNotify = true;
+ if (operationAdvanceEvent != null)
+ {
+ operationAdvanceEvent((Operation)i);
}
}
}
@@ -631,6 +642,40 @@
}
}
+ public class OperationDateEnumerator : IEnumerable, IEnumerator
+ {
+ OperationDate start;
+ OperationDate end;
+
+ public int index = 0;
+
+ public object Current
+ {
+ get
+ {
+ var date = start;
+ date.day += index;
+ return date;
+ }
+ }
+
+ public IEnumerator GetEnumerator()
+ {
+ return (IEnumerator)this;
+ }
+
+ public bool MoveNext()
+ {
+ index++;
+ return index <= (start - end);
+ }
+
+ public void Reset()
+ {
+ index = 0;
+ }
+ }
+
public struct OperationDate
{
public int year;
@@ -657,6 +702,13 @@
{
var yearString = StringUtility.Contact(year, Language.Get("Year"));
return StringUtility.Contact(showYear ? yearString : string.Empty, month, Language.Get("Month"), day, Language.Get("Day"));
+ }
+
+ public static int operator -(OperationDate x, OperationDate y)
+ {
+ DateTime _x = new DateTime(x.year, x.month, x.day);
+ DateTime _y = new DateTime(y.year, y.month, y.day);
+ return (int)(_y - _x).TotalDays;
}
}
@@ -712,6 +764,7 @@
public OperationDate startDate;
public OperationDate endDate;
public List<OperationTime> times = new List<OperationTime>();
+ public OperationDateEnumerator dateEnumerator;
public bool allDay = false;
@@ -720,6 +773,10 @@
public bool inTimeNotify = false;
public bool inDateNotify = false;
+
+ public bool inAdvanceNotify = false;
+
+ public int inAdvanceSeconds = 0;
public int limitLv;
@@ -837,6 +894,57 @@
return -1;
}
+ public bool InAdvanceTime(DateTime time)
+ {
+ if (InTime(time) || inAdvanceSeconds <= 0)
+ {
+ return false;
+ }
+ var seconds = 0;
+ if (TryGetInAdvanceSurplusSecond(time, out seconds))
+ {
+ return seconds < inAdvanceSeconds;
+ }
+ return false;
+ }
+
+ public bool TryGetInAdvanceSurplusSecond(DateTime time, out int seconds)
+ {
+ seconds = 0;
+ if (InTime(time))
+ {
+ return false;
+ }
+ if (allDay)
+ {
+ var startTime = new DateTime(startDate.year, startDate.month, startDate.day);
+ seconds = (int)(startTime - time).TotalSeconds;
+ }
+ else
+ {
+ if (dateEnumerator != null)
+ {
+ foreach (OperationDate date in dateEnumerator)
+ {
+ for (int i = 0; i < times.Count; i++)
+ {
+ var startTime = new DateTime(date.year, date.month, date.day, times[i].startHour, times[i].startMinute, 0);
+ seconds = (int)(startTime - time).TotalSeconds;
+ if (seconds > 0)
+ {
+ break;
+ }
+ }
+ if (seconds > 0)
+ {
+ break;
+ }
+ }
+ }
+ }
+ return seconds > 0;
+ }
+
public int GetSurplusTime(DateTime time)
{
var seconds = 0;
@@ -871,7 +979,9 @@
stepDateNotify = false;
inTimeNotify = false;
inDateNotify = false;
+ inAdvanceNotify = false;
allDay = false;
+ inAdvanceSeconds = 0;
limitLv = 0;
times.Clear();
}
@@ -890,12 +1000,6 @@
{
var textBuilder = OperationTimeHepler.textBuilder;
textBuilder.Length = 0;
- //textBuilder.Append(startDate.ToDisplay());
- //if (startDate != endDate)
- //{
- // textBuilder.Append("鈥�");
- // textBuilder.Append(endDate.ToDisplay(startDate.year != endDate.year));
- //}
if (allDay)
{
textBuilder.Append(Language.Get("OpenAllDay"));
diff --git a/System/Welfare/WelfareCenter.cs b/System/Welfare/WelfareCenter.cs
index b323994..5382e89 100644
--- a/System/Welfare/WelfareCenter.cs
+++ b/System/Welfare/WelfareCenter.cs
@@ -71,7 +71,7 @@
WindowCenter.Instance.Open<WelfareWin>(false, 7);
return;
}
- if (fairyJadeInvestmentModel.redPointStre1.state == RedPointState.Simple)
+ if (fairyJadeInvestmentModel.redPointStre1.state == RedPointState.Simple || fairyJadeInvestmentModel.redPointStre1.state == RedPointState.GetReward)
{
WindowCenter.Instance.Close<MainInterfaceWin>();
WindowCenter.Instance.Open<WelfareWin>(false, 8);
@@ -122,7 +122,7 @@
{
return 7;
}
- if (fairyJadeInvestmentModel.redPointStre1.state == RedPointState.Simple)
+ if (fairyJadeInvestmentModel.redPointStre1.state == RedPointState.Simple || fairyJadeInvestmentModel.redPointStre1.state == RedPointState.GetReward)
{
return 8;
}
diff --git a/Utility/EnumHelper.cs b/Utility/EnumHelper.cs
index 77eb63a..923f3db 100644
--- a/Utility/EnumHelper.cs
+++ b/Utility/EnumHelper.cs
@@ -1039,6 +1039,7 @@
Simple = 1,
Quantity = 2,
Full = 3,
+ GetReward = 4,
}
public enum TeamInviteType
--
Gitblit v1.8.0