Guest User

Untitled

a guest
Jul 19th, 2016
227
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.49 KB | None | 0 0
  1. import ui
  2. import net
  3. import dbg
  4. import grp
  5. import app
  6. import event
  7. import wndMgr
  8. import _weakref
  9. import uiToolTip
  10. import localeInfo
  11. import uiScriptLocale
  12.  
  13. LOCALE_PATH = "uiscript/"+uiScriptLocale.CODEPAGE+"_"
  14.  
  15. class SelectEmpireWindow(ui.ScriptWindow):
  16. EMPIRE_NAME = {
  17. net.EMPIRE_A : localeInfo.EMPIRE_A,
  18. net.EMPIRE_B : localeInfo.EMPIRE_B,
  19. net.EMPIRE_C : localeInfo.EMPIRE_C
  20. }
  21.  
  22. EMPIRE_DESCRIPTION_TEXT_FILE_NAME = {
  23. net.EMPIRE_A : uiScriptLocale.EMPIREDESC_A,
  24. net.EMPIRE_B : uiScriptLocale.EMPIREDESC_B,
  25. net.EMPIRE_C : uiScriptLocale.EMPIREDESC_C,
  26. }
  27.  
  28. class EmpireButton(ui.Window):
  29. def __init__(self, owner, arg):
  30. ui.Window.__init__(self)
  31. self.owner = owner
  32. self.arg = arg
  33. def OnMouseOverIn(self):
  34. self.owner.OnOverInEmpire(self.arg)
  35. def OnMouseOverOut(self):
  36. self.owner.OnOverOutEmpire(self.arg)
  37. def OnMouseLeftButtonDown(self):
  38. if self.owner.empireID != self.arg:
  39. self.owner.OnSelectEmpire(self.arg)
  40.  
  41. class DescriptionBox(ui.Window):
  42. def __init__(self):
  43. ui.Window.__init__(self)
  44. self.descIndex = 0
  45. def __del__(self):
  46. ui.Window.__del__(self)
  47. def SetIndex(self, index):
  48. self.descIndex = index
  49. def OnRender(self):
  50. event.RenderEventSet(self.descIndex)
  51.  
  52. def __init__(self, stream):
  53. print "NEW EMPIRE WINDOW ----------------------------------------------------------------------------"
  54. ui.ScriptWindow.__init__(self)
  55. net.SetPhaseWindow(net.PHASE_WINDOW_EMPIRE, self)
  56.  
  57. self.stream=stream
  58. self.empireID=app.GetRandom(1, 3)
  59. self.descIndex=0
  60. self.empireArea = {}
  61. self.empireAreaFlag = {}
  62. self.empireFlag = {}
  63. self.empireAreaButton = {}
  64. self.empireAreaCurAlpha = { net.EMPIRE_A:0.0, net.EMPIRE_B:0.0, net.EMPIRE_C:0.0 }
  65. self.empireAreaDestAlpha = { net.EMPIRE_A:0.0, net.EMPIRE_B:0.0, net.EMPIRE_C:0.0 }
  66. self.empireAreaFlagCurAlpha = { net.EMPIRE_A:0.0, net.EMPIRE_B:0.0, net.EMPIRE_C:0.0 }
  67. self.empireAreaFlagDestAlpha = { net.EMPIRE_A:0.0, net.EMPIRE_B:0.0, net.EMPIRE_C:0.0 }
  68. self.empireFlagCurAlpha = { net.EMPIRE_A:0.0, net.EMPIRE_B:0.0, net.EMPIRE_C:0.0 }
  69. self.empireFlagDestAlpha = { net.EMPIRE_A:0.0, net.EMPIRE_B:0.0, net.EMPIRE_C:0.0 }
  70.  
  71. def __del__(self):
  72. ui.ScriptWindow.__del__(self)
  73. net.SetPhaseWindow(net.PHASE_WINDOW_EMPIRE, 0)
  74. print "---------------------------------------------------------------------------- DELETE EMPIRE WINDOW"
  75.  
  76. def Close(self):
  77. print "---------------------------------------------------------------------------- CLOSE EMPIRE WINDOW"
  78.  
  79. self.ClearDictionary()
  80. self.leftButton = None
  81. self.rightButton = None
  82. self.selectButton = None
  83. self.exitButton = None
  84. self.textBoard = None
  85. self.descriptionBox = None
  86. self.empireArea = None
  87. self.empireAreaButton = None
  88.  
  89. self.KillFocus()
  90. self.Hide()
  91.  
  92. app.HideCursor()
  93. event.Destroy()
  94.  
  95. def Open(self):
  96. print "OPEN EMPIRE WINDOW ----------------------------------------------------------------------------"
  97.  
  98. self.SetSize(wndMgr.GetScreenWidth(), wndMgr.GetScreenHeight())
  99. self.SetWindowName("SelectEmpireWindow")
  100. self.Show()
  101.  
  102. if not self.__LoadScript(uiScriptLocale.LOCALE_UISCRIPT_PATH + "SelectEmpireWindow.py"):
  103. dbg.TraceError("SelectEmpireWindow.Open - __LoadScript Error")
  104. return
  105.  
  106. self.OnSelectEmpire(self.empireID)
  107. self.__CreateButtons()
  108. self.__CreateDescriptionBox()
  109. app.ShowCursor()
  110.  
  111. def __CreateButtons(self):
  112. for key, img in self.empireArea.items():
  113.  
  114. img.SetAlpha(0.0)
  115.  
  116. (x, y) = img.GetGlobalPosition()
  117. btn = self.EmpireButton(_weakref.proxy(self), key)
  118. btn.SetParent(self)
  119. btn.SetPosition(x, y)
  120. btn.SetSize(img.GetWidth(), img.GetHeight())
  121. btn.Show()
  122. self.empireAreaButton[key] = btn
  123.  
  124. def __CreateDescriptionBox(self):
  125. self.descriptionBox = self.DescriptionBox()
  126. self.descriptionBox.Show()
  127.  
  128. def OnOverInEmpire(self, arg):
  129. self.empireAreaDestAlpha[arg] = 1.0
  130.  
  131. def OnOverOutEmpire(self, arg):
  132. if arg != self.empireID:
  133. self.empireAreaDestAlpha[arg] = 0.0
  134.  
  135. def OnSelectEmpire(self, arg):
  136. for key in self.empireArea.keys():
  137. self.empireAreaDestAlpha[key] = 0.0
  138. self.empireAreaFlagDestAlpha[key] = 0.0
  139. self.empireFlagDestAlpha[key] = 0.0
  140.  
  141. self.empireAreaDestAlpha[arg] = 1.0
  142. self.empireAreaFlagDestAlpha[arg] = 1.0
  143. self.empireFlagDestAlpha[arg] = 1.0
  144. self.empireID = arg
  145. self.empireName.SetText(self.EMPIRE_NAME.get(arg, ""))
  146. if arg == 1:
  147. self.empireName.SetFontColor(1.0, 0, 0)
  148. elif arg == 2:
  149. self.empireName.SetFontColor(1.0, 1.0, 0.0)
  150. elif arg == 3:
  151. self.empireName.SetFontColor(0.0, 0, 1.0)
  152.  
  153. event.ClearEventSet(self.descIndex)
  154. if self.EMPIRE_DESCRIPTION_TEXT_FILE_NAME.has_key(arg):
  155. self.descIndex = event.RegisterEventSet(self.EMPIRE_DESCRIPTION_TEXT_FILE_NAME[arg])
  156.  
  157. if localeInfo.IsARABIC():
  158. event.SetEventSetWidth(self.descIndex, 170)
  159. else:
  160. event.SetRestrictedCount(self.descIndex, 35)
  161.  
  162. def PrevDescriptionPage(self):
  163. if TRUE == event.IsWait(self.descIndex):
  164. if event.GetVisibleStartLine(self.descIndex)-15 >= 0:
  165. event.SetVisibleStartLine(self.descIndex, event.GetVisibleStartLine(self.descIndex)-15)
  166. event.Skip(self.descIndex)
  167. else:
  168. event.Skip(self.descIndex)
  169.  
  170. def NextDescriptionPage(self):
  171. if TRUE == event.IsWait(self.descIndex):
  172. event.SetVisibleStartLine(self.descIndex, event.GetVisibleStartLine(self.descIndex)+15)
  173. event.Skip(self.descIndex)
  174. else:
  175. event.Skip(self.descIndex)
  176.  
  177. def __LoadScript(self, fileName):
  178. try:
  179. pyScrLoader = ui.PythonScriptLoader()
  180. pyScrLoader.LoadScriptFile(self, fileName)
  181. except:
  182. import exception
  183. exception.Abort("SelectEmpireWindow.__LoadScript.LoadObject")
  184.  
  185. try:
  186. GetObject=self.GetChild
  187. self.leftButton = GetObject("left_button")
  188. self.rightButton = GetObject("right_button")
  189. self.selectButton = GetObject("select_button")
  190. self.exitButton = GetObject("exit_button")
  191. self.textBoard = GetObject("text_board")
  192. self.empireName = GetObject("EmpireName")
  193. self.empireArea[net.EMPIRE_A] = GetObject("EmpireArea_A")
  194. self.empireArea[net.EMPIRE_B] = GetObject("EmpireArea_B")
  195. self.empireArea[net.EMPIRE_C] = GetObject("EmpireArea_C")
  196. self.empireAreaFlag[net.EMPIRE_A] = GetObject("EmpireAreaFlag_A")
  197. self.empireAreaFlag[net.EMPIRE_B] = GetObject("EmpireAreaFlag_B")
  198. self.empireAreaFlag[net.EMPIRE_C] = GetObject("EmpireAreaFlag_C")
  199. self.empireFlag[net.EMPIRE_A] = GetObject("EmpireFlag_A")
  200. self.empireFlag[net.EMPIRE_B] = GetObject("EmpireFlag_B")
  201. self.empireFlag[net.EMPIRE_C] = GetObject("EmpireFlag_C")
  202. GetObject("prev_text_button").SetEvent(ui.__mem_func__(self.PrevDescriptionPage))
  203. GetObject("next_text_button").SetEvent(ui.__mem_func__(self.NextDescriptionPage))
  204. except:
  205. import exception
  206. exception.Abort("SelectEmpireWindow.__LoadScript.BindObject")
  207.  
  208. self.toolTip = uiToolTip.ToolTip()
  209. self.toolTip.ClearToolTip()
  210.  
  211. self.selectButton.SetEvent(ui.__mem_func__(self.ClickSelectButton))
  212. self.exitButton.SetEvent(ui.__mem_func__(self.ClickExitButton))
  213. self.leftButton.SetEvent(ui.__mem_func__(self.ClickLeftButton))
  214. self.rightButton.SetEvent(ui.__mem_func__(self.ClickRightButton))
  215.  
  216. GetObject("prev_text_button").ShowToolTip = lambda arg=1: self.OverInButton(arg)
  217. GetObject("prev_text_button").HideToolTip = lambda arg=1: self.OverOutButton()
  218. GetObject("next_text_button").ShowToolTip = lambda arg=2: self.OverInButton(arg)
  219. GetObject("next_text_button").HideToolTip = lambda arg=2: self.OverOutButton()
  220. GetObject("left_button").ShowToolTip = lambda arg=3: self.OverInButton(arg)
  221. GetObject("left_button").HideToolTip = lambda arg=3: self.OverOutButton()
  222. GetObject("right_button").ShowToolTip = lambda arg=4: self.OverInButton(arg)
  223. GetObject("right_button").HideToolTip = lambda arg=4: self.OverOutButton()
  224. GetObject("select_button").ShowToolTip = lambda arg=5: self.OverInButton(arg)
  225. GetObject("select_button").HideToolTip = lambda arg=5: self.OverOutButton()
  226. GetObject("exit_button").ShowToolTip = lambda arg=6: self.OverInButton(arg)
  227. GetObject("exit_button").HideToolTip = lambda arg=6: self.OverOutButton()
  228.  
  229. for flag in self.empireAreaFlag.values():
  230. flag.SetAlpha(0.0)
  231. for flag in self.empireFlag.values():
  232. flag.SetAlpha(0.0)
  233.  
  234. return 1
  235.  
  236. def ClickLeftButton(self):
  237. self.empireID -= 1
  238. if self.empireID < 1:
  239. self.empireID = 3
  240.  
  241. self.OnSelectEmpire(self.empireID)
  242.  
  243. def ClickRightButton(self):
  244. self.empireID += 1
  245. if self.empireID > 3:
  246. self.empireID = 1
  247.  
  248. self.OnSelectEmpire(self.empireID)
  249.  
  250. def ClickSelectButton(self):
  251. net.SendSelectEmpirePacket(self.empireID)
  252. self.stream.SetSelectCharacterPhase()
  253. self.toolTip.Hide()
  254.  
  255. def ClickExitButton(self):
  256. self.stream.SetLoginPhase()
  257.  
  258. def PressESCButton(self):
  259. self.stream.SetLoginPhase()
  260. self.toolTip.Hide()
  261.  
  262. def OnUpdate(self):
  263. (xposEventSet, yposEventSet) = self.textBoard.GetGlobalPosition()
  264. event.UpdateEventSet(self.descIndex, xposEventSet+7, -(yposEventSet+7))
  265. self.descriptionBox.SetIndex(self.descIndex)
  266.  
  267. self.__UpdateAlpha(self.empireArea, self.empireAreaCurAlpha, self.empireAreaDestAlpha)
  268. self.__UpdateAlpha(self.empireAreaFlag, self.empireAreaFlagCurAlpha, self.empireAreaFlagDestAlpha)
  269. self.__UpdateAlpha(self.empireFlag, self.empireFlagCurAlpha, self.empireFlagDestAlpha)
  270.  
  271. def __UpdateAlpha(self, dict, curAlphaDict, destAlphaDict):
  272. for key, img in dict.items():
  273.  
  274. curAlpha = curAlphaDict[key]
  275. destAlpha = destAlphaDict[key]
  276.  
  277. if abs(destAlpha - curAlpha) / 10 > 0.0001:
  278. curAlpha += (destAlpha - curAlpha) / 7
  279. else:
  280. curAlpha = destAlpha
  281.  
  282. curAlphaDict[key] = curAlpha
  283. img.SetAlpha(curAlpha)
  284.  
  285. def OnPressEscapeKey(self):
  286. self.ClickExitButton()
  287. return TRUE
  288.  
  289. def OnPressExitKey(self):
  290. self.PressESCButton()
  291. return TRUE
  292.  
  293. def OnKeyDown(self, key):
  294. if 203 == key:
  295. self.ClickLeftButton()
  296. elif 205 == key:
  297. self.ClickRightButton()
  298.  
  299. return TRUE
  300.  
  301. def OverInButton(self, stat):
  302. if stat == 1:
  303. self.toolTip.ClearToolTip()
  304. self.toolTip.AlignHorizonalCenter()
  305. self.toolTip.AutoAppendNewTextLine(uiScriptLocale.CREATE_PREV, grp.GenerateColor(1.0, 1.0, 0.0, 1.0))
  306. self.toolTip.Show()
  307. elif stat == 2:
  308. self.toolTip.ClearToolTip()
  309. self.toolTip.AlignHorizonalCenter()
  310. self.toolTip.AutoAppendNewTextLine(uiScriptLocale.CREATE_NEXT, grp.GenerateColor(1.0, 1.0, 0.0, 1.0))
  311. self.toolTip.Show()
  312. elif stat == 3:
  313. self.toolTip.ClearToolTip()
  314. self.toolTip.AlignHorizonalCenter()
  315. self.toolTip.AutoAppendNewTextLine(localeInfo.UI_PREVPAGE, grp.GenerateColor(1.0, 1.0, 0.0, 1.0))
  316. self.toolTip.Show()
  317. elif stat == 4:
  318. self.toolTip.ClearToolTip()
  319. self.toolTip.AlignHorizonalCenter()
  320. self.toolTip.AutoAppendNewTextLine(localeInfo.UI_NEXT, grp.GenerateColor(1.0, 1.0, 0.0, 1.0))
  321. self.toolTip.Show()
  322. elif stat == 5:
  323. self.toolTip.ClearToolTip()
  324. self.toolTip.AlignHorizonalCenter()
  325. self.toolTip.AutoAppendNewTextLine(localeInfo.EMPIRE_SELECT, grp.GenerateColor(1.0, 1.0, 0.0, 1.0))
  326. self.toolTip.Show()
  327. elif stat == 6:
  328. self.toolTip.ClearToolTip()
  329. self.toolTip.AlignHorizonalCenter()
  330. self.toolTip.AutoAppendNewTextLine(uiScriptLocale.CANCEL, grp.GenerateColor(1.0, 1.0, 0.0, 1.0))
  331. self.toolTip.Show()
  332.  
  333. def OverOutButton(self):
  334. self.toolTip.Hide()
  335.  
  336. class ReselectEmpireWindow(SelectEmpireWindow):
  337. def ClickSelectButton(self):
  338. net.SendSelectEmpirePacket(self.empireID)
  339. self.stream.SetCreateCharacterPhase()
  340.  
  341. def ClickExitButton(self):
  342. self.stream.SetSelectCharacterPhase()
Advertisement
Add Comment
Please, Sign In to add comment