From e89c81f45f344186069dc9cfa8b4e232f6f9822d Mon Sep 17 00:00:00 2001
From: client_linchunjie <461730578@qq.com>
Date: 星期三, 24 十月 2018 17:30:48 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts

---
 System/OpenServerActivity/WishItemCell.cs           |    5 +
 System/OpenServerActivity/WishingPoolModel.cs       |   49 +++++++++
 System/OpenServerActivity/WishingPoolWin.cs         |   90 +++++++++++++++++
 Utility/EnumHelper.cs                               |    4 
 System/KnapSack/New/CommonItemBaisc.cs              |    2 
 System/MainInterfacePanel/MainInterfaceWin.cs       |   11 +
 System/OpenServerActivity/WishingGetItemWin.cs      |   87 +++++++++++++++++
 System/OpenServerActivity/WishingGetItemWin.cs.meta |   12 ++
 8 files changed, 250 insertions(+), 10 deletions(-)

diff --git a/System/KnapSack/New/CommonItemBaisc.cs b/System/KnapSack/New/CommonItemBaisc.cs
index 82ce151..0569780 100644
--- a/System/KnapSack/New/CommonItemBaisc.cs
+++ b/System/KnapSack/New/CommonItemBaisc.cs
@@ -218,7 +218,7 @@
         {
             ItemConfig config = Config.Instance.Get<ItemConfig>(itemId);
             int playerJob = PlayerDatas.Instance.baseData.Job;
-            if (config == null || (!isCompare && compareSocre == score) || config.EquipPlace == 0 
+            if (config == null || (!isCompare && compareSocre == 0) || config.EquipPlace == 0 
                 || (score == compareSocre && compareSocre != 0) || (compareSocre <= 0 && (type == PackType.rptEquip || type == PackType.rptDogzEquip))) return 0;
 
             ItemModel model = playerPack.GetItemModelByGUID(guid);
diff --git a/System/MainInterfacePanel/MainInterfaceWin.cs b/System/MainInterfacePanel/MainInterfaceWin.cs
index 9b410d1..03404f4 100644
--- a/System/MainInterfacePanel/MainInterfaceWin.cs
+++ b/System/MainInterfacePanel/MainInterfaceWin.cs
@@ -202,7 +202,7 @@
             m_TeamInvitationEntrance.Init();
             m_FairyCallBehaviour.Init();
             m_BossBriefInfos.gameObject.SetActive(false);
-            ClickWishAward();
+            UpdateWishAwardImag();
             ArticleExperience();//鍏充簬缁忛獙鏉�
             FriendQuestBtn();
             UpdateFairyRequest();
@@ -228,7 +228,7 @@
             RedpointCenter.Instance.redpointValueChangeEvent += RedpointValueChangeEvent;
             NewBieCenter.Instance.guideBeginEvent += GuideBeginEvent;
             fairyGrabBossModel.bossGrabHintEvent += bossGrabHintEvent;
-            wishModel.UpdateWishAwardEvent += ClickWishAward;
+            wishModel.UpdateWishAwardEvent += UpdateWishAwardImag;
             fairyGrabBossModel.gotoBossStateUpdate += ShowFairyGrabBoss;
         }
 
@@ -400,7 +400,7 @@
             GA_NpcCollect.OnArrive -= OnArriveCollectNPC;
             GA_NpcCollect.OnLeave -= OnLeaveCollectNpc;
             fairyGrabBossModel.bossGrabHintEvent -= bossGrabHintEvent;
-            wishModel.UpdateWishAwardEvent -= ClickWishAward;
+            wishModel.UpdateWishAwardEvent -= UpdateWishAwardImag;
             m_CollectBtn.gameObject.SetActive(false);
         }
 
@@ -660,6 +660,11 @@
 
         private void ClickWishAward()
         {
+            WindowCenter.Instance.Open<WishingGetItemWin>();
+        }
+
+        private void UpdateWishAwardImag()
+        {
             WishingAwardImg.gameObject.SetActive(wishModel.wishingAwardDict.Count > 0 ? true : false);
         }
 
diff --git a/System/OpenServerActivity/WishItemCell.cs b/System/OpenServerActivity/WishItemCell.cs
index e542824..df90f87 100644
--- a/System/OpenServerActivity/WishItemCell.cs
+++ b/System/OpenServerActivity/WishItemCell.cs
@@ -17,6 +17,7 @@
         {
             WishingPoolModel.WishingWellItem wellItem = null;
             bool isWishData = wishingModel.TryGetWishDataByIndex(index, out wellItem);
+            noneItemBtn.RemoveAllListeners();
             if (isWishData)
             {
                 nameText.gameObject.SetActive(true);
@@ -41,6 +42,10 @@
                 noneItemObj.gameObject.SetActive(true);
                 nameText.gameObject.SetActive(false);
                 bestIconObj.SetActive(false);
+                noneItemBtn.AddListener(()=>
+                {
+                    wishingModel.SetHandMovePos(index);
+                });
             }
         }
     }
