using UnityEngine; using GCGame.Table; using UnityEngine.UI; using Games.GlobeDefine; using GCGame; public class MeridiaSoulPoint : MonoBehaviour { public Animator BreakPointIcon; public Text BreakPointLevel; public Text BreakPointPay; public GameObject BreakPointEffect; public GameObject BreakPointEffectUp; public GameObject BreakPointUp; private string m_currCrossFade = ""; private void OnEnable() { if(string.IsNullOrEmpty(m_currCrossFade)==false) BreakPointIcon.CrossFade(m_currCrossFade, 0); AddChildAsset childAsset = BreakPointEffectUp.GetComponent(); if (childAsset != null) childAsset.LoadAsset(); } private int m_VeinID = -1; public int ShowInfo(int VeinID, int nodeID,int openLevel) { if(m_VeinID!=-1 && m_VeinID!=VeinID) { Clear(); } m_VeinID = VeinID; ShowNodeModel(VeinID, nodeID); if (GameManager.gameManager.PlayerDataPool.MainPlayerBaseAttr.Level < openLevel) { BreakPointLevel.text = string.Format("{0}", StrDictionary.GetClientDictionaryString("#{46001}", openLevel)); BreakPointPay.gameObject.SetActive(false); BreakPointUp.SetActive(false); BreakPointEffect.SetActive(false); //BreakPointEffectUp.SetActive(false); return -1; } MeridiaSoulData.VeinNodeData VeinData = MeridiaSoulData.Instance.GetNodeData(VeinID, nodeID); int _NodeID = nodeID; nodeID *= 1000; if (VeinData != null) { nodeID += VeinData.level; Tab_BloodVeinNode nodeNext = TableManager.GetBloodVeinNodeByID(nodeID + 1, 0); if (nodeNext == null) { BreakPointLevel.text = string.Format("{0}", StrDictionary.GetClientDictionaryString("#{25125}")); BreakPointUp.SetActive(false); BreakPointPay.gameObject.SetActive(false); BreakPointEffect.SetActive(true); //BreakPointEffectUp.SetActive(false); return nodeID; } BreakPointLevel.text = StrDictionary.GetClientDictionaryString("#{1063}", VeinData.level); BreakPointUp.SetActive(MeridiaSoulData.Instance.NodeCanUp(VeinID, _NodeID)); BreakPointEffect.SetActive(true); } else { BreakPointLevel.text = StrDictionary.GetClientDictionaryString("#{1063}", 0); BreakPointUp.SetActive(MeridiaSoulData.Instance.NodeCanUp(VeinID, _NodeID)); BreakPointEffect.SetActive(false); } BreakPointPay.gameObject.SetActive(true); Tab_BloodVeinNode node = TableManager.GetBloodVeinNodeByID(nodeID, 0); if (node == null) { BreakPointPay.gameObject.SetActive(false); return -1; } else { long hasCount0 = Utils.GetConstHas(node.GetCostTypebyIndex(0), node.GetCostSubbyIndex(0)); long hasCount1 = Utils.GetConstHas(node.GetCostTypebyIndex(1), node.GetCostSubbyIndex(1)); if (hasCount0 >= node.GetCostValbyIndex(0)) { BreakPointPay.text = string.Format("{0}:{1}", Utils.GetConstName(node.GetCostTypebyIndex(0), node.GetCostSubbyIndex(0)), node.GetCostValbyIndex(0)); } else { if (hasCount1 >= node.GetCostValbyIndex(1)) BreakPointPay.text = string.Format("{0}:{1}", Utils.GetConstName(node.GetCostTypebyIndex(1), node.GetCostSubbyIndex(1)), node.GetCostValbyIndex(1)); else BreakPointPay.text = string.Format("{0}:{1}", Utils.GetConstName(node.GetCostTypebyIndex(1), node.GetCostSubbyIndex(1)), node.GetCostValbyIndex(1)); } return nodeID; } } public void Clear() { BreakPointEffectUp.SetActive(false); m_currCrossFade = ""; } public void UPLevel() { BreakPointEffectUp.SetActive(true); } public void OnDisable() { BreakPointEffectUp.SetActive(false); } public void ShowNodeModel(int VeinID, int nodeID) { m_currCrossFade = ""; MeridiaSoulData.VeinNodeData VeinData = MeridiaSoulData.Instance.GetNodeData(VeinID, nodeID); nodeID *= 1000; if (VeinData != null) { nodeID += VeinData.level; } Tab_BloodVeinNode node = TableManager.GetBloodVeinNodeByID(nodeID, 0); if (node == null) { return; } BreakPointIcon.CrossFade(node.Icon, 0); m_currCrossFade = node.Icon; } }