554 lines
		
	
	
		
			26 KiB
		
	
	
	
		
			Lua
		
	
			
		
		
	
	
			554 lines
		
	
	
		
			26 KiB
		
	
	
	
		
			Lua
		
	
local HomeLand = quick_class("HomeLand", BasePanel)
 | 
						||
local HomeLandConfig = ConfigManager.GetConfig(ConfigName.HomeLand)
 | 
						||
local HomeLandLevel = ConfigManager.GetConfig(ConfigName.HomeLandLevel)
 | 
						||
local HomeLandTask = ConfigManager.GetConfig(ConfigName.HomeLandTask)
 | 
						||
local GlobalSystemConfig = ConfigManager.GetConfig(ConfigName.GlobalSystemConfig)
 | 
						||
local ItemConfig = ConfigManager.GetConfig(ConfigName.ItemConfig)
 | 
						||
local costStr = string.split(ConfigManager.GetConfigData(ConfigName.SpecialConfig,100).Value,"#")
 | 
						||
local bool = false
 | 
						||
function HomeLand:InitComponent()
 | 
						||
    self.spLoader = SpriteLoader.New()
 | 
						||
    -- if not self.playerInfoView then
 | 
						||
    --     self.playerInfoView = SubUIManager.Open(SubUIConfig.PlayerInfoView, self.transform)
 | 
						||
    -- end
 | 
						||
    self.UpView = SubUIManager.Open(SubUIConfig.UpView, self.transform)
 | 
						||
    self.btnBack = Util.GetGameObject(self.gameObject,"btnBack")
 | 
						||
 | 
						||
    self.map = Util.GetGameObject(self.gameObject,"Map")
 | 
						||
    self.Grid = Util.GetGameObject(self.map,"Grid")
 | 
						||
    self.Bg = Util.GetGameObject(self.map,"Bg")
 | 
						||
    self.Privi = Util.GetGameObject(self.map,"Privi")
 | 
						||
    self.PriviBtn = Util.GetGameObject(self.map,"goBtn")
 | 
						||
    self.RightUp = Util.GetGameObject(self.map,"RightUp")
 | 
						||
    self.RightDown = Util.GetGameObject(self.map,"RightDown")
 | 
						||
 | 
						||
    self.helpBtn = Util.GetGameObject(self.RightUp, "helpBtn")
 | 
						||
    self.helpPosition=self.helpBtn:GetComponent("RectTransform").localPosition
 | 
						||
    --privi
 | 
						||
    self.priviDi = Util.GetGameObject(self.Privi,"di")
 | 
						||
    self.priviDi:SetActive(false)
 | 
						||
    self.priviText = Util.GetGameObject(self.Privi,"di/Text"):GetComponent("Text")
 | 
						||
    --btns
 | 
						||
    self.taskBtn = Util.GetGameObject(self.RightUp,"Task")
 | 
						||
    self.taskRed = Util.GetGameObject(self.taskBtn,"redpoint")
 | 
						||
    self.yunYouBtn = Util.GetGameObject(self.RightUp,"YunYou")
 | 
						||
    self.oneKey = Util.GetGameObject(self.RightDown,"OneKey")
 | 
						||
 | 
						||
    --产出详情框
 | 
						||
    self.GainDetail = Util.GetGameObject(self.map,"GainDetail")
 | 
						||
    self.maskBtn = Util.GetGameObject(self.GainDetail,"mask")
 | 
						||
    self.Kuang = Util.GetGameObject(self.GainDetail,"Kuang")
 | 
						||
    self.Btn = Util.GetGameObject(self.GainDetail,"Btn")
 | 
						||
    self.BtnImage = Util.GetGameObject(self.Btn,"Image")
 | 
						||
    --progress
 | 
						||
    self.progress = Util.GetGameObject(self.Kuang,"Progress")
 | 
						||
    self.helpBtn1 = Util.GetGameObject(self.progress,"Help1")
 | 
						||
    self.progressPre = Util.GetGameObject(self.progress,"progressPre")
 | 
						||
    self.preList1 = {}
 | 
						||
    --detail
 | 
						||
    self.detail = Util.GetGameObject(self.Kuang,"Detail")
 | 
						||
    self.helpBtn2 = Util.GetGameObject(self.detail,"Help2")
 | 
						||
    self.detailPre = Util.GetGameObject(self.detail,"detailPre")
 | 
						||
    self.preList2 = {}
 | 
						||
 | 
						||
    --地图点信息
 | 
						||
    self.mapData = {}
 | 
						||
    for i = 1, 7 do
 | 
						||
        self.mapData[i] = {}
 | 
						||
        self.mapData[i].Obj = Util.GetGameObject(self.Bg,"Map ("..i..")")
 | 
						||
        self.mapData[i].Title = Util.GetGameObject(self.mapData[i].Obj,"Title")
 | 
						||
        self.mapData[i].levelImg = Util.GetGameObject(self.mapData[i].Title,"levelImg")
 | 
						||
        self.mapData[i].level = Util.GetGameObject(self.mapData[i].levelImg,"levelText"):GetComponent("Text")
 | 
						||
        self.mapData[i].NameImg = Util.GetGameObject(self.mapData[i].Title,"NameImg")
 | 
						||
        self.mapData[i].RedPoint = Util.GetGameObject(self.mapData[i].Title,"redpoint")
 | 
						||
        self.mapData[i].Lock = Util.GetGameObject(self.mapData[i].Title,"lock")
 | 
						||
        self.mapData[i].RedPoint:SetActive(false)
 | 
						||
        self.mapData[i].CanGet = Util.GetGameObject(self.mapData[i].Obj,"CanGet")
 | 
						||
        self.mapData[i].Icon = Util.GetGameObject(self.mapData[i].Obj,"CanGet/Image"):GetComponent("Image")
 | 
						||
        self.mapData[i].Btns = Util.GetGameObject(self.mapData[i].Obj,"Btns")
 | 
						||
        self.mapData[i].BtnsCanvas = self.mapData[i].Btns:GetComponent("Canvas")
 | 
						||
        self.mapData[i].OpenLimit = Util.GetGameObject(self.mapData[i].Title,"OpenLimit")
 | 
						||
        self.mapData[i].limitText = Util.GetGameObject(self.mapData[i].OpenLimit,"OpenLimitText"):GetComponent("Text")
 | 
						||
        self.mapData[i].upgradeImg = Util.GetGameObject(self.mapData[i].Obj,"Updating")
 | 
						||
        self.mapData[i].upgradeImg:SetActive(true)
 | 
						||
        self.mapData[i].updateTime = Util.GetGameObject(self.mapData[i].Obj,"updateTime")
 | 
						||
        self.mapData[i].updateTimeText = Util.GetGameObject(self.mapData[i].updateTime,"updateText"):GetComponent("Text")
 | 
						||
        self.mapData[i].timeSlide = Util.GetGameObject(self.mapData[i].updateTime,"Slide/Image"):GetComponent("Image")
 | 
						||
        self.mapData[i].btnDetail = Util.GetGameObject(self.mapData[i].Btns,"Detail")
 | 
						||
        self.mapData[i].btnUpgrade = Util.GetGameObject(self.mapData[i].Btns,"Upgrade")
 | 
						||
        self.mapData[i].upGradeRed = Util.GetGameObject(self.mapData[i].btnUpgrade,"upGradeRed")
 | 
						||
        self.mapData[i].btnCancel = Util.GetGameObject(self.mapData[i].Btns,"Cancel")
 | 
						||
        self.mapData[i].btnCancel:SetActive(false)
 | 
						||
        self.mapData[i].btnSpeedUp = Util.GetGameObject(self.mapData[i].Btns,"Speed")
 | 
						||
        self.mapData[i].btnUsePri = Util.GetGameObject(self.mapData[i].Btns,"UsePri")
 | 
						||
        self.mapData[i].leftTime = -1
 | 
						||
        self.mapData[i].showTime = -1
 | 
						||
 | 
						||
        self.mapData[i].effect1 = Util.GetGameObject(self.mapData[i].upgradeImg,"c_jianzao")
 | 
						||
        self.mapData[i].effect2 = Util.GetGameObject(self.mapData[i].upgradeImg,"c_shengji")
 | 
						||
        self.mapData[i].effect1:SetActive(false)
 | 
						||
        self.mapData[i].effect2:SetActive(false)
 | 
						||
    end
 | 
						||
 | 
						||
    self.curSelect = 0
 | 
						||
