using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
namespace vnxbqy.UI
|
{
|
public class RoleAttrWin : Window
|
{
|
[SerializeField] Button closeBtn;
|
[SerializeField] Button baseBtn;
|
[SerializeField] Button specialBtn;
|
[SerializeField] Button addBtn;
|
|
[SerializeField] Image baseImg;
|
[SerializeField] Image specialImg;
|
[SerializeField] Image addImg;
|
|
[SerializeField] Text m_BaseTxt;
|
[SerializeField] Text m_SpecialTxt;
|
[SerializeField] Text m_AddTxt;
|
|
private readonly Color selectTxtCol = new Color32(52, 7, 1, 255);
|
private readonly Color unSelectTxtCol = new Color32(125, 91, 52, 255);
|
|
[SerializeField] ScrollerController m_Controller;
|
|
private int attrShowType = 0;
|
PetModel m_petModel;
|
PetModel petmodel
|
{
|
get
|
{
|
return m_petModel ?? (m_petModel = ModelCenter.Instance.GetModel<PetModel>());
|
}
|
}
|
List<PlayerPropertyConfig> propList = null;
|
|
[SerializeField] Text descText;
|
|
private void OnAddBtn()
|
{
|
if (attrShowType == 3) return;
|
attrShowType = 3;
|
|
addImg.SetSprite("2LVSelectTab_b");
|
specialImg.SetSprite("2LVUnSelectTab_b");
|
baseImg.SetSprite("2LVUnSelectTab_b");
|
m_BaseTxt.color = unSelectTxtCol;
|
m_SpecialTxt.color = unSelectTxtCol;
|
m_AddTxt.color = selectTxtCol;
|
OnRefreshScroll();
|
}
|
|
private void OnSpecialBtn()
|
{
|
if (attrShowType == 2) return;
|
attrShowType = 2;
|
|
addImg.SetSprite("2LVUnSelectTab_b");
|
specialImg.SetSprite("2LVSelectTab_b");
|
baseImg.SetSprite("2LVUnSelectTab_b");
|
m_BaseTxt.color = unSelectTxtCol;
|
m_SpecialTxt.color = selectTxtCol;
|
m_AddTxt.color = unSelectTxtCol;
|
|
OnRefreshScroll();
|
}
|
|
private void OnBaseBtn()
|
{
|
if (attrShowType == 1) return;
|
attrShowType = 1;
|
|
addImg.SetSprite("2LVUnSelectTab_b");
|
specialImg.SetSprite("2LVUnSelectTab_b");
|
baseImg.SetSprite("2LVSelectTab_b");
|
m_BaseTxt.color = selectTxtCol;
|
m_SpecialTxt.color = unSelectTxtCol;
|
m_AddTxt.color = unSelectTxtCol;
|
|
OnRefreshScroll();
|
}
|
|
private void OnRefreshScroll()
|
{
|
propList = PlayerPropertyConfig.GetPropByType(attrShowType);
|
m_Controller.Refresh();
|
if (propList != null)
|
{
|
for (int i = 0; i < propList.Count; i++)
|
{
|
PlayerPropertyConfig cfg = propList[i];
|
m_Controller.AddCell(ScrollerDataType.Header, i);
|
m_Controller.AddCell(ScrollerDataType.Normal, i);
|
}
|
}
|
m_Controller.Restart();
|
}
|
|
private void OnRefreshCell(ScrollerDataType type, CellView cell)
|
{
|
int index = cell.index;
|
if (propList != null && index < propList.Count)
|
{
|
PlayerPropertyConfig cfg = propList[index];
|
switch (type)
|
{
|
case ScrollerDataType.Header:
|
{
|
Text text = cell.transform.Find("Text").GetComponent<Text>();
|
if ((PropertyType)cfg.ID == PropertyType.ATK)
|
{
|
text.text = StringUtility.Contact(cfg.Name, " ", "<color=#109d06>", UIHelper.ReplaceLargeNum(PlayerDatas.Instance.extersion.MINATK), "-", UIHelper.ReplaceLargeNum(PlayerDatas.Instance.extersion.MAXATK), "</color>");
|
return;
|
}
|
else if ((PropertyType)cfg.ID == PropertyType.PetHurt)
|
{
|
if (petmodel.MaxAtkNunber == 0)
|
{
|
text.text = StringUtility.Contact(cfg.Name, " ", "<color=#109d06>", 0, "</color>");
|
}
|
else
|
{
|
text.text = StringUtility.Contact(cfg.Name, " ", "<color=#109d06>", petmodel.MinAtkNunber, "-", petmodel.MaxAtkNunber, "</color>");
|
}
|
return;
|
}
|
text.text = StringUtility.Contact(cfg.Name, " ", "<color=#109d06>", UIHelper.ReplaceLargeNum(UIHelper.ReplacePercentage((float)UIHelper.GetPropertyValue((PropertyType)cfg.ID), cfg.ISPercentage)), cfg.ISPercentage == 1 ? "%" : string.Empty, "</color>");
|
}
|
break;
|
case ScrollerDataType.Normal:
|
{
|
Text text = cell.transform.Find("DescText").GetComponent<Text>();
|
text.text = cfg.desc;
|
}
|
break;
|
}
|
}
|
}
|
|
private bool OnGetDynamicSize(ScrollerDataType type, int index, out float height)
|
{
|
height = 0;
|
switch (type)
|
{
|
case ScrollerDataType.Normal:
|
{
|
if (propList != null && index < propList.Count)
|
{
|
PlayerPropertyConfig cfg = propList[index];
|
height = descText.cachedTextGeneratorForLayout.GetPreferredHeight(cfg.desc, descText.GetGenerationSettings(new Vector2(descText.rectTransform.rect.size.x, 0.0f))) / descText.pixelsPerUnit;
|
}
|
}
|
return true;
|
}
|
return false;
|
|
}
|
|
void OnClose()
|
{
|
Close();
|
}
|
|
protected override void BindController()
|
{
|
|
}
|
|
protected override void AddListeners()
|
{
|
m_Controller.OnRefreshCell += OnRefreshCell;
|
m_Controller.OnGetDynamicSize += OnGetDynamicSize;
|
specialBtn.onClick.AddListener(OnSpecialBtn);
|
baseBtn.onClick.AddListener(OnBaseBtn);
|
addBtn.onClick.AddListener(OnAddBtn);
|
closeBtn.onClick.AddListener(OnClose);
|
}
|
|
protected override void OnPreOpen()
|
{
|
OnBaseBtn();
|
}
|
|
protected override void OnAfterOpen()
|
{
|
|
}
|
|
protected override void OnPreClose()
|
{
|
|
}
|
|
protected override void OnAfterClose()
|
{
|
|
}
|
}
|
}
|
|
|