diff --git a/System/OpenServerActivity/WishingGetItemWin.cs b/System/OpenServerActivity/WishingGetItemWin.cs
new file mode 100644
index 0000000..24ed25a
--- /dev/null
+++ b/System/OpenServerActivity/WishingGetItemWin.cs
@@ -0,0 +1,87 @@
+锘縰sing System.Collections.Generic;
+using System.Linq;
+using UnityEngine;
+using UnityEngine.UI;
+using System;
+
+namespace Snxxz.UI
+{
+    public class WishingGetItemWin : Window
+    {
+        [SerializeField] Button sureBtn;
+        [SerializeField] List<AwardItem> awardItems = new List<AwardItem>();
+
+        WishingPoolModel wishModel { get { return ModelCenter.Instance.GetModel<WishingPoolModel>(); } }
+        ItemTipsModel tipsModel { get { return ModelCenter.Instance.GetModel<ItemTipsModel>(); } }
+        protected override void BindController()
+        {
+
+        }
+        protected override void AddListeners()
+        {
+            sureBtn.AddListener(ClickRecevie);
+        }
+
+        protected override void OnPreOpen()
+        {
+            SetDisplayModel();
+        }
+        protected override void OnAfterOpen()
+        {
+            transform.SetAsLastSibling();
+        }
+
+        protected override void OnPreClose()
+        {
+           
+        }
+
+        protected override void OnAfterClose()
+        {
+
+        }
+
+        private void SetDisplayModel()
+        {
+            List<WishingPoolModel.WishingWellItem> wellItems = wishModel.wishingAwardDict.Values.ToList();
+            for (int i = 0; i < awardItems.Count; i++)
+            {
+                var awardItem = awardItems[i];
+                if (i < wellItems.Count)
+                {
+                    awardItem.parentObj.SetActive(true);
+                    var wellItem = wellItems[i];
+                    ItemCellModel cellModel = new ItemCellModel((int)wellItem.itemId, true
+                        , (ulong)wellItem.itemCount, wellItem.isBind);
+                    awardItem.itemBaisc.Init(cellModel);
+                    awardItem.bestIconObj.SetActive(wellItem.isBest == 0 ? false : true);
+                    awardItem.itemBaisc.cellBtn.RemoveAllListeners();
+                    awardItem.itemBaisc.cellBtn.AddListener(() =>
+                    {
+                        ItemAttrData attrData = new ItemAttrData((int)wellItem.itemId, true
+                        , (ulong)wellItem.itemCount, -1,wellItem.isBind);
+                        tipsModel.SetItemTipsModel(attrData);
+                    });
+                }
+                else
+                {
+                    awardItem.parentObj.gameObject.SetActive(false);
+                }
+            }
+        }
+
+        private void ClickRecevie()
+        {
+            wishModel.SendGetAwardQuest();
+            CloseClick();
+        }
+
+        [Serializable]
+        public class AwardItem
+        {
+            public GameObject parentObj;
+            public CommonItemBaisc itemBaisc;
+            public GameObject bestIconObj;
+        }
+    }
+}
diff --git a/System/OpenServerActivity/WishingGetItemWin.cs.meta b/System/OpenServerActivity/WishingGetItemWin.cs.meta
new file mode 100644
index 0000000..e29820a
--- /dev/null
+++ b/System/OpenServerActivity/WishingGetItemWin.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: a946e5a3486ff5f4b88beb7fc4284d30
+timeCreated: 1540352052
+licenseType: Pro
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/System/OpenServerActivity/WishingPoolModel.cs b/System/OpenServerActivity/WishingPoolModel.cs
index 491ad19..06b53fe 100644
--- a/System/OpenServerActivity/WishingPoolModel.cs
+++ b/System/OpenServerActivity/WishingPoolModel.cs
@@ -15,10 +15,12 @@
         public const int WishRedKey = 20915;
         public override void Init()
         {
+            ParseConfig();
             OperationTimeHepler.Instance.operationStartEvent += OperationStartEvent;
             OperationTimeHepler.Instance.operationEndEvent += OperationEndEvent;
             OperationTimeHepler.Instance.operationAdvanceEvent += OperationAdvanceEvent;
             OpenServerActivityCenter.Instance.Register((int)OpenServerActivityCenter.OSActivityType.WishingPool, this);
+            SetWishRedpoint();
         }
 
         public void OnBeforePlayerDataInitialize()
@@ -120,7 +122,37 @@
             return false;
         }
 