end
 | 
						||
 | 
						||
function HomeLand:BindEvent()
 | 
						||
 | 
						||
    Util.AddClick(self.btnBack, function()
 | 
						||
        PlaySoundWithoutClick(SoundConfig.Sound_UICancel)
 | 
						||
        self:ClosePanel()
 | 
						||
    end)
 | 
						||
    --帮助按钮
 | 
						||
    Util.AddClick(self.helpBtn, function()
 | 
						||
        UIManager.OpenPanel(UIName.HelpPopup, HELP_TYPE.HomeLand, self.helpPosition.x,self.helpPosition.y)
 | 
						||
    end)
 | 
						||
    Util.AddClick(self.Bg, function()
 | 
						||
        self.curSelect = 0
 | 
						||
        for j = 1, 5 do
 | 
						||
            self.mapData[j].Btns:SetActive(false)
 | 
						||
        end
 | 
						||
    end)
 | 
						||
    for i = 1, 5 do
 | 
						||
        --打开菜单
 | 
						||
        Util.AddOnceClick(self.mapData[i].Obj,function ()
 | 
						||
            if self.curSelect ~= i then
 | 
						||
                for j = 1, 5 do
 | 
						||
                    self.mapData[j].Btns:SetActive(false)
 | 
						||
                end
 | 
						||
                self.curSelect = i
 | 
						||
                if HomeLandManager.BuildData[i].dataMain.IsOpen ~= 1 then
 | 
						||
                    PopupTipPanel.ShowTip(string.format("%s 暂未开放",HomeLandManager.BuildData[i].dataMain.Name))
 | 
						||
                    return
 | 
						||
                end
 | 
						||
                if HomeLandConfig[i].UnlockLevel[1] == 2 and HomeLandManager.BuildData[5].level < HomeLandConfig[i].UnlockLevel[2] then
 | 
						||
                    PopupTipPanel.ShowTip(string.format("浮生殿到达%s级开启",HomeLandConfig[i].UnlockLevel[2]))
 | 
						||
                    return
 | 
						||
                end
 | 
						||
                self.mapData[i].Btns:SetActive(true)
 | 
						||
                HomeLandManager.SetButtonPosition(self.mapData[i].Btns)
 | 
						||
                PlayUIAnim(self.mapData[i].Btns)
 | 
						||
            end
 | 
						||
        end)
 | 
						||
        --打开信息界面
 | 
						||
        Util.AddOnceClick(self.mapData[i].btnDetail,function ()
 | 
						||
            UIManager.OpenPanel(UIName.GeneralInfoPopup,GENERALINFO_TYPE.HomeLandBuildingDetail,HomeLandManager.BuildData[i])
 | 
						||
        end)
 | 
						||
        --打开升级界面
 | 
						||
        Util.AddOnceClick(self.mapData[i].btnUpgrade,function ()
 | 
						||
            UIManager.OpenPanel(UIName.GeneralInfoPopup,GENERALINFO_TYPE.HomeLandUpgrade,{HomeLandManager.BuildData[i],self.mapData[i]})
 | 
						||
        end)
 | 
						||
        --打开加速
 | 
						||
        Util.AddOnceClick(self.mapData[i].btnSpeedUp,function ()
 | 
						||
            local value = math.ceil((HomeLandManager.BuildData[i].endTime - GetTimeStamp())/tonumber(costStr[1]))*tonumber(costStr[3])
 | 
						||
            -- LogGreen("需要16:"..tostring(value).." 现有:"..tostring(BagManager.GetTotalItemNum(16)))
 | 
						||
            if BagManager.GetTotalItemNum(16) >= value then
 | 
						||
                MsgPanel.ShowTwo(string.format("是否花费%s妖晶立即升级?",value),function() end,function()
 | 
						||
                    if BagManager.GetTotalItemNum(16) < value then
 | 
						||
                        PopupTipPanel.ShowTip("妖晶不足!")
 | 
						||
                        return
 | 
						||
                    end
 | 
						||
                    NetManager.ArchitectureOperateRequest({HomeLandManager.BuildData[i].dataMain.Id},2,0,function ()
 | 
						||
                        self.mapData[i].leftTime = -1
 | 
						||
                        PopupTipPanel.ShowTip(string.format("<color=#1CC853>%s</color>已升级至<color=#1CC853>%s</color>级",HomeLandManager.BuildData[i].dataMain.Name,HomeLandManager.BuildData[i].dataSingle.level))
 | 
						||
                        --特效
 | 
						||
                        self.mapData[i].effect2:SetActive(true)
 | 
						||
                        Timer.New(function ()
 | 
						||
                            self.mapData[i].effect2:SetActive(false)
 | 
						||
                        end,1):Start()
 | 
						||
                        NetManager.HomeInfoRequest(function ()
 | 
						||
                            self:OnShow()
 | 
						||
                        end)
 | 
						||
                    end)
 | 
						||
                end,"取消","确定")
 | 
						||
            else
 | 
						||
                PopupTipPanel.ShowTip("妖晶不足!")
 | 
						||
            end
 | 
						||
        end)
 | 
						||
        --特权加速
 | 
						||
        Util.AddOnceClick(self.mapData[i].btnUsePri,function ()
 | 
						||
            local level = HomeLandManager.BuildData[i].dataSingle.level
 | 
						||
            NetManager.ArchitectureOperateRequest({HomeLandManager.BuildData[i].dataMain.Id},4,4021,function ()
 | 
						||
                PrivilegeManager.RefreshPrivilegeUsedTimes(4021,1)
 | 
						||
                self.mapData[i].leftTime = -1
 | 
						||
                if level ~= HomeLandManager.BuildData[i].dataSingle.level then
 | 
						||
                    PopupTipPanel.ShowTip(string.format("<color=#1CC853>%s</color>已升级至<color=#1CC853>%s</color>级",HomeLandManager.BuildData[i].dataMain.Name,HomeLandManager.BuildData[i].dataSingle.level))
 | 
						||
                end
 | 
						||
                --特效
 | 
						||
                self.mapData[i].effect2:SetActive(true)
 | 
						||
                Timer.New(function ()
 | 
						||
                    self.mapData[i].effect2:SetActive(false)
 | 
						||
                end,1):Start()
 | 
						||
                NetManager.HomeInfoRequest(function ()
 | 
						||
                    self:OnShow()
 | 
						||
                end)
 | 
						||
            end)
 | 
						||
        end)
 | 
						||
        --取消
 | 
						||
        -- Util.AddOnceClick(self.mapData[i].btnCancel,function ()
 | 
						||
        --     NetManager.ArchitectureOperateRequest({HomeLandManager.BuildData[i].dataMain.Id},3,0,function ()
 | 
						||
        --         self:OnShow()
 | 
						||
        --     end)
 | 
						||
        -- end)
 | 
						||
    end
 | 
						||
    --建木神树
 | 
						||
    Util.AddOnceClick(self.mapData[7].Obj,function ()
 | 
						||
        if ActTimeCtrlManager.SingleFuncState(FUNCTION_OPEN_TYPE.SACREDTREE) then
 | 
						||
            UIManager.OpenPanel(UIName.SacredTreePanel)
 | 
						||
        end
 | 
						||
    end)
 | 
						||
    --摘星阁
 | 
						||
    Util.AddOnceClick(self.mapData[6].Obj,function ()
 | 
						||
        if HomeLandManager.BuildData[6].dataMain.IsOpen ~= 1 then
 | 
						||
            PopupTipPanel.ShowTip(string.format("%s 暂未开放",HomeLandManager.BuildData[6].dataMain.Name))
 | 
						||
            return
 | 
						||
        end
 | 
						||
        if HomeLandConfig[6].UnlockLevel[1] == 2 and HomeLandManager.BuildData[5].level < HomeLandConfig[6].UnlockLevel[2] then
 | 
						||
            PopupTipPanel.ShowTip(string.format("浮生殿到达%s级开启",HomeLandConfig[6].UnlockLevel[2]))
 | 
						||
            return
 | 
						||
        end
 | 
						||
        -- UIManager.OpenPanel(UIName.GeneralPopup,GENERAL_POPUP_TYPE.HomeLandEquip)
 | 
						||
        UIManager.OpenPanel(UIName.HomeLandEquipPopup)
 | 
						||
    end)
 | 
						||
 | 
						||
    --产出详情框
 | 
						||
    Util.AddClick(self.maskBtn, function()
 | 
						||
        bool = false
 | 
						||
        self.maskBtn:SetActive(bool)
 | 
						||
        self:SetDetailBar()
 | 
						||
    end)
 | 
						||
    Util.AddClick(self.Btn, function()
 | 
						||
        bool = not bool
 | 
						||
        self:SetDetailBar()
 | 
						||
    end)
 | 
						||
    --一键收获
 | 
						||
    Util.AddClick(self.oneKey, function()
 | 
						||
        local time  = GetTimeStamp()
 | 
						||
        local count1 = 0--是否到达可收取的时间
 | 
						||
        local count2 = 0
 | 
						||
        for i = 1, 4 do
 | 
						||
            local curObjData = self.mapData[i].data
 | 
						||
            -- LogGreen("curObjData:"..tostring(curObjData.dataSingle.Id))
 | 
						||
            local remainTime = time - curObjData.startTime
 | 
						||
            if remainTime < 60 then
 | 
						||
                count1 = count1 + 1--时间不够
 | 
						||
            end
 | 
						||
            if curObjData.dataSingle.Storage and curObjData.dataSingle.Storage[2][1] ~= 14 and curObjData.dataSingle.Storage[2][2] <= BagManager.GetTotalItemNum(curObjData.dataSingle.Storage[2][1]) then
 | 
						||
                count2 = count2 + 1--容量不够
 | 
						||
            end
 | 
						||
        end
 | 
						||
        if count1 == 4 then
 | 
						||
            PopupTipPanel.ShowTip("当前无资源可收取,请耐心等待~")
 | 
						||
            return
 | 
						||
        end
 | 
						||
        if count2 == 4 then
 | 
						||
            PopupTipPanel.ShowTip("资源已达储藏上限,无法收获~")
 | 
						||
            return
 | 
						||
        elseif count2 == 0 then
 | 
						||
            --全部都可以收取
 | 
						||
        else
 | 
						||
            local thread=coroutine.start(function()
 | 
						||
                for i = 1, 4 do
 | 
						||
                    local curObjData = self.mapData[i].data
 | 
						||
                    LogRedTable(curObjData.dataSingle.Storage)
 | 
						||
                    if curObjData.dataSingle.Storage and  curObjData.dataSingle.Storage[2][1] ~= 14 and curObjData.dataSingle.Storage[2][2]~=0 and curObjData.dataSingle.Storage[2][2] <= BagManager.GetTotalItemNum(curObjData.dataSingle.Storage[2][1]) then
 | 
						||
                        LogError("curObjData.dataSingle.Storage[2][2]=="..curObjData.dataSingle.Storage[2][1].."      "..BagManager.GetTotalItemNum(curObjData.dataSingle.Storage[2][1]))
 | 
						||
                        PopupTipPanel.ShowTip(string.format("%s已达储藏上限,无法收获~",ItemConfig[curObjData.dataSingle.Storage[2][1]].Name))
 | 
						||
                    end
 | 
						||
                    coroutine.wait(0.1)
 | 
						||
                end
 | 
						||
            end)
 | 
						||
        end
 | 
						||
 | 
						||
        NetManager.HomeAllGainRequset(0,function ()
 | 
						||
            self:OnShow()
 | 
						||
        end)
 | 
						||
    end)
 | 
						||
    --特权卡
 | 
						||
    Util.AddClick(self.Privi, function()
 | 
						||
        UIManager.OpenPanel(UIName.GeneralInfoPopup,GENERALINFO_TYPE.HomeLandPrivilege)
 | 
						||
    end)
 | 
						||
    
 | 
						||
    Util.AddClick(self.PriviBtn, function()
 | 
						||
        UIManager.OpenPanel(UIName.GeneralInfoPopup,GENERALINFO_TYPE.HomeLandPrivilege)
 | 
						||
    end)
 | 
						||
    --右侧按钮们
 | 
						||
    Util.AddClick(self.taskBtn, function()
 | 
						||
        MonsterCampManager.preType = 5
 | 
						||
        UIManager.OpenPanel(UIName.TrialRewardPopup,HomeLandManager.SetRewardData(),function(id,rewardFunc) 
 | 
						||
            NetManager.TakeMissionRewardRequest(TaskTypeDef.HomeLandTask,id, function(msg)
 | 
						||
                UIManager.OpenPanel(UIName.RewardItemPopup,msg.drop,1,function ()
 | 
						||
                    if rewardFunc then
 | 
						||
                        rewardFunc()
 | 
						||
                    end
 | 
						||
                end)
 | 
						||
            end)
 | 
						||
        end,5)
 | 
						||
    end)
 | 
						||
 | 
						||
