Advertisement
Guest User

Untitled

a guest
May 4th, 2014
273
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.63 KB | None | 0 0
  1. import ui
  2. import net
  3. import wndMgr
  4. import dbg
  5. import app
  6. import event
  7. import _weakref
  8. import locale
  9. import uiScriptLocale
  10.  
  11. LOCALE_PATH = "uiscript/"+uiScriptLocale.CODEPAGE+"_"
  12.  
  13. class SelectEmpireWindow(ui.ScriptWindow):
  14.  
  15. EMPIRE_DESCRIPTION_TEXT_FILE_NAME = {
  16. net.EMPIRE_A : uiScriptLocale.EMPIREDESC_A,
  17. net.EMPIRE_B : uiScriptLocale.EMPIREDESC_B,
  18. net.EMPIRE_C : uiScriptLocale.EMPIREDESC_C, }
  19.  
  20. class EmpireButton(ui.Window):
  21. def __init__(self, owner, arg):
  22. ui.Window.__init__(self)
  23. self.owner = owner
  24. self.arg = arg
  25. def OnMouseOverIn(self):
  26. self.owner.OnOverInEmpire(self.arg)
  27. def OnMouseOverOut(self):
  28. self.owner.OnOverOutEmpire(self.arg)
  29. def OnMouseLeftButtonDown(self):
  30. if self.owner.empireID != self.arg:
  31. self.owner.OnSelectEmpire(self.arg)
  32.  
  33. class DescriptionBox(ui.Window):
  34. def __init__(self):
  35. ui.Window.__init__(self)
  36. self.descIndex = 0
  37. def __del__(self):
  38. ui.Window.__del__(self)
  39. def SetIndex(self, index):
  40. self.descIndex = index
  41. def OnRender(self):
  42. event.RenderEventSet(self.descIndex)
  43.  
  44. def __init__(self, stream):
  45. print "NEW EMPIRE WINDOW ----------------------------------------------------------------------------"
  46. ui.ScriptWindow.__init__(self)
  47. net.SetPhaseWindow(net.PHASE_WINDOW_EMPIRE, self)
  48.  
  49. self.stream=stream
  50. self.empireID=app.GetRandom(1, 2)
  51. if self.empireID==2:
  52. self.empireID = 3
  53. self.descIndex=0
  54. self.empireArea = {}
  55. self.empireAreaFlag = {}
  56. self.empireFlag = {}
  57. self.empireAreaButton = {}
  58. self.empireAreaCurAlpha = { net.EMPIRE_A:0.0, net.EMPIRE_B:0.0, net.EMPIRE_C:0.0 }
  59. self.empireAreaDestAlpha = { net.EMPIRE_A:0.0, net.EMPIRE_B:0.0, net.EMPIRE_C:0.0 }
  60. self.empireAreaFlagCurAlpha = { net.EMPIRE_A:0.0, net.EMPIRE_B:0.0, net.EMPIRE_C:0.0 }
  61. self.empireAreaFlagDestAlpha = { net.EMPIRE_A:0.0, net.EMPIRE_B:0.0, net.EMPIRE_C:0.0 }
  62. self.empireFlagCurAlpha = { net.EMPIRE_A:0.0, net.EMPIRE_B:0.0, net.EMPIRE_C:0.0 }
  63. self.empireFlagDestAlpha = { net.EMPIRE_A:0.0, net.EMPIRE_B:0.0, net.EMPIRE_C:0.0 }
  64.  
  65. def __del__(self):
  66. ui.ScriptWindow.__del__(self)
  67. net.SetPhaseWindow(net.PHASE_WINDOW_EMPIRE, 0)
  68. print "---------------------------------------------------------------------------- DELETE EMPIRE WINDOW"
  69.  
  70. def Close(self):
  71. print "---------------------------------------------------------------------------- CLOSE EMPIRE WINDOW"
  72.  
  73. self.ClearDictionary()
  74. self.leftButton = None
  75. self.rightButton = None
  76. self.selectButton = None
  77. self.exitButton = None
  78. self.textBoard = None
  79. self.descriptionBox = None
  80. self.empireArea = None
  81. self.empireAreaButton = None
  82.  
  83. self.KillFocus()
  84. self.Hide()
  85.  
  86. app.HideCursor()
  87. event.Destroy()
  88.  
  89. def Open(self):
  90. print "OPEN EMPIRE WINDOW ----------------------------------------------------------------------------"
  91.  
  92. self.SetSize(wndMgr.GetScreenWidth(), wndMgr.GetScreenHeight())
  93. self.SetWindowName("SelectEmpireWindow")
  94. self.Show()
  95.  
  96. if not self.__LoadScript(uiScriptLocale.LOCALE_UISCRIPT_PATH + "SelectEmpireWindow.py"):
  97. dbg.TraceError("SelectEmpireWindow.Open - __LoadScript Error")
  98. return
  99.  
  100. self.OnSelectEmpire(self.empireID)
  101. self.__CreateButtons()
  102. self.__CreateDescriptionBox()
  103. app.ShowCursor()
  104.  
  105. def __CreateButtons(self):
  106. for key, img in self.empireArea.items():
  107.  
  108. img.SetAlpha(0.0)
  109.  
  110. (x, y) = img.GetGlobalPosition()
  111. btn = self.EmpireButton(_weakref.proxy(self), key)
  112. btn.SetParent(self)
  113. btn.SetPosition(x, y)
  114. btn.SetSize(img.GetWidth(), img.GetHeight())
  115. btn.Show()
  116. self.empireAreaButton[key] = btn
  117.  
  118. def __CreateDescriptionBox(self):
  119. self.descriptionBox = self.DescriptionBox()
  120. self.descriptionBox.Show()
  121.  
  122. def OnOverInEmpire(self, arg):
  123. self.empireAreaDestAlpha[arg] = 1.0
  124.  
  125. def OnOverOutEmpire(self, arg):
  126. if arg != self.empireID:
  127. self.empireAreaDestAlpha[arg] = 0.0
  128.  
  129. def OnSelectEmpire(self, arg):
  130. for key in self.empireArea.keys():
  131. self.empireAreaDestAlpha[key] = 0.0
  132. self.empireAreaFlagDestAlpha[key] = 0.0
  133. self.empireFlagDestAlpha[key] = 0.0
  134. self.empireAreaDestAlpha[arg] = 1.0
  135. self.empireAreaFlagDestAlpha[arg] = 1.0
  136. self.empireFlagDestAlpha[arg] = 1.0
  137. self.empireID = arg
  138.  
  139. event.ClearEventSet(self.descIndex)
  140. if self.EMPIRE_DESCRIPTION_TEXT_FILE_NAME.has_key(arg):
  141. self.descIndex = event.RegisterEventSet(self.EMPIRE_DESCRIPTION_TEXT_FILE_NAME[arg])
  142.  
  143. if locale.IsARABIC():
  144. event.SetEventSetWidth(self.descIndex, 170)
  145. else:
  146. event.SetRestrictedCount(self.descIndex, 35)
  147.  
  148. def PrevDescriptionPage(self):
  149. if TRUE == event.IsWait(self.descIndex):
  150. if event.GetVisibleStartLine(self.descIndex)-5 >= 0:
  151. event.SetVisibleStartLine(self.descIndex, event.GetVisibleStartLine(self.descIndex)-5)
  152. event.Skip(self.descIndex)
  153. else:
  154. event.Skip(self.descIndex)
  155.  
  156. def NextDescriptionPage(self):
  157. if TRUE == event.IsWait(self.descIndex):
  158. event.SetVisibleStartLine(self.descIndex, event.GetVisibleStartLine(self.descIndex)+5)
  159. event.Skip(self.descIndex)
  160. else:
  161. event.Skip(self.descIndex)
  162.  
  163. def __LoadScript(self, fileName):
  164. try:
  165. pyScrLoader = ui.PythonScriptLoader()
  166. pyScrLoader.LoadScriptFile(self, fileName)
  167. except:
  168. import exception
  169. exception.Abort("SelectEmpireWindow.__LoadScript.LoadObject")
  170.  
  171. try:
  172. GetObject=self.GetChild
  173. self.leftButton = GetObject("left_button")
  174. self.rightButton = GetObject("right_button")
  175. self.selectButton = GetObject("select_button")
  176. self.exitButton = GetObject("exit_button")
  177. self.textBoard = GetObject("text_board")
  178. self.empireArea[net.EMPIRE_A] = GetObject("EmpireArea_A")
  179.  
  180. self.empireArea[net.EMPIRE_C] = GetObject("EmpireArea_C")
  181. self.empireAreaFlag[net.EMPIRE_A] = GetObject("EmpireAreaFlag_A")
  182.  
  183. self.empireAreaFlag[net.EMPIRE_C] = GetObject("EmpireAreaFlag_C")
  184. self.empireFlag[net.EMPIRE_A] = GetObject("EmpireFlag_A")
  185.  
  186. self.empireFlag[net.EMPIRE_C] = GetObject("EmpireFlag_C")
  187. GetObject("prev_text_button").SetEvent(ui.__mem_func__(self.PrevDescriptionPage))
  188. GetObject("next_text_button").SetEvent(ui.__mem_func__(self.NextDescriptionPage))
  189. except:
  190. import exception
  191. exception.Abort("SelectEmpireWindow.__LoadScript.BindObject")
  192.  
  193. self.selectButton.SetEvent(ui.__mem_func__(self.ClickSelectButton))
  194. self.exitButton.SetEvent(ui.__mem_func__(self.ClickExitButton))
  195. self.leftButton.SetEvent(ui.__mem_func__(self.ClickLeftButton))
  196. self.rightButton.SetEvent(ui.__mem_func__(self.ClickRightButton))
  197. for flag in self.empireAreaFlag.values():
  198. flag.SetAlpha(0.0)
  199. for flag in self.empireFlag.values():
  200. flag.SetAlpha(0.0)
  201.  
  202. return 1
  203.  
  204. def ClickLeftButton(self):
  205. self.empireID-=1
  206. if self.empireID<1 or self.empireID==2:
  207. self.empireID=1
  208.  
  209. self.OnSelectEmpire(self.empireID)
  210.  
  211. def ClickRightButton(self):
  212. self.empireID+=1
  213. if self.empireID==2 or self.empireID>3:
  214. self.empireID=3
  215.  
  216. self.OnSelectEmpire(self.empireID)
  217.  
  218. def ClickSelectButton(self):
  219. net.SendSelectEmpirePacket(self.empireID)
  220. self.stream.SetSelectCharacterPhase()
  221.  
  222. def ClickExitButton(self):
  223. self.stream.SetLoginPhase()
  224.  
  225. def OnUpdate(self):
  226. (xposEventSet, yposEventSet) = self.textBoard.GetGlobalPosition()
  227. event.UpdateEventSet(self.descIndex, xposEventSet+7, -(yposEventSet+7))
  228. self.descriptionBox.SetIndex(self.descIndex)
  229.  
  230. self.__UpdateAlpha(self.empireArea, self.empireAreaCurAlpha, self.empireAreaDestAlpha)
  231. self.__UpdateAlpha(self.empireAreaFlag, self.empireAreaFlagCurAlpha, self.empireAreaFlagDestAlpha)
  232. self.__UpdateAlpha(self.empireFlag, self.empireFlagCurAlpha, self.empireFlagDestAlpha)
  233.  
  234. def __UpdateAlpha(self, dict, curAlphaDict, destAlphaDict):
  235. for key, img in dict.items():
  236.  
  237. curAlpha = curAlphaDict[key]
  238. destAlpha = destAlphaDict[key]
  239.  
  240. if abs(destAlpha - curAlpha) / 10 > 0.0001:
  241. curAlpha += (destAlpha - curAlpha) / 7
  242. else:
  243. curAlpha = destAlpha
  244.  
  245. curAlphaDict[key] = curAlpha
  246. img.SetAlpha(curAlpha)
  247.  
  248. def OnPressEscapeKey(self):
  249. self.ClickExitButton()
  250. return TRUE
  251.  
  252. class ReselectEmpireWindow(SelectEmpireWindow):
  253. def ClickSelectButton(self):
  254. net.SendSelectEmpirePacket(self.empireID)
  255. self.stream.SetCreateCharacterPhase()
  256.  
  257. def ClickExitButton(self):
  258. self.stream.SetSelectCharacterPhase()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement