using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
/// <summary>
|
/// 坐骑外观
|
/// </summary>
|
public class HorseSkinWin : UIBase
|
{
|
[SerializeField] Button seeAttrBtn;
|
[SerializeField] HorseController horseModel;
|
[SerializeField] Text horseName;
|
[SerializeField] Text getWayText;
|
[SerializeField] Text attrText;
|
[SerializeField] ScrollerController scroller;
|
[SerializeField] Transform changeOPObj;
|
[SerializeField] UIEffectPlayer lvUpEffect;
|
[SerializeField] Button lvUpBtn;
|
[SerializeField] Text lvUpText;
|
[SerializeField] Text lvUpCostText;
|
[SerializeField] Image lvUpItemImg;
|
[SerializeField] Button changeSkinBtn;
|
[SerializeField] Text timeText;
|
[SerializeField] Transform inSkinMarkObj; //幻化中
|
|
[SerializeField] Button unlockBtn;
|
[SerializeField] Text unlockCostText;
|
[SerializeField] Image unlockItemImg;
|
|
protected override void InitComponent()
|
{
|
seeAttrBtn.AddListener(OnSeeAttrBtnClick);
|
lvUpBtn.AddListener(OnLvUpBtnClick);
|
changeSkinBtn.AddListener(OnChangeSkinBtnClick);
|
unlockBtn.AddListener(OnUnlockBtnClick);
|
}
|
|
protected override void OnPreOpen()
|
{
|
HorseManager.Instance.selectSkinID = HorseManager.Instance.GetUsingHorseSkinID();
|
HorseManager.Instance.SortHorseSkinList();
|
HorseManager.Instance.OnSkinUpdateEvent += OnSkinUpdateEvent;
|
HorseManager.Instance.OnSelectEvent += OnSelectEvent;
|
scroller.OnRefreshCell += OnRefreshCell;
|
GlobalTimeEvent.Instance.secondEvent += OnSecondEvent;
|
PlayerDatas.Instance.playerDataRefreshEvent += OnRefreshPlayerData;
|
|
CreateScroller();
|
Display();
|
}
|
|
protected override void OnPreClose()
|
{
|
HorseManager.Instance.OnSkinUpdateEvent -= OnSkinUpdateEvent;
|
HorseManager.Instance.OnSelectEvent -= OnSelectEvent;
|
scroller.OnRefreshCell -= OnRefreshCell;
|
GlobalTimeEvent.Instance.secondEvent -= OnSecondEvent;
|
PlayerDatas.Instance.playerDataRefreshEvent -= OnRefreshPlayerData;
|
}
|
|
void OnSkinUpdateEvent()
|
{
|
HorseManager.Instance.SortHorseSkinList();
|
Display();
|
}
|
|
void OnRefreshPlayerData(PlayerDataType type)
|
{
|
if (type == PlayerDataType.EquipShowSwitch)
|
{
|
Display();
|
}
|
}
|
void OnSelectEvent()
|
{
|
Display();
|
}
|
|
void Display()
|
{
|
var skinConfig = HorseSkinConfig.Get(HorseManager.Instance.selectSkinID);
|
horseModel.Create(HorseManager.Instance.selectSkinID, PhantasmPavilionManager.Instance.GetMyModelSkinID());
|
if (string.IsNullOrEmpty(skinConfig.getWay))
|
{
|
getWayText.text = "";
|
}
|
else
|
{
|
getWayText.text = Language.Get("PhantasmPavilion06", skinConfig.getWay);
|
}
|
if (skinConfig.AttrIDList.Length == 0)
|
{
|
attrText.text = "";
|
}
|
else
|
{
|
attrText.text = GetSkinAttrSring(skinConfig);
|
}
|
|
scroller.m_Scorller.RefreshActiveCellViews();
|
|
bool isActive = HorseManager.Instance.IsSkinActive(HorseManager.Instance.selectSkinID);
|
var skinData = HorseManager.Instance.GetSkinData(HorseManager.Instance.selectSkinID);
|
if (skinConfig.StarMax > 0 && skinData != null && skinData.Star > 0)
|
{
|
horseName.text = skinConfig.Name + "+" + skinData.Star;
|
}
|
else
|
{
|
horseName.text = skinConfig.Name;
|
}
|
if (isActive)
|
{
|
changeOPObj.SetActive(true);
|
unlockBtn.SetActive(false);
|
if (skinConfig.StarMax > 0)
|
{
|
lvUpBtn.SetActive(true);
|
if (skinData.Star >= skinConfig.StarMax)
|
{
|
lvUpCostText.SetActive(false);
|
lvUpText.text = Language.Get("L1055");
|
lvUpBtn.SetInteractable(false);
|
}
|
else
|
{
|
lvUpBtn.SetInteractable(true);
|
lvUpText.text = Language.Get("L1109");
|
lvUpCostText.SetActive(true);
|
lvUpCostText.text = UIHelper.ShowUseItem(PackType.Item, skinConfig.UnlockValue, skinConfig.UpNeedCnt);
|
lvUpItemImg.SetItemSprite(skinConfig.UnlockValue);
|
}
|
}
|
else
|
{
|
lvUpBtn.SetActive(false);
|
}
|
|
if (HorseManager.Instance.selectSkinID == HorseManager.Instance.GetUsingHorseSkinID())
|
{
|
changeSkinBtn.SetActive(false);
|
inSkinMarkObj.SetActive(true);
|
}
|
else
|
{
|
changeSkinBtn.SetActive(true);
|
inSkinMarkObj.SetActive(false);
|
}
|
|
ShowTime();
|
}
|
else
|
{
|
changeOPObj.SetActive(false);
|
unlockBtn.SetActive(true);
|
if (skinConfig.UnlockWay == 1)
|
{
|
unlockCostText.SetActive(false);
|
}
|
else
|
{
|
unlockCostText.SetActive(true);
|
unlockCostText.text = UIHelper.ShowUseItem(PackType.Item, skinConfig.UnlockValue, skinConfig.UnlockNeedCnt);
|
unlockItemImg.SetItemSprite(skinConfig.UnlockValue);
|
}
|
}
|
}
|
|
void ShowTime()
|
{
|
bool isActive = HorseManager.Instance.IsSkinActive(HorseManager.Instance.selectSkinID);
|
var skinData = HorseManager.Instance.GetSkinData(HorseManager.Instance.selectSkinID);
|
var skinConfig = HorseSkinConfig.Get(HorseManager.Instance.selectSkinID);
|
if (isActive)
|
{
|
if (skinConfig.ExpireMinutes > 0)
|
{
|
timeText.SetActive(true);
|
timeText.text = Language.Get("PhantasmPavilion10", TimeUtility.SecondsToShortDHMS(skinData.EndTime - TimeUtility.AllSeconds));
|
}
|
else
|
{
|
timeText.SetActive(false);
|
}
|
}
|
}
|
|
void OnSecondEvent()
|
{
|
ShowTime();
|
}
|
|
|
void CreateScroller()
|
{
|
scroller.Refresh();
|
for (int i = 0; i < HorseManager.Instance.sortSkinList.Count; i++)
|
{
|
if (i % 3 == 0)
|
{
|
scroller.AddCell(ScrollerDataType.Header, i);
|
}
|
}
|
scroller.Restart();
|
}
|
|
void OnRefreshCell(ScrollerDataType type, CellView cell)
|
{
|
var _cell = cell as HorseSkinLineCell;
|
_cell.Display(cell.index);
|
}
|
|
|
void OnSeeAttrBtnClick()
|
{
|
AttributeManager.Instance.OpenTotalAttributeWin(HorseManager.Instance.skinAttrDic);
|
}
|
|
|
string GetSkinAttrSring(HorseSkinConfig config)
|
{
|
var dict = HorseManager.Instance.GetAttrBySkinID(config);
|
var attrList = new List<string>();
|
var skinData = HorseManager.Instance.GetSkinData(config.SkinID);
|
if (skinData != null)
|
{
|
//升星
|
if (skinData.Star == 0 || skinData.Star >= config.StarMax)
|
{
|
foreach (var kv in dict)
|
{
|
attrList.Add(UIHelper.AppendColor(TextColType.itemchuanqi, PlayerPropertyConfig.GetFullDescription(kv.Key, kv.Value)));
|
}
|
return Language.Get("PhantasmPavilion07") + string.Join(Language.Get("L1112"), attrList);
|
}
|
else
|
{
|
int i = 0;
|
foreach (var kv in dict)
|
{
|
attrList.Add(UIHelper.AppendColor(TextColType.itemchuanqi, PlayerPropertyConfig.GetFullDescription(kv.Key, kv.Value)) +
|
Language.Get("PhantasmPavilion12", UIHelper.AppendColor(TextColType.Green, "+" + PlayerPropertyConfig.GetValueDescription(kv.Key, config.AttrPerStarAddList[i]))));
|
i++;
|
}
|
return Language.Get("PhantasmPavilion07") + string.Join(Language.Get("L1112"), attrList);
|
}
|
}
|
else
|
{
|
foreach (var kv in dict)
|
{
|
attrList.Add(UIHelper.AppendColor(TextColType.itemchuanqi, PlayerPropertyConfig.GetFullDescription(kv.Key, kv.Value)));
|
}
|
return Language.Get("PhantasmPavilion07") + string.Join(Language.Get("L1112"), attrList);
|
}
|
}
|
|
void OnLvUpBtnClick()
|
{
|
var skinConfig = HorseSkinConfig.Get(HorseManager.Instance.selectSkinID);
|
if (ItemLogicUtility.CheckItemCount(PackType.Item, skinConfig.UnlockValue, skinConfig.UpNeedCnt, 2))
|
{
|
HorseManager.Instance.SendSkinOP(3, HorseManager.Instance.selectSkinID);
|
lvUpEffect.Play();
|
SysNotifyMgr.Instance.ShowTip("Success");
|
}
|
}
|
void OnChangeSkinBtnClick()
|
{
|
HorseManager.Instance.SendSkinOP(2, HorseManager.Instance.selectSkinID);
|
}
|
|
void OnUnlockBtnClick()
|
{
|
var skinConfig = HorseSkinConfig.Get(HorseManager.Instance.selectSkinID);
|
if (ItemLogicUtility.CheckItemCount(PackType.Item, skinConfig.UnlockValue, skinConfig.UnlockNeedCnt, 2))
|
{
|
HorseManager.Instance.SendSkinOP(1, HorseManager.Instance.selectSkinID);
|
}
|
}
|
|
}
|