源战役客户端
Não pode escolher mais do que 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
 
 
 
 
 

144 linhas
5.1 KiB

require("game.shape.ShapeModel")
require("game.shape.view.ShapeBaseView")
require("game.shape.view.ShapeView")
require("game.shape.view.ShapeTabItem")
require("game.shape.view.ShapeAttrItem")
require("game.shape.view.ShapeSkinBtnItem")
require("game.shape.view.ShapeSuccessView")
ShapeController = ShapeController or BaseClass(BaseController, true)
local ShapeController = ShapeController
function ShapeController:__init()
ShapeController.Instance = self
self.model = ShapeModel:GetInstance()
self:AddEvents()
self:RegisterAllProtocal()
end
function ShapeController:__delete()
end
function ShapeController:RegisterAllProtocal( )
local register_cfg = {
[14610] = {--进阶珍宝
req_event_data = {ShapeModel.REQ_BASE_INFO,"c"},req_func = false,
handler = function(self,scmd)
self.model:SetBaseData(scmd)
self.model:Fire(ShapeModel.ANS_BASE_INFO)
self:CheckRedDot()
end,
},
[14611] = {--激活升星
-- type_id,id,opty
req_event_data = {ShapeModel.REQ_UP_OR_ACTIVE,"chc"},req_func = false,
handler = function(self,scmd)
if scmd.result == 1 then
local is_succ = self.model:RefreshOneData(scmd.type,scmd.id,"star",scmd.star)
-- if not is_succ then
self.model:Fire(ShapeModel.REQ_BASE_INFO,scmd.type)
-- end
self.model:Fire(ShapeModel.ANS_UP_OR_ACTIVE,scmd.type,scmd.id,scmd.star)
-------------------------
if scmd.opty == 1 then
Message.show("升星成功~")
else
Message.show("激活成功~")
self.model:Fire(ShapeModel.REQ_CHANGE_SKIN, scmd.type, scmd.id, scmd.star)
end
self.model:Fire(ShapeModel.OPEN_SUCCESS_VIEW,scmd.type,scmd.id,scmd.star)
self:CheckRedDot()
GlobalEventSystem:Fire(EventName.PLAY_UI_EFFECT_SOUND,LuaSoundManager.SOUND_UI.SUCCESS)
else
ErrorCodeShow(scmd.result)
end
end,
},
[14612] = {--珍宝幻化协议
--type_id,display
req_event_data = {ShapeModel.REQ_CHANGE_SKIN,"chh"},req_func = false,
handler = function(self,scmd)
if scmd.result == 1 then
if scmd.display == 0 then
Message.show("取消幻化成功~")
else
Message.show("幻化成功~")
end
local is_succ = self.model:RefreshSkinUsing(scmd.type,scmd.skin,scmd.star)
if not is_succ then
self.model:Fire(ShapeModel.REQ_BASE_INFO,scmd.type)
end
self.model:Fire(ShapeModel.ANS_CHANGE_SKIN)
GlobalEventSystem:Fire(EventName.PLAY_UI_EFFECT_SOUND,LuaSoundManager.SOUND_UI.SUCCESS)
else
ErrorCodeShow(scmd.result)
end
end,
},
}
self:RegisterProtocalByCFG(register_cfg)
local function OPEN_BASE_VIEW( open_type, sub_id )
local open_lv, open_data = GetModuleOpenLevel(146,open_type,true)
if not GetModuleIsOpen(146,open_type,true) then
local str = "该功能未开启"
if open_lv and RoleManager.Instance.mainRoleInfo.level < open_lv then
str = "该功能"..open_lv.."级开启"
end
Message.show(str)
return
end
-------------------------
if not self.shapebaseview then
self.shapebaseview = ShapeBaseView.New()
self.shapebaseview:Open(open_type,sub_id)
else
self.shapebaseview:ReOpen(open_type,sub_id)
end
end
self.model:Bind(ShapeModel.OPEN_BASE_VIEW,OPEN_BASE_VIEW)
local function OPEN_SUCCESS_VIEW( type_id,id,star )
print('----LZR ShapeController.lua 92-- type_id,id,star=',type_id,id,star)
if not self.shapesuccessview then
self.shapesuccessview = ShapeSuccessView.New()
self.shapesuccessview:Open(type_id,id,star)
end
end
self.model:Bind(ShapeModel.OPEN_SUCCESS_VIEW,OPEN_SUCCESS_VIEW)
end
function ShapeController:AddEvents()
local function on_game_start()
self.model:Reset()
local function delay( )
if GetModuleIsOpen(146,9) then
for k,v in pairs(self.model:GetUnlockType()) do
self.model:Fire(ShapeModel.REQ_BASE_INFO, k)
end
end
end
setTimeout(delay,1)
end
GlobalEventSystem:Bind(EventName.GAME_START, on_game_start)
local function onLevelChange( level )
if GetModuleOpenLevel( 146,9,true ) == level then
for k,v in pairs(self.model:GetUnlockType()) do
self.model:Fire(ShapeModel.REQ_BASE_INFO, k)
end
end
end
RoleManager:getInstance().mainRoleInfo:Bind(EventName.CHANGE_LEVEL, onLevelChange)
end
function ShapeController:CheckRedDot( )
local function call_backack( )
local bool_1 = self.model:CheckRedDot(true)
GlobalEventSystem:Fire(EventName.SHOW_FUNCTION_RED_POINT, 14609, bool_1)
self.model:Fire(ShapeModel.RedDotRefresh)
end
TimeManager.GetInstance():StartTime("ShapeController_CheckRedDot", 0.5, call_backack)
end