源战役客户端
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.
 
 
 
 
 

138 rindas
4.4 KiB

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