2024-08-23 15:49:34 +08:00

735 lines
26 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using Games.LogicObj;
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
using GCGame;
using Module.Log;
using Games.GlobeDefine;
using System.Collections.Generic;
using System;
using GCGame.Table;
using Games.Events;
public class MeridiaSoul : MonoBehaviour
{
class BloodVeinNodeData
{
public int nodeId;
public int nodeLv;
public int CanUP;
public int OPenLv;
}
public class BloodVeinAttrData
{
public int ProId;
public long ProVal;
}
public GameObject VesselWnd;
public UIContainerSelect m_Left;
public UIContainerSelect m_Right;
public UIContainerBase m_AllAdd;
public UIContainerBase m_OneAdd;
public Image PayQuilityIcon;
public Image PayIcon;
public Text PayName;
public Text PayNum;
public GameObject GetButtonObj;
public Image CurrentSelectImage;
public Text CurrentSelectName;
public UIImgText _Power;
public Text Have;
public Toggle IsAutoBuy;
public Text Sual;
public GameObject SualEffect;
public Text AttrName;
public GameObject ChildWnd;
public MeridiaSoulPoint BreakPointChildObj;
public Transform[] BreakPointObjs;
private List<MeridiaSoulPoint> BreakPoints = new List<MeridiaSoulPoint>();
public Text VesselState;
public Text VesselCondition;
public Text VesselCur;
public GameObject AttrAdd;
public Text VesselNextState;
public Text VesselNextCondition;
public Text VesselNextCur;
public GameObject AttrNextAdd;
public GameObject AutoUPStopBtn;
public Text speedText;
private int totleLevel;
private int m_CurrentSelVeinID = -1;
private int m_CurrentSelNodeID = -1;
public LayoutElement Current;
public LayoutElement Next;
private int initCount = 0; // 用于记录左右两边Container初始次数到达两次代表均初始化用于红点更新。
private void CreatePoint()
{
for(int i=0;i< BreakPointObjs.Length;i++)
{
MeridiaSoulPoint point = GameObject.Instantiate<MeridiaSoulPoint>(BreakPointChildObj);
if(point==null)
{
continue;
}
point.gameObject.SetActive(true);
point.transform.SetParent(BreakPointObjs[i]);
point.transform.localPosition = Vector3.zero;
point.transform.localEulerAngles = Vector3.zero;
point.transform.localScale = Vector3.one;
BreakPoints.Add(point);
}
}
private void OnDisable()
{
AutoStop();
}
private void Update()
{
if (DataDuty)
{
switch(ShowStep)
{
case 0: Show();ShowStep = 1 ;return;
case 1: FreshItem(); ShowStep = 2; return;
case 2: FreshAllAttr(); ShowStep = -1; DataDuty = false; return;
}
}
if(AutoUping)
{
if(_LastUpTime > 0 && _LastUpTime - Time.realtimeSinceStartup <=0)
{
AutoUp();
}
}
}
bool DataDuty = false;
int ShowStep = 0;
public void SetDataDuty()
{
DataDuty = true;
ShowStep = 0;
}
public void Show()
{
ShowVeins();
totleLevel = MeridiaSoulData.Instance.GetAllNodeLevelCount();
Sual.text = StrDictionary.GetClientDictionaryString("#{46007}", totleLevel);
SualEffect.SetActive(GetLinkLevel() >= 1);
}
public void UpGrade(object args)
{
FreshShowInfo(m_CurrentSelVeinID,(int)args);
totleLevel = MeridiaSoulData.Instance.GetAllNodeLevelCount();
Sual.text = StrDictionary.GetClientDictionaryString("#{46007}", totleLevel);
SualEffect.SetActive(GetLinkLevel() >= 1);
FreshItem();
FreshAllAttr();
}
private float speed = 1;
private bool AutoUping = false;
private float _LastUpTime = 0;
public void AddSpeed()
{
speed = speed * 2;
if (speed > 4.0f)
speed = 1.0f;
speedText.text = StrDictionary.GetClientDictionaryString("#{5303}", speed);
}
private void AutoUp()
{
Tab_BloodVeinConfig bloodVonfig = TableManager.GetBloodVeinConfigByID(m_CurrentSelVeinID, 0);
if (bloodVonfig == null)
return;
int SelNodeID = -1;
int lastNodeOpenLevel = -1;
int lastNodeLevel = -1;
bool IsAllMaX = true;
for (int index = 0;index<bloodVonfig.getNodeCount();index++)
{
int openLevel = bloodVonfig.GetOpenLvbyIndex(index);
if (GameManager.gameManager.PlayerDataPool.MainPlayerBaseAttr.Level < openLevel)
{
continue;
}
int level = 0;
int nodeID = bloodVonfig.GetNodebyIndex(index);
MeridiaSoulData.VeinNodeData VeinData = MeridiaSoulData.Instance.GetNodeData(m_CurrentSelVeinID, nodeID);
nodeID *= 1000;
if (VeinData != null)
{
nodeID += VeinData.level;
level = VeinData.level;
}
Tab_BloodVeinNode node = TableManager.GetBloodVeinNodeByID(nodeID, 0);
if (node == null)
continue;
Tab_BloodVeinNode nodeNext = TableManager.GetBloodVeinNodeByID(nodeID + 1, 0);
if (nodeNext == null)
{
continue;
}
IsAllMaX = false;
long hasCount0 = Utils.GetConstHas(node.GetCostTypebyIndex(0), node.GetCostSubbyIndex(0));
long hasCount1 = Utils.GetConstHas(node.GetCostTypebyIndex(1), node.GetCostSubbyIndex(1));
int needCount0 = node.GetCostValbyIndex(0);
int needCount1 = node.GetCostValbyIndex(1);
if (hasCount0 < needCount0 && hasCount1 < needCount1)
{
continue;
}
if (lastNodeLevel < 0 || lastNodeOpenLevel < 0)
{
lastNodeLevel = level;
lastNodeOpenLevel = openLevel;
SelNodeID = bloodVonfig.GetNodebyIndex(index);
}else if(level <= lastNodeLevel)
{
if(level < lastNodeLevel)
{
lastNodeLevel = level;
lastNodeOpenLevel = openLevel;
SelNodeID = bloodVonfig.GetNodebyIndex(index);
}
else if(level == lastNodeLevel && openLevel < lastNodeOpenLevel)
{
lastNodeLevel = level;
lastNodeOpenLevel = openLevel;
SelNodeID = bloodVonfig.GetNodebyIndex(index);
}
}
}
if(IsAllMaX)
{
AutoStop();
GUIData.AddNotifyData(StrDictionary.GetClientDictionaryString("{#25125}"));
return;
}
if(SelNodeID == -1)
{
AutoStop();
GUIData.AddNotifyData(StrDictionary.GetClientDictionaryString("{#47304}"));
return;
}
_LastUpTime = 0;
ReqUpgradeVein cmd = new ReqUpgradeVein();
cmd.isMoney = 0;
cmd.nodeId = SelNodeID;
cmd.SendMsg();
}
public void AutoStart()
{
_LastUpTime = Time.realtimeSinceStartup;
AutoUping = true;
AutoUPStopBtn.SetActive(true);
}
public void AutoStop()
{
_LastUpTime = 0;
speed = 1;
AutoUping = false;
AutoUPStopBtn.SetActive(false);
}
public void FreshItem()
{
Tab_CommonItem commonItem = TableManager.GetCommonItemByID(923, 0);
if (commonItem == null)
return;
int has = GameManager.gameManager.PlayerDataPool.BackPack.GetItemCountByDataId(923);
PayName.text = commonItem.Name;
PayNum.text = has.ToString();
LoadAssetBundle.Instance.SetImageSprite(PayIcon, commonItem.Icon);
LoadAssetBundle.Instance.SetImageSprite(PayQuilityIcon, Utils.GetItemQualityFrame(commonItem));
if (commonItem.QualityEffect > 0)
{
CommonItemContainerItem.ShowQualityEffect(true, commonItem.QualityEffect, PayIcon.transform);
}
else
{
CommonItemContainerItem.ShowQualityEffect(false, commonItem.QualityEffect, PayIcon.transform);
}
GetButtonObj.SetActive(has<=0);
}
public void ItemToolTip()
{
ItemTooltipsLogic.ShowItemTooltip(923, ItemTooltipsLogic.ShowType.Info,Vector3.zero);
}
public void GetItem()
{
ItemTooltipsLogic.ShowItemTooltip(923, ItemTooltipsLogic.ShowType.GetPath, transform.position);
}
public void FreshAllAttr()
{
var totlePower = 0;
Dictionary<int, BloodVeinAttrData> AllAttrs = new Dictionary<int, BloodVeinAttrData>();
var tabs = TableManager.GetBloodVeinConfig().Values;
foreach (var VeinConfig in tabs)
{
//计算所有属性加成
for (int j = 0; j < VeinConfig.getNodeCount(); j++)
{
int nodeId = VeinConfig.GetNodebyIndex(j);
MeridiaSoulData.VeinNodeData veinData = MeridiaSoulData.Instance.GetNodeData(VeinConfig.VeinID, nodeId);
nodeId = nodeId * 1000;
if (veinData != null)
{
nodeId = nodeId + veinData.level;
}
Tab_BloodVeinNode veinNode = TableManager.GetBloodVeinNodeByID(nodeId, 0);
if (veinNode == null)
continue;
for (int pro = 0; pro < veinNode.getPropIdCount(); pro++)
{
BloodVeinAttrData attr = new BloodVeinAttrData();
attr.ProId = veinNode.GetPropIdbyIndex(pro);
attr.ProVal = veinNode.GetPropValbyIndex(pro);
if (attr.ProId == -1)
continue;
if (AllAttrs.ContainsKey(attr.ProId))
{
BloodVeinAttrData attdata = AllAttrs[attr.ProId];
attdata.ProVal = attdata.ProVal + attr.ProVal;
AllAttrs[attr.ProId] = attdata;
}
else
{
BloodVeinAttrData attdata = new BloodVeinAttrData();
attdata.ProId = attr.ProId;
attdata.ProVal = attr.ProVal;
AllAttrs[attr.ProId] = attdata;
}
}
totlePower += veinNode.Power;
}
}
totlePower += CountNodeBonus(AllAttrs);
List<BloodVeinAttrData> attrs = new List<BloodVeinAttrData>(AllAttrs.Values);
m_AllAdd.InitContentItem(attrs);
_Power.text = totlePower.ToString();
}
public int CountNodeBonus(Dictionary<int, BloodVeinAttrData> AllAttrs)
{
Tab_BloodVeinNodeBonus nodeBonus = TableManager.GetBloodVeinNodeBonusByID(GetLinkLevel(), 0);
if(nodeBonus!=null)
{
for (int j = 0; j < nodeBonus.getPropIdCount(); j++)
{
int ProId = nodeBonus.GetPropIdbyIndex(j);
int ProValue = nodeBonus.GetPropValbyIndex(j);
if (ProId == -1)
continue;
if (AllAttrs.ContainsKey(ProId))
{
BloodVeinAttrData attdata = AllAttrs[ProId];
attdata.ProVal = attdata.ProVal + ProValue;
AllAttrs[ProId] = attdata;
}
else
{
BloodVeinAttrData attdata = new BloodVeinAttrData();
attdata.ProId = ProId;
attdata.ProVal = ProValue;
AllAttrs[ProId] = attdata;
}
}
return nodeBonus.Power;
}
return 0;
}
public void ShowVeins()
{
List<MeridiaItem.MeridiaItemData> lefts = new List<MeridiaItem.MeridiaItemData>();
var tabs = TableManager.GetBloodVeinConfig().Values;
var n = 0;
foreach (var VeinConfig in tabs)
{
MeridiaItem.MeridiaItemData data = new MeridiaItem.MeridiaItemData();
data.VeinID = VeinConfig.VeinID;
data.icon = VeinConfig.Icon;
data.attrName = VeinConfig.AttrName;
data.name = VeinConfig.Name;
data.openLevel = VeinConfig.VeinOpenLevel;
lefts.Add(data);
n++;
}
List<MeridiaItem.MeridiaItemData> selects = new List<MeridiaItem.MeridiaItemData>();
if (lefts.Count > 0)
selects.Add(lefts[0]);
m_Left.InitSelectContent(lefts, selects, ItemClick);
}
public void ContentReFresh()
{
m_Left.RefreshItems();
m_Right.RefreshItems();
FreshItem();
if (AutoUping)
_LastUpTime = Time.realtimeSinceStartup + 1f / speed;
FreshShowInfo(m_CurrentSelVeinID);
}
public void UP_Click(int index)
{
AutoStop();
Tab_BloodVeinConfig bloodVonfig = TableManager.GetBloodVeinConfigByID(m_CurrentSelVeinID, 0);
if (bloodVonfig == null)
return;
//判断开启等级
if (GameManager.gameManager.PlayerDataPool.MainPlayerBaseAttr.Level < bloodVonfig.GetOpenLvbyIndex(index))
{
GUIData.AddNotifyData(StrDictionary.GetClientDictionaryString("#{47300}"));
return;
}
//判断消耗
int nodeID = bloodVonfig.GetNodebyIndex(index);
m_CurrentSelNodeID = nodeID;
MeridiaSoulData.VeinNodeData VeinData = MeridiaSoulData.Instance.GetNodeData(m_CurrentSelVeinID, nodeID);
nodeID *= 1000;
if (VeinData != null)
{
nodeID += VeinData.level;
}
Tab_BloodVeinNode node = TableManager.GetBloodVeinNodeByID(nodeID, 0);
if (node == null)
return;
Tab_BloodVeinNode nodeNext = TableManager.GetBloodVeinNodeByID(nodeID + 1, 0);
if (nodeNext == null)
{
GUIData.AddNotifyData(StrDictionary.GetClientDictionaryString("{#25125}"));
return;
}
long hasCount0 = Utils.GetConstHas(node.GetCostTypebyIndex(0), node.GetCostSubbyIndex(0));
long hasCount1 = Utils.GetConstHas(node.GetCostTypebyIndex(1), node.GetCostSubbyIndex(1));
int needCount0 = node.GetCostValbyIndex(0);
int needCount1 = node.GetCostValbyIndex(1);
if(hasCount0 < needCount0 && hasCount1 < needCount1)
{
GUIData.AddNotifyData(StrDictionary.GetClientDictionaryString("{#47304}"));
return;
}
ReqUpgradeVein cmd = new ReqUpgradeVein();
cmd.isMoney = 0;
cmd.nodeId = m_CurrentSelNodeID;
cmd.SendMsg();
}
public void PayLinyu()
{
ReqUpgradeVein cmd = new ReqUpgradeVein();
cmd.isMoney = 1;
cmd.nodeId = m_CurrentSelNodeID;
cmd.SendMsg();
}
public void FreshShowInfo(int VeinID, int UpnodeId = -1)
{
Tab_BloodVeinConfig bloodVonfig = TableManager.GetBloodVeinConfigByID(VeinID, 0);
if (bloodVonfig == null)
return;
if(BreakPoints.Count<=0)
{
CreatePoint();
}
CurrentSelectImage.gameObject.SetActive(true);
LoadAssetBundle.Instance.SetImageSprite(CurrentSelectImage, bloodVonfig.Icon);
Dictionary<int, BloodVeinAttrData> AllAttrs = new Dictionary<int, BloodVeinAttrData>();
AttrName.text = bloodVonfig.Name;
m_CurrentSelVeinID = VeinID;
for(int i=0;i<bloodVonfig.getNodeCount();i++)
{
int nodeID = bloodVonfig.GetNodebyIndex(i);
if(BreakPoints.Count > i)
{
int result = BreakPoints[i].ShowInfo(VeinID, nodeID, bloodVonfig.GetOpenLvbyIndex(i));
if(result > 0)
CountOneAttr(result, AllAttrs);
if (UpnodeId != -1 && UpnodeId != nodeID)
continue;
if (UpnodeId == nodeID)
{
BreakPoints[i].UPLevel();
}
}
}
List<BloodVeinAttrData> attrs = new List<BloodVeinAttrData>(AllAttrs.Values);
m_OneAdd.InitContentItem(attrs);
if(attrs.Count>0)
{
CurrentSelectName.text = string.Format("{0} <color=#019311ff>{1}</color>", PropID.GetAttrName((PropID.PropertyID)attrs[0].ProId), attrs[0].ProVal);
}
else
{
CurrentSelectName.text = bloodVonfig.Name;
}
}
public void CountOneAttr(int nodeID , Dictionary<int, BloodVeinAttrData> AllAttrs)
{
Tab_BloodVeinNode node = TableManager.GetBloodVeinNodeByID(nodeID, 0);
if (node == null)
{
return;
}
for (int pro = 0; pro < node.getPropIdCount(); pro++)
{
BloodVeinAttrData attr = new BloodVeinAttrData();
attr.ProId = node.GetPropIdbyIndex(pro);
attr.ProVal = node.GetPropValbyIndex(pro);
if (attr.ProId == -1)
continue;
if (AllAttrs.ContainsKey(attr.ProId))
{
BloodVeinAttrData attdata = AllAttrs[attr.ProId];
attdata.ProVal = attdata.ProVal + attr.ProVal;
AllAttrs[attr.ProId] = attdata;
}
else
{
BloodVeinAttrData attdata = new BloodVeinAttrData();
attdata.ProId = attr.ProId;
attdata.ProVal = attr.ProVal;
AllAttrs[attr.ProId] = attdata;
}
}
}
public void ShowNodeModel(Animator anim,int VeinID, int nodeID)
{
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;
}
anim.CrossFade(node.Icon, 0);
}
public void ItemClick(object initInfo)
{
AutoStop();
MeridiaItem.MeridiaItemData info = initInfo as MeridiaItem.MeridiaItemData;
if (info == null)
{
//LogModule.DebugLog("GuildPreviewInfo is null");
return;
}
FreshShowInfo(info.VeinID);
}
List<GameObject> attrObjs = new List<GameObject>();
public void Close_Vessel()
{
ChildWnd.SetActive(false);
VesselWnd.SetActive(false);
}
public int GetLinkLevel()
{
var links = TableManager.GetBloodVeinNodeBonus().Values;
foreach (var link in links)
{
if (totleLevel >= link.TotalLvMin && totleLevel <= link.TotalLvMax)
{
return link.Id;
}
}
return 0;
}
public void Vessel_Click()
{
ChildWnd.SetActive(true);
VesselWnd.SetActive(true);
for (int i=0;i<attrObjs.Count;i++)
{
attrObjs[i].SetActive(false);
attrObjs[i].transform.SetParent(null);
GameObject.Destroy(attrObjs[i]);
}
attrObjs.Clear();
int next = 0;
Tab_BloodVeinNodeBonus firstData = null;
Tab_BloodVeinNodeBonus SecondData = null;
var links = TableManager.GetBloodVeinNodeBonus().Values;
foreach (var link in links)
{
if (firstData == null)
firstData = link;
else if (SecondData == null)
SecondData = link;
if (totleLevel >= link.TotalLvMin && totleLevel <= link.TotalLvMax)
{
VesselState.text = StrDictionary.GetClientDictionaryString("#{1166}", link.Id) + " " + string.Format("<color=#019311ff>({0})</color>", StrDictionary.GetClientDictionaryString("#{41015}"));
Current.preferredHeight = VesselState.preferredHeight;
VesselCondition.text = StrDictionary.GetClientDictionaryString("#{46000}", link.TotalLvMin);
VesselCur.text = string.Format("<color=#019311ff>{0}/{1}</color>", totleLevel, link.TotalLvMin);
for (int j = 0; j < link.getPropIdCount(); j++)
{
int proId = link.GetPropIdbyIndex(j);
int proVal = link.GetPropValbyIndex(j);
if (proId == -1)
continue;
GameObject attObj = GameObject.Instantiate(AttrAdd);
if (attObj == null)
continue;
Text attText = attObj.GetComponent<Text>();
attObj.transform.SetParent(AttrAdd.transform.parent);
attObj.SetActive(true);
attObj.transform.localPosition = AttrAdd.transform.localPosition;
attObj.transform.localScale = AttrAdd.transform.localScale;
PropID.GetAttrName((PropID.PropertyID)proId);
attText.text = PropID.GetAttrName((PropID.PropertyID)proId) + string.Format("<color=#019311ff> +{0}</color>", proVal.ToString());
attrObjs.Add(attObj);
}
next++;
continue;
}
if(next==1)
{
VesselNextState.text = StrDictionary.GetClientDictionaryString("#{1166}", link.Id) + " " + string.Format("<color=#ab0e0eff>({0})</color>", StrDictionary.GetClientDictionaryString("#{43014}"));
Next.preferredHeight = VesselNextState.preferredHeight;
VesselNextCondition.text = StrDictionary.GetClientDictionaryString("#{46000}", link.TotalLvMin);
VesselNextCur.text = string.Format("<color=#ab0e0eff>{0}/{1}</color>", totleLevel, link.TotalLvMin);
for (int j = 0; j < link.getPropIdCount(); j++)
{
int proId = link.GetPropIdbyIndex(j);
int proVal = link.GetPropValbyIndex(j);
if (proId == -1)
continue;
GameObject attObj = GameObject.Instantiate(AttrNextAdd);
if (attObj == null)
continue;
Text attText = attObj.GetComponent<Text>();
attObj.transform.SetParent(AttrNextAdd.transform.parent);
attObj.SetActive(true);
attObj.transform.localPosition = AttrNextAdd.transform.localPosition;
attObj.transform.localScale = AttrNextAdd.transform.localScale;
PropID.GetAttrName((PropID.PropertyID)proId);
attText.text = PropID.GetAttrName((PropID.PropertyID)proId) + string.Format("<color=#ab0e0eff> +{0}</color>", proVal.ToString());
attrObjs.Add(attObj);
}
next++;
}
}
if (next == 1)
{
VesselNextState.text = StrDictionary.GetClientDictionaryString("#{47303}"); ;
VesselNextCur.text = "";
VesselNextCondition.text = "";
return;
}
if (next == 0)
{
if (firstData != null)
{
VesselState.text = StrDictionary.GetClientDictionaryString("#{1166}", firstData.Id) + " " + string.Format("<color=#ab0e0eff>({0})</color>", StrDictionary.GetClientDictionaryString("#{43014}"));
VesselCur.text = string.Format("<color=#ab0e0eff>{0}/{1}</color>", totleLevel, firstData.TotalLvMin);
VesselCondition.text = StrDictionary.GetClientDictionaryString("#{46000}", firstData.TotalLvMin);
for (int j = 0; j < firstData.getPropIdCount(); j++)
{
int proId = firstData.GetPropIdbyIndex(j);
int proVal = firstData.GetPropValbyIndex(j);
if (proId == -1)
continue;
GameObject attObj = GameObject.Instantiate(AttrAdd);
if (attObj == null)
continue;
Text attText = attObj.GetComponent<Text>();
if(attText==null)
{
GameObject.Destroy(attObj);
continue;
}
attObj.transform.SetParent(AttrAdd.transform.parent);
attObj.SetActive(true);
attObj.transform.localPosition = AttrAdd.transform.localPosition;
attObj.transform.localScale = AttrAdd.transform.localScale;
PropID.GetAttrName((PropID.PropertyID)proId);
attText.text = PropID.GetAttrName((PropID.PropertyID)proId) + string.Format("<color=#ab0e0eff> +{0}</color>", proVal.ToString());
attrObjs.Add(attObj);
}
}
if(SecondData != null)
{
VesselNextState.text = StrDictionary.GetClientDictionaryString("#{1166}", SecondData.Id) + " " + string.Format("<color=#ab0e0eff>({0})</color>", StrDictionary.GetClientDictionaryString("#{43014}"));
VesselNextCondition.text = StrDictionary.GetClientDictionaryString("#{46000}", SecondData.TotalLvMin);
VesselNextCur.text = string.Format("<color=#ab0e0eff>{0}/{1}</color>", totleLevel, SecondData.TotalLvMin);
for (int i = 0; i < SecondData.getPropIdCount(); i++)
{
int proId = SecondData.GetPropIdbyIndex(i);
int proVal = SecondData.GetPropValbyIndex(i);
if (proId == -1)
continue;
GameObject attObj = GameObject.Instantiate(AttrNextAdd);
if (attObj == null)
continue;
Text attText = attObj.GetComponent<Text>();
if (attText == null)
{
GameObject.Destroy(attObj);
continue;
}
attObj.transform.SetParent(AttrNextAdd.transform.parent);
attObj.SetActive(true);
attObj.transform.localPosition = AttrNextAdd.transform.localPosition;
attObj.transform.localScale = AttrNextAdd.transform.localScale;
PropID.GetAttrName((PropID.PropertyID)proId);
attText.text = PropID.GetAttrName((PropID.PropertyID)proId) + string.Format("<color=#ab0e0eff> +{0}</color>", proVal.ToString());
attrObjs.Add(attObj);
}
}
}
}
}