//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Thursday, April 26, 2018 //-------------------------------------------------------- using UnityEngine; using System.Collections; using UnityEngine.UI; using System.Collections.Generic; using TableConfig; namespace Snxxz.UI { public class FairyJadeInvestmentItem : MonoBehaviour { [SerializeField] Transform m_Group;//奖励品组 [SerializeField] Button m_ReceiveAwardBtn;//领奖按钮 [SerializeField] Image m_IsDrawImage;//是否领取 [SerializeField] Text m_TimeRemaining;//领取时间剩余 [SerializeField] GameObject m_Uieffect;//特效 [SerializeField] Text m_Label_Text;//标签 [SerializeField] GameObject m_IsReachImage;//未达成 FairyJadeInvestmentModel m_FairyJadeInvestmentModel; FairyJadeInvestmentModel fairyJadeInvestmentModel { get { return m_FairyJadeInvestmentModel ?? (m_FairyJadeInvestmentModel = ModelCenter.Instance.GetModel()); } } public void GetPlayerLV(int Lv) { int PlayerLv = PlayerDatas.Instance.baseData.LV; if (PlayerLv >= Lv) { MoreThanGrade(Lv); } else { BeforeTheClass(Lv); } } private void MoreThanGrade(int Lv)//超过等级 { if (fairyJadeInvestmentModel.FairyJadeInvestmentDic.ContainsKey(Lv)) { if (Lv <= 0) { m_Label_Text.gameObject.SetActive(true); m_Label_Text.text = Language.Get("FairyJadeInvestment_12"); } else { int GetRebateMultiple = RebateMultiple(Lv); if (fairyJadeInvestmentModel.MultipleList.Contains(GetRebateMultiple)) { m_Label_Text.gameObject.SetActive(true); m_Label_Text.text = string.Format(Language.Get("FairyJadeInvestment_11"), GetRebateMultiple); } else { m_Label_Text.gameObject.SetActive(false); } } int indexID = fairyJadeInvestmentModel.FairyJadeInvestmentDic[Lv].ID; if (fairyJadeInvestmentModel.InvestmentGrade == 0) { m_ReceiveAwardBtn.gameObject.SetActive(false); m_IsDrawImage.gameObject.SetActive(false); m_TimeRemaining.gameObject.SetActive(false); m_IsReachImage.SetActive(true); m_Uieffect.gameObject.SetActive(false); } else { int IsReceive = fairyJadeInvestmentModel.InfoSeriors[indexID]; if (IsReceive == 0) { m_ReceiveAwardBtn.gameObject.SetActive(true); m_Uieffect.gameObject.SetActive(true); m_IsDrawImage.gameObject.SetActive(false); m_TimeRemaining.gameObject.SetActive(false); m_IsReachImage.SetActive(false); m_ReceiveAwardBtn.RemoveAllListeners(); m_ReceiveAwardBtn.AddListener(() => { fairyJadeInvestmentModel.SendInvestment(3, indexID); }); } else { List fairyJadeInvestmentItem = fairyJadeInvestmentModel.FairyJadeInvestmentDic[Lv].FairyJadeInvestmentItem.GetAwardItem(fairyJadeInvestmentModel.InvestmentGrade); int AtPresentNumber = 0; if (IsReceive != 0) { List fairyJadeInvestmentItemAdd = fairyJadeInvestmentModel.FairyJadeInvestmentDic[Lv].FairyJadeInvestmentItem.GetAwardItem(IsReceive); AwardItem itemAdd = fairyJadeInvestmentItemAdd[0]; AtPresentNumber = itemAdd.item.count; } if (fairyJadeInvestmentItem[0].item.count > AtPresentNumber) { m_ReceiveAwardBtn.gameObject.SetActive(true); m_Uieffect.gameObject.SetActive(true); m_IsDrawImage.gameObject.SetActive(false); m_TimeRemaining.gameObject.SetActive(false); m_IsReachImage.SetActive(false); m_ReceiveAwardBtn.RemoveAllListeners(); m_ReceiveAwardBtn.AddListener(() => { fairyJadeInvestmentModel.SendInvestment(3, indexID); }); } else { m_ReceiveAwardBtn.gameObject.SetActive(false); m_IsDrawImage.gameObject.SetActive(true); m_TimeRemaining.gameObject.SetActive(false); m_IsReachImage.SetActive(false); m_Uieffect.gameObject.SetActive(false); } } } } ItemCellAssignment(Lv); } private void BeforeTheClass(int Lv)//未到等级 { if (fairyJadeInvestmentModel.FairyJadeInvestmentDic.ContainsKey(Lv)) { if (Lv <= 0) { m_Label_Text.gameObject.SetActive(true); m_Label_Text.text = Language.Get("FairyJadeInvestment_12"); } else { int GetRebateMultiple= RebateMultiple(Lv); if (fairyJadeInvestmentModel.MultipleList.Contains(GetRebateMultiple)) { m_Label_Text.gameObject.SetActive(true); m_Label_Text.text = string.Format(Language.Get("FairyJadeInvestment_11"), GetRebateMultiple); } else { m_Label_Text.gameObject.SetActive(false); } } m_ReceiveAwardBtn.gameObject.SetActive(false); m_IsDrawImage.gameObject.SetActive(false); m_TimeRemaining.gameObject.SetActive(false); m_IsReachImage.SetActive(true); m_Uieffect.gameObject.SetActive(false); } ItemCellAssignment(Lv); } private void ItemCellAssignment(int Lv) { if (fairyJadeInvestmentModel.FairyJadeInvestmentDic.ContainsKey(Lv)) { int grade = 3; if (fairyJadeInvestmentModel.InvestmentGrade != 0) { grade = fairyJadeInvestmentModel.InvestmentGrade; } else { if (fairyJadeInvestmentModel.InvestmentAmountDic.ContainsKey(fairyJadeInvestmentModel.SelectNumber)) { grade = fairyJadeInvestmentModel.InvestmentAmountDic[fairyJadeInvestmentModel.SelectNumber]; } } List fairyJadeInvestmentItem = fairyJadeInvestmentModel.FairyJadeInvestmentDic[Lv].FairyJadeInvestmentItem.GetAwardItem(grade); int indexID = fairyJadeInvestmentModel.FairyJadeInvestmentDic[Lv].ID; int IsReceive = fairyJadeInvestmentModel.InfoSeriors[indexID]; for (int i = 0; i < m_Group.childCount; i++) { if (i < fairyJadeInvestmentItem.Count) { m_Group.GetChild(i).gameObject.SetActive(true); AwardItem item = fairyJadeInvestmentItem[i]; MotnlyItem motnlyItem = m_Group.GetChild(i).GetComponent(); var Item = Config.Instance.Get(item.item.id); ItemCellModel cellModel = new ItemCellModel(item.item.id, true, (ulong)1, item.isBind); motnlyItem.Item_Cell.Init(cellModel); if (IsReceive == 0) { if (Lv <= 0) { motnlyItem.NameText.text = string.Format(Language.Get("FairyJadeInvestment_3"), item.item.count); } else { float GetFairyJadeNumber = InvestmentProportion(Lv); int ShowLinesNumber = ShowLines(grade); int GetValue = Mathf.FloorToInt((GetFairyJadeNumber / ShowLinesNumber) * 100); motnlyItem.NameText.text = string.Format(Language.Get("FairyJadeInvestment_10"), Lv, GetValue); } motnlyItem.MoneyNumberText.text = item.item.count.ToString(); } else { int AtPresentNumber = 0; if (IsReceive != 0) { List fairyJadeInvestmentItemAdd = fairyJadeInvestmentModel.FairyJadeInvestmentDic[Lv].FairyJadeInvestmentItem.GetAwardItem(IsReceive); AwardItem itemAdd = fairyJadeInvestmentItemAdd[i]; AtPresentNumber = itemAdd.item.count; } if (item.item.count > AtPresentNumber) { motnlyItem.NameText.text = string.Format(Language.Get("FairyJadeInvestment_5"), (item.item.count - AtPresentNumber)); motnlyItem.MoneyNumberText.text = (item.item.count - AtPresentNumber).ToString(); } else { motnlyItem.NameText.text = string.Format(Language.Get("FairyJadeInvestment_6"), item.item.count); motnlyItem.MoneyNumberText.text = item.item.count.ToString(); } } // motnlyItem.MoneyImage.SetSprite(Item.IconKey); } else { m_Group.GetChild(i).gameObject.SetActive(false); } } } } private int ShowLines(int grade)//获取需要 显示的额度 { int ShowLineNumber = 0; foreach (var key in fairyJadeInvestmentModel.InvestmentAmountDic.Keys) { if (fairyJadeInvestmentModel.InvestmentAmountDic[key] == grade) { ShowLineNumber = key; } } return ShowLineNumber; } private float InvestmentProportion(int Lv)//获取返回仙玉的比例 { int grade = 3; if (fairyJadeInvestmentModel.InvestmentGrade != 0) { grade = fairyJadeInvestmentModel.InvestmentGrade; } else { if (fairyJadeInvestmentModel.InvestmentAmountDic.ContainsKey(fairyJadeInvestmentModel.SelectNumber)) { grade = fairyJadeInvestmentModel.InvestmentAmountDic[fairyJadeInvestmentModel.SelectNumber]; } } int GetFairyJade = 0; foreach (var key in fairyJadeInvestmentModel.FairyJadeInvestmentDic.Keys) { if (key == Lv) { List fairyJadeInvestmentItem = fairyJadeInvestmentModel.FairyJadeInvestmentDic[key].FairyJadeInvestmentItem.GetAwardItem(grade); AwardItem item = fairyJadeInvestmentItem[0]; GetFairyJade = item.item.count; } } return GetFairyJade; } private int RebateMultiple(int lv) { int grade = 3; if (fairyJadeInvestmentModel.InvestmentGrade != 0) { grade = fairyJadeInvestmentModel.InvestmentGrade; } else { if (fairyJadeInvestmentModel.InvestmentAmountDic.ContainsKey(fairyJadeInvestmentModel.SelectNumber)) { grade = fairyJadeInvestmentModel.InvestmentAmountDic[fairyJadeInvestmentModel.SelectNumber]; } } int ShowLinesNumber = ShowLines(grade); int GetFairyJade = 0; foreach (var key in fairyJadeInvestmentModel.FairyJadeInvestmentDic.Keys) { if (key <= lv) { List fairyJadeInvestmentItem = fairyJadeInvestmentModel.FairyJadeInvestmentDic[key].FairyJadeInvestmentItem.GetAwardItem(grade); AwardItem item = fairyJadeInvestmentItem[0]; GetFairyJade += item.item.count; } } int GetValue = (int)(GetFairyJade / ShowLinesNumber); if ((float)GetFairyJade / ShowLinesNumber >= (GetValue + 0.5)) { GetValue = 0; } return GetValue; } } }