|
|
- GoodsUseToolTips = GoodsUseToolTips or BaseClass(BaseView)
-
- function GoodsUseToolTips:__init()
- self.base_file = "common"
- self.layout_file = "GoodsUseToolTips"
- self.layer_name = "Top"
- -- self.use_local_view = true
- self.use_background = true
- self.is_set_zdepth = true
- self.click_bg_toClose = true
- self.pos_x = 0
- self.pos_y = 0
-
- self.model = GoodsModel:getInstance()
-
- self.curr_height = 0
- self.load_callback = function ()
- self:LoadSuccess()
- self:InitData()
- end
- self.open_callback = function ()
- self:SetData()
- end
- self.close_callback = function ()
- end
- self.destroy_callback = function ()
-
- end
- end
-
- function GoodsUseToolTips:LoadSuccess()
- self.bg = self:GetChild("layout/bg")
- self.layout = self:GetChild("layout")
-
- self.icon_img = self:GetChild("layout/icon_con/img"):GetComponent("Image")
- self.icon = self:GetChild("layout/icon_con"):GetComponent("Image")
- self.name_text = self:GetChild("layout/nameText"):GetComponent("Text")
- self.use_text = self:GetChild("layout/useText"):GetComponent("Text")
- self.content_text = self:GetChild("layout/contentText")
- self.getway = self:GetChild("layout/getway")
- self.getway_text = self:GetChild("layout/getway/getwayText"):GetComponent("Text")
-
- self.close_btn = self:GetChild("layout/close_btn").gameObject
-
- self:InitEvent()
- end
-
- function GoodsUseToolTips:InitEvent()
- function OnClickEvent(target)
- if target == self.close_btn then
- self:Close()
- end
- end
- AddClickEvent(self.close_btn,OnClickEvent)
- end
-
- -- goods_id:物品id、max_times:最大使用数、attr:属性加成表 use_times:物品当前使用次数
- function GoodsUseToolTips:Open(goods_id,max_times,attr,use_times,x,y,module_id, combat)
- self.goods_id = goods_id
- self.max_times = max_times
- self.attr = attr
- self.use_times = use_times
- self.pos_x = x
- self.pos_y = y
- self.module_id = module_id
- self.combat = combat
- self.cfg = ConfigItemMgr.Instance:GetGoodItem(self.goods_id)
- BaseView.Open(self)
- end
-
- function GoodsUseToolTips:InitData() --在load完设置位置就不会出现闪屏的现象了
- if not self.is_loaded then return end
-
- if self.pos_x and self.pos_y then
- local x,y = ScreenToViewportPoint(self.pos_x,self.pos_y)
- if x+400 > ScreenWidth then
- x = ScreenWidth-400-20
- elseif x<20 then
- x = 20
- end
- if y < 20 then
- y = 20
- elseif y+self.bg.sizeDelta.y > ScreenHeight then
- y = ScreenHeight-self.bg.sizeDelta.y -20
- end
- self.layout.anchoredPosition = Vector3(x + 10,y +self.bg.sizeDelta.y,0)
- end
- end
-
- function GoodsUseToolTips:SetData()
- if self.cfg == nil then return end
-
- local id = self.goods_id
- local max_times = self.max_times
- local attr_list = self.attr
- if type(self.attr) ~= "table" then
- attr_list = ErlangParser:GetInstance():Parse(self.attr)
- end
-
- if self.cfg.color then
- lua_resM:setImageSprite(self, self.icon, "common_asset", "tyui_pz_"..self.cfg.color)
- end
-
- lua_resM:setOutsideImageSprite(self,self.icon_img,GameResPath.GetGoodsIcon(id))
- self.name_text.text = "<color="..ColorUtil.RED..">"..self.cfg.goods_name.."</color>"
- self.use_text.text = "当前使用: "..self.use_times.."/"..max_times.."个"
-
- self.curr_height = 161
- self.content_text.localPosition = co.TableXYZ(43,-self.curr_height,0)
- local str = ""
- if #attr_list >0 then
- local attr_name = ""
- local attr_value = ""
- for i = 1,#attr_list do
- local attr_id = attr_list[i].attr_id or tonumber(attr_list[i][1])
- local attr_num = attr_list[i].attr_num or tonumber(attr_list[i][2])
- attr_name = WordManager:GetProperties(attr_id,self.module_id)
- attr_value = WordManager:GetPropertyValue(attr_id,attr_num)
- --str = str .. WordManager:GetProperties(tonumber(attr_list[i][1])).."+"..attr_list[i][2].."\n"
- str = str .. attr_name.." + "..attr_value.."\n"
- end
- end
- if self.combat then
- str = str.."战力 + "..self.combat.."\n"
- end
- local good_type = WordManager:GetGoodsTypeStr(self.cfg.type, self.cfg.subtype)
- self.content_text:GetComponent("Text").text = "使用后"..good_type.."属性变化:\n".."<color="..ColorUtil.GREEN..">"..str.."</color>"
-
- self.curr_height = self.curr_height + self.content_text:GetComponent("Text").preferredHeight + 10
-
- self.getway.localPosition = co.TableXYZ(18,-self.curr_height,0)
- self.getway_text.text = "<color="..ColorUtil.BLUE..">"..Trim(self.cfg.getway).."</color>"
-
- self.bg.sizeDelta = Vector2(394,self.curr_height + 80)
-
- -- local x,y = ScreenToViewportPoint(self.pos_x,self.pos_y)
- -- self.layout.anchoredPosition = Vector3(x + 10,y +self.bg.sizeDelta.y,0)
- end
|