end
 | 
						||
 | 
						||
function HomeLand:AddListener()
 | 
						||
    Game.GlobalEvent:AddEvent(GameEvent.UI.OnUpdateData, self.OnShow,self)
 | 
						||
    Game.GlobalEvent:AddEvent(GameEvent.Bag.BagGold, self.OnShow,self)
 | 
						||
    Game.GlobalEvent:AddEvent(GameEvent.Privilege.OnPrivilegeZeroUpdate, self.OnShow,self)
 | 
						||
end
 | 
						||
 | 
						||
function HomeLand:RemoveListener()
 | 
						||
    Game.GlobalEvent:RemoveEvent(GameEvent.UI.OnUpdateData, self.OnShow,self)
 | 
						||
    Game.GlobalEvent:RemoveEvent(GameEvent.Bag.BagGold, self.OnShow,self)
 | 
						||
    Game.GlobalEvent:RemoveEvent(GameEvent.Privilege.OnPrivilegeZeroUpdate, self.OnShow,self)
 | 
						||
end
 | 
						||
 | 
						||
--待功能扩展(试图打开某个状态)
 | 
						||
function HomeLand:OnOpen()
 | 
						||
    self.UpView:OnOpen({ showType = UpViewOpenType.ShowLeft, panelType = PanelType.HomeLand })
 | 
						||
