require("game.nature.NatureModel")
|
|
require("game.proto.167.Require167")
|
|
require("game.nature.view.NatureSubView")
|
|
require("game.nature.NatureSubView")
|
|
require("game.nature.view.NatureItem")
|
|
require("game.nature.view.NatureAddPointView")
|
|
require("game.nature.view.NatureAttrItem")
|
|
require("game.nature.view.NatureSpotRewardItem")
|
|
require("game.nature.view.NatureInfoView")
|
|
require("game.nature.view.NatureTagView")
|
|
require("game.nature.view.NatureShowTagItem")
|
|
require("game.nature.view.NatureTagItem")
|
|
require("game.nature.view.NatureHasSelectTagItem")
|
|
require("game.nature.view.NatureRewardView")
|
|
require("game.nature.view.NatureUpgradeView")
|
|
require("game.nature.view.NatureUpgradeItem")
|
|
require("game.nature.view.NatureTaskRewardView")
|
|
require("game.nature.view.NatureTaskRewardItem")
|
|
require("game.nature.view.NaturePreRewardView")
|
|
|
|
NatureController = NatureController or BaseClass(BaseController, true)
|
|
local NatureController = NatureController
|
|
|
|
NatureController.IsDebug = true
|
|
|
|
function NatureController:__init()
|
|
NatureController.Instance = self
|
|
-- self.model = NatureModel:getInstance()
|
|
-- self:AddEvents()
|
|
-- self:RegisterAllProtocal()
|
|
-- self.first_data_has_set = {}
|
|
-- self.model:InitEffectFlag( )
|
|
end
|
|
|
|
function NatureController:__delete()
|
|
end
|
|
|
|
function NatureController:RegisterAllProtocal( )
|
|
self:RegisterProtocal(16700, "Handle16700") -- 性格总览
|
|
self:RegisterProtocal(16701, "Handle16701") -- 性格章节数据
|
|
self:RegisterProtocal(16702, "Handle16702") -- 领取性格节点奖励
|
|
self:RegisterProtocal(16703, "Handle16703") -- 性格突破
|
|
self:RegisterProtocal(16704, "Handle16704") -- 日常任务结算点数
|
|
self:RegisterProtocal(16705, "Handle16705") -- 性格标签
|
|
self:RegisterProtocal(16706, "Handle16706") -- 替换性格标签
|
|
self:RegisterProtocal(16707, "Handle16707") -- 加点
|
|
self:RegisterProtocal(16708, "Handle16708") -- 领取章节奖励
|
|
self:RegisterProtocal(16709, "Handle16709") -- 点击性格宝箱后飘个字
|
|
end
|
|
|
|
function NatureController:AddEvents()
|
|
local function onRequestHandler(...)
|
|
local args = {...}
|
|
if args[1] == 16701 or args[1] == 16708 then
|
|
self:SendFmtToGame(args[1], "c", args[2])
|
|
elseif args[1] == 16702 then
|
|
self:SendFmtToGame(args[1], "ccc", args[2], args[3], args[4])
|
|
elseif args[1] == 16707 then
|
|
--print('Msh:NatureController.lua[51] data', args[2], args[3], args[4], args[5])
|
|
self:SendFmtToGame(args[1], "cccc", args[2], args[3], args[4], args[5])
|
|
else
|
|
self:SendFmtToGame(args[1])
|
|
end
|
|
end
|
|
self.model:Bind(NatureModel.REQUEST_CCMD_EVENT, onRequestHandler)
|
|
|
|
|
|
local function replace_tag( tips_list )
|
|
self:WriteBegin(16706)
|
|
-- logWarn('=======Msh:NatureController.lua[60]=======')
|
|
-- PrintTable(tips_list)
|
|
self:WriteFMT("h", #tips_list)
|
|
for i, v in ipairs(tips_list) do
|
|
self:WriteFMT("c", v.nature_type)
|
|
self:WriteFMT("c", v.tip)
|
|
self:WriteFMT("c", v.show_pos)
|
|
end
|
|
self:SendToGame()
|
|
end
|
|
self.model:Bind(NatureModel.REPLACE_TAG, replace_tag)
|
|
|
|
-- 打开突破界面
|
|
local function open_upgrade_view()
|
|
if self.upgrade_view == nil then
|
|
self.upgrade_view = NatureUpgradeView.New()
|
|
end
|
|
if self.upgrade_view:HasOpen() then
|
|
self.upgrade_view:UpdateView()
|
|
else
|
|
self.upgrade_view:Open()
|
|
end
|
|
end
|
|
self.model:Bind(NatureModel.OPEN_UPGRADE_VIEW, open_upgrade_view)
|
|
|
|
|
|
local function gameStartHandler()
|
|
self.model:ResetData()
|
|
local delay = function()
|
|
-- 拿一下三个章节的数据
|
|
self.model:Fire(NatureModel.REQUEST_CCMD_EVENT, 16700)
|
|
self.model:Fire(NatureModel.REQUEST_CCMD_EVENT, 16701, 1)
|
|
self.model:Fire(NatureModel.REQUEST_CCMD_EVENT, 16701, 2)
|
|
self.model:Fire(NatureModel.REQUEST_CCMD_EVENT, 16701, 3)
|
|
end
|
|
setTimeout(delay,1)
|
|
end
|
|
GlobalEventSystem:Bind(EventName.GAME_START, gameStartHandler)
|
|
|
|
|
|
local onOpenNatureTaskRewardView = function (data)--通用奖励结算界面
|
|
-- data = {
|
|
-- award = {{100,230001,1},{100,230001,1},},
|
|
-- title_ab_name = "common_asset",
|
|
-- title_res = "com_award_result_title",
|
|
-- }
|
|
GiftModel:getInstance():Fire(GiftModel.CLOSE_NORMAL_VIEW)
|
|
if self.NatureTaskRewardView == nil then
|
|
self.NatureTaskRewardView = NatureTaskRewardView.New()
|
|
end
|
|
if self.NatureTaskRewardView:HasOpen() then
|
|
self.NatureTaskRewardView:UpdateView(data)
|
|
else
|
|
self.NatureTaskRewardView:Open(data)
|
|
end
|
|
end
|
|
GlobalEventSystem:Bind(NatureModel.OPEN_AWARD_RESULT_VIEW, onOpenNatureTaskRewardView)
|
|
|
|
local function open_tag_view()
|
|
if self.tag_view == nil then
|
|
self.tag_view = NatureTagView.New()
|
|
end
|
|
if self.tag_view:HasOpen() then
|
|
self.tag_view:UpdateView()
|
|
else
|
|
self.tag_view:Open()
|
|
end
|
|
end
|
|
self.model:Bind(NatureModel.OPEN_TAG_VIEW, open_tag_view)
|
|
|
|
local function open_pre_reward_view( cur_category, nature_type, spot )
|
|
if self.pre_reward_view == nil then
|
|
self.pre_reward_view = NaturePreRewardView.New()
|
|
end
|
|
if self.pre_reward_view:HasOpen() then
|
|
self.pre_reward_view:UpdateView()
|
|
else
|
|
self.pre_reward_view:Open(cur_category, nature_type, spot)
|
|
end
|
|
end
|
|
self.model:Bind(NatureModel.OPEN_PRE_REWARD_VIEW, open_pre_reward_view)
|
|
|
|
--[[ local function on_hp_change( )
|
|
if RoleManager.Instance.mainRoleInfo.role_id == 8589934620 or
|
|
--RoleManager.Instance.mainRoleInfo.role_id == 8589934595 or
|
|
RoleManager.Instance.mainRoleInfo.role_id == 4294968102 then
|
|
local time = TimeUtil:getServerTime( )
|
|
print('Msh:CheatPropertyView.lua[100] data', TimeUtil:timeConversion(time, 'mm-dd hh:MM:ss'))
|
|
PrintCallStack()
|
|
print('Msh:CheatPropertyView.lua[101] hp', RoleManager.Instance.mainRoleInfo.hp)
|
|
end
|
|
end
|
|
self.bind_hp_id = RoleManager.Instance.mainRoleInfo:BindOne("hp",on_hp_change)--]]
|
|
end
|
|
|
|
|
|
--[[################# 性格总览 ##################
|
|
protocol=16700{
|
|
c2s{
|
|
}
|
|
s2c{
|
|
nature_list:array{
|
|
nature_type:int8 // 性格类型
|
|
nature_value:int16 // 性格点数
|
|
}
|
|
free_value:int16 // 自由点数
|
|
level:int16 // 突破等级
|
|
overflow_value:int32 // 溢出自由性格点数
|
|
}
|
|
}--]]
|
|
function NatureController:Handle16700( )
|
|
local scmd = SCMD16700.New(true)
|
|
--PrintTable(scmd)
|
|
self.model:SetTotalNatureInfo( scmd )
|
|
self.model:Fire(NatureModel.UPDATE_MAIN_VIEW, nil, true)
|
|
end
|
|
|
|
--[[################# 性格章节数据 ##################
|
|
protocol=16701{
|
|
c2s{
|
|
category:int8 // 章节
|
|
}
|
|
s2c{
|
|
category:int8 // 章节
|
|
branch_list:array{
|
|
nature_type:int8 // 性格类型
|
|
spot_list:array{
|
|
spot:int8 // 节点
|
|
light_times:int8 // 点亮次数
|
|
reward_status:int8 // 奖励领取状态
|
|
}
|
|
}
|
|
category_reward_status:int8 // 章节奖励领取状态
|
|
}
|
|
}--]]
|
|
function NatureController:Handle16701( )
|
|
local scmd = SCMD16701.New(true)
|
|
--PrintTable(scmd)
|
|
self.model:SetCategoryNatureInfo( scmd )
|
|
self.model:Fire(NatureModel.UPDATE_CATEGORY_INFO, scmd.category)
|
|
self.model:Fire(NatureModel.UPDATE_ADD_POINT_VIEW)
|
|
self.model:UpdateRedDot( NatureModel.RedDotTpye.GET_REWRAD )
|
|
|
|
|
|
-- if not self.first_data_has_set[scmd.category] then -- 只有第一次数据的更新不需要检查 其他都要检查
|
|
-- self.first_data_has_set[scmd.category] = true
|
|
-- self.model:Fire(NatureModel.UPDATE_CATEGORY_INFO, scmd.category, nil,false)
|
|
-- else
|
|
-- self.model:Fire(NatureModel.UPDATE_CATEGORY_INFO, scmd.category, nil,true)
|
|
-- end
|
|
if not self.model:IsNeedEffect() then
|
|
self.first_data_has_set[scmd.category] = true
|
|
if TableSize(self.first_data_has_set) >= 3 then
|
|
self.model:SetEffectFlag()
|
|
end
|
|
end
|
|
self.model:Fire(NatureModel.UPDATE_CATEGORY_INFO, scmd.category, nil,false)
|
|
end
|
|
|
|
|
|
--[[################# 领取性格节点奖励 ##################
|
|
protocol=16702{
|
|
c2s{
|
|
category:int8 // 章节
|
|
nature_type:int8 // 性格类型
|
|
spot:int8 // 节点
|
|
}
|
|
s2c{
|
|
res:int32 // 错误码 1-成功 其他
|
|
category:int8 // 章节
|
|
nature_type:int8 // 性格类型
|
|
spot:int8 // 节点
|
|
rewward_status:int8 // 奖励领取状态
|
|
}
|
|
} --]]
|
|
function NatureController:Handle16702( )
|
|
local scmd = SCMD16702.New(true)
|
|
if scmd.res == 1 then
|
|
Message.show("领取奖励成功")
|
|
self.model:SetSingleCategoryNatureInfo( scmd.category, scmd.nature_type, scmd.spot, scmd.rewward_status )
|
|
self.model:Fire(NatureModel.UPDATE_ADD_POINT_VIEW)
|
|
self.model:UpdateRedDot( NatureModel.RedDotTpye.GET_REWRAD )
|
|
else
|
|
ErrorCodeShow(scmd.res)
|
|
end
|
|
|
|
end
|
|
|
|
--[[################# 性格突破 ##################
|
|
protocol=16703{
|
|
c2s{
|
|
}
|
|
s2c{
|
|
res:int32 // 错误码 1-成功 其他
|
|
level:int16 // 性格突破等级
|
|
overflow_value:int32 // 溢出自由性格点数
|
|
}
|
|
}]]
|
|
function NatureController:Handle16703( )
|
|
local scmd = SCMD16703.New(true)
|
|
--PrintTable(tab)
|
|
if scmd.res == 1 then
|
|
self.model:SetAfterUpgradeData(scmd)
|
|
self.model:Fire(NatureModel.SUCCESS_UPGRADE)
|
|
self.model:Fire(NatureModel.UPDATE_UPGRADE_RED_DOT)
|
|
else
|
|
ErrorCodeShow(scmd.res)
|
|
end
|
|
end
|
|
|
|
--[[################# 日常任务结算点数 ##################
|
|
protocol=16704{
|
|
s2c{
|
|
nature_value:int16 // 性格点数
|
|
rand_value:int16 // 随机点数
|
|
}
|
|
}]]
|
|
function NatureController:Handle16704( )
|
|
local scmd = SCMD16704.New(true)
|
|
self.model:SetTaskNatureValue(scmd)
|
|
end
|
|
|
|
|
|
--[[################# 性格标签 ##################
|
|
protocol=16705{
|
|
c2s{
|
|
}
|
|
s2c{
|
|
nature_tips:array{ //拥有标签列表
|
|
nature_type:int8 // 性格类型
|
|
tips_list:array{
|
|
tip:int8 // 性格标签
|
|
}
|
|
}
|
|
tips_list:array{ //展示标签列表
|
|
nature_type:int8 // 性格类型
|
|
tip:int8 // 性格标签
|
|
show_pos:int8 // 展示顺序
|
|
}
|
|
}
|
|
}]]
|
|
function NatureController:Handle16705( )
|
|
local scmd = SCMD16705.New(true)
|
|
-- logWarn('=======Msh:NatureController.lua[214]=======')
|
|
-- PrintTable(scmd)
|
|
self.model:SetHasTagData(scmd.nature_tips)
|
|
self.model:SetShowTagData(scmd.tips_list)
|
|
self.model:Fire(NatureModel.UPDATE_TAG_VIEW)
|
|
end
|
|
|
|
|
|
--[[################# 替换性格标签 ##################
|
|
protocol=16706{
|
|
c2s{
|
|
tips_list:array{
|
|
nature_type:int8 // 性格类型
|
|
tip:int8 // 性格标签
|
|
show_pos:int8 // 展示顺序
|
|
}
|
|
}
|
|
s2c{
|
|
res:int32 // 错误码 1-成功 其他
|
|
tips_list:array{
|
|
nature_type:int8 // 性格类型
|
|
tip:int8 // 性格标签
|
|
show_pos:int8 // 展示顺序
|
|
}
|
|
}
|
|
}]]
|
|
function NatureController:Handle16706( )
|
|
local scmd = SCMD16706.New(true)
|
|
if scmd.res == 1 then
|
|
self.model:SetShowTagData(scmd.tips_list)
|
|
self.model:Fire(NatureModel.UPDATE_TAG_VIEW)
|
|
if #scmd.tips_list == 0 then
|
|
Message.show("当前未展示任意标签")
|
|
else
|
|
Message.show("成功展示标签")
|
|
end
|
|
else
|
|
ErrorCodeShow(scmd.res)
|
|
end
|
|
end
|
|
|
|
--[[################# 性格加点 (同时也会推送16700,16701更新数据)##################
|
|
protocol=16707{
|
|
c2s{
|
|
category:int8 // 章节
|
|
nature_type:int8 // 性格类型
|
|
spot:int8 // 节点
|
|
light_times:int16 // 点亮次数
|
|
}
|
|
s2c{
|
|
res:int32 // 错误码 1-成功 其他
|
|
nature_type:int8 // 性格类型
|
|
free_value:int16 // 剩余自由点数
|
|
}
|
|
}--]]
|
|
function NatureController:Handle16707( )
|
|
local scmd = SCMD16707.New(true)
|
|
if scmd.res == 1 then
|
|
Message.show("加点成功")
|
|
self.model:SetFreePoint(scmd.free_value)
|
|
else
|
|
ErrorCodeShow(scmd.res)
|
|
end
|
|
end
|
|
|
|
--[[################# 章节完成后领取称号 ##################
|
|
protocol=16708{
|
|
c2s{
|
|
category:int8 // 章节
|
|
}
|
|
s2c{
|
|
res:int32 // 错误码 1-成功 其他
|
|
category:int8 // 章节
|
|
status:int8 // 章节奖励领取状态 0-未领取 1-已领取
|
|
}
|
|
}--]]
|
|
function NatureController:Handle16708( )
|
|
local scmd = SCMD16708.New(true)
|
|
if scmd.res == 1 then
|
|
self.model:UpdateCategoryRewardState(scmd.category, scmd.status)
|
|
self.model:Fire(NatureModel.UPDATE_NATURE_REWARD_VIEW)
|
|
self.model:UpdateRedDot( NatureModel.RedDotTpye.GET_REWRAD )
|
|
else
|
|
ErrorCodeShow(scmd.res)
|
|
end
|
|
end
|
|
|
|
--[[################# 宝箱怪采集后加点推送 ##################
|
|
protocol=16709{
|
|
s2c{
|
|
add_value:int16 // 增加点数
|
|
}
|
|
}--]]
|
|
function NatureController:Handle16709( )
|
|
local scmd = SCMD16709.New(true)
|
|
Message.show( string.format('自由性格点数 +%s', scmd.add_value) )
|
|
end
|