+        public bool IsBestItem()
+        {
+            foreach(var key in poolDataDict.Keys)
+            {
+                if(poolDataDict[key].isBest == 1)
+                {
+                    return true;
+                }
+            }
+            return false;
+        }
 
+        public int handStartIndex { get; private set; }
+        public int handEndIndex { get; private set;}
+        public event Action UpdateHandMoveEvent;
+        public void SetHandMovePos(int wishIndex)
+        {
+            foreach(var key in poolDataDict.Keys)
+            {
+                if(poolDataDict[key].itemId != 0)
+                {
+                    handStartIndex = key;
+                    break;
+                }
+            }
+            handEndIndex = wishIndex;
+            if(UpdateHandMoveEvent != null)
+            {
+                UpdateHandMoveEvent();
+            }
+        }
 
         #region 鏈湴鏁版嵁
         public bool isDraging { get; set; }
@@ -168,8 +200,11 @@
             for (int i = 0; i < wishInfo.LastAwardCnt; i++)
             {
                 var itemInfo = wishInfo.LastAwardItemInfo[i];
-                WishingWellItem wellItem = new WishingWellItem((int)itemInfo.ItemID, itemInfo.ItemCnt, itemInfo.IsBind, itemInfo.IsSpecial);
-                SetWishingAwardData(i, wellItem);
+                if(itemInfo.ItemID != 0)
+                {
+                    WishingWellItem wellItem = new WishingWellItem((int)itemInfo.ItemID, itemInfo.ItemCnt, itemInfo.IsBind, itemInfo.IsSpecial);
+                    SetWishingAwardData(i, wellItem);
+                }
             }
             UpdateRedpoint();
             if(UpdateWishAwardEvent != null)
@@ -299,6 +334,16 @@
             GameNetSystem.Instance.SendInfo(wishingRefresh);
         }
 
+        public void SendGetAwardQuest()
+        {
+            CA504_tagCMPlayerGetReward getReward = new CA504_tagCMPlayerGetReward();
+            getReward.RewardType = (byte)GotServerRewardType.Def_RewardType_WishingWell;
+            getReward.DataEx = 0;
+            getReward.DataExStrLen = 0;
+            getReward.DataExStr = string.Empty;
+            GameNetSystem.Instance.SendInfo(getReward);
+        }
+
         public void SendRefreshWishInfo(int poolIndex,int wishIndex)
         {
             CAA06_tagCMActWishing actWishing = new CAA06_tagCMActWishing();
diff --git a/System/OpenServerActivity/WishingPoolWin.cs b/System/OpenServerActivity/WishingPoolWin.cs
index 10f61c2..105627d 100644
--- a/System/OpenServerActivity/WishingPoolWin.cs
+++ b/System/OpenServerActivity/WishingPoolWin.cs
@@ -2,6 +2,7 @@
 using UnityEngine.UI;
 using System.Collections.Generic;
 using System;
+using DG.Tweening;
 
 namespace Snxxz.UI
 {
@@ -20,6 +21,12 @@
         [SerializeField] List<WishItemCell> wishingCells = new List<WishItemCell>();
         [SerializeField] GameObject activityOpenObj;
         [SerializeField] GameObject activityCloseObj;
+        [Header("鍔ㄧ敾鎺у埗")]
+        [SerializeField] RectTransform handImg;
+        [SerializeField] PositionTween positionTween;
+        [SerializeField] UIAlphaTween alphaTween;
+        [SerializeField] List<Vector2> startPos = new List<Vector2>();
+        [SerializeField] List<Vector2> endPos = new List<Vector2>();
 
         ItemTipsModel tipsModel { get { return ModelCenter.Instance.GetModel<ItemTipsModel>(); } }
         WishingPoolModel wishingModel { get { return ModelCenter.Instance.GetModel<WishingPoolModel>(); } }
@@ -44,6 +51,7 @@
             wishingModel.UpdatePoolDataEvent += UpdatePoolItemByIndex;
             wishingModel.UpdateWishingDataEvent += UpdateWishItemByIndex;
             GlobalTimeEvent.Instance.secondEvent += UpdateSecond;
+            wishingModel.UpdateHandMoveEvent += UpdateHandMove;
         }
 
         protected override void OnAfterOpen()
@@ -56,6 +64,7 @@
             wishingModel.UpdateWishingDataEvent -= UpdateWishItemByIndex;
             GlobalTimeEvent.Instance.secondEvent -= UpdateSecond;
             OperationTimeHepler.Instance.operationEndEvent -= OperationEndEvent;
+            wishingModel.UpdateHandMoveEvent -= UpdateHandMove;
         }
         protected override void OnAfterClose()
         {
@@ -79,6 +88,31 @@
             UpdateDayRemainTime();
             activityDayText.text = Language.Get("WishingPool103", operation.GetActivityDay());
             totalDayText.text = Language.Get("WishingPool101", Language.Get(StringUtility.Contact("Num_CHS_", operation.totalDays + 1)));
+            handImg.gameObject.SetActive(false);
+        }
+
+        private void UpdateHandMove()
+        {
+            PlayHandMovePos();
+        }
+
+        private void PlayHandMovePos()
+        {
+            positionTween.from = startPos[wishingModel.handStartIndex];
+            positionTween.to = endPos[wishingModel.handEndIndex];
+            positionTween.SetStartState();
+            alphaTween.from = 0;
+            alphaTween.to = 1;
+            alphaTween.SetStartState();
+            handImg.gameObject.SetActive(true);
+            int offset = wishingModel.handStartIndex % 4 - wishingModel.handEndIndex;
+            positionTween.duration = Mathf.Max(2, Mathf.Abs(offset));
+            alphaTween.Play();
+            positionTween.Play(() =>
+            {
+                handImg.gameObject.SetActive(false);
+            });
+
         }
 
         #region 璁告効閫昏緫