end
 | 
						||
 | 
						||
 | 
						||
function HomeLand:OnSortingOrderChange()
 | 
						||
    for i = 1, 7 do
 | 
						||
        local curObj = self.mapData[i]
 | 
						||
        Util.SetParticleSortLayer(curObj.effect1,self.sortingOrder + 1)
 | 
						||
        Util.SetParticleSortLayer(curObj.effect2,self.sortingOrder + 1)
 | 
						||
        curObj.BtnsCanvas.overrideSorting = true
 | 
						||
        curObj.BtnsCanvas.sortingOrder = self.sortingOrder + 2
 | 
						||
    end
 | 
						||
    SetParticleSortLayer(self.PriviBtn,self.sortingOrder+2)
 | 
						||
end
 | 
						||
 | 
						||
function HomeLand:OnShow()
 | 
						||
    self.curSelect = 0
 | 
						||
    for j = 1, 5 do
 | 
						||
        self.mapData[j].Btns:SetActive(false)
 | 
						||
    end
 | 
						||
    HomeLandManager.CheckPrivilege()
 | 
						||
    self:SetBuildsState()
 | 
						||
    self:SetTime()
 | 
						||
    self:InitDetailBar()
 | 
						||
    self:SetRedPoint()
 | 
						||
    self.Privi:SetActive(false)
 | 
						||
    self.PriviBtn:SetActive(false)
 | 
						||
