using System;
|
using System.Collections.Generic;
|
using System.Text;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
using System.Collections;
|
|
namespace vnxbqy.UI
|
{
|
public class ReciveConditionCell : CellView
|
{
|
[SerializeField] Text conditionText;
|
[SerializeField] Button receiveBtn;
|
[SerializeField] Text btnText;
|
[SerializeField] UIEffect receiveEffect;
|
[SerializeField] GameObject receivedImg;
|
[SerializeField] Image rewardIcon;
|
[SerializeField] Image rewardBg;
|
[SerializeField] Text rewardCntTex;
|
[SerializeField] Button rewardBtn;
|
|
TreasureFindHostModel hostModel { get { return ModelCenter.Instance.GetModel<TreasureFindHostModel>(); } }
|
EquipModel equipModel { get { return ModelCenter.Instance.GetModel<EquipModel>(); } }
|
|
int findId = 0;
|
|
public void Display(int findId)
|
{
|
FindTreasureInfo findHosts = null;
|
hostModel.TryGetFindTreasureInfo(findId, out findHosts);
|
|
if (findHosts == null)
|
{
|
return;
|
}
|
|
findId = findHosts.id;
|
int process;
|
bool isReach = hostModel.IsReachCondition(findHosts, out process);
|
|
SetReceiveAwardInfo(findHosts);
|
EquipSet equipSet;
|
switch (findHosts.type)
|
{
|
case 1:
|
var index = 0;
|
var sb = new StringBuilder();
|
sb.Append(Language.Get("FindHostEquip_1"));
|
foreach (var findHostEquip in findHosts.findHostEquips)
|
{
|
if (index > 0)
|
{
|
sb.Append(Language.Get("FindHostEquip_2"));
|
}
|
equipSet = equipModel.GetEquipSet(findHostEquip.level);
|
var realmConfig = RealmConfig.Get(equipSet.realm);
|
sb.Append(UIHelper.GetRealmName(equipSet.realm, true));
|
sb.Append(UIHelper.AppendColor(findHostEquip.itemColor,
|
UIHelper.GetColorNameByItemColor(findHostEquip.itemColor), true));
|
if (findHostEquip.isSuit)
|
{
|
var suits = EquipSuitConfig.GetConfigs(PlayerDatas.Instance.baseData.Job, findHostEquip.level, EquipSuitType.TwoSuit);
|
sb.Append(EquipSuitConfig.GetEquipSuitName(suits[0].suiteID));
|
}
|
sb.Append(UIHelper.GetEquipPlaceName(findHostEquip.place));
|
index++;
|
conditionText.text = StringUtility.Contact(sb.ToString(), "\n", GetFindProgressStr(findHosts, isReach, process));
|
}
|
break;
|
case 2:
|
equipSet = equipModel.GetEquipSet(findHosts.conditions[0]);
|
if (equipSet != null)
|
{
|
var equipName = UIHelper.GetRealmName(equipSet.realm, true);
|
var colorName = UIHelper.AppendColor(findHosts.conditions[1], UIHelper.GetColorNameByItemColor(findHosts.conditions[1]), true);
|
conditionText.text = StringUtility.Contact(Language.Get("xbxztype2", findHosts.targetNum, colorName, equipName), "\n", GetFindProgressStr(findHosts, isReach, process));
|
}
|
break;
|
case 3:
|
case 4:
|
case 5:
|
case 6:
|
equipSet = equipModel.GetEquipSet(findHosts.conditions[0]);
|
if (equipSet != null)
|
{
|
var equipName = UIHelper.GetRealmName(equipSet.realm, true, true);
|
conditionText.text = StringUtility.Contact(Language.Get("xbxztype" + findHosts.type, equipName, findHosts.targetNum), "\n", GetFindProgressStr(findHosts, isReach, process));
|
}
|
break;
|
case 7:
|
case 8:
|
conditionText.text = StringUtility.Contact(Language.Get("xbxztype" + findHosts.type, findHosts.targetNum), "\n", GetFindProgressStr(findHosts, isReach, process));
|
break;
|
case 9:
|
var _runeTowerFloorCfg = RuneTowerFloorConfig.Get(findHosts.targetNum);
|
var _runeTowerCfg = RuneTowerConfig.Get(_runeTowerFloorCfg.TowerId);
|
conditionText.text = StringUtility.Contact(Language.Get("xbxztype9", StringUtility.Contact(_runeTowerCfg.TowerName, _runeTowerFloorCfg.FloorName)), "\n", GetFindProgressStr(findHosts, isReach, process));
|
break;
|
case 10:
|
conditionText.text = StringUtility.Contact(Language.Get("xbxztype10", findHosts.targetNum, RichTextMsgReplaceConfig.GetRichReplace("BossTpye", findHosts.conditions[0])), "\n", GetFindProgressStr(findHosts, isReach, process));
|
break;
|
case 11:
|
conditionText.text = StringUtility.Contact(Language.Get("xbxztype11", Language.Get("L" + (1125 + findHosts.conditions[0])), findHosts.targetNum), "\n", GetFindProgressStr(findHosts, isReach, process));
|
break;
|
case 12:
|
conditionText.text = StringUtility.Contact(Language.Get("xbxztype12", findHosts.targetNum), "\n", GetFindProgressStr(findHosts, isReach, process));
|
break;
|
case 13:
|
conditionText.text = StringUtility.Contact(Language.Get("xbxztype13", TreasureConfig.Get(findHosts.conditions[0]).Name), "\n", GetFindProgressStr(findHosts, isReach, process));
|
break;
|
case 14:
|
conditionText.text = StringUtility.Contact(Language.Get("xbxztype14", RealmConfig.Get(findHosts.targetNum).Name), "\n", GetFindProgressStr(findHosts, isReach, process));
|
break;
|
}
|
|
|
receiveBtn.RemoveAllListeners();
|
if (findHosts.IsCompleted)
|
{
|
receiveEffect.SetActive(false);
|
receivedImg.SetActive(true);
|
receiveBtn.SetActive(false);
|
}
|
else
|
{
|
receiveBtn.SetActive(true);
|
if (isReach)
|
{
|
receiveEffect.SetActive(true);
|
receivedImg.SetActive(false);
|
btnText.text = Language.Get("HallowsWin_Btn_ReceiveAward");
|
receiveBtn.AddListener(() =>
|
{
|
hostModel.SendGetRewardQuest(findHosts.id);
|
});
|
}
|
else
|
{
|
receiveEffect.SetActive(false);
|
btnText.text = Language.Get("HallowsWin_Text_ExpendSource");
|
receivedImg.SetActive(false);
|
receiveBtn.AddListener(() =>
|
{
|
if (findHosts.type == 1)
|
{
|
List<int> adviceIdlist = findHosts.findRecommandItems[PlayerDatas.Instance.baseData.Job];
|
hostModel.SetAdviceIdlist(adviceIdlist);
|
ItemTipUtility.Show(adviceIdlist[0]);
|
}
|
else
|
{
|
WindowJumpMgr.Instance.WindowJumpTo((JumpUIType)findHosts.recommendJumpID);
|
}
|
});
|
}
|
}
|
|
}
|
|
public void SetReceiveAwardInfo(FindTreasureInfo findHost)
|
{
|
foreach (var findHostMoney in findHost.findHostMoneys)
|
{
|
int rewardMoneyCnt = findHostMoney.count;
|
rewardCntTex.text = UIHelper.ReplaceLargeNum(rewardMoneyCnt);
|
int itemId = GeneralDefine.moneyDisplayIds[findHostMoney.moneyType];
|
ItemConfig itemConfig = ItemConfig.Get(itemId);
|
if (itemConfig != null)
|
{
|
rewardIcon.SetSprite(itemConfig.IconKey);
|
rewardBg.SetItemBackGround(itemConfig.ItemColor, itemConfig.QualityEchoType);
|
}
|
rewardBtn.RemoveAllListeners();
|
rewardBtn.AddListener(() =>
|
{
|
ItemTipUtility.Show(itemId);
|
});
|
}
|
|
foreach (var item in findHost.findHostItems)
|
{
|
ItemConfig itemConfig = ItemConfig.Get(item.id);
|
if (itemConfig != null)
|
{
|
rewardIcon.SetSprite(itemConfig.IconKey);
|
rewardBg.SetItemBackGround(itemConfig.ItemColor, itemConfig.QualityEchoType);
|
int rewardCnt = item.count;
|
rewardCntTex.text = UIHelper.ReplaceLargeNum(rewardCnt);
|
rewardBtn.RemoveAllListeners();
|
rewardBtn.AddListener(() =>
|
{
|
ItemTipUtility.Show(itemConfig.ID);
|
});
|
}
|
}
|
}
|
|
public string GetFindProgressStr(FindTreasureInfo info, bool isReach, int process)
|
{
|
if (info.IsCompleted)
|
{
|
return UIHelper.AppendColor(TextColType.Green, StringUtility.Contact(info.targetNum, "/", info.targetNum));
|
}
|
else
|
{
|
if (!isReach)
|
{
|
return UIHelper.AppendColor(TextColType.Red, StringUtility.Contact(process, "/", info.targetNum), true);
|
}
|
else
|
{
|
return UIHelper.AppendColor(TextColType.Green, StringUtility.Contact(info.targetNum, "/", info.targetNum), true);
|
}
|
}
|
}
|
}
|
}
|