//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Tuesday, October 30, 2018 //-------------------------------------------------------- using UnityEngine; using System.Collections; using UnityEngine.UI; using System.Collections.Generic; namespace vnxbqy.UI { //功能预告第三部 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;//内容 [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(); } } public void GetTheFeatureID(int funcId) { var functionForecastConfig = FunctionForecastConfig.Get(funcId); if (functionForecastConfig == null) { return; } m_FunctionalLevel.text = Language.Get("LoadIconLV", functionForecastConfig.DisplayLevel); bool Type = false; int NeedLv = 0; int playerLv = PlayerDatas.Instance.baseData.LV; if (functionForecastConfig.OpenNumber - 2 >= featureNoticeModel.FunctionForecastIndex) { Type = true; NeedLv = featureNoticeModel.GetOpenLv(functionForecastConfig.OpenNumber - 2); } if (!FuncOpen.Instance.IsFuncOpen(funcId) && Type && NeedLv > playerLv) { m_FunctionName.SetActive(false); // m_FunctionName.text = "?"; m_FeaturesTypeIcon.SetSprite("UnKnowIcon"); m_Award.SetActive(false); m_Content.SetActive(true); m_Content.text = string.Format(Language.Get("YGFuncLevel"), NeedLv, PlayerDatas.Instance.baseData.LV, NeedLv); } else { m_FunctionName.SetActive(true); m_FunctionName.text = functionForecastConfig.FuncName; m_FeaturesTypeIcon.SetSprite(functionForecastConfig.FuncIconKey); if (featureNoticeModel.DicAwardItem.ContainsKey(funcId)) { m_Award.SetActive(true); m_Content.SetActive(false); SetRankAwardItem(funcId); //------------------- } else { m_Award.SetActive(false); m_Content.SetActive(true); m_Content.text = functionForecastConfig.Content; } } if (PlayerDatas.Instance.baseData.LV >= functionForecastConfig.DisplayLevel) { m_FunctionalLevel.color = new Color32(141, 220, 17, 255); } else { m_FunctionalLevel.color = new Color32(255, 244, 205, 255); } if (FuncOpen.Instance.IsFuncOpen(funcId)) { m_Image_Selected.gray = false; m_Img_Circle.gray = false; m_FeaturesTypeIcon.gray = false; } else { m_Image_Selected.gray = true; 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 List = rankAward.GetAwardItem(PlayerDatas.Instance.baseData.Job); if (List.Count <= 1) { m_ItemBG1.SetActive(true); m_ItemBG2.SetActive(false); SetItem1(List, funcID); } else { m_ItemBG1.SetActive(true); m_ItemBG2.SetActive(true); SetItem1(List, funcID); SetItem2(List, funcID); } } private void SetItem1(List List,int funcID) { var itemConfig = ItemConfig.Get(List[0].id); UIHelper.SetItemBackGround(m_ItemBG1, itemConfig.ItemColor, itemConfig.QualityEchoType); 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 { ItemTipUtility.Show(List[0].id); // DebugEx.LogError("弹框"); } }); if (List[0].count > 1) { m_Number1.SetActive(true); m_Number1.text = List[0].count.ToString(); } else { m_Number1.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 List, int funcID) { var itemConfig = ItemConfig.Get(List[1].id); UIHelper.SetItemBackGround(m_ItemBG2, itemConfig.ItemColor, itemConfig.QualityEchoType); 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 { ItemTipUtility.Show(List[1].id); //DebugEx.LogError("弹框"); } }); if (List[1].count > 1) { m_Number2.SetActive(true); m_Number2.text = List[1].count.ToString(); } else { m_Number2.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); } } } }