end
 | 
						||
 | 
						||
--初始化详细信息列表
 | 
						||
function HomeLand:InitDetailBar()
 | 
						||
    local targetPos = bool and Vector3.zero or Vector3.New(863,-722,0)
 | 
						||
    self.Kuang:GetComponent("RectTransform").localPosition = targetPos
 | 
						||
    self.maskBtn:SetActive(bool)
 | 
						||
 | 
						||
    for key, value in pairs(self.preList1) do
 | 
						||
        value:SetActive(false)
 | 
						||
    end
 | 
						||
    for key, value in pairs(self.preList2) do
 | 
						||
        value:SetActive(false)
 | 
						||
    end
 | 
						||
    for i = 1, 7 do
 | 
						||
        local data = HomeLandManager.BuildData[i]
 | 
						||
        if data.dataMain.Type == 1 and data.startTime > 0 then
 | 
						||
            --进度条部分
 | 
						||
            if data.dataSingle.Gain[1] ~= 14 and data.dataSingle.Storage[2][2]~=0 then
 | 
						||
                local go = self.preList1[i]
 | 
						||
                if not go then
 | 
						||
                    go = newObjToParent(self.progressPre,self.progress.transform)
 | 
						||
                    self.preList1[i] = go
 | 
						||
                end
 | 
						||
                go:SetActive(true)
 | 
						||
                local icon = Util.GetGameObject(go,"Icon"):GetComponent("Image")
 | 
						||
                local num = Util.GetGameObject(go,"Num"):GetComponent("Text")
 | 
						||
                local slider = Util.GetGameObject(go,"Slide/Image"):GetComponent("Image")
 | 
						||
 | 
						||
                icon.sprite = self.spLoader:LoadSprite(GetSpriteNameByItemId(data.dataSingle.Gain[1]))
 | 
						||
                local value = data.dataSingle.Storage[2][2]/100000 > 10 and math.floor(data.dataSingle.Storage[2][2]/10000).."万" or data.dataSingle.Storage[2][2]
 | 
						||
                num.text = string.format("%s/%s",BagManager.GetTotalItemNum(data.dataSingle.Storage[2][1]),value)
 | 
						||
                slider.fillAmount = BagManager.GetTotalItemNum(data.dataSingle.Storage[2][1])/data.dataSingle.Storage[2][2]
 | 
						||
            end
 | 
						||
 | 
						||
            --数值部分
 | 
						||
            local go2 = self.preList2[i]
 | 
						||
            if not go2 then
 | 
						||
                go2 = newObjToParent(self.detailPre,self.detail.transform)
 | 
						||
                self.preList2[i] = go2
 | 
						||
            end
 | 
						||
            go2:SetActive(true)
 | 
						||
            local icon = Util.GetGameObject(go2,"Icon"):GetComponent("Image")
 | 
						||
            local num = Util.GetGameObject(go2,"Num"):GetComponent("Text")
 | 
						||
 | 
						||
            icon.sprite = self.spLoader:LoadSprite(GetSpriteNameByItemId(data.dataSingle.Gain[1]))
 | 
						||
            --local v = ConfigManager.GetConfigData(ConfigName.PrivilegeTypeConfig,4022).Condition[1][2]/10000-1
 | 
						||
            local lv=GetShenzunLv()
 | 
						||
            local v = ConfigManager.GetConfigData(ConfigName.PrivilegeTypeConfig,4022).Condition[lv+1][2]/10000-1
 | 
						||
           -- local priValue = HomeLandManager.activePrivilege and string.format("<color=#1CC853>+%s</color>",math.ceil(data.dataSingle.Gain[2]*v)) or ""
 | 
						||
           local priValue = string.format("<color=#1CC853>+%s</color>",math.ceil(data.dataSingle.Gain[2]*v))
 | 
						||
            num.text = string.format("%s产量:%s %s/分钟",ItemConfig[data.dataSingle.Gain[1]].Name,data.dataSingle.Gain[2],priValue)
 | 
						||
        end
 | 
						||
    end
 | 
						||
 | 
						||
