123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185 |
- ---@class KLUIEfficiencyPanel:UIKmlLuaPanelBase
- ---@field view KLUIEfficiencyPanelView
- local KLUIEfficiencyPanel = class(UIKmlLuaPanelBase)
- local this = KLUIEfficiencyPanel
- ---创建时调用一次
- function this:Init()
- self.dataEfficiencyInfo = InfoManager.efficiencyInfo
- GUI:SetToggleGroup(self.view.MultiplierToggle,self.view.togglegroup)
- GUI:SetToggleGroup(self.view.PickupToggle,self.view.togglegroup)
- GUI:SetToggleGroup(self.view.ExplosionRateToggle,self.view.togglegroup)
- --GUI:SetToggleGroup(self.view.MiracleCoinsToggle,self.view.togglegroup)
- end
- ---创建或者刷新界面数据时调用
- function this:Refresh()
- SL:HideMainPanel()
- self:RefreshMultiplierData()
- self:RefreshRewardData()
- self:RefreshPickUpOrRecoveryState(5)
- self:RefreshPickUpOrRecoveryState(6)
- GUI:Toggle_setIsOn(self.view.MultiplierToggle,true)
- self.roleId=SL:GetMetaValue("MAIN_ACTOR_ID")
- end
- ---刷新主页倍率爆率信息
- function this:RefreshMultiplierData()
- --爆率
- local value = self.dataEfficiencyInfo:GetMultiplierInfoById(202)
- if value.curLevel == value.maxLevel then
- self.rateType = 2
- elseif value.curLevel == 0 then
- self.rateType = 0
- else
- self.rateType = 1
- end
- local rate = SL:GetConfig("cfg_efficiency", 202)
- local vipLevel = 1---ModuleCall(ModuleCallId.GetVipInfo).vipStage
- if vipLevel == 0 then
- GUI:Text_setString(self.view.TextRate, "当前提升爆率 <color=#FFFF00> 0%</color>")
- GUI:Text_setString(self.view.ExplosionRate_Button, rate.btnText[1])
- else
- local isMax, rateValue = self.dataEfficiencyInfo:GetCanShowVipInfo(vipLevel)
- GUI:Text_setString(self.view.TextRate, "当前提升爆率 <color=#FFFF00>" .. math.ceil(rateValue.explosionRate / 100) .. "%</color>")
- GUI:Text_setString(self.view.ExplosionRate_Button, isMax and rate.btnText[3] or rate.btnText[2])
- end
- --经验提升
- local cfg = SL:GetConfig("cfg_efficiency", 201)
-
- self.expType = InfoManager.efficiencyInfo:CheckBuyGift(self:GetStringInParentheses(cfg.condition[1]))
- if cfg.btnText[self.expType + 1] == "0" then
- GUI:setVisible(self.view.ButtonBuy, false)
- else
- GUI:setVisible(self.view.ButtonBuy, true)
- GUI:Text_setString(self.view.ButtonBuy, cfg.btnText[self.expType + 1])
- end
- end
- ---获取中括号之间的数值
- ---@param condition string
- ---@return string
- function this:GetStringInParentheses(condition)
- local firstIndex = string.find(condition, "%[", 1)
- local lastIndex = string .find(condition, "%]", firstIndex + 1)
- local str = string.sub(condition, firstIndex + 1, lastIndex - 1)
- return str
- end
- ---刷新一键拾取或者自动回收 按钮文本
- function this:RefreshPickUpOrRecoveryState(type)
- ---@type cfg_efficiency_column
- local info = SL:FindConfigs("cfg_efficiency", "type", type)
- if info and info[1] then
- if type == 5 then
- self.pickUpType =InfoManager.efficiencyInfo:CheckBuyGift(self:GetStringInParentheses(info[1].condition[1]))
- GUI:Text_setString(self.view.Pickup_Button, string.format("<color=white>%s</color>", info[1].btnText[self.pickUpType + 1]))
- elseif type == 6 then
- self.recoveryType = InfoManager.efficiencyInfo:CheckBuyGift(self:GetStringInParentheses(info[1].condition[1]))
- GUI:Text_setString(self.view.ExplosionRate_Button, string.format("<color=white>%s</color>", info[1].btnText[self.recoveryType + 1]))
- end
- end
- end
- --刷新奖励界面
- function this:RefreshRewardData()
- self.rewardInfo = self.dataEfficiencyInfo:GetCanShowReward()
- if self.rewardInfo == nil then
- GUI:setVisible(self.view.HighImageBtn, false)
- return
- else
- GUI:setVisible(self.view.HighImageBtn, true)
- end
- -- local info = SL:FindConfigs("cfg_efficiency_promote", "group", self.rewardInfo.conditionGroup)
- if info == nil then
- GUI:setVisible(self.view.HighImageBtn, false)
- return
- end
- local item = GUI:Item_Create(self.view.reward, {
- width = "80",
- height = "80",
- itemid = info[1].reward[1],
- tips = "1",
- noclip = "1",
- mfixsize = "80,80"
- })
- GUI:AddOnClickEvent(item, self, self.ClickEquipItemIcon, { id = self.rewardInfo.id, lvLimit = self.rewardInfo.level })
- local level
- if SL:GetMetaValue("ACTOR_LEVEL",self.roleId) >= self.rewardInfo.level then
- GUI:setVisible(self.view.reward, true)
- level = "<color=#00FF00>0</color>"
- else
- GUI:setVisible(self.view.reward, false)
- level = "<color=#FF0000>" .. (self.rewardInfo.level - SL:GetMetaValue("ACTOR_LEVEL",self.roleId)) .. "</color>"
- end
- GUI:Text_setString(self.view.LvLimit, "再升 " .. level .. " 级")
- end
- ---注册UI事件和服务器消息
- function this:RegistEvents()
- GUI:AddOnClickEvent(self.view.CloseBtn, self, self.OnClickCloseButton)
- GUI:SetToggleOnValueChange(self.view.MultiplierToggle, self, self.OnToggleMultiplierButton, 1)
- GUI:SetToggleOnValueChange(self.view.PickupToggle, self, self.OnToggleMultiplierButton, 2)
- GUI:SetToggleOnValueChange(self.view.ExplosionRateToggle, self, self.OnToggleMultiplierButton, 3)
- --GUI:SetToggleOnValueChange(self.view.MiracleCoinsToggle, self, self.OnToggleMultiplierButton, 4)
-
- GUI:AddOnClickEvent(self.view.ButtonBuy, self, self.OnClickButtonBuy)
- --GUI:AddOnClickEvent(self.view.ButtonGift, self, self.OnClickButtonGift)
- GUI:AddOnClickEvent(self.view.ButtonActive, self, self.OnClickButtonActive)
- GUI:AddOnClickEvent(self.view.Pickup_Button, self, self.OnClickPickup_Button)
- GUI:AddOnClickEvent(self.view.ExplosionRate_Button, self, self.OnClickExplosionRate_Button)
- GUI:AddOnClickEvent(self.view.HighImageBtn, self, self.ClickEquipItemIcon)
- --SL:RegisterLuaNetMsg(MessageDef.ResEfficiencyMagnificationMessage,self.ResEfficiencyMagnificationMessage,self)
- end
- --领取奖励
- function this:ClickEquipItemIcon()
- if SL:GetMetaValue("ACTOR_LEVEL",self.roleId) >= self.rewardInfo.level then
- SL:ReqReceiveEfficiencyRewardMessage(self.rewardInfo.id)
- else
- SL:TipMessage( SL:GetConfig('cfg_string',249).text,1, NoticeType.NoticeMid )--"等级不足!",
- end
- end
- ----奇迹币
- function this:OnClickExplosionRate_Button()
- local cfg = SL:GetConfig("cfg_efficiency", 601)
- ShortcutMgr.Do(cfg.instruction[self.recoveryType + 1])
- end
- ----会员提升
- function this:OnClickExplosionRate_Button()
- local cfg = SL:GetConfig("cfg_efficiency", 601)
- ShortcutMgr.Do(cfg.instruction[self.recoveryType + 1])
- end
- ----自动拾取
- function this:OnClickPickup_Button()
- local cfg = SL:GetConfig("cfg_efficiency", 501)
- ShortcutMgr.Do(cfg.instruction[self.pickUpType + 1])
- end
- ----激活会员
- function this:OnClickButtonActive()
- local cfg = SL:GetConfig("cfg_efficiency", 202)
- ShortcutMgr.Do(cfg.instruction[1])
- end
- ----直购礼包
- function this:OnClickButtonGift()
- local cfg = SL:GetConfig("cfg_efficiency", 201)
- ShortcutMgr.Do(cfg.instruction[self.expType + 1])
- end
- ----充值
- function this:OnClickButtonBuy()
- local cfg = SL:GetConfig("cfg_efficiency", 201)
- ShortcutMgr.Do(cfg.instruction[self.expType + 1])
- end
- function this:OnClickCloseButton()
- GUI:UIPanel_Close("dev/ui/Efficiency/Panel/KLUIEfficiency/KLUIEfficiencyPanel")
- end
- function this:OnToggleMultiplierButton(control, eventData)
- GUI:setVisible(self.view.MultiplierPanel, eventData == 1)
- GUI:setVisible(self.view.PickupPanel, eventData == 2)
- GUI:setVisible(self.view.ExplosionRatePanel, eventData == 3)
- -- GUI:setVisible(self.view.MiracleCoinsPanel, eventData == 4)
- end
- function this:Close()
- SL:ShowMainPanel()
- end
- return this
|