using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using TableConfig; using Snxxz.UI; using System; namespace EnhancedUI.EnhancedScroller { public class RoleTitleCell : ScrollerUI { [SerializeField] Image m_TitleIcon; [SerializeField] Image m_BottomImg; [SerializeField] Button m_UseTitleBtn; [SerializeField] Image m_TitleEquipImg; [SerializeField] Button m_TitleGetBtn; [SerializeField] RectTransform m_ContainerNewGet; TitleModel m_Model; TitleModel model { get { return m_Model ?? (m_Model = ModelCenter.Instance.GetModel()); } } PlayerTaskDatas task { get { return ModelCenter.Instance.GetModel(); } } public override void Refresh(CellView cell) { int _index = cell.index; if (_index >= model.roleTitleList.Count) { return; } int _titleId = model.roleTitleList[_index]; TitleData titleData = model.GetGainTitle(_titleId); DienstgradConfig _dienstgradCfg = Config.Instance.Get(_titleId); m_TitleIcon.SetSprite(_dienstgradCfg.Image); m_TitleIcon.SetNativeSize(); if (model.presentSelectTitle == model.roleTitleList[_index]) { m_BottomImg.SetSprite("Title_RightWindow"); } else { m_BottomImg.SetSprite("Title_PopupWindow"); } m_TitleGetBtn.gameObject.SetActive(!model.IsTitleGain(_titleId)); m_UseTitleBtn.gameObject.SetActive(model.IsTitleGain(_titleId)); m_ContainerNewGet.gameObject.SetActive(model.IsNewGet(_titleId)); m_UseTitleBtn.onClick.RemoveAllListeners(); if (titleData != null) { m_UseTitleBtn.onClick.AddListener(()=> { OnTitleUseClick(_index); }); m_TitleEquipImg.gameObject.SetActive(titleData.isEquiped); } m_TitleGetBtn.RemoveAllListeners(); if (titleData == null) { m_TitleGetBtn.AddListener(() => { if (_dienstgradCfg.gotoId > 0) { if (_dienstgradCfg.missionId > 0 && task.GetQuestState(_dienstgradCfg.missionId) == -1) { var taskConfig = Config.Instance.Get(_dienstgradCfg.missionId); var taskName = string.Empty; if (taskConfig != null) { var taskInfo = Config.Instance.Get(taskConfig.name); if (taskInfo != null) { taskName = taskInfo.show_writing; } } SysNotifyMgr.Instance.ShowTip("RoleTitle_1", taskName); return; } WindowJumpMgr.Instance.WindowJumpTo((JumpUIType)_dienstgradCfg.gotoId); } }); } } private void OnTitleUseClick(int _index) { int id = model.roleTitleList[_index]; if (!model.IsTitleGain(id)) { return; } TitleData title = model.GetGainTitle(id); C0337_tagCPlayerChangeDienstgrad equipTitlePack = new C0337_tagCPlayerChangeDienstgrad(); equipTitlePack.GradID = (uint)id; equipTitlePack.State = (byte)(title.isEquiped ? 0 : 1); GameNetSystem.Instance.SendInfo(equipTitlePack); } } }