end
 | 
						||
--详细信息列表的移动
 | 
						||
function HomeLand:SetDetailBar()
 | 
						||
    self.maskBtn:SetActive(bool)
 | 
						||
    local targetPos = bool and Vector3.New(216,-722,0) or Vector3.New(863,-722,0)
 | 
						||
    local rotation = bool and Vector3.New(0,180,0) or Vector3.zero 
 | 
						||
    self.Kuang.transform:DOLocalMove(targetPos, 0.8)
 | 
						||
    self.BtnImage.transform:DORotate(rotation,0.8)
 | 
						||
end
 | 
						||
 | 
						||
--设置地图内建筑信息
 | 
						||
function HomeLand:SetBuildsState()
 | 
						||
    for i = 1, 7 do
 | 
						||
        local data = HomeLandManager.BuildData[i]
 | 
						||
        local curObj = self.mapData[i]
 | 
						||
        curObj.data = HomeLandManager.BuildData[i]
 | 
						||
        curObj.OpenLimit:SetActive(true)
 | 
						||
        curObj.Lock:SetActive(true)
 | 
						||
        curObj.btnUpgrade:SetActive(false)
 | 
						||
        -- curObj.btnCancel:SetActive(false)
 | 
						||
        curObj.btnSpeedUp:SetActive(false)
 | 
						||
        curObj.btnUsePri:SetActive(false)
 | 
						||
        curObj.levelImg:SetActive(false)
 | 
						||
        Util.SetGray(curObj.NameImg,true)
 | 
						||
        curObj.effect1:SetActive(false)
 | 
						||
        curObj.updateTime:SetActive(false)
 | 
						||
        curObj.CanGet:SetActive(false)
 | 
						||
        Util.SetParticleSortLayer(curObj.effect1,self.sortingOrder + 1)
 | 
						||
        Util.SetParticleSortLayer(curObj.effect2,self.sortingOrder + 1)
 | 
						||
        curObj.BtnsCanvas.overrideSorting = true
 | 
						||
        curObj.BtnsCanvas.sortingOrder = self.sortingOrder + 2
 | 
						||
        if data.dataMain.IsOpen == 1 then--部分建筑未进入版本显示未开放
 | 
						||
            --如果主城未到等级,显示开启条件
 | 
						||
            if HomeLandConfig[i].UnlockLevel[1] == 1 and PlayerManager.level < HomeLandConfig[i].UnlockLevel[2] then
 | 
						||
                curObj.limitText.text = string.format("玩家等级到达%s级开启",HomeLandConfig[i].UnlockLevel[2])
 | 
						||
            elseif HomeLandConfig[i].UnlockLevel[1] == 2 and HomeLandManager.BuildData[5].level < HomeLandConfig[i].UnlockLevel[2] then
 | 
						||
                curObj.limitText.text = string.format("浮生殿到达%s级开启",HomeLandConfig[i].UnlockLevel[2])
 | 
						||
            elseif HomeLandConfig[i].UnlockLevel[1] == 3 and PlayerManager.level < GlobalSystemConfig[HomeLandConfig[i].UnlockLevel[2]].OpenRules[2] then
 | 
						||
                curObj.limitText.text = string.format("玩家等级到达%s级开启",GlobalSystemConfig[HomeLandConfig[i].UnlockLevel[2]].OpenRules[2])
 | 
						||
            else
 | 
						||
                curObj.OpenLimit:SetActive(false)
 | 
						||
                curObj.Lock:SetActive(false)
 | 
						||
                Util.SetGray(curObj.NameImg,false)
 | 
						||
                if data.dataSingle then
 | 
						||
                    curObj.level.text = string.format("%s级",data.dataSingle.level)
 | 
						||
                    curObj.levelImg:SetActive(true)
 | 
						||
                end
 | 
						||
            end
 | 
						||
            if data.dataSingle then
 | 
						||
                if data.dataSingle.Gain then--有产出的才需要icon
 | 
						||
                    curObj.Icon.sprite = self.spLoader:LoadSprite(GetSpriteNameByItemId(data.dataSingle.Gain[1]))
 | 
						||
                    if not curObj.OpenLimit.activeInHierarchy then
 | 
						||
                        curObj.showTime = data.startTime + 60
 | 
						||
                        curObj.CanGet:SetActive(data.startTime + 60 < GetTimeStamp())
 | 
						||
                        PlayUIAnim(curObj.CanGet)
 | 
						||
                    end
 | 
						||
                end
 | 
						||
                if data.endTime > GetTimeStamp() then--如果有结束时间说明在升级,可以取消,可以加速
 | 
						||
                    -- curObj.btnCancel:SetActive(true)
 | 
						||
                    curObj.btnSpeedUp:SetActive(true)
 | 
						||
                    curObj.btnUsePri:SetActive(PrivilegeManager.GetPrivilegeRemainValue(4021)>0)
 | 
						||
                    curObj.effect1:SetActive(true)
 | 
						||
                    curObj.updateTime:SetActive(true)
 | 
						||
                    curObj.leftTime = data.endTime - GetTimeStamp() >= 0 and data.endTime - GetTimeStamp() or -1
 | 
						||
                    curObj.updateTimeText.text = TimeToFelaxible(curObj.leftTime)
 | 
						||
                    curObj.timeSlide.fillAmount = (data.dataSingle.Time-curObj.leftTime)/data.dataSingle.Time
 | 
						||
                    -- PlayUIAnim(curObj.upgradeImg)
 | 
						||
                else--如果没有就是可以点击升级
 | 
						||
                    if data.dataSingle.Cost then
 | 
						||
                        -- LogGreen("Name:"..tostring(data.dataSingle.Name).." cost:"..tostring(data.dataSingle.Cost[1][1]).."#"..data.dataSingle.Cost[1][2])
 | 
						||
                        curObj.btnUpgrade:SetActive(true)
 | 
						||
                    end
 | 
						||
                end
 | 
						||
            end
 | 
						||
        else
 | 
						||
            curObj.limitText.text = "暂未开放"
 | 
						||
        end
 | 
						||
 | 
						||
        Util.AddOnceClick(curObj.CanGet,function ()
 | 
						||
            if data.dataSingle.Storage[2][1] ~= 14 and data.dataSingle.Storage[2][2]~=0 and data.dataSingle.Storage[2][2] <= BagManager.GetTotalItemNum(data.dataSingle.Storage[2][1]) then
 | 
						||
                PopupTipPanel.ShowTip("当前资源已达库存上限,提升建筑等级可增加库存上限!")
 | 
						||
                return
 | 
						||
            end
 | 
						||
            NetManager.HomeAllGainRequset(data.dataMain.Id,function ()
 | 
						||
                self:OnShow()
 | 
						||
            end)
 | 
						||
        end)
 | 
						||
    end
 | 
						||
