少年修仙传客户端代码仓库
client_linchunjie
2019-03-14 d0d289d502fe85e9bb597ced1b41c73b8bc75889
System/OpenServerActivity/WishingPoolModel.cs
@@ -7,14 +7,14 @@
namespace Snxxz.UI
{
    [XLua.LuaCallCSharp]
    public class WishingPoolModel : Model,IBeforePlayerDataInitialize,IPlayerLoginOk,IOpenServerActivity
    public class WishingPoolModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk, IOpenServerActivity
    {
        public event Action<int> UpdateWishingDataEvent;
        public event Action<int> UpdatePoolDataEvent;
        public event Action UpdateWishAwardEvent;
        public event Action<int> onStateUpate;
        public const int WishRedKey = 20915;
        public bool isOpenPrompting { get; set;}
        public bool isOpenPrompting { get; set; }
        public override void Init()
        {
            ParseConfig();
@@ -42,29 +42,23 @@
        public override void UnInit()
        {
        }
        public bool IsOpen
        {
            get
            {
        public bool IsOpen {
            get {
                return OperationTimeHepler.Instance.SatisfyOpenCondition(Operation.WishingWellInfo);
            }
        }
        public bool priorityOpen
        {
            get
            {
        public bool priorityOpen {
            get {
                return wishPoolRedpoint.state == RedPointState.Simple;
            }
        }
        public bool IsAdvance
        {
            get
            {
        public bool IsAdvance {
            get {
                return OperationTimeHepler.Instance.SatisfyAdvanceCondition(Operation.WishingWellInfo);
            }
        }
@@ -97,7 +91,7 @@
        {
            if (type == Operation.WishingWellInfo && state == 0)
            {
                UpdateRedpoint();
                UpdateFreeWishRedpoint();
                if (onStateUpate != null)
@@ -124,7 +118,7 @@
            int endSeconds = freeStartTime + freeRefreshCoolTime;
            DateTime endTime = TimeUtility.GetTime((uint)endSeconds);
            second = Mathf.CeilToInt((float)(endTime - TimeUtility.ServerNow).TotalSeconds);
            if(second > 0)
            if (second > 0)
            {
                return true;
            }
@@ -133,9 +127,9 @@
        public bool IsBestItem()
        {
            foreach(var key in poolDataDict.Keys)
            foreach (var key in poolDataDict.Keys)
            {
                if(poolDataDict[key].rare == 1)
                if (poolDataDict[key].rare == 1)
                {
                    return true;
                }
@@ -143,30 +137,30 @@
            return false;
        }
        public bool TryGetItemRareIcon(int rare,out string iconKey)
        public bool TryGetItemRareIcon(int rare, out string iconKey)
        {
            iconKey = string.Empty;
            return wishItemRareDict.TryGetValue(rare,out iconKey);
            return wishItemRareDict.TryGetValue(rare, out iconKey);
        }
        public int handStartIndex { get; private set; }
        public int handEndIndex { get; private set;}
        public int handEndIndex { get; private set; }
        public event Action UpdateHandMoveEvent;
        public bool isClick { get; set; }
        public void SetHandMovePos(int wishIndex)
        {
            if (!isClick) return;
            foreach(var key in poolDataDict.Keys)
            foreach (var key in poolDataDict.Keys)
            {
                if(poolDataDict[key].itemId != 0)
                if (poolDataDict[key].itemId != 0)
                {
                    handStartIndex = key;
                    break;
                }
            }
            handEndIndex = wishIndex;
            if(UpdateHandMoveEvent != null)
            if (UpdateHandMoveEvent != null)
            {
                isClick = false;
                UpdateHandMoveEvent();
@@ -179,7 +173,7 @@
            int second = 0;
            bool isCool = TryGetFreeWishCoolTime(out second);
            if(!isCool)
            if (!isCool)
            {
                UpdateFreeWishRedpoint();
            }
@@ -193,8 +187,8 @@
            isDraging = false;
            dragIndex = -1;
        }
        public int freeRefreshCoolTime { get; private set;}
        public string wishingPriceFormula { get; private set;}
        public int freeRefreshCoolTime { get; private set; }
        public string wishingPriceFormula { get; private set; }
        public Dictionary<int, string> wishItemRareDict { get; private set; }
        public void ParseConfig()
@@ -211,23 +205,23 @@
        Dictionary<int, WishingWellItem> poolDataDict = new Dictionary<int, WishingWellItem>();
        public int freeStartTime { get; private set; }// 免费开始倒计时时间
        public int alreadyWishNum { get; private set; } // 许愿付费刷新次数
        public int wishingPrice { get; private set;}
        public int wishingPrice { get; private set; }
        public void SetWishingWellPlayerInfo(HAA1A_tagMCActWishingWellPlayerInfo wishInfo)
        {
            freeStartTime = (int)wishInfo.FreeStartTime;
            alreadyWishNum = (int)wishInfo.WishCnt;
            wishingPrice = GetWishingPrice((int)wishInfo.WishCnt);
            for(int i = 0; i < wishInfo.WellItemCnt; i++)
            for (int i = 0; i < wishInfo.WellItemCnt; i++)
            {
                var itemInfo = wishInfo.WellItemInfo[i];
                WishingWellItem wellItem = new WishingWellItem((int)itemInfo.ItemID,itemInfo.ItemCnt,itemInfo.IsBind,itemInfo.IsSpecial);
                SetWishingPoolData(i,wellItem);
                WishingWellItem wellItem = new WishingWellItem((int)itemInfo.ItemID, itemInfo.ItemCnt, itemInfo.IsSpecial);
                SetWishingPoolData(i, wellItem);
            }
            for(int i = 0; i < wishInfo.CurAwardCnt; i++)
            for (int i = 0; i < wishInfo.CurAwardCnt; i++)
            {
                var itemInfo = wishInfo.CurAwardItemInfo[i];
                WishingWellItem wellItem = new WishingWellItem((int)itemInfo.ItemID, itemInfo.ItemCnt, itemInfo.IsBind, itemInfo.IsSpecial);
                WishingWellItem wellItem = new WishingWellItem((int)itemInfo.ItemID, itemInfo.ItemCnt, itemInfo.IsSpecial);
                SetWishingData(i, wellItem);
            }
@@ -235,9 +229,9 @@
            for (int i = 0; i < wishInfo.LastAwardCnt; i++)
            {
                var itemInfo = wishInfo.LastAwardItemInfo[i];
                if(itemInfo.ItemID != 0)
                if (itemInfo.ItemID != 0)
                {
                    WishingWellItem wellItem = new WishingWellItem((int)itemInfo.ItemID, itemInfo.ItemCnt, itemInfo.IsBind, itemInfo.IsSpecial);
                    WishingWellItem wellItem = new WishingWellItem((int)itemInfo.ItemID, itemInfo.ItemCnt, itemInfo.IsSpecial);
                    SetWishingAwardData(i, wellItem);
                }
            }
@@ -252,16 +246,16 @@
        public int GetWishingPrice(int wishNum)
        {
            Equation.Instance.Clear();
            Equation.Instance.AddKeyValue("refreshCnt",wishNum);
            Equation.Instance.AddKeyValue("refreshCnt", wishNum);
            return Equation.Instance.Eval<int>(wishingPriceFormula);
        }
        public void SetWishingResultInfo(HAA1B_tagMCActWishingDragResult result)
        {
            for(int i = 0; i < result.Cnt;i++)
            for (int i = 0; i < result.Cnt; i++)
            {
                var resultInfo = result.InfoList[i];
                WishingWellItem wellItem = new WishingWellItem((int)resultInfo.ItemID, resultInfo.ItemCnt, resultInfo.IsBind, resultInfo.IsSpecial);
                WishingWellItem wellItem = new WishingWellItem((int)resultInfo.ItemID, resultInfo.ItemCnt, resultInfo.IsSpecial);
                switch (resultInfo.WellType)
                {
                    case 0:
@@ -280,13 +274,13 @@
        {
            if (!poolDataDict.ContainsKey(index))
            {
                poolDataDict.Add(index,wellItem);
                poolDataDict.Add(index, wellItem);
            }
            else
            {
                poolDataDict[index] = wellItem;
            }
            if(UpdatePoolDataEvent != null)
            if (UpdatePoolDataEvent != null)
            {
                UpdatePoolDataEvent(index);
            }
@@ -307,16 +301,16 @@
        Dictionary<int, WishingWellItem> wishingDataDict = new Dictionary<int, WishingWellItem>();
        public void SetWishingData(int index, WishingWellItem wellItem)
        {
            if(!wishingDataDict.ContainsKey(index))
            if (!wishingDataDict.ContainsKey(index))
            {
                wishingDataDict.Add(index,wellItem);
                wishingDataDict.Add(index, wellItem);
            }
            else
            {
                wishingDataDict[index] = wellItem;
            }
            if(UpdateWishingDataEvent != null)
            if (UpdateWishingDataEvent != null)
            {
                UpdateWishingDataEvent(index);
            }
@@ -334,17 +328,17 @@
                wishingAwardDict[index] = wellItem;
            }
        }
        public bool IsBetterItem()
        {
            return false;
        }
        public bool TryGetPoolDataByIndex(int index,out WishingWellItem wellItem)
        public bool TryGetPoolDataByIndex(int index, out WishingWellItem wellItem)
        {
            if(poolDataDict.TryGetValue(index, out wellItem))
            if (poolDataDict.TryGetValue(index, out wellItem))
            {
                if(wellItem.itemId != 0)
                if (wellItem.itemId != 0)
                {
                    return true;
                }
@@ -354,9 +348,9 @@
        public bool TryGetWishDataByIndex(int index, out WishingWellItem wellItem)
        {
            if(wishingDataDict.TryGetValue(index, out wellItem))
            if (wishingDataDict.TryGetValue(index, out wellItem))
            {
                if(wellItem.itemId != 0)
                if (wellItem.itemId != 0)
                {
                    return true;
                }
@@ -381,7 +375,7 @@
            GameNetSystem.Instance.SendInfo(getReward);
        }
        public void SendRefreshWishInfo(int poolIndex,int wishIndex)
        public void SendRefreshWishInfo(int poolIndex, int wishIndex)
        {
            CAA06_tagCMActWishing actWishing = new CAA06_tagCMActWishing();
            actWishing.SrcWellType = 0;
@@ -404,7 +398,7 @@
            for (int i = 0; i < 5; i++)
            {
                int redKey = WishRedKey * 100 + (i + 2);
                Redpoint redpoint = new Redpoint(WishRedKey,redKey);
                Redpoint redpoint = new Redpoint(WishRedKey, redKey);
                wishPointlist.Add(redpoint);
            }
        }
@@ -416,7 +410,7 @@
            for (int i = 0; i < wishPointlist.Count; i++)
            {
                var wishPoint = wishPointlist[i];
                if(wishPoint.state != RedPointState.None)
                if (wishPoint.state != RedPointState.None)
                {
                    return;
                }
@@ -444,8 +438,8 @@
            {
                var wishPoint = wishPointlist[i];
                WishingWellItem wellItem = null;
                bool isWishData = TryGetWishDataByIndex(i,out wellItem);
                if(!isWishData)
                bool isWishData = TryGetWishDataByIndex(i, out wellItem);
                if (!isWishData)
                {
                    wishPoint.state = RedPointState.Simple;
                    return;
@@ -466,13 +460,12 @@
        {
            public int itemId;
            public int itemCount;
            public int isBind;
            public int rare;
            public WishingWellItem(int id,int count,int isBind,int rare)
            public WishingWellItem(int id, int count, int rare)
            {
                this.itemId = id;
                this.itemCount = count;
                this.isBind = isBind;
                this.rare = rare;
            }
        }