require("Base/BasePanel") SacredTreePanel = Inherit(BasePanel) local treeLevelConfig = ConfigManager.GetConfig(ConfigName.GodHoodTreeLevel) local itemConfig = ConfigManager.GetConfig(ConfigName.ItemConfig) local artConfig = ConfigManager.GetConfig(ConfigName.ArtResourcesConfig) local attriConfig = ConfigManager.GetConfigDataByKey(ConfigName.GodHoodTreeSetting,"Id",0) local orginLayer = 0 local curTreeLevel = 0 local length = 0 local t = 3 --用来区分长按和点击的临界值 function SacredTreePanel:InitComponent() self.spLoader = SpriteLoader.New() --button self.UpView = SubUIManager.Open(SubUIConfig.UpView, self.gameObject.transform, { showType = UpViewOpenType.ShowLeft }) self.backBtn = Util.GetGameObject(self.transform, "backBtn") self.helpBtn = Util.GetGameObject(self.transform, "helpBtn") 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") self.needIcon = Util.GetGameObject(self.transform, "tips/Image"):GetComponent("Image") self.needNum = Util.GetGameObject(self.transform, "tips/num"):GetComponent("Text") self.upGrade = Util.GetGameObject(self.transform, "upgradeBtn/Text"):GetComponent("Text") self.attriNum = Util.GetGameObject(self.transform, "attriBtn/num"):GetComponent("Text") self.UI_effect_RecruitPanel_particle = Util.GetGameObject(self.transform, "UI_effect_RecruitPanel_particle") self.trigger = Util.GetEventTriggerListener(self.upgradeBtn.donImg) self.OnPointerDo = function(go, data) self:OnPointerDown(go, data, i) end self.OnPointerUp = function(go, data) self:OnPointerUp(go,data) end -- self.trigger.onPointerDown = self.trigger.onPointerDown + self.OnPointerDo -- self.trigger.onPointerUp = self.trigger.onPointerUp + self.OnPointerUp -- self.itemNum = BagManager.GetTotalItemNum(treeLevelConfig[curTreeLevel].LvupCost[1]) end -- function SacredTreePanel:OnPointerDown() -- if curTreeLevel >= length then -- PopupTipPanel.ShowTip("神树已达最大等级~") -- return -- end -- if self.itemNum < treeLevelConfig[curTreeLevel].LvupCost[2] then -- PopupTipPanel.ShowTip(string.format("%s不足!",itemConfig[treeLevelConfig[curTreeLevel].LvupCost[1]].Name)) -- return -- end -- self.isPressed = true -- end -- function SacredTreePanel:OnPointerUp() -- if self.isPressed then -- self.isPressed = false -- self:RefreshBottom(true) -- end -- end -- function SacredTreePanel:OnUpdate() -- if self.isPressed then -- if self.numCount > t then -- self.isShortPress = false -- self:Refresh(false) -- self.numCount = 0 -- else -- self.isShortPress = true -- end -- self.numCount = self.numCount + 1 -- end -- end -- function SacredTreePanel:Refresh(isSend) -- if isSend then -- self.isPressed = false -- self.isShortPress = false -- self.numCount = 0 -- if self.num < 1 then -- self.num = 1 -- end -- self:RequestDonate(self.num) -- else -- self.num = self.num + 1 -- self.itemNum = self.itemNum - 1 -- if self.itemNum < treeLevelConfig[curTreeLevel].LvupCost[2] then -- self.isPressed = false -- self:Refresh(true) -- return -- end -- if curTreeLevel == 0 then -- PopupTipPanel.ShowTip("成功解锁神树~") -- end -- local oldPower = FormationManager.GetFormationPower(FormationTypeDef.FORMATION_NORMAL) -- SacredTreeManager.OnPowerChange(oldPower) -- if curTreeLevel >= length then -- self.isPressed = false -- self:Refresh(true) -- return -- end -- self:OnShow() -- end -- end -- function SacredTreePanel:RequestDonate(num) -- if num <= 0 then -- PopupTipPanel.ShowTip(string.format("%s不足!",itemConfig[treeLevelConfig[curTreeLevel].LvupCost[1]].Name)) -- return -- end -- NetManager.UpgradeGodTreeRequest(function () -- self.num = 0 -- self:OnShow() -- end) -- self.num = 0 -- end function SacredTreePanel:BindEvent() Util.AddClick(self.backBtn, function() self:ClosePanel() end) Util.AddClick(self.helpBtn, function() UIManager.OpenPanel(UIName.HelpPopup,HELP_TYPE.SacredTree,self.helpPos.x,self.helpPos.y) end) Util.AddClick(self.attriBtn, function() UIManager.OpenPanel(UIName.GeneralBigPopup,GENERAL_POPUP_TYPE.ShenYingShuXing) end) Util.AddClick(self.upgradeBtn, function() if curTreeLevel >= length then PopupTipPanel.ShowTip("神树已达最大等级~") else local num = BagManager.GetTotalItemNum(treeLevelConfig[curTreeLevel].LvupCost[1]) if num < treeLevelConfig[curTreeLevel].LvupCost[2] then PopupTipPanel.ShowTip(string.format("%s不足!",itemConfig[treeLevelConfig[curTreeLevel].LvupCost[1]].Name)) else local oldPower = FormationManager.GetFormationPower(FormationTypeDef.FORMATION_NORMAL) NetManager.UpgradeGodTreeRequest(function () if curTreeLevel == 0 then PopupTipPanel.ShowTip("成功解锁神树~") end SacredTreeManager.OnPowerChange(oldPower) SacredTreePanel:OnShow() end) end end end) BindRedPointObject(RedPointType.Sacred,self.treeRed) end function SacredTreePanel:OnSortingOrderChange() Util.AddParticleSortLayer(self.UI_effect_RecruitPanel_particle, self.sortingOrder - orginLayer) orginLayer = self.sortingOrder end --添加事件监听(用于子类重写) function SacredTreePanel:AddListener() end --移除事件监听(用于子类重写) function SacredTreePanel:RemoveListener() end 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.SacredtreeLevelConfig) local str1,str2 Util.SetGray(self.upgradeBtn,curTreeLevel >= length) if curTreeLevel > 0 and curTreeLevel < length then str1 = string.format(GetLanguageStrById("等级:%s"),curTreeLevel) str2 = Language[11063] elseif curTreeLevel >= length then str1 = string.format(GetLanguageStrById("等级:%s"),length) str2 = "等级已满" elseif curTreeLevel <= 0 then str1 = "未解锁" str2 = "解 锁" end self.treeLevel.text = str1 self.upGrade.text = str2 local needId = treeLevelConfig[curTreeLevel].LvupCost[1] local needCost = treeLevelConfig[curTreeLevel].LvupCost[2] if curTreeLevel < length then self.needIcon.sprite = self.spLoader:LoadSprite(artConfig[itemConfig[treeLevelConfig[curTreeLevel].LvupCost[1]].ResourceID].Name) self.needNum.text = treeLevelConfig[curTreeLevel].LvupCost[2] if BagManager.GetTotalItemNum(needId) < needCost then self.needNum.text = ""..treeLevelConfig[curTreeLevel].LvupCost[2].."" end else self.needIcon.gameObject:SetActive(curTreeLevel < length) self.needNum.gameObject:SetActive(curTreeLevel < length) end self.attriNum.text = SacredTreeManager.CulAttri().."/"..#attriConfig.PropertyUnlcokLevels end function SacredTreePanel:OnClose() -- body end function SacredTreePanel:OnDestroy() SubUIManager.Close(self.UpView) self.spLoader:Destroy() end return SacredTreePanel