From efa5f8d07fc3321f6ac5f5d97fb422db28d0886f Mon Sep 17 00:00:00 2001
From: client_Wu Xijin <364452445@qq.com>
Date: 星期二, 05 三月 2019 10:55:31 +0800
Subject: [PATCH] Merge branch 'master' into Equip

---
 System/MainInterfacePanel/FeaturesType3.cs |  225 +++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 213 insertions(+), 12 deletions(-)

diff --git a/System/MainInterfacePanel/FeaturesType3.cs b/System/MainInterfacePanel/FeaturesType3.cs
index 46a37a2..da5a538 100644
--- a/System/MainInterfacePanel/FeaturesType3.cs
+++ b/System/MainInterfacePanel/FeaturesType3.cs
@@ -5,22 +5,46 @@
 using UnityEngine;
 using System.Collections;
 using UnityEngine.UI;
-using TableConfig;
 
-namespace Snxxz.UI {
+using System.Collections.Generic;
+
+namespace Snxxz.UI
+{
     //鍔熻兘棰勫憡绗笁閮�
 
-    public class FeaturesType3:MonoBehaviour {
+    public class FeaturesType3 : MonoBehaviour
+    {
         [SerializeField] ImageEx m_Image_Selected;//搴曟澘
         [SerializeField] ImageEx m_Img_Circle;//Icon妗�
         [SerializeField] ImageEx m_FeaturesTypeIcon;//Icon
         [SerializeField] Text m_FunctionName;//鍔熻兘鍚�
         [SerializeField] Text m_FunctionalLevel;//鍔熻兘绛夌骇
         [SerializeField] Text m_Content;//鍐呭
-        FeatureNoticeModel featureNoticeModel { get { return ModelCenter.Instance.GetModel<FeatureNoticeModel>(); } }
+        [SerializeField] GameObject m_Award;
+
+        [SerializeField] ImageEx m_ItemBG1;
+        [SerializeField] ImageEx m_Icon1;
+        [SerializeField] Button m_IconBtn1;
+        [SerializeField] Text m_Number1;
+        [SerializeField] ImageEx m_Lock1;
+        [SerializeField] UIEffect m_UIEffect1;
+        [SerializeField] GameObject m_HasReceived1;
+
+        [SerializeField] ImageEx m_ItemBG2;
+        [SerializeField] ImageEx m_Icon2;
+        [SerializeField] Button m_IconBtn2;
+        [SerializeField] Text m_Number2;
+        [SerializeField] ImageEx m_Lock2;
+        [SerializeField] UIEffect m_UIEffect2;
+        [SerializeField] GameObject m_HasReceived2;
+
+        [SerializeField] RedpointBehaviour m_RedPoint;
+        FeatureNoticeModel featureNoticeModel { get { return ModelCenter.Instance.GetModel<FeatureNoticeModel>(); } }
+        ItemTipsModel _itemTipsModel;
+        ItemTipsModel itemTipsModel { get { return _itemTipsModel ?? (_itemTipsModel = ModelCenter.Instance.GetModel<ItemTipsModel>()); } }
         public void GetTheFeatureID(int funcId)
         {
-            var functionForecastConfig = Config.Instance.Get<FunctionForecastConfig>(funcId);
+            var functionForecastConfig = FunctionForecastConfig.Get(funcId);
             if (functionForecastConfig == null)
             {
                 return;
@@ -36,15 +60,33 @@
             }
             if (!FuncOpen.Instance.IsFuncOpen(funcId) && Type && NeedLv > playerLv)
             {
-                m_FunctionName.text = "?";
+                m_FunctionName.gameObject.SetActive(false);
+              //  m_FunctionName.text = "?";
                 m_FeaturesTypeIcon.SetSprite("UnKnowIcon");
-                m_Content.text= string.Format(Language.Get("YGFuncLevel"), NeedLv, PlayerDatas.Instance.baseData.LV, NeedLv);
+                m_Award.SetActive(false);
+                m_Content.gameObject.SetActive(true);
+                m_Content.text = string.Format(Language.Get("YGFuncLevel"), NeedLv, PlayerDatas.Instance.baseData.LV, NeedLv);
             }
             else
             {
+                m_FunctionName.gameObject.SetActive(true);
                 m_FunctionName.text = functionForecastConfig.FuncName;
                 m_FeaturesTypeIcon.SetSprite(functionForecastConfig.FuncIconKey);
-                m_Content.text = functionForecastConfig.Content;
+                if (featureNoticeModel.DicAwardItem.ContainsKey(funcId))
+                {
+                    m_Award.SetActive(true);
+                    m_Content.gameObject.SetActive(false);
+
+                    SetRankAwardItem(funcId);
+                    //-------------------
+                }
+                else
+                {
+                    m_Award.SetActive(false);
+                    m_Content.gameObject.SetActive(true);
+                    m_Content.text = functionForecastConfig.Content;
+                }
+
             }
             if (PlayerDatas.Instance.baseData.LV >= functionForecastConfig.DisplayLevel)
             {
@@ -66,10 +108,169 @@
                 m_Img_Circle.gray = true;
                 m_FeaturesTypeIcon.gray = true;
             }
+
+            if (featureNoticeModel.DicRedPoint.ContainsKey(funcId))
+            {
+                m_RedPoint.redpointId = featureNoticeModel.DicRedPoint[funcId].id;
+            }
+        }
+
+        private void SetRankAwardItem(int funcID)
+        {
+            ImpactRankModel.RankAwardItem rankAward = featureNoticeModel.DicAwardItem[funcID];
+            List<AwardItem> List = rankAward.GetAwardItem(PlayerDatas.Instance.baseData.Job);
+
+            if (List.Count <= 1)
+            {
+                m_ItemBG1.gameObject.SetActive(true);
+                m_ItemBG2.gameObject.SetActive(false);
+                SetItem1(List, funcID);
+            }
+            else
+            {
+                m_ItemBG1.gameObject.SetActive(true);
+                m_ItemBG2.gameObject.SetActive(true);
+                SetItem1(List, funcID);
+                SetItem2(List, funcID);
+
+            }
+
+        }
+        private void SetItem1(List<AwardItem> List,int funcID)
+        {
+            var itemConfig = ItemConfig.Get(List[0].item.id);
+            UIHelper.SetItemBackGround(m_ItemBG1, itemConfig.ItemColor);
+            m_Icon1.SetSprite(itemConfig.IconKey);
+            m_IconBtn1.SetListener(() =>
+            {
+                if (featureNoticeModel.DicOpenFuncState.ContainsKey(funcID) && featureNoticeModel.DicOpenFuncState[funcID].State == 1 &&
+                featureNoticeModel.DicOpenFuncState[funcID].AwardState == 0)
+                {
+                    featureNoticeModel.SendGetAward(funcID);
+                   // DebugEx.LogError("鍙互棰嗗彇");
+                }
+                else
+                {
+                    ItemAttrData attrData = new ItemAttrData(List[0].item.id, false, (ulong)List[0].item.count, -1, List[0].isBind);
+                    itemTipsModel.SetItemTipsModel(attrData);
+                   // DebugEx.LogError("寮规");
+                }
+
+            });
+            if (List[0].item.count > 1)
+            {
+                m_Number1.gameObject.SetActive(true);
+                m_Number1.text = List[0].item.count.ToString();
+            }
+            else
+            {
+                m_Number1.gameObject.SetActive(false);
+            }
+            if (List[0].isBind==1)
+            {
+                m_Lock1.gameObject.SetActive(true);
+            }
+            else
+            {
+                m_Lock1.gameObject.SetActive(false);
+            }
+            if (FuncOpen.Instance.IsFuncOpen(funcID))
+            {
+                m_ItemBG1.gray = false;
+                m_Icon1.gray = false;
+                m_Lock1.gray = false;
+            }
+            else
+            {
+                m_ItemBG1.gray = true;
+                m_Icon1.gray = true;
+                m_Lock1.gray = true;
+            }
+            if (featureNoticeModel.DicOpenFuncState.ContainsKey(funcID) && featureNoticeModel.DicOpenFuncState[funcID].State == 1 &&
+               featureNoticeModel.DicOpenFuncState[funcID].AwardState == 0)
+            {           
+                m_UIEffect1.Play();
+            }
+            else
+            {                
+                m_UIEffect1.Stop();
+            }
+            if (featureNoticeModel.DicOpenFuncState.ContainsKey(funcID) && featureNoticeModel.DicOpenFuncState[funcID].State == 1 && featureNoticeModel.DicOpenFuncState[funcID].AwardState == 1)
+            {
+                m_HasReceived1.SetActive(true);
+            }
+            else
+            {
+                m_HasReceived1.SetActive(false);
+            }
+        }
+        private void SetItem2(List<AwardItem> List, int funcID)
+        {
+            var itemConfig = ItemConfig.Get(List[1].item.id);
+            UIHelper.SetItemBackGround(m_ItemBG2, itemConfig.ItemColor);
+            m_Icon2.SetSprite(itemConfig.IconKey);
+            m_IconBtn2.SetListener(() =>
+            {
+                if (featureNoticeModel.DicOpenFuncState.ContainsKey(funcID) && featureNoticeModel.DicOpenFuncState[funcID].State == 1 &&
+               featureNoticeModel.DicOpenFuncState[funcID].AwardState == 0)
+                {
+                    featureNoticeModel.SendGetAward(funcID);
+                  // DebugEx.LogError("鍙互棰嗗彇");
+                }
+                else
+                {
+                    ItemAttrData attrData = new ItemAttrData(List[1].item.id, false, (ulong)List[1].item.count, -1, List[1].isBind);
+                    itemTipsModel.SetItemTipsModel(attrData);
+                    //DebugEx.LogError("寮规");
+                }
+            });
+            if (List[1].item.count > 1)
+            {
+                m_Number2.gameObject.SetActive(true);
+                m_Number2.text = List[1].item.count.ToString();
+            }
+            else
+            {
+                m_Number2.gameObject.SetActive(false);
+            }
+            if (List[1].isBind==1)
+            {
+                m_Lock2.gameObject.SetActive(true);
+            }
+            else
+            {
+                m_Lock2.gameObject.SetActive(false);
+            }
+            if (FuncOpen.Instance.IsFuncOpen(funcID))
+            {
+                m_ItemBG2.gray = false;
+                m_Icon2.gray = false;
+                m_Lock2.gray = false;
+            }
+            else
+            {
+                m_ItemBG2.gray = true;
+                m_Icon2.gray = true;
+                m_Lock2.gray = true;
+            }
+            if (featureNoticeModel.DicOpenFuncState.ContainsKey(funcID) && featureNoticeModel.DicOpenFuncState[funcID].State == 1 &&
+              featureNoticeModel.DicOpenFuncState[funcID].AwardState == 0)
+            {              
+                m_UIEffect2.Play();
+            }
+            else
+            {           
+                m_UIEffect2.Stop();
+            }
+            if (featureNoticeModel.DicOpenFuncState.ContainsKey(funcID) && featureNoticeModel.DicOpenFuncState[funcID].State == 1 && featureNoticeModel.DicOpenFuncState[funcID].AwardState == 1)
+            {
+                m_HasReceived2.SetActive(true);
+            }
+            else
+            {
+                m_HasReceived2.SetActive(false);
+            }
         }
     }
 
-}
-
-
-
+}
\ No newline at end of file

--
Gitblit v1.8.0