end
 | 
						||
 | 
						||
--时间
 | 
						||
function HomeLand:SetTime()
 | 
						||
    if self.timer then
 | 
						||
        self.timer:Stop()
 | 
						||
        self.timer = nil
 | 
						||
    end
 | 
						||
    Util.SetGray(self.Privi,not HomeLandManager.activePrivilege)
 | 
						||
    self.timer = Timer.New(function ()
 | 
						||
        for i = 1, 7 do
 | 
						||
            local curObj = self.mapData[i]
 | 
						||
            curObj.updateTime:SetActive(curObj.leftTime >= 0)
 | 
						||
            if curObj.leftTime >= 0 then    
 | 
						||
                curObj.updateTimeText.text = TimeToFelaxible(curObj.leftTime)
 | 
						||
                curObj.leftTime = curObj.leftTime -1
 | 
						||
                curObj.timeSlide.fillAmount = (curObj.data.dataSingle.Time-curObj.leftTime)/curObj.data.dataSingle.Time
 | 
						||
                if curObj.leftTime < 0 then
 | 
						||
                    curObj.effect2:SetActive(true)
 | 
						||
                    NetManager.HomeInfoRequest(function ()
 | 
						||
                        self:OnShow()
 | 
						||
                        if UIManager.IsOpen(UIName.MsgPanel) then
 | 
						||
                            UIManager.ClosePanel(UIName.MsgPanel)
 | 
						||
                        end
 | 
						||
                        PopupTipPanel.ShowTip(string.format("<color=#1CC853>%s</color>已升级至<color=#1CC853>%s</color>级",curObj.data.dataMain.Name,curObj.data.dataSingle.level))
 | 
						||
                        Timer.New(function ()
 | 
						||
                            curObj.effect2:SetActive(false)
 | 
						||
                        end,1):Start()
 | 
						||
                    end)
 | 
						||
                end
 | 
						||
            end
 | 
						||
            curObj.CanGet:SetActive(curObj.showTime > 0 and curObj.showTime < GetTimeStamp())
 | 
						||
            if curObj.showTime > 0 then
 | 
						||
                local bool = (GetTimeStamp() - curObj.data.startTime)/60*curObj.data.dataSingle.Gain[2] >= curObj.data.dataSingle.Storage[1][2]
 | 
						||
                local img = bool and "f_fushengmeni_qipaohuang" or "f_fushengmeni_qipao"
 | 
						||
                curObj.CanGet:GetComponent("Image").sprite = self.spLoader:LoadSprite(img)
 | 
						||
            end
 | 
						||
        end
 | 
						||
        --self.priviDi:SetActive(HomeLandManager.activePrivilege)
 | 
						||
        --self.PriviBtn:SetActive(not HomeLandManager.activePrivilege)
 | 
						||
        --Util.SetGray(self.Privi,not HomeLandManager.activePrivilege)
 | 
						||
        local leftTime = PrivilegeManager.GetPrivilegeLeftTimeById(4022)
 | 
						||
        --self.priviText.text= Language[10469]..GetLeftTimeStrByDeltaTime(leftTime)
 | 
						||
        --self.priviText.text = string.format("今日剩余:%s",HomeLandManager.priviLeftTime)
 | 
						||
    end, 1, -1, true)
 | 
						||
    self.timer:Start()
 | 
						||
