-- 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