require("game.proto.146.Require146")
|
|
require("game.foster.FosterConst")
|
|
require("game.foster.FosterModel")
|
|
require("game.foster.view.FosterBaseView")
|
|
require("game.foster.view.FosterSubView")
|
|
require("game.foster.view.FosterSubViewNew")
|
|
require("game.foster.view.FosterSkinView")
|
|
require("game.foster.view.FosterAttrItem")
|
|
require("game.foster.view.FosterTabItem")
|
|
require("game.foster.view.FosterSubTabItem")
|
|
require("game.foster.view.FosterSkinTabItem")
|
|
require("game.foster.view.FosterSkillItem")
|
|
require("game.foster.view.FosterBlessView")
|
|
require("game.foster.view.FosterSkillTips")
|
|
require("game.foster.view.FosterEquipItem")
|
|
require("game.foster.view.FosterEquipBaseView")
|
|
require("game.foster.view.FosterEquipTipView")
|
|
require("game.foster.view.FosterAttrItemTwo")
|
|
require("game.foster.view.FosterAttrItemThree")
|
|
require("game.foster.view.FosterUpEquipView")
|
|
require("game.foster.view.FosterKernelView")
|
|
require("game.foster.view.FosterKernelItem")
|
|
require("game.foster.view.FosterKernelTips")
|
|
require("game.foster.view.FosterEquipingView")
|
|
require("game.foster.view.FosterEquipingTabItem")
|
|
|
|
-- require("game.foster.view.FosterBagView")--逻辑修改已弃用
|
|
|
|
FosterController = FosterController or BaseClass(BaseController, true)
|
|
local FosterController = FosterController
|
|
|
|
function FosterController:__init()
|
|
FosterController.Instance = self
|
|
self.model = FosterModel:GetInstance()
|
|
self:AddEvents()
|
|
self:RegisterAllProtocal()
|
|
end
|
|
|
|
function FosterController:__delete()
|
|
self:StopShowUpCostTimer()
|
|
end
|
|
|
|
function FosterController:RegisterAllProtocal( )
|
|
self:RegisterProtocal(14600, "on14600")--基础系统信息
|
|
self:RegisterProtocal(14601, "on14601")--普通系统培养
|
|
self:RegisterProtocal(14602, "on14602")--使用核心
|
|
self:RegisterProtocal(14603, "on14603")--幻化协议
|
|
self:RegisterProtocal(14604, "on14604")--技能升级
|
|
self:RegisterProtocal(14605, "on14605")--技能激活通知
|
|
self:RegisterProtocal(14606, "on14606")--装备升级
|
|
self:RegisterProtocal(14607, "on14607")--装备穿戴
|
|
self:RegisterProtocal(14608, "on14608")--装备更新
|
|
self:RegisterProtocal(14609, "on14609")--骑乘状态修改
|
|
self:RegisterProtocal(14613, "on14613")--新手激活推送
|
|
self:RegisterProtocal(14614, "on14614")--进阶装备助战状态查询 - 全量数据
|
|
self:RegisterProtocal(14615, "on14615")--进阶装备助战状态查询 - 单个查询
|
|
self:RegisterProtocal(14616, "on14616")--手动激活进阶装备助战状态
|
|
self:RegisterProtocal(14617, "on14617")--弱进阶系统皮肤信息
|
|
self:RegisterProtocal(14618, "on14618")--弱进阶系统皮肤激活或者升星
|
|
self:RegisterProtocal(14619, "on14619")--弱进阶系统皮肤幻化
|
|
self:RegisterProtocal(14620, "on14620")--弱进阶系统升级
|
|
self:RegisterProtocal(14621, "on14621")--助战变更后推送
|
|
end
|
|
|
|
function FosterController:AddEvents()
|
|
local function init_open_day()
|
|
self.model:Reset()
|
|
|
|
local function delay( )
|
|
for k,v in pairs(FosterConst.ModuleId) do
|
|
if GetModuleIsOpen(146,v) then
|
|
self.model:Fire(FosterConst.ReqBasicInfo, v)
|
|
if v>=5 then
|
|
self.model:Fire(FosterConst.ReqSubSkinInfo, v)
|
|
end
|
|
-- 请求装备协助相关
|
|
if v == FosterConst.ModuleId.FHorse or v == FosterConst.ModuleId.FJarvis then
|
|
self.model:Fire(FosterConst.ReqEquipAssistInfo, v)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
setTimeout(delay,2)
|
|
end
|
|
GlobalEventSystem:Bind(EventName.OPEN_DAY_INIT, init_open_day)
|
|
|
|
local function loadComplete()
|
|
--在不显示坐骑的场景,要下坐骑噢!
|
|
local is_ride = RoleManager:getInstance():GetMainRoleVo() and (RoleManager:getInstance():GetMainRoleVo().is_ride ~= 0)
|
|
if is_ride and (not SceneManager:getInstance():IsShowHorseScene()) then
|
|
GlobalEventSystem:Fire(EventName.HIDE_HORSE)
|
|
end
|
|
end
|
|
GlobalEventSystem:Bind(EventName.SCENE_LOAD_VIEW_COMPLETE, loadComplete)
|
|
|
|
local function onLevelChange( level )
|
|
for k,v in pairs(FosterConst.ModuleId) do
|
|
if Config.Modulesub["146@" .. v] and (Config.Modulesub["146@" .. v].open_lv == level or Config.Modulesub["146@" .. v].icon_lv == level) then
|
|
-- 幻化初始外观
|
|
-- self.model:Fire(FosterConst.ReqChangeSkin, v, 1)
|
|
self.model:Fire(FosterConst.ReqBasicInfo, v)
|
|
-- 请求装备协助相关
|
|
if v == FosterConst.ModuleId.FHorse or v == FosterConst.ModuleId.FJarvis then
|
|
self.model:Fire(FosterConst.ReqEquipAssistInfo, v)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
RoleManager:getInstance().mainRoleInfo:Bind(EventName.CHANGE_LEVEL, onLevelChange)
|
|
|
|
local function ANS_FINISHED_TASK_LIST( task_id )
|
|
if task_id == Config.Modulesub["146@5"].task_id then
|
|
--ai娘后端会提早开出来,所以要前端先不显示场景对象,任务完成的时候再更新显示
|
|
local main_role = Scene.Instance:GetMainRole()
|
|
if main_role then
|
|
main_role:ChangePet()
|
|
end
|
|
end
|
|
end
|
|
GlobalEventSystem:Bind(TaskEvent.ANS_FINISHED_TASK_LIST,ANS_FINISHED_TASK_LIST)
|
|
|
|
--基础系统信息
|
|
local function ReqBasicInfo( type_id )
|
|
if type_id then
|
|
self:SendFmtToGame(14600, "c", type_id)
|
|
end
|
|
end
|
|
self.model:Bind(FosterConst.ReqBasicInfo, ReqBasicInfo)
|
|
|
|
--普通系统培养
|
|
local function ReqStrengthen( type_id, is_auto_up, is_auto_buy, auto_bgold )
|
|
is_auto_up = is_auto_up and 1 or 0
|
|
is_auto_buy = is_auto_buy and 1 or 0
|
|
auto_bgold = auto_bgold or 0-- 0 红钻不足后停止,1 会消耗彩钻
|
|
if type_id then
|
|
self:SendFmtToGame(14601, "cccc", type_id, is_auto_up, is_auto_buy, auto_bgold)
|
|
end
|
|
end
|
|
self.model:Bind(FosterConst.ReqStrengthen, ReqStrengthen)
|
|
|
|
--弱进阶系统皮肤信息
|
|
local function ReqSubSkinInfo(type_id)
|
|
if type_id then
|
|
self:SendFmtToGame(14617, "c", type_id)
|
|
end
|
|
end
|
|
self.model:Bind(FosterConst.ReqSubSkinInfo, ReqSubSkinInfo)
|
|
|
|
-- 弱进阶皮肤请求激活或升星
|
|
local function req_sub_skin_act_or_up(type_id, skin_id, option)
|
|
if type_id and skin_id and option then
|
|
self:SendFmtToGame(14618, "chc", type_id, skin_id, option)
|
|
end
|
|
end
|
|
self.model:Bind(FosterConst.ReqSubSkinActiveOrUpGrade, req_sub_skin_act_or_up)
|
|
|
|
local function req_sub_skin_change(type_id, skin_id, star)
|
|
if type_id and skin_id and star then
|
|
self:SendFmtToGame(14619, "chh", type_id, skin_id, star)
|
|
end
|
|
end
|
|
self.model:Bind(FosterConst.ReqSubSkinChange, req_sub_skin_change)
|
|
|
|
--弱进阶系统使用升级材料
|
|
local function ReqSubUpgrade( type_id, material_type, is_auto_up)
|
|
material_type = material_type or 1
|
|
is_auto_up = is_auto_up and 1 or 0
|
|
if type_id then
|
|
self:SendFmtToGame(14620, "ccc", type_id, material_type, is_auto_up)
|
|
end
|
|
end
|
|
self.model:Bind(FosterConst.ReqSubUpgrade, ReqSubUpgrade)
|
|
|
|
--使用核心
|
|
local function ReqUseKernel( type_id, op_type, num )
|
|
op_type = op_type or 0
|
|
num = num or 1
|
|
if type_id then
|
|
self:SendFmtToGame(14602, "ccc", type_id, op_type, num)
|
|
end
|
|
end
|
|
self.model:Bind(FosterConst.ReqUseKernel, ReqUseKernel)
|
|
|
|
--幻化协议
|
|
local function ReqChangeSkin( type_id, diaplay_id )
|
|
if type_id and diaplay_id then
|
|
self:SendFmtToGame(14603, "ch", type_id, diaplay_id)
|
|
end
|
|
end
|
|
self.model:Bind(FosterConst.ReqChangeSkin, ReqChangeSkin)
|
|
|
|
--技能升级
|
|
local function ReqSkillUpgrade( type_id, pos )
|
|
if type_id and pos then
|
|
self:SendFmtToGame(14604, "cc", type_id, pos)
|
|
end
|
|
end
|
|
self.model:Bind(FosterConst.ReqSkillUpgrade, ReqSkillUpgrade)
|
|
|
|
--装备升级
|
|
local function ReqEquipUpGrade( type_id, grade, pos, eats )
|
|
if type_id and grade and pos and eats then
|
|
self:WriteBegin(14606)
|
|
self:WriteFMT("c", type_id)
|
|
self:WriteFMT("h", grade)
|
|
self:WriteFMT("c", pos)
|
|
self:WriteFMT("h", TableSize(eats))
|
|
for k, v in pairs(eats) do
|
|
self:WriteFMT("l", k)
|
|
end
|
|
self:SendToGame()
|
|
end
|
|
end
|
|
self.model:Bind(FosterConst.ReqEquipUpGrade, ReqEquipUpGrade)
|
|
|
|
--装备穿戴
|
|
local function ReqEquipDress( opty, type_id, grade, goods_id )
|
|
if opty and type_id and grade and goods_id then
|
|
self:SendFmtToGame(14607, "cchl", opty, type_id, grade, goods_id )
|
|
end
|
|
end
|
|
self.model:Bind(FosterConst.ReqEquipDress, ReqEquipDress)
|
|
|
|
local function OPEN_SUCCESS_VIEW( type_id,id,star )
|
|
print('----LZR ShapeController.lua 92-- type_id,id,star=',type_id,id,star)
|
|
if not self.shapesuccessview then
|
|
self.shapesuccessview = ShapeSuccessView.New()
|
|
self.shapesuccessview:Open(type_id,id,star, true)
|
|
end
|
|
end
|
|
self.model:Bind(FosterConst.OPEN_SUCCESS_VIEW,OPEN_SUCCESS_VIEW)
|
|
|
|
local function ReqEquipDressInfo( type_id,grade )
|
|
if not type_id or not grade then return end
|
|
self:SendFmtToGame(14608, "ch", type_id,grade )
|
|
end
|
|
self.model:Bind(FosterConst.ReqEquipDressInfo, ReqEquipDressInfo)
|
|
|
|
--骑乘状态修改
|
|
local function Change_Ride_Status( op_type )
|
|
--非显示坐骑场景,不给上坐骑
|
|
if op_type == 1 and not SceneManager:getInstance():IsShowHorseScene() then
|
|
Message.show("该场景不能上坐骑哦")
|
|
return
|
|
end
|
|
op_type = op_type or 0
|
|
-------------------------
|
|
--要筛选不能转换状态的情况,下坐骑就不限制了
|
|
local main_role = Scene:getInstance():GetMainRole()
|
|
if main_role then
|
|
if op_type == 1 then
|
|
--在部分不能上坐骑的地方,不要让它上坐骑
|
|
if not main_role:CanOperateHorse() then
|
|
Message.show("当前状态不能上坐骑哦")
|
|
return
|
|
end
|
|
end
|
|
end
|
|
-------------------------
|
|
if GetModuleIsOpen(146,1) then
|
|
self:SendFmtToGame(14609, "c", op_type )
|
|
end
|
|
end
|
|
self.model:Bind(FosterConst.Change_Ride_Status, Change_Ride_Status)
|
|
|
|
local function require_equip_assist_info(type)
|
|
if not type then return end
|
|
self:SendFmtToGame(14614, "c", type)
|
|
end
|
|
self.model:Bind(FosterConst.ReqEquipAssistInfo, require_equip_assist_info)
|
|
|
|
local function check_equip_assist_info(type, grade)
|
|
if not type or not grade then return end
|
|
self:SendFmtToGame(14615, "ch", type, grade)
|
|
end
|
|
self.model:Bind(FosterConst.CheckEquipAssistInfo, check_equip_assist_info)
|
|
|
|
local function require_activate_equip_assist(type, grade)
|
|
if not type or not grade then return end
|
|
self:SendFmtToGame(14616, "ch", type, grade)
|
|
end
|
|
self.model:Bind(FosterConst.ReqActivateEquipAssist, require_activate_equip_assist)
|
|
|
|
local function HIDE_HORSE( )
|
|
--下坐骑
|
|
Change_Ride_Status(0)
|
|
end
|
|
GlobalEventSystem:Bind(EventName.HIDE_HORSE,HIDE_HORSE)
|
|
local function RIDE_HORSE( )
|
|
if EscortModel:getInstance():IsEscortState() then--护送不给上坐骑
|
|
return
|
|
end
|
|
--上坐骑
|
|
Change_Ride_Status(1)
|
|
end
|
|
GlobalEventSystem:Bind(EventName.RIDE_HORSE,RIDE_HORSE)
|
|
|
|
local function OpenBaseView( type_id, right_show_type,is_skin)
|
|
-- print("Lizhijian:FosterController [start:298] ")
|
|
-- print(type_id, right_show_type,is_skin)
|
|
-- print("Lizhijian:FosterController [end:298] ")
|
|
if not self.FosterBaseView then
|
|
self.FosterBaseView = FosterBaseView.New(nil, nil, nil,type_id,right_show_type,is_skin)
|
|
self.FosterBaseView:Open()
|
|
else
|
|
self.FosterBaseView:ReOpen(type_id,right_show_type,is_skin)
|
|
end
|
|
end
|
|
GlobalEventSystem:Bind(FosterConst.OpenBaseView, OpenBaseView)
|
|
|
|
local function OpenKernelView( type_id )
|
|
if not type_id then
|
|
if self.FosterKernelView then
|
|
self.FosterKernelView:Close()
|
|
end
|
|
return
|
|
end
|
|
if not self.FosterKernelView then
|
|
self.FosterKernelView = FosterKernelView.New()
|
|
self.FosterKernelView:Open(type_id)
|
|
end
|
|
end
|
|
self.model:Bind(FosterConst.OpenKernelView,OpenKernelView)
|
|
|
|
local function OpenSkinView( type_id, sub_type_id)
|
|
if self.FosterBaseView then
|
|
self.FosterBaseView:Close()
|
|
local function delay_method()
|
|
local is_skin = true
|
|
GlobalEventSystem:Fire(FosterConst.OpenBaseView, type_id, sub_type_id, is_skin)
|
|
end
|
|
self.delay_method_id = setTimeout(delay_method, 0.5)
|
|
end
|
|
end
|
|
self.model:Bind(FosterConst.OpenSkinView,OpenSkinView)
|
|
|
|
local function OpenEquipingView( type_id,grade,equip_pos,equip_color)
|
|
if not type_id then
|
|
if self.FosterEquipingView then
|
|
self.FosterEquipingView:Close()
|
|
end
|
|
return
|
|
end
|
|
if not self.FosterEquipingView then
|
|
self.FosterEquipingView = FosterEquipingView.New()
|
|
self.FosterEquipingView:Open(type_id,grade,equip_pos,equip_color)
|
|
end
|
|
end
|
|
self.model:Bind(FosterConst.OpenEquipingView,OpenEquipingView)
|
|
|
|
local function OpenBlessView( type_id )
|
|
if not type_id then
|
|
self.model:Fire(FosterConst.CloseBaseView)
|
|
return
|
|
end
|
|
if not self.FosterBlessView then
|
|
self.FosterBlessView = FosterBlessView.New()
|
|
self.FosterBlessView:Open(type_id)
|
|
end
|
|
end
|
|
self.model:Bind(FosterConst.OpenBlessView, OpenBlessView)
|
|
|
|
local function OpenSkillTips( type_id, pos, skill_id )
|
|
if not type_id or not pos or not skill_id then
|
|
return
|
|
end
|
|
if not self.FosterSkillTips then
|
|
self.FosterSkillTips = FosterSkillTips.New()
|
|
self.FosterSkillTips:Open(type_id, pos, skill_id)
|
|
end
|
|
end
|
|
self.model:Bind(FosterConst.OpenSkillTips,OpenSkillTips)
|
|
|
|
--技能tips界面里跳转到商店时,关闭这个tips
|
|
local function CloseSkillTips()
|
|
if self.FosterSkillTips and self.FosterSkillTips.isPop then
|
|
self.FosterSkillTips:Close()
|
|
end
|
|
end
|
|
self.model:Bind(FosterConst.CloseSkillTips,CloseSkillTips)
|
|
|
|
-- local function OpenFosterBagView( type_id,grade,pos )
|
|
-- if not grade then return Message.show("进阶背包参数错误") end
|
|
-- if not self.FosterBagView then
|
|
-- self.model:SetDressAction(type_id,grade,pos)
|
|
-- -------------------------
|
|
-- self.FosterBagView = FosterBagView.New()
|
|
-- self.FosterBagView:Open(type_id,grade,pos)
|
|
-- end
|
|
-- end
|
|
-- self.model:Bind(FosterConst.OpenFosterBagView,OpenFosterBagView)
|
|
|
|
local function OpenFosterEquipTipView( data_1,data_2,tag,open_show_get_way,hide_base_con )
|
|
--要传入背包的信息!!!!
|
|
if not data_1 and not data_2 then return end
|
|
if not self.FosterEquipBaseView then
|
|
self.FosterEquipBaseView = FosterEquipBaseView.New()
|
|
self.FosterEquipBaseView:Open(data_1,data_2,tag,open_show_get_way,hide_base_con)
|
|
end
|
|
end
|
|
self.model:Bind(FosterConst.OpenFosterEquipTipView,OpenFosterEquipTipView)
|
|
|
|
local function OpenFosterUpEquipView( bag_data )
|
|
if not bag_data then return end
|
|
--要传入背包的信息!!!!
|
|
if not self.FosterUpEquipView then
|
|
self.FosterUpEquipView = FosterUpEquipView.New()
|
|
self.FosterUpEquipView:Open(bag_data)
|
|
end
|
|
end
|
|
self.model:Bind(FosterConst.OpenFosterUpEquipView,OpenFosterUpEquipView)
|
|
|
|
local function BOARD_CLOSE_FUNC_OPEN_VIEW( )
|
|
if self.wait_show_up_success_call then
|
|
self.wait_show_up_success_call()
|
|
self.wait_show_up_success_call = false
|
|
end
|
|
end
|
|
GlobalEventSystem:Bind(EventName.BOARD_CLOSE_FUNC_OPEN_VIEW, BOARD_CLOSE_FUNC_OPEN_VIEW)
|
|
end
|
|
|
|
--基础系统信息
|
|
function FosterController:on14600( )
|
|
local scmd = SCMD14600.New(true)
|
|
scmd.end_time = scmd.retime + TimeUtil:getServerTime()
|
|
self.model:SetBasicInfo(scmd.type, scmd)
|
|
local basic = self.model:GetBasicInfo(scmd.type)
|
|
self.model:CheckRedDot( true,scmd.type )
|
|
self:CheckRedDot()
|
|
self.model:Fire(FosterConst.AnsBasicInfo,scmd.type)
|
|
|
|
|
|
|
|
end
|
|
|
|
--系统培养
|
|
function FosterController:on14601( )
|
|
local scmd = SCMD14601.New(true)
|
|
if scmd.result == 1 then
|
|
GlobalEventSystem:Fire(EventName.PLAY_UI_EFFECT_SOUND,LuaSoundManager.SOUND_UI.SUCCESS)
|
|
local star_change,grade_change = self.model:StrengthenCheckIsUpgrade(scmd)
|
|
if star_change or grade_change then
|
|
if grade_change then
|
|
self:ShowUpSuccess(scmd.type,scmd.grade)
|
|
end
|
|
--升级重新请求
|
|
local function delay( )
|
|
self.model:Fire(FosterConst.ReqBasicInfo, scmd.type)
|
|
end
|
|
setTimeout(delay,0)
|
|
-------------------------
|
|
-- 升阶成功后需要检测是否弹出活动引导
|
|
local temp = {
|
|
[1] = scmd.type,
|
|
[2] = scmd.grade,
|
|
[3] = scmd.star,
|
|
}
|
|
KfActivityModel:getInstance():CheckNeedShowActGuide("foster", temp)
|
|
elseif not self.model:RefreshStrengthenExp( scmd ) then
|
|
--非升级就直接修改,未成功修改就请求数据
|
|
self.model:Fire(FosterConst.ReqBasicInfo, scmd.type)
|
|
end
|
|
-- if not (star_change or grade_change) then
|
|
-- Message.show(string.format( "升阶成功,祝福值+%d",scmd.exp ))
|
|
-- else
|
|
Message.show("升阶成功")
|
|
-- end
|
|
self.model:CanUpgrade(true,scmd.type)
|
|
self.model:Fire(FosterConst.AnsStrengthen,(star_change or grade_change) and true or false)
|
|
self:CheckRedDot()
|
|
self.model:ResetPetFightSkillState()
|
|
|
|
if ((not (star_change or grade_change)) and (scmd.auto_up == 1 and scmd.auto_buy == 0)) or
|
|
--自动进阶且非自动购买的时候,还没升级说明资源耗尽
|
|
(self.model:IsFirstForsterAdvance() and KfActivityModel:getInstance():CheckFosterRechargeAdsShow( scmd.type, scmd.grade)) then
|
|
self:ShowUpCostGoodsTips( scmd.type, scmd.grade, scmd.auto_up, true )
|
|
end
|
|
else
|
|
self.model:Fire(FosterConst.AnsStrengthen,"fail")
|
|
--[[if then
|
|
GlobalEventSystem:Fire(EventName.PLAY_UI_EFFECT_SOUND,LuaSoundManager.SOUND_UI.FAULT)
|
|
lua_soundM:PlayEffect(self, "fault", false, LuaSoundManager.SOUND_TYPE.UI)
|
|
GlobalEventSystem:Fire(EventName.OPEN_RECHARGE_TIP_VIEW, true)
|
|
ErrorCodeShow(scmd.result)
|
|
else--]]
|
|
if scmd.result == 1003 or scmd.result == 1006 or scmd.result == 1001 then
|
|
if scmd.result == 1006 and scmd.auto_up == 1 and scmd.auto_buy == 1 then
|
|
local function call_yes( )
|
|
local function delay( )
|
|
self.model:Fire(FosterConst.ReqStrengthen, scmd.type, true,true, 1)
|
|
end
|
|
setTimeout(delay,0.3)
|
|
end
|
|
Alert.show('您的红钻已用完,需要开始消耗彩钻进阶,确认继续吗?', Alert.Type.Two, call_yes, nil, '确定', '取消')
|
|
return
|
|
end
|
|
GlobalEventSystem:Fire(EventName.PLAY_UI_EFFECT_SOUND,LuaSoundManager.SOUND_UI.FAULT)
|
|
lua_soundM:PlayEffect(self, "fault", false, LuaSoundManager.SOUND_TYPE.UI)
|
|
self:ShowUpCostGoodsTips( scmd.type, scmd.grade, scmd.auto_up, false)
|
|
else
|
|
ErrorCodeShow(scmd.result)
|
|
end
|
|
end
|
|
end
|
|
|
|
function FosterController:ShowUpCostGoodsTips( type_id, grade, auto_up, is_success )
|
|
local cost_data = self.model:GetGradeCost(type_id)
|
|
if cost_data then
|
|
local parm_list = {}
|
|
|
|
--如果是成功,并且是第一次弹提示窗,才需要延时
|
|
local is_delay_show = self.model:IsFirstForsterAdvance() and is_success
|
|
-- 进阶抢购和进阶首充不同时出现 进阶首充的显示优先级高
|
|
if KfActivityModel:getInstance():CheckFosterRechargeAdsShow( type_id, grade) then
|
|
parm_list.foster_recharge_show = true
|
|
else
|
|
parm_list.show_limit_shop = true
|
|
end
|
|
for k,v in pairs(ShopModel:getInstance():GetGoodsListInfo( ShopType.BindGold )) do
|
|
for a,b in pairs(v) do
|
|
if b.goods_id == tonumber(cost_data[1][2]) then
|
|
parm_list.shop_data = DeepCopy(b)
|
|
-------------------------
|
|
--填入一个缺少值
|
|
parm_list.shop_data.first_buy_num = self.model:GetUpgradeNeedMoreCostNum(type_id, auto_up)
|
|
-------------------------
|
|
end
|
|
end
|
|
end
|
|
|
|
self:StopShowUpCostTimer()
|
|
if is_delay_show then
|
|
local function delay_call_back( ... )
|
|
self:StopShowUpCostTimer()
|
|
local main_role = Scene.Instance:GetMainRole()
|
|
if not main_role then
|
|
return
|
|
end
|
|
self.model:SetFirstForsterAdvanceCookie()
|
|
-- 传入当前类型和阶数
|
|
parm_list.foster_data = {type = type_id, grade = grade}
|
|
UIToolTipMgr:getInstance():AppendGoodsTips(cost_data[1][2], nil, nil,nil,nil,parm_list,nil,nil)
|
|
end
|
|
self.show_up_cost_timer = GlobalTimerQuest:AddDelayQuest(delay_call_back,1.5)
|
|
else
|
|
self.model:SetFirstForsterAdvanceCookie()
|
|
-- 传入当前类型和阶数
|
|
parm_list.foster_data = {type = type_id, grade = grade}
|
|
UIToolTipMgr:getInstance():AppendGoodsTips(cost_data[1][2], nil, nil,nil,nil,parm_list,nil,nil)
|
|
end
|
|
|
|
end
|
|
end
|
|
|
|
function FosterController:StopShowUpCostTimer()
|
|
if self.show_up_cost_timer then
|
|
GlobalTimerQuest:CancelQuest(self.show_up_cost_timer)
|
|
self.show_up_cost_timer = nil
|
|
end
|
|
end
|
|
|
|
--使用核心
|
|
function FosterController:on14602( )
|
|
local scmd = SCMD14602.New(true)
|
|
if scmd.result == 1 then
|
|
Message.show("使用成功")
|
|
-- 每次使用成功后请求基础数据更新
|
|
self.model:Fire(FosterConst.ReqBasicInfo, scmd.type)
|
|
self.model:Fire(FosterConst.AnsUseKernel,scmd.opty, scmd.result)
|
|
self.model:CanKernel(true,scmd.type)
|
|
self:CheckRedDot()
|
|
GlobalEventSystem:Fire(EventName.PLAY_UI_EFFECT_SOUND,LuaSoundManager.SOUND_UI.SUCCESS)
|
|
else
|
|
self.model:Fire(FosterConst.AnsUseKernel,scmd.opty, scmd.result)
|
|
ErrorCodeShow(scmd.result)
|
|
end
|
|
end
|
|
|
|
--幻化协议
|
|
function FosterController:on14603( )
|
|
local scmd = SCMD14603.New(true)
|
|
if scmd.result == 1 then
|
|
Message.show("幻化成功")
|
|
if not self.model:RefreshSkinUseInfo( scmd.type, scmd.display ) then
|
|
self.model:Fire(FosterConst.ReqBasicInfo, scmd.type)
|
|
end
|
|
self.model:Fire(FosterConst.AnsChangeSkin, scmd.type)
|
|
GlobalEventSystem:Fire(EventName.PLAY_UI_EFFECT_SOUND,LuaSoundManager.SOUND_UI.SUCCESS)
|
|
else
|
|
ErrorCodeShow(scmd.result)
|
|
end
|
|
end
|
|
|
|
--技能升级
|
|
function FosterController:on14604( )
|
|
local scmd = SCMD14604.New(true)
|
|
if scmd.result == 1 then
|
|
Message.show("升级成功")
|
|
self.model:RefreshSkillInfo(scmd.type, scmd)
|
|
-------------------------
|
|
self.model:CanSkillUpgradeByType( true,scmd.type )
|
|
self:CheckRedDot()
|
|
self.model:Fire(FosterConst.AnsSkillUpgrade)
|
|
self.model:Fire(FosterConst.ReqBasicInfo, scmd.type)
|
|
GlobalEventSystem:Fire(EventName.PLAY_UI_EFFECT_SOUND,LuaSoundManager.SOUND_UI.SUCCESS)
|
|
else
|
|
ErrorCodeShow(scmd.result)
|
|
end
|
|
end
|
|
|
|
--技能激活通知
|
|
function FosterController:on14605( )
|
|
local scmd = SCMD14605.New(true)
|
|
self.model:RefreshSkillInfo(scmd.type, scmd)
|
|
self.model:Fire(FosterConst.BoardSkillActive)
|
|
if scmd.skill > 0 then
|
|
local skill_data = {skill_id = scmd.skill, show_time = 15, ignore_auto_task = true}
|
|
FuncOpenController.Instance:ShowSkill(skill_data)
|
|
end
|
|
-------------------------
|
|
self.model:CanSkillUpgradeByType( true,scmd.type )
|
|
self:CheckRedDot()
|
|
end
|
|
|
|
--装备升级
|
|
function FosterController:on14606( )
|
|
local scmd = SCMD14606.New(true)
|
|
if scmd.res == 1 then
|
|
Message.show("升级成功")
|
|
self.model:ResetSwallowSelect()
|
|
self.model:Fire(FosterConst.SwallowStatusChange)
|
|
-------------------------
|
|
self.model:Fire(FosterConst.AnsEquipUpGrade, scmd.type, scmd.grade)
|
|
self.model:Fire(FosterConst.ReqEquipDressInfo,scmd.type,scmd.grade)
|
|
-------------------------
|
|
self.model:RefreshEquipRedData( scmd.type )
|
|
self:CheckRedDot()
|
|
GlobalEventSystem:Fire(EventName.PLAY_UI_EFFECT_SOUND,LuaSoundManager.SOUND_UI.SUCCESS)
|
|
else
|
|
ErrorCodeShow(scmd.res)
|
|
end
|
|
end
|
|
|
|
--装备穿戴
|
|
function FosterController:on14607( )
|
|
local scmd = SCMD14607.New(true)
|
|
if scmd.res == 1 then
|
|
if scmd.opty == 1 then
|
|
Message.show("穿戴成功")
|
|
else
|
|
Message.show("卸下成功")
|
|
end
|
|
self.model:Fire(FosterConst.CloseFosterEquipTipView)
|
|
self.model:Fire(FosterConst.CloseFosterBagView)
|
|
self.model:Fire(FosterConst.AnsEquipDress, scmd.type, scmd.grade, scmd.opty, scmd.pos)
|
|
self.model:Fire(FosterConst.ReqEquipDressInfo,scmd.type,scmd.grade)
|
|
-------------------------
|
|
self.model:RefreshEquipRedData( scmd.type )
|
|
self:CheckRedDot()
|
|
GlobalEventSystem:Fire(EventName.PLAY_UI_EFFECT_SOUND,LuaSoundManager.SOUND_UI.SUCCESS)
|
|
else
|
|
ErrorCodeShow(scmd.res)
|
|
end
|
|
end
|
|
|
|
--装备更新
|
|
function FosterController:on14608( )
|
|
local scmd = SCMD14608.New(true)
|
|
self.model:RefreshEquipList( scmd.type,scmd.grade,scmd.equips )
|
|
self.model:Fire(FosterConst.AnsEquipDressInfo)
|
|
-------------------------
|
|
self.model:RefreshEquipRedData( scmd.type )
|
|
self:CheckRedDot()
|
|
end
|
|
|
|
--骑乘状态修改
|
|
function FosterController:on14609( )
|
|
local scmd = SCMD14609.New(true)
|
|
if scmd.res==1 then
|
|
else
|
|
ErrorCodeShow(scmd.res)
|
|
end
|
|
end
|
|
|
|
|
|
--新手激活推送
|
|
function FosterController:on14613( )
|
|
local scmd = SCMD14613.New(true)
|
|
local reward_data = {show_name = "", show_list = {}}
|
|
for k,v in pairs(scmd.awards) do
|
|
table.insert(reward_data.show_list, {0, v.kdata, v.vdata})
|
|
end
|
|
self:ShowUpSuccess( scmd.type, scmd.grade, reward_data )
|
|
end
|
|
|
|
-- 进阶装备助战状态查询 - 全量数据
|
|
function FosterController:on14614( )
|
|
local vo = SCMD14614.New(true)
|
|
self.model:SetFosterSuitAssistFlagData(vo)
|
|
self:CheckRedDot()
|
|
self.model:Fire(FosterConst.UPDATE_FOSTER_ASSIST_FLAG)
|
|
end
|
|
|
|
function FosterController:on14615( )
|
|
local vo = SCMD14615.New(true)
|
|
self.model:UpdateFosterSuitAssistFlagData(vo)
|
|
self.model:CanActivateFosterAssist(true, vo.type)
|
|
self:CheckRedDot()
|
|
self.model:Fire(FosterConst.UPDATE_FOSTER_ASSIST_FLAG, vo.type, vo.grade)
|
|
end
|
|
|
|
function FosterController:on14616( )
|
|
local vo = SCMD14616.New(true)
|
|
if vo.errcode == 1 then -- 激活成功
|
|
vo.state = 2 -- 成功写死2
|
|
self.model:UpdateFosterSuitAssistFlagData(vo)
|
|
self.model:CanActivateFosterAssist(true, vo.type)
|
|
self:CheckRedDot()
|
|
self.model:Fire(FosterConst.UPDATE_FOSTER_ASSIST_FLAG, vo.type, vo.grade)
|
|
else
|
|
ErrorCodeShow(vo.errcode)
|
|
end
|
|
end
|
|
|
|
function FosterController:on14617()
|
|
local vo = SCMD14617.New(true)
|
|
self.model:SetFosterSubSkinData(vo.type, vo.skins)
|
|
self.model:Fire(FosterConst.AnsSubSkinInfo, vo.type, vo.skins)
|
|
self:CheckRedDot()
|
|
end
|
|
|
|
function FosterController:on14618()
|
|
local vo = SCMD14618.New(true)
|
|
|
|
if vo.result == 1 then -- 操作成功
|
|
self:CheckRedDot()
|
|
--激活成功
|
|
if vo.star == 1 then
|
|
self.model:Fire(FosterConst.ReqSubSkinChange, vo.type, vo.id, vo.star)
|
|
end
|
|
self.model:Fire(FosterConst.ReqSubSkinInfo, vo.type)
|
|
self.model:Fire(FosterConst.OPEN_SUCCESS_VIEW, vo.type, vo.id, vo.star)
|
|
else
|
|
ErrorCodeShow(vo.result)
|
|
end
|
|
self.model:Fire(FosterConst.AnsSubSkinActiveOrUpGrade, vo)
|
|
end
|
|
|
|
function FosterController:on14619()
|
|
local vo = SCMD14619.New(true)
|
|
|
|
if vo.result == 1 then -- 操作成功
|
|
-- self:CheckRedDot()
|
|
self.model:Fire(FosterConst.ReqSubSkinInfo, vo.type)
|
|
else
|
|
ErrorCodeShow(vo.result)
|
|
end
|
|
self.model:Fire(FosterConst.AnsSubSkinChange, vo)
|
|
end
|
|
|
|
function FosterController:on14620()
|
|
local vo = SCMD14620.New(true)
|
|
if vo.result == 1 then -- 使用材料成功
|
|
self:CheckRedDot()
|
|
elseif vo.result ~= 1003 then
|
|
ErrorCodeShow(vo.result)
|
|
end
|
|
self.model:Fire(FosterConst.AnsSubUpgrade, vo.result, vo.type, vo.material_type, vo.lv, vo.exp)
|
|
end
|
|
|
|
function FosterController:on14621()
|
|
local vo = SCMD14621.New(true)
|
|
self.model:Fire(FosterConst.ReqBasicInfo, vo.type)
|
|
end
|
|
-------------------------
|
|
--进阶消耗材料变更
|
|
function FosterController:UpGradeGoodsChange( )
|
|
for k,v in pairs(FosterConst.ModuleId) do
|
|
if GetModuleIsOpen(146,v) then
|
|
self.model:CanUpgrade(true,v)
|
|
end
|
|
end
|
|
self:CheckRedDot()
|
|
|
|
--贵族培养丹兑换需要检测材料数量变化
|
|
SupremeVipModel:getInstance():Fire(SupremeVipConst.UPDATE_TRAIN_DRUG_NUM)
|
|
end
|
|
|
|
--属性丹消耗材料变更
|
|
function FosterController:UpKernelGoodsChange( )
|
|
for k,v in pairs(FosterConst.ModuleId) do
|
|
if GetModuleIsOpen(146,v) then
|
|
self.model:CanKernel( true, v )
|
|
end
|
|
end
|
|
self:CheckRedDot()
|
|
end
|
|
|
|
function FosterController:UpHorseEquipChange( )
|
|
if GetModuleIsOpen(146,FosterConst.ModuleId.FHorse) then
|
|
local bool_i = self.model:CanDressNewEquipWithType(true,FosterConst.ModuleId.FHorse)
|
|
local bool_i = self.model:CanDressUpEquipWithType(true,FosterConst.ModuleId.FHorse)
|
|
local bool_i = self.model:CanUpEquipWithType( true,FosterConst.ModuleId.FHorse )
|
|
self:CheckRedDot()
|
|
end
|
|
end
|
|
|
|
function FosterController:SkillGoodsChange( )
|
|
for k,v in pairs(FosterConst.ModuleId) do
|
|
if GetModuleIsOpen(146,v) then
|
|
self.model:CanSkillUpgradeByType( true, v )
|
|
end
|
|
end
|
|
self:CheckRedDot()
|
|
end
|
|
|
|
function FosterController:UpAIEquipChange( )
|
|
if GetModuleIsOpen(146,FosterConst.ModuleId.FJarvis) then
|
|
self.model:CanDressUpEquipWithType(true,FosterConst.ModuleId.FJarvis)
|
|
self.model:CanDressUpEquipWithType(true,FosterConst.ModuleId.FJarvis)
|
|
self.model:CanUpEquipWithType( true,FosterConst.ModuleId.FJarvis )
|
|
self:CheckRedDot()
|
|
end
|
|
end
|
|
|
|
--刷新AI娘SKin红点
|
|
function FosterController:UpAISkinChange( )
|
|
if GetModuleIsOpen(146,FosterConst.ModuleId.FJarvis) then
|
|
self.model:CanSkinActOrUp( true,FosterConst.ModuleId.FJarvis )
|
|
self:CheckRedDot()
|
|
end
|
|
end
|
|
|
|
--刷新磁炮皮肤红点
|
|
function FosterController:UpFGunChange( )
|
|
if GetModuleIsOpen(146,FosterConst.ModuleId.FJarvis) then
|
|
self.model:CanSkinActOrUp( true,FosterConst.ModuleId.FGun )
|
|
self:CheckRedDot()
|
|
end
|
|
end
|
|
|
|
--刷新星翼皮肤红点
|
|
function FosterController:UpFcloudChange( )
|
|
if GetModuleIsOpen(146,FosterConst.ModuleId.FJarvis) then
|
|
self.model:CanSkinActOrUp( true,FosterConst.ModuleId.FCloud )
|
|
self:CheckRedDot()
|
|
end
|
|
end
|
|
|
|
--刷新幻甲SKin红点
|
|
function FosterController:UpFArmourChange( )
|
|
if GetModuleIsOpen(146,FosterConst.ModuleId.FJarvis) then
|
|
self.model:CanSkinActOrUp( true,FosterConst.ModuleId.FArmour )
|
|
self:CheckRedDot()
|
|
end
|
|
end
|
|
|
|
function FosterController:CheckRedDot( )
|
|
local function call_backack( )
|
|
local list = {
|
|
[1] = {
|
|
FosterConst.ModuleId.FHorse, FosterConst.ModuleId.FWing,
|
|
FosterConst.ModuleId.FPearl, FosterConst.ModuleId.FWeapon,
|
|
},
|
|
[2] = {
|
|
FosterConst.ModuleId.FJarvis, FosterConst.ModuleId.FGun,
|
|
FosterConst.ModuleId.FCloud, FosterConst.ModuleId.FArmour,
|
|
}
|
|
}
|
|
local bool_1,bool_2 = false,false
|
|
for k,v in pairs(list[1]) do
|
|
if GetModuleIsOpen(146,v) then
|
|
bool_1 = bool_1 or self.model:CheckRedDot( false,v )
|
|
end
|
|
end
|
|
for k,v in pairs(list[2]) do
|
|
if GetModuleIsOpen(146,v) then
|
|
bool_2 = bool_2 or self.model:CheckRedDot( false,v )
|
|
end
|
|
end
|
|
GlobalEventSystem:Fire(EventName.SHOW_FUNCTION_RED_POINT, 146, bool_1)
|
|
GlobalEventSystem:Fire(EventName.SHOW_FUNCTION_RED_POINT, 146555, bool_2)
|
|
-------------------------
|
|
self.model:Fire(FosterConst.RedDotRefresh)
|
|
self.model:CheckBlessClock( )--祝福值清空提示机制
|
|
end
|
|
TimeManager.GetInstance():StartTime("FosterController_CheckRedDot", 0.5, call_backack)
|
|
end
|
|
|
|
function FosterController:ShowUpSuccess( type_id, grade, reward_data )
|
|
local function call_up_success( )
|
|
if (not type_id) or (not grade) then return end
|
|
local cur_data = self.model:GetBaseConfOne( type_id, grade, 0 )
|
|
if not cur_data then return end
|
|
local attr_new = stringtotable(cur_data.attrs)
|
|
|
|
local data = {}
|
|
data.extra_type_id = type_id
|
|
data.extra_grade = grade
|
|
data.close_time = 10
|
|
data.big_title_effect = {
|
|
{res = "ui_jinjiechenggong01"},
|
|
{res = "ui_jinjiechenggong02"},
|
|
}
|
|
data.grade_change = {
|
|
old_grade = string.format("%s阶",grade-1),
|
|
new_grade = string.format("%s阶",grade),
|
|
old_star = grade - 1,
|
|
new_star = grade,
|
|
max_star_old = 0,--self.model:GetCurMaxStar( type_id,grade - 1 ),
|
|
max_star_new = 0,--self.model:GetCurMaxStar( type_id,grade ),
|
|
}
|
|
data.model_info = {
|
|
model_type = FosterConst.ModelMatch[type_id],
|
|
model_id = cur_data.resource,
|
|
name = Trim(cur_data.name),
|
|
name_des = string.format("%s阶",grade)
|
|
}
|
|
-------------------------
|
|
data.special_attr = {}
|
|
for i=#attr_new,1,-1 do
|
|
if WordManager:GetAttrIsSpecial(attr_new[i][1]) then
|
|
table.insert(data.special_attr, table.remove(attr_new,i))
|
|
end
|
|
end
|
|
-------------------------
|
|
if grade == 1 then
|
|
data.power_data = {
|
|
new_power = GetFighting(attr_new),
|
|
change_power = 0,
|
|
}
|
|
data.attr_data = {
|
|
title_name = string.format("%s属性",FosterConst.ModelName[type_id]),
|
|
attr_old = attr_new,
|
|
attr_new = {},
|
|
}
|
|
else
|
|
local attr_old = stringtotable(self.model:GetBaseConfOne( type_id, grade-1, self.model:GetCurMaxStar( type_id,grade-1 ) ).attrs)
|
|
-------------------------
|
|
--把特殊属性删掉
|
|
for i=#attr_old,1,-1 do
|
|
if WordManager:GetAttrIsSpecial(attr_old[i][1]) then
|
|
table.remove(attr_old,i)
|
|
end
|
|
end
|
|
-------------------------
|
|
data.power_data = {
|
|
new_power = GetFighting(attr_new),
|
|
change_power = GetFighting(attr_new) - GetFighting(attr_old),
|
|
}
|
|
data.attr_data = {
|
|
title_name = string.format("%s属性",FosterConst.ModelName[type_id]),
|
|
attr_old = attr_old,
|
|
attr_new = attr_new,
|
|
}
|
|
|
|
--特殊指定的奖励数据
|
|
if reward_data then
|
|
data.reward_data = reward_data
|
|
data.reward_data.show_name = Trim(cur_data.name)
|
|
else
|
|
data.reward_data = {
|
|
show_list = stringtotable(cur_data.award)
|
|
}
|
|
end
|
|
|
|
end
|
|
-------------------------
|
|
data.attr_data.pos_type = #data.special_attr == 0 and "default" or "foster"
|
|
-------------------------
|
|
if self.FosterSkillTips then
|
|
self.FosterSkillTips:Close()
|
|
end
|
|
GlobalEventSystem:Fire(EventName.OPEN_UPGRADE_SHOW_VIEW,data)
|
|
end
|
|
|
|
if self.model.wait_new_func_open then
|
|
self.wait_show_up_success_call = call_up_success
|
|
else
|
|
call_up_success()
|
|
self.wait_show_up_success_call = false
|
|
end
|
|
end
|
|
|
|
|
|
--时装(这里就不触发更改,只调整数据)
|
|
function FosterController:ChangeRoleFashionInfo(scmd, role_id)
|
|
local role_vo = SceneManager.Instance:GetRoleVo(role_id)
|
|
local role = Scene.Instance:GetRole(role_id)
|
|
if not role_vo then return end
|
|
local exchange_type_id = scmd.type_id
|
|
--如果不是武器或者翅膀就不处理
|
|
if not (FashionModel.FashionType.WING == exchange_type_id or FashionModel.FashionType.WEAPON == exchange_type_id) then return end
|
|
--时装的类型和进阶的类型进行转换
|
|
if exchange_type_id == FashionModel.FashionType.WING then
|
|
exchange_type_id = FosterConst.ModuleId.FWing
|
|
elseif exchange_type_id == FashionModel.FashionType.WEAPON then
|
|
exchange_type_id = FosterConst.ModuleId.FWeapon
|
|
end
|
|
--这里要把别的系统的数据清理掉 开始
|
|
for k,v in pairs(role_vo.foster_sub_skin_list) do
|
|
if v.type_id == exchange_type_id then
|
|
v.skin_id = 0
|
|
v.star = 0
|
|
break
|
|
end
|
|
end
|
|
|
|
for k,v in pairs(role_vo.foster_skin_list) do
|
|
if v.type_id == exchange_type_id then
|
|
v.sub_id = 0
|
|
v.star = 0
|
|
v.skin_id = 0
|
|
break
|
|
end
|
|
end
|
|
--这里要把别的系统的数据清理掉 结束
|
|
end
|
|
|
|
--皮肤变更
|
|
function FosterController:ChangeRoleForsterSunSkinInfo(scmd, role_id)
|
|
local role_vo = SceneManager.Instance:GetRoleVo(role_id)
|
|
local role = Scene.Instance:GetRole(role_id)
|
|
if not role_vo then return end
|
|
role_vo.foster_sub_skin_list = role_vo.foster_sub_skin_list or {}
|
|
local is_have = false
|
|
for k,v in pairs(role_vo.foster_sub_skin_list) do
|
|
if v.type_id == scmd.type_id then
|
|
v.skin_id = scmd.skin_id
|
|
v.star = scmd.star
|
|
is_have = true
|
|
break
|
|
end
|
|
end
|
|
if not is_have then
|
|
table.insert(role_vo.foster_sub_skin_list, {type_id = scmd.type_id, skin_id = scmd.skin_id, star=scmd.star})
|
|
end
|
|
|
|
--这里要把别的系统的数据清理掉 开始
|
|
for k,v in pairs(role_vo.foster_skin_list) do
|
|
if v.type_id == scmd.type_id then
|
|
v.sub_id = 0
|
|
v.star = 0
|
|
v.skin_id = 0
|
|
break
|
|
end
|
|
end
|
|
--这里要把别的系统的数据清理掉 结束
|
|
|
|
local exchange_type_id = scmd.type_id
|
|
local foster_res_id = false
|
|
for k,v in pairs(role_vo.foster_list) do
|
|
if v.type_id == exchange_type_id then
|
|
foster_res_id = self.model:GetModuleResIdByStage(v.type_id,v.stage_id)
|
|
end
|
|
end
|
|
local skin_res_id = false
|
|
for k,v in pairs(role_vo.foster_skin_list) do
|
|
if v.type_id == exchange_type_id and v.skin_id > 0 then
|
|
skin_res_id = v.skin_id
|
|
end
|
|
end
|
|
|
|
local skin_sub_res_id = false
|
|
for k,v in pairs(role_vo.foster_sub_skin_list) do
|
|
if v.type_id == exchange_type_id and v.skin_id > 0 then
|
|
skin_sub_res_id = v.skin_id
|
|
end
|
|
end
|
|
|
|
if skin_sub_res_id or skin_res_id or foster_res_id then
|
|
role_vo:ChangeVar(FosterConst.CHANGE_TAG_LIST[exchange_type_id],skin_sub_res_id or skin_res_id or foster_res_id)
|
|
end
|
|
|
|
end
|
|
|
|
--珍宝
|
|
function FosterController:ChangeRoleForsterInfo( scmd,role_id, is_base_forster)
|
|
role_id = role_id or RoleManager.Instance.mainRoleInfo.role_id
|
|
local role_vo = SceneManager.Instance:GetRoleVo(role_id)
|
|
local role = Scene.Instance:GetRole(role_id)
|
|
if not role_vo then return end
|
|
if scmd.type > 1000 then
|
|
--珍宝的要特殊处理补齐参数哦
|
|
if scmd.type - 1000 == FosterConst.ModuleId.FWeapon then
|
|
--武器的珍宝需要手动折算2次成资源名
|
|
if tonumber(scmd.display[2]) > 0 then
|
|
scmd.skin_id = ShapeModel:GetModelRes( scmd.type-1000, tonumber(scmd.display[1]), tonumber(scmd.display[2]) )
|
|
scmd.skin_id = GameResPath:GetFWeaponResName( role_vo.career,scmd.skin_id)
|
|
else
|
|
scmd.skin_id = 0
|
|
end
|
|
else
|
|
scmd.skin_id = ShapeModel:GetModelRes( scmd.type-1000, tonumber(scmd.display[1]), tonumber(scmd.display[2]) )
|
|
end
|
|
scmd.sub_id = tonumber(scmd.display[1])
|
|
scmd.star = tonumber(scmd.display[2])
|
|
end
|
|
local function foster_have_change( type_id )
|
|
local have = false
|
|
for k,v in pairs(role_vo.foster_list) do
|
|
if v.type_id == type_id then
|
|
v.stage_id = scmd.display
|
|
have = true
|
|
break
|
|
end
|
|
end
|
|
return have
|
|
end
|
|
local function shape_have_change( type_id )
|
|
local have = false
|
|
for k,v in pairs(role_vo.foster_skin_list) do
|
|
if v.type_id == type_id then
|
|
v.sub_id = scmd.sub_id
|
|
v.star = scmd.star
|
|
v.skin_id = scmd.skin_id
|
|
have = true
|
|
break
|
|
end
|
|
end
|
|
return have
|
|
end
|
|
-------------------------
|
|
if FosterConst.CHANGE_TAG_LIST[scmd.type] or FosterConst.CHANGE_TAG_LIST[scmd.type-1000] then
|
|
if scmd.type < 1000 then
|
|
--进阶普通的要换算
|
|
local have = foster_have_change(scmd.type)
|
|
if not have then
|
|
table.insert( role_vo.foster_list, {type_id = scmd.type,stage_id = scmd.display} )
|
|
end
|
|
else
|
|
--珍宝的直接就是资源id
|
|
local have = shape_have_change(scmd.type - 1000)
|
|
if not have then
|
|
table.insert( role_vo.foster_skin_list, {type_id = scmd.type,skin_id = scmd.skin_id,sub_id = scmd.sub_id,star = scmd.star} )
|
|
end
|
|
end
|
|
-------------------------
|
|
local exchange_type_id = (scmd.type > 1000) and (scmd.type - 1000) or scmd.type
|
|
--这里要把别的系统的数据清理掉 开始
|
|
for k,v in pairs(role_vo.foster_sub_skin_list) do
|
|
if v.type_id == exchange_type_id then
|
|
v.skin_id = 0
|
|
v.star = 0
|
|
break
|
|
end
|
|
end
|
|
|
|
if is_base_forster then
|
|
for k,v in pairs(role_vo.foster_skin_list) do
|
|
if v.type_id == exchange_type_id then
|
|
v.sub_id = 0
|
|
v.star = 0
|
|
v.skin_id = 0
|
|
break
|
|
end
|
|
end
|
|
end
|
|
--这里要把别的系统的数据清理掉 结束
|
|
local foster_res_id = false
|
|
for k,v in pairs(role_vo.foster_list) do
|
|
if v.type_id == exchange_type_id then
|
|
foster_res_id = self.model:GetModuleResIdByStage(v.type_id,v.stage_id)
|
|
end
|
|
end
|
|
local skin_res_id = false
|
|
for k,v in pairs(role_vo.foster_skin_list) do
|
|
if v.type_id == exchange_type_id and v.skin_id > 0 then
|
|
skin_res_id = v.skin_id
|
|
end
|
|
end
|
|
|
|
local skin_sub_res_id = false
|
|
for k,v in pairs(role_vo.foster_sub_skin_list) do
|
|
if v.type_id == exchange_type_id and v.skin_id > 0 then
|
|
skin_sub_res_id = v.skin_id
|
|
end
|
|
end
|
|
|
|
if skin_sub_res_id or skin_res_id or foster_res_id then
|
|
role_vo:ChangeVar(FosterConst.CHANGE_TAG_LIST[exchange_type_id],skin_sub_res_id or skin_res_id or foster_res_id)
|
|
end
|
|
|
|
elseif scmd.type == 1000 + FosterConst.ModuleId.FWeapon then
|
|
--武器珍宝
|
|
local res_id = scmd.skin_id
|
|
local have = false
|
|
for k,v in pairs(role_vo.foster_skin_list) do
|
|
if v.type_id == FosterConst.ModuleId.FWeapon then
|
|
v.skin_id = res_id
|
|
have = true
|
|
break
|
|
end
|
|
end
|
|
if not have then
|
|
table.insert( role_vo.foster_skin_list, {type_id = FosterConst.ModuleId.FWeapon,skin_id = scmd.skin_id,sub_id = scmd.sub_id,star = scmd.star} )
|
|
end
|
|
-------------------------
|
|
if role then
|
|
role:ChangeWeapon( )
|
|
end
|
|
elseif scmd.type == FosterConst.ModuleId.FWeapon then
|
|
local have_add = false
|
|
for k,v in pairs(role_vo.level_model_list) do
|
|
if v.part_pos == FashionPartPos.Weapon then
|
|
v.level_model_id = GameResPath:GetFWeaponResName( role_vo.career,self.model:GetModuleResIdByStage(scmd.type,scmd.display) )
|
|
have_add = true
|
|
end
|
|
end
|
|
if not have_add then
|
|
table.insert( role_vo.level_model_list, {part_pos = FashionPartPos.Weapon,level_model_id = scmd.display} )
|
|
end
|
|
if role then
|
|
role:ChangeWeapon( )
|
|
end
|
|
end
|
|
end
|