end
 | 
						||
 | 
						||
function HomeLand:SetRedPoint()
 | 
						||
    for i = 1, 5 do
 | 
						||
        self.mapData[i].RedPoint:SetActive(HomeLandManager.singleGet(i) or HomeLandManager.singleUpgrade(i))
 | 
						||
        self.mapData[i].upGradeRed:SetActive(HomeLandManager.singleUpgrade(i))
 | 
						||
    end
 | 
						||
    self.mapData[6].RedPoint:SetActive(HomeLandManager.CheckEquipUpgrade())
 | 
						||
    self.taskRed:SetActive(HomeLandManager.CheckMission())
 | 
						||
end
 | 
						||
 | 
						||
function HomeLand:OnClose()
 | 
						||
    self.curSelect = 0
 | 
						||
    bool = false
 | 
						||
    for j = 1, 5 do
 | 
						||
        self.mapData[j].Btns:SetActive(false)
 | 
						||
    end
 | 
						||
end
 | 
						||
 | 
						||
function HomeLand:OnDestroy()
 | 
						||
    self.spLoader:Destroy()
 | 
						||
    SubUIManager.Close(self.UpView)
 | 
						||
    self.UpView = nil
 | 
						||
    if self.timer then
 | 
						||
        self.timer:Stop()
 | 
						||
        self.timer = nil
 | 
						||
    end
 | 
						||
    -- if self.playerInfoView then
 | 
						||
    --     SubUIManager.Close(self.playerInfoView)
 | 
						||
    --     self.playerInfoView = nil
 | 
						||
    -- end
 | 
						||
end
 | 
						||
 | 
						||
return HomeLand |