源战役客户端
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 
 
 

207 строки
6.6 KiB

CSGWarOverlordView = CSGWarOverlordView or BaseClass(BaseView)
local CSGWarOverlordView = CSGWarOverlordView
function CSGWarOverlordView:__init()
self.base_file = "CSGWar"
self.layout_file = "CSGWarOverlordView"
self.layer_name = "UI"
self.destroy_imm = true
self.use_background = true --全屏界面默认使用这个参数
self.hide_maincancas = true --全屏界面需要放开隐藏主UI
self.change_scene_close = true
self.append_to_ctl_queue = true --是否要添加进界面堆栈
self.need_show_money = true --是否要显示顶部的金钱栏
self.blur_activity_bg = true
self.close_fog = true
self.model = CSGWarModel:getInstance()
self.load_callback = function ()
self:LoadSuccess()
end
self.open_callback = function ( )
self:OpenSuccess()
end
self.switch_callback = function(index)
self:SwitchTab(index)
end
self.destroy_callback = function ( )
self:DestroySuccess()
end
end
function CSGWarOverlordView:Open( )
--self.data = data
BaseView.Open(self)
end
function CSGWarOverlordView:LoadSuccess()
local nodes = {
"role_con2", "bg:raw", "role_con1", "role_con3", "buy_btn/price_text:tmp", "buy_btn:obj:imgex", "close_btn:obj",
"name_text1:tmp","tip_text:obj",
"name_text2:tmp",
"name_text3:tmp","con_money","image:obj",
}
self:GetChildren(nodes)
self:AddEvent()
self:CreateMoneyView()
lua_resM:setOutsideRawImage(self,self.bg_raw,GameResPath.GetViewBigBg("csgwar_overlord_bg"),false)
local function bg_back_func( ... )
if self.background_wnd and self.background_wnd:GetComponent("RawImageExtend") then
self:MoveUIToBack(self.background_wnd:GetComponent("RawImageExtend"))
self:MoveUIToBack(self.bg_raw)
end
end
if self.background_wnd then
bg_back_func()
else
self.bg_back_func = bg_back_func
end
end
function CSGWarOverlordView:AddEvent()
local function on_close( )
self:Close()
end
AddClickEvent(self.close_btn_obj,on_close)
local function on_buy( )
local is_overlord = RoleManager.Instance.mainRoleInfo.is_overlord
if is_overlord == 1 then
self:DoBuy()
else
Message.show("仅限霸主购买哦~")
end
end
AddClickEvent(self.buy_btn_obj, on_buy)
end
function CSGWarOverlordView:OpenSuccess()
self:UpdateView()
end
function CSGWarOverlordView:UpdateView()
local data = self.model:GetCSGWarOverlordInfo()
self.can_buy = data.is_buy == 1
for i,v in ipairs(data.reward) do
self:SetModel(v,i)
end
self.type1_cost = data.price[1].num
local str = string.format("%s%s",WordManager:GetMoneyFaceStr( data.price[1].type ),data.price[1].num)
self.price_text_tmp.text = str
self.buy_btn_imgex.gray = RoleManager.Instance.mainRoleInfo.is_overlord ~= 1 or not self.can_buy
self.tip_text_obj:SetActive(RoleManager.Instance.mainRoleInfo.is_overlord ~= 1 or not self.can_buy)
self.image_obj:SetActive(RoleManager.Instance.mainRoleInfo.is_overlord == 1 and self.can_buy)
end
function CSGWarOverlordView:SetModel( data,index )
local basic = GoodsModel:getInstance():GetGoodsBasicByTypeId(data.type_id)
if not basic then
print("not goods db data: ",data.type_id)
return
end
self["name_text"..index.."_tmp"].text = Trim(basic.goods_name)
if basic.type == GoodsModel.TYPE.FASHION then
local fashion_id,color_id = FashionModel:getInstance():GetFashionIdByGoodsId(data.type_id)
local cur_cfg = Config.Fashionstarup[fashion_id.."@"..color_id.."@0"]
local career = RoleManager.Instance.mainRoleInfo.career
local fashion_type = FuncOpenModel.TypeId.Clothes
local figure_id = nil
if fashion_id then
if cur_cfg.pos_id == FashionModel.FashionType.HAT then--头饰
career = 0 --目前头饰 是通用的
figure_id = FashionModel:GetInstance():GetFashionModelId(fashion_id, career, color_id)
fashion_type = FuncOpenModel.TypeId.Hat
elseif cur_cfg.pos_id == FashionModel.FashionType.CLOTHES then--服饰
figure_id = FashionModel:GetInstance():GetFashionModelId(fashion_id, career, color_id)
if figure_id < 1000 then
figure_id = figure_id + career * 1000
end
if color_id > 1 then
figure_id = figure_id .. color_id
end
elseif cur_cfg.pos_id == FashionModel.FashionType.WING then--背饰
figure_id = FashionModel:GetInstance():GetFashionModelId(fashion_id, career, color_id)
fashion_type = FuncOpenModel.TypeId.wing
elseif cur_cfg.pos_id == FashionModel.FashionType.WEAPON then--武器
fashion_type = FuncOpenModel.TypeId.Weapon
figure_id = FashionModel:GetInstance():GetFashionModelId(fashion_id, career, color_id)
if figure_id < 1000 then
figure_id = figure_id + career * 1000
end
elseif cur_cfg.pos_id == FashionModel.FashionType.HEAD then--头发
fashion_type = FuncOpenModel.TypeId.Head
figure_id = FashionModel:GetInstance():GetFashionModelId(fashion_id, career, color_id)
if figure_id < 1000 then
figure_id = figure_id + career * 1000
end
if color_id > 1 then
figure_id = figure_id .. color_id
end
end
end
local res_data = {
father_node = self,
transform = self["role_con"..index],
fashion_type = fashion_type,
layer_name = self.layer_name,
size = Vector2(720,720),
scale = 150,
figure_id = figure_id,
ui_model_type = UIModelCommon.ModelType.Model,
position = Vector3(0,-100,0)
}
FuncOpenModel:getInstance():SetModelRes(res_data)
elseif basic.type == GoodsModel.TYPE.FosterSkin then
--珍宝
local show_conf = ShapeModel:GetInstance():GetConfByGoodsId( data.type_id )
local res_data = {
father_node = self,
transform = self["role_con"..index],
fashion_type = show_conf.type + 1000,
layer_name = self.layer_name,
size = Vector2(720,720),
scale = 150,
figure_id = show_conf.model,
ui_model_type = UIModelCommon.ModelType.Model,
position = Vector3(0,-50,0)
}
FuncOpenModel:getInstance():SetModelRes(res_data)
end
end
function CSGWarOverlordView:CreateMoneyView( )
if not self.money_view then
self.money_view = UIMoneyView.New(self.con_money)
end
self.money_view:SetPosition(0,0)
self.money_view:SetData()
end
function CSGWarOverlordView:DoBuy( )
local function ok_callback()
self.model:Fire(CSGWarConst.REQ_CSGWAR_SCMD, 60123)
end
local priceText = string.format("<color=%s>%s</color> 彩钻购买", ColorUtil.YELLOW_DARK, self.type1_cost)
local data = {
insufficientText = "",
price = self.type1_cost,
priceText = priceText,
titleText = "提示",
ok_callback = ok_callback,
no_need_toggle = false,
}
if not self.can_buy then
ok_callback()
else
GlobalEventSystem:Fire(EventName.OPEN_COM_TOGGLE_TIP_VIEW, data)
end
end
function CSGWarOverlordView:DestroySuccess( )
if self.money_view then
self.money_view:DeleteMe()
self.money_view = nil
end
end