源战役客户端
Você não pode selecionar mais de 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.
 
 
 
 
 

115 linhas
3.6 KiB

-- require("game.proto.425.Require425")
require("game.adventureBook.AdventureBookView")
require("game.adventureBook.AdventureBookDetailView")
require("game.adventureBook.AdventureBookItem")
require("game.adventureBook.AdventureBookDetailItem")
require("game.adventureBook.AdventureBookModel")
AdventureBookController = AdventureBookController or BaseClass(BaseController)
function AdventureBookController:__init()
AdventureBookController.Instance = self
self.model = AdventureBookModel:getInstance()
self:RegisterAllProtocals()
self:InitEvent()
end
function AdventureBookController:RegisterAllProtocals()
-- self:RegisterProtocal(42500,"handler42500") --错误码
-- self:RegisterProtocal(42501,"handler42501") --未激活的冒险之书
-- self:RegisterProtocal(42502,"handler42502") --冒险之书信息列表
-- self:RegisterProtocal(42503,"handler42503") --激活冒险之书
-- self:RegisterProtocal(42504,"handler42504") --更新冒险之书信息
end
function AdventureBookController:InitEvent()
--打开界面
local function open_func(bool, type)
if not self.AdventureBookView then
self.AdventureBookView = AdventureBookView.New()
end
if bool then
if not self.AdventureBookView:HasOpen() then
self.AdventureBookView:Open(type)
end
else
if self.AdventureBookView:HasOpen() then
self.AdventureBookView:Close()
end
end
end
GlobalEventSystem:Bind(EventName.OPEN_ADVENTURE_BOOK_VIEW, open_func)
local function open_detail_func(type, subtype,is_close)
if is_close then
if self.AdventureBookDetailView then
self.AdventureBookDetailView:Close()
return
end
end
if not self.AdventureBookDetailView then
self.AdventureBookDetailView = AdventureBookDetailView.New()
end
if not self.AdventureBookDetailView:HasOpen() then
self.AdventureBookDetailView:Open(type, subtype)
end
end
self.model:Bind(AdventureBookModel.UPDATE_ADVENTURE_BOOK_DETAIL_VIEW, open_detail_func)
-- local function onGameStart()
-- self.model:Fire(AdventureBookModel.REQUEST_PROTOCAL, 42501)
-- self.model:Fire(AdventureBookModel.REQUEST_PROTOCAL, 42502, AdventureBookType.MAP)
-- end
-- GlobalEventSystem:Bind(EventName.GAME_START, onGameStart)
-- local function requset_func(...)
-- local args = {...}
-- if args[1] == 42502 then
-- self:SendFmtToGame(args[1], "c", args[2])
-- elseif args[1] == 42503 then
-- self:SendFmtToGame(args[1], "cc", args[2], args[3])
-- else
-- self:SendFmtToGame(args[1])
-- end
-- end
-- self.model:Bind(AdventureBookModel.REQUEST_PROTOCAL, requset_func)
end
function AdventureBookController:handler42500()
local scmd = SCMD42500.New(true)
ErrorCodeShow(scmd.error_code, scmd.args)
end
function AdventureBookController:handler42501()
local scmd = SCMD42501.New(true)
self.model:SetUnActiveList(scmd.list)
end
function AdventureBookController:handler42502()
local scmd = SCMD42502.New(true)
self.model:SetBookInfo(scmd)
self.model:Fire(AdventureBookModel.UPDATE_ADVENTURE_BOOK_INFO, scmd.type)
end
function AdventureBookController:handler42503()
local scmd = SCMD42503.New(true)
if scmd.error_code == 1 then
self.model:RemoveActiveBook(scmd.type, scmd.subtype)
local cfg = Config.Adventurebook[scmd.type.."@"..scmd.subtype]
if cfg then
local attr = ErlangParser:GetInstance():Parse(cfg.attr)
if attr then
GlobalEventSystem:Fire(EventName.OPEN_UPGRADE_SHOW_VIEW, 8, 1, "adv_text_"..scmd.type.."_"..scmd.subtype, "activate_book_"..scmd.type.."_"..scmd.subtype, GetFighting(attr), nil, cfg.attr)
end
end
else
ErrorCodeShow(scmd.error_code)
end
end
function AdventureBookController:handler42504()
local scmd = SCMD42504.New(true)
self.model:UpdateBookInfo(scmd.update_list)
end