using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
namespace vnxbqy.UI
|
{
|
|
public class FashionDressCell : CellView
|
{
|
[SerializeField] ItemBehaviour m_Item;
|
[SerializeField] Text m_ItemName;
|
[SerializeField] Text m_ItemCount;
|
[SerializeField] Text m_GetPath;
|
[SerializeField] RectTransform m_ContainerStars;
|
[SerializeField] Transform[] m_Stars;
|
[SerializeField] Image[] m_StarEquips;
|
[SerializeField] Button m_LevelUp;
|
[SerializeField] Transform m_ContainerDarkMask;
|
[SerializeField] Transform m_Lock;
|
[SerializeField] Button m_Unlock;
|
[SerializeField] Transform m_ContainerSelect;
|
[SerializeField] Transform m_Equiped;
|
[SerializeField] Transform m_Preview;
|
[SerializeField] Transform m_UnlockRedpoint;
|
[SerializeField] Transform m_LevelUpRedpoint;
|
[SerializeField] Button m_Select;
|
|
int fashionDressId = 0;
|
|
FashionDressModel model
|
{
|
get { return ModelCenter.Instance.GetModel<FashionDressModel>(); }
|
}
|
|
PackModel packModel
|
{
|
get { return ModelCenter.Instance.GetModel<PackModel>(); }
|
}
|
|
public void Display(int id)
|
{
|
fashionDressId = id;
|
|
FashionDress fashionDress;
|
m_LevelUp.RemoveAllListeners();
|
m_Unlock.RemoveAllListeners();
|
m_Select.RemoveAllListeners();
|
|
var fashionDressLevel = model.GetFashionDressLevel(fashionDressId);
|
|
var active = fashionDressLevel > 0;
|
|
m_ContainerDarkMask.SetActive(!active);
|
m_ContainerStars.SetActive(active);
|
m_GetPath.SetActive(!active);
|
|
m_UnlockRedpoint.SetActive(model.levelUpRedpoint.state == RedPointState.Simple
|
&& model.fashionDressRedpointId == fashionDressId);
|
m_LevelUpRedpoint.SetActive(model.levelUpRedpoint.state == RedPointState.Simple
|
&& model.fashionDressRedpointId == fashionDressId);
|
|
if (model.TryGetFashionDress(fashionDressId, out fashionDress))
|
{
|
var equipItemId = fashionDress.GetEquipItemId();
|
var virtualEquipFashionId = model.GetVirtualEquipFashionDress(fashionDress.fashionDressType);
|
var selectFashionDress = model.GetSelectFashionDress(fashionDress.fashionDressType);
|
|
bool isEquiped = virtualEquipFashionId == fashionDressId;
|
m_Equiped.SetActive(isEquiped);
|
|
bool isSelect = selectFashionDress == fashionDressId;
|
m_Preview.SetActive(!isEquiped && isSelect);
|
|
m_ContainerSelect.SetActive(isSelect);
|
|
m_LevelUp.SetActive(active && fashionDressLevel < fashionDress.maxLevel);
|
|
bool isMax = fashionDressLevel >= fashionDress.maxLevel;
|
var count = packModel.GetItemCountByID(PackType.Item, fashionDress.requireLevelUpItem);
|
m_Item.SetItem(equipItemId, 0);
|
var levelUpRequireCount = fashionDress.GetLevelUpRequireCount(fashionDressLevel);
|
var requireCountDisplay = UIHelper.AppendColor(count >= levelUpRequireCount ?
|
TextColType.DarkGreen : TextColType.Red, count.ToString());
|
m_ItemCount.text = isMax ? string.Empty : StringUtility.Contact(requireCountDisplay, "/", levelUpRequireCount);
|
|
var config = FashionDressConfig.Get(fashionDressId);
|
m_ItemName.text = config.name;
|
m_GetPath.text = config.getWay;
|
if (fashionDressLevel > 0)
|
{
|
for (int i = 0; i < m_Stars.Length; i++)
|
{
|
m_Stars[i].SetActive(i < fashionDress.maxLevel);
|
}
|
for (int i = 0; i < m_StarEquips.Length; i++)
|
{
|
m_StarEquips[i].SetActive(i < fashionDressLevel);
|
int loop = ((int)Math.Max(fashionDressLevel - 1, 0)) / m_StarEquips.Length;
|
int index = loop * m_StarEquips.Length + i < fashionDressLevel ? loop : loop - 1;
|
if (i < fashionDressLevel)
|
m_StarEquips[i].SetSprite("ImgStar_" + index);
|
}
|
}
|
|
m_Lock.SetActive(count < levelUpRequireCount);
|
m_Unlock.SetActive(count >= levelUpRequireCount);
|
|
m_LevelUp.AddListener(LevelUp);
|
m_Unlock.AddListener(LevelUp);
|
m_Select.AddListener(Select);
|
}
|
}
|
|
private void Select()
|
{
|
FashionDress fashionDress;
|
if (model.TryGetFashionDress(fashionDressId, out fashionDress))
|
{
|
var selectFashionDress = model.GetSelectFashionDress(fashionDress.fashionDressType);
|
var virtualEquipFashionDress = model.GetVirtualEquipFashionDress(fashionDress.fashionDressType);
|
if (selectFashionDress != fashionDressId)
|
{
|
if (model.IsFashionDressUnlock(fashionDressId))
|
{
|
model.SetVirtualEquipFashionDress(fashionDress.fashionDressType, fashionDressId);
|
model.SetSelectFashionDress(fashionDress.fashionDressType, fashionDressId);
|
}
|
else
|
{
|
model.SetSelectFashionDress(fashionDress.fashionDressType, fashionDressId);
|
}
|
}
|
else
|
{
|
if (virtualEquipFashionDress == fashionDressId)
|
{
|
model.SetVirtualEquipFashionDress(fashionDress.fashionDressType, 0);
|
model.SetSelectFashionDress(fashionDress.fashionDressType, 0);
|
}
|
else
|
{
|
model.SetSelectFashionDress(fashionDress.fashionDressType, virtualEquipFashionDress);
|
}
|
}
|
}
|
}
|
|
private void LevelUp()
|
{
|
var error = 0;
|
if (!model.TryLevelUp(fashionDressId, out error))
|
{
|
model.DisplayLevelUpError(error);
|
return;
|
}
|
model.SendLevelUp(fashionDressId);
|
}
|
}
|
}
|
|