|
|
- --[[@------------------------------------------------------------------
- @description:云购上期奖励界面
- @author:wyb
- ----------------------------------------------------------------------]]
-
- CloudShoppingRewardView = CloudShoppingRewardView or BaseClass(BaseView)
-
- function CloudShoppingRewardView:__init()
- self.base_file = "cloudShopping"
- self.layout_file = "CloudShoppingRewardView"
- self.layer_name = "UI"
- -- self.use_local_view = true
- self.use_background = true
- self.close_mode = CloseMode.CloseDestroy
- self.destroy_imm = true
- self.append_to_ctl_queue = true
- self.item_list = {}
- self.model = CustomActivityModel:getInstance()
-
- self.load_callback = function ()
- self:LoadSuccess()
- self:InitEvent()
- end
- self.open_callback = function ()
- if self.sub_type then
- self.model:Fire(CustomActivityModel.PROTO_CCMD_EVENT, 33114, self.sub_type)
- end
- end
- self.close_callback = function ()
- self:Remove()
- end
- end
-
- function CloudShoppingRewardView:Open(sub_type)
- self.sub_type = sub_type
- BaseView.Open(self)
- end
-
- function CloudShoppingRewardView:Remove()
- for i, item in ipairs(self.item_list) do
- item:DeleteMe()
- end
- self.item_list = {}
-
- if self.event_update_id then
- self.model:UnBind(self.event_update_id)
- self.event_update_id = nil
- end
- end
-
- function CloudShoppingRewardView:LoadSuccess()
- self.txtNum,
- self.txtPrice,
- self.contentTxt
- = GetChildTexts(self.transform, {
- "leftCon/txtNum",
- "leftCon/priceCon/txtPrice",
- "rightCon/ScrollView/Viewport/Content/contentTxt"
- })
- self.goodsCon,
- self.scroll,
- self.effect
- = GetChildTransforms(self.transform, {
- "leftCon/goodsCon",
- "rightCon/ScrollView/Viewport/Content",
- "leftCon/effect"
- })
- self.empty,
- self.clickGo
- = GetChildGameObjects(self.transform, {
- "rightCon/emptyCon",
- "clickGo"
- })
- self:AddUIEffect("effect_xunbao_001_3", self.effect, self.layer_name, nil, 0.6, true)
- end
-
- function CloudShoppingRewardView:InitEvent()
- local onClickHandler = function (target, x, y)
- if target == self.clickGo then
- self:ClickBigRewardFunc(x,y)
- end
- end
- AddClickEvent(self.clickGo, onClickHandler)
-
- local onUpdate = function ()
- self:SetData()
- end
- self.event_update_id = self.model:Bind(CustomActivityModel.UPDATE_CLOUD_REWARD_INFO, onUpdate)
- end
-
- function CloudShoppingRewardView:SetData()
- local win_info = self.model.cloud_reward_info
- if not win_info then
- return
- end
- local cfg = Config.Cloudbuy[win_info.big_bingo_id]
- if cfg then
- self.txtPrice.text = cfg.worth
- local resouce_id_list = ErlangParser:GetInstance():Parse(cfg.resouce_id)
- local res_id = 0
- local career = RoleManager.Instance.mainRoleInfo.career
- for _, v in pairs(resouce_id_list) do
- if tonumber(v[1]) == career then
- res_id = tonumber(v[2])
- break
- end
- end
- local posList = ErlangParser:GetInstance():Parse(cfg.resouce_height)
- local x, y = 0, 0
- if TableSize(posList) > 0 then
- x = tonumber(posList[1][1]) * 0.6
- y = tonumber(posList[1][2]) * 0.6
- end
- local data = {
- clothe_res_id = res_id,
- type = SceneBaseType.Role,
- layer_name = self.layer_name,
- action_name_list = {"show", "idle"},
- can_rotate = true,
- layout_file = self.layout_file,
- position = Vector3(x, y - 40, 0)}
- lua_resM:SetRoleModel(self, self.goodsCon, data)
- self:SetGiftName(cfg)
- self.goodsCon:GetComponent("RawImage").raycastTarget = true
- end
-
- local player_list = win_info.bingo_player_list
- if #player_list > 0 then
- self.scroll.sizeDelta = Vector2(400, 60 * #player_list)
- for i, v in ipairs(player_list) do
- local item = self.item_list[i]
- if not item then
- item = CloudShoppingRewardItem.New(self.scroll)
- self.item_list[i] = item
- end
- item:SetData(v.server_num, v.name)
- item:SetPosition(0, (i - 1) * 60)
- end
- end
-
- self.empty:SetActive(TableSize(player_list) == 0)
- end
-
- function CloudShoppingRewardView:SetGiftName(cfg)
- local reward = ErlangParser:GetInstance():Parse(cfg.rewards)
- if TableSize(reward) > 0 then
- local type_id = 0
- if cfg.reward_type == 2 then --按职业区分
- local career = RoleManager.Instance:GetMainRoleVo().career
- for _,v in pairs(reward) do
- if career == tonumber(v[1]) then
- type_id = tonumber(v[2][1][2])
- break
- end
- end
- else
- type_id = tonumber(reward[1][2])
- end
- local goods_basic = GoodsModel:getInstance():GetGoodsBasicByTypeId(type_id)
- if goods_basic then
- local goodsName = "<color="..WordManager.GetGoodsColor(goods_basic.color) .. "><a@><u>"..Trim(goods_basic.goods_name) .. "</u></a></color>"
- local numStr = "<color="..ColorUtil.GREEN..">(" .. cfg.award_count .. "份)</color>"
- self.txtNum.text = goodsName .. numStr
-
- local call_back = function(param, x, y)
- self:ClickBigRewardFunc(x,y)
- end
- AddUnderLineAndClick(self, self.txtNum.transform, call_back, false, true)
- end
- end
- end
-
- function CloudShoppingRewardView:ClickBigRewardFunc(x,y)
- local win_info = self.model.cloud_reward_info
- if not win_info then
- return
- end
- local cfg = Config.Cloudbuy[win_info.big_bingo_id]
- if not cfg then
- return
- end
-
- local reward = ErlangParser:GetInstance():Parse(cfg.rewards)
- if TableSize(reward) > 0 then
- local type_id = 0
- if cfg.reward_type == 2 then --按职业区分
- local career = RoleManager.Instance:GetMainRoleVo().career
- for _,v in pairs(reward) do
- if career == tonumber(v[1]) then
- type_id = tonumber(v[2][1][2])
- break
- end
- end
- else
- type_id = tonumber(reward[1][2])
- end
- local goods_basic = GoodsModel:getInstance():GetGoodsBasicByTypeId(type_id)
- if goods_basic then
- if goods_basic.type == GoodsModel.TYPE.EQUIP then
- local target_config = Config.Equipattr[type_id]
- if target_config then
- local dynamic = {}
- dynamic.type_id = type_id
- dynamic.rating = target_config.base_rating
- dynamic.equip_extra_attr = {}
- dynamic.equip_type = goods_basic.equip_type
- local target_pro = ErlangParser:GetInstance():Parse(target_config.recommend_attr)
- for i, v in ipairs(target_pro) do
- local attr = {}
- attr.color = tonumber(v[2][1])
- attr.attr_id = tonumber(v[2][2])
- if #v[2] == 5 then
- attr.type_id = 1
- attr.plus_interval = tonumber(v[2][4])
- attr.plus_unit = tonumber(v[2][5])
- else
- attr.type_id = 2
- attr.attr_val = tonumber(v[2][3])
- end
- table.insert(dynamic.equip_extra_attr, attr)
- end
-
- UIToolTipMgr:getInstance():AppendEquipShowTips(dynamic, x, y, EquipShowTips.EQUIP_RECOMMAND_TARGET)
- end
- else
- UIToolTipMgr:getInstance():AppendGoodsTips(type_id, x, y)
- end
- end
- end
- end
|