//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Thursday, April 26, 2018
|
//--------------------------------------------------------
|
using UnityEngine;
|
using System.Collections;
|
using UnityEngine.UI;
|
using System.Collections.Generic;
|
|
|
namespace vnxbqy.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 model { get { return ModelCenter.Instance.GetModel<FairyJadeInvestmentModel>(); } }
|
VipInvestModel investModel { get { return ModelCenter.Instance.GetModel<VipInvestModel>(); } }
|
|
public void Display(int id)
|
{
|
int PlayerLv = PlayerDatas.Instance.baseData.LV;
|
int _type = model.fairyInvestType;
|
if (model.fairyInvestItems.ContainsKey(_type))
|
{
|
var info = model.fairyInvestItems[_type][id];
|
if (PlayerLv >= info.levelLimit)
|
{
|
MoreThanGrade(id);
|
}
|
else
|
{
|
BeforeTheClass(id);
|
}
|
}
|
}
|
|
private void MoreThanGrade(int id)//超过等级
|
{
|
int _type = model.fairyInvestType;
|
if (!model.fairyInvestItems.ContainsKey(_type))
|
{
|
return;
|
}
|
var Dit = model.fairyInvestItems[_type];
|
if (Dit.ContainsKey(id))
|
{
|
var info = Dit[id];
|
if (info.levelLimit <= 0)
|
{
|
m_Label_Text.SetActive(true);
|
m_Label_Text.text = Language.Get("FairyJadeInvestment_12");
|
}
|
else
|
{
|
int GetRebateMultiple = RebateMultiple(id);
|
if (model.fairyInvestMultiples.Contains(GetRebateMultiple))
|
{
|
m_Label_Text.SetActive(true);
|
m_Label_Text.text = string.Format(Language.Get("FairyJadeInvestment_11"), GetRebateMultiple);
|
}
|
else
|
{
|
m_Label_Text.SetActive(false);
|
}
|
}
|
int indexID = info.id;
|
int InvestmentGrade = model.GetFairyInvestGear();
|
if (InvestmentGrade == 0)
|
{
|
m_ReceiveAwardBtn.SetActive(false);
|
m_IsDrawImage.SetActive(false);
|
m_TimeRemaining.SetActive(false);
|
m_IsReachImage.SetActive(true);
|
m_Uieffect.SetActive(false);
|
}
|
else
|
{
|
int IsReceive = 0;
|
var dit = model.GetInfoSeriors();
|
if (dit.ContainsKey(indexID))
|
{
|
IsReceive = dit[indexID];
|
}
|
if (IsReceive == 0)
|
{
|
m_ReceiveAwardBtn.SetActive(true);
|
m_Uieffect.SetActive(true);
|
m_IsDrawImage.SetActive(false);
|
m_TimeRemaining.SetActive(false);
|
m_IsReachImage.SetActive(false);
|
m_ReceiveAwardBtn.RemoveAllListeners();
|
m_ReceiveAwardBtn.AddListener(() =>
|
{
|
int type = model.fairyInvestType;
|
model.SendGotInvestReward(type, indexID);
|
});
|
}
|
else
|
{
|
List<Item> fairyJadeInvestmentItem = info.items.ContainsKey(InvestmentGrade) ? info.items[InvestmentGrade] : null;
|
int AtPresentNumber = 0;
|
|
if (IsReceive != 0)
|
{
|
List<Item> fairyJadeInvestmentItemAdd = info.items.ContainsKey(IsReceive) ? info.items[IsReceive] : null;
|
Item itemAdd = fairyJadeInvestmentItemAdd[0];
|
AtPresentNumber = itemAdd.count;
|
}
|
if (fairyJadeInvestmentItem[0].count > AtPresentNumber)
|
{
|
m_ReceiveAwardBtn.SetActive(true);
|
m_Uieffect.SetActive(true);
|
m_IsDrawImage.SetActive(false);
|
m_TimeRemaining.SetActive(false);
|
m_IsReachImage.SetActive(false);
|
m_ReceiveAwardBtn.RemoveAllListeners();
|
m_ReceiveAwardBtn.AddListener(() =>
|
{
|
int type = model.fairyInvestType;
|
model.SendGotInvestReward(type, indexID);
|
});
|
}
|
else
|
{
|
m_ReceiveAwardBtn.SetActive(false);
|
m_IsDrawImage.SetActive(true);
|
m_TimeRemaining.SetActive(false);
|
m_IsReachImage.SetActive(false);
|
m_Uieffect.SetActive(false);
|
}
|
}
|
}
|
}
|
ItemCellAssignment(id);
|
}
|
|
private void BeforeTheClass(int id)//未到等级
|
{
|
int _type = model.fairyInvestType;
|
if (!model.fairyInvestItems.ContainsKey(_type))
|
{
|
return;
|
}
|
var Dit = model.fairyInvestItems[_type];
|
if (Dit.ContainsKey(id))
|
{
|
var info = Dit[id];
|
if (info.levelLimit <= 0)
|
{
|
m_Label_Text.SetActive(true);
|
m_Label_Text.text = Language.Get("FairyJadeInvestment_12");
|
}
|
else
|
{
|
int GetRebateMultiple= RebateMultiple(id);
|
if (model.fairyInvestMultiples.Contains(GetRebateMultiple))
|
{
|
m_Label_Text.SetActive(true);
|
m_Label_Text.text = string.Format(Language.Get("FairyJadeInvestment_11"), GetRebateMultiple);
|
}
|
else
|
{
|
m_Label_Text.SetActive(false);
|
}
|
}
|
m_ReceiveAwardBtn.SetActive(false);
|
m_IsDrawImage.SetActive(false);
|
m_TimeRemaining.SetActive(false);
|
m_IsReachImage.SetActive(true);
|
m_Uieffect.SetActive(false);
|
}
|
ItemCellAssignment(id);
|
}
|
|
private void ItemCellAssignment(int id)
|
{
|
int _type = model.fairyInvestType;
|
if (!model.fairyInvestItems.ContainsKey(_type))
|
{
|
return;
|
}
|
var Dit = model.fairyInvestItems[_type];
|
int InvestmentGrade = model.GetFairyInvestGear();
|
if (Dit.ContainsKey(id))
|
{
|
var info = Dit[id];
|
int grade = 1;
|
if (InvestmentGrade != 0)
|
{
|
grade = InvestmentGrade;
|
}
|
else
|
{
|
int type = model.fairyInvestType;
|
var _gear = investModel.GetInvestGear(type, model.selectInvestMoney);
|
if (_gear != 0)
|
{
|
grade = _gear;
|
}
|
}
|
List<Item> fairyJadeInvestmentItem = info.items.ContainsKey(grade) ? info.items[grade] : null;
|
int indexID = info.id;
|
int IsReceive = 0;
|
var dit = model.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).SetActive(true);
|
Item item = fairyJadeInvestmentItem[i];
|
MotnlyItem motnlyItem = m_Group.GetChild(i).GetComponent<MotnlyItem>();
|
var Item = ItemConfig.Get(item.id);
|
ItemCellModel cellModel = new ItemCellModel(item.id, true, (ulong)1);
|
motnlyItem.Item_Cell.Init(cellModel);
|
|
if (IsReceive == 0)
|
{
|
if (info.levelLimit <= 0)
|
{
|
motnlyItem.NameText.text = string.Format(Language.Get("FairyJadeInvestment_3"), item.count);
|
}
|
else
|
{
|
float GetFairyJadeNumber = InvestmentProportion(id);
|
int ShowLinesNumber = investModel.GetInvestAmount(_type, grade - 1);
|
int GetValue = Mathf.FloorToInt((GetFairyJadeNumber / ShowLinesNumber) * 100);
|
motnlyItem.NameText.text = string.Format(Language.Get("FairyJadeInvestment_10"), info.levelLimit, GetValue);
|
}
|
motnlyItem.MoneyNumberText.text = item.count.ToString();
|
}
|
else
|
{
|
int AtPresentNumber = 0;
|
if (IsReceive != 0)
|
{
|
List<Item> fairyJadeInvestmentItemAdd = info.items.ContainsKey(IsReceive) ? info.items[IsReceive] : null;
|
Item itemAdd = fairyJadeInvestmentItemAdd[i];
|
AtPresentNumber = itemAdd.count;
|
}
|
|
if (item.count > AtPresentNumber)
|
{
|
motnlyItem.NameText.text = string.Format(Language.Get("FairyJadeInvestment_5"), (item.count - AtPresentNumber));
|
motnlyItem.MoneyNumberText.text = (item.count - AtPresentNumber).ToString();
|
}
|
else
|
{
|
motnlyItem.NameText.text = string.Format(Language.Get("FairyJadeInvestment_6"), item.count);
|
motnlyItem.MoneyNumberText.text = item.count.ToString();
|
}
|
}
|
|
// motnlyItem.MoneyImage.SetSprite(Item.IconKey);
|
}
|
else
|
{
|
m_Group.GetChild(i).SetActive(false);
|
}
|
}
|
}
|
}
|
|
private float InvestmentProportion(int id)//获取返回仙玉的比例
|
{
|
int grade = 1;
|
int InvestmentGrade = model.GetFairyInvestGear();
|
if (InvestmentGrade != 0)
|
{
|
grade = InvestmentGrade;
|
}
|
else
|
{
|
int type = model.fairyInvestType;
|
var _gear = investModel.GetInvestGear(type, model.selectInvestMoney);
|
if (_gear != 0)
|
{
|
grade = _gear;
|
}
|
}
|
int GetFairyJade = 0;
|
int _type = model.fairyInvestType;
|
if (!model.fairyInvestItems.ContainsKey(_type))
|
{
|
return GetFairyJade;
|
}
|
var Dit = model.fairyInvestItems[_type];
|
if (Dit.ContainsKey(id))
|
{
|
var info = Dit[id];
|
List<Item> fairyJadeInvestmentItem = info.items.ContainsKey(grade) ? info.items[grade] : null;
|
Item item = fairyJadeInvestmentItem[0];
|
GetFairyJade = item.count;
|
}
|
return GetFairyJade;
|
}
|
|
|
private int RebateMultiple(int id)
|
{
|
int type = model.fairyInvestType;
|
|
int grade = 1;
|
int InvestmentGrade = model.GetFairyInvestGear();
|
if (InvestmentGrade != 0)
|
{
|
grade = InvestmentGrade;
|
}
|
else
|
{
|
var _gear = investModel.GetInvestGear(type, model.selectInvestMoney);
|
if (_gear != 0)
|
{
|
grade = _gear;
|
}
|
}
|
int ShowLinesNumber = investModel.GetInvestAmount(type, grade - 1);
|
int GetFairyJade = 0;
|
int _type = model.fairyInvestType;
|
if (!model.fairyInvestItems.ContainsKey(_type))
|
{
|
return GetFairyJade;
|
}
|
var Dit = model.fairyInvestItems[_type];
|
var compareInfo = Dit[id];
|
foreach (var info in Dit.Values)
|
{
|
if (info.levelLimit <= compareInfo.levelLimit)
|
{
|
List<Item> fairyJadeInvestmentItem = info.items.ContainsKey(grade) ? info.items[grade] : null;
|
Item item = fairyJadeInvestmentItem[0];
|
GetFairyJade += item.count;
|
}
|
}
|
int GetValue = (int)(GetFairyJade / ShowLinesNumber);
|
if ((float)GetFairyJade / ShowLinesNumber >= (GetValue + 0.5))
|
{
|
GetValue = 0;
|
}
|
return GetValue;
|
}
|
}
|
|
}
|
|
|
|