123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276 |
- ---@class KLGoldChallengeItem:UIKmlLuaPanelBase
- ---@field view KLGoldChallengeItemView
- ---@field data {k:number,v:number}
- ---@field monsterCfg cfg_monster_column
- ---@field taskCfg cfg_task_gold_column
- ---@field glodBossRewarditem KLGoldChallengeRewardItem[]
- local KLGoldChallengeItem = class(UIKmlLuaPanelBase)
- local this = KLGoldChallengeItem
- ---创建时调用一次
- function this:Init()
- self.starList = {}
- self.itemList = {}
- self.itemRewards = {}
- GUI:DataListInitData(self.view.itemRoot, function()
- return self:GoldBossDataListItemCountFunc()
- end, function(realIndex)
- return self:GoldBossDataListItemGetFunc(realIndex)
- end, function(realIndex, kmlcontrol)
- return self:GoldBossDataListItemInitFunc(realIndex, kmlcontrol)
- end, function(realIndex, kmlcontrol)
- return self:GoldBossDataListItemUpdateFunc(realIndex, kmlcontrol)
- end)
- self.glodBossRewarditem = {}
- end
- function this:InitData(index, data)
- self.index = index
- self.data = data
- end
- ---创建或者刷新界面数据时调用
- function this:Refresh()
- end
- function this:RefreshUI()
- if self.timer then
- ---Timer.Stop(self.timer)
- SL:UnSchedule(self.timer)
- self.timer = nil
- end
- GUI:SetImageAlpha(self.view.btnEffect, 1, 1, 1, 1)
- if self.data then
- self.taskCfg = SL:GetConfig("cfg_task_gold", tonumber(self.data.k))
- if self.data.v == 1 then
- self.itemRewards = self.taskCfg.rewardItem1
- elseif self.data.v == 2 then
- self.itemRewards = self.taskCfg.rewardItem2
- elseif self.data.v == 3 then
- self.itemRewards = self.taskCfg.rewardItem3
- end
- self.monsterCfg = SL:GetConfig("cfg_monster", self.taskCfg.monsterId)
- GUI:Text_setString(self.view.textName, self.monsterCfg.name .. string.format("<size=16> %s级</size>", self.monsterCfg.level))
- GUI:Text_setString(self.view.textMap, "所在地图:" .. self.taskCfg.mapName)
- local str = ""
- str = string.format("<color=%s>%s/%s</color>", EColor[EGradColor.red], 0, self.taskCfg.taskGoalNum[self.data.v])
- GUI:Text_setString(self.view.textTask, string.format("任务数量:%s", str))
- GUI:setPositionZ(self.view.textRoot, -300)
- GUI:setPositionZ(self.view.starGrid, -300)
- GUI:Button_setGrey(self.view.btnGetTask, false)
- if InfoManager.goldChallengeTaskInfo.taskInfo.nowtask then
- ---当前任务
- if InfoManager.goldChallengeTaskInfo.taskInfo.nowtask.taskid == self.data.k then
- ---@type GoldChallengeTaskEnum
- local status = InfoManager.goldChallengeTaskInfo.taskInfo.nowtask.status
- if status == GoldChallengeTaskEnum.Accept then
- GUI:setVisible(self.view.getTaskBtnRoot, true)
- GUI:setVisible(self.view.btnSubmit, false)
- local str = ""
- if InfoManager.goldChallengeTaskInfo.taskInfo.nowtask.progress >= self.taskCfg.taskGoalNum[self.data.v] then
- str = string.format("<color=%s>%s/%s</color>", EColor[EGradColor.green], InfoManager.goldChallengeTaskInfo.taskInfo.nowtask.progress, self.taskCfg.taskGoalNum[self.data.v])
- else
- str = string.format("<color=%s>%s/%s</color>", EColor[EGradColor.red], InfoManager.goldChallengeTaskInfo.taskInfo.nowtask.progress, self.taskCfg.taskGoalNum[self.data.v])
- end
- GUI:Text_setString(self.view.textTask, string.format("任务数量:%s", str))
- elseif status == GoldChallengeTaskEnum.Finish then
- GUI:setVisible(self.view.getTaskBtnRoot, false)
- GUI:setVisible(self.view.btnSubmit, true)
- local str = string.format("<color=%s>%s/%s</color>", EColor[EGradColor.green], self.taskCfg.taskGoalNum[self.data.v], self.taskCfg.taskGoalNum[self.data.v])
- GUI:Text_setString(self.view.textTask, string.format("任务数量:%s", str))
- ---开启一个计时器用于闪烁
- if not self.timer then
- self.timer = SL:StartLoopForever(0.5, self.RefreshBtn, self) ---Timer.StartLoopForever(0.5, self.RefreshBtn, self)
- end
- self.nowAlpha = 1
- elseif status == GoldChallengeTaskEnum.submit then
- end
- GUI:setVisible(self.view.btnGetTask, false)
- else --不是当前任务要置灰
- GUI:setVisible(self.view.btnSubmit, false)
- GUI:setVisible(self.view.getTaskBtnRoot, false)
- GUI:setVisible(self.view.btnGetTask, true)
- GUI:Button_setGrey(self.view.btnGetTask, true)
- end
- else
- GUI:setVisible(self.view.btnSubmit, false)
- GUI:setVisible(self.view.getTaskBtnRoot, false)
- GUI:setVisible(self.view.btnGetTask, true)
- end
- GUI:setVisible(self.view.frame_2, false)
- GUI:setVisible(self.view.frame_3, false)
- if self.data.v == 2 then
- GUI:setVisible(self.view.frame_2, true)
- elseif self.data.v == 3 then
- GUI:setVisible(self.view.frame_3, true)
- end
- self:InitModel()
- --self:InitRewards()
- GUI:DataListUpdateData(self.view.itemRoot)
- self:InitStar()
- end
- end
- function this:InitModel()
- --SL:CrateMonsterModel(self.view.model.rectTransform,10001,{1,1,1})
- local appr = self.monsterCfg.appr
- local path = SL:GetConfigMultiKeys('cfg_model_monster', appr, 'id').path
- GUI:Model_setSrc(self.view.model1, path)
- end
- function this:GoldBossDataListItemCountFunc()
- return #self.itemRewards
- end
- function this:GoldBossDataListItemGetFunc(realIndex)
- local item = GUI:UIPanel_Open("dev/outui/Activity/Item/KLGoldChallengeReward/KLGoldChallengeRewardItem", self.view.itemRoot, self, {}, true)
-
- self.glodBossRewarditem[item.view.root] = item
- return item.view.root
- end
- function this:GoldBossDataListItemInitFunc(realIndex, kmlcontrol)
- end
- function this:GoldBossDataListItemUpdateFunc(realIndex, kmlcontrol)
- self.glodBossRewarditem[kmlcontrol]:RefreshItem(self.itemRewards[realIndex + 1])
- end
- function this:InitRewards(realIndex)
- local itemRewards = {}
- if self.data.v == 1 then
- itemRewards = self.taskCfg.rewardItem1
- elseif self.data.v == 2 then
- itemRewards = self.taskCfg.rewardItem2
- elseif self.data.v == 3 then
- itemRewards = self.taskCfg.rewardItem3
- end
- if #self.itemList >= #itemRewards then
- for i = 1, #self.itemList do
- if i <= #itemRewards then
- GUI:setVisible(self.itemList[i], true)
- else
- GUI:setVisible(self.itemList[i], false)
- end
- end
- else
- for i = #self.itemList + 1, #itemRewards do
- local itemId = itemRewards[i][1]
- local item = GUI:Item_Create(self.view.itemRoot, {
- width = "50",
- height = "50",
- itemid = itemId,
- mfixsize = "80,80",
- tips = "1",
- itemcustomcount = itemRewards[i][2]
- })
- GUI:AddOnClickEvent(item, self, function()
- SL:OpenTips(nil, itemId)
- end)
- table.insert(self.itemList, item)
- end
- for i = 1, #self.itemList do
- if i <= #itemRewards then
- GUI:setVisible(self.itemList[i], true)
- else
- GUI:setVisible(self.itemList[i], false)
- end
- end
- end
- end
- function this:InitStar()
- if #self.starList > 0 then
- for i = 1, 3 do
- if i <= self.data.v then
- GUI:setVisible(self.starList[i], true)
- else
- GUI:setVisible(self.starList[i], false)
- end
- end
- else
- for i = 1, 3 do
- local star = GUI:Image_Create(self.view.starGrid, {
- id = "star" .. i,
- atlas = "Atlas/UIGoldChallenge.spriteatlas",
- src = "star",
- width = "35",
- height = "35",
- })
- table.insert(self.starList, star)
- end
- for i = 1, 3 do
- if i <= self.data.v then
- GUI:setVisible(self.starList[i], true)
- else
- GUI:setVisible(self.starList[i], false)
- end
- end
- end
- end
- ---注册UI事件和服务器消息
- function this:RegistEvents()
- GUI:AddOnClickEvent(self.view.btnGo, self, self.OnClickGoTask)
- GUI:AddOnClickEvent(self.view.btnAbandon, self, self.OnClickAbandonTask)
- GUI:AddOnClickEvent(self.view.btnGetTask, self, self.OnClickGetTask)
- GUI:AddOnClickEvent(self.view.btnSubmit, self, self.OnClickSubmitTask)
- end
- ---前往任务
- function this:OnClickGoTask()
- --SL:ShortcutDO(self.taskCfg.instruction[1], nil, nil, function()
- -- --AutoFightManager.StartAutoFight()
- --end)
- GUI:UIPanel_Close("dev/outui/Activity/Panel/KLGoldChallenge/KLGoldChallengePanel")
- local type = SL:GetConfigMultiKeys('cfg_BOSS_challenge', self.monsterCfg.id, 'monsterid').monsterType
- GUI:UIPanel_Open("dev/outui/ChallengeBoss/Panel/KLChallengeBoss/KLChallengeBossPanel",nil,
- nil,{monsterId = self.monsterCfg.id,monsterType = type })
- end
- ---放弃任务
- function this:OnClickAbandonTask()
- --[[ local message = {
- title = "提示",
- showTips = "当前任务进度将会被清空,是否确认放弃",
- callback = function()
- SL:SendLuaNetMsg(LuaMessageIdToSever.GIVE_UP_GOLD_TASK, self.data.k)
- end
- }]]
- SL:CommonTipsMessage({ title = "提示", stringTblID=208,
- callback = function()
- SL:SendLuaNetMsg(LuaMessageIdToSever.GIVE_UP_GOLD_TASK, self.data.k)
- end
- })
- end
- ---领取任务
- function this:OnClickGetTask()
- SL:SendLuaNetMsg(LuaMessageIdToSever.ACCEPT_GOLD_TASK, self.data.k)
- end
- ---提交任务
- function this:OnClickSubmitTask()
- SL:SendLuaNetMsg(LuaMessageIdToSever.SUBMIT_GOLD_TASK, self.data.k)
- end
- function this:RefreshBtn()
- if self.nowAlpha == 1 then
- self.nowAlpha = 0.8
- else
- self.nowAlpha = 1
- end
- GUI:SetImageAlpha(self.view.btnEffect, 1, 1, 1, self.nowAlpha)
- end
- function this:Close()
- self.starList = {}
- if self.timer then
- ---Timer.Stop(self.timer)
- SL:UnSchedule(self.timer)
- self.timer = nil
- end
- end
- return this
|