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(); } } 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; 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 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); } } } } }