|
|
- require("game.proto.144.Require144")
- require("game.soulPower.SoulPowerModel")
- require("game.soulPower.SoulPowerConst")
- require("game.soulPower.SoulPowerAttrItem")
- require("game.soulPower.SoulPowerChargeView")
- require("game.soulPower.SoulPowerConditionItem")
- require("game.soulPower.SoulPowerItem")
- require("game.soulPower.SoulPowerView")
-
- SoulPowerController = SoulPowerController or BaseClass(BaseController, true)
- local SoulPowerController = SoulPowerController
-
- function SoulPowerController:__init()
- SoulPowerController.Instance = self
- self.model = SoulPowerModel:getInstance()
- self:AddEvents()
- self:RegisterAllProtocal()
- end
-
- function SoulPowerController:__delete()
- end
-
- function SoulPowerController:RegisterAllProtocal( )
- self:RegisterProtocal(14400, "Handle14400")
- self:RegisterProtocal(14401, "Handle14401")
- self:RegisterProtocal(14402, "Handle14402")
- self:RegisterProtocal(14403, "Handle14403")
-
- end
-
- function SoulPowerController:AddEvents()
- local function onGameStart()
- local function onDelay()
- self.model:Fire(SoulPowerConst.REQUEST_CCMD_EVENT,14400)
- end
- setTimeout(onDelay, 2)
- end
- GlobalEventSystem:Bind(EventName.GAME_START, onGameStart)
-
- -- 满足等级后请求信息
- local function onLevelUp(level)
- if level == GetModuleOpenLevel(144) then
- self.model:Fire(SoulPowerConst.REQUEST_CCMD_EVENT,14400)
- end
- if level > GetModuleOpenLevel(144) then--检测突破条件
- self.model:Fire(SoulPowerConst.UPDATE_RED_DOT, SoulPowerConst.RedType.UpGrade)
- end
- end
- RoleManager.Instance.mainRoleInfo:Bind(EventName.CHANGE_LEVEL, onLevelUp)
-
- -- 战力更新
- local function update_power_change()
- self.model:UpdateChangePower(false)
- end
- if self.update_power_change_id then
- RoleManager.Instance.mainRoleInfo:UnBind(self.update_power_change_id)
- self.update_power_change_id = nil
- end
- self.update_power_change_id = RoleManager.Instance.mainRoleInfo:BindOne("fighting", update_power_change)
-
- --请求信息 i|32 h|16 c|8 l|64 s|字符串
- local function onRequestHandler(...)
- local args_list = {...}
- if args_list[1] == 14400 then
- self:SendFmtToGame(args_list[1])
- elseif args_list[1] == 14401 then
- self:SendFmtToGame(args_list[1],"h",args_list[2])
- -- self:test14401()
- else
- self:SendFmtToGame(args_list[1])
- end
- end
- self.model:Bind(SoulPowerConst.REQUEST_CCMD_EVENT, onRequestHandler)
-
- local function on_open_soul_power_view(flag)
- if self.soul_power_view == nil then
- self.soul_power_view = SoulPowerView.New()
- end
- if self.soul_power_view:HasOpen() and flag then
- self.soul_power_view:Close()
- return
- end
- self.soul_power_view:Open()
- end
- self.model:Bind(SoulPowerConst.OPEN_SOUL_POWER_VIEW,on_open_soul_power_view)
-
- local function on_open_soul_power_charge_view(sp_grade, sp_lv)
- if self.soul_power_charge_view == nil then
- self.soul_power_charge_view = SoulPowerChargeView.New()
- end
- self.soul_power_charge_view:Open(sp_grade, sp_lv)
- end
- self.model:Bind(SoulPowerConst.OPEN_SOUL_POWER_CHARGE_VIEW,on_open_soul_power_charge_view)
-
- local function update_red_dot_by_tab_id_func( red_type )--主要的更新红点方法
- if not red_type then
- self.model:IsNeedRedAll()
- else
- self.model:IsNeedRed(red_type)
- end
- local red_dot = self.model:GetAllRedDot()
- local bool = false
- for i,v in pairs(red_dot) do
- if v then
- bool = true
- break
- end
- end
- NewMainRoleModel:getInstance():Fire(NewMainRoleModel.UPDATE_RED_DOT, NewMainRoleModel.TabId.SOULPOWER)
- end
- self.model:Bind(SoulPowerConst.UPDATE_RED_DOT,update_red_dot_by_tab_id_func)
-
- --相关物品数量刷新时
- local function on_goods_update( )
- self.model:Fire(SoulPowerConst.UPDATE_RED_DOT, SoulPowerConst.RedType.Activate)
- end
- self.model:Bind(SoulPowerConst.UPDATE_SP_GOODS_NUM, on_goods_update)
- end
-
- function SoulPowerController:Handle14400( )
- local vo = SCMD14400.New(true)
- -- print("==WQ==:SoulPowerController [start:122] vo:", vo)
- -- PrintTable(vo)
- -- print("==WQ==:SoulPowerController [end]")
- if vo then
- self.model:SetSoulPowerBaseData(vo)
- self.model:Fire(SoulPowerConst.UPDATE_SOUL_POWER_VIEW)
- self.model:Fire(SoulPowerConst.UPDATE_RED_DOT)
- end
- end
-
- function SoulPowerController:Handle14401( )
- local vo = SCMD14401.New(true)
- if vo then
- if vo.res~=1 then
- ErrorCodeShow(vo.res)
- end
- end
- end
-
- function SoulPowerController:Handle14402( )
- local vo = SCMD14402.New(true)
- if vo then
- if vo.res~=1 then
- ErrorCodeShow(vo.res)
- else
- --弹技能获取界面
- if not self.model.old_sp_grade then return end
- local next_sp_grade = self.model.old_sp_grade+1
- local next_sp_grade_cfg = self.model:GetSoulPowerGradeCfgByGrade(next_sp_grade)
- local old_sp_grade_cfg = self.model:GetSoulPowerGradeCfgByGrade(self.model.old_sp_grade)
- local skill_data = stringtotable(next_sp_grade_cfg.skills)
- local old_skill_data = stringtotable(old_sp_grade_cfg.skills)
- if skill_data[1][1] == old_skill_data[1][1] and skill_data[1][2] == old_skill_data[1][2] then return end
- skill_data = {
- skill_id = skill_data[1][1],
- skill_level = skill_data[1][2],
- }
- FuncOpenController.Instance:ShowSkill(skill_data)
- end
- end
- end
-
- function SoulPowerController:Handle14403( )
- local vo = SCMD14403.New(true)
- if vo then
- if vo.res~=1 then
- ErrorCodeShow(vo.res)
- end
- end
- end
|