源战役客户端
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.
 
 
 
 
 

179 lines
7.1 KiB

SplitView = SplitView or BaseClass(BaseView)
SplitView.TYPE =
{
SPLIT = 1, --拆分
BAT_USE = 2, --批量使用
BAT_DROP = 3, --批量丢弃
BAT_DECOMPOSE = 4, --批量分解
BAT_SEND_FLOWER = 5, --批量送礼
}
function SplitView:__init()
self.base_file = "bag"
self.layout_file = "BathandleView"
self.layer_name = "Top"
self.use_background = true
self.is_set_zdepth = true
self.type = SplitView.TYPE.SPLIT
self.blur_activity_bg = true
self.use_show_anim = true
self.use_hide_anim = true
self.load_callback = function ()
self:LocalSuccess()
end
self.open_callback = function ()
self:SetData()
end
self.destroy_callback = function ()
self:Remove()
end
end
function SplitView:Remove()
if self.icon_item then
self.icon_item:ReleaseObj()
self.icon_item = nil
end
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
end
function SplitView:LocalSuccess()
self.icon_item = UIObjPool:getInstance():PopItem(UIObjPool.UIType.AwardItem, self:GetChild("iconItem"))
self.icon_item:ChangeCountVisible(false)
self.bg_raw = self:GetChild("Window"):GetComponent("RawImage")
self.nameText = self:GetChild("nameText"):GetComponent("TextMeshProUGUI")
self.moneyIcon = self:GetChild("moneyIcon"):GetComponent("Image")
self.moneyText = self:GetChild("moneyText"):GetComponent("TextMeshProUGUI")
self.splitBtn = self:GetChild("splitBtn").gameObject
self.btnCancel = self:GetChild("btnCancel").gameObject
self.titleText = self:GetChild("Window/windowTitleCon/windowTitleText"):GetComponent("TextMeshProUGUI")
self.tipsText = self:GetChild("tipsText"):GetComponent("TextMeshProUGUI")
self.splitBtnText = self:GetChild("splitBtn/Text"):GetComponent("TextMeshProUGUI")
lua_resM:setOutsideRawImage(self, self.bg_raw, GameResPath.GetViewBigBg("tips_comm_bg6"), false)
self.addNumComponent = NumberSliderComponent.New(self:GetChild("addNumCon"))
self.addNumComponent:SetComponentWidth(428)
self:InitEvent()
end
function SplitView:InitEvent()
local function onBtnClickHandler(target)
if target == self.splitBtn then
if self.type == SplitView.TYPE.SPLIT then
GoodsModel:getInstance():Fire(GoodsModel.REQUEST_CCMD_EVENT,15005,self.goods_vo.goods_id, self.goods_vo.type_id,self.addNumComponent:GetCurrCount())
elseif self.type == SplitView.TYPE.BAT_USE then
GoodsModel:getInstance():Fire(GoodsModel.REQUEST_CCMD_EVENT,15050,self.goods_vo.goods_id, self.goods_vo.type_id,self.addNumComponent:GetCurrCount())
elseif self.type == SplitView.TYPE.BAT_DROP then
local num = self.addNumComponent:GetCurrCount()
local function ok()
GoodsModel:getInstance():Fire(GoodsModel.REQUEST_CCMD_EVENT,15051, 0 , {[1] ={ goods_id = self.goods_vo.goods_id, type_id = self.goods_vo.type_id, num = num} })
end
local str = string.format("是否丢弃 <color=#ff2e65> %d个 %s</color> ?", num, self.goods_vo.goods_name)
Alert.show(str,Alert.Type.Two,ok)
elseif self.type == SplitView.TYPE.BAT_DECOMPOSE then
local decompose_goods_list = {}
decompose_goods_list[1] = {
goods_id = self.goods_vo.goods_id,
type_id = self.goods_vo.type_id,
goods_num = self.addNumComponent:GetCurrCount(),
}
GoodsModel:getInstance():Fire(GoodsModel.REQUEST_CCMD_EVENT,15019,decompose_goods_list)
elseif self.type == SplitView.TYPE.BAT_SEND_FLOWER then
if self.extra_param_list and self.extra_param_list.send_role_id then
SocialityModel:getInstance():Fire(SocialityModel.REQUEST_CCMD_EVENT, 22301, self.extra_param_list.send_role_id, self.goods_vo.type_id, self.addNumComponent:GetCurrCount(), 0)
end
end
self:Close()
elseif target == self.btnCancel then
self:Close()
end
end
AddClickEvent(self.splitBtn,onBtnClickHandler)
AddClickEvent(self.btnCancel,onBtnClickHandler)
local function onChangeCountHandler(count)
self:ChangeCount(count)
end
self.change_count_id = self.addNumComponent:Bind(ComponentEvent.AddNumberComponent.CHANGE_COUNT,onChangeCountHandler)
end
function SplitView:Open(goods_vo, type, extra_param_list)
self.goods_vo = goods_vo
self.type = type or SplitView.TYPE.SPLIT
self.extra_param_list = extra_param_list
BaseView.Open(self)
end
function SplitView:SetData()
if self.goods_vo then
self.icon_item:SetData(self.goods_vo.type_id, self.goods_vo.goods_num)
self.icon_item:SetItemSize(78, 78)
self.icon_item:SetLimitState(BagModel:getInstance():GetGoodsLimitState(self.goods_vo))
local min, max, step, cur = 0, self.goods_vo.goods_num-1, 1, 1
self.splitBtnText.text = "确定"
if self.type == SplitView.TYPE.SPLIT then
self.titleText.text = "物品拆分"
self.tipsText.text = "选择要拆分物品的数量"
elseif self.type == SplitView.TYPE.BAT_USE then
self.titleText.text = "批量使用"
self.tipsText.text = "选择要使用物品的数量"
min = 1
max = self.goods_vo.goods_num
cur = self.goods_vo.goods_num
elseif self.type == SplitView.TYPE.BAT_DROP then
self.titleText.text = "批量丢弃"
self.tipsText.text = "选择要丢弃物品的数量"
min = 1
max = self.goods_vo.goods_num
cur = self.goods_vo.goods_num
elseif self.type == SplitView.TYPE.BAT_DECOMPOSE then
self.titleText.text = "批量分解"
self.tipsText.text = "选择要分解物品的数量"
min = 1
max = self.goods_vo.goods_num
cur = self.goods_vo.goods_num
elseif self.type == SplitView.TYPE.BAT_SEND_FLOWER then
self.titleText.text = "批量赠送"
self.tipsText.text = "选择要赠送的物品数量"
min = 1
max = self.extra_param_list and self.extra_param_list.gift_have_num and self.extra_param_list.gift_have_num or 1
-- cur = self.extra_param_list and self.extra_param_list.gift_have_num and self.extra_param_list.gift_have_num or 1
if self.goods_vo.type_id == 102401 then
cur = self.extra_param_list and self.extra_param_list.gift_have_num and self.extra_param_list.gift_have_num <= 5 and self.extra_param_list.gift_have_num or 5
else
cur = 1
end
self.splitBtnText.text = "赠送"
self.icon_item:SetData(self.goods_vo.type_id, self.extra_param_list and self.extra_param_list.gift_have_num and self.extra_param_list.gift_have_num or 1)
self.icon_item:ChangeCountVisible(true,999)
end
self.addNumComponent:InitData(min, max, step, cur)
self:ChangeCount(1)
local basic = GoodsModel:getInstance():GetGoodsBasicByTypeId(self.goods_vo.type_id)
local name = Trim(self.goods_vo.goods_name)
if self.goods_vo.type == 11 and (self.goods_vo.subtype == 10 or self.goods_vo.subtype == 11) then
local type_id, _name, icon = EquipModel:getInstance():GetIdentifyGoodsNameAndIcon(self.goods_vo.type_id, RoleManager.Instance.mainRoleInfo.career, self.goods_vo.color)
name = _name
end
self.nameText.text = HtmlColorTxt(name, WordManager.GetGoodsColor(self.goods_vo.color))
end
end
function SplitView:ChangeCount(count)
end