Advertisement
Guest User

SuitPage.py

a guest
May 27th, 2016
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 22.56 KB | None | 0 0
  1. import ShtikerPage
  2. from direct.task.Task import Task
  3. import SummonCogDialog
  4. from direct.gui.DirectGui import *
  5. from pandac.PandaModules import *
  6. from toontown.toonbase import ToontownGlobals
  7. from toontown.toonbase import TTLocalizer
  8. from toontown.suit import SuitDNA
  9. from toontown.suit import Suit
  10. from toontown.battle import SuitBattleGlobals
  11. from CogPageGlobals import *
  12. SCALE_FACTOR = 1.5
  13. RADAR_DELAY = 0.2
  14. BUILDING_RADAR_POS = (0.375,
  15. 0.065,
  16. -0.225,
  17. -0.5)
  18. PANEL_COLORS = (Vec4(0.8, 0.78, 0.77, 1),
  19. Vec4(0.75, 0.78, 0.8, 1),
  20. Vec4(0.75, 0.82, 0.79, 1),
  21. Vec4(0.825, 0.76, 0.77, 1))
  22. PANEL_COLORS_COMPLETE1 = (Vec4(0.7, 0.725, 0.545, 1),
  23. Vec4(0.625, 0.725, 0.65, 1),
  24. Vec4(0.6, 0.75, 0.525, 1),
  25. Vec4(0.675, 0.675, 0.55, 1))
  26. PANEL_COLORS_COMPLETE2 = (Vec4(0.9, 0.725, 0.32, 1),
  27. Vec4(0.825, 0.725, 0.45, 1),
  28. Vec4(0.8, 0.75, 0.325, 1),
  29. Vec4(0.875, 0.675, 0.35, 1))
  30. SHADOW_SCALE_POS = ((1.225,
  31. 0,
  32. 10,
  33. -0.03),
  34. (0.9,
  35. 0,
  36. 10,
  37. 0),
  38. (1.125,
  39. 0,
  40. 10,
  41. -0.015),
  42. (1.0,
  43. 0,
  44. 10,
  45. -0.02),
  46. (1.0,
  47. -0.02,
  48. 10,
  49. -0.01),
  50. (1.05,
  51. 0,
  52. 10,
  53. -0.0425),
  54. (1.0,
  55. 0,
  56. 10,
  57. -0.05),
  58. (0.9,
  59. -0.0225,
  60. 10,
  61. -0.025),
  62. (0.9,
  63. -0.0225,
  64. 10,
  65. -0.025),
  66. (1.25,
  67. 0,
  68. 10,
  69. -0.03),
  70. (1.0,
  71. 0,
  72. 10,
  73. -0.01),
  74. (1.0,
  75. 0.005,
  76. 10,
  77. -0.01),
  78. (1.0,
  79. 0,
  80. 10,
  81. -0.01),
  82. (0.9,
  83. 0.005,
  84. 10,
  85. -0.01),
  86. (0.95,
  87. 0,
  88. 10,
  89. -0.01),
  90. (1.125,
  91. 0.005,
  92. 10,
  93. -0.035),
  94. (0.85,
  95. -0.005,
  96. 10,
  97. -0.035),
  98. (0.85,
  99. -0.005,
  100. 10,
  101. -0.035),
  102. (1.2,
  103. 0,
  104. 10,
  105. -0.01),
  106. (1.05,
  107. 0,
  108. 10,
  109. 0),
  110. (1.1,
  111. 0,
  112. 10,
  113. -0.04),
  114. (1.0,
  115. 0,
  116. 10,
  117. 0),
  118. (0.95,
  119. 0.0175,
  120. 10,
  121. -0.015),
  122. (1.0,
  123. 0,
  124. 10,
  125. -0.06),
  126. (0.95,
  127. 0.02,
  128. 10,
  129. -0.0175),
  130. (0.9,
  131. 0,
  132. 10,
  133. -0.03),
  134. (0.9,
  135. 0,
  136. 10,
  137. -0.03),
  138. (1.15,
  139. 0,
  140. 10,
  141. -0.01),
  142. (1.0,
  143. 0,
  144. 10,
  145. 0),
  146. (1.0,
  147. 0,
  148. 10,
  149. 0),
  150. (1.1,
  151. 0,
  152. 10,
  153. -0.04),
  154. (0.93,
  155. 0.005,
  156. 10,
  157. -0.01),
  158. (0.95,
  159. 0.005,
  160. 10,
  161. -0.01),
  162. (1.0,
  163. 0,
  164. 10,
  165. -0.02),
  166. (0.9,
  167. 0.0025,
  168. 10,
  169. -0.03),
  170. (0.9,
  171. 0.0025,
  172. 10,
  173. -0.03))
  174.  
  175. class SuitPage(ShtikerPage.ShtikerPage):
  176.  
  177. def __init__(self):
  178. ShtikerPage.ShtikerPage.__init__(self)
  179.  
  180. def load(self):
  181. ShtikerPage.ShtikerPage.load(self)
  182. frameModel = loader.loadModel('phase_3.5/models/gui/suitpage_frame')
  183. frameModel.setScale(0.0233125, 0.02, 0.045) #(0.0253125, 0.03, 0.045)
  184. frameModel.setPos(0, 10, -0.575)
  185. self.guiTop = NodePath('guiTop')
  186. self.guiTop.reparentTo(self)
  187. self.frameNode = NodePath('frameNode')
  188. self.frameNode.reparentTo(self.guiTop)
  189. self.panelNode = NodePath('panelNode')
  190. self.panelNode.reparentTo(self.guiTop)
  191. self.iconNode = NodePath('iconNode')
  192. self.iconNode.reparentTo(self.guiTop)
  193. self.enlargedPanelNode = NodePath('enlargedPanelNode')
  194. self.enlargedPanelNode.reparentTo(self.guiTop)
  195. frame = frameModel.find('**/frame')
  196. frame.wrtReparentTo(self.frameNode)
  197. screws = frameModel.find('**/screws')
  198. screws.wrtReparentTo(self.iconNode)
  199. icons = frameModel.find('**/icons')
  200. del frameModel
  201. self.title = DirectLabel(parent=self.iconNode, relief=None, text=TTLocalizer.SuitPageTitle, text_scale=0.1, text_pos=(0.04, 0), textMayChange=0)
  202. self.radarButtons = []
  203. icon = icons.find('**/corp_icon')
  204. self.corpRadarButton = DirectButton(parent=self.iconNode, relief=None, state=DGG.DISABLED, image=icon, image_scale=(0.03375, 1, 0.045), image2_color=Vec4(1.0, 1.0, 1.0, 0.75), pos=(-0.2, 10, -0.575), command=self.toggleRadar, extraArgs=[0])
  205. self.radarButtons.append(self.corpRadarButton)
  206. icon = icons.find('**/legal_icon')
  207. self.legalRadarButton = DirectButton(parent=self.iconNode, relief=None, state=DGG.DISABLED, image=icon, image_scale=(0.03375, 1, 0.045), image2_color=Vec4(1.0, 1.0, 1.0, 0.75), pos=(-0.2, 10, -0.575), command=self.toggleRadar, extraArgs=[1])
  208. self.radarButtons.append(self.legalRadarButton)
  209. icon = icons.find('**/money_icon')
  210. self.moneyRadarButton = DirectButton(parent=self.iconNode, relief=None, state=DGG.DISABLED, image=(icon, icon, icon), image_scale=(0.03375, 1, 0.045), image2_color=Vec4(1.0, 1.0, 1.0, 0.75), pos=(-0.2, 10, -0.575), command=self.toggleRadar, extraArgs=[2])
  211. self.radarButtons.append(self.moneyRadarButton)
  212. icon = icons.find('**/sales_icon')
  213. self.salesRadarButton = DirectButton(parent=self.iconNode, relief=None, state=DGG.DISABLED, image=(icon, icon, icon), image_scale=(0.03375, 1, 0.045), image2_color=Vec4(1.0, 1.0, 1.0, 0.75), pos=(-0.2, 10, -0.575), command=self.toggleRadar, extraArgs=[3])
  214. self.radarButtons.append(self.salesRadarButton)
  215. for radarButton in self.radarButtons:
  216. radarButton.building = 0
  217. radarButton.buildingRadarLabel = None
  218. gui = loader.loadModel('phase_3.5/models/gui/suitpage_gui')
  219. self.panelModel = gui.find('**/card')
  220. self.shadowModels = []
  221. for index in xrange(1, len(SuitDNA.suitHeadTypes) + 1):
  222. if index < 9:
  223. self.shadowModels.append(gui.find('**/shadow' + str(index)))
  224. elif index > 9 and index < 18:
  225. self.shadowModels.append(gui.find('**/shadow' + str(index - 1)))
  226. elif index > 18 and index < 27:
  227. self.shadowModels.append(gui.find('**/shadow' + str(index - 2)))
  228. elif index > 27 and index < 36:
  229. self.shadowModels.append(gui.find('**/shadow' + str(index - 3)))
  230. else:
  231. self.shadowModels.append(gui.find('**/shadow' + str(32)))
  232. del gui
  233. self.makePanels()
  234. self.radarOn = [0,
  235. 0,
  236. 0,
  237. 0]
  238. priceScale = 0.1
  239. emblemIcon = loader.loadModel('phase_3.5/models/gui/tt_m_gui_gen_emblemIcons')
  240. silverModel = emblemIcon.find('**/tt_t_gui_gen_emblemSilver')
  241. goldModel = emblemIcon.find('**/tt_t_gui_gen_emblemGold')
  242. self.silverLabel = DirectLabel(parent=self, relief=None, pos=(-0.25, 0, -0.69), scale=priceScale, image=silverModel, image_pos=(-0.4, 0, 0.4), text=str(localAvatar.emblems[ToontownGlobals.EmblemTypes.Silver]), text_fg=(0.95, 0.95, 0, 1), text_shadow=(0, 0, 0, 1), text_font=ToontownGlobals.getSignFont(), text_align=TextNode.ALeft)
  243. self.goldLabel = DirectLabel(parent=self, relief=None, pos=(0.25, 0, -0.69), scale=priceScale, image=goldModel, image_pos=(-0.4, 0, 0.4), text=str(localAvatar.emblems[ToontownGlobals.EmblemTypes.Gold]), text_fg=(0.95, 0.95, 0, 1), text_shadow=(0, 0, 0, 1), text_font=ToontownGlobals.getSignFont(), text_align=TextNode.ALeft)
  244. if not base.cr.wantEmblems:
  245. self.silverLabel.hide()
  246. self.goldLabel.hide()
  247. self.accept(localAvatar.uniqueName('emblemsChange'), self.__emblemChange)
  248. self.guiTop.setZ(0.625)
  249. return
  250.  
  251. def unload(self):
  252. self.ignoreAll()
  253. self.title.destroy()
  254. self.corpRadarButton.destroy()
  255. self.legalRadarButton.destroy()
  256. self.moneyRadarButton.destroy()
  257. self.salesRadarButton.destroy()
  258. for panel in self.panels:
  259. panel.destroy()
  260. del self.panels
  261. for shadow in self.shadowModels:
  262. shadow.removeNode()
  263.  
  264. self.panelModel.removeNode()
  265. ShtikerPage.ShtikerPage.unload(self)
  266.  
  267. def enter(self):
  268. self.updatePage()
  269. self.bigPanel = None
  270. self.nextPanel = None
  271. ShtikerPage.ShtikerPage.enter(self)
  272. return
  273.  
  274. def exit(self):
  275. taskMgr.remove('buildingListResponseTimeout-later')
  276. taskMgr.remove('suitListResponseTimeout-later')
  277. taskMgr.remove('showCogRadarLater')
  278. taskMgr.remove('showBuildingRadarLater')
  279. for index in xrange(0, len(self.radarOn)):
  280. if self.radarOn[index]:
  281. self.toggleRadar(index)
  282. self.radarButtons[index]['state'] = DGG.NORMAL
  283.  
  284. ShtikerPage.ShtikerPage.exit(self)
  285.  
  286. def __emblemChange(self, newEmblems):
  287. self.silverLabel['text'] = str(newEmblems[0])
  288. self.goldLabel['text'] = str(newEmblems[1])
  289.  
  290. def grow(self, panel, pos):
  291. if self.bigPanel:
  292. print 'setting next panel - ' + str(panel)
  293. self.nextPanel = panel
  294. self.nextPanelPos = pos
  295. return
  296. print 'big panel - ' + str(panel)
  297. self.bigPanel = panel
  298. panel.reparentTo(self.enlargedPanelNode)
  299. panel.setScale(panel.getScale() * SCALE_FACTOR)
  300. if panel.summonButton:
  301. panel.summonButton.show()
  302. panel.summonButton['state'] = DGG.NORMAL
  303.  
  304. def shrink(self, panel, pos):
  305. print 'trying to shrink - ' + str(panel)
  306. if panel != self.bigPanel:
  307. self.nextPanel = None
  308. return
  309. print 'shrink panel - ' + str(panel)
  310. self.bigPanel = None
  311. panel.setScale(panel.scale)
  312. panel.reparentTo(self.panelNode)
  313. if panel.summonButton:
  314. panel.summonButton.hide()
  315. panel.summonButton['state'] = DGG.DISABLED
  316. if self.nextPanel:
  317. self.grow(self.nextPanel, self.nextPanelPos)
  318. return
  319.  
  320. def toggleRadar(self, deptNum):
  321. messenger.send('wakeup')
  322. if self.radarOn[deptNum]:
  323. self.radarOn[deptNum] = 0
  324. else:
  325. self.radarOn[deptNum] = 1
  326. deptSize = SuitDNA.suitsPerDept
  327. panels = self.panels[deptSize * deptNum:SuitDNA.suitsPerDept * (deptNum + 1)]
  328. if self.radarOn[deptNum]:
  329. if hasattr(base.cr, 'currSuitPlanner'):
  330. if base.cr.currSuitPlanner != None:
  331. base.cr.currSuitPlanner.d_suitListQuery()
  332. self.acceptOnce('suitListResponse', self.updateCogRadar, extraArgs=[deptNum, panels])
  333. taskMgr.doMethodLater(1.0, self.suitListResponseTimeout, 'suitListResponseTimeout-later', extraArgs=(deptNum, panels))
  334. if self.radarButtons[deptNum].building:
  335. base.cr.currSuitPlanner.d_buildingListQuery()
  336. self.acceptOnce('buildingListResponse', self.updateBuildingRadar, extraArgs=[deptNum])
  337. taskMgr.doMethodLater(1.0, self.buildingListResponseTimeout, 'buildingListResponseTimeout-later', extraArgs=(deptNum,))
  338. else:
  339. self.updateCogRadar(deptNum, panels)
  340. self.updateBuildingRadar(deptNum)
  341. else:
  342. self.updateCogRadar(deptNum, panels)
  343. self.updateBuildingRadar(deptNum)
  344. self.radarButtons[deptNum]['state'] = DGG.DISABLED
  345. else:
  346. self.updateCogRadar(deptNum, panels)
  347. self.updateBuildingRadar(deptNum)
  348. return
  349.  
  350. def suitListResponseTimeout(self, deptNum, panels):
  351. self.updateCogRadar(deptNum, panels, 1)
  352.  
  353. def buildingListResponseTimeout(self, deptNum):
  354. self.updateBuildingRadar(deptNum, 1)
  355.  
  356. def makePanels(self):
  357. self.panels = []
  358. base.panels = []
  359. xStart = -0.66
  360. yStart = -0.18
  361. xOffset = 0.177 #0.199
  362. yOffset = 0.284
  363. for dept in xrange(0, len(SuitDNA.suitDepts)):
  364. row = []
  365. color = PANEL_COLORS[dept]
  366. for type in xrange(0, SuitDNA.suitsPerDept):
  367. panel = DirectLabel(parent=self.panelNode, pos=(xStart + type * xOffset, 0.0, yStart - dept * yOffset), relief=None, state=DGG.NORMAL, image=self.panelModel, image_scale=(1, 1, 1), image_color=color, text=TTLocalizer.SuitPageMystery, text_scale=0.045, text_fg=(0, 0, 0, 1), text_pos=(0, 0.185, 0), text_font=ToontownGlobals.getSuitFont(), text_wordwrap=7)
  368. panel.scale = 0.55 #0.6
  369. panel.setScale(panel.scale)
  370. panel.quotaLabel = None
  371. panel.head = None
  372. panel.shadow = None
  373. panel.count = 0
  374. panel.summonButton = None
  375. self.addCogRadarLabel(panel)
  376. self.panels.append(panel)
  377. base.panels.append(panel)
  378. return
  379.  
  380. def addQuotaLabel(self, panel):
  381. index = self.panels.index(panel)
  382. count = str(base.localAvatar.cogCounts[index])
  383. if base.localAvatar.cogs[index] < COG_COMPLETE1:
  384. quota = str(COG_QUOTAS[0][index % SuitDNA.suitsPerDept])
  385. else:
  386. quota = str(COG_QUOTAS[1][index % SuitDNA.suitsPerDept])
  387. quotaLabel = DirectLabel(parent=panel, pos=(0.0, 0.0, -0.215), relief=None, state=DGG.DISABLED, text=TTLocalizer.SuitPageQuota % (count, quota), text_scale=0.045, text_fg=(0, 0, 0, 1), text_font=ToontownGlobals.getSuitFont())
  388. panel.quotaLabel = quotaLabel
  389. return
  390.  
  391. def addSuitHead(self, panel, suitName):
  392. panelIndex = self.panels.index(panel)
  393. shadow = panel.attachNewNode('shadow')
  394. shadowModel = self.shadowModels[panelIndex]
  395. shadowModel.copyTo(shadow)
  396. coords = SHADOW_SCALE_POS[panelIndex]
  397. shadow.setScale(coords[0])
  398. shadow.setPos(coords[1], coords[2], coords[3])
  399. panel.shadow = shadow
  400. panel.head = Suit.attachSuitHead(panel, suitName)
  401.  
  402. def addCogRadarLabel(self, panel):
  403. cogRadarLabel = DirectLabel(parent=panel, pos=(0.0, 0.0, -0.215), relief=None, state=DGG.DISABLED, text='', text_scale=0.05, text_fg=(0, 0, 0, 1), text_font=ToontownGlobals.getSuitFont())
  404. panel.cogRadarLabel = cogRadarLabel
  405. return
  406.  
  407. def addSummonButton(self, panel):
  408. buttons = loader.loadModel('phase_3/models/gui/dialog_box_buttons_gui')
  409. okButtonList = (buttons.find('**/ChtBx_OKBtn_UP'), buttons.find('**/ChtBx_OKBtn_DN'), buttons.find('**/ChtBx_OKBtn_Rllvr'))
  410. gui = loader.loadModel('phase_3.5/models/gui/stickerbook_gui')
  411. iconGeom = gui.find('**/summons')
  412. summonButton = DirectButton(parent=panel, pos=(0.1, 0.0, -0.13), scale=0.1, relief=None, state=DGG.NORMAL, image=okButtonList, image_scale=13.0, geom=iconGeom, geom_scale=0.7, text=('',
  413. TTLocalizer.IssueSummons,
  414. TTLocalizer.IssueSummons,
  415. ''), text_scale=0.4, text_pos=(-1.1, -0.4), command=self.summonButtonPressed, extraArgs=[panel])
  416. panel.summonButton = summonButton
  417. return
  418.  
  419. def summonButtonPressed(self, panel):
  420. panelIndex = self.panels.index(panel)
  421. self.summonDialog = SummonCogDialog.SummonCogDialog(panelIndex)
  422. self.summonDialog.load()
  423. self.accept(self.summonDialog.doneEvent, self.summonDone, extraArgs=[panel])
  424. self.summonDialog.enter()
  425.  
  426. def summonDone(self, panel):
  427. if self.summonDialog:
  428. self.summonDialog.unload()
  429. self.summonDialog = None
  430. index = self.panels.index(panel)
  431. if not base.localAvatar.hasCogSummons(index):
  432. panel.summonButton.hide()
  433. return
  434.  
  435. def addBuildingRadarLabel(self, button):
  436. gui = loader.loadModel('phase_3.5/models/gui/suit_detail_panel')
  437. zPos = BUILDING_RADAR_POS[self.radarButtons.index(button)]
  438. buildingRadarLabel = DirectLabel(parent=button, relief=None, pos=(0.225, 0.0, zPos), state=DGG.DISABLED, image=gui.find('**/avatar_panel'), image_hpr=(0, 0, 90), image_scale=(0.05, 1, 0.1), image_pos=(0, 0, 0.015), text=TTLocalizer.SuitPageBuildingRadarP % '0', text_scale=0.05, text_fg=(1, 0, 0, 1), text_font=ToontownGlobals.getSuitFont())
  439. gui.removeNode()
  440. button.buildingRadarLabel = buildingRadarLabel
  441. return
  442.  
  443. def resetPanel(self, dept, type):
  444. panel = self.panels[dept * SuitDNA.suitsPerDept + type]
  445. panel['text'] = TTLocalizer.SuitPageMystery
  446. if panel.cogRadarLabel:
  447. panel.cogRadarLabel.hide()
  448. if panel.quotaLabel:
  449. panel.quotaLabel.hide()
  450. if panel.head:
  451. panel.head.hide()
  452. if panel.shadow:
  453. panel.shadow.hide()
  454. if panel.summonButton:
  455. panel.summonButton.hide()
  456. color = PANEL_COLORS[dept]
  457. panel['image_color'] = color
  458. for button in self.radarButtons:
  459. if button.buildingRadarLabel:
  460. button.buildingRadarLabel.hide()
  461.  
  462. def setPanelStatus(self, panel, status):
  463. index = self.panels.index(panel)
  464. if status == COG_UNSEEN:
  465. panel['text'] = TTLocalizer.SuitPageMystery
  466. elif status == COG_BATTLED:
  467. suitName = SuitDNA.suitHeadTypes[index]
  468. suitFullName = SuitBattleGlobals.SuitAttributes[suitName]['name']
  469. panel['text'] = suitFullName
  470. if panel.quotaLabel:
  471. panel.quotaLabel.show()
  472. else:
  473. self.addQuotaLabel(panel)
  474. if panel.head and panel.shadow:
  475. panel.head.show()
  476. panel.shadow.show()
  477. else:
  478. self.addSuitHead(panel, suitName)
  479. if base.localAvatar.hasCogSummons(index):
  480. if panel.summonButton:
  481. panel.summonButton.show()
  482. else:
  483. self.addSummonButton(panel)
  484. elif status == COG_DEFEATED:
  485. count = str(base.localAvatar.cogCounts[index])
  486. if base.localAvatar.cogs[index] < COG_COMPLETE1:
  487. quota = str(COG_QUOTAS[0][index % SuitDNA.suitsPerDept])
  488. else:
  489. quota = str(COG_QUOTAS[1][index % SuitDNA.suitsPerDept])
  490. panel.quotaLabel['text'] = TTLocalizer.SuitPageQuota % (count, quota)
  491. elif status == COG_COMPLETE1:
  492. panel['image_color'] = PANEL_COLORS_COMPLETE1[index / SuitDNA.suitsPerDept]
  493. elif status == COG_COMPLETE2:
  494. panel['image_color'] = PANEL_COLORS_COMPLETE2[index / SuitDNA.suitsPerDept]
  495.  
  496. def updateAllCogs(self, status):
  497. for index in xrange(0, len(base.localAvatar.cogs)):
  498. base.localAvatar.cogs[index] = status
  499. self.updatePage()
  500.  
  501. def updatePage(self):
  502. index = 0
  503. cogs = base.localAvatar.cogs
  504. for dept in xrange(0, len(SuitDNA.suitDepts)):
  505. for type in xrange(0, SuitDNA.suitsPerDept):
  506. self.updateCogStatus(dept, type, cogs[index])
  507. index += 1
  508. self.updateCogRadarButtons(base.localAvatar.cogRadar)
  509. self.updateBuildingRadarButtons(base.localAvatar.buildingRadar)
  510.  
  511. def updateCogStatus(self, dept, type, status):
  512. if dept < 0 or dept > len(SuitDNA.suitDepts):
  513. print 'ucs: bad cog dept: ', dept
  514. elif type < 0 or type > SuitDNA.suitsPerDept:
  515. print 'ucs: bad cog type: ', type
  516. elif status < COG_UNSEEN or status > COG_COMPLETE2:
  517. print 'ucs: bad status: ', status
  518. else:
  519. self.resetPanel(dept, type)
  520. panel = self.panels[dept * SuitDNA.suitsPerDept + type]
  521. if status == COG_UNSEEN:
  522. self.setPanelStatus(panel, COG_UNSEEN)
  523. elif status == COG_BATTLED:
  524. self.setPanelStatus(panel, COG_BATTLED)
  525. elif status == COG_DEFEATED:
  526. self.setPanelStatus(panel, COG_BATTLED)
  527. self.setPanelStatus(panel, COG_DEFEATED)
  528. elif status == COG_COMPLETE1:
  529. self.setPanelStatus(panel, COG_BATTLED)
  530. self.setPanelStatus(panel, COG_DEFEATED)
  531. self.setPanelStatus(panel, COG_COMPLETE1)
  532. elif status == COG_COMPLETE2:
  533. self.setPanelStatus(panel, COG_BATTLED)
  534. self.setPanelStatus(panel, COG_DEFEATED)
  535. self.setPanelStatus(panel, COG_COMPLETE2)
  536.  
  537. def updateCogRadarButtons(self, radars):
  538. for index in xrange(0, len(radars)):
  539. if radars[index] == 1:
  540. self.radarButtons[index]['state'] = DGG.NORMAL
  541.  
  542. def updateCogRadar(self, deptNum, panels, timeout = 0):
  543. taskMgr.remove('suitListResponseTimeout-later')
  544. if not timeout and hasattr(base.cr, 'currSuitPlanner') and base.cr.currSuitPlanner != None:
  545. cogList = base.cr.currSuitPlanner.suitList
  546. else:
  547. cogList = []
  548. for panel in panels:
  549. panel.count = 0
  550. for cog in cogList:
  551. self.panels[cog].count += 1
  552. for panel in panels:
  553. panel.cogRadarLabel['text'] = TTLocalizer.SuitPageCogRadar % panel.count
  554. if self.radarOn[deptNum]:
  555. panel.quotaLabel.hide()
  556. def showLabel(label):
  557. label.show()
  558. taskMgr.doMethodLater(RADAR_DELAY * panels.index(panel), showLabel, 'showCogRadarLater', extraArgs=(panel.cogRadarLabel,))
  559. def activateButton(s = self, index = deptNum):
  560. self.radarButtons[index]['state'] = DGG.NORMAL
  561. return Task.done
  562. if not self.radarButtons[deptNum].building:
  563. taskMgr.doMethodLater(RADAR_DELAY * len(panels), activateButton, 'activateButtonLater')
  564. else:
  565. panel.cogRadarLabel.hide()
  566. panel.quotaLabel.show()
  567. return
  568.  
  569. def updateBuildingRadarButtons(self, radars):
  570. for index in xrange(0, len(radars)):
  571. if radars[index] == 1:
  572. self.radarButtons[index].building = 1
  573.  
  574. def updateBuildingRadar(self, deptNum, timeout = 0):
  575. taskMgr.remove('buildingListResponseTimeout-later')
  576. if not timeout and hasattr(base.cr, 'currSuitPlanner') and base.cr.currSuitPlanner != None:
  577. buildingList = base.cr.currSuitPlanner.buildingList
  578. else:
  579. buildingList = [0,
  580. 0,
  581. 0,
  582. 0]
  583. button = self.radarButtons[deptNum]
  584. if button.building:
  585. if not button.buildingRadarLabel:
  586. self.addBuildingRadarLabel(button)
  587. if self.radarOn[deptNum]:
  588. num = buildingList[deptNum]
  589. if num == 1:
  590. button.buildingRadarLabel['text'] = TTLocalizer.SuitPageBuildingRadarS % num
  591. else:
  592. button.buildingRadarLabel['text'] = TTLocalizer.SuitPageBuildingRadarP % num
  593. def showLabel(button):
  594. button.buildingRadarLabel.show()
  595. button['state'] = DGG.NORMAL
  596.  
  597. taskMgr.doMethodLater(RADAR_DELAY * SuitDNA.suitsPerDept, showLabel, 'showBuildingRadarLater', extraArgs=(button,))
  598. else:
  599. button.buildingRadarLabel.hide()
  600. return
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement