HorseEquipInfoTips = HorseEquipInfoTips or BaseClass(EquipToolTips) HorseEquipInfoTips.ONLY_SHOW = 0 --只展示信息 -- HorseEquipInfoTips.COMPOSE_OFF = 1 --显示熔炼按钮,点击后 熔炼坐骑装备物品 -- HorseEquipInfoTips.OFF_AND_REPLACE = 2 --显示穿戴和脱下按钮 HorseEquipInfoTips.OFF = 1 --穿戴状态 只显示脱下 升级 HorseEquipInfoTips.WEAR = 2 --背包状态 只显示穿戴 熔炼 HorseEquipInfoTips.ALL = 3 --所有的坐骑装备按钮都显示 HorseEquipInfoTips.NONE = 4 --所有按钮都不显示 HorseEquipInfoTips.FORGE = 5 --打造状态 只显示打造按钮 HorseEquipInfoTips.FORGE_GET_NEW = 6 --打造获得新装备 与旧装备的对比 HorseEquipInfoTips.UNKNOWN = 7 --打造 提前显示的打造成功的装备 显示?号 HorseEquipInfoTips.MATERIAL = 8 --打造的材料替换和取出 function HorseEquipInfoTips:__init() self.base_file = "common" self.layout_file = "EquipToolTips" self.layer_name = "Top" self.use_background = true self.click_bg_toClose = true self.close_mode = CloseMode.CloseDestroy self.destroy_imm = true self.horseModel = HorseModel:getInstance() self.goods_vo = nil self.cell = nil --坐骑装备特殊 需要自己通过配置找到装备可以穿戴的位置 self.load_callback = function () self:LoadSuccess() end self.open_callback = function () self:SetData() end self.close_callback = function () end self.destroy_callback = function () self:Remove() end end --[[ type_id 物品id type 打开类型 判断是需要脱下装备还是需要穿戴 basic_attr 基本属性 attr_list 传奇属性列表 parm 坐骑装备的打造界面 需要的额外参数 判断是哪个材料的位置 --]] function HorseEquipInfoTips:Open(type_id, x, y, goods_vo, type, basic_attr, attr_list, parm) if not Config.Mountequipattr[type_id] then print("not horse config attr",type) self:Close() return end self.type_id = type_id self.pos_x = x self.pos_y = y self.goods_vo = goods_vo self.open_type = type self.basic_attr = basic_attr self.attr_list = attr_list self.parm = parm if not self.cell then self.cell = self.horseModel:GetEquipWearPos(self.type_id) end BaseView.Open(self) end function HorseEquipInfoTips:LoadSuccess() self.gameObject:SetActive(false) self.layout,self.bg,self.career_conta,self.descCon,self.expired_label, self.icon_con,self.depot_conta,self.star_conta,self.ScrollView, self.ScrollViewContent,self.ScrollViewViewport, self.line1,self.line2, self.line3,self.line4, self.line5,self.line6, self.line7,self.line8, self.line9,self.line10, self.btn_conta,self.down_arrow,self.sell_conta, self.compare_conta,self.addNumCon, self.stone_conta, self.normal = GetChildTransforms(self.transform, { "layout","layout/normal/bg","layout/normal/career_conta","layout/normal/descCon","layout/normal/expired_label", "layout/normal/icon_con","layout/normal/depot_conta","layout/normal/star_conta","layout/normal/ScrollView", "layout/normal/ScrollView/Viewport/Content","layout/normal/ScrollView/Viewport", "layout/normal/ScrollView/Viewport/Content/line1","layout/normal/ScrollView/Viewport/Content/line2", "layout/normal/ScrollView/Viewport/Content/line3","layout/normal/ScrollView/Viewport/Content/line4", "layout/normal/ScrollView/Viewport/Content/line5","layout/normal/ScrollView/Viewport/Content/line6", "layout/normal/ScrollView/Viewport/Content/line7","layout/normal/ScrollView/Viewport/Content/line8", "layout/normal/ScrollView/Viewport/Content/line9","layout/normal/ScrollView/Viewport/Content/line10", "layout/normal/btn_conta","layout/normal/down_arrow","layout/normal/sell_conta", "layout/compare_conta","layout/normal/btn_conta/buyCon/addNumCon", "layout/normal/ScrollView/Viewport/Content/stone_conta", "layout/normal", }) self.descLabel,self.getWayLabel,self.nameText, self.step_num,self.composite_score,self.equip_score, self.career,self.level,self.equip_pos, self.fight,self.depot_score,self.depot_text, self.base_name,self.baseName, self.basePro,self.strengthAdd, self.add_name,self.addName, self.addPro,self.wash_name, self.washName,self.washPro, self.spirit_name,self.spiritName, self.spiritPro,self.stone_name, self.suit_name,self.suitNameList, self.suitNum,self.suitName, self.suitPro,self.wake_base_name, self.wake_baseName,self.wake_basePro, self.wake_baseAdd,self.wake_stren_name, self.wake_strenName,self.wake_strenPro, self.wake_strenAdd,self.wake_suit_name, self.wake_suitNum,self.wake_suitName, self.wake_suitPro,self.wake_suitAdd, self.magic_skill_name,self.magic_skillName, self.magic_skillLevel,self.price_label, self.limitText = GetChildTexts(self.transform, { "layout/normal/descCon/descLabel","layout/normal/descCon/getWayLabel","layout/normal/nameText", "layout/normal/step_num","layout/normal/composite_score","layout/normal/equip_score", "layout/normal/career_conta/career","layout/normal/level","layout/normal/career_conta/equip_pos", "layout/normal/fight","layout/normal/depot_conta/depot_score","layout/normal/depot_conta/Text (5)", "layout/normal/ScrollView/Viewport/Content/line1/Text","layout/normal/ScrollView/Viewport/Content/baseName", "layout/normal/ScrollView/Viewport/Content/basePro","layout/normal/ScrollView/Viewport/Content/strengthAdd", "layout/normal/ScrollView/Viewport/Content/line2/Text","layout/normal/ScrollView/Viewport/Content/addName", "layout/normal/ScrollView/Viewport/Content/addPro","layout/normal/ScrollView/Viewport/Content/line5/Text", "layout/normal/ScrollView/Viewport/Content/washName","layout/normal/ScrollView/Viewport/Content/washPro", "layout/normal/ScrollView/Viewport/Content/line6/Text","layout/normal/ScrollView/Viewport/Content/spiritName", "layout/normal/ScrollView/Viewport/Content/spiritPro","layout/normal/ScrollView/Viewport/Content/line3/Text", "layout/normal/ScrollView/Viewport/Content/line4/Text","layout/normal/ScrollView/Viewport/Content/suitNameList", "layout/normal/ScrollView/Viewport/Content/suitNum","layout/normal/ScrollView/Viewport/Content/suitName", "layout/normal/ScrollView/Viewport/Content/suitPro","layout/normal/ScrollView/Viewport/Content/line7/Text", "layout/normal/ScrollView/Viewport/Content/wakeBaseName","layout/normal/ScrollView/Viewport/Content/wakeBasePro", "layout/normal/ScrollView/Viewport/Content/wakeBaseAdd","layout/normal/ScrollView/Viewport/Content/line8/Text", "layout/normal/ScrollView/Viewport/Content/wakeStrenName","layout/normal/ScrollView/Viewport/Content/wakeStrenPro", "layout/normal/ScrollView/Viewport/Content/wakeStrenAdd","layout/normal/ScrollView/Viewport/Content/line9/Text", "layout/normal/ScrollView/Viewport/Content/wakeSuitNum","layout/normal/ScrollView/Viewport/Content/wakeSuitName", "layout/normal/ScrollView/Viewport/Content/wakeSuitPro","layout/normal/ScrollView/Viewport/Content/wakeSuitAdd", "layout/normal/ScrollView/Viewport/Content/line10/Text","layout/normal/ScrollView/Viewport/Content/magicSkillName", "layout/normal/ScrollView/Viewport/Content/magicSkillLevel","layout/normal/sell_conta/price_label", "layout/normal/btn_conta/buyCon/limitText" }) self.forgeBtn, self.upgradeBtn,self.upgradeBtn_dot, self.smeltBtn,self.smeltBtn_dot, self.strengthBtn,self.strengthBtn_dot, self.washBtn,self.wearBtn, self.insertBtn,self.insertBtn_dot, self.offBtn,self.decomposeBtn, self.composeBtn,self.sellBtn, self.storeBtn,self.takeBtn, self.exchangeBtn,self.destoryBtn, self.donateBtn,self.renewBtn, self.shelvesUpBtn,self.shelvesDownBtn, self.eatBtn,self.buyCon, self.buyBtn,self.oneKeyBuyBtn = GetChildGameObjects(self.transform, { "layout/normal/btn_conta/forgeBtn", "layout/normal/btn_conta/upgradeBtn","layout/normal/btn_conta/upgradeBtn/dot", "layout/normal/btn_conta/smeltBtn","layout/normal/btn_conta/smeltBtn/dot", "layout/normal/btn_conta/strengthBtn","layout/normal/btn_conta/strengthBtn/dot", "layout/normal/btn_conta/washBtn","layout/normal/btn_conta/wearBtn", "layout/normal/btn_conta/insertBtn","layout/normal/btn_conta/insertBtn/dot", "layout/normal/btn_conta/offBtn","layout/normal/btn_conta/decomposeBtn", "layout/normal/btn_conta/composeBtn","layout/normal/btn_conta/sellBtn", "layout/normal/btn_conta/storeBtn","layout/normal/btn_conta/takeBtn", "layout/normal/btn_conta/exchangeBtn","layout/normal/btn_conta/destoryBtn", "layout/normal/btn_conta/donateBtn","layout/normal/btn_conta/renewBtn", "layout/normal/btn_conta/shelvesUpBtn","layout/normal/btn_conta/shelvesDownBtn", "layout/normal/btn_conta/eatBtn","layout/normal/btn_conta/buyCon", "layout/normal/btn_conta/buyCon/buyBtn","layout/normal/btn_conta/oneKeyBuyBtn" }) self.step_bg,self.sell_icon,self.wear_icon = GetChildImages(self.transform, { "layout/normal/setp_bg","layout/normal/sell_conta/icon","layout/normal/wear_icon", }) self.career_conta_pos = self.career_conta.transform.localPosition self.depot_conta_pos = self.depot_conta.transform.localPosition self.btn_list = {self.forgeBtn, self.upgradeBtn, self.smeltBtn, self.strengthBtn, self.washBtn, self.wearBtn, self.insertBtn, self.offBtn, self.decomposeBtn, self.sellBtn, self.storeBtn, self.takeBtn, self.exchangeBtn, self.destoryBtn, self.donateBtn, self.renewBtn, self.shelvesUpBtn, self.shelvesDownBtn, self.composeBtn, self.eatBtn, self.buyCon, self.oneKeyBuyBtn} self.icon_item = HorseBagIconItem.New(self.icon_con, false, self.layer_name) self.icon_item:ChangeCountVisible(false) -- self.addNumComponent = AddNumberComponent.New(self.addNumCon) -- self.addNumComponent:SetVisibleCalcBtn(false) self:InitEvent() self.stageBg, self.step_num_obj, self.text1_obj, self.text2_obj = GetChildGameObjects(self.transform, { "layout/normal/stageBg", "layout/normal/step_num", "layout/normal/Text1", "layout/normal/Text2", }) self.careerName, self.addStrengthProp = GetChildTexts(self.transform, { "layout/normal/career_conta/careerName", "layout/normal/ScrollView/Viewport/Content/addStrengthProp", }) self.replace_btn_text = self:GetChildTexts({"layout/normal/btn_conta/strengthBtn/Text"}) self.replace_btn_text.text = "替换" self.careerName.text = "品质:" self.stageBg:SetActive(false) self.step_num_obj:SetActive(false) -- self.text1_obj:SetActive(false) -- lua_resM:setImageSprite(self, self.offBtn.transform:GetComponent("Image"), "alphaCommon_asset", "tyui_btn_1") -- lua_resM:setImageSprite(self, self.smeltBtn.transform:GetComponent("Image"), "alphaCommon_asset", "tyui_btn_2") -- EquipToolTips.LoadSuccess(self) -- if self.open_type == HorseEquipInfoTips.OFF then --穿戴在身上的就显示升级战力 加 基础属性战力 在背包、熔炼背包、打造背包的就显示基础属性战力 -- if not self.cell then -- self.cell = self.horseModel:GetEquipWearPos(self.goods_vo.type_id) -- end -- self.horseModel:Fire(HorsePetEvent.REQUEST_HORSE_UPGRADE, self.cell) -- else -- self:SetCombat(nil, 2) -- end -- self.level.gameObject:SetActive(false) self.text1_obj.transform:GetComponent("Text").text = "部位:" self.text2_obj.transform:GetComponent("Text").text = "评分:" -- self.equip_score.gameObject:SetActive(false) -- self.text2_obj:SetActive(false) end function HorseEquipInfoTips:InitEvent() local function onClickHandler(target) if target == self.wearBtn then self.horseModel:Fire(HorsePetEvent.WEAR_HORSE_EQUIP, self.goods_vo.goods_id) elseif target == self.upgradeBtn then self.horseModel:Fire(HorsePetEvent.SHOW_UPGRADE_VIEW, true, self.goods_vo) elseif target == self.smeltBtn then self:SmeltEquipFunc() elseif target == self.offBtn then self.horseModel:Fire(HorsePetEvent.OFF_HORSE_EQUIP, self.goods_vo.goods_id) elseif target == self.forgeBtn then local cfg = self.horseModel:GetHorseEquipNewMakeCfg(self.goods_vo.type_id) if cfg then self.horseModel:Fire(HorsePetEvent.SHOW_HORSE_FORGE, self.goods_vo, true) -- self.horseModel:ClearForgeMaterialeVoDic(2, true) self.horseModel.new_is_forge = false else Message.show("此装备无法继续打造") end elseif target == self.takeBtn then -- 坐骑打造界面 点击材料 取出 if self.parm then if self.parm == HorseModel.MATERIAL_ITEM.MATERIAL_1_CANCLE then self.horseModel:ClearForgeMaterialeVoDic(1, nil, 1) elseif self.parm == HorseModel.MATERIAL_ITEM.MATERIAL_2_CANCLE then self.horseModel:ClearForgeMaterialeVoDic(1, nil, 2) elseif self.parm == HorseModel.EXTRA_ITEM.EXTRA_1_CANCLE then self.horseModel:ClearForgeMaterialeVoDic(2) end end elseif target == self.strengthBtn then -- 坐骑打造界面 点击材料 替换 if self.parm then if self.parm == HorseModel.MATERIAL_ITEM.MATERIAL_1_CANCLE then self.horseModel:Fire(HorsePetEvent.SELECT_MATERIAL_VIEW, 1, true, 1) elseif self.parm == HorseModel.MATERIAL_ITEM.MATERIAL_2_CANCLE then self.horseModel:Fire(HorsePetEvent.SELECT_MATERIAL_VIEW, 1, true, 2) elseif self.parm == HorseModel.EXTRA_ITEM.EXTRA_1_CANCLE then self.horseModel:Fire(HorsePetEvent.SELECT_MATERIAL_VIEW, 2, true) end end end self:Close() end AddClickEvent(self.wearBtn, onClickHandler, 2) AddClickEvent(self.upgradeBtn, onClickHandler, 2) AddClickEvent(self.smeltBtn, onClickHandler, 2) AddClickEvent(self.offBtn, onClickHandler, 2) AddClickEvent(self.forgeBtn, onClickHandler, 2) AddClickEvent(self.takeBtn, onClickHandler, 2) AddClickEvent(self.strengthBtn, onClickHandler, 2) --更新装备的战力 local function onUpdateCombat(vo) -- if vo.goods_id == self.goods_vo.goods_id then -- self:SetCombat(vo, 1) self.level_vo = vo self.composite_score.text = self:GetFightList(self.dynamic, self.equip_basic) local basic = nil if self.type_id then basic = GoodsModel:getInstance():GetGoodsBasicByTypeId(self.type_id) end local base_pro = ErlangParser:GetInstance():Parse(basic.base_attrlist) self:SetProperty(base_pro, 0, basic.equip_type) self:SetAddProperty(self.dynamic) self:RefreshPosAndSize(self.dynamic) if self.open_type == HorseEquipInfoTips.OFF or self.horseModel:CheckIsWearEquipByVo(self.goods_vo) then if self.cell then self.upgradeBtn_dot:SetActive(self.horseModel:CheckEquipUpgradeRed(self.cell)) end end -- end end self.update_equip_combat_id = self.horseModel:Bind(HorsePetEvent.SHOW_HORSE_UPGRADE, onUpdateCombat) end function HorseEquipInfoTips:Remove() if self.icon_item then self.icon_item:DeleteMe() self.icon_item = nil end if self.compareTips then self.compareTips:DeleteMe() self.compareTips = nil end self:DeleteArrowTip() if self.addNumComponent then if self.change_count_id then self.addNumComponent:UnBind(self.change_count_id) self.change_count_id = nil end self.addNumComponent:DeleteMe() self.addNumComponent = nil end if self.update_equip_combat_id then self.horseModel:UnBind(self.update_equip_combat_id) self.update_equip_combat_id = nil end end function HorseEquipInfoTips:SetData() if self.type_id == nil --[[or self.goods_vo == nil--]] then return end if self.open_type == HorseEquipInfoTips.UNKNOWN then local basic = nil if self.type_id then basic = GoodsModel:getInstance():GetGoodsBasicByTypeId(self.type_id) self.equip_basic = basic end if basic then local cfg = Config.Mountequipattr[self.type_id] if cfg then self.composite_score.text = cfg.base_rating -- self.equip_score.text = cfg.base_rating self.equip_score.text = ""..cfg.base_rating.."" -- self.level.text = ""..cfg.base_rating.."" local base_pro = ErlangParser:GetInstance():Parse(basic.base_attrlist) self:SetProperty(base_pro, 0, basic.equip_type) self:SetAddProperty() self:RefreshPosAndSize(self.dynamic) end end if self.icon_item then local goods_vo = self.goods_vo if goods_vo == nil then local basic = GoodsModel:getInstance():GetGoodsBasicByTypeId(self.type_id) goods_vo = {type_id = self.type_id, color = basic.color, goods_num = 1, bind = basic.bind} end self.icon_item:SetData(goods_vo) if self.open_type == HorseEquipInfoTips.UNKNOWN and self.horseModel.forge_view then self.icon_item:SetLockIconActive(true) end end else if self.goods_vo.goods_id then local function callback(dynamic) self.dynamic = dynamic -- self.equip_score.text = dynamic.rating -- self.level.text = ""..dynamic.rating.."" self.equip_score.text = ""..dynamic.rating.."" if dynamic.equip_extra_attr then local basic = nil if self.type_id then basic = GoodsModel:getInstance():GetGoodsBasicByTypeId(self.type_id) self.equip_basic = basic end if basic then if self.open_type == HorseEquipInfoTips.OFF or self.horseModel:CheckIsWearEquipByVo(self.goods_vo) then --穿戴在身上的就显示升级战力 加 基础属性战力 在背包、熔炼背包、打造背包的就显示基础属性战力 if not self.cell then self.cell = self.horseModel:GetEquipWearPos(self.goods_vo.type_id) end self.horseModel:Fire(HorsePetEvent.REQUEST_HORSE_UPGRADE, self.cell) else -- self:SetCombat(nil, 2) self.composite_score.text = self:GetFightList(self.dynamic, basic) local base_pro = ErlangParser:GetInstance():Parse(basic.base_attrlist) self:SetProperty(base_pro, 0, basic.equip_type) self:SetAddProperty(dynamic) self:RefreshPosAndSize(self.dynamic) end -- local base_pro = ErlangParser:GetInstance():Parse(basic.base_attrlist) -- self:SetProperty(base_pro, 0, basic.equip_type) end -- self:SetAddProperty(dynamic) -- self.dynamic = dynamic -- self:RefreshPosAndSize(self.dynamic) -- self:SetUnknownView(self.ScrollViewContent, self.addPro.transform, self.add_property_len, self.addStrengthProp) -- if self.open_type == HorseEquipInfoTips.UNKNOWN then -- local text_root -- local text_txt -- text_root = UiFactory.createChild(self.career_conta, UIType.Label, "expire_label") -- text_txt = text_root:GetComponent("Text") -- text_root.transform.pivot = Vector2(0,1) -- text_root.transform.anchorMin = Vector2(0, 1) -- text_root.transform.anchorMax = Vector2(0, 1) -- text_txt.alignment = UnityEngine.TextAnchor.UpperLeft -- self:SetUnknownView(self.career_conta, self.career.transform, 1, text_txt) -- text_root = UiFactory.createChild(self.normal, UIType.Label, "expire_label") -- text_txt = text_root:GetComponent("Text") -- text_root.transform.pivot = Vector2(0,1) -- text_root.transform.anchorMin = Vector2(0, 1) -- text_root.transform.anchorMax = Vector2(0, 1) -- text_txt.alignment = UnityEngine.TextAnchor.UpperLeft -- self:SetUnknownView(self.normal, self.composite_score.transform, 1, text_txt, 13) -- end end if self.icon_item then self.icon_item:SetData(self.goods_vo) if self.open_type == HorseEquipInfoTips.UNKNOWN then self.icon_item:SetLockIconActive(true) end end end GoodsModel:getInstance():GetDynamic(self.goods_vo.goods_id, callback) end end if not self.cell then self.cell = self.horseModel:GetEquipWearPos(self.type_id) end local view_type = 2 if self.open_type == HorseEquipInfoTips.FORGE and self.horseModel.new_is_forge then if self.horseModel:IsNewGoodsVo(self.goods_vo.goods_id) then lua_resM:setImageSprite(self, self.wear_icon, "uiComponent_asset", "tsui_dzh") end if self.horseModel:GetForgeOldGoodsVo() and self.horseModel:IsNewGoodsVo(self.goods_vo.goods_id) and self.horseModel.has_show_after_forge_tips == false then self.show_compare_tips = true self.have_equip_data = self.horseModel:GetForgeOldGoodsVo() view_type = 1 end elseif self.open_type == HorseEquipInfoTips.WEAR then self.show_compare_tips, self.have_equip_data = self.horseModel:ShowCompareTips(self.goods_vo.goods_id, self.cell) view_type = 2 end if self.show_compare_tips then self.compare_conta.gameObject:SetActive(true) self.compareTips = self.compareTips or HorseEquipCompareTips.New(self.compare_conta, nil, self.layer_name) self.compareTips:SetData(self.have_equip_data, view_type) else self.compare_conta.gameObject:SetActive(false) end local cfg = self.horseModel:GetHorseEquipAttrCfg(self.type_id) if cfg then local quality_cfg = Config.ConfigQualityName.HorseEquipQualityName[cfg.quality] if quality_cfg then self.career.text = quality_cfg.name end local basic = GoodsModel:getInstance():GetGoodsBasicByTypeId(self.type_id) local name = nil if not self.goods_vo or (self.goods_vo and not self.goods_vo.goods_name) then name = basic.goods_name else name = self.goods_vo and self.goods_vo.goods_name or "" end self.nameText.text = ""..name.."" end local equip_info = self.horseModel:GetHorseEquipCfg() if cfg and equip_info then for k,v in pairs(equip_info) do if v and v.equip_type and cfg.pos and v.equip_type == cfg.pos then local str = Trim(v.pos_name) -- local str_arr = Split(self.goods_vo.goods_name, "·") -- self.level.text = str_arr[#str_arr] self.level.text = str end end end self:SetBtns() end function HorseEquipInfoTips:SetCombat(vo, view_type) if view_type then if view_type == 1 then --穿戴在身上的 if vo then if not self.cell then self.cell = self.horseModel:GetEquipWearPos(self.goods_vo.type_id) end local cfg = self.horseModel:GetHorseEquipLvCfg(self.cell, vo.lv) if cfg then local grade = self.horseModel:GetHorseEquipAttrCfg(self.goods_vo.type_id).base_rating self.composite_score.text = cfg.combat + grade end end elseif view_type == 2 then --在背包、熔炼背包、打造背包 self.composite_score.text = self.horseModel:GetHorseEquipAttrCfg(self.goods_vo.type_id).base_rating end end end function HorseEquipInfoTips:GetFightList(dynamic, basic) local list = {} if basic then --基础属性 local base_pro = ErlangParser:GetInstance():Parse(basic.base_attrlist) if self.open_type == HorseEquipInfoTips.OFF or self.horseModel:CheckIsWearEquipByVo(self.goods_vo) then --穿戴 --升级 if not self.cell then self.cell = self.horseModel:GetEquipWearPos(self.goods_vo.type_id) end local cfg = self.horseModel:GetHorseEquipLvCfg(self.cell, self.level_vo.lv) local equip_pro = ErlangParser:GetInstance():Parse(cfg.attr) for k,v in pairs(base_pro) do local next_attr = {} local next_prop = WordManager:GetPropertyValue(tonumber(v[1]),tonumber(v[2])) for i,j in pairs(equip_pro) do if tonumber(j[1]) == tonumber(v[1]) then next_prop = tonumber(next_prop) + tonumber(j[2]) next_attr.attr_id = tonumber(v[1]) next_attr.attr_val = next_prop local addition_list = self.horseModel.skill_to_attr_addition if self.cell and addition_list and addition_list[self.cell] then next_attr.attr_val = next_attr.attr_val + next_attr.attr_val*tonumber(addition_list[self.cell]) end end end table.insert(list, next_attr) end else for i,v in ipairs(base_pro) do table.insert(list,{attr_id = v[1],attr_val = v[2]}) end end end --极品属性 for i,v in ipairs(dynamic.equip_extra_attr) do table.insert(list,{attr_id = v.attr_id,attr_val = v.attr_val}) end local AllProList = {} local tempList = {} local mainVo = RoleManager.Instance.mainRoleInfo for i,v in ipairs(list) do local cfg = Config.ConfigAttributeAddition[v.attr_id] if cfg then local val = v.attr_val * mainVo[cfg.baseAttrVo] / 10000 table.insert(tempList,{attr_id = cfg.baseAttr,attr_val = val}) else table.insert(AllProList,v) end end for i,v in ipairs(tempList) do table.insert(AllProList,v) end local endList = {} for i,v in ipairs(AllProList) do table.insert(endList,{[1] = v.attr_id,[2] = v.attr_val}) end return GetFighting(endList) end --设置基础属性 function HorseEquipInfoTips:SetProperty(base_pro, stren, pos) local name_str = "" local pro_str = "" local stren_str = "" local prop local equip_pro local next_equip_pro if (self.open_type == HorseEquipInfoTips.OFF or self.horseModel:CheckIsWearEquipByVo(self.goods_vo)) and self.level_vo then if not self.cell then self.cell = self.horseModel:GetEquipWearPos(self.goods_vo.type_id) end local cfg = self.horseModel:GetHorseEquipLvCfg(self.cell, self.level_vo.lv) equip_pro = ErlangParser:GetInstance():Parse(cfg.attr) -- next_equip_pro = ErlangParser:GetInstance():Parse(self.horseModel:GetHorseEquipLvCfg(self.goods_vo.cell, (self.level_vo.lv+1)).attr) local addition_list = self.horseModel.skill_to_attr_addition if self.cell and addition_list[self.cell] then self.base_name.text = "基础属性 [技能加成+"..(tonumber(addition_list[self.cell])*100).."%]" end end for i,v in ipairs(base_pro) do name_str = name_str .. WordManager:GetProperties(tonumber(v[1])) prop = WordManager:GetPropertyValue(tonumber(v[1]),tonumber(v[2])) if equip_pro and #equip_pro > 0 then for x,y in pairs(equip_pro) do if y[1] == v[1] then prop = tonumber(prop) + tonumber(y[2]) stren_str = stren_str.."(强化+"..y[2]..")" end end end pro_str = pro_str.."+" .. prop--WordManager:GetPropertyValue(tonumber(v[1]),tonumber(v[2])) if i < #base_pro then name_str = name_str.."\n" pro_str = pro_str.."\n" stren_str = stren_str.."\n" end end self.baseName.text = name_str self.basePro.text = pro_str self.strengthAdd.text = ""..stren_str.."" -- if self.open_type == HorseEquipInfoTips.UNKNOWN then -- self.strengthAdd.gameObject:SetActive(true) -- else -- self.strengthAdd.gameObject:SetActive(false) -- end local off_y = 0 local line_y = 39 off_y = self.basePro.preferredHeight + 15 SetSizeDelta(self.baseName.transform, self.baseName.transform.sizeDelta.x, off_y) SetSizeDelta(self.basePro.transform, self.basePro.transform.sizeDelta.x, off_y) SetSizeDelta(self.strengthAdd.transform, self.strengthAdd.transform.sizeDelta.x, off_y) -- self:SetUnknownView(self.ScrollViewContent, self.basePro.transform, 2, self.strengthAdd) end --设置附加属性 function HorseEquipInfoTips:SetAddProperty(dynamic) if self.open_type == HorseEquipInfoTips.UNKNOWN then local cfg = self.horseModel:GetHorseEquipAttrCfg(self.type_id) local equip_extra_attr = nil if cfg then equip_extra_attr = cfg.recommend_attr equip_extra_attr = ErlangParser:GetInstance():Parse(equip_extra_attr) end if equip_extra_attr and #equip_extra_attr > 0 then local name_str = "" local pro_str = "" local recommand = "" local extra_attr = {} for k,v in pairs(equip_extra_attr) 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(extra_attr, attr) end if extra_attr then local function sort_func(vo1,vo2) if vo1.color ~= vo2.color then return vo1.color < vo2.color end return vo1.attr_id < vo2.attr_id end table.sort(extra_attr,sort_func) for i,v in ipairs(extra_attr) do if v.type_id == 1 then name_str = name_str .. ""..recommand.."每"..v.plus_interval.."级"..WordManager:GetProperties(tonumber(v.attr_id)).."" pro_str = pro_str .."+"..WordManager:GetPropertyValue(tonumber(v.attr_id), tonumber(v.plus_unit)) .. "" else name_str = name_str .. "" ..recommand..WordManager:GetProperties(tonumber(v.attr_id)).."" pro_str = pro_str .. "+"..WordManager:GetPropertyValue(tonumber(v.attr_id), v.attr_val).."" end if i < #extra_attr then name_str = name_str .. "\n" pro_str = pro_str .. "\n" end end end self.addName.text = name_str self.addPro.text = pro_str self.line2.gameObject:SetActive(true) self.addName.gameObject:SetActive(true) self.addPro.gameObject:SetActive(true) SetSizeDelta(self.addName.transform, 130, self.addName.preferredHeight + 15) SetSizeDelta(self.addPro.transform, self.addPro.preferredWidth--[[self.addPro.transform.sizeDelta.x--]], self.addPro.preferredHeight + 15) SetSizeDelta(self.addStrengthProp.transform, self.addStrengthProp.transform.sizeDelta.x, self.addPro.preferredHeight + 15) else self.line2.gameObject:SetActive(false) self.addName.gameObject:SetActive(false) self.addPro.gameObject:SetActive(false) SetSizeDelta(self.addName.transform, 130, self.addName.preferredHeight + 15) SetSizeDelta(self.addPro.transform, self.addPro.preferredWidth--[[self.addPro.transform.sizeDelta.x--]], self.addPro.preferredHeight + 15) SetSizeDelta(self.addStrengthProp.transform, self.addStrengthProp.transform.sizeDelta.x, self.addPro.preferredHeight + 15) end else if dynamic and dynamic.equip_extra_attr then local equip_extra_attr = nil equip_extra_attr = self.horseModel:SortEquipAttr(dynamic.equip_extra_attr) local name_str = "" local pro_str = "" local recommand = "" -- self.add_property_len = #equip_extra_attr if equip_extra_attr then for i,v in ipairs(equip_extra_attr) do if v.type_id == 1 then name_str = name_str .. ""..recommand.."每"..v.plus_interval.."级"..WordManager:GetProperties(tonumber(v.attr_id)).."" pro_str = pro_str .."+"..WordManager:GetPropertyValue(tonumber(v.attr_id), tonumber(v.plus_unit)) .. "" else name_str = name_str .. "" ..recommand..WordManager:GetProperties(tonumber(v.attr_id)).."" pro_str = pro_str .. "+"..WordManager:GetPropertyValue(tonumber(v.attr_id), v.attr_val).."" end if i < #equip_extra_attr then name_str = name_str .. "\n" pro_str = pro_str .. "\n" end end self.addName.text = name_str self.addPro.text = pro_str self.line2.gameObject:SetActive(true) self.addName.gameObject:SetActive(true) self.addPro.gameObject:SetActive(true) SetSizeDelta(self.addName.transform, 130, self.addName.preferredHeight + 15) SetSizeDelta(self.addPro.transform, self.addPro.preferredWidth--[[self.addPro.transform.sizeDelta.x--]], self.addPro.preferredHeight + 15) SetSizeDelta(self.addStrengthProp.transform, self.addStrengthProp.transform.sizeDelta.x, self.addPro.preferredHeight + 15) end else self.line2.gameObject:SetActive(false) self.addName.gameObject:SetActive(false) self.addPro.gameObject:SetActive(false) SetSizeDelta(self.addName.transform, 130, self.addName.preferredHeight + 15) SetSizeDelta(self.addPro.transform, self.addPro.preferredWidth--[[self.addPro.transform.sizeDelta.x--]], self.addPro.preferredHeight + 15) SetSizeDelta(self.addStrengthProp.transform, self.addStrengthProp.transform.sizeDelta.x, self.addPro.preferredHeight + 15) end end -- local cfg = self.horseModel:GetHorseEquipAttrCfg(self.goods_vo.type_id) -- local equip_extra_attr = nil -- if cfg then -- equip_extra_attr = cfg.recommend_attr -- equip_extra_attr = ErlangParser:GetInstance():Parse(equip_extra_attr) -- end -- if equip_extra_attr and #equip_extra_attr > 0 then -- -- if dynamic and dynamic.equip_extra_attr then -- -- local equip_extra_attr = nil -- -- equip_extra_attr = self.horseModel:SortEquipAttr(dynamic.equip_extra_attr) -- local name_str = "" -- local pro_str = "" -- local recommand = "" -- -- self.add_property_len = #equip_extra_attr -- -- if equip_extra_attr then -- -- for i,v in ipairs(equip_extra_attr) do -- -- if v.type_id == 1 then -- -- name_str = name_str .. ""..recommand.."每"..v.plus_interval.."级"..WordManager:GetProperties(tonumber(v.attr_id)).."" -- -- pro_str = pro_str .."+"..WordManager:GetPropertyValue(tonumber(v.attr_id), tonumber(v.plus_unit)) .. "" -- -- else -- -- name_str = name_str .. "" ..recommand..WordManager:GetProperties(tonumber(v.attr_id)).."" -- -- pro_str = pro_str .. "+"..WordManager:GetPropertyValue(tonumber(v.attr_id), v.attr_val).."" -- -- end -- -- if i < #equip_extra_attr then -- -- name_str = name_str .. "\n" -- -- pro_str = pro_str .. "\n" -- -- end -- -- end -- -- end -- -- if self.open_type == HorseEquipInfoTips.UNKNOWN then -- -- name_str = name_str.."\n?????????" -- -- end -- local extra_attr = {} -- for k,v in pairs(equip_extra_attr) 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(extra_attr, attr) -- end -- if extra_attr then -- local function sort_func(vo1,vo2) -- if vo1.color ~= vo2.color then -- return vo1.color < vo2.color -- end -- return vo1.attr_id < vo2.attr_id -- end -- table.sort(extra_attr,sort_func) -- for i,v in ipairs(extra_attr) do -- if v.type_id == 1 then -- name_str = name_str .. ""..recommand.."每"..v.plus_interval.."级"..WordManager:GetProperties(tonumber(v.attr_id)).."" -- pro_str = pro_str .."+"..WordManager:GetPropertyValue(tonumber(v.attr_id), tonumber(v.plus_unit)) .. "" -- else -- name_str = name_str .. "" ..recommand..WordManager:GetProperties(tonumber(v.attr_id)).."" -- pro_str = pro_str .. "+"..WordManager:GetPropertyValue(tonumber(v.attr_id), v.attr_val).."" -- end -- if i < #extra_attr then -- name_str = name_str .. "\n" -- pro_str = pro_str .. "\n" -- end -- end -- end -- self.addName.text = name_str -- self.addPro.text = pro_str -- self.line2.gameObject:SetActive(true) -- self.addName.gameObject:SetActive(true) -- self.addPro.gameObject:SetActive(true) -- SetSizeDelta(self.addName.transform, 130, self.addName.preferredHeight + 15) -- SetSizeDelta(self.addPro.transform, self.addPro.preferredWidth--[[self.addPro.transform.sizeDelta.x--]], self.addPro.preferredHeight + 15) -- SetSizeDelta(self.addStrengthProp.transform, self.addStrengthProp.transform.sizeDelta.x, self.addPro.preferredHeight + 15) -- else -- self.line2.gameObject:SetActive(false) -- self.addName.gameObject:SetActive(false) -- self.addPro.gameObject:SetActive(false) -- SetSizeDelta(self.addName.transform, 130, self.addName.preferredHeight + 15) -- SetSizeDelta(self.addPro.transform, self.addPro.preferredWidth--[[self.addPro.transform.sizeDelta.x--]], self.addPro.preferredHeight + 15) -- SetSizeDelta(self.addStrengthProp.transform, self.addStrengthProp.transform.sizeDelta.x, self.addPro.preferredHeight + 15) -- end -- -- end end -- create_trans 创建物体的节点 -- last_trans 前面的文本位置 后面的文本以前面的位置为齐 -- mask_num 箭头的多少个 和 问号的多少个 -- next_txt 下一个需要设置位置或者大小的物体 这个为text -- add_trans_y 当需要对last_trans的y轴做增加数值时 可以加 -- function HorseEquipInfoTips:SetUnknownView(create_trans, last_trans, mask_num, next_txt, add_trans_y) -- if self.open_type == HorseEquipInfoTips.UNKNOWN then -- if not last_trans or not create_trans then return end -- local last_trans_pos_x = last_trans.anchoredPosition.x -- local last_trans_pos_y = last_trans.anchoredPosition.y -- local last_trans_size_x = last_trans.sizeDelta.x -- if add_trans_y then -- last_trans_pos_y = last_trans_pos_y + add_trans_y -- end -- local count = mask_num -- if count >= 1 then -- local image_root -- local image_icon -- for i = 1, count do -- image_root = UiFactory.createChild(create_trans, UIType.ImageExtend) -- image_icon = image_root:GetComponent("ImageExtend") -- image_root.transform.pivot = Vector2(0,1) -- image_root.transform.anchorMin = Vector2(0, 1) -- image_root.transform.anchorMax = Vector2(0, 1) -- SetSizeDelta(image_root.transform, 33, 21) -- SetAnchoredPosition(image_root.transform, last_trans_pos_x + last_trans_size_x, last_trans_pos_y - ((i - 1) * 21)) -- lua_resM:setImageSprite(self, image_icon, "common_asset", "tyui_jt") -- end -- end -- if next_txt then -- SetAnchoredPosition(next_txt.transform, last_trans_pos_x + last_trans_size_x + 33, last_trans_pos_y) -- local mask_txt = "???" -- if mask_num then -- while mask_num > 0 do -- mask_txt = mask_txt.."\n"..mask_txt -- mask_num = mask_num - 1 -- end -- end -- next_txt.text = ""..mask_txt.."" -- end -- end -- end --按钮显示 function HorseEquipInfoTips:SetBtns() for i,v in ipairs(self.btn_list) do v:SetActive(false) end if self.open_type == HorseEquipInfoTips.OFF then self.offBtn:SetActive(true) self.upgradeBtn:SetActive(true) elseif self.open_type == HorseEquipInfoTips.WEAR then self.wearBtn:SetActive(true) self.smeltBtn:SetActive(true) elseif self.open_type == HorseEquipInfoTips.FORGE then self.forgeBtn:SetActive(true) elseif self.open_type == HorseEquipInfoTips.ONLY_SHOW then elseif self.open_type == HorseEquipInfoTips.UNKNOWN then elseif self.open_type == HorseEquipInfoTips.MATERIAL then self.takeBtn:SetActive(true) self.strengthBtn:SetActive(true) end self.line3.gameObject:SetActive(false) self.line4.gameObject:SetActive(false) self.line5.gameObject:SetActive(false) self.line6.gameObject:SetActive(false) self.line7.gameObject:SetActive(false) self.line8.gameObject:SetActive(false) self.line9.gameObject:SetActive(false) self.line10.gameObject:SetActive(false) self.washName.gameObject:SetActive(false) self.washPro.gameObject:SetActive(false) self.spiritName.gameObject:SetActive(false) self.spiritPro.gameObject:SetActive(false) self.stone_conta.gameObject:SetActive(false) self.suitNum.gameObject:SetActive(false) self.suitName.gameObject:SetActive(false) self.suitPro.gameObject:SetActive(false) self.suitNameList.gameObject:SetActive(false) self.wake_baseName.gameObject:SetActive(false) self.wake_basePro.gameObject:SetActive(false) self.wake_baseAdd.gameObject:SetActive(false) self.wake_strenName.gameObject:SetActive(false) self.wake_strenPro.gameObject:SetActive(false) self.wake_strenAdd.gameObject:SetActive(false) self.wake_suitNum.gameObject:SetActive(false) self.wake_suitName.gameObject:SetActive(false) self.wake_suitPro.gameObject:SetActive(false) self.wake_suitAdd.gameObject:SetActive(false) self.magic_skillName.gameObject:SetActive(false) self.magic_skillLevel.gameObject:SetActive(false) self.expired_label.gameObject:SetActive(false) self.descCon.gameObject:SetActive(false) end function HorseEquipInfoTips:SmeltEquipFunc() -- if self.goods_vo then -- local vo = {goods_id = self.goods_vo.goods_id, num = 1} -- local goods_list = {} -- table.insert(goods_list, vo) -- self.horseModel:Fire(HorsePetEvent.HORSE_EQUIP_SMELT, goods_list) -- end local list = {} table.insert(list, self.goods_vo) self.horseModel:Fire(HorsePetEvent.OPEN_HORSE_SPLIT_TIPS, list) end -- function HorseEquipInfoTips:AdjustLayoutPos() -- if self.pos_x and self.pos_y then -- local layout_width = self.bg.sizeDelta.x + self.btn_conta.sizeDelta.x -- local layout_height = self.bg.sizeDelta.y -- local x,y = ScreenToViewportPoint(self.pos_x,self.pos_y) -- local iphone_x_offset = math.max(ClientConfig.iphone_x_offset_left,ClientConfig.iphone_x_offset_right) -- if x + layout_width + 50 + iphone_x_offset * 2 > SrcScreenWidth then -- x = SrcScreenWidth - layout_width - 90 - iphone_x_offset * 2 -- end -- if y < layout_height + 50 then -- y = layout_height + 50 -- end -- self.layout.anchoredPosition = Vector2(x,y - ScreenHeight) -- end -- end --计算父物体大小 function HorseEquipInfoTips:CalculateSize(dynamic) local off_y = 0 local line_y = 39 off_y = self.basePro.preferredHeight + 15 off_y = off_y + line_y local show_add = false -- if dynamic and dynamic.equip_extra_attr and #dynamic.equip_extra_attr > 0 then -- show_add = true -- end if self.open_type == HorseEquipInfoTips.UNKNOWN then local cfg = self.horseModel:GetHorseEquipAttrCfg(self.type_id) local equip_extra_attr = nil if cfg then equip_extra_attr = cfg.recommend_attr equip_extra_attr = ErlangParser:GetInstance():Parse(equip_extra_attr) end if equip_extra_attr and #equip_extra_attr > 0 then show_add = true end else if dynamic and dynamic.equip_extra_attr and #dynamic.equip_extra_attr > 0 then show_add = true end end if show_add then off_y = off_y + line_y off_y = off_y + self.addPro.preferredHeight + 10 -- if self.open_type == HorseEquipInfoTips.UNKNOWN then -- off_y = off_y + 27 -- end end SetSizeDelta(self.ScrollViewContent.transform, self.ScrollViewContent.sizeDelta.x, off_y) end --更新各个控件的位置 function HorseEquipInfoTips:RefreshPosAndSize(dynamic) self.gameObject:SetActive(true) self:CalculateSize(dynamic) local off_y = 0 local line_y = 39 off_y = self.basePro.preferredHeight + 15 SetSizeDelta(self.baseName.transform, self.baseName.transform.sizeDelta.x, off_y) SetSizeDelta(self.basePro.transform, self.basePro.transform.sizeDelta.x, off_y) SetSizeDelta(self.strengthAdd.transform, self.strengthAdd.transform.sizeDelta.x, off_y) off_y = off_y + line_y local show_add = false -- if dynamic and dynamic.equip_extra_attr and #dynamic.equip_extra_attr > 0 then -- show_add = true -- end if self.open_type == HorseEquipInfoTips.UNKNOWN then local cfg = self.horseModel:GetHorseEquipAttrCfg(self.type_id) local equip_extra_attr = nil if cfg then equip_extra_attr = cfg.recommend_attr equip_extra_attr = ErlangParser:GetInstance():Parse(equip_extra_attr) end if equip_extra_attr and #equip_extra_attr > 0 then show_add = true end else if dynamic and dynamic.equip_extra_attr and #dynamic.equip_extra_attr > 0 then show_add = true end end if show_add then self.line2.gameObject:SetActive(true) self.addName.gameObject:SetActive(true) self.addPro.gameObject:SetActive(true) self.line2.localPosition = Vector3(0, -off_y, 0) off_y = off_y + line_y --显示推荐属性 -- if self.type and self.type == EquipShowTips.EQUIP_RECOMMAND_TARGET then -- SetSizeDelta(self.addName.transform, 130, self.addName.preferredHeight + 15) -- SetSizeDelta(self.addPro.transform, self.addPro.transform.sizeDelta.x, self.addPro.preferredHeight + 15) -- SetLocalPosition(self.addName.transform,self.addName.transform.localPosition.x, -off_y) -- SetLocalPosition(self.addPro.transform, 160, -off_y) -- else SetSizeDelta(self.addName.transform, self.addName.transform.sizeDelta.x, self.addName.preferredHeight + 15) SetSizeDelta(self.addPro.transform, self.addPro.preferredWidth--[[self.addPro.transform.sizeDelta.x--]], self.addPro.preferredHeight + 15) SetLocalPosition(self.addName.transform, self.addName.transform.localPosition.x, -off_y) SetLocalPosition(self.addPro.transform, self.addPro.transform.localPosition.x, -off_y) -- end off_y = off_y + self.addPro.preferredHeight + 10 -- if self.open_type == HorseEquipInfoTips.UNKNOWN then -- off_y = off_y + 27 -- end else self.line2.gameObject:SetActive(false) self.addName.gameObject:SetActive(false) self.addPro.gameObject:SetActive(false) end SetSizeDelta(self.ScrollViewContent.transform, self.ScrollViewContent.sizeDelta.x, off_y) SetSizeDelta(self.ScrollView.transform, self.ScrollView.sizeDelta.x, off_y) SetSizeDelta(self.ScrollViewViewport.transform, self.ScrollViewViewport.sizeDelta.x, off_y) SetSizeDelta(self.bg.transform, self.bg.sizeDelta.x, off_y - self.ScrollView.localPosition.y + 15 + (self.depot_conta.gameObject.activeSelf and 30 or 0)) self.btn_conta.anchoredPosition = Vector2(self.btn_conta.anchoredPosition.x, -(self.bg.sizeDelta.y - 100 - 15)) self.gameObject:SetActive(true) end