//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Thursday, April 26, 2018
|
//--------------------------------------------------------
|
using UnityEngine;
|
using System.Collections;
|
using UnityEngine.UI;
|
using System.Collections.Generic;
|
|
|
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<FairyJadeInvestmentModel>()); } }
|
|
public void GetPlayerLV(int Lv)
|
{
|
int PlayerLv = PlayerDatas.Instance.baseData.LV;
|
if (PlayerLv >= Lv)
|
{
|
MoreThanGrade(Lv);
|
}
|
else
|
{
|
BeforeTheClass(Lv);
|
}
|
}
|
|
private void MoreThanGrade(int Lv)//超过等级
|
{
|
int _type = fairyJadeInvestmentModel.BinningType;
|
if (!fairyJadeInvestmentModel.FairyJadeInvestmentTypeDic.ContainsKey(_type))
|
{
|
return;
|
}
|
var Dit = fairyJadeInvestmentModel.FairyJadeInvestmentTypeDic[_type];
|
if (Dit.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 = Dit[Lv].ID;
|
int InvestmentGrade = fairyJadeInvestmentModel.GetInvestmentGrade();
|
if (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 = 0;
|
var dit = fairyJadeInvestmentModel.GetInfoSeriors();
|
if (dit.ContainsKey(indexID))
|
{
|
IsReceive = dit[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(() =>
|
{
|
int type = fairyJadeInvestmentModel.BinningType;
|
fairyJadeInvestmentModel.SendInvestment(type, indexID);
|
});
|
}
|
else
|
{
|
List<AwardItem> fairyJadeInvestmentItem = Dit[Lv].FairyJadeInvestmentItem.GetAwardItem(InvestmentGrade);
|
int AtPresentNumber = 0;
|
|
if (IsReceive != 0)
|
{
|
List<AwardItem> fairyJadeInvestmentItemAdd = Dit[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(() =>
|
{
|
int type = fairyJadeInvestmentModel.BinningType;
|
fairyJadeInvestmentModel.SendInvestment(type, 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)//未到等级
|
{
|
int _type = fairyJadeInvestmentModel.BinningType;
|
if (!fairyJadeInvestmentModel.FairyJadeInvestmentTypeDic.ContainsKey(_type))
|
{
|
return;
|
}
|
var Dit = fairyJadeInvestmentModel.FairyJadeInvestmentTypeDic[_type];
|
if (Dit.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)
|
{
|
int _type = fairyJadeInvestmentModel.BinningType;
|
if (!fairyJadeInvestmentModel.FairyJadeInvestmentTypeDic.ContainsKey(_type))
|
{
|
return;
|
}
|
var Dit = fairyJadeInvestmentModel.FairyJadeInvestmentTypeDic[_type];
|
int InvestmentGrade = fairyJadeInvestmentModel.GetInvestmentGrade();
|
if (Dit.ContainsKey(Lv))
|
{
|
int grade = 3;
|
if (InvestmentGrade != 0)
|
{
|
grade = InvestmentGrade;
|
}
|
else
|
{
|
int type = fairyJadeInvestmentModel.BinningType;
|
if (fairyJadeInvestmentModel.InvestmentAmountTypeDic.ContainsKey(type))
|
{
|
var _dit = fairyJadeInvestmentModel.InvestmentAmountTypeDic[type];
|
if (_dit.ContainsKey(fairyJadeInvestmentModel.SelectNumber))
|
{
|
grade = _dit[fairyJadeInvestmentModel.SelectNumber];
|
}
|
}
|
|
|
}
|
List<AwardItem> fairyJadeInvestmentItem = Dit[Lv].FairyJadeInvestmentItem.GetAwardItem(grade);
|
int indexID = Dit[Lv].ID;
|
int IsReceive = 0;
|
var dit = fairyJadeInvestmentModel.GetInfoSeriors();
|
if (dit.ContainsKey(indexID))
|
{
|
IsReceive = dit[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<MotnlyItem>();
|
var Item = ItemConfig.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<AwardItem> fairyJadeInvestmentItemAdd = Dit[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;
|
|
int type = fairyJadeInvestmentModel.BinningType;
|
if (fairyJadeInvestmentModel.InvestmentAmountTypeDic.ContainsKey(type))
|
{
|
var dit = fairyJadeInvestmentModel.InvestmentAmountTypeDic[type];
|
foreach (var key in dit.Keys)
|
{
|
if (dit[key] == grade)
|
{
|
ShowLineNumber = key;
|
}
|
}
|
}
|
return ShowLineNumber;
|
}
|
|
private float InvestmentProportion(int Lv)//获取返回仙玉的比例
|
{
|
int grade = 3;
|
int InvestmentGrade = fairyJadeInvestmentModel.GetInvestmentGrade();
|
if (InvestmentGrade != 0)
|
{
|
grade = InvestmentGrade;
|
}
|
else
|
{
|
int type = fairyJadeInvestmentModel.BinningType;
|
if (fairyJadeInvestmentModel.InvestmentAmountTypeDic.ContainsKey(type))
|
{
|
var dit = fairyJadeInvestmentModel.InvestmentAmountTypeDic[type];
|
if (dit.ContainsKey(fairyJadeInvestmentModel.SelectNumber))
|
{
|
grade = dit[fairyJadeInvestmentModel.SelectNumber];
|
}
|
}
|
}
|
int GetFairyJade = 0;
|
int _type = fairyJadeInvestmentModel.BinningType;
|
if (!fairyJadeInvestmentModel.FairyJadeInvestmentTypeDic.ContainsKey(_type))
|
{
|
return GetFairyJade;
|
}
|
var Dit = fairyJadeInvestmentModel.FairyJadeInvestmentTypeDic[_type];
|
foreach (var key in Dit.Keys)
|
{
|
if (key == Lv)
|
{
|
List<AwardItem> fairyJadeInvestmentItem = Dit[key].FairyJadeInvestmentItem.GetAwardItem(grade);
|
AwardItem item = fairyJadeInvestmentItem[0];
|
GetFairyJade = item.item.count;
|
}
|
}
|
return GetFairyJade;
|
}
|
|
|
private int RebateMultiple(int lv)
|
{
|
int grade = 3;
|
int InvestmentGrade = fairyJadeInvestmentModel.GetInvestmentGrade();
|
if (InvestmentGrade != 0)
|
{
|
grade = InvestmentGrade;
|
}
|
else
|
{
|
int type = fairyJadeInvestmentModel.BinningType;
|
if (fairyJadeInvestmentModel.InvestmentAmountTypeDic.ContainsKey(type))
|
{
|
var dit = fairyJadeInvestmentModel.InvestmentAmountTypeDic[type];
|
if (dit.ContainsKey(fairyJadeInvestmentModel.SelectNumber))
|
{
|
grade = dit[fairyJadeInvestmentModel.SelectNumber];
|
}
|
}
|
}
|
int ShowLinesNumber = ShowLines(grade);
|
int GetFairyJade = 0;
|
int _type = fairyJadeInvestmentModel.BinningType;
|
if (!fairyJadeInvestmentModel.FairyJadeInvestmentTypeDic.ContainsKey(_type))
|
{
|
return GetFairyJade;
|
}
|
var Dit = fairyJadeInvestmentModel.FairyJadeInvestmentTypeDic[_type];
|
foreach (var key in Dit.Keys)
|
{
|
if (key <= lv)
|
{
|
List<AwardItem> fairyJadeInvestmentItem = Dit[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;
|
}
|
}
|
|
}
|
|
|
|