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 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); } }