109 lines
2.9 KiB
C#
109 lines
2.9 KiB
C#
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
using System.Collections;
|
|
using Games.Item;
|
|
using GCGame.Table;
|
|
using GCGame;
|
|
|
|
public class SoulItem : UIItemSelect
|
|
{
|
|
public class SoulItemData
|
|
{
|
|
public int SoulID;
|
|
public int HeavenID;
|
|
public string attrName;
|
|
public string icon;
|
|
public bool CaUp;
|
|
public bool isMaxLevel;
|
|
}
|
|
|
|
public Image Lock;
|
|
public Image Icon;
|
|
public Text Name;
|
|
public GameObject up;
|
|
public GameObject IsMaxLevel;
|
|
public GameObject EffectPoint;
|
|
|
|
//选中特效
|
|
public GameObject[] SelectEffects;
|
|
|
|
public InitSoulStart m_SoulStar;
|
|
|
|
SoulItemData m_data = null;
|
|
|
|
public override void Show(Hashtable hash)
|
|
{
|
|
m_data = hash["InitObj"] as SoulItemData;
|
|
if (m_data == null)
|
|
return;
|
|
Name.text = m_data.attrName;
|
|
up.SetActive(m_data.CaUp);
|
|
IsMaxLevel.SetActive(m_data.isMaxLevel);
|
|
LoadAssetBundle.Instance.SetImageSprite(Icon, m_data.icon);
|
|
SetSoulStar();
|
|
SetOpenState(m_data.SoulID, m_data.HeavenID);
|
|
InitEffectObj();
|
|
base.Show();
|
|
}
|
|
|
|
private void InitEffectObj()
|
|
{
|
|
Tab_SoulGeneralAttr soul = TableManager.GetSoulGeneralAttrByID(m_data.SoulID, 0);
|
|
if (soul == null)
|
|
return;
|
|
for(int i=0;i<SelectEffects.Length;i++)
|
|
{
|
|
if(SelectEffects[i]!=null)
|
|
{
|
|
SelectEffects[i].SetActive((i + 1) == soul.Quility);
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
private void SetOpenState(int SoulID, int HeavenID)
|
|
{
|
|
Tab_SoulHeavenAttr Heaven = TableManager.GetSoulHeavenAttrByID(HeavenID, 0);
|
|
if(Heaven == null || Heaven.OpenLevel > GameManager.gameManager.PlayerDataPool.MainPlayerBaseAttr.Level)
|
|
{
|
|
Lock.gameObject.SetActive(true);
|
|
return;
|
|
}
|
|
int star = 0;
|
|
var kungfuData = MeridiaSoulData.Instance.GetKungfuData(SoulID, HeavenID);
|
|
if (kungfuData != null) star = kungfuData.star;
|
|
|
|
var id = SoulID * 1000 + star;
|
|
var soul = TableManager.GetSoulGeneralStarByID(id, 0);
|
|
if(soul==null || soul.OpenLevel > GameManager.gameManager.PlayerDataPool.MainPlayerBaseAttr.Level)
|
|
{
|
|
Lock.gameObject.SetActive(true);
|
|
return;
|
|
}
|
|
Lock.gameObject.SetActive(false);
|
|
}
|
|
|
|
public override void Selected()
|
|
{
|
|
base.Selected();
|
|
if (EffectPoint != null)
|
|
EffectPoint.SetActive(true);
|
|
}
|
|
|
|
public override void UnSelected()
|
|
{
|
|
base.UnSelected();
|
|
if (EffectPoint != null)
|
|
EffectPoint.SetActive(false);
|
|
}
|
|
|
|
public void SetSoulStar()
|
|
{
|
|
MeridiaSoulData.KungfuSoulData data = MeridiaSoulData.Instance.GetKungfuData(m_data.SoulID, m_data.HeavenID);
|
|
if (data != null)
|
|
m_SoulStar.InitStart(data.star);
|
|
else
|
|
m_SoulStar.InitStart(0);
|
|
}
|
|
|
|
} |