|
|
- require("game.proto.425.Require425")
- require("game.dance.DanceModel")
- -- 主界面舞姿选择界面
- require("game.dance.DanceMainUISelectPoseView")
- require("game.dance.DanceMainUISelectPoseItem")
- -- 舞姿界面
- require("game.dance.DancePoseView")
- require("game.dance.DancePoseItem")
-
-
- DanceController = DanceController or BaseClass(BaseController, true)
- local DanceController = DanceController
-
- --DanceController.IsDebug = true
-
- function DanceController:__init()
- DanceController.Instance = self
- self.model = DanceModel:getInstance()
- self:AddEvents()
- self:RegisterAllProtocal()
-
- end
-
- function DanceController:__delete()
- end
-
- function DanceController:RegisterAllProtocal( )
- local register_cfg = {
- [42500] = { -- 舞姿总览
- handler = function(self, vo)
- self.model:SetDancePosesData(vo)
- self.model:CheckDanceRed()
- self.model:Fire(DanceModel.UPDATE_DANCE_POSES_DATA)
- end,
- },
- [42501] = { -- 舞姿激活
- handler = function(self, vo)
- if vo.res == 1 then
- Message.show("激活成功", "success")
- self.model:UpdateDancePoseList(vo.id)
- self.model:CheckDanceRed(vo.id)
- self.model:Fire(DanceModel.ACTIVATED_DANCE_POSE, vo.id)
- else
- ErrorCodeShow(vo.res)
- end
- end,
- },
- [42502] = { -- 设置默认舞姿
- handler = function(self, vo)
- if vo.res == 1 then
- Message.show("设置默认舞姿成功", "success")
- self.model:UpdateDefaultDancePose(vo.id)
- self.model:Fire(DanceModel.UPDATE_DEFAULT_DANCE_POSE, vo.id)
- else
- ErrorCodeShow(vo.res)
- end
- end,
- },
- [42503] = { -- 是否随机舞姿
- handler = function(self, vo)
- self.model:UpdateRandomDanceFlag(vo.type)
- self.model:Fire(DanceModel.UPDATE_RANDOM_DANCE_FLAG)
- end,
- },
- }
- self:RegisterProtocalByCFG(register_cfg)
- end
-
- function DanceController:AddEvents()
- --请求基本信息
- local function onRequestEvent(...)
- local args = {...}
- if args[1] == 42501 or args[1] == 42502 then
- self:SendFmtToGame(args[1], "i", args[2])
- elseif args[1] == 42503 then
- self:SendFmtToGame(args[1], "c", args[2])
- else
- self:SendFmtToGame(args[1])
- end
- end
- self.model:Bind(DanceModel.REQUEST_CCMD_EVENT, onRequestEvent)
-
- local function onGameStart()
- if GetModuleIsOpen(425) then
- self.model:Fire(DanceModel.REQUEST_CCMD_EVENT, 42500)
- end
- end
- GlobalEventSystem:Bind(EventName.GAME_START, onGameStart)
-
- local function onLevelUp(lv)
- if lv == Config.Moduleid[425].open_lv then
- onGameStart()
- end
- end
- RoleManager.Instance.mainRoleInfo:Bind(EventName.CHANGE_LEVEL, onLevelUp)
-
- -- 打开舞姿选择界面
- local function openDanceMainUISelectPoseView(show, pos)
- self:OpenView("DanceMainUISelectPoseView", show, pos)
- end
- self.model:Bind(DanceModel.OPEN_DANCE_POSE_SELECT_VIEW, openDanceMainUISelectPoseView)
-
- -- 打开舞姿界面
- local function openDancePoseView(show, dance_id, type_id)
- self:OpenView("DancePoseView", show, dance_id, type_id)
- end
- self.model:Bind(DanceModel.OPEN_DANCE_POSE_VIEW, openDancePoseView)
-
- ---- 2021年4月13日新增 统一场景中开始跳舞的接口 ----
- -- do_dance true:跳舞 false:取消跳舞 dance_id:舞姿id
- local function CHANGE_DANCE_STATUS(do_dance, dance_id)
- if do_dance then
- local main_role = Scene.Instance:GetMainRole()
- if not main_role then return end
- local default_dance_id = self.model:GetDefaultDancesPoseId()
- if not dance_id or not self.model:GetDancePosesActivatedList(dance_id) then -- 未激活的舞姿不给用,需要切换成默认舞姿
- dance_id = default_dance_id
- end
- if main_role.dance_status and dance_id and main_role.dance_status == dance_id then -- 舞姿相同,啥也不干
- return
- end
- if main_role:IsInState(PoseState.ATTACK) then
- Message.show("正在战斗中,请停下战后再跳舞!")
- return
- elseif main_role:IsSwimState() then -- 处于游泳状态
- Message.show("水中无法使用跳舞动作")
- return
- elseif main_role:IsInState(PoseState.DIZZY)
- or main_role:IsInState(PoseState.DEAD)
- or main_role:IsInState(PoseState.COLLECT)
- or main_role:IsInState(PoseState.FLY_SHOE)
- or main_role:IsInState(PoseState.JUMP) then
- Message.show("当前状态无法跳舞")
- return
- end
- -- 上了坐骑就得先下来
- local is_ride = RoleManager:getInstance():GetMainRoleVo() and (RoleManager:getInstance():GetMainRoleVo().is_ride ~= 0)
- if is_ride then
- GlobalEventSystem:Fire(EventName.HIDE_HORSE)
- end
- self:SendFmtToGame(12025, "c", dance_id)
- else
- self:SendFmtToGame(12025, "c", 0)
- end
- end
- self.model:Bind(DanceModel.CHANGE_DANCE_STATUS, CHANGE_DANCE_STATUS)
- end
|