using System; using System.Collections.Generic; using System.Text; using UnityEngine; using UnityEngine.UI; using System.Collections; namespace Snxxz.UI { public class ReciveConditionCell : CellView { [SerializeField] Text conditionText; [SerializeField] GameObject adviceText; [SerializeField] Button receiveBtn; [SerializeField] Text btnText; [SerializeField] UIEffect receiveEffect; [SerializeField] GameObject receivedImg; [SerializeField] Image rewardIcon; [SerializeField] Image rewardBg; [SerializeField] Text rewardCntTex; [SerializeField] Button rewardBtn; [SerializeField] List itemlist = new List(); TreasureFindHostModel hostModel { get { return ModelCenter.Instance.GetModel(); } } EquipModel equipModel { get { return ModelCenter.Instance.GetModel(); } } int findId = 0; public void Display(int findId) { FindTreasureInfo findHosts = null; hostModel.TryGetFindTreasureInfo(findId, out findHosts); if (findHosts == null) { return; } findId = findHosts.id; bool isReach = hostModel.IsReachCondition(findHosts); SetReceiveAwardInfo(findHosts); 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")); } var 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)); break; } List adviceIdlist = findHosts.findRecommandItems[PlayerDatas.Instance.baseData.Job]; receiveBtn.RemoveAllListeners(); if (findHosts.IsCompleted) { receiveEffect.gameObject.SetActive(false); receivedImg.SetActive(true); receiveBtn.gameObject.SetActive(false); } else { receiveBtn.gameObject.SetActive(true); if (isReach) { receiveEffect.gameObject.SetActive(true); receivedImg.SetActive(false); btnText.text = Language.Get("HallowsWin_Btn_ReceiveAward"); receiveBtn.AddListener(() => { hostModel.SendGetRewardQuest(findHosts.id); }); } else { receiveEffect.gameObject.SetActive(false); btnText.text = Language.Get("HallowsWin_Text_ExpendSource"); receivedImg.SetActive(false); receiveBtn.AddListener(() => { hostModel.SetAdviceIdlist(adviceIdlist); ItemTipUtility.Show(adviceIdlist[0]); }); } } adviceText.SetActive(false); } 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); } 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); int rewardCnt = item.count; rewardCntTex.text = UIHelper.ReplaceLargeNum(rewardCnt); rewardBtn.RemoveAllListeners(); rewardBtn.AddListener(() => { ItemTipUtility.Show(itemConfig.ID); }); } } } public string GetFindProgressStr(FindTreasureInfo info) { if (info.IsCompleted) { return UIHelper.AppendColor(TextColType.Green, StringUtility.Contact(info.targetNum, "/", info.targetNum)); } else { if (!hostModel.IsReachCondition(info)) { return UIHelper.AppendColor(TextColType.Red, StringUtility.Contact(0, "/", info.targetNum), true); } else { return UIHelper.AppendColor(TextColType.Green, StringUtility.Contact(1, "/", info.targetNum), true); } } } } }