From f6af5a6a7280322b486f5cd190ece542987f8dc5 Mon Sep 17 00:00:00 2001 From: ZhangBiao Date: Wed, 10 Mar 2021 15:54:42 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E5=BB=BA=E6=9C=A8=E7=A5=9E=E6=A0=91?= =?UTF-8?q?=E3=80=91=E7=BA=A2=E7=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Prefabs/UI/RoleInfo/RoleEquipPanel.prefab | 79 ++++++++++++++++++- .../Prefabs/UI/RoleInfo/RoleListPanel.prefab | 77 +++++++++++++++++- .../UI/SacredTree/SacredTreePanel.prefab | 77 +++++++++++++++++- .../~Lua/Common/GlobalDefine.lua | 5 ++ .../~Lua/Modules/Hero/HeroManager.lua | 2 +- .../~Lua/Modules/Player/RedpotManager.lua | 7 ++ .../~Lua/Modules/RoleInfo/RoleEquipPanel.lua | 2 + .../~Lua/Modules/RoleInfo/RoleListPanel.lua | 2 + .../Modules/SacredTree/SacredTreeManager.lua | 10 ++- .../Modules/SacredTree/SacredTreePanel.lua | 6 +- 10 files changed, 259 insertions(+), 8 deletions(-) diff --git a/Assets/ManagedResources/Prefabs/UI/RoleInfo/RoleEquipPanel.prefab b/Assets/ManagedResources/Prefabs/UI/RoleInfo/RoleEquipPanel.prefab index 633b138aef..79c7a58c35 100644 --- a/Assets/ManagedResources/Prefabs/UI/RoleInfo/RoleEquipPanel.prefab +++ b/Assets/ManagedResources/Prefabs/UI/RoleInfo/RoleEquipPanel.prefab @@ -32970,7 +32970,8 @@ RectTransform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] + m_Children: + - {fileID: 1367635268143573200} m_Father: {fileID: 224444569024407278} m_RootOrder: 19 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -33007,7 +33008,7 @@ MonoBehaviour: m_Calls: [] m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null - m_Sprite: {fileID: 21300000, guid: 9ed299d510310514aa0f29b1ecd648fd, type: 3} + m_Sprite: {fileID: 21300000, guid: c0e2ff0e5cbd6384ea4afd24a076c9f8, type: 3} m_Type: 0 m_PreserveAspect: 1 m_FillCenter: 1 @@ -87314,6 +87315,80 @@ ParticleSystemRenderer: m_Mesh2: {fileID: 0} m_Mesh3: {fileID: 0} m_MaskInteraction: 0 +--- !u!1 &4899863732038709446 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1367635268143573200} + - component: {fileID: 9132191416891009572} + - component: {fileID: 6097420758761744756} + m_Layer: 5 + m_Name: redPoint + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &1367635268143573200 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4899863732038709446} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 611151675801893272} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 40, y: 40} + m_SizeDelta: {x: 26, y: 26} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &9132191416891009572 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4899863732038709446} + m_CullTransparentMesh: 0 +--- !u!114 &6097420758761744756 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4899863732038709446} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: f9ea4c4aff328ff4abcc21aae0a4fa10, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 --- !u!1 &4973035429888691632 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/ManagedResources/Prefabs/UI/RoleInfo/RoleListPanel.prefab b/Assets/ManagedResources/Prefabs/UI/RoleInfo/RoleListPanel.prefab index e5bc7c35a5..e39a2b02b8 100644 --- a/Assets/ManagedResources/Prefabs/UI/RoleInfo/RoleListPanel.prefab +++ b/Assets/ManagedResources/Prefabs/UI/RoleInfo/RoleListPanel.prefab @@ -2344,7 +2344,7 @@ GameObject: - component: {fileID: 6505112454196582161} - component: {fileID: 2776300872173589680} m_Layer: 5 - m_Name: treeBtn + m_Name: treebtn m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -3120,6 +3120,80 @@ RectTransform: m_AnchoredPosition: {x: 162.60156, y: -207.39844} m_SizeDelta: {x: 321.2, y: 406.9} m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &2412574158392073219 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8267883353021136219} + - component: {fileID: 5028504178864293462} + - component: {fileID: 937440765034945526} + m_Layer: 5 + m_Name: redPoint + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8267883353021136219 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2412574158392073219} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 100} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1665889456276032331} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 40.8, y: 46.4} + m_SizeDelta: {x: 26, y: 26} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5028504178864293462 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2412574158392073219} + m_CullTransparentMesh: 0 +--- !u!114 &937440765034945526 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2412574158392073219} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: f9ea4c4aff328ff4abcc21aae0a4fa10, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 --- !u!1 &2669337865142442508 GameObject: m_ObjectHideFlags: 0 @@ -5003,6 +5077,7 @@ RectTransform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 7755659692190683072} + - {fileID: 8267883353021136219} m_Father: {fileID: 224848180469002964} m_RootOrder: 10 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} diff --git a/Assets/ManagedResources/Prefabs/UI/SacredTree/SacredTreePanel.prefab b/Assets/ManagedResources/Prefabs/UI/SacredTree/SacredTreePanel.prefab index defa1900c2..45ae244455 100644 --- a/Assets/ManagedResources/Prefabs/UI/SacredTree/SacredTreePanel.prefab +++ b/Assets/ManagedResources/Prefabs/UI/SacredTree/SacredTreePanel.prefab @@ -167,7 +167,7 @@ RectTransform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 767042923798504073} - m_RootOrder: 0 + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} @@ -430,6 +430,80 @@ MonoBehaviour: m_FillClockwise: 1 m_FillOrigin: 0 m_UseSpriteMesh: 0 +--- !u!1 &1306023313800259487 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3290891364762899322} + - component: {fileID: 5372547502317683756} + - component: {fileID: 8617115857019184316} + m_Layer: 5 + m_Name: redPoint + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3290891364762899322 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1306023313800259487} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 767042923798504073} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 103.4, y: 27.4} + m_SizeDelta: {x: 26, y: 26} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5372547502317683756 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1306023313800259487} + m_CullTransparentMesh: 0 +--- !u!114 &8617115857019184316 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1306023313800259487} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: f9ea4c4aff328ff4abcc21aae0a4fa10, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 --- !u!1 &1325872924926217028 GameObject: m_ObjectHideFlags: 0 @@ -1028,6 +1102,7 @@ RectTransform: m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: + - {fileID: 3290891364762899322} - {fileID: 4083153808900089139} m_Father: {fileID: 8234046456925150097} m_RootOrder: 5 diff --git a/Assets/ManagedResources/~Lua/Common/GlobalDefine.lua b/Assets/ManagedResources/~Lua/Common/GlobalDefine.lua index 3c4aa20736..88f5cb1f16 100644 --- a/Assets/ManagedResources/~Lua/Common/GlobalDefine.lua +++ b/Assets/ManagedResources/~Lua/Common/GlobalDefine.lua @@ -861,6 +861,11 @@ RedPointType = { BuddishTrailHelp = 803,--佛禅试炼 DemonTrailHelp = 804,--妖灵试炼 TaoistTrailHelp = 805,--道玄试炼 + + --建木神树界面 + Sacred = 900,--神树 + Sacred_roleList = 903,--神树在rolelist中 + Sacred_roleInfo = 902,--神树在装备中 --鸿蒙阵 HongMeng = 8010, -- 鸿蒙阵界面 diff --git a/Assets/ManagedResources/~Lua/Modules/Hero/HeroManager.lua b/Assets/ManagedResources/~Lua/Modules/Hero/HeroManager.lua index 53a4339764..5e0fef49fe 100644 --- a/Assets/ManagedResources/~Lua/Modules/Hero/HeroManager.lua +++ b/Assets/ManagedResources/~Lua/Modules/Hero/HeroManager.lua @@ -2776,7 +2776,7 @@ function this.GetFormationHeroRedPoint() return true end end - return false + return SacredTreeManager.CheckRedPoint() end --单个英雄所有红点判断 function this.GetCurHeroIsShowRedPoint(curHeroData) diff --git a/Assets/ManagedResources/~Lua/Modules/Player/RedpotManager.lua b/Assets/ManagedResources/~Lua/Modules/Player/RedpotManager.lua index 510025ec9b..82c269c516 100644 --- a/Assets/ManagedResources/~Lua/Modules/Player/RedpotManager.lua +++ b/Assets/ManagedResources/~Lua/Modules/Player/RedpotManager.lua @@ -278,6 +278,10 @@ function this.InitRedPointAllRelate() RPData:SetParent(RedPointType.HongMeng_Evory,RedPointType.HongMeng) RPData:SetParent(RedPointType.HongMeng_OpenBox,RedPointType.HongMeng) RPData:SetParent(RedPointType.HongMeng_UpTower,RedPointType.HongMeng) + + --建木神树 + RPData:SetParent(RedPointType.Sacred,RedPointType.Sacred_roleInfo) + RPData:SetParent(RedPointType.Sacred_roleInfo,RedPointType.Sacred_roleList) end -- 注册红点检测方法 @@ -476,6 +480,9 @@ function this.RegisterRedCheckFunc() RPData:AddCheckFunc(RedPointType.BuddishTrailHelp, MonsterCampManager.CheckHelpFightRedPoint) RPData:AddCheckFunc(RedPointType.DemonTrailHelp, MonsterCampManager.CheckHelpFightRedPoint) RPData:AddCheckFunc(RedPointType.TaoistTrailHelp, MonsterCampManager.CheckHelpFightRedPoint) + + --建木神树 + RPData:AddCheckFunc(RedPointType.Sacred, SacredTreeManager.CheckRedPoint) end -- 向红点绑定物体 diff --git a/Assets/ManagedResources/~Lua/Modules/RoleInfo/RoleEquipPanel.lua b/Assets/ManagedResources/~Lua/Modules/RoleInfo/RoleEquipPanel.lua index 000fadeacb..d4a38070ea 100644 --- a/Assets/ManagedResources/~Lua/Modules/RoleInfo/RoleEquipPanel.lua +++ b/Assets/ManagedResources/~Lua/Modules/RoleInfo/RoleEquipPanel.lua @@ -111,6 +111,7 @@ function RoleEquipPanel:InitComponent() this.upLvEffect = Util.GetGameObject(self.transform, "powerBtn/effect") this.equipTreasureBtn = Util.GetGameObject(self.transform, "equipTreasureBtn") this.sacredTreeBtn = Util.GetGameObject(self.transform, "sacredTreeBtn") + this.treeRed = Util.GetGameObject(self.transform, "sacredTreeBtn/redPoint") this.sacredTreeBtn:GetComponent("Image").sprite = Util.LoadSprite("j_jianmushenshu_anniu_01_zh") this.equipTreasureBtn:GetComponent("Image").sprite = Util.LoadSprite("b_baowuxitong_gongmin_zh") this.treasure1 = Util.GetGameObject(self.transform, "bg/equipInfo/equip5") @@ -193,6 +194,7 @@ function RoleEquipPanel:BindEvent() function() UIManager.OpenPanel(UIName.RewardItemSingleShowPopup,9998,nil) end) + BindRedPointObject(RedPointType.Sacred_roleInfo,this.treeRed) end --添加事件监听(用于子类重写) diff --git a/Assets/ManagedResources/~Lua/Modules/RoleInfo/RoleListPanel.lua b/Assets/ManagedResources/~Lua/Modules/RoleInfo/RoleListPanel.lua index 285bc98b2e..8689aaa4b4 100644 --- a/Assets/ManagedResources/~Lua/Modules/RoleInfo/RoleListPanel.lua +++ b/Assets/ManagedResources/~Lua/Modules/RoleInfo/RoleListPanel.lua @@ -33,6 +33,7 @@ function RoleListPanel:InitComponent() --this.fenJieBtn:SetActive(false) this.formationBtn = Util.GetGameObject(self.gameObject, "formationBtn") this.treeBtn = Util.GetGameObject(self.gameObject, "treeBtn") + this.treeRed = Util.GetGameObject(this.treeBtn, "redPoint") this.BtView =SubUIManager.Open(SubUIConfig.BtView, self.gameObject.transform) this.UpView = SubUIManager.Open(SubUIConfig.UpView, self.gameObject.transform) @@ -134,6 +135,7 @@ function RoleListPanel:BindEvent() UIManager.OpenPanel(UIName.VipPanelV2) end) BindRedPointObject(RedPointType.VipPrivilege, this.vipRedPoint) + BindRedPointObject(RedPointType.Sacred_roleList,this.treeRed) end diff --git a/Assets/ManagedResources/~Lua/Modules/SacredTree/SacredTreeManager.lua b/Assets/ManagedResources/~Lua/Modules/SacredTree/SacredTreeManager.lua index 054bcaf1db..e817631fc4 100644 --- a/Assets/ManagedResources/~Lua/Modules/SacredTree/SacredTreeManager.lua +++ b/Assets/ManagedResources/~Lua/Modules/SacredTree/SacredTreeManager.lua @@ -7,7 +7,7 @@ local jewerLevelUpConfig = ConfigManager.GetConfig(ConfigName.JewelRankupConfig) function this.Initialize() this.treeLevel = 0 - this.treeLevelConfig={} + this.SacredtreeLevelConfig={} this.getGodHoodTreeLevelConfigData() this.treeSettingData={} @@ -29,7 +29,7 @@ end --树等级表数据 function this.getGodHoodTreeLevelConfigData() for i, v in ConfigPairs(treeLevelConfig) do - this.treeLevelConfig[v.Id] = v.LvupCost + this.SacredtreeLevelConfig[v.Id] = v.LvupCost end end @@ -128,4 +128,10 @@ function this.GetCurLvPropertyValue(_type, _id, _lv) return proList end +function this.CheckRedPoint() + local needId = treeLevelConfig[this.treeLevel].LvupCost[1] + local needCost = treeLevelConfig[this.treeLevel].LvupCost[2] + return BagManager.GetTotalItemNum(needId) > needCost +end + return this \ No newline at end of file diff --git a/Assets/ManagedResources/~Lua/Modules/SacredTree/SacredTreePanel.lua b/Assets/ManagedResources/~Lua/Modules/SacredTree/SacredTreePanel.lua index d5c1794d80..fa5d3c0ea9 100644 --- a/Assets/ManagedResources/~Lua/Modules/SacredTree/SacredTreePanel.lua +++ b/Assets/ManagedResources/~Lua/Modules/SacredTree/SacredTreePanel.lua @@ -15,6 +15,7 @@ function SacredTreePanel:InitComponent() self.helpPos = self.helpBtn:GetComponent("RectTransform").localPosition self.attriBtn = Util.GetGameObject(self.transform, "attriBtn") self.upgradeBtn = Util.GetGameObject(self.transform, "upgradeBtn") + self.treeRed = Util.GetGameObject(self.transform, "upgradeBtn/redPoint") --show self.treeLevel = Util.GetGameObject(self.transform, "bg/level"):GetComponent("Text") @@ -53,6 +54,7 @@ function SacredTreePanel:BindEvent() end end end) + BindRedPointObject(RedPointType.Sacred,self.treeRed) end --添加事件监听(用于子类重写) @@ -69,8 +71,10 @@ function SacredTreePanel:OnOpen() self.UpView:OnOpen({ showType = UpViewOpenType.ShowLeft, panelType = PanelType.SacredTree}) end function SacredTreePanel:OnShow() + CheckRedPointStatus(RedPointType.Sacred) + self.treeRed:SetActive(SacredTreeManager.CheckRedPoint()) curTreeLevel = SacredTreeManager.treeLevel - length = LengthOfTable(SacredTreeManager.treeLevelConfig) + length = LengthOfTable(SacredTreeManager.SacredtreeLevelConfig) local str1,str2 Util.SetGray(self.upgradeBtn,curTreeLevel >= length)