源战役客户端
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.

175 lines
5.5 KiB

пре 4 недеља
  1. TurnCareerView = TurnCareerView or BaseClass(BaseView)
  2. function TurnCareerView:__init()
  3. self.base_file = "mainRole"
  4. self.layout_file = "TurnCareerView"
  5. self.layer_name = "UI"
  6. self.append_to_ctl_queue = true --添加进入控制队列
  7. self.use_background = true -- 窗口背景 用灰色半透明背景
  8. self.model = MainRoleModel:getInstance()
  9. self.event_list = {}
  10. self.mainVo = RoleManager.Instance.mainRoleInfo
  11. self.turn_id = 38040027
  12. self.enough = false
  13. self.state = nil
  14. self.load_callback = function()
  15. self:LoadSuccess()
  16. self:InitEvent()
  17. end
  18. self.open_callback = function()
  19. self.model:Fire(MainRoleModel.SEND_TURN_CAREER_PROTOCAL, 13046)
  20. self:SetDescription()
  21. self:SetConsumable()
  22. end
  23. self.close_callback = function()
  24. end
  25. self.destroy_callback = function()
  26. self:Remove()
  27. end
  28. end
  29. function TurnCareerView:Remove()
  30. self:CancelCountDown()
  31. for i, v in ipairs(self.event_list) do
  32. self.model:UnBind(v)
  33. end
  34. self.event_list = {}
  35. if self.consumable_item then
  36. self.consumable_item:DeleteMe()
  37. self.consumable_item = nil
  38. end
  39. if self.goods_event_cbl then
  40. GoodsModel:getInstance():UnBind(self.goods_event_cbl)
  41. self.goods_event_cbl = nil
  42. end
  43. end
  44. function TurnCareerView:LoadSuccess()
  45. self.bg = self:GetChild("bg"):GetComponent("Image")
  46. lua_resM:setOutsideImageSprite(self, self.bg, GameResPath.GetJpgImage("bg_turncareer.jpg"))
  47. self.description = self:GetChild("scrollView/Viewport/Content"):GetComponent("Text")
  48. self.countdown = self:GetChild("countdown"):GetComponent("Text")
  49. self.turnBtn = self:GetChild("turnBtn").gameObject
  50. self.turnBtn_image = self:GetChild("turnBtn"):GetComponent("Image")
  51. self.turnBtn_image_2 = self:GetChild("turnBtn/image"):GetComponent("Image")
  52. self.effect = self:GetChild("effect")
  53. self.consumable_item = ShowIconItem.New(self:GetChild("consumable"))
  54. end
  55. function TurnCareerView:InitEvent()
  56. local function OnClick(target)
  57. if target == self.turnBtn then
  58. if self.state == 0 then --正常转职
  59. if self.enough then
  60. local function ok_callback()
  61. local sex
  62. if self.mainVo.sex == 1 then
  63. sex = 2
  64. elseif self.mainVo.sex == 2 then
  65. sex = 1
  66. end
  67. self.model:Fire(MainRoleModel.SEND_TURN_CAREER_PROTOCAL, 13045, self.mainVo.career, sex)
  68. end
  69. Alert.show("是否确认变性?\n成功后1小时内无法再次变性",Alert.Type.Two, ok_callback)
  70. else
  71. local function ok_callback()
  72. GlobalEventSystem:Fire(EventName.OPEN_SHOP_VIEW, 2, self.turn_id)
  73. end
  74. Alert.show("您的变性秘卷不足,是否前往商城购买?",Alert.Type.Two, ok_callback)
  75. end
  76. elseif self.state == 1 then --冷却期
  77. Message.show("处于变性冷却期内,无法变性")
  78. end
  79. end
  80. end
  81. AddClickEvent(self.turnBtn, OnClick)
  82. --刷新消耗
  83. self.goods_event_cbl = GoodsModel:getInstance():Bind(GoodsModel.CHANGE_BAGLIST, function()
  84. if self._use_delete_method then return end
  85. self:SetConsumable()
  86. end)
  87. table.insert(self.event_list, self.model:Bind(MainRoleModel.GET_TURN_CAREER_TIME, function(time)
  88. self:SetState(time)
  89. end))
  90. --[[table.insert(self.event_list, self.model:Bind(MainRoleModel.TURN_CAREER_SUCCESS, function(career, sex)
  91. --self:AddUIEffect("effect_zhuanzhichenggong_00"..sex, self.effect, self.layer_name, nil, nil, false)
  92. end))--]]
  93. end
  94. function TurnCareerView:SetConsumable()
  95. if self.turn_id then
  96. self.consumable_item:SetData(self.turn_id)
  97. local enough, str = EquipModel:getInstance():GetConsumableNum({0, self.turn_id, 1})
  98. self.consumable_item:SetItemNum(str)
  99. self.consumable_item:SetGray(not enough)
  100. --self.consumable_item:IsGetGoods(not enough)
  101. self.enough = enough
  102. end
  103. end
  104. function TurnCareerView:SetState(time)
  105. local now_time = TimeUtil:getServerTime()
  106. local bool = time > now_time
  107. self.turnBtn_image.gray = bool
  108. self.turnBtn_image_2.gray = bool
  109. if bool then
  110. self.state = 1
  111. self:StartCountDown(time)
  112. else
  113. self.state = 0
  114. self:CancelCountDown()
  115. end
  116. end
  117. function TurnCareerView:StartCountDown(time)
  118. if not self.timer then
  119. local function countdown()
  120. local re_time = time - TimeUtil:getServerTime()
  121. if re_time > 0 then
  122. self.countdown.text = "<color=#ff3232>变性冷却:"..TimeUtil:timeConversion(re_time, "MM-ss").."</color>"
  123. else
  124. self:SetState(time)
  125. end
  126. end
  127. self.countdown.text = "<color=#ff3232>变性冷却:"..TimeUtil:timeConversion(time - TimeUtil:getServerTime(), "MM-ss").."</color>"
  128. self.timer = GlobalTimerQuest:AddPeriodQuest(countdown, 1, -1)
  129. end
  130. end
  131. function TurnCareerView:CancelCountDown()
  132. if self.countdown then
  133. self.countdown.text = ""
  134. end
  135. if self.timer then
  136. GlobalTimerQuest:CancelQuest(self.timer)
  137. self.timer = nil
  138. end
  139. end
  140. function TurnCareerView:SetDescription()
  141. self.description.text = self:GetDescription()
  142. self.description.transform.sizeDelta = Vector2(self.description.transform.sizeDelta.x, self.description.preferredHeight)
  143. end
  144. function TurnCareerView:GetDescription()
  145. return "\n1、装备:<color=#48f07b>身上穿戴的装备</color>会转化为新性别装备,继承所有属性;背包、仓库、市场、邮件内的装备不会转化\n"
  146. .."\n\n2、技能:主动技能和被动技能——转化,<color=#48f07b>天赋技能全部重置,返还所有天赋点</color><color=#ff6262>(重置后战力降低,重新加天赋后战力回归)</color>\n"
  147. .."\n\n3、称号、时装都将转化为新性别,魅力榜信息更新\n"
  148. .."\n\n4、套装:已穿戴的套装会转化为新性别,但背包、仓库、市场、邮件内的套装石不会转化\n"
  149. end