using UnityEngine; using UnityEngine.UI; public class BeautyMMSkinWin : UIBase { [SerializeField] ImageEx roleImg; [SerializeField] Text nameText; [SerializeField] Text wayText; [SerializeField] Text attrTipText; //解锁或者加成效果 [SerializeField] Text attrValueText; [SerializeField] ScrollerController clothesScroller; [SerializeField] Button unlockBtn; [SerializeField] Text cntText; [SerializeField] Image itemIcon; [SerializeField] Transform opObjs; [SerializeField] Button lvUPBtn; [SerializeField] Text lvUPCntText; [SerializeField] Image lvUPItemIcon; [SerializeField] Button putOnBtn; [SerializeField] Image putOnYetImg; [SerializeField] UIEffectPlayer lvUPEffect; int mmID; protected override void InitComponent() { unlockBtn.AddListener(UnLockSkin); lvUPBtn.AddListener(LvUpSkin); putOnBtn.AddListener(PutOnSkin); } protected override void OnPreOpen() { mmID = functionOrder; BeautyMMManager.Instance.selectSkinID = BeautyMMManager.Instance.GetUsedSkinID(mmID); clothesScroller.OnRefreshCell += OnRefreshCell; BeautyMMManager.Instance.OnSelectSkinIDChange += OnSelectSkinIDChange; BeautyMMManager.Instance.OnBeautyMMDataUpdate += OnSelectSkinIDChange; CreateScroller(); Display(); } protected override void OnPreClose() { clothesScroller.OnRefreshCell -= OnRefreshCell; BeautyMMManager.Instance.OnSelectSkinIDChange -= OnSelectSkinIDChange; BeautyMMManager.Instance.OnBeautyMMDataUpdate -= OnSelectSkinIDChange; } void OnSelectSkinIDChange() { clothesScroller.m_Scorller.RefreshActiveCellViews(); Display(); } void Display() { var skinConfig = BeautySkinConfig.Get(BeautyMMManager.Instance.selectSkinID); roleImg.SetOrgSprite(skinConfig.BigRole, "BeautyMMBigRole"); roleImg.SetNativeSize(); var skinData = BeautyMMManager.Instance.GetSkinData(BeautyMMManager.Instance.selectSkinID); if (skinData.Star != 0) { nameText.text = skinConfig.Name + " " + Language.Get("L1113", skinData.Star); } else { nameText.text = skinConfig.Name; } var config = BeautyConfig.Get(mmID); if (skinConfig.UnlockWay == 1) { wayText.text = Language.Get("BeautyMMSkin1", config.Name); } else if (skinConfig.UnlockWay == 2) { var itemConfig = ItemConfig.Get(skinConfig.UnlockValue); if (itemConfig.GetWay.IsNullOrEmpty()) { wayText.text = ""; } else { wayText.text = GetItemWaysConfig.Get(itemConfig.GetWay[0]).Name; } } if (skinConfig.InitAttrValueList.IsNullOrEmpty()) { attrTipText.text = ""; attrValueText.text = ""; } else { if (skinData.State == 0) { attrTipText.text = Language.Get("PhantasmPavilion11"); attrValueText.text = UIHelper.AppendColor(TextColType.NavyYellow, PlayerPropertyConfig.GetFullDescription(skinConfig.AttrIDList[0], skinConfig.InitAttrValueList[0])); } else { attrTipText.text = Language.Get("PhantasmPavilion07"); var value = skinConfig.InitAttrValueList[0] + skinData.Star * skinConfig.AttrPerStarAddList[0]; attrValueText.text = UIHelper.AppendColor(TextColType.NavyYellow, PlayerPropertyConfig.GetFullDescription(skinConfig.AttrIDList[0], value)) + Language.Get("PhantasmPavilion12", UIHelper.AppendColor(TextColType.LightGreen, "+" + PlayerPropertyConfig.GetValueDescription(skinConfig.AttrIDList[0], skinConfig.AttrPerStarAddList[0]))); } } if (skinData.State == 0) { if (skinConfig.UnlockWay == 2) { unlockBtn.SetActive(true); cntText.text = UIHelper.ShowUseItem(PackType.Item, skinConfig.UnlockValue, skinConfig.UnlockNeedCnt); itemIcon.SetItemSprite(skinConfig.UnlockValue); } else { unlockBtn.SetActive(false); } opObjs.SetActive(false); } else { unlockBtn.SetActive(false); opObjs.SetActive(true); if (skinConfig.StarMax != 0 && skinData.Star < skinConfig.StarMax) { lvUPBtn.SetActive(true); lvUPCntText.text = UIHelper.ShowUseItem(PackType.Item, skinConfig.UnlockValue, skinConfig.UpNeedCnt); lvUPItemIcon.SetItemSprite(skinConfig.UnlockValue); } else { lvUPBtn.SetActive(false); } putOnBtn.SetActive(skinData.Used == 0); putOnYetImg.SetActive(skinData.Used == 1); } } void CreateScroller() { clothesScroller.Refresh(); var _list = BeautySkinConfig.GetSkinListByMMID(mmID); for (int i = 0; i < _list.Count; i++) { clothesScroller.AddCell(ScrollerDataType.Header, _list[i].SkinID); } clothesScroller.Restart(); } void OnRefreshCell(ScrollerDataType type, CellView cell) { var _cell = cell as BeautyMMSkinCell; _cell.Display(mmID, cell.index); } void UnLockSkin() { var skinConfig = BeautySkinConfig.Get(BeautyMMManager.Instance.selectSkinID); if (!ItemLogicUtility.CheckItemCount(PackType.Item, skinConfig.UnlockValue, skinConfig.UnlockNeedCnt, 2)) { return; } BeautyMMManager.Instance.SendSkinOP(mmID, BeautyMMManager.Instance.selectSkinID, 1); } void LvUpSkin() { var skinConfig = BeautySkinConfig.Get(BeautyMMManager.Instance.selectSkinID); if (!ItemLogicUtility.CheckItemCount(PackType.Item, skinConfig.UnlockValue, skinConfig.UpNeedCnt, 2)) { return; } BeautyMMManager.Instance.SendSkinOP(mmID, BeautyMMManager.Instance.selectSkinID, 3); } void PutOnSkin() { BeautyMMManager.Instance.SendSkinOP(mmID, BeautyMMManager.Instance.selectSkinID, 2); } }