源战役客户端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

315 lines
10 KiB

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