@@ -107,6 +141,7 @@
        
         private void CheckWishingCell()
         {
+            bool isAddWish = false;
             for(int i = 0; i < wishingCells.Count; i++)
             {
                 var rect = wishingCells[i].transform as RectTransform;
@@ -128,9 +163,14 @@
                     //    wishingModel.SetWishingPoolData(wishingModel.dragIndex,wellWishItem);
                     //}
                     //wishingModel.SetWishingData(i,wellPoolItem);
+                    isAddWish = true;
                     wishingModel.SendRefreshWishInfo(wishingModel.dragIndex,i);
                     break;
                 }
+            }
+            if(!isAddWish)
+            {
+                UpdatePoolItem();
             }
         }
 
@@ -144,6 +184,7 @@
                 dragItem.dragBestIcon.SetActive(false);
                 ItemCellModel cellModel = new ItemCellModel(wellItem.itemId,false,(ulong)wellItem.itemCount,wellItem.isBind);
                 dragItem.dragItemBasic.Init(cellModel);
+                poolItemCells[wishingModel.dragIndex].gameObject.SetActive(false);
             }
             else
             {
@@ -256,12 +297,57 @@
 
         private void ClickMoneyRefreshWish()
         {
-            wishingModel.SendRefreshPoolInfo(0);
+            if(!wishingModel.IsBestItem())
+            {
+                CheckMoney();
+            }
+            else
+            {
+                ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), Language.Get("WishingPool106", wishingModel.wishingPrice), (bool isOk) =>
+                {
+                    if (isOk)
+                    {
+                        CheckMoney();
+                    }
+                });
+            }
+        }
+
+        private void CheckMoney()
+        {
+            if ((int)UIHelper.GetMoneyCnt(1) < wishingModel.wishingPrice)
+            {
+                WindowCenter.Instance.Open<RechargeTipWin>();
+            }
+            else
+            {
+                ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), Language.Get("WishingPool105", wishingModel.wishingPrice), (bool isOk) =>
+                {
+                    if (isOk)
+                    {
+                        wishingModel.SendRefreshPoolInfo(0);
+                    }
+                });
+            }
         }
 
         private void ClickFreeRefreshWish()
         {
-            wishingModel.SendRefreshPoolInfo(1);
+            if (!wishingModel.IsBestItem())
+            {
+                wishingModel.SendRefreshPoolInfo(1);
+            }
+            else
+            {
+                ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), Language.Get("WishingPool106", wishingModel.wishingPrice), (bool isOk) =>
+                {
+                    if (isOk)
+                    {
+                        wishingModel.SendRefreshPoolInfo(1);
+                    }
+                });
+            }
+         
         }
         #endregion
 
diff --git a/Utility/EnumHelper.cs b/Utility/EnumHelper.cs
index 789a180..b99c069 100644
--- a/Utility/EnumHelper.cs
+++ b/Utility/EnumHelper.cs
@@ -1163,9 +1163,9 @@
     Def_RewardType_TreasureSoul = 9,//娉曞疂榄傚鍔�
     Def_RewardType_ConsumeRebate = 11,//娑堣垂杩斿埄濂栧姳
     Def_RewardType_BossReborn = 12,//boss澶嶆椿濂栧姳
-    Def_RewardType_FCRecharge = 13,// 浠欑晫鐩涘吀鍏呭�煎ぇ绀�13
+    Def_RewardType_FCRecharge = 13,// 浠欑晫鐩涘吀鍏呭�煎ぇ绀�13W
     Def_RewardType_FCParty = 14,// 浠欑晫鐩涘吀鍏ㄦ皯鏉ュ棬14
-
+    Def_RewardType_WishingWell = 16,//  璁告効姹犲鍔�16
 }
 
 public enum MapType

--
Gitblit v1.8.0