require("game.proto.335.Require335")
|
|
require("game.powerTurnTable.PowerTurnTableModel")
|
|
require("game.powerTurnTable.PowerTurnTableView")--转盘界面
|
|
require("game.powerTurnTable.PowerTurnTableRecordItem")--转盘日志item
|
|
require("game.powerTurnTable.PowerTurnTableExchangeView")--积分兑换界面
|
|
require("game.powerTurnTable.PowerTurnTableExchangeItem")--积分兑换界面item
|
|
require("game.powerTurnTable.PowerTurnTableExchangeReqView")--兑换请求界面
|
|
|
|
|
|
PowerTurnTableController = PowerTurnTableController or BaseClass(BaseController)
|
|
PowerTurnTableController.Is_Debug = false
|
|
function PowerTurnTableController:__init()
|
|
PowerTurnTableController.Instance = self
|
|
self.model = PowerTurnTableModel:getInstance()
|
|
self.mainVo = RoleManager.Instance.mainRoleInfo
|
|
self:RegisterAllProtocals()
|
|
self:AddAllEvents()
|
|
end
|
|
|
|
function PowerTurnTableController:__delete()
|
|
|
|
end
|
|
|
|
function PowerTurnTableController:AddAllEvents()
|
|
local function game_start_func()
|
|
|
|
end
|
|
GlobalEventSystem:Bind(EventName.GAME_START,game_start_func)
|
|
|
|
--请求协议
|
|
local function onRequestProtocal(...)
|
|
local args = {...}
|
|
if args[1] == 33501 or args[1] == 33502 or args[1] == 33505 then
|
|
self:SendFmtToGame(args[1], "h", args[2])
|
|
elseif args[1] == 33503 then
|
|
self:SendFmtToGame(args[1], "hch", args[2],args[3],args[4])
|
|
elseif args[1] == 33504 then
|
|
self:SendFmtToGame(args[1], "hcc", args[2],args[3],args[4])
|
|
else
|
|
self:SendFmtToGame(args[1])
|
|
end
|
|
end
|
|
self.model:Bind(PowerTurnTableModel.REQUEST_INFO, onRequestProtocal)
|
|
|
|
local function init_open_day( ... )--开服天数初始化
|
|
|
|
end
|
|
GlobalEventSystem:Bind(EventName.OPEN_DAY_INIT,init_open_day)
|
|
|
|
--升级
|
|
local function onLevelUp(level)
|
|
|
|
end
|
|
RoleManager.Instance.mainRoleInfo:Bind(EventName.CHANGE_LEVEL, onLevelUp)
|
|
|
|
local function chnage_day_func(type)
|
|
if type == SettingModel.CHANGE_DAY.HOUR_0 then -- 跨0点
|
|
local base_type = CustomActivityModel.CustomActBaseType.POWER_TURNTABLE
|
|
local all_act_list = CustomActivityModel:getInstance():getAllActListByBaseType(base_type) or {}
|
|
if all_act_list then
|
|
for k,v in pairs(all_act_list) do
|
|
self.model:CheckPowerTurnTableMainRedDot(v.sub_type)
|
|
self.model:Fire(PowerTurnTableModel.UPDATE_VIEW_INFO,v.sub_type)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
GlobalEventSystem:Bind(EventName.CHANE_DAY, chnage_day_func)
|
|
|
|
local onOpenPowerTurnTableView = function (sub_type,is_close)--往期排行
|
|
if self.PowerTurnTableView == nil then
|
|
self.PowerTurnTableView = PowerTurnTableView.New()
|
|
end
|
|
if self.PowerTurnTableView:HasOpen() and not is_close then
|
|
-- self.PowerTurnTableView:UpdateView(sub_type)
|
|
elseif not is_close then
|
|
self.PowerTurnTableView:Open(sub_type)
|
|
else
|
|
self.PowerTurnTableView:Close()
|
|
end
|
|
end
|
|
self.model:Bind(PowerTurnTableModel.OPEN_MAIN_VIEW,onOpenPowerTurnTableView)
|
|
|
|
|
|
local onOpenPowerTurnTableExchangeView = function (sub_type,is_close)--兑换界面
|
|
if self.PowerTurnTableExchangeView == nil then
|
|
self.PowerTurnTableExchangeView = PowerTurnTableExchangeView.New()
|
|
end
|
|
if self.PowerTurnTableExchangeView:HasOpen() and not is_close then
|
|
-- self.PowerTurnTableExchangeView:UpdateView(sub_type)
|
|
elseif not is_close then
|
|
self.PowerTurnTableExchangeView:Open(sub_type)
|
|
else
|
|
self.PowerTurnTableExchangeView:Close()
|
|
end
|
|
end
|
|
self.model:Bind(PowerTurnTableModel.OPEN_EXCHANGE_VIEW,onOpenPowerTurnTableExchangeView)
|
|
|
|
|
|
local onPowerTurnTableExchangeReqView = function (data,is_close)--兑换请求界面
|
|
if self.PowerTurnTableExchangeReqView == nil then
|
|
self.PowerTurnTableExchangeReqView = PowerTurnTableExchangeReqView.New()
|
|
end
|
|
if self.PowerTurnTableExchangeReqView:HasOpen() and not is_close then
|
|
-- self.PowerTurnTableExchangeReqView:UpdateView(sub_type)
|
|
elseif not is_close then
|
|
self.PowerTurnTableExchangeReqView:Open(data)
|
|
else
|
|
self.PowerTurnTableExchangeReqView:Close()
|
|
end
|
|
end
|
|
self.model:Bind(PowerTurnTableModel.OPEN_EXCHANGE_REQ_VIEW,onPowerTurnTableExchangeReqView)
|
|
end
|
|
|
|
function PowerTurnTableController:RegisterAllProtocals()
|
|
self:RegisterProtocal(33501,"handler33501") --奖池信息
|
|
self:RegisterProtocal(33502,"handler33502") --积分兑换界面
|
|
self:RegisterProtocal(33503,"handler33503") --积分兑换
|
|
self:RegisterProtocal(33504,"handler33504") --抽奖
|
|
self:RegisterProtocal(33505,"handler33505") --全服记录
|
|
|
|
|
|
end
|
|
|
|
-- ########### 源能转盘-奖池信息 ##############
|
|
-- protocol=33501
|
|
-- {
|
|
-- c2s{
|
|
-- sub_type :int16 // 活动子类型
|
|
-- }
|
|
-- s2c{
|
|
-- errcode :int32 // 错误码
|
|
-- sub_type :int16 // 活动子类型
|
|
-- score :int16 // 积分
|
|
-- point :int16 // 源能值
|
|
-- free_time :int8 // 免费次数
|
|
-- pool_list:array{
|
|
-- id :int8 // id
|
|
-- reward :string // 奖励
|
|
-- tag :int8 // 标识
|
|
-- }
|
|
-- }
|
|
-- }
|
|
function PowerTurnTableController:handler33501()
|
|
local scmd = SCMD33501.New(true)
|
|
-- print("huangcong:PowerTurnTableController [start:120] scmd:", scmd.errcode)
|
|
-- PrintTable(scmd)
|
|
-- print("huangcong:PowerTurnTableController [end]")
|
|
if scmd.errcode == 1 then
|
|
self.model:SetPowerTurnTableInfo(scmd)
|
|
else
|
|
-- ErrorCodeShow(scmd.errcode)
|
|
end
|
|
end
|
|
|
|
|
|
-- ########### 源能转盘-积分兑换界面 ##############
|
|
-- protocol=33502
|
|
-- {
|
|
-- c2s{
|
|
-- sub_type :int16 // 活动子类型
|
|
-- }
|
|
-- s2c{
|
|
-- errcode :int32 // 错误码
|
|
-- sub_type :int16 // 活动子类型
|
|
-- cur_score :int16 // 积分
|
|
-- swap_list:array{
|
|
-- id :int8 // id
|
|
-- Reward :string // 物品
|
|
-- LeftTimes :int8 // 剩余兑换次数
|
|
-- score :int16 // 需要的积分
|
|
-- countdown :int16 // 解锁倒计时,0为已解锁
|
|
-- }
|
|
-- }
|
|
-- }
|
|
function PowerTurnTableController:handler33502()
|
|
local scmd = SCMD33502.New(true)
|
|
-- print("33502scmd", scmd.errcode)
|
|
if scmd.errcode == 1 then
|
|
local server_info = self.model:GetPowerTurnTableInfo(scmd.sub_type)
|
|
if server_info then
|
|
server_info.score = scmd.cur_score
|
|
end
|
|
self.model:SetExchangeInfoList(scmd)
|
|
self.model:Fire(PowerTurnTableModel.UPDATE_EXCHANGE_VIEW,scmd.sub_type)
|
|
else
|
|
-- ErrorCodeShow(scmd.errcode)
|
|
end
|
|
end
|
|
|
|
-- ########### 源能转盘-积分兑换 ##############
|
|
-- protocol=33503
|
|
-- {
|
|
-- c2s{
|
|
-- sub_type :int16 // 活动子类型
|
|
-- id :int8 // id
|
|
-- num :int16 // 数量
|
|
-- }
|
|
-- s2c{
|
|
-- errcode :int32 // 错误码
|
|
-- sub_type :int16 // 活动子类型
|
|
-- id :int8 // id
|
|
-- left_times :int8 // 剩余兑换次数
|
|
-- cur_score :int16 // 积分
|
|
-- }
|
|
-- }
|
|
function PowerTurnTableController:handler33503()
|
|
local scmd = SCMD33503.New(true)
|
|
-- print("33503scmd", scmd.errcode)
|
|
if scmd.errcode == 1 then
|
|
Message.show("兑换成功")
|
|
local server_info = self.model:GetPowerTurnTableInfo(scmd.sub_type)
|
|
if server_info then
|
|
server_info.score = scmd.cur_score
|
|
end
|
|
local exchange_info = self.model:GetExchangeInfoList(scmd.sub_type)
|
|
if exchange_info then
|
|
for i,v in ipairs(exchange_info) do
|
|
if v.id == scmd.id then
|
|
v.left_times = scmd.left_times
|
|
v.sort_id = v.id + (v.left_times == 0 and 1000 or 0)--兑换完置底
|
|
--触发快捷使用
|
|
OperateActivityModel:getInstance():Fire(OperateActivityModel.QUIK_USE, true)
|
|
--道具飞背包
|
|
local goods_fly_data = {[1] = v.reward[2]}
|
|
if TableSize(goods_fly_data) > 0 then
|
|
MainUIModel:getInstance():PlayGoodsFlyList(goods_fly_data)
|
|
end
|
|
--飘字
|
|
goods_fly_data = {
|
|
[1] = {
|
|
goods_type_id = v.reward[2],
|
|
num = v.reward[3],
|
|
}
|
|
}
|
|
if TableSize(goods_fly_data) > 0 then
|
|
MainUIModel:getInstance():AddFloatInfo(goods_fly_data, true)
|
|
end
|
|
break
|
|
end
|
|
end
|
|
local sort_func = function ( a, b )
|
|
return a.sort_id < b.sort_id
|
|
end
|
|
table.sort(exchange_info, sort_func)
|
|
end
|
|
self.model:Fire(PowerTurnTableModel.UPDATE_EXCHANGE_VIEW,scmd.sub_type)
|
|
self.model:Fire(PowerTurnTableModel.UPDATE_VIEW_INFO,scmd.sub_type)
|
|
else
|
|
ErrorCodeShow(scmd.errcode)
|
|
end
|
|
end
|
|
|
|
-- ########### 源能转盘-抽奖 ##############
|
|
-- protocol=33504
|
|
-- {
|
|
-- c2s{
|
|
-- sub_type :int16 // 活动子类型
|
|
-- type :int8 // 1单抽|2十连抽
|
|
-- skip :int8 // 是否跳过动画 0否1是
|
|
-- }
|
|
-- s2c{
|
|
-- errcode :int32 // 错误码
|
|
-- sub_type :int16 // 活动子类型
|
|
-- score :int16 // 积分
|
|
-- point :int16 // 源能值
|
|
-- free_time :int8 // 免费次数
|
|
-- id_list:array{
|
|
-- id :int8 // 奖励id
|
|
-- }
|
|
-- }
|
|
-- }
|
|
function PowerTurnTableController:handler33504()
|
|
local scmd = SCMD33504.New(true)
|
|
-- print("33504scmd", scmd.errcode)
|
|
if scmd.errcode == 1 then
|
|
local server_info = self.model:GetPowerTurnTableInfo(scmd.sub_type)
|
|
if server_info then
|
|
local cur_point = server_info.point
|
|
server_info.score = scmd.score
|
|
server_info.point = scmd.point
|
|
server_info.free_time = scmd.free_time
|
|
-- self.model:Fire(PowerTurnTableModel.UPDATE_VIEW_INFO,scmd.sub_type)
|
|
self.model:CheckPowerTurnTableMainRedDot(scmd.sub_type)
|
|
self.model:Fire(PowerTurnTableModel.START_TURN_ACTION,scmd.sub_type,scmd.id_list,cur_point)
|
|
end
|
|
else
|
|
ErrorCodeShow(scmd.errcode)
|
|
end
|
|
end
|
|
|
|
-- ########### 源能转盘-全服记录 ##############
|
|
-- protocol=33505
|
|
-- {
|
|
-- c2s{
|
|
-- sub_type :int16 // 活动子类型
|
|
-- }
|
|
-- s2c{
|
|
-- list:array{
|
|
-- role_name :string
|
|
-- goods_id :int32
|
|
-- num :int8
|
|
-- }
|
|
-- }
|
|
-- }
|
|
function PowerTurnTableController:handler33505()
|
|
local scmd = SCMD33505.New(true)
|
|
-- print("huangcong:PowerTurnTableController [start:295] scmd:", scmd)
|
|
-- PrintTable(scmd)
|
|
-- print("huangcong:PowerTurnTableController [end]")
|
|
self.model:SetRecordInfo(scmd)
|
|
self.model:Fire(PowerTurnTableModel.UPDATE_RECORD_INFO,scmd.sub_type)
|
|
end
|
|
|
|
|