UIBattleStatisticsView.lua 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600
  1. local UIBattleStatisticsView = require("UIBattle/UIBattleStatisticsView_Generate")
  2. function UIBattleStatisticsView:OnAwake(data)
  3. self.controller = require("UIBattle/UIBattleStatisticsCtr"):new()
  4. self.controller:Init(self)
  5. self.controller:SetData(data)
  6. end
  7. function UIBattleStatisticsView:AddEventListener()
  8. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.EID_Refresh_BattleStatistics,self,self.OnRefreshStatistics);
  9. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.EID_Enable_Scroll_Skill_Pnl,self,self.OnEnableScrollSkillPnl)
  10. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.EID_Scroll_Skill_Pnl,self,self.OnScrollSkillPnl);
  11. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.EID_FIGHTING_START,self,self.OnFightingStart);
  12. end
  13. function UIBattleStatisticsView:FillContent(data, uiBase)
  14. self.uiBase = uiBase
  15. local gameObject = self.uiBase:GetRoot()
  16. if gameObject ~= nil then
  17. self.gameObject = gameObject
  18. self.transform = gameObject.transform
  19. end
  20. self:InitGenerate(self.transform, data)
  21. self:Init()
  22. end
  23. function UIBattleStatisticsView:Init()
  24. self.pixelPerSecond = 30
  25. self.timeNodes = {}
  26. self.curToggleType = 1
  27. self.beginDrag = false
  28. self.initStaticsPnl = false
  29. self.initSkillPnl = false
  30. self.battleMode = self.controller:GetBattleMode()
  31. self.battleSubMode = self.controller:GetBattleSubMode()
  32. self.skillNodeList = {}
  33. self.data = LuaBattleBridge.GetBattleStatistics(self.battleMode,self.battleSubMode)
  34. self:InitComs()
  35. self.speed = 1
  36. self.StatisticsTog.toggle.isOn = true
  37. self.SkillTog.toggle.isOn = false
  38. self:ShowStatisticsPnl()
  39. self:InitSkillPnl()
  40. self.leftX = -480
  41. self.lastPassedTime = 0
  42. end
  43. function UIBattleStatisticsView:InitComs()
  44. local timeLineNode = self.SkillPnl.skillsInfoNode.content.timelineNode
  45. self.timeNodes[#self.timeNodes+1] = timeLineNode.timeNode1
  46. self.timeNodes[#self.timeNodes+1] = timeLineNode.timeNode2
  47. self.timeNodes[#self.timeNodes+1] = timeLineNode.timeNode3
  48. self.timeNodes[#self.timeNodes+1] = timeLineNode.timeNode4
  49. self.timeNodes[#self.timeNodes+1] = timeLineNode.timeNode5
  50. self.timeNodes[#self.timeNodes+1] = timeLineNode.timeNode6
  51. self.timeNodes[#self.timeNodes+1] = timeLineNode.timeNode7
  52. self.timeNodes[#self.timeNodes+1] = timeLineNode.timeNode8
  53. self.timeNodes[#self.timeNodes+1] = timeLineNode.timeNode9
  54. self.statisticsActorNodes = {}
  55. self.statisticsActorNodes[#self.statisticsActorNodes+1] = self.statisticsPnl.actorNode1
  56. self.statisticsActorNodes[#self.statisticsActorNodes+1] = self.statisticsPnl.actorNode2
  57. self.statisticsActorNodes[#self.statisticsActorNodes+1] = self.statisticsPnl.actorNode3
  58. self.statisticsActorNodes[#self.statisticsActorNodes+1] = self.statisticsPnl.actorNode4
  59. self.friendSkillActorNodes = {}
  60. self.friendSkillActorNodes[#self.friendSkillActorNodes+1] = self.SkillPnl.FightersNode.FriendTeam.actorNode1
  61. self.friendSkillActorNodes[#self.friendSkillActorNodes+1] = self.SkillPnl.FightersNode.FriendTeam.actorNode2
  62. self.friendSkillActorNodes[#self.friendSkillActorNodes+1] = self.SkillPnl.FightersNode.FriendTeam.actorNode3
  63. self.friendSkillActorNodes[#self.friendSkillActorNodes+1] = self.SkillPnl.FightersNode.FriendTeam.actorNode4
  64. self.bossSkillActorNodes = {}
  65. self.bossSkillActorNodes[#self.bossSkillActorNodes+1] = self.SkillPnl.FightersNode.EnemyTeam.bossNode1
  66. self.bossSkillActorNodes[#self.bossSkillActorNodes+1] = self.SkillPnl.FightersNode.EnemyTeam.bossNode2
  67. self.bossSkillActorNodes[#self.bossSkillActorNodes+1] = self.SkillPnl.FightersNode.EnemyTeam.bossNode3
  68. self.bossSkillActorNodes[#self.bossSkillActorNodes+1] = self.SkillPnl.FightersNode.EnemyTeam.bossNode4
  69. self.enemySkillActorNodes = {}
  70. self.enemySkillActorNodes[#self.enemySkillActorNodes+1] = self.SkillPnl.FightersNode.EnemyTeam.actorNode1
  71. self.enemySkillActorNodes[#self.enemySkillActorNodes+1] = self.SkillPnl.FightersNode.EnemyTeam.actorNode2
  72. self.enemySkillActorNodes[#self.enemySkillActorNodes+1] = self.SkillPnl.FightersNode.EnemyTeam.actorNode3
  73. self.enemySkillActorNodes[#self.enemySkillActorNodes+1] = self.SkillPnl.FightersNode.EnemyTeam.actorNode4
  74. self.enemySkillPoints = {}
  75. self.enemySkillPoints[#self.enemySkillPoints+1] = self.skillList.enemyPoint1
  76. self.enemySkillPoints[#self.enemySkillPoints+1] = self.skillList.enemyPoint2
  77. self.enemySkillPoints[#self.enemySkillPoints+1] = self.skillList.enemyPoint3
  78. self.enemySkillPoints[#self.enemySkillPoints+1] = self.skillList.enemyPoint4
  79. self.friendSkillPoints = {}
  80. self.friendSkillPoints[#self.friendSkillPoints+1] = self.skillList.friendPoint1
  81. self.friendSkillPoints[#self.friendSkillPoints+1] = self.skillList.friendPoint2
  82. self.friendSkillPoints[#self.friendSkillPoints+1] = self.skillList.friendPoint3
  83. self.friendSkillPoints[#self.friendSkillPoints+1] = self.skillList.friendPoint4
  84. for i = 1, #self.statisticsActorNodes do
  85. self.statisticsActorNodes[i]:SetActive(false)
  86. end
  87. for i = 1, #self.friendSkillActorNodes do
  88. self.friendSkillActorNodes[i]:SetActive(false)
  89. end
  90. for i = 1, #self.bossSkillActorNodes do
  91. self.bossSkillActorNodes[i]:SetActive(false)
  92. end
  93. for i = 1, #self.enemySkillActorNodes do
  94. self.enemySkillActorNodes[i]:SetActive(false)
  95. end
  96. for i = 1, #self.enemySkillPoints do
  97. self.enemySkillPoints[i]:SetActive(false)
  98. end
  99. for i = 1, #self.friendSkillPoints do
  100. self.friendSkillPoints[i]:SetActive(false)
  101. end
  102. end
  103. function UIBattleStatisticsView:OnFightingStart()
  104. if self.data == nil then
  105. self.data = LuaBattleBridge.GetBattleStatistics(self.battleMode,self.battleSubMode)
  106. self:ShowStatisticsPnl()
  107. end
  108. self:InitSkillPnl()
  109. end
  110. function UIBattleStatisticsView:InitSkillPnl()
  111. if self.data == nil then
  112. return
  113. end
  114. self.SkillPnl.skillsInfoNode.content.timelineNode.endNode:SetActive(false)
  115. local enemyList = self.data.EnemyStatistics
  116. local friendList = self:GetSlotSortActor(self.data.FriendStatistics)
  117. if enemyList ~= nil then
  118. for i = 1, enemyList.Count do
  119. if self.battleMode == BattleMode.Normal then
  120. self:ShowSkillPnlBossData(self.bossSkillActorNodes[i],enemyList[i-1])
  121. elseif self.battleMode == BattleMode.Versus then
  122. self:ShowSkillPnlActorData(self.enemySkillActorNodes[i],enemyList[i-1])
  123. elseif self.battleMode == BattleMode.Time then
  124. self:ShowSkillPnlBossData(self.bossSkillActorNodes[i],enemyList[i-1])
  125. end
  126. self:ResetSkillData(enemyList[i-1].skillStatistics)
  127. self.enemySkillPoints[i]:SetActive(true)
  128. end
  129. self.SkillPnl.FightersNode.EnemyTeam:SetActive(enemyList.Count > 0)
  130. self.skillList.enemySkillNode:SetActive(enemyList.Count > 0)
  131. else
  132. self.SkillPnl.FightersNode.EnemyTeam:SetActive(false)
  133. self.skillList.enemySkillNode:SetActive(false)
  134. end
  135. if friendList ~= nil then
  136. for i = 1, #friendList do
  137. self:ShowSkillPnlActorData(self.friendSkillActorNodes[i],friendList[i])
  138. self:ResetSkillData(friendList[i].skillStatistics)
  139. self.friendSkillPoints[i]:SetActive(true)
  140. end
  141. end
  142. self.initSkillPnl = (enemyList~=nil and enemyList.Count > 0) or (friendList~=nil and #friendList > 0)
  143. if self.curToggleType == 2 then
  144. self.SkillPnl:SetActive(true)
  145. self.delayShowSkillPnl = ManagerContainer.LuaTimerMgr:AddTimer(100, 1,self,self.DelayShowSkillPnl,nil);
  146. end
  147. end
  148. function UIBattleStatisticsView:DelayShowSkillPnl()
  149. if self.curToggleType == 2 then
  150. self.SkillPnl:SetActive(false)
  151. self.SkillPnl:SetActive(true)
  152. end
  153. end
  154. function UIBattleStatisticsView:ResetSkillData(skillStatisticsData)
  155. if skillStatisticsData == nil or skillStatisticsData.Length < 2 then
  156. return
  157. end
  158. for i = 2, skillStatisticsData.Length do
  159. local skillData = skillStatisticsData[i-1]
  160. if skillData ~= nil and skillData.castingTimeList ~= nil then
  161. skillData:ResetCreateCnt()
  162. skillStatisticsData[i-1] = skillData
  163. end
  164. end
  165. end
  166. function UIBattleStatisticsView:GetSlotSortActor(tbFriend)
  167. --伙伴界面排序
  168. if nil == tbFriend then
  169. return nil
  170. end
  171. local sortedPartnerDatas = ManagerContainer.DataMgr.PartnerData:SortPartnerData()
  172. --根据伙伴界面排序 排序
  173. local sortedData = {}
  174. for j =1, tbFriend.Count do--主角第一
  175. local actor = tbFriend[j-1]
  176. local UserId = 1
  177. if tostring(UserId)==tostring(actor.fighterId) then
  178. table.insert(sortedData,actor)
  179. end
  180. end
  181. for i=1, #sortedPartnerDatas do --伙伴排序
  182. local PartnerData = sortedPartnerDatas[i]
  183. for j =1, tbFriend.Count do
  184. local actor = tbFriend[j-1]
  185. if tostring(PartnerData.id)==tostring(actor.fighterId) then
  186. table.insert(sortedData,actor)
  187. end
  188. end
  189. end
  190. return sortedData
  191. end
  192. function UIBattleStatisticsView:ShowStatisticsPnl()
  193. if self.data == nil then
  194. return
  195. end
  196. local friendList = self:GetSlotSortActor(self.data.FriendStatistics)
  197. if friendList == nil then
  198. return
  199. end
  200. for i = 1, #friendList do
  201. self:ShowFighterStatistics(self.statisticsActorNodes[i],friendList[i])
  202. end
  203. self.initStaticsPnl = #friendList > 0
  204. self.statisticsPnl:SetActive(true)
  205. self.SkillPnl:SetActive(false)
  206. end
  207. function UIBattleStatisticsView:OnRefreshStatistics()
  208. if self.data == nil then
  209. return
  210. end
  211. if self.initSkillPnl == false then
  212. self:InitSkillPnl()
  213. end
  214. if self.initStaticsPnl == false and self.curToggleType == 1 then
  215. self:ShowStatisticsPnl()
  216. end
  217. local friendList = self:GetSlotSortActor(self.data.FriendStatistics)
  218. if friendList == nil then
  219. return
  220. end
  221. for i = 1, #friendList do
  222. self:SetNodeVal(self.statisticsActorNodes[i].damageNode,friendList[i].basedamage + friendList[i].reflectdamage,friendList[i].basedamagePercent)
  223. self:SetNodeVal(self.statisticsActorNodes[i].defenseNode,friendList[i].naturedamage,friendList[i].naturedamagePercent)
  224. self:SetNodeVal(self.statisticsActorNodes[i].assistNode,friendList[i].petdamage,friendList[i].petdamagePercent)
  225. end
  226. end
  227. function UIBattleStatisticsView:ShowSkillPnl()
  228. if self.data == nil then
  229. return
  230. end
  231. -- LogError("----ShowSkillPnl----")
  232. self.SkillPnl.skillsInfoNode.content.timelineNode.endNode:SetActive(false)
  233. self:CheckNewSkills()
  234. self.statisticsPnl:SetActive(false)
  235. self.SkillPnl:SetActive(true)
  236. if self.data.EndTime < 1 then
  237. if self.scrollTimer == nil then
  238. self.scrollTimer = ManagerContainer.LuaTimerMgr:AddTimer(30, -1,self,self.AutoRefreshSkillPnl,nil);
  239. self:SetStartNode(self.pixelPerSecond - self.data.PassedTime * self.pixelPerSecond)
  240. end
  241. else
  242. self:SetStartNode(-610)
  243. self:ShowEndNode()
  244. if self.data.EndTime > 0 then
  245. local cnt = math.ceil(self.data.EndTime / 5)
  246. for i= 1, cnt do
  247. local go = self:GetTimeNode(i)
  248. go:SetActive(true)
  249. end
  250. end
  251. end
  252. end
  253. function UIBattleStatisticsView:GetTimeNode(idx)
  254. if idx <= #self.timeNodes then
  255. return self.timeNodes[idx]
  256. end
  257. local go = UnityEngine.GameObject.Instantiate(self.SkillPnl.skillsInfoNode.content.timelineNode.timeNode9.gameObject)
  258. local txt = go:GetComponent(Enum.TypeInfo.Text)
  259. if txt ~= nil then
  260. txt.text = (idx * 5) .. "s"
  261. end
  262. go.name = (idx * 5) .. "s"
  263. local rectTransform = go:GetComponent(Enum.TypeInfo.RectTransform)
  264. rectTransform:SetParent(self.SkillPnl.skillsInfoNode.content.timelineNode.transform, false);
  265. rectTransform.localRotation = Quaternion.identity;
  266. rectTransform.localScale = Vector3(1,1,1);
  267. rectTransform.pivot = Vector2 (0.5, 0.5);
  268. self.timeNodes[#self.timeNodes+1] = go
  269. return go
  270. end
  271. function UIBattleStatisticsView:SetStartNode(px)
  272. local pos = self.SkillPnl.skillsInfoNode.content.rectTransform.anchoredPosition
  273. pos.x = px
  274. self.SkillPnl.skillsInfoNode.content.rectTransform.anchoredPosition = pos
  275. end
  276. function UIBattleStatisticsView:OnEnableScrollSkillPnl(draging)
  277. self.beginDrag = draging
  278. if self.beginDrag then
  279. self:CleanTimer()
  280. else
  281. if self.scrollTimer == nil and self.data.EndTime < 1 then
  282. self.scrollTimer = ManagerContainer.LuaTimerMgr:AddTimer(30, -1,self,self.AutoRefreshSkillPnl,nil);
  283. self:SetStartNode(self.pixelPerSecond - self.data.PassedTime * self.pixelPerSecond)
  284. else
  285. -- local pos = self.SkillPnl.skillsInfoNode.content.rectTransform.anchoredPosition
  286. -- if pos.x > self.leftX then
  287. -- self:SetStartNode(self.leftX)
  288. -- elseif pos.x < -(150+self.data.EndTime * self.pixelPerSecond) then
  289. -- self:SetStartNode(-(150+self.data.EndTime * self.pixelPerSecond))
  290. -- end
  291. end
  292. end
  293. end
  294. function UIBattleStatisticsView:OnScrollSkillPnl()
  295. local deltaX = self.SkillPnl.skillsInfoNode.content.uIEventTriggerListener.currentEventData.delta.x
  296. local pos = self.SkillPnl.skillsInfoNode.content.rectTransform.anchoredPosition
  297. pos.x = pos.x + deltaX
  298. if deltaX > 0 then --往右拖
  299. if pos.x > 0 then
  300. pos.x = 0
  301. end
  302. elseif deltaX < 0 then --往左拖
  303. if pos.x < -(630+self.data.EndTime * self.pixelPerSecond) then
  304. pos.x = -(630+self.data.EndTime * self.pixelPerSecond)
  305. end
  306. end
  307. self.SkillPnl.skillsInfoNode.content.rectTransform.anchoredPosition = pos
  308. end
  309. function UIBattleStatisticsView:ShowEndNode()
  310. local pos = self.SkillPnl.skillsInfoNode.content.timelineNode.endNode.rectTransform.anchoredPosition
  311. pos.x = self.data.EndTime * self.pixelPerSecond
  312. self.SkillPnl.skillsInfoNode.content.timelineNode.endNode.rectTransform.anchoredPosition = pos
  313. self.SkillPnl.skillsInfoNode.content.timelineNode.endNode:SetActive(true)
  314. -- LogError("----ShowEndNode----")
  315. end
  316. function UIBattleStatisticsView:AutoRefreshSkillPnl()
  317. if self.data.EndTime > 1 then
  318. self:ShowEndNode()
  319. self:CheckNewSkills()
  320. self:CleanTimer()
  321. else
  322. local pos = self.SkillPnl.skillsInfoNode.content.rectTransform.anchoredPosition
  323. if pos then
  324. pos.x = -self.data.PassedTime * self.pixelPerSecond
  325. self.SkillPnl.skillsInfoNode.content.rectTransform.anchoredPosition = pos
  326. end
  327. self:CheckNewSkills()
  328. local cnt = #self.timeNodes
  329. if self.data.PassedTime > cnt * 5 then
  330. local cnt = math.ceil(self.data.PassedTime / 5)
  331. for i= 1, cnt + 9 do
  332. local go = self:GetTimeNode(i)
  333. go:SetActive(true)
  334. end
  335. end
  336. end
  337. end
  338. function UIBattleStatisticsView:CheckNewSkills()
  339. local enemyList = self.data.EnemyStatistics
  340. local friendList = self:GetSlotSortActor(self.data.FriendStatistics)
  341. if enemyList ~= nil then
  342. for i = 1, enemyList.Count do
  343. if self.battleMode == BattleMode.Normal then
  344. self:ShowSkillData(self.enemySkillPoints[i],enemyList[i-1].skillStatistics)
  345. else
  346. self:ShowSkillData(self.enemySkillPoints[i],enemyList[i-1].skillStatistics)
  347. end
  348. end
  349. end
  350. if friendList ~= nil then
  351. for i = 1, #friendList do
  352. self:ShowSkillData(self.friendSkillPoints[i],friendList[i].skillStatistics)
  353. end
  354. end
  355. end
  356. function UIBattleStatisticsView:ShowSkillPnlBossData(node,data)
  357. node.bossName.text.text = data.actorName
  358. node.bossLevel.text.text = "Lv." .. data.level
  359. node:SetActive(true)
  360. end
  361. function UIBattleStatisticsView:ShowSkillPnlActorData(node,data)
  362. CommonUtil.LoadIcon(self, data.jobIcon, function (sprite)
  363. node.jobIcon.image.sprite = sprite
  364. end)
  365. node.actorName.text.text = data.actorName
  366. node:SetActive(true)
  367. end
  368. function UIBattleStatisticsView:ShowSkillData(parentNode,skillStatisticsData)
  369. if skillStatisticsData == nil or skillStatisticsData.Length < 2 then
  370. return
  371. end
  372. for i = 2, skillStatisticsData.Length do
  373. local skillData = skillStatisticsData[i-1]
  374. if skillData ~= nil and skillData.castingTimeList ~= nil then
  375. for j = skillData.createdCnt, skillData.castingTimeList.Count-1 do
  376. local castingTime = skillData.castingTimeList[j]
  377. self:CreateCastingSkillData(parentNode,skillData.skillIcon,skillData.skillId,skillData.skillLevel,castingTime)
  378. skillData:AddCreateCnt()
  379. end
  380. skillStatisticsData[i-1] = skillData
  381. end
  382. end
  383. end
  384. function UIBattleStatisticsView:CreateCastingSkillData(parentNode,skilIcon,skillId,skillLevel,time)
  385. local timeLinePos = self.SkillPnl.skillsInfoNode.content.timelineNode.rectTransform.anchoredPosition
  386. local py = 0
  387. local px = timeLinePos.x + time * self.pixelPerSecond
  388. local skillNode = UnityEngine.GameObject.Instantiate(self.CastingSkillItem.gameObject)
  389. self.skillNodeList[#self.skillNodeList+1] = skillNode
  390. local skillLua = CommonUtil.BindGridViewItem2Lua(self, "CastingSkillItem", skillNode)
  391. skillLua.prefabName = "CastingSkillItem"
  392. skillNode.name = "skillItem"
  393. skillLua.transform:SetParent(parentNode.transform)
  394. skillLua.transform.localScale = Vector3(1,1,1)
  395. skillLua.rectTransform.anchoredPosition3D = Vector3(px,py,0)
  396. skillLua.skillTime.text.text = CommonUtil.GetPreciseDecimal(time,1) .. "s"
  397. skillLua:SetActive(true)
  398. CommonUtil.LoadIcon(self, skilIcon, function (sprite)
  399. skillLua.skillIcon.image.sprite = sprite
  400. end)
  401. self.uiBase:AddButtonUniqueEventListener(skillLua.skillIcon.button, self, self.OnClickSkill, skillId,skillLevel)
  402. end
  403. function UIBattleStatisticsView:OnClickSkill(btn,params)
  404. local skillId = params[0]
  405. local skillLv = params[1]
  406. local data = { tipsType = Enum.UITipsType.Skill, cfgId = skillId, num = skillLv }
  407. ManagerContainer.LuaUIMgr:OpenTips(data)
  408. end
  409. function UIBattleStatisticsView:ShowFighterStatistics(node,data)
  410. CommonUtil.LoadIcon(self, data.jobIcon, function (sprite)
  411. node.jobIcon.image.sprite = sprite
  412. end)
  413. node.actorName.text.text = data.actorName
  414. self:SetNodeVal(node.damageNode,data.basedamage + data.reflectdamage,data.basedamagePercent)
  415. self:SetNodeVal(node.defenseNode,data.naturedamage,data.naturedamagePercent)
  416. self:SetNodeVal(node.assistNode,data.petdamage,data.petdamagePercent)
  417. node:SetActive(true)
  418. end
  419. function UIBattleStatisticsView:SetNodeVal(node,totalVal,percent)
  420. node.actorVal.image.fillAmount = percent
  421. node.percentVal.text.text = CommonUtil.FormatNumber(totalVal)
  422. end
  423. function UIBattleStatisticsView:SetNodeValPercent(node,totalVal,actorVal,percent)
  424. node.totalVal.image.fillAmount = totalVal
  425. node.actorVal.image.fillAmount = actorVal
  426. node.percentVal.text.text = CommonUtil.GetPreciseDecimal(percent*100,2) .. "%"
  427. end
  428. function UIBattleStatisticsView:RemoveEventListener()
  429. ManagerContainer.LuaEventMgr:Unregister(self.uiData.name)
  430. end
  431. function UIBattleStatisticsView:AddUIEventListener()
  432. self.uiBase:AddButtonEventListener(self.AnyBtn.button,self, self.OnClickClose)
  433. self.uiBase:AddButtonEventListener(self.closeBtn.button,self, self.OnClickClose)
  434. self.uiBase:AddToggleEventListener(self.StatisticsTog.toggle, self, self.OnValueChangedToggle, 1)
  435. self.uiBase:AddToggleEventListener(self.SkillTog.toggle, self, self.OnValueChangedToggle, 2)
  436. self.SkillPnl.skillsInfoNode.content.uIEventTriggerListener.onBeginDrag = function()
  437. ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.EID_Enable_Scroll_Skill_Pnl,true)
  438. end
  439. self.SkillPnl.skillsInfoNode.content.uIEventTriggerListener.onPointerUp = function()
  440. ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.EID_Enable_Scroll_Skill_Pnl,false)
  441. end
  442. self.SkillPnl.skillsInfoNode.content.uIEventTriggerListener.onEndDrag = function()
  443. ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.EID_Enable_Scroll_Skill_Pnl,false)
  444. end
  445. -- self.SkillPnl.skillsInfoNode.content.uIEventTriggerListener.onPointerExit = function()
  446. -- ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.EID_Enable_Scroll_Skill_Pnl,false)
  447. -- end
  448. self.SkillPnl.skillsInfoNode.content.uIEventTriggerListener.onDrag = function()
  449. ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.EID_Scroll_Skill_Pnl)
  450. end
  451. end
  452. function UIBattleStatisticsView:OnHide()
  453. end
  454. function UIBattleStatisticsView:OnShow(data)
  455. self.controller:SetData(data)
  456. end
  457. function UIBattleStatisticsView:OnClose()
  458. self:DestroyGOes()
  459. self.initSkillPnl = false
  460. self.SkillPnl.skillsInfoNode.content.uIEventTriggerListener.onBeginDrag = nil
  461. self.SkillPnl.skillsInfoNode.content.uIEventTriggerListener.onDrag = nil
  462. self.SkillPnl.skillsInfoNode.content.uIEventTriggerListener.onPointerUp = nil
  463. self.SkillPnl.skillsInfoNode.content.uIEventTriggerListener.onPointerExit = nil
  464. self.statisticsActorNodes = nil
  465. self.friendSkillActorNodes = nil
  466. self.bossSkillActorNodes = nil
  467. self.enemySkillActorNodes = nil
  468. self.enemySkillPoints = nil
  469. self.friendSkillPoints = nil
  470. if self.skillNodeList ~= nil then
  471. for i= 1, #self.skillNodeList do
  472. CommonUtil.DestroyGO(self.skillNodeList[i])
  473. end
  474. self.skillNodeList = nil
  475. end
  476. self.data = nil
  477. self:CleanTimer()
  478. if self.delayShowSkillPnl ~= nil then
  479. ManagerContainer.LuaTimerMgr:RemoveTimer(self.delayShowSkillPnl)
  480. self.delayShowSkillPnl = nil
  481. end
  482. end
  483. function UIBattleStatisticsView:OnDispose()
  484. self.controller:OnDispose()
  485. end
  486. function UIBattleStatisticsView:OnClickClose()
  487. ManagerContainer.LuaUIMgr:ClosePage(Enum.UIPageName.UIBattleStatistics)
  488. end
  489. function UIBattleStatisticsView:OnValueChangedToggle(toggle,toggleType, isOn)
  490. if isOn then
  491. if toggleType == 1 then
  492. self.curToggleType = 1
  493. self:ShowStatisticsPnl()
  494. elseif toggleType == 2 then
  495. self.curToggleType = 2
  496. self:ShowSkillPnl()
  497. end
  498. end
  499. end
  500. function UIBattleStatisticsView:CleanTimer()
  501. if self.scrollTimer~= nil then
  502. ManagerContainer.LuaTimerMgr:RemoveTimer(self.scrollTimer)
  503. self.scrollTimer = nil
  504. end
  505. end
  506. function UIBattleStatisticsView:DestroyGOes()
  507. if self.timeNodes ~= nil then
  508. for i = 10, #self.timeNodes do
  509. CommonUtil.DestroyGO(self.timeNodes[i])
  510. end
  511. end
  512. self.timeNodes = nil
  513. end
  514. return UIBattleStatisticsView