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

96 行
3.1 KiB

  1. DialogueChooseMessage = DialogueChooseMessage or BaseClass(BaseView)
  2. local DialogueChooseMessage = DialogueChooseMessage
  3. DialogueChooseMessage.MSG_INFO = {
  4. [1] = "人物性格 理性<color=#fddd6e>+%s</color>",
  5. [2] = "人物性格 感性<color=#fddd6e>+%s</color>",
  6. [3] = "人物性格 中性<color=#fddd6e>+%s</color>",
  7. [4] = "自由性格点数 <color=#fddd6e>+%s</color>",
  8. }
  9. function DialogueChooseMessage:__init()
  10. self.base_file = "dialogue"
  11. self.layout_file = "DialogueChooseMessage"
  12. self.layer_name = "Top"
  13. self.destroy_imm = true
  14. self.use_background = false
  15. self.change_scene_close = true
  16. self.load_callback = function ()
  17. self:LoadSuccess()
  18. end
  19. self.open_callback = function ( )
  20. self:OpenSuccess()
  21. end
  22. self.destroy_callback = function ( )
  23. self:DestroySuccess()
  24. end
  25. end
  26. function DialogueChooseMessage:Open( choose_type, choose_value )
  27. self.choose_type, self.choose_value = choose_type, choose_value
  28. BaseView.Open(self)
  29. end
  30. --重复调用,省去open逻辑
  31. function DialogueChooseMessage:SetData( choose_type, choose_value )
  32. self.choose_type, self.choose_value = choose_type, choose_value
  33. self:UpdateView()
  34. end
  35. function DialogueChooseMessage:LoadSuccess()
  36. self.nodes = {
  37. "cont:obj", "cont/nastic_bg:obj", "cont/intellect_bg:obj", "cont/value:tmp", "cont/indecision_bg:obj",
  38. }
  39. self:GetChildren(self.nodes)
  40. end
  41. function DialogueChooseMessage:OpenSuccess()
  42. if self.choose_type and self.choose_type ~= 0 then
  43. -- 更新性格节点数据
  44. -- NatureModel:getInstance():Fire(NatureModel.REQUEST_CCMD_EVENT, 16700)
  45. -- NatureModel:getInstance():Fire(NatureModel.REQUEST_CCMD_EVENT, 16701, 1)
  46. -- NatureModel:getInstance():Fire(NatureModel.REQUEST_CCMD_EVENT, 16701, 2)
  47. -- NatureModel:getInstance():Fire(NatureModel.REQUEST_CCMD_EVENT, 16701, 3)
  48. -- 刷新界面
  49. self:UpdateView()
  50. end
  51. end
  52. function DialogueChooseMessage:UpdateView()
  53. if IsNull(self.transform) then
  54. return
  55. end
  56. self.intellect_bg_obj:SetActive(self.choose_type == 1)
  57. self.nastic_bg_obj:SetActive(self.choose_type == 2)
  58. self.indecision_bg_obj:SetActive(self.choose_type == 3 or self.choose_type == 4)
  59. local str = DialogueChooseMessage.MSG_INFO[self.choose_type]
  60. self.value_tmp.text = str and string.format(str, self.choose_value) or ""
  61. self:PlayAnim()
  62. end
  63. function DialogueChooseMessage:PlayAnim( )
  64. if self.cont then
  65. cc.ActionManager:getInstance():removeAllActionsFromTarget(self.cont)
  66. end
  67. SetLocalPositionY(self.cont, 0)
  68. local in_pos_y, out_pos_y = 80, 90
  69. local function on_fly_end( )
  70. if self.cont then
  71. SetLocalPositionY(self.cont, 999999)
  72. cc.ActionManager:getInstance():removeAllActionsFromTarget(self.cont)
  73. end
  74. end
  75. local move_in_action = cc.MoveBy.New(0.7, 0 , in_pos_y)
  76. local move_out_action = cc.MoveBy.New(0.6, 0 , out_pos_y)
  77. local end_action = cc.CallFunc.New(on_fly_end)
  78. local action = cc.Sequence.New(move_in_action, cc.DelayTime.New(0.3), move_out_action, end_action)
  79. cc.ActionManager:getInstance():addAction(action, self.cont)
  80. end
  81. function DialogueChooseMessage:DestroySuccess( )
  82. if self.cont then
  83. cc.ActionManager:getInstance():removeAllActionsFromTarget(self.cont)
  84. end
  85. end