源战役客户端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

119 lines
3.4 KiB

--[[
@ 道具选择面板中的可选择Item
--]]
OptionalItem = OptionalItem or BaseClass(BaseItem)
local OptionalItem = OptionalItem
OptionalItem.Type =
{
EQUIP = 1, --装备道具(显示战力)
LUCKY = 2, --幸运物道具(显示幸运值)
NORMAL = 3, --普通物品(显示数量)
}
function OptionalItem:__init(parent_wnd,prefab_asset,layer_name, item_type)
self.layout_file = "OptionalItem"
self.prefab_asset = UiFactory.getPrefab(UIType.BarsItem)
self.is_delay_callback = true
self.item_type = item_type or OptionalItem.Type.EQUIP
self:Load()
end
function OptionalItem:__delete()
if self.icon_item then
self.icon_item:DeleteMe()
self.icon_item = nil
end
end
function OptionalItem:Load_callback()
self.icon = self:GetChild("icon")
self.name, self.desc = GetChildTexts(self.transform, {"name","desc"})
self.clickBg = self:GetChild("clickBg").gameObject
self.icon_item = AwardItem.New(self.icon, false, self.layer_name)
self.icon_item:SetItemSize(74, 74)
self.icon_item:SetLoadCall(function ()
self.icon_item.stren.alignment = UnityEngine.TextAnchor.MiddleCenter
self.icon_item.stren_prefix = "Lv."
SetAnchoredPosition(self.icon_item.stren.transform, 0, -28)
end)
self:InitEvent()
if self.need_refresh then
self:SetData(self.goods_vo, self.callback)
end
end
function OptionalItem:InitEvent()
local function onBtnClickHandler(target)
if self.callback ~= nil then
self.callback(self.goods_vo)
end
end
AddClickEvent(self.clickBg, onBtnClickHandler, 2)
end
function OptionalItem:SetData(goods_vo, callback)
self.goods_vo = goods_vo
self.callback = callback
if self.is_loaded then
--[[local function callback(dynamic)
print("OptionalItem:SetData() dynamic = ")
PrintTable(dynamic)
end
GoodsModel:getInstance():GetDynamic(self.goods_vo.goods_id, callback)--]]
local type_id = tonumber(self.goods_vo.type_id)
self.icon_item:SetData(type_id, nil, nil, self.goods_vo.stren)
self.name.text = "<color="..ColorUtil:GetColor(self.goods_vo.color)..">"..Trim(self.goods_vo.goods_name).."</color>"
if self.item_type == OptionalItem.Type.EQUIP then
self.desc.text = "<color=#7B432C>战力:</color>"..self:GetItemFightValue(self.goods_vo)
elseif self.item_type == OptionalItem.Type.LUCKY then
self.desc.text = "<color=#7B432C>幸运值</color>:"..self:GetItemLuckyValue(self.goods_vo)
else
self.desc.text = "<color=#7B432C>数量:</color>"..self:GetItemNum(self.goods_vo)
end
else
self.need_refresh = true
end
end
function OptionalItem:GetItemLuckyValue(goods_vo)
local type_id = tonumber(goods_vo.type_id)
local cur_formula = WingModel:getInstance().cur_formula
if Config.Twingcomposeratio[type_id] and cur_formula then
local grade = cur_formula.grade
local ratio_list = ErlangParser:GetInstance():Parse(Config.Twingcomposeratio[type_id].ratio)
for i, v in ipairs(ratio_list) do
if tonumber(v[1]) == grade then
return v[2]
end
end
return 0
end
end
function OptionalItem:GetItemFightValue(goods_vo)
local type_id = tonumber(goods_vo.type_id)
local basic = GoodsModel:getInstance():GetGoodsBasicByTypeId(type_id)
if basic.type == 20 and Config.Twing[type_id] then
return Config.Twing[type_id].power
else
return goods_vo.combat_power
end
end
function OptionalItem:GetItemNum(goods_vo)
local type_id = tonumber(goods_vo.type_id)
local have_num = GoodsModel:getInstance():GetTypeGoodsNum(type_id)
return have_num or 0
end