源战役客户端
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
 
 
 
 
 

97 行
3.1 KiB

DialogueChooseMessage = DialogueChooseMessage or BaseClass(BaseView)
local DialogueChooseMessage = DialogueChooseMessage
DialogueChooseMessage.MSG_INFO = {
[1] = "人物性格 理性<color=#fddd6e>+%s</color>",
[2] = "人物性格 感性<color=#fddd6e>+%s</color>",
[3] = "人物性格 中性<color=#fddd6e>+%s</color>",
[4] = "自由性格点数 <color=#fddd6e>+%s</color>",
}
function DialogueChooseMessage:__init()
self.base_file = "dialogue"
self.layout_file = "DialogueChooseMessage"
self.layer_name = "Top"
self.destroy_imm = true
self.use_background = false
self.change_scene_close = true
self.load_callback = function ()
self:LoadSuccess()
end
self.open_callback = function ( )
self:OpenSuccess()
end
self.destroy_callback = function ( )
self:DestroySuccess()
end
end
function DialogueChooseMessage:Open( choose_type, choose_value )
self.choose_type, self.choose_value = choose_type, choose_value
BaseView.Open(self)
end
--重复调用,省去open逻辑
function DialogueChooseMessage:SetData( choose_type, choose_value )
self.choose_type, self.choose_value = choose_type, choose_value
self:UpdateView()
end
function DialogueChooseMessage:LoadSuccess()
self.nodes = {
"cont:obj", "cont/nastic_bg:obj", "cont/intellect_bg:obj", "cont/value:tmp", "cont/indecision_bg:obj",
}
self:GetChildren(self.nodes)
end
function DialogueChooseMessage:OpenSuccess()
if self.choose_type and self.choose_type ~= 0 then
-- 更新性格节点数据
-- NatureModel:getInstance():Fire(NatureModel.REQUEST_CCMD_EVENT, 16700)
-- NatureModel:getInstance():Fire(NatureModel.REQUEST_CCMD_EVENT, 16701, 1)
-- NatureModel:getInstance():Fire(NatureModel.REQUEST_CCMD_EVENT, 16701, 2)
-- NatureModel:getInstance():Fire(NatureModel.REQUEST_CCMD_EVENT, 16701, 3)
-- 刷新界面
self:UpdateView()
end
end
function DialogueChooseMessage:UpdateView()
if IsNull(self.transform) then
return
end
self.intellect_bg_obj:SetActive(self.choose_type == 1)
self.nastic_bg_obj:SetActive(self.choose_type == 2)
self.indecision_bg_obj:SetActive(self.choose_type == 3 or self.choose_type == 4)
local str = DialogueChooseMessage.MSG_INFO[self.choose_type]
self.value_tmp.text = str and string.format(str, self.choose_value) or ""
self:PlayAnim()
end
function DialogueChooseMessage:PlayAnim( )
if self.cont then
cc.ActionManager:getInstance():removeAllActionsFromTarget(self.cont)
end
SetLocalPositionY(self.cont, 0)
local in_pos_y, out_pos_y = 80, 90
local function on_fly_end( )
if self.cont then
SetLocalPositionY(self.cont, 999999)
cc.ActionManager:getInstance():removeAllActionsFromTarget(self.cont)
end
end
local move_in_action = cc.MoveBy.New(0.7, 0 , in_pos_y)
local move_out_action = cc.MoveBy.New(0.6, 0 , out_pos_y)
local end_action = cc.CallFunc.New(on_fly_end)
local action = cc.Sequence.New(move_in_action, cc.DelayTime.New(0.3), move_out_action, end_action)
cc.ActionManager:getInstance():addAction(action, self.cont)
end
function DialogueChooseMessage:DestroySuccess( )
if self.cont then
cc.ActionManager:getInstance():removeAllActionsFromTarget(self.cont)
end
end