NewMainRoleHatredView = NewMainRoleHatredView or BaseClass(BaseView) local NewMainRoleHatredView = NewMainRoleHatredView function NewMainRoleHatredView:__init() self.base_file = "newMainRole" self.layout_file = "NewMainRoleHatredView" self.layer_name = "Activity" self.destroy_imm = true self.use_background = true self.is_set_zdepth = true self.blur_activity_bg = true self.hatred_item = nil -- 免罪券awardItem self.hatred_item_goodID = 102001 -- 免罪券道具id self.change_scene_close = true --是否切换场景时关闭(弹出界面使用) --self.append_to_ctl_queue = false --是否要添加进界面堆栈 --self.need_show_money = false --是否要显示顶部的金钱栏 self.model = NewMainRoleModel:getInstance() 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 NewMainRoleHatredView:Open( ) --self.data = data BaseView.Open(self) end function NewMainRoleHatredView:LoadSuccess() local nodes = { "window:raw","window/closeBtn:obj", "window/windowTitleText:tmp", "confirmBtn:obj", "itemCon", "cur_hatred:tmp", "item_name:tmp", "item_num:tmp", "intro1:tmp", "intro2:tmp", } self:GetChildren(nodes) self.windowTitleText_tmp.text = "罪恶值" self.cur_hatred_tmp.text = "罪恶值:" lua_resM:setOutsideRawImage(self, self.window_raw, GameResPath.GetViewBigBg("tips_comm_bg6"), false) end function NewMainRoleHatredView:AddEvent() local function click_event(target) if target == self.closeBtn_obj then self:Close() elseif target == self.confirmBtn_obj then if RoleManager.Instance.mainRoleInfo.hatred <= 0 then Message.show("当前善恶值为0,无需减少") return end local type_id = self.hatred_item_goodID local goods_num = GoodsModel:getInstance():GetTypeGoodsNum(type_id) if goods_num >= 1 then GlobalEventSystem:Fire(EventName.REDUCE_ROLE_HATRED, 1) else -- 获取物品价格及类型 local buy_price, _, price_type = GoodsModel:getInstance():GetGoodsPrice(type_id) -- 获取货币goodsid local price_id = WordManager:GetPriceTypeId(price_type) local goods_name = GoodsModel:getInstance():getGoodsName(type_id, true) local price_name = GoodsModel:getInstance():getGoodsName(price_id) local price_color = GoodsModel:getInstance():GetGoodsColor(price_id) local price_asset, price_icon = WordManager:GetCommonMoneyIcon(price_type) local ask_str1 = string.format("您的 %s 不足!", goods_name) local ask_str2 = string.format("%s 补全物品?", price_color, buy_price) local function ok_callback() GlobalEventSystem:Fire(EventName.REDUCE_ROLE_HATRED, 1) end local function rechanger_callback() if price_type == 1 then local function ok() self:Close() end local qc_data = { close_callback = ok, } GlobalEventSystem:Fire(EventName.OPEN_RECHARGE_TIP_VIEW, true, qc_data) elseif price_type == 2 then Message.show("您的红钻不足") end end local data = { gold_ab_res = price_asset, gold_res = price_icon, price = buy_price, insufficientText = ask_str1, priceText = ask_str2, titleText = "购买免罪券", ok_callback = ok_callback, rechanger_callback = rechanger_callback, no_need_toggle = true, } GlobalEventSystem:Fire(EventName.OPEN_COM_TOGGLE_TIP_VIEW, data) end end end AddClickEvent(self.closeBtn_obj, click_event, LuaSoundManager.SOUND_UI.NONE) AddClickEvent(self.confirmBtn_obj, click_event) local function on_change_hatred() self:UpdateView() end self.on_change_hatred_id = RoleManager.Instance.mainRoleInfo:BindOne("hatred", on_change_hatred) --背包物品发生变动时刷新免罪券数据(特指购买) local function refresh_hatred_item() self:UpdateView() end self.refresh_hatred_item_id = GoodsModel:getInstance():Bind(GoodsModel.CHANGE_BAGLIST, refresh_hatred_item) local function OPEN_VIP_VIEW( ) --vip界面打开了就关掉自己 self:Close() end self:BindEvent(GlobalEventSystem, EventName.OPEN_VIP_VIEW, OPEN_VIP_VIEW) end function NewMainRoleHatredView:OpenSuccess() self:UpdateView() end function NewMainRoleHatredView:UpdateView() self.intro1_tmp.text = "在野外击杀其他玩家会增加您的善恶值" self.intro2_tmp.text = "使用免罪券可减少10点善恶值,每在线30分钟会减少1点善恶值" local role_hatred = RoleManager.Instance.mainRoleInfo.hatred local goods_effect = Config.Goodseffect[self.hatred_item_goodID].effect_list local cost = stringtotable(goods_effect)[1][2] local str_3 = HtmlColorTxt( string.format("(惩罚:罪恶值大于0时被其他玩家击杀将失去%s红钻)", cost ) , '#ff203a', 0.7) self.cur_hatred_tmp.text = "罪恶值:" .. HtmlColorTxt( role_hatred , '#fdffc2') .. str_3 if not self.hatred_item then self.hatred_item = UIObjPool:getInstance():PopItem(UIObjPool.UIType.AwardItem,self.itemCon) self.hatred_item:SetAnchoredPosition(0, 0) end self.hatred_item:SetOpenShowGetWay(true) self.hatred_item:SetData(self.hatred_item_goodID) self.hatred_item:SetItemSize(78, 78) local goods_num = GoodsModel:getInstance():GetTypeGoodsNum(self.hatred_item_goodID) local goods_name = GoodsModel:getInstance():getGoodsName(self.hatred_item_goodID, true) self.item_num_tmp.text = string.format("%s/1", goods_num>0 and ColorUtil.GREEN or ColorUtil.RED, goods_num) self.item_name_tmp.text = goods_name end function NewMainRoleHatredView:DestroySuccess( ) if self.hatred_item then UIObjPool:getInstance():PushItem(UIObjPool.UIType.AwardItem, self.hatred_item) end self.hatred_item = nil if self.on_change_hatred_id then RoleManager.Instance.mainRoleInfo:UnBind(self.on_change_hatred_id) self.on_change_hatred_id = nil end if self.refresh_hatred_item_id then GoodsModel:getInstance():UnBind(self.refresh_hatred_item_id) self.refresh_hatred_item_id = nil end end