|
|
- EmpowerTreasureView = EmpowerTreasureView or BaseClass(BaseView)
- local EmpowerTreasureView = EmpowerTreasureView
-
- function EmpowerTreasureView:__init()
- self.base_file = "empower"
- self.layout_file = "EmpowerTreasureView"
- self.layer_name = "UI"
- self.use_background = G_USING_BG
- self.hide_maincancas = true
- --self.close_mode = CloseMode.CloseDestroy
- --self.destroy_imm = true
- --self.change_scene_close = true --是否切换场景时关闭(弹出界面使用)
- self.is_set_zdepth = true
-
- self.append_to_ctl_queue = true --是否要添加进界面堆栈
- self.model = EmpowerModel:GetInstance()
- self.goods_model = GoodsModel:getInstance()
- self.mainVo = RoleManager.Instance.mainRoleInfo
-
- self.powerSign_objs ={}
- self.finalPos_tranfs ={}
- self.img_qualitys_img = {}
- self.img_qualitys_btn = {}
- self.awardItems = {}
- self.probAwardItems = {} -- 展示可能活动性
- self.emT_loadSign_objs = {}
- self.gift_icon_objs = {}
- self.gift_icon_img = {}
- self.gift_red_dot_objs = {}
- self.loading_txts = {}
- self.isStuckTimesNum = 0
- self.powerNum = 0
- self.eachPowerUpTime = 0.4
- self.isPosCanFire = false
- self.isTimeCanFire = false
- self.isGaming = false
- self.ifCanKeyUp = false -- 按循序keydown-蓄力-发射才给发射,防止玩家一直按住蓄力等待下回合发射
- self.config_free_count = self.model:GetConfigMarbleKvVal("free_count")
- self.load_callback = function ()
- self:LoadSuccess()
- self:AddEvent()
- end
- self.open_callback = function ( )
- self:OpenSuccess()
- end
- self.destroy_callback = function ( )
- self:DestroySuccess()
- end
-
- end
-
- function EmpowerTreasureView:Open( )
- BaseView.Open(self)
- end
-
- function EmpowerTreasureView:LoadSuccess()
- self.nodes = {
- "downInfo/rightDown/juan_icon:img",
- }
- self:GetChildren(self.nodes)
- self.coupon_id = self.model:GetCouponId() or 270012--代金券ID
- self.coupon_exchange_num = self.model:GetCouponExchangeNum()--代金券兑换数量
- lua_resM:setOutsideImageSprite(self,self.juan_icon_img,GameResPath.GetGoodsIcon(self.coupon_id))
-
- self.closeBtn_obj = self:GetChild("closeBtn").gameObject
- self.closeBtn_img = self:GetChild("closeBtn"):GetComponent("Image")
-
- self.bg_img = self:GetChild("bg/bg"):GetComponent("Image")
- self.powerFireBtn_obj = self:GetChild("powerFireBtn_mask/powerFireBtn").gameObject
- self.powerFireBtn_img = self:GetChild("powerFireBtn_mask/powerFireBtn"):GetComponent("Image")
- self.powerFireBtn_redDot = self:GetChild("powerFireBtn_mask/powerFireBtnRedDot").gameObject
- self.resetBtn_obj = self:GetChild("resetBtn_mask/resetBtn").gameObject
- self.resetBtn_img = self:GetChild("resetBtn_mask/resetBtn"):GetComponent("Image")
- self.powerFireBtn_transf = self:GetChild("powerFireBtn_mask/powerFireBtn")
- self.powerFireBtnDark_obj = self:GetChild("powerFireBtn_mask/powerFireBtn_dark").gameObject
- self.powerFireBtnDark_obj:GetComponent("Image").gray = true
- self.spring = self:GetChild("spring")
- self.spring_img = self:GetChild("spring"):GetComponent("Image")
- self.ball_tranf = self:GetChild("ball")
- self.ball_Riridbody = self:GetChild("ball"):GetComponent("Rigidbody2D")
- self.shopIcon_obj = self:GetChild("shopIcon").gameObject
- self.shopRedDot_obj = self:GetChild("shopIcon/redDot").gameObject
- self.loading = self:GetChild("loadingReword/loading")
- self.loading_obj = self:GetChild("loadingReword/loading").gameObject
- self.cue_bg_obj = self:GetChild("loadingReword/loading/cue_bg").gameObject
- self.cue_loading_txt = self:GetChild("loadingReword/loading/cue_bg/loading_txt"):GetComponent("Text")
- self.rewardItemCon = self:GetChild("loadingReword/rewardItemCon/item_show")
- self.moneyShow_txt = self:GetChild("downInfo/moneyShow/text"):GetComponent("Text")
- self.cueTimeTxt_txt = self:GetChild("downInfo/cueTimeTxt"):GetComponent("Text")
- self.btnReset_txt = self:GetChild("downInfo/moneyShowReset/text"):GetComponent("Text")
- self.cardNum_txt = self:GetChild("downInfo/rightDown/num_txt"):GetComponent("Text")
- self.useCard_toggle = self:GetChild("downInfo/rightDown/toggle"):GetComponent("Toggle")
- self.Content_item = self:GetChild("bg/ScrollView_item/Viewport/Content_item")
-
- self.Content_reward = self:GetChild("showDifRewardCon/bg/ScrollView_difReward/Viewport/Content_reward")
- self.showDifRewardCon_obj = self:GetChild("showDifRewardCon").gameObject
- self.showDifRewardCon_bg = self:GetChild("showDifRewardCon/bg")
- self.resetBtn_redDot_obj = self:GetChild("resetBtn_mask/resetBtn_redDot").gameObject
-
- self.light_img = self:GetChild("bg/lights/light_img"):GetComponent("Image")
- self.light_img_big = self:GetChild("bg/lights/light_img_big"):GetComponent("Image")
-
- for i = 1, 7 do
- self.powerSign_objs[i] = self:GetChild("powerSigns/powerSign"..i).gameObject
- end
-
- --self.awardItemCon = self:GetChild("awardItemCon")
- for i = 1, 5 do
- self.finalPos_tranfs[i] = self:GetChild("getPositions/pos"..i)
- self.img_qualitys_img[i] = self:GetChild("getPositions/pos"..i.."/quality_img"):GetComponent("Image")
- self.img_qualitys_btn[i] = self.img_qualitys_img[i].gameObject
- end
-
- for i = 1, 4 do
- self.loading_txts[i] = self:GetChild("loadingReword/loadingTxts/loading_txt"..i):GetComponent("Text")
- self.emT_loadSign_objs[i] = self:GetChild("loadingReword/emT_loadSigns/emT_loadSign"..i).gameObject
- self.gift_icon_objs[i] = self:GetChild("loadingReword/rewardItemCon/gift_icon"..i).gameObject
- self.gift_icon_img[i] = self.gift_icon_objs[i]:GetComponent("ImageExtend")
- self.gift_red_dot_objs[i] = self:GetChild("loadingReword/rewardItemCon/redDot"..i).gameObject
- self.loading_txts[i].text = self.model.Config_Marble_Count_Reward[i].count
- end
-
- self.topRwardItem = UIObjPool:getInstance():PopItem(UIObjPool.UIType.AwardItem,self.rewardItemCon)
- self.topRwardItem:SetItemSize(48, 48)
- SetLocalPosition(self.topRwardItem.transform,GetLocalPositionX(self.topRwardItem.transform)-40, GetLocalPositionY(self.topRwardItem.transform)+40 , 0)
- self.topRwardItem:SetVisible(false)
- --self.topRwardItem:SetData(270012)
-
- local showAwardList = stringtotable(self.model:GetConfigMarbleKvVal("AwardShow"))
- if showAwardList then --目前为空,未知
- for k,v in pairs(showAwardList) do
- self.awardItems[k] = UIObjPool:getInstance():PopItem(UIObjPool.UIType.AwardItem,self.Content_item)
- self.awardItems[k]:SetItemSize(50, 50)
- print("============>>> YiRan:EmpowerTreasureView [start:120] #self.awardItems :",#self.awardItems)
- self.awardItems[k]:SetData(v[2],v[3])
- end
- end
- self.springDeltaY = GetSizeDeltaY(self.spring)
- self.springStartDeltaY = GetSizeDeltaY(self.spring)
- self.fireBtnPosYMoveNum = -5 --按钮下压高度
- --self.fireBtnDeltaY = GetSizeDeltaY(self.powerFireBtn_transf)
- --self.fireBtnStartDeltaY = GetSizeDeltaY(self.powerFireBtn_transf)
- self.springColiderPosX = GetLocalPositionX(self.spring)
- self.springColiderPosY = GetLocalPositionY(self.spring) + GetSizeDeltaY(self:GetChild("spring"))
- self.loadingMaxY = 359.69--GetSizeDeltaY(self.loading)
-
- lua_resM:setOutsideImageSprite(self,self.bg_img,GameResPath.GetViewBigBg("empower_treasure_bg"),false)
-
- self:SetPowerSignsActive(false)
- self:ResetGame()
-
- self:ResetQualitys( ) -- 之后拿的可能不是在这了,如需什么时候刷新记得改这个
-
- self:ShineLight(EmpowerConst.EmpowerShineTimeSpan_s_normal)
- self:ShineLight2(EmpowerConst.EmpowerShineTimeSpan_l_normal)
- end
-
- function EmpowerTreasureView:AddEvent()
- local function clickHandler(target)
- if target == self.closeBtn_obj then
- self:Close()
- elseif target == self.resetBtn_obj then
- --self:ResetGame()
- local reset_count = self.model:GetVo41400().reset_count--重置次数
- local reset_limit,reset_next_vip,reset_next_limit = self.model:GetResetLimitNum()--重置上限
- if reset_count == reset_limit then
- if not reset_next_vip then
- Message.show("重置次数已达上限!","fault")
- else
- local function ok()
- OpenFun.Open(450,1)
- end
- local str = HtmlColorTxt("VIP"..reset_next_vip, ColorUtil.RED_DARK)
- local add_reset_num = HtmlColorTxt(reset_next_limit - reset_limit, ColorUtil.GREEN_DARK) --增加的充值次数
- Alert.show("重置次数不足,需提升至"..str.."增加"..add_reset_num.."次重置\n是否前往充值?",Alert.Type.Two,ok)
- end
- return
- end
- local reset_cost = self.model:GetConfigMarbleKvVal("reset_cost")
- local list = stringtotable(reset_cost)
- local txt = "是否自动补齐?"
- local use_list = {}
- local reset_count = self.model:GetVo41400().reset_count + 1
- if reset_count > #list then
- use_list = list[#list][2]
- else
- use_list = list[reset_count][2]
- end
- if use_list[1] == "1" then -- 钻石 今天第"..reset_count.."次,
- txt = "需要"..use_list[3].."彩钻重置,是否重置?"
- elseif use_list[1] == "100" then -- 道具
- txt = "需要"..use_list[3].."个"..GoodsModel:getInstance():getGoodsName(use_list[2], false).."道具重置,是否自动补齐?"
- end
- if self.model.isAutoReset41404 then
- self.model:Fire(EmpowerConst.EMPOWER_REQ_EVENT, 41404) -- 重置升品寻宝
- else
- function ok_function( flag )
- self.model:Fire(EmpowerConst.EMPOWER_REQ_EVENT, 41404) -- 重置升品寻宝
- end
- function toggle_function( flag )
- self.model.isAutoReset41404 = flag
- end
-
- --需要显示购买提示界面
- if not self.model.not_tip_quick_circle_refresh then
- -- local gold_ab_res,res_name = WordManager:GetCommonMoneyIcon(tonumber(self.cost_data[1]))
- local data = {
- titleText = "温馨提示",
- nameText = "",
- price = use_list[3],
- okText = "确定",
- -- gold_ab_res = gold_ab_res,
- -- gold_res = res_name,
- hide_money_icon = false,
- priceText = HtmlColorTxt(use_list[3], ColorUtil.YELLOW_DARK) .. " 重置刷新", --.. HtmlColorTxt("1彩钻", "#d322ff"),
- ok_callback = ok_function,
- toggle_function = toggle_function,
- nameText = "是否使用",
- insufficientText = "",-- .. HtmlColorTxt(use_list[3]..WordManager:GetCommonMoneyStr(use_list[1]), "#d322ff") .. "弹射一次
- }
- GlobalEventSystem:Fire(EventName.OPEN_COM_TOGGLE_TIP_VIEW, data)
- else
- ok_function()
- end
- end
-
- elseif target == self.shopIcon_obj then
- self.model:Fire(EmpowerConst.OPEN_SHOP_BASE_VIEW,true,1)
- elseif target == self.powerFireBtnDark_obj then
- Message.show("请先投币重置","fault")
- elseif target == self.showDifRewardCon_obj then
- self.showDifRewardCon_obj:SetActive(false)
- end
-
- for i=1,#self.gift_icon_objs do
- if target == self.gift_icon_objs[i] then
- --self.model:Fire(EmpowerConst.EMPOWER_REQ_EVENT, 41403,self.model.Config_Marble_Count_Reward[i].index)
- end
- end
-
- for i=1,#self.img_qualitys_btn do
- if target == self.img_qualitys_btn[i] then
- SetLocalPositionX(self.showDifRewardCon_bg, GetLocalPositionX(self.finalPos_tranfs[i]) + 39)
- SetLocalPositionX(self.Content_reward,0)
- local quailtyNum = tonumber(self.qualitysList[i])
- self.showDifRewardCon_obj:SetActive(true)
- local rewardsList = stringtotable(DeepCopy(Config.Marblequalreward)[quailtyNum].rewards)
- local config_good = DeepCopy(Config.Goods)
- for k,v in pairs(rewardsList) do
- v.color = self.goods_model:GetGoodsBasicByTypeId(v[2][2]).color --按品质排序
- end
-
- local sort_func = function ( a, b )
- return a.color > b.color
- end
- table.sort(rewardsList, sort_func)
-
- for k,v in pairs(rewardsList) do
- if self.probAwardItems[k] == nil then
- self.probAwardItems[k] = UIObjPool:getInstance():PopItem(UIObjPool.UIType.AwardItem,self.Content_reward)--AwardItem.New(self.Content_reward)--
- self.probAwardItems[k]:SetItemSize(49, 49)
- end
- self.probAwardItems[k]:SetData(v[2][2],v[2][3])
- self.probAwardItems[k].transform.pivot = Vector2(0, 1)
- self.probAwardItems[k].gameObject:SetActive(true)
- end
-
- for i=#rewardsList,#self.probAwardItems do
- self.probAwardItems[i].gameObject:SetActive(false)
- end
- end
- end
- end
-
- AddClickEvent(self.closeBtn_obj, clickHandler)
- AddClickEvent(self.resetBtn_obj, clickHandler)
- AddClickEvent(self.shopIcon_obj, clickHandler)
- AddClickEvent(self.showDifRewardCon_obj, clickHandler)
- AddClickEvent(self.powerFireBtnDark_obj, clickHandler)
-
- for i=1,#self.img_qualitys_btn do
- AddClickEvent(self.img_qualitys_btn[i], clickHandler, 1)
- end
-
- for i=1,#self.gift_icon_objs do
- AddClickEvent(self.gift_icon_objs[i], clickHandler, 1)
- end
-
- local function clickFireHandlerDown(target)
- SetLocalPositionY(self.powerFireBtn_transf, self.fireBtnPosYMoveNum) --按钮下压
- if not self.isPosCanFire then return end
- self.isUsingCard = self.useCard_toggle.isOn
- local count = self.model:GetVo41400().count + 1 -- 告知下一次,当前次数得加1
- if count and count > self.config_free_count then
- --Message.show("今日免费次数已用尽")
- local marble_cost = self.model:GetConfigMarbleKvVal("marble_cost")
- local coupon_cost = stringtotable(self.model:GetConfigMarbleKvVal("coupon_cost"))
- local good_value = coupon_cost[1][3]/coupon_cost[1][1]
- local list = stringtotable(marble_cost)
- local txt = "是否自动补齐?"
- local use_list = {}
- local good_type = list[1][2][2]
-
- local need_goods_num = list[1][2][3]
- local need_money = list[2][2][3]
- local money_num = self.mainVo.jin
- local good_num = GoodsModel:getInstance():GetTypeGoodsNum(good_type)
- local lack_money = (need_goods_num-good_num)*good_value
- print("============>>> YiRan:EmpowerTreasureView [start:180] money_num :",money_num)
- print("============>>> YiRan:EmpowerTreasureView [start:181] need_goods_num:",need_goods_num)
- print("============>>> YiRan:EmpowerTreasureView [start:182] good_num :",good_num)
- print("============>>> YiRan:EmpowerTreasureView [start:183] good_value :",good_value)
- local function ShowTipsViewAutoBuy( )
- if (self.model.isOnceBuy41401 == true and self.model.isAutoBuy41401 == false) or self.model.isAutoBuy41401 == true then --自动勾选时通道
- self.isTimeCanFire = true
- else --物品或金钱足够且没勾选时
- function ok_function( flag )
- --print("============>>> YiRan:EmpowerTreasureView [start:307] flag :",flag)
- --print("============>>> YiRan:EmpowerTreasureView [start:308] self.temp_isAutoBuy41401 :",self.temp_isAutoBuy41401)
- if self.temp_isAutoBuy41401 then
- self.model.isAutoBuy41401 = true
- else
- self.model.isAutoBuy41401 = false
- self.model.isOnceBuy41401 = true
- end
- end
-
- function toggle_function( flag )
- self.temp_isAutoBuy41401 = flag
- --if flag then
- -- self.model.isAutoBuy41401 = true
- --else
- -- self.model.isAutoBuy41401 = false
- -- self.model.isOnceBuy41401 = true
- --end
- end
- local coupon_num = GoodsModel:getInstance():GetTypeGoodsNum(self.coupon_id)
- local cost_money = (need_goods_num*good_value - coupon_num * self.coupon_exchange_num) > 0 and (need_goods_num*good_value - coupon_num * self.coupon_exchange_num) or 0
- if not self.useCard_toggle.isOn then--不勾选
- cost_money = need_goods_num*good_value
- end
- --需要显示购买提示界面
- if not self.model.not_tip_quick_circle_refresh then
- -- local gold_ab_res,res_name = WordManager:GetCommonMoneyIcon(tonumber(self.cost_data[1]))
- local data = {
- titleText = "温馨提示",
- nameText = "",
- price = cost_money,
- okText = "确定",
- -- gold_ab_res = gold_ab_res,
- -- gold_res = res_name,
- hide_money_icon = false,
- priceText = HtmlColorTxt(cost_money, ColorUtil.YELLOW_DARK) .. " 弹射一次?", --.. HtmlColorTxt("1彩钻", "#d322ff"),
- ok_callback = ok_function,
- toggle_function = toggle_function,
- nameText = "是否使用",
- insufficientText = "",-- .. HtmlColorTxt(use_list[3]..WordManager:GetCommonMoneyStr(use_list[1]), "#d322ff") .. "弹射一次
- }
- GlobalEventSystem:Fire(EventName.OPEN_COM_TOGGLE_TIP_VIEW, data)
- else
- ok_function()
- end
- self.isTimeCanFire = false
- end
- end
- if money_num < (need_goods_num-good_num)*good_value then --金钱加卷不足以抵扣时
- local lack_good_num = need_goods_num-good_num
- --if self.isUsingCard then
- -- Message.show("缺少"..lack_good_num.."个"..GoodsModel:getInstance():getGoodsName(good_type, false).."开启")
- --else
- --Message.show("缺少"..need_money-money_num.."彩钻开启")
- Message.show("彩钻不足")
- --end
- self.isTimeCanFire = false
- elseif good_num >= need_goods_num then --物品足够时
- if self.isUsingCard then
- self.isTimeCanFire = true
- else
- if money_num < need_goods_num*good_value then
- --Message.show("缺少"..need_goods_num*good_value-money_num.."彩钻开启")
- Message.show("彩钻不足","fault")
- self.isTimeCanFire = false
- else
- ShowTipsViewAutoBuy()
- end
- end
- elseif self.isUsingCard == false then --金钱加卷足以抵扣但没选用代金券 且物品不足 -- money_num >= (need_goods_num-good_num)*good_value and
- if money_num < need_goods_num*good_value then
- --Message.show("缺少"..need_money-money_num.."彩钻开启")
- Message.show("彩钻不足","fault")
- self.isTimeCanFire = false
- else
- ShowTipsViewAutoBuy()
- end
- else
- ShowTipsViewAutoBuy()
- end
- else
- self.isTimeCanFire = true
- end
- self:StartPowerUpTimer(self.eachPowerUpTime)
- end
- local function clickFireHandlerUp(target)
- -- Message.show("clickFireHandlerUp")
- SetLocalPositionY(self.powerFireBtn_transf, 0) -- 按钮回升
- self:FireFun()
- end
- AddDownEvent(self.powerFireBtn_obj,clickFireHandlerDown,1)
- AddUpEvent(self.powerFireBtn_obj,clickFireHandlerUp,2)
-
- local function UPDATA_EMTREASURE_VIEW_INFO_fun(vo)--vo = self.model:GetVo41400() 目前寻宝红点直接在刷界面的时候一起刷了
- self:SetLoadingReward(vo.progress,true)
- self:UpdateGiftCon(vo.reward)
- self:SetDownInfoValue()
- self:UpdateFireBtnTxtAndRedDot()
-
- end
- self.updata_emtreasure_view_info = self.model:Bind(EmpowerConst.UPDATA_EMTREASURE_VIEW_INFO, UPDATA_EMTREASURE_VIEW_INFO_fun)
-
- local function UPDATA_EMTREASURE_QUALITYS_INFO_fun(vo)
- self:ResetQualitys()
- end
- self.updata_emtreasure_qualitys_info = self.model:Bind(EmpowerConst.UPDATA_EMTREASURE_QUALITYS_INFO, UPDATA_EMTREASURE_QUALITYS_INFO_fun) --41404成功后返回
-
- local function on_ans_update_red_dot( )
- self:UpdateEmpowerShopRedDot()
- end
- self.on_ans_update_red_dot_id = self.model:Bind(EmpowerConst.EMPOWER_SHOP_RED_DOT, on_ans_update_red_dot)
-
-
- local function onOrientationChange()
- self.transform.anchoredPosition = Vector2(ClientConfig.iphone_x_offset_left, 0)
- end
- self.orientation_change_id = GlobalEventSystem:Bind(EventName.ORIENTATION_DID_CHANGE, onOrientationChange)
-
- --local function onChangeJinHandler()
- --self:SetDownInfoValue()
- -- end
- -- self.change_jin_id = self.mainVo:BindOne("jin",onChangeJinHandler)
-
- end
-
- function EmpowerTreasureView:OpenSuccess()
- local select_callback = function(index)
- end
- self:UpdateView()
-
- end
-
- function EmpowerTreasureView:UpdateView()
- self:SetLoadingReward(self.model:GetVo41400().progress,true)
- self:SetDownInfoValue()
- self:UpdateGiftCon(self.model:GetVo41400().reward)
- self:UpdateFireBtnTxtAndRedDot()
- --for i = 1, 3 do -- 怕影响美观加载出来后再显示,最后一个不加载
- -- self.gift_icon_objs[i]:SetActive(true)
- --end
-
- self:UpdateEmpowerShopRedDot()
-
- end
-
- function EmpowerTreasureView:UpdateGiftCon(vo_reward)
- local config_Marble_Count_Reward = self.model.Config_Marble_Count_Reward
- for k1,v1 in pairs(config_Marble_Count_Reward) do
- for k,v in pairs(vo_reward) do
- if v1.index == v.id then
- if v.state == 2 then
- --self.gift_red_dot_objs[k1]:SetActive(true)
- --self.gift_icon_img[k1].gray = true
- lua_resM:setImageSprite(self, self.gift_icon_objs[k1]:GetComponent("Image"), "empower_asset","emT_rewordGift2",true)
- else
- --self.gift_red_dot_objs[k1]:SetActive(false)
- --self.gift_icon_img[k1].gray = false
- lua_resM:setImageSprite(self, self.gift_icon_objs[k1]:GetComponent("Image"), "empower_asset","emT_rewordGift",true)
- end
- end
- end
- end
- end
- function EmpowerTreasureView:SetDownInfoValue()
- local good_num = GoodsModel:getInstance():GetTypeGoodsNum(self.coupon_id)
- local marble_cost = stringtotable(self.model:GetConfigMarbleKvVal("marble_cost"))
- local list = marble_cost
- local need_money = list[2][2][3]
- local need_goods_num = list[1][2][3]
- self.moneyShow_txt.fontSize = 24
- local cost_money = (need_money - good_num * self.coupon_exchange_num) > 0 and (need_money - good_num * self.coupon_exchange_num) or 0
- if not self.useCard_toggle.isOn then--不勾选
- cost_money = need_money
- end
- self.moneyShow_txt.text = HtmlColorTxt(cost_money, ColorUtil.WHITE_DARK)
- local good_type = list[1][2][2]
- local good_num = GoodsModel:getInstance():GetTypeGoodsNum(good_type)
- if good_num >= need_goods_num then
- self.cardNum_txt.text = string.format("<color=%s>%s</color>/%s",ColorUtil.GREEN_DARK,good_num,need_goods_num)
- else
- self.cardNum_txt.text = string.format("<color=%s>%s</color>/%s",ColorUtil.RED_DARK,good_num,need_goods_num)
- end
-
- local reset_cost = stringtotable(self.model:GetConfigMarbleKvVal("reset_cost"))
- local reset_count = self.model:GetVo41400().reset_count + 1
- if reset_count > #reset_cost then
- use_list = reset_cost[#reset_cost][2]
- else
- use_list = reset_cost[reset_count][2]
- end
- self.btnReset_txt.text = use_list[3]
-
- end
- function EmpowerTreasureView:UpdateEmpowerShopRedDot( )
- local bool = self.model:GetEmpowerRedDotList()[EmpowerConst.EmpowerViewType.EmpowerShop]
- self.shopRedDot_obj:SetActive(bool)
- end
- function EmpowerTreasureView:UpdateFireBtnTxtAndRedDot( )
- local num = self.config_free_count - self.model:GetVo41400().count
- if num >= 1 then
- self.cueTimeTxt_txt.text = "当日前免费次数剩余:"..num
- self.powerFireBtn_redDot:SetActive(true)
- self.moneyShow_txt.text = "免费"..HtmlColorTxt(num, ColorUtil.GREEN_DARK).."/"..self.config_free_count
- self.moneyShow_txt.fontSize = 20
- else
- self.cueTimeTxt_txt.text = "当日前免费次数已用光"
- self.powerFireBtn_redDot:SetActive(false)
- end
- end
- function EmpowerTreasureView:ResetGame()
- self.isGaming = false
- self.closeBtn_img.raycastTarget = true
- self.resetBtn_img.raycastTarget = true
-
- self.ball_Riridbody.velocity = Vector2(0, 0)
- SetLocalPosition(self.ball_tranf, 329, -185, 0)
-
- self:StartTreasureTimer(9999)
- self:ShineLight(EmpowerConst.EmpowerShineTimeSpan_s_normal)
- self:ShineLight2(EmpowerConst.EmpowerShineTimeSpan_l_normal)
- end
-
- function EmpowerTreasureView:ResetQualitys( )
- local box_index = self.model:GetVo41400().box_index
- --self.qualitysList = box_index --or self.model:GetFreshTreasureQualitys() -- 拿不到就拿前端自己生成的
- self.qualitysList = {} -- 修改成原来格式
- for i=1,#box_index do
- for _i,v in ipairs(box_index) do
- if v.index == i then
- self.qualitysList[i] = v.qua
- end
- end
- end
- for k,v in pairs(self.qualitysList) do
- lua_resM:setImageSprite(self, self.img_qualitys_img[k], "empower_asset","empower_show_quality_"..v,true)
- end
- end
-
- function EmpowerTreasureView:IsBallInStuckPos( )
- local ballPosX = GetLocalPositionX(self.ball_tranf)
- local ballPosY = GetLocalPositionY(self.ball_tranf)
- local bool1 = (ballPosY >=self.springColiderPosY -40) and (ballPosY <=self.springColiderPosY + 40)
- and (ballPosX >=self.springColiderPosX-40) and (ballPosX <=self.springColiderPosX + 40)
- local bool2 = GetLocalPositionY(self.ball_tranf) < GetLocalPositionY(self.finalPos_tranfs[1])
- if not bool1 and not bool2 then
- return true
- else
- return false
- end
- end
-
- function EmpowerTreasureView:IsBallStuck( ) -- Updata中判断的
- local waitTime = 8
- if self:IsBallInStuckPos( ) then
- self.isStuckTimesNum = self.isStuckTimesNum + 1
- if self.isStuckTimesNum == waitTime then
- Message.show("球好像卡住了,重新开始吧","fault")
- return true
- end
- else
- self.isStuckTimesNum = 0
- return false
- end
- end
- function EmpowerTreasureView:StartTreasureTimer(stime)
- local time = stime
- local onUpdate = function ()
-
- if self:IsBallStuck( ) then
- self.model:Fire(EmpowerConst.EMPOWER_REQ_EVENT, 41402,0,0,"0")
- self:CancelTimer(self.start_timer_id)
- self:ResetGame()
- return
- end
-
- local ballPosX = GetLocalPositionX(self.ball_tranf)
- local ballPosY = GetLocalPositionY(self.ball_tranf)
- time = time - 1
- if (ballPosY >=self.springColiderPosY -40) and (ballPosY <=self.springColiderPosY + 40)
- and (ballPosX >=self.springColiderPosX-40) and (ballPosX <=self.springColiderPosX + 40) then
- self.isPosCanFire = true
- else
- self.isPosCanFire = false
- end
- if GetLocalPositionY(self.ball_tranf) < GetLocalPositionY(self.finalPos_tranfs[1]) then -- 不用触发器了-160
- for i = 1, 5 do
- local rangeNum = 60
- local pointPosX = GetLocalPositionX(self.finalPos_tranfs[i])
- if (ballPosX >= pointPosX - rangeNum) and (ballPosX <= pointPosX + rangeNum ) then
- self.model:Fire(EmpowerConst.EMPOWER_REQ_EVENT, 41402,1,self.qualitysList[i],self:GetTokens( ))
- --Message.show("游戏结束,此时落在框",i,"品质为:",self.qualitysList[i])
- self:CancelTimer(self.start_timer_id)
- local function delay( ) -- 让弹跳的球缓一下
- self:ResetGame()
- end
- self.resetGame_delay_timer = GlobalTimerQuest:AddDelayQuest(delay,2)
- end
- end
- end
- if time < 0 then
- Message.show("游戏结束,时间到","fault")
- self:CancelTimer(self.start_timer_id)
- end
- end
- if not self.start_timer_id then
- self.start_timer_id = GlobalTimerQuest:AddPeriodQuest(onUpdate, 1, -1)
- onUpdate()
- end
- end
-
- function EmpowerTreasureView:StartPowerUpTimer(time)
- if not self.isPosCanFire or not self.isTimeCanFire then return end
- self.isGaming = true
- self.ifCanKeyUp = true
- self.closeBtn_img.raycastTarget = false
- self.resetBtn_img.raycastTarget = false
- self.powerNum = 0
- local onUpdate = function ()
- self.powerNum = self.powerNum + 1
- self.springDeltaY = self.springDeltaY - 8
- --self.fireBtnDeltaY = self.fireBtnDeltaY - 1
- self:ActionDeltaYBack(time,self.springDeltaY,self.spring)
- --self:ActionDeltaYBack(time,self.fireBtnDeltaY,self.powerFireBtn_transf)
- self:SetPowerSignsActive(true,self.powerNum)
- if self.powerNum >= 7 then
- self:CancelTimer(self.powerUp_timer_id)
- end
- end
- if not self.powerUp_timer_id then
- self.powerUp_timer_id = GlobalTimerQuest:AddPeriodQuest(onUpdate, time, -time)
- onUpdate()
- end
- end
-
- function EmpowerTreasureView:FireFun( )
- if self.ifCanKeyUp == false then return end
- if not self.isPosCanFire or not self.isTimeCanFire then return end
- self.ifCanKeyUp = false
- self:CancelTimer(self.powerUp_timer_id)
- --Message.show(" GetSizeDeltaY(self.spring):", GetSizeDeltaY(self.spring)/self.springStartDeltaY)
- print("============>>> YiRan:EmpowerTreasureView [start:497] self.springDeltaY :",self.springDeltaY)
- local num = 1 - (GetSizeDeltaY(self.spring)/self.springStartDeltaY) --系数
- self.ball_Riridbody:AddForce(Vector2(0,520 + (820*num)))
- cc.ActionManager:getInstance():removeAllActionsFromTarget(self.spring)
- self:ActionDeltaYBack(0.1,self.springStartDeltaY,self.spring)
-
- self.startTime = tonumber(TimeUtil:getServerTime())
- local cost_opt = 2 -- 目前写死,1 是用代金券 2 是用钻石
- if self.isUsingCard then
- cost_opt = 1
- end
- if (self.model.isOnceBuy41401 == true and self.model.isAutoBuy41401 == false) or self.model.isAutoBuy41401 == true then
- self.model:Fire(EmpowerConst.EMPOWER_REQ_EVENT, 41401,1,cost_opt,self.startTime) -- 开始
- self.model.isOnceBuy41401 = false
- else
- self.model:Fire(EmpowerConst.EMPOWER_REQ_EVENT, 41401,0,cost_opt,self.startTime) -- 开始
- end
-
- local function delay( ) -- 弹簧不能瞬移恢复球还在移动
- self.powerNum = 0
- self:SetPowerSignsActive(false)
- self.springDeltaY = self.springStartDeltaY--self.spring_img:SetNativeSize()
- end
-
- self:ShineLight(EmpowerConst.EmpowerShineTimeSpan_s_rush)
- self:ShineLight2(EmpowerConst.EmpowerShineTimeSpan_l_rush)
- self.spring_delay_timer = GlobalTimerQuest:AddDelayQuest(delay,0.1)
- self.isPosCanFire = false
- end
-
- function EmpowerTreasureView:ActionDeltaYBack( time ,deltaY,transf)
-
- local action_1 = cc.SizeTo.New( time, GetSizeDeltaX(transf), deltaY)
- local function action_call_back( )
- end
- local action_call = cc.CallFunc.New( action_call_back )
- local final_action = cc.Sequence.New( action_1,action_call )
- self:AddAction(final_action, transf)
- end
-
- function EmpowerTreasureView:LoadindActionDeltaY(time ,deltaY,transf)
- cc.ActionManager:getInstance():removeAllActionsFromTarget(self.loading)
- local action_1 = cc.SizeTo.New( time, GetSizeDeltaX(transf), deltaY)
- local function action_call_back( )
- --local function delay( ) -- cue_bg_obj延迟隐藏
- -- self.cue_bg_obj:SetActive(false)
- --end
- --self.loadingTxt_delay_timer = GlobalTimerQuest:AddDelayQuest(delay,0.4)
- end
- local action_call = cc.CallFunc.New( action_call_back )
- local final_action = cc.Sequence.New( action_1,action_call )
- self:AddAction(final_action, transf)
- end
-
- function EmpowerTreasureView:SetPowerSignsActive( bool,num )
- if bool then
- self.powerSign_objs[num]:SetActive(true)
- else
- for i = 1, #self.powerSign_objs do
- self.powerSign_objs[i]:SetActive(false)
- end
- end
- end
-
- function EmpowerTreasureView:SetLoadingReward( countNum,isShowLoading )
- local max = 0
- for k,v in pairs(self.model.Config_Marble_Count_Reward) do
- if max < v.count then
- max = v.count
- end
- if countNum >= v.count then -- 这一行够格
- self.emT_loadSign_objs[k]:SetActive(true)
- else
- self.emT_loadSign_objs[k]:SetActive(false)
- end
- end
- local percentNum = countNum/max
- if percentNum >= 1 then
- percentNum = 1
- end
- local reset_count = self.model:GetVo41400().reset_count
- local reset_limit = self.model:GetResetLimitNum()
- ------重置红点
- self.resetBtn_redDot_obj:SetActive(percentNum >= 1 and reset_count < reset_limit)
- ------按键置灰
- self.powerFireBtnDark_obj:SetActive(percentNum >= 1) --是否置灰处理
- self.powerFireBtn_img.raycastTarget = not (percentNum >= 1)
-
- self.loading_obj:SetActive(true)
- if isShowLoading then
- --self.cue_bg_obj:SetActive(true)
- self:LoadindActionDeltaY(1,percentNum * self.loadingMaxY,self.loading)
- self.cue_loading_txt.text = countNum
- else
- SetSizeDeltaY(self.loading, percentNum * self.loadingMaxY)
- end
- local goodId = 0
- local num = 0
- for k,v in pairs(self.model:GetVo41400().reward) do
- if v.fixed_reward and v.fixed_reward[1]then
- for k,v in pairs(v.fixed_reward) do
- if v.goodsid then
- goodId = v.goodsid
- num = v.num
- --print("============>>> YiRan:EmpowerTreasureView [start:319] goodsid:",goodsid,"num:",num)
- end
- end
- end
- end
- if goodId == 0 then
- self.topRwardItem:SetVisible(false)
- else
- self.topRwardItem:SetVisible(true)
- self.topRwardItem:SetData(goodId,num)
- end
- end
-
- function EmpowerTreasureView:CancelTimer( timer )
- if timer == self.start_timer_id then
- GlobalTimerQuest:CancelQuest(self.start_timer_id)
- self.start_timer_id = nil
- elseif timer == self.powerUp_timer_id then
- GlobalTimerQuest:CancelQuest(self.powerUp_timer_id)
- self.powerUp_timer_id = nil
- elseif timer == self.spring_delay_timer then
- GlobalTimerQuest:CancelQuest(self.spring_delay_timer)
- self.powerUp_timer_id = nil
- elseif timer == self.resetGame_delay_timer then
- GlobalTimerQuest:CancelQuest(self.resetGame_delay_timer)
- self.resetGame_delay_timer = nil
- elseif timer == self.loadingTxt_delay_timer then
- GlobalTimerQuest:CancelQuest(self.loadingTxt_delay_timer)
- self.loadingTxt_delay_timer = nil
- end
- end
-
- function EmpowerTreasureView:GetTokens( )
- local pid = tonumber(self.mainVo.role_id) or 1
- local time_stamp = self.startTime or TimeUtil:getServerTime()--os.time()
- local account = self.model:GetVo41400().count + 1
- local subfix = Trim(self.model:GetConfigMarbleKvVal("rand_string"))
- print("============>>> YiRan:EmpowerTreasureView [start:442] pid:",pid)
- print("============>>> YiRan:EmpowerTreasureView [start:442] time_stamp:",time_stamp)
- print("============>>> YiRan:EmpowerTreasureView [start:442] account:",account)
- print("============>>> YiRan:EmpowerTreasureView [start:442] subfix:",subfix)
- local ticket = pid .. time_stamp .. account .. subfix
- ticket = string.gsub(ticket, '"', '')
- print("============>>> YiRan:EmpowerTreasureView [start:447] ticket :",ticket)
- ticket = string.lower(Util.md5(ticket))
- print("============>>> YiRan:EmpowerTreasureView [start:447] ticket.md5:",ticket)
- return ticket
- -- self:SendFmtToGame(10000, "iiss", pid, time_stamp, account_id,ticket)
- end
-
- function EmpowerTreasureView:ShineLight(setTimeSpace)
- self:ClearHideTimer()
- self.light_img_num = 0
- local function hide_timer()
- if self.light_img_num >= 3 then
- self.light_img_num = 1
- else
- self.light_img_num = self.light_img_num + 1
- end
- lua_resM:setImageSprite(self, self.light_img, "empower_asset","ept_light"..self.light_img_num,false)
- end
- hide_timer()
- self.hide_timer_id = GlobalTimerQuest:AddPeriodQuest(hide_timer, setTimeSpace, -1)
- end
-
- function EmpowerTreasureView:ShineLight2(setTimeSpace)
- self:ClearHideTimer2()
- self.light_img_num2 = 0
- local function hide_timer()
- if self.light_img_num2 >= 3 then
- self.light_img_num2 = 1
- else
- self.light_img_num2 = self.light_img_num2 + 1
- end
- lua_resM:setOutsideImageSprite(self, self.light_img_big, GameResPath.GetEmpowerIcon("ept_light_big_"..self.light_img_num2), false)
- end
- hide_timer()
- self.hide_timer_id2 = GlobalTimerQuest:AddPeriodQuest(hide_timer, setTimeSpace, -1)
-
-
- end
-
- function EmpowerTreasureView:ClearHideTimer()
- if self.hide_timer_id then
- GlobalTimerQuest:CancelQuest(self.hide_timer_id)
- self.hide_timer_id = nil
- end
- end
-
- function EmpowerTreasureView:ClearHideTimer2()
- if self.hide_timer_id2 then
- GlobalTimerQuest:CancelQuest(self.hide_timer_id2)
- self.hide_timer_id2 = nil
- end
- end
-
- function EmpowerTreasureView:DestroySuccess( )
-
- self:ClearHideTimer()
- self:ClearHideTimer2()
-
- if self.on_ans_update_red_dot_id then
- self.model:UnBind(self.on_ans_update_red_dot_id)
- self.on_ans_update_red_dot_id = nil
- end
-
- if self.updata_emtreasure_view_info then
- self.model:UnBind(self.updata_emtreasure_view_info)
- self.updata_emtreasure_view_info = nil
- end
- if self.updata_emtreasure_qualitys_info then
- self.model:UnBind(self.updata_emtreasure_qualitys_info)
- self.updata_emtreasure_qualitys_info = nil
- end
-
- self:CancelTimer(self.start_timer_id)
- self:CancelTimer(self.powerUp_timer_id)
- self:CancelTimer(self.spring_delay_timer)
- self:CancelTimer(self.resetGame_delay_timer)
- self:CancelTimer(self.loadingTxt_delay_timer)
-
- cc.ActionManager:getInstance():removeAllActionsFromTarget(self.spring)
- --cc.ActionManager:getInstance():removeAllActionsFromTarget(self.powerFireBtn_transf)
- cc.ActionManager:getInstance():removeAllActionsFromTarget(self.loading)
-
- for i=1,#self.awardItems do
- if self.awardItems[i] then
- UIObjPool:getInstance():PushItem(UIObjPool.UIType.AwardItem, self.awardItems[i])
- self.awardItems[i] = nil
- end
- end
-
-
- for i=1,#self.probAwardItems do
- if self.probAwardItems[i] then
- UIObjPool:getInstance():PushItem(UIObjPool.UIType.AwardItem, self.probAwardItems[i])
- self.probAwardItems[i] = nil
- end
- end
-
- if self.topRwardItem then
- UIObjPool:getInstance():PushItem(UIObjPool.UIType.AwardItem, self.topRwardItem)
- self.topRwardItem = nil
- end
-
- --if self.change_jin_id then
- -- self.mainVo:UnBind(self.change_jin_id)
- -- self.change_jin_id = nil
- -- end
-
- if self.isGaming == true then
- -- Message.show("中途强制退出")
- self.closeBtn_img.raycastTarget = true
- self.resetBtn_img.raycastTarget = false
- self.model:Fire(EmpowerConst.EMPOWER_REQ_EVENT, 41402,0,0,"0") -- 告诉后端玩家取消发射了
- end
-
-
- if self.orientation_change_id then
- GlobalEventSystem:UnBind(self.orientation_change_id)
- self.orientation_change_id = nil
- end
- end
|