ComposeInstructionView = ComposeInstructionView or BaseClass(BaseView) function ComposeInstructionView:__init() self.base_file = "common" self.layout_file = "InstructionSmallView" self.layer_name = "Activity" self.use_background = true self.click_bg_toClose = true self.background_alpha = 0 self:AddPreLoadList("common",{"InstructionSmallItem"}) self.model = ComposeModel:getInstance() self.item_list = {} self.load_callback = function() self:LoadSuccess() self:SetData() end self.close_callback = function () self:Clear() end end function ComposeInstructionView:Clear() for i,item in ipairs(self.item_list) do item:DeleteMe() end self.item_list = {} end function ComposeInstructionView:LoadSuccess() self.window = self:GetChild("Window") self.scroll_content = self:GetChild("Window/ScrollView/Viewport/Content") end function ComposeInstructionView:Open(data) self.data = data BaseView.Open(self) end function ComposeInstructionView:SetData() --self.windowTitleText.text = "合成说明" local height = 10 local info_list = self:GetInstruction() if info_list then local item = nil for i,vo in ipairs(info_list) do item = InstructionSmallItem.New(self.scroll_content) table.insert(self.item_list,item) item:SetData(vo) item:SetPosition(0,-height) height = height + item:GetHeight() end end self.scroll_content.sizeDelta = Vector2(self.scroll_content.sizeDelta.x, height) height = height + 30 height = height > 400 and 400 or height self.window.sizeDelta = Vector2(self.window.sizeDelta.x, height) --self.scroll_content.localPosition = Vector3.zero end function ComposeInstructionView:GetInstruction() local info_list = {[1] = {itemTitle = "", content = ""}} if self.model.cur_panel_id and self.data then local consumable = ErlangParser:GetInstance():Parse(self.data.regular_mat) local Irr_list = ErlangParser:GetInstance():Parse(self.data.irregular_mat) local ratio = ErlangParser:GetInstance():Parse(self.data.ratio) local is_god = false local str = "" local unit if consumable and #consumable > 0 then is_god = true for i, v in ipairs(consumable) do local goods_basic = GoodsModel:getInstance():GetGoodsBasicByTypeId(tonumber(v[2])) if goods_basic then if goods_basic.type == GoodsModel.TYPE.EQUIP then local attr = Config.Equipattr[goods_basic.type_id] if attr then str = str..string.format("%d件%d阶%d星%s%s,", tonumber(v[3]), ColorUtil.GREEN, attr.stage, attr.star, ColorUtil:GetColor(goods_basic.color), ColorUtil:getColorName(goods_basic.color), Config.ConfigEquipShow[goods_basic.subtype] and Config.ConfigEquipShow[goods_basic.subtype].name or "") end else str = str..tonumber(v[3]).."个"..Trim(goods_basic.goods_name).."," end end end end if ratio and #ratio > 0 then local min = 0 local max = #ratio for i, v in ipairs(ratio) do if tonumber(v[2]) > 0 then min = v[1] break end end if max then if min then str = str..min.."~"..max.."件" else str = str..max.."件" end end str = "1.本次合成需要消耗"..min.."~"..max.."件装备 \n2.少于最低数量合成概率为0" end local equip_attr local irr_basic if Irr_list and #Irr_list > 0 then irr_basic = GoodsModel:getInstance():GetGoodsBasicByTypeId(tonumber(Irr_list[1])) if self.model.cur_panel_id == ComposeModel.ComposePanelID.EQUIP_BEAST then equip_attr = Config.Eudemonsequipattr[tonumber(Irr_list[1])] else equip_attr = Config.Equipattr[tonumber(Irr_list[1])] end end if self.model.cur_panel_id == ComposeModel.ComposePanelID.EQUIP_BOY or self.model.cur_panel_id == ComposeModel.ComposePanelID.EQUIP_GIRL then local sex = "装备" --[[if self.model.cur_panel_id == ComposeModel.ComposePanelID.EQUIP_BOY then sex = "男装" else sex = "女装" end--]] if equip_attr and irr_basic then str = str..string.format("%d阶%d星%s%s", ColorUtil.GREEN, equip_attr.stage, equip_attr.star, ColorUtil:GetColor(irr_basic.color), ColorUtil:getColorName(irr_basic.color), sex) end str = str.."合成该装备;\n" str = str.."2"..self:GetInstructionString(1).."\n" str = str.."3"..self:GetInstructionString(is_god and 3 or 2) elseif self.model.cur_panel_id == ComposeModel.ComposePanelID.EQUIP_GUARD then if equip_attr and irr_basic then str = str..string.format("%d阶%d星%s%s", ColorUtil.GREEN, equip_attr.stage, equip_attr.star, ColorUtil:GetColor(irr_basic.color), ColorUtil:getColorName(irr_basic.color), Config.ConfigEquipShow[irr_basic.subtype] and Config.ConfigEquipShow[irr_basic.subtype].name or "") end str = str.."合成该装备;\n" str = str.."2"..self:GetInstructionString(1).."\n" str = str.."3"..self:GetInstructionString(is_god and 3 or 2) elseif self.model.cur_panel_id == ComposeModel.ComposePanelID.EQUIP_RING then if equip_attr and irr_basic then str = str..string.format("%d阶%d星%s%s", ColorUtil.GREEN, equip_attr.stage, equip_attr.star, ColorUtil:GetColor(irr_basic.color), ColorUtil:getColorName(irr_basic.color), Config.ConfigEquipShow[irr_basic.subtype] and Config.ConfigEquipShow[irr_basic.subtype].name or "") end str = str.."合成该装备;\n" str = str.."2"..self:GetInstructionString(1).."\n" elseif self.model.cur_panel_id == ComposeModel.ComposePanelID.EQUIP_BEAST then if equip_attr and irr_basic then str = str..string.format("%d星%s幻兽装备", ColorUtil.GREEN, equip_attr.star, ColorUtil:GetColor(irr_basic.color), ColorUtil:getColorName(irr_basic.color)) end str = str.."合成该装备;\n" str = str.."2"..self:GetInstructionString(4).."\n" elseif self.model.cur_panel_id == ComposeModel.ComposePanelID.EQUIP_SEAL then --[[if equip_attr and irr_basic then str = str..string.format("%d阶%d星%s%s", ColorUtil.GREEN, equip_attr.stage, equip_attr.star, ColorUtil:GetColor(irr_basic.color), ColorUtil:getColorName(irr_basic.color), Config.ConfigEquipShow[irr_basic.subtype] and Config.ConfigEquipShow[irr_basic.subtype].name or "") end str = str.."合成该装备;\n" str = str.."2"..self:GetInstructionString(1).."\n"--]] end info_list[1].content = str end return info_list end function ComposeInstructionView:GetInstructionString(index) local ins_list = { [1] = "、带有强化、镶嵌、套装、洗练属性的装备,以及绑定、穿戴中的装备不可合成;", [2] = "、合成有概率失败,放入的装备越多,成功率越高;", [3] = "、神装合成后可无损拆解,返还所有合成材料和装备,返还的装备部位随机;", [4] = "、合成后的装备的强化经验为消耗装备的经验之和;", } return ins_list[index] or "" end