deadx2

Untitled

Sep 4th, 2017
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 38.86 KB | None | 0 0
  1. import uimg, grp, nonplayer, math, constInfo, time, item, uiToolTip, uiCommon, event, chat
  2.  
  3. pos_x = [30, 30, 30+86, 30+86*2, 30+86*3, 30+86*4, 30+86*5, 30+86*6]
  4. pos_y = [94, 124, 124, 124, 124, 124, 124, 124]
  5.  
  6. class AchievementWindow(uimg.ScriptWindow):
  7.    
  8.     def __init__(self):
  9.         uimg.ScriptWindow.__init__(self)
  10.         self.isLoaded = False
  11.         self.__LoadWindow()
  12.        
  13.     def __LoadWindow(self):
  14.         try:
  15.             pyScrLoader = uimg.PythonScriptLoader()
  16.             pyScrLoader.LoadScriptFile(self, "UIScript/Achievement.py")
  17.         except:
  18.             import exception
  19.             exception.Abort("AchievementWindow.LoadWindow.LoadObject")
  20.            
  21.         self.categorys = [
  22.             ["|cffe6d0a2Poziom", 1],
  23.             ["|cffe6d0a2Twoja Droga", 2],
  24.             ["|cffe6d0a2Biolog", 3],
  25.             ["|cffe6d0a2Pupile", 4],
  26.             ["|cffe6d0a2Wyzwania", 5],
  27.             ["|cffe6d0a2Zabójstwa", 6],
  28.             ["|cffe6d0a2Inne", 7],
  29.         ]
  30.  
  31.         self.categorysName = [
  32.             ["|cffe6d0a2Podsumowanie", 0],
  33.             ["|cffe6d0a2Poziom", 1],
  34.             ["|cffe6d0a2Twoja Droga", 2],
  35.             ["|cffe6d0a2Biolog", 3],
  36.             ["|cffe6d0a2Pupile", 4],
  37.             ["|cffe6d0a2Wyzwania", 5],
  38.             ["|cffe6d0a2Zabójstwa", 6],
  39.             ["|cffe6d0a2Inne", 7],
  40.         ]
  41.        
  42.  
  43.         self.category = 0
  44.         self.categoryName = "|cffe6d0a2Podsumowanie"
  45.         self.type = 0
  46.         self.achievementsPos = 0
  47.         self.progress = {}
  48.        
  49.         self.BindObjects()
  50.         self.BindEvents()
  51.         self.isLoaded = True
  52.    
  53.     def BindObjects(self):
  54.         self.board = self.GetChild("board")
  55.        
  56.         self.PokazJebaneSkille = uimg.Button()
  57.         self.PokazJebaneSkille.SetParent(self.board)
  58.         self.PokazJebaneSkille.SetPosition(250+330, 40+3)
  59.         self.PokazJebaneSkille.SetUpVisual("illumina/skill_system/btn_skile_01.tga")
  60.         self.PokazJebaneSkille.SetOverVisual("illumina/skill_system/btn_skile_02.tga")
  61.         self.PokazJebaneSkille.SetDownVisual("illumina/skill_system/btn_skile_03.tga")
  62.     #   self.PokazJebaneSkille.SetText("Umiejetnosci")
  63.         self.PokazJebaneSkille.SetEvent(self.PokazTeSkille)
  64.         self.PokazJebaneSkille.Show()
  65.        
  66.         self.elements = {
  67.             'windows' : {'home' : self.GetChild("HomeWindow"), 'achievements' : self.GetChild("AchievementsWindow")},
  68.             'objects' : {
  69.                 'shopButton' : self.GetChild("AchievementshopButton"),
  70.         #       'leftArrow' : self.GetChild("LeftArrow"), 'rightArrow' : self.GetChild("RightArrow"),
  71.                 'home' : {
  72.                     'box_0' : AchievementBox_Grneral(), 'box_1' : AchievementBox_Grneral(), 'box_2' : AchievementBox_Grneral(), 'box_3' : AchievementBox_Grneral(), 'box_4' : AchievementBox_Grneral(), 'box_5' : AchievementBox_Grneral(), 'box_6' : AchievementBox_Grneral(),
  73.                     'last_box_0' : AchievementLastFinished(), 'last_box_1' : AchievementLastFinished(), 'last_box_2' : AchievementLastFinished(), 'last_box_3' : AchievementLastFinished(), 'last_box_4' : AchievementLastFinished(), 'last_box_5' : AchievementLastFinished(), 'last_box_6' : AchievementLastFinished(), 'last_box_7' : AchievementLastFinished(), 'last_box_8' : AchievementLastFinished(),
  74.                     'last_window' : self.GetChild("bgLastAchievements"),
  75.                     'upArrow' : self.GetChild("UpArrow"), 'downArrow' : self.GetChild("DownArrow"),
  76.                     'upArrowLast' : self.GetChild("LastUpArrow"), 'downArrowLast' : self.GetChild("LastDownArrow"),
  77.                 },
  78.                 'achievements' : {
  79.                     'scrollbar' : self.GetChild("ScrollBar"),
  80.                     'box_0' : AchievementBox(), 'box_1' : AchievementBox(), 'box_2' : AchievementBox(), 'box_3' : AchievementBox(), 'box_4' : AchievementBox(), 'box_5' : AchievementBox(), 'box_6' : AchievementBox(), 'box_7' : AchievementBox(), 'box_8' : AchievementBox(), 'box_9' : AchievementBox(),
  81.                     'btn_type_0' : self.GetChild("Type0Button"), 'btn_type_1' : self.GetChild("Type1Button"), 'btn_type_2' : self.GetChild("Type2Button"),
  82.                     'type_1' : [], 'type_2' : [],
  83.                 },
  84.             }
  85.         }
  86.         self.arrows = {'categorys' : 0, 'global_achievements' : 0, 'last_achievements' : 0}
  87.        
  88.     def ThinBoard(self, parent, moveable, x, y, width, heigh, center):
  89.         thin = uimg.ThinBoard()
  90.         if parent != None:
  91.             thin.SetParent(parent)
  92.         if moveable == TRUE:
  93.             thin.AddFlag('movable')
  94.             thin.AddFlag('float')
  95.         thin.SetSize(width, heigh)
  96.         thin.SetPosition(x, y)
  97.         if center == TRUE:
  98.             thin.SetCenterPosition()
  99.         thin.Show()
  100.         return thin
  101.    
  102.     def BindEvents(self):
  103.         self.image_globalProgress = uimg.ImageBox()
  104.         self.image_globalProgress.SetParent(self.board)
  105.         self.image_globalProgress.SetPosition(111, 46+3)
  106.         self.image_globalProgress.LoadImage("illumina/inne/tlo_osiagniecia5.tga")
  107.         self.image_globalProgress.Show()
  108.        
  109.         self.globalProgress = AchievementProgressBar()
  110.         #self.globalProgress = uimg.ThinBoard()
  111.         self.globalProgress.SetParent(self.image_globalProgress)
  112.         self.globalProgress.SetSize(439, 26)
  113.         self.globalProgress.SetPosition(-1, -1)
  114.         self.globalProgress.SetWindowHorizontalAlignCenter()
  115.         self.globalProgress.SetText('|cffa08784Całość wykonanych osiągnięć ')
  116.         self.globalProgress.SetProgress(10, 155)
  117.         self.globalProgress.Show()
  118.        
  119.         self.board.SetCloseEvent(uimg.__mem_func__(self.Close))
  120.         self.shopButton = AchievementShopWindow()
  121.         self.elements['objects']['shopButton'].SetEvent(uimg.__mem_func__(self.shopButton.Open))
  122.        
  123.     #   self.elements['objects']['leftArrow'].SetEvent(uimg.__mem_func__(self.__OnClickArrow), 'CATEGORY_LEFT')
  124.     #   self.elements['objects']['rightArrow'].SetEvent(uimg.__mem_func__(self.__OnClickArrow), 'CATEGORY_RIGHT')
  125.        
  126.         self.elements['objects']['home']['upArrow'].SetEvent(uimg.__mem_func__(self.__OnClickArrow), 'GLOBAL_UP')
  127.         self.elements['objects']['home']['downArrow'].SetEvent(uimg.__mem_func__(self.__OnClickArrow), 'GLOBAL_DOWN')
  128.        
  129.         self.elements['objects']['home']['upArrowLast'].SetEvent(uimg.__mem_func__(self.__OnClickArrow), 'LAST_UP')
  130.         self.elements['objects']['home']['downArrowLast'].SetEvent(uimg.__mem_func__(self.__OnClickArrow), 'LAST_DOWN')
  131.        
  132.         self.elements['objects']['achievements']['scrollbar'].SetScrollEvent(uimg.__mem_func__(self.__OnScroll))
  133.        
  134.         self.elements['objects']['achievements']['box_0'].Open(self.elements['windows']['achievements'], -58, 65)
  135.         self.elements['objects']['achievements']['box_1'].Open(self.elements['windows']['achievements'], -58, 65+27)
  136.         self.elements['objects']['achievements']['box_2'].Open(self.elements['windows']['achievements'], -58, 65+27*2)
  137.         self.elements['objects']['achievements']['box_3'].Open(self.elements['windows']['achievements'], -58, 65+27*3)
  138.         self.elements['objects']['achievements']['box_4'].Open(self.elements['windows']['achievements'], -58, 65+27*4)
  139.         self.elements['objects']['achievements']['box_5'].Open(self.elements['windows']['achievements'], -58, 65+27*5)
  140.         self.elements['objects']['achievements']['box_6'].Open(self.elements['windows']['achievements'], -58, 65+27*6)
  141.         self.elements['objects']['achievements']['box_7'].Open(self.elements['windows']['achievements'], -58, 65+27*7)
  142.         self.elements['objects']['achievements']['box_8'].Open(self.elements['windows']['achievements'], -58, 65+27*8)
  143.         self.elements['objects']['achievements']['box_9'].Open(self.elements['windows']['achievements'], -58, 65+27*9)
  144.        
  145.         self.elements['objects']['home']['box_0'].Open(self.elements['windows']['home'], -118, 50)
  146.         self.elements['objects']['home']['box_1'].Open(self.elements['windows']['home'], -118, 50+40)
  147.         self.elements['objects']['home']['box_2'].Open(self.elements['windows']['home'], -118, 50+40*2)
  148.         self.elements['objects']['home']['box_3'].Open(self.elements['windows']['home'], -118, 50+40*3)
  149.         self.elements['objects']['home']['box_4'].Open(self.elements['windows']['home'], -118, 50+40*4)
  150.         self.elements['objects']['home']['box_5'].Open(self.elements['windows']['home'], -118, 50+40*5)
  151.         self.elements['objects']['home']['box_6'].Open(self.elements['windows']['home'], -118, 50+40*6)
  152.        
  153.         self.elements['objects']['home']['last_box_0'].Open(self.elements['objects']['home']['last_window'], -107, 39)
  154.         self.elements['objects']['home']['last_box_1'].Open(self.elements['objects']['home']['last_window'], -107, 39+26)
  155.         self.elements['objects']['home']['last_box_2'].Open(self.elements['objects']['home']['last_window'], -107, 42+26*2)
  156.         self.elements['objects']['home']['last_box_3'].Open(self.elements['objects']['home']['last_window'], -107, 42+26*3)
  157.         self.elements['objects']['home']['last_box_4'].Open(self.elements['objects']['home']['last_window'], -107, 42+26*4)
  158.         self.elements['objects']['home']['last_box_5'].Open(self.elements['objects']['home']['last_window'], -107, 42+26*5)
  159.         self.elements['objects']['home']['last_box_6'].Open(self.elements['objects']['home']['last_window'], -107, 42+26*6)
  160.         self.elements['objects']['home']['last_box_7'].Open(self.elements['objects']['home']['last_window'], -107, 42+26*7)
  161.         self.elements['objects']['home']['last_box_8'].Open(self.elements['objects']['home']['last_window'], -107, 42+26*8)
  162.        
  163.         for i in xrange(3):
  164.             self.elements['objects']['achievements']['btn_type_%d' % i].SetEvent(uimg.__mem_func__(self.SetType), i)
  165.  
  166.     def __del__(self):
  167.         uimg.ScriptWindow.__del__(self)
  168.        
  169.     def SetCategory(self, category):
  170.         self.achievementsPos = 0
  171.         self.category = category
  172.         self.categoryName = self.categorysName[category][0]
  173.         self.RefreshCategorys()
  174.         if self.category == 0:
  175.             self.elements['windows']['achievements'].Hide()
  176.             self.elements['windows']['home'].Show()
  177.             self.arrows['global_achievements'] = 0
  178.             self.RefreshGlobalProgress()
  179.             self.RefreshLastFinished()
  180.         else:
  181.             self.CreateTypes()
  182.             self.elements['windows']['home'].Hide()
  183.             self.elements['windows']['achievements'].Show()
  184.             self.SetType(0)
  185.            
  186.     def CreateTypes(self):
  187.         self.elements['objects']['achievements']['type_1'] = []
  188.         self.elements['objects']['achievements']['type_2'] = []
  189.         try:
  190.             for i in xrange(len(constInfo.Achievements["achievements"][self.category])):
  191.                 if constInfo.Achievements["achievements"][self.category][i][0] < constInfo.Achievements["achievements"][self.category][i][1]:
  192.                     self.elements['objects']['achievements']['type_1'].append(constInfo.Achievements["achievements"][self.category][i])
  193.                 elif constInfo.Achievements["achievements"][self.category][i][0] >= constInfo.Achievements["achievements"][self.category][i][1]:
  194.                     self.elements['objects']['achievements']['type_2'].append(constInfo.Achievements["achievements"][self.category][i])
  195.         except:
  196.             pass
  197.  
  198.     def __OnClickArrow(self, arrow):
  199.         if arrow == 'CATEGORY_LEFT':
  200.             self.arrows['categorys'] -= 1
  201.             self.RefreshCategorys()
  202.         elif arrow == 'CATEGORY_RIGHT':
  203.             self.arrows['categorys'] += 1
  204.             self.RefreshCategorys()
  205.         elif arrow == 'GLOBAL_UP':
  206.             self.arrows['global_achievements'] -= 1
  207.             self.RefreshGlobalProgress()
  208.         elif arrow == 'GLOBAL_DOWN':
  209.             self.arrows['global_achievements'] += 1
  210.             self.RefreshGlobalProgress()
  211.         elif arrow == 'LAST_UP':
  212.             self.arrows['last_achievements'] -= 1
  213.             self.RefreshLastFinished()
  214.         elif arrow == 'LAST_DOWN':
  215.             self.arrows['last_achievements'] += 1
  216.             self.RefreshLastFinished()
  217.            
  218.     def PokazTeSkille(self):
  219.         event.QuestButtonClick(constInfo.Okienko)
  220.            
  221.  
  222.     def SetType(self, type):
  223.         for i in xrange(3):
  224.             self.elements['objects']['achievements']['btn_type_%d' % i].SetUp()
  225.         self.elements['objects']['achievements']['btn_type_%d' % type].Down()
  226.         self.type = type
  227.         self.achievementsPos = 0
  228.         self.elements['objects']['achievements']['scrollbar'].SetPos(0)
  229.         self.RefreshAchievements()
  230.        
  231.     def RefreshGlobalProgress(self):
  232.         self.SetGlobalProgress()
  233.         try:
  234.             for i in xrange(7):
  235.                 self.elements['objects']['home']['box_%d' % i].Hide()
  236.         except:
  237.             pass
  238.         try:
  239.             for i in xrange(min(7, len(self.categorys))):
  240.                 curCategory = self.categorys[self.arrows['global_achievements'] + i][1]
  241.                 self.elements['objects']['home']['box_%d' % i].SetContent(0, self.progress['current_category_%d' % curCategory], self.progress['max_category_%d' % curCategory], 0)
  242.                 self.elements['objects']['home']['box_%d' % i].SetTitle(self.categorys[curCategory-1][0])
  243.                 self.elements['objects']['home']['box_%d' % i].Show()
  244.         except:
  245.             pass
  246.        
  247.         if (self.categorys > 7):
  248.             if (self.arrows['global_achievements'] <= 0):
  249.                 self.elements['objects']['home']['downArrow'].Show()
  250.                 self.elements['objects']['home']['upArrow'].Hide()
  251.             elif (self.arrows['global_achievements']+7 < len(self.categorys)):
  252.                 self.elements['objects']['home']['downArrow'].Show()
  253.                 self.elements['objects']['home']['upArrow'].Show()
  254.             elif (self.arrows['global_achievements']+7 >= len(self.categorys)):
  255.                 self.elements['objects']['home']['downArrow'].Hide()
  256.                 self.elements['objects']['home']['upArrow'].Show()
  257.         else:
  258.             self.elements['objects']['home']['upArrow'].Hide()
  259.             self.elements['objects']['home']['downArrow'].Hide()
  260.            
  261.     def RefreshLastFinished(self):
  262.         for i in xrange(9):
  263.             self.elements['objects']['home']['last_box_%d' % i].Hide()
  264.  
  265.         try:
  266.             for i in xrange(min(9, len(constInfo.Achievements['last_achievements']))):
  267.         #   for i in xrange(9):
  268.                 curAchievement = constInfo.Achievements['last_achievements'][(len(constInfo.Achievements['last_achievements'])-1) - (self.arrows['last_achievements'] + i)]
  269.                 if curAchievement[0] == 2 or curAchievement[0] == 3 or curAchievement[0] == 4:
  270.                     self.elements['objects']['home']['last_box_%d' % i].SetText(self.GetDescByCat(curAchievement[0]) % (curAchievement[1], nonplayer.GetMonsterName(curAchievement[3])))
  271.                 else:
  272.                     self.elements['objects']['home']['last_box_%d' % i].SetText(self.GetDescByCat(curAchievement[0]) % curAchievement[1])
  273.                 self.elements['objects']['home']['last_box_%d' % i].SetPoints(curAchievement[2])
  274.                 self.elements['objects']['home']['last_box_%d' % i].Show()
  275.         except:
  276.             pass
  277.            
  278.         if (len(constInfo.Achievements['last_achievements']) > 9):
  279.             if (self.arrows['last_achievements'] <= 0):
  280.                 self.elements['objects']['home']['downArrowLast'].Show()
  281.                 self.elements['objects']['home']['upArrowLast'].Hide()
  282.             elif (self.arrows['last_achievements']+9 < len(constInfo.Achievements['last_achievements'])):
  283.                 self.elements['objects']['home']['downArrowLast'].Show()
  284.                 self.elements['objects']['home']['upArrowLast'].Show()
  285.             elif (self.arrows['last_achievements']+9 >= len(constInfo.Achievements['last_achievements'])):
  286.                 self.elements['objects']['home']['downArrowLast'].Hide()
  287.                 self.elements['objects']['home']['upArrowLast'].Show()
  288.         else:
  289.             self.elements['objects']['home']['upArrowLast'].Hide()
  290.             self.elements['objects']['home']['downArrowLast'].Hide()
  291.        
  292.     def RefreshCategorys(self):
  293.         try:
  294.             for i in xrange(8):
  295.                 self.elements['objects']['category_%d' % i].Hide()
  296.         except:
  297.             pass
  298.         try:
  299.             tmpCategorys = [["|cffe6d0a2Podsumowanie", 0]]
  300.             tmpCategorys += self.categorys
  301.             for i in xrange(min(8, len(tmpCategorys))):
  302.                 scrolledId = i + self.arrows['categorys']
  303.             #   self.elements['objects']['category_%d' % i] = self.CreateCategoryButton(self.board, 35+18+111*i, 94, tmpCategorys[scrolledId][0], self.SetCategory, tmpCategorys[scrolledId][1])
  304.                 self.elements['objects']['category_%d' % i] = self.CreateCategoryButton(self.board, pos_x[i], pos_y[i], tmpCategorys[scrolledId][0], self.SetCategory, tmpCategorys[scrolledId][1])
  305.             #   self.elements['objects']['category_%d' % i].Show()
  306.                 if self.categoryName == tmpCategorys[scrolledId][0]:
  307.                     self.elements['objects']['category_%d' % i].Down()
  308.                 self.elements['objects']['category_%d' % i].Show()
  309.         except:
  310.             pass
  311.         '''
  312.         if (len(tmpCategorys) > 5):
  313.             if (self.arrows['categorys'] <= 0):
  314.                 self.elements['objects']['rightArrow'].Show()
  315.                 self.elements['objects']['leftArrow'].Hide()
  316.             elif (self.arrows['categorys']+5 < len(tmpCategorys)):
  317.                 self.elements['objects']['leftArrow'].Show()
  318.                 self.elements['objects']['rightArrow'].Show()
  319.             elif (self.arrows['categorys']+5 >= len(tmpCategorys)):
  320.                 self.elements['objects']['rightArrow'].Hide()
  321.                 self.elements['objects']['leftArrow'].Show()
  322.         else:
  323.             self.elements['objects']['leftArrow'].Hide()
  324.             self.elements['objects']['rightArrow'].Hide()
  325.         '''
  326.     def RefreshAchievements(self):
  327.         self.CreateTypes()
  328.         for i in xrange(10):
  329.             self.elements['objects']['achievements']['box_%d' % i].Hide()
  330.  
  331.         try:
  332.             if self.type == 0:
  333.                 achievements = constInfo.Achievements["achievements"][self.category]
  334.             elif self.type == 1:
  335.                 achievements = self.elements['objects']['achievements']['type_1']
  336.             elif self.type == 2:
  337.                 achievements = self.elements['objects']['achievements']['type_2']
  338.                
  339.             for i in xrange(10):
  340.                 curAchievement = achievements[self.achievementsPos + i]
  341.                 self.elements['objects']['achievements']['box_%d' % i].SetContent(self.category, curAchievement[0], curAchievement[1], curAchievement[2], curAchievement[3])
  342.                 self.elements['objects']['achievements']['box_%d' % i].Show()
  343.         except:
  344.             self.elements['objects']['achievements']['scrollbar'].Hide()
  345.             return
  346.            
  347.         if len(achievements) <= 10:
  348.             self.elements['objects']['achievements']['scrollbar'].Hide()
  349.         else:
  350.             self.elements['objects']['achievements']['scrollbar'].SetMiddleBarSize(float(10)/float(len(achievements)))
  351.             self.elements['objects']['achievements']['scrollbar'].Show()
  352.            
  353.     def __OnScroll(self):
  354.         try:
  355.             if self.type == 0:
  356.                 achievementslen = len(constInfo.Achievements["achievements"][self.category])
  357.             elif self.type == 1:
  358.                 achievementslen = len(self.elements['objects']['achievements']['type_1'])
  359.             elif self.type == 2:
  360.                 achievementslen = len(self.elements['objects']['achievements']['type_2'])
  361.             self.achievementsPos = int(self.elements['objects']['achievements']['scrollbar'].GetPos() * (achievementslen-5))
  362.         except:
  363.             pass
  364.         self.RefreshAchievements()
  365.        
  366.     def SetGlobalProgress(self):
  367.         Finished,inProgress = 0,0
  368.         for i in xrange(len(self.categorys)):
  369.             self.progress['current_category_%d' % self.categorys[i][1]] = 0
  370.             self.progress['max_category_%d' % self.categorys[i][1]] = 0
  371.         for cat in constInfo.Achievements["achievements"]:
  372.             for i in xrange(len(constInfo.Achievements["achievements"][cat])):
  373.                 inProgress += 1
  374.                 if constInfo.Achievements["achievements"][cat][i][0] >= constInfo.Achievements["achievements"][cat][i][1]:
  375.                     self.progress['current_category_%d' % cat] += 1
  376.                     Finished += 1
  377.             self.progress['max_category_%d' % cat] = len(constInfo.Achievements["achievements"][cat])
  378.         self.globalProgress.SetProgress(Finished, inProgress)
  379.        
  380.     def SetAchievementFinisehd(self, category, valueReached, points, mobVnum):
  381.         firstLine = 'Has alcanzado un logro:'
  382.         if category == 2 or category == 3 or category == 4:
  383.             secondLine = self.GetDescByCat(category) % (valueReached, nonplayer.GetMonsterName(mobVnum))
  384.         else:
  385.             secondLine = self.GetDescByCat(category) % valueReached
  386.         thirdLine = '|cffa08784Punkty: %d' % points
  387.         self.finishedAchievement = FinishedAchievementDialog()
  388.         self.finishedAchievement.SetFirstLineText(firstLine)
  389.         self.finishedAchievement.SetSecondLineText(secondLine)
  390.         self.finishedAchievement.SetThirdLineText(thirdLine)
  391.         self.finishedAchievement.Open(10)
  392.        
  393.     def GetDescByCat(self, category):
  394.         return ("|cffa08784Osiągnij |cffa07970%d |cffa08784poziom","Wykanoaj misje na  %dx %s Poziom","Matar a %dx %s","Romper %dx %s","|cffa08784Jugar |cffa07970%d |cffa08784minutos","Matar %dx jugadores","Matar %dx juga2dores")[category-1]
  395.        
  396.     def CreateCategoryButton(self, parent, x, y, text, func, arg):
  397.         Button = uimg.RadioButton()
  398.         Button.SetParent(parent)
  399.         Button.SetUpVisual("illumina/inne/btn_kod2_long_01.tga")
  400.         Button.SetOverVisual("illumina/inne/btn_kod2_long_02.tga")
  401.         Button.SetDownVisual("illumina/inne/btn_kod2_long_03.tga")
  402.         Button.SetText(text)
  403.  
  404.         Button.SetEvent(uimg.__mem_func__(func), arg)
  405.         Button.SetPosition(x, y)
  406.         #Button.Down()
  407.         Button.Show()
  408.         return Button
  409.        
  410.     def Destroy(self):
  411.         self.Close()
  412.         self.ClearDictionary()
  413.        
  414.     def Open(self):
  415.         if not self.isLoaded:
  416.             self.__LoadWindow()
  417.        
  418.         self.SetCategory(0)
  419.         self.SetCenterPosition()
  420.         self.SetTop()
  421.         self.Show()
  422.        
  423.     def Close(self):
  424.         self.Hide()
  425.         return TRUE
  426.        
  427.     def OnPressEscapeKey(self):
  428.         self.Close()
  429.         return TRUE
  430.        
  431.     def OnPressExitKey(self):
  432.         self.Close()
  433.         return TRUE
  434.  
  435. class AchievementBox_Grneral(uimg.ScriptWindow):
  436.    
  437.     def __init__(self):
  438.         uimg.ScriptWindow.__init__(self)
  439.         self.data = [0,0]
  440.         self.isLoaded = False
  441.        
  442.     def LoadWindow(self):
  443.         try:
  444.             pyScrLoader = uimg.PythonScriptLoader()
  445.             pyScrLoader.LoadScriptFile(self, "UIScript/achievement_box_general.py")
  446.         except:
  447.             import exception
  448.             exception.Abort("AchievementBox.LoadWindow.LoadObject")
  449.            
  450.         try:
  451.             self.board = self.GetChild("board")
  452.             self.achievementTitle = self.GetChild("AchievementTitle")
  453.             self.achievementTitle.Hide()
  454.             self.achievementPoints = self.GetChild("AchievementPoints")
  455.            
  456.             self.achievementProgess = AchievementProgressBar()
  457.             self.achievementProgess.SetParent(self)
  458.             self.achievementProgess.SetSize(546, 24)
  459.             self.achievementProgess.SetPosition(-1, -1)
  460.             self.achievementProgess.SetProgress(15, 50)
  461.             self.achievementProgess.Show()
  462.         except:
  463.             import exception
  464.             exception.Abort("AchievementBox.LoadWindow.LoadObject")
  465.  
  466.         self.isLoaded = True
  467.        
  468.     def SetContent(self, category, curValue, maxValue, points, mobVnum = 0):
  469.         self.data = [curValue, maxValue]
  470.         self.achievementProgess.SetProgress(curValue, maxValue)
  471.         if points == 0:
  472.             self.achievementPoints.Hide()
  473.         else:
  474.             self.achievementPoints.SetText('|cffa07970%d' % points)
  475.             self.achievementPoints.Show()
  476.         if category == 0:
  477.             return
  478.         if category == 2 or category == 3 or category == 4:
  479.             self.achievementProgess.SetText(self.GetDescByCat(category) % (maxValue, nonplayer.GetMonsterName(mobVnum)))
  480.         else:  
  481.             self.achievementProgess.SetText(self.GetDescByCat(category) % maxValue)
  482.            
  483.     def SetTitle(self, title):
  484.         self.achievementTitle.SetText(title)
  485.         self.achievementTitle.Show()
  486.         self.achievementProgess.SetSize(307, 31)
  487.         self.achievementProgess.SetPosition(73, -1)
  488.         self.achievementProgess.SetProgress(self.data[0], self.data[1])
  489.         self.achievementProgess.SetProgressPosition(125/4)
  490.         self.board.SetSize(380, 56)
  491.         self.SetSize(380, 56)
  492.        
  493.     def GetDescByCat(self, category):
  494.         return ("|cffa08784Osiągnij |cffa07970%d |cffa08784poziom","Wykanoaj misje na  %dx %s Poziom","Matar a %dx %s","Romper %dx %s","|cffa08784Jugar |cffa07970%d |cffa08784minutos","Matar %dx jugadores","Matar %dx juga2dores")[category-1]
  495.        
  496.     def __del__(self):
  497.         uimg.ScriptWindow.__del__(self)
  498.        
  499.     def Open(self, parent, x, y):
  500.         if not self.isLoaded:
  501.             self.LoadWindow()
  502.            
  503.         self.SetParent(parent)
  504.         self.SetPosition(x, y)
  505.         self.SetWindowHorizontalAlignCenter()
  506.         self.Show()
  507.  
  508. class AchievementBox(uimg.ScriptWindow):
  509.    
  510.     def __init__(self):
  511.         uimg.ScriptWindow.__init__(self)
  512.         self.data = [0,0]
  513.         self.isLoaded = False
  514.        
  515.     def LoadWindow(self):
  516.         try:
  517.             pyScrLoader = uimg.PythonScriptLoader()
  518.             pyScrLoader.LoadScriptFile(self, "UIScript/achievement_box.py")
  519.         except:
  520.             import exception
  521.             exception.Abort("AchievementBox.LoadWindow.LoadObject")
  522.            
  523.         try:
  524.             self.board = self.GetChild("board")
  525.             self.achievementTitle = self.GetChild("AchievementTitle")
  526.             self.achievementTitle.Hide()
  527.             self.achievementPoints = self.GetChild("AchievementPoints")
  528.            
  529.             self.achievementProgess = AchievementProgressBar()
  530.             self.achievementProgess.SetParent(self)
  531.             self.achievementProgess.SetSize(546, 24)
  532.             self.achievementProgess.SetPosition(-1, -1)
  533.             self.achievementProgess.SetProgress(15, 50)
  534.             self.achievementProgess.Show()
  535.         except:
  536.             import exception
  537.             exception.Abort("AchievementBox.LoadWindow.LoadObject")
  538.  
  539.         self.isLoaded = True
  540.        
  541.     def SetContent(self, category, curValue, maxValue, points, mobVnum = 0):
  542.         self.data = [curValue, maxValue]
  543.         self.achievementProgess.SetProgress(curValue, maxValue)
  544.         if points == 0:
  545.             self.achievementPoints.Hide()
  546.         else:
  547.             self.achievementPoints.SetText('|cffa07970%d' % points)
  548.             self.achievementPoints.Show()
  549.         if category == 0:
  550.             return
  551.         if category == 2 or category == 3 or category == 4:
  552.             self.achievementProgess.SetText(self.GetDescByCat(category) % (maxValue, nonplayer.GetMonsterName(mobVnum)))
  553.         else:  
  554.             self.achievementProgess.SetText(self.GetDescByCat(category) % maxValue)
  555.     '''
  556.     def SetTitle(self, title):
  557.         self.achievementTitle.SetText(title)
  558.         self.achievementTitle.Show()
  559.         self.achievementProgess.SetSize(250, 27)
  560.         self.achievementProgess.SetPosition(115, 11+3)
  561.         self.achievementProgess.SetProgress(self.data[0], self.data[1])
  562.         self.achievementProgess.SetProgressPosition(125/4)
  563.         self.board.SetSize(380, 56)
  564.         self.SetSize(380, 56)
  565.     '''
  566.        
  567.     def GetDescByCat(self, category):
  568.         return ("|cffa08784Osiągnij |cffa07970%d |cffa08784poziom","Wykanoaj misje na  %dx %s Poziom","Matar a %dx %s","Romper %dx %s","|cffa08784Jugar |cffa07970%d |cffa08784minutos","Matar %dx jugadores","Matar %dx juga2dores")[category-1]
  569.        
  570.     def __del__(self):
  571.         uimg.ScriptWindow.__del__(self)
  572.        
  573.     def Open(self, parent, x, y):
  574.         if not self.isLoaded:
  575.             self.LoadWindow()
  576.            
  577.         self.SetParent(parent)
  578.         self.SetPosition(x, y)
  579.         self.SetWindowHorizontalAlignCenter()
  580.         self.Show()
  581.  
  582. class AchievementProgressBar(uimg.Window):
  583.  
  584.     BACKGROUND_COLOR = grp.GenerateColor(0.0, 0.0, 0.0, 0.0)
  585.     DARK_COLOR = grp.GenerateColor(0.0, 0.0, 0.0, 0.0)
  586.    
  587.     PROGRESS_COLOR = grp.GenerateColor(1.0, 0.0, 0.0, 0.2)
  588.     FINISHED_COLOR = grp.GenerateColor(0.0, 1.0, 0.0, 0.2)
  589.    
  590.     def __init__(self, layer = "UI"):
  591.         uimg.Window.__init__(self, layer)
  592.  
  593.         self.width = 0
  594.         self.height = 0    
  595.         self.progress = 0
  596.         self.isFinished = False
  597.        
  598.         self.textLine = None
  599.         self.textLineExtra = None
  600.        
  601.     def __del__(self):
  602.         uimg.Window.__del__(self)
  603.  
  604.     def SetSize(self, width, height):
  605.         uimg.Window.SetSize(self, width, height)
  606.         self.width = width
  607.         self.height = height
  608.  
  609.     def SetProgress(self, current, max):
  610.         try:
  611.             self.progress = min(math.ceil((float(current)/float(max))*100.00), 100)
  612.         except:
  613.             self.progress = 0
  614.         if self.progress == 100:
  615.             self.isFinished = True
  616.         else:
  617.             self.isFinished = False
  618.        
  619.         if not self.textLine:      
  620.             textLine = uimg.TextLine()
  621.             textLine.SetParent(self)
  622.             textLine.SetOutline()
  623.             textLine.Show()
  624.             self.textLine = textLine
  625.        
  626.         if current > max:
  627.             self.textLine.SetText('|cffa07970%d/%d' % (max, max))
  628.         else:
  629.             self.textLine.SetText('|cffa07970%d/%d' % (current, max))
  630.         self.textLine.SetPosition(150, self.GetHeight()/2)
  631.         self.textLine.SetHorizontalAlignCenter()
  632.         self.textLine.SetWindowHorizontalAlignCenter()
  633.         self.textLine.SetVerticalAlignCenter()
  634.        
  635.     def SetText(self, text):
  636.         if not self.textLineExtra:     
  637.             textLineExtra = uimg.TextLine()
  638.             textLineExtra.SetParent(self)
  639.             textLineExtra.SetPosition(12, self.GetHeight()/2)
  640.             textLineExtra.SetVerticalAlignCenter()
  641.             textLineExtra.SetOutline()
  642.             textLineExtra.Show()
  643.             self.textLineExtra = textLineExtra
  644.        
  645.         self.textLineExtra.SetText('|cffa08784%s' % text)
  646.        
  647.     def SetProgressPosition(self, x):
  648.         self.textLine.SetPosition(x, self.GetHeight()/2)
  649.  
  650.     def OnRender(self):
  651.         xRender, yRender = self.GetGlobalPosition()
  652.        
  653.         widthRender = self.width
  654.         heightRender = self.height
  655.         grp.SetColor(self.BACKGROUND_COLOR)
  656.         grp.RenderBar(xRender, yRender, widthRender, heightRender)
  657.         grp.SetColor(self.DARK_COLOR)
  658.         grp.RenderLine(xRender, yRender, widthRender, 0)
  659.         grp.RenderLine(xRender, yRender, 0, heightRender)
  660.         grp.RenderLine(xRender, yRender+heightRender, widthRender+1, 0)
  661.         grp.RenderLine(xRender+widthRender, yRender, 0, heightRender)
  662.  
  663.         if self.isFinished:
  664.             grp.SetColor(self.FINISHED_COLOR)
  665.         else:
  666.             grp.SetColor(self.PROGRESS_COLOR)
  667.         grp.RenderBar(xRender + 2, yRender + 2, (self.width - 3) * self.progress / 100, heightRender - 3)      
  668.  
  669. class AchievementLastFinished(uimg.Window):
  670.  
  671.     BOARD_WIDTH = 175-38
  672.     BOARD_HEIGHT = 30
  673.    
  674.     def __init__(self):
  675.         uimg.Window.__init__(self)
  676.        
  677.         self.image_name = uimg.ImageBox()
  678.         self.image_name.SetParent(self)
  679.         self.image_name.SetPosition(0,0)
  680.         self.image_name.LoadImage("illumina/inne/tlo_osiagniecia2_1.tga")
  681.         self.image_name.Show()
  682.        
  683.         bg = uimg.TextLine()
  684.         bg.SetParent(self.image_name)
  685.         bg.SetPosition(0, 4)
  686.         bg.SetHorizontalAlignCenter()
  687.         bg.SetWindowHorizontalAlignCenter()
  688.         bg.Show()
  689.         self.Background = bg
  690.        
  691.         self.image_points = uimg.ImageBox()
  692.         self.image_points.SetParent(self)
  693.         self.image_points.SetPosition(179,0)
  694.         self.image_points.LoadImage("illumina/inne/tlo_osiagniecia2_2.tga")
  695.         self.image_points.Show()
  696.        
  697.         points_bg = uimg.TextLine()
  698.         points_bg.SetParent(self.image_points)
  699.         points_bg.SetPosition(0, 4)
  700.         points_bg.SetHorizontalAlignCenter()
  701.         points_bg.SetWindowHorizontalAlignCenter()
  702.         points_bg.Show()
  703.         self.Points = points_bg
  704.        
  705.     #   self.SetSize(self.BOARD_WIDTH+38, self.BOARD_HEIGHT)
  706.        
  707.     def SetText(self, text):
  708.         tmpText = text
  709.     #   if len(text) > 22:
  710.     #       tmpText = '|cffa08784%s...' % text[:22]        
  711.     #   self.Background.SetToolTipText(text)
  712.         self.Background.SetText(tmpText)
  713.        
  714.     def SetPoints(self, points):           
  715.         self.Points.SetText('|cffa07970+%d' % points)
  716.        
  717.     def __del__(self):
  718.         uimg.Window.__del__(self)
  719.        
  720.     def Open(self, parent, x, y):
  721.         self.SetParent(parent)
  722.         self.SetPosition(x, y)
  723.         self.SetWindowHorizontalAlignCenter()
  724.         self.Show()
  725.    
  726. class FinishedAchievementDialog(uimg.ScriptWindow):
  727.    
  728.     def __init__(self):
  729.         uimg.ScriptWindow.__init__(self)
  730.         self.__LoadDialog()
  731.  
  732.     def __del__(self):
  733.         uimg.ScriptWindow.__del__(self)
  734.  
  735.     def __LoadDialog(self):
  736.         try:
  737.             PythonScriptLoader = uimg.PythonScriptLoader()
  738.             PythonScriptLoader.LoadScriptFile(self, "UIScript/Achievement_finished_dialog.py")
  739.  
  740.         except:
  741.             import exception
  742.             exception.Abort("FinishedAchievementDialog.LoadDialog.BindObject")
  743.            
  744.         try:
  745.             self.firstLine = self.GetChild("FirstLine")
  746.             self.secondLine = self.GetChild("SecondLine")
  747.             self.thirdLine = self.GetChild("ThirdLine")
  748.         except:
  749.             import exception
  750.             exception.Abort("FinishedAchievementDialog.LoadDialog.BindObject")
  751.            
  752.     def SetFirstLineText(self, text):
  753.         self.firstLine.SetText(text)
  754.        
  755.     def SetSecondLineText(self, text):
  756.         if len(text) > 22:
  757.             text = '|cffa08784%s...' % text[:22]
  758.         self.secondLine.SetText(text)
  759.        
  760.     def SetThirdLineText(self, text):
  761.         self.thirdLine.SetText(text)
  762.  
  763.     def Open(self, waitTime):
  764.         self.endTime = time.clock() + waitTime
  765.         self.Show()    
  766.  
  767.     def Close(self):
  768.         self.Hide()
  769.  
  770.     def Destroy(self):
  771.         self.Hide()
  772.        
  773.     def OnUpdate(self):
  774.         lastTime = max(0, self.endTime - time.clock())
  775.         if 0 == lastTime:
  776.             self.Close()
  777.        
  778. #   def OnPressExitKey(self):
  779. #       self.Close()
  780. #       return TRUE
  781.        
  782. class AchievementShopWindow(uimg.ScriptWindow):
  783.  
  784.     def __init__(self):
  785.         uimg.ScriptWindow.__init__(self)
  786.         self.isLoaded = False
  787.        
  788.     def __LoadWindow(self):
  789.         try:
  790.             PythonScriptLoader = uimg.PythonScriptLoader()
  791.             PythonScriptLoader.LoadScriptFile(self, "UIScript/AchievementShop.py")
  792.  
  793.         except:
  794.             import exception
  795.             exception.Abort("AchievementShopWindow.LoadDialog.BindObject")
  796.            
  797.         self.categorys = [
  798.             ["|cffe6d0a2Bronie", 1],
  799.             ["|cffe6d0a2Zbroje", 2],
  800.             ["|cffe6d0a2Inne", 3],
  801.             ["|cffe6d0a2Inne2", 4],
  802.             ["|cffe6d0a2Inne3", 5],
  803.         ]
  804.    
  805.         self.arrows = {
  806.             'items' : 1,
  807.             'categorys' : 0,
  808.         }
  809.        
  810.         self.category = 0
  811.    
  812.         self.BindObjects()
  813.         self.BindEvents()
  814.         self.isLoaded = True
  815.        
  816.     def BindObjects(self):
  817.         self.board = self.GetChild("board")
  818.         self.elements = {
  819.             'items' : {
  820.                 'bg' : self.GetChild("bgItems"),
  821.                 'rightArrow' : self.GetChild("ItemsRightArrow"),
  822.                 'leftArrow' : self.GetChild("ItemsLeftArrow"),
  823.                 'pageNr' : self.GetChild("PageNumber"),
  824.                 'box_0' : ItemBox(),
  825.                 'box_1' : ItemBox(),
  826.                 'box_2' : ItemBox(),
  827.                 'box_3' : ItemBox(),
  828.                 'box_4' : ItemBox(),
  829.                 'box_5' : ItemBox(),
  830.                 'box_6' : ItemBox(),
  831.                 'box_7' : ItemBox(),
  832.                 'box_8' : ItemBox(),
  833.             },
  834.             'categorys' : {
  835.                 'bg' : self.GetChild("bgCategorys"),
  836.                 'upArrow' : self.GetChild("CategorysUpArrow"),
  837.                 'downArrow' : self.GetChild("CategorysDownArrow"),
  838.             },
  839.             'achievementPoints' : self.GetChild("APSlot"),
  840.         }
  841.        
  842.     def BindEvents(self):
  843.         self.board.SetCloseEvent(uimg.__mem_func__(self.Close))
  844.        
  845.         self.elements['items']['box_0'].Open(self.elements['items']['bg'], 3+10, 18)
  846.         self.elements['items']['box_1'].Open(self.elements['items']['bg'], 3+10+200+10, 18)
  847.         self.elements['items']['box_2'].Open(self.elements['items']['bg'], 3+10+(200+10)*2, 18)
  848.         self.elements['items']['box_3'].Open(self.elements['items']['bg'], 3+10, 18+122)
  849.         self.elements['items']['box_4'].Open(self.elements['items']['bg'], 3+10+200+10, 18+122)
  850.         self.elements['items']['box_5'].Open(self.elements['items']['bg'], 3+10+(200+10)*2, 18+122)
  851.         self.elements['items']['box_6'].Open(self.elements['items']['bg'], 3+10, 18+122*2)
  852.         self.elements['items']['box_7'].Open(self.elements['items']['bg'], 3+10+200+10, 18+122*2)
  853.         self.elements['items']['box_8'].Open(self.elements['items']['bg'], 3+10+(200+10)*2, 18+122*2)
  854.        
  855.         self.elements['categorys']['upArrow'].SetEvent(uimg.__mem_func__(self.__OnClickArrowButton), 'CATEGORY_UP')
  856.         self.elements['categorys']['downArrow'].SetEvent(uimg.__mem_func__(self.__OnClickArrowButton), 'CATEGORY_DOWN')
  857.         self.elements['items']['rightArrow'].SetEvent(uimg.__mem_func__(self.__OnClickArrowButton), 'ITEMS_RIGHT')
  858.         self.elements['items']['leftArrow'].SetEvent(uimg.__mem_func__(self.__OnClickArrowButton), 'ITEMS_LEFT')
  859.        
  860.     def __OnClickArrowButton(self, arrow):
  861.         if arrow == 'CATEGORY_UP':
  862.             self.arrows['categorys'] -= 1
  863.             self.RefreshCategorys()
  864.         elif arrow == 'CATEGORY_DOWN':
  865.             self.arrows['categorys'] += 1
  866.             self.RefreshCategorys()
  867.         elif arrow == 'ITEMS_LEFT':
  868.             self.arrows['items'] -= 1
  869.             self.RefreshItems()
  870.         elif arrow == 'ITEMS_RIGHT':
  871.             self.arrows['items'] += 1
  872.             self.RefreshItems()
  873.        
  874.     def RefreshCategorys(self):
  875.         try:
  876.             for i in xrange(12):
  877.                 self.elements['categorys']['category_%d' % i].Hide()
  878.         except:
  879.             pass
  880.         try:
  881.             for i in xrange(min(12, len(self.categorys))):
  882.                 scrolledId = i + self.arrows['categorys']
  883.                 self.elements['categorys']['category_%d' % i] = self.CreateCategoryButton(self.elements['categorys']['bg'], 0, 35+30*i, self.categorys[scrolledId][0], self.SetCategory, self.categorys[scrolledId][1])
  884.                 self.elements['categorys']['category_%d' % i].SetWindowHorizontalAlignCenter()
  885.                 if (self.category - 1) == i:
  886.                     self.elements['categorys']['category_%d' % i].Down()
  887.                 self.elements['categorys']['category_%d' % i].Show()
  888.         except:
  889.             pass
  890.            
  891.         if (len(self.categorys) > 12):
  892.             if (self.arrows['categorys'] <= 0):
  893.                 self.elements['categorys']['downArrow'].Show()
  894.                 self.elements['categorys']['upArrow'].Hide()
  895.             elif (self.arrows['categorys']+12 < len(self.categorys)):
  896.                 self.elements['categorys']['upArrow'].Show()
  897.                 self.elements['categorys']['downArrow'].Show()
  898.             elif (self.arrows['categorys']+12 >= len(self.categorys)):
  899.                 self.elements['categorys']['downArrow'].Hide()
  900.                 self.elements['categorys']['upArrow'].Show()
  901.         else:
  902.             self.elements['categorys']['upArrow'].Hide()
  903.             self.elements['categorys']['downArrow'].Hide()
  904.            
  905.     def CreateCategoryButton(self, parent, x, y, text, func, arg):
  906.         button = uimg.RadioButton()
  907.         button.SetParent(parent)
  908.         button.SetUpVisual("illumina/inne/btn_kod2_long_01.tga")
  909.         button.SetOverVisual("illumina/inne/btn_kod2_long_02.tga")
  910.         button.SetDownVisual("illumina/inne/btn_kod2_long_03.tga")
  911.         button.SetText(text)
  912.         button.SetEvent(uimg.__mem_func__(func), arg)
  913.         button.SetPosition(x, y)
  914.         button.Show()
  915.         return button
  916.  
  917.     def SetCategory(self, cat):
  918.         self.category = cat
  919.         self.arrows['items'] = 1
  920.         self.RefreshItems()
  921.         self.RefreshCategorys()
  922.        
  923.     def RefreshItems(self):
  924.         currentPage = self.arrows['items']
  925.         for i in xrange(9):
  926.             self.elements['items']['box_%d' % i].Hide()
  927.  
  928.         try:
  929.             for i in xrange(min(9, len(constInfo.Achievements['achievementshop'][self.category])-currentPage*9+9)):
  930.                 curItem = constInfo.Achievements['achievementshop'][self.category][i+(currentPage-1)*9]
  931.                 self.elements['items']['box_%d' % i].SetContent(curItem[0], curItem[1], curItem[2])
  932.                 self.elements['items']['box_%d' % i].Show()
  933.         except:
  934.             self.elements['items']['rightArrow'].Hide()
  935.             self.elements['items']['leftArrow'].Hide()
  936.             self.elements['items']['pageNr'].Hide()
  937.             return
  938.            
  939.         maxPage = math.ceil(float(len(constInfo.Achievements['achievementshop'][self.category]))/float(9))
  940.         if maxPage >= 1:
  941.             self.elements['items']['pageNr'].SetText('|cffa07970%d/%d' % (currentPage, maxPage))
  942.             self.elements['items']['pageNr'].Show()
  943.         else:
  944.             self.elements['items']['pageNr'].Hide()
  945.        
  946.         if currentPage * 9 >= len(constInfo.Achievements['achievementshop'][self.category]):
  947.             self.elements['items']['rightArrow'].Hide()
  948.         else:
  949.             self.elements['items']['rightArrow'].Show()
  950.  
  951.         if currentPage > 1:
  952.             self.elements['items']['leftArrow'].Show()
  953.         else:
  954.             self.elements['items']['leftArrow'].Hide()
  955.    
  956.     def OnUpdate(self):
  957.         self.elements['achievementPoints'].SetText("|cfff8d090%d Punkt?w" % constInfo.Achievements['POINTS'])
  958.        
  959.     def OnPressEscapeKey(self):
  960.         self.Close()
  961.         return TRUE
  962.    
  963.     def __del__(self):
  964.         uimg.ScriptWindow.__del__(self)
  965.        
  966.     def Close(self):
  967.         self.Hide()
  968.        
  969.     def Open(self):
  970.         if not self.isLoaded:
  971.             self.__LoadWindow()
  972.  
  973.         self.SetCategory(1)
  974.         self.RefreshCategorys()
  975.         self.SetCenterPosition()
  976.         self.SetTop()
  977.         self.Show()
  978.  
  979. class ItemBox(uimg.ScriptWindow):
  980.    
  981.     def __init__(self):
  982.         uimg.ScriptWindow.__init__(self)
  983.         self.id = 0
  984.         self.data = [0, 0]
  985.         self.isLoaded = False
  986.        
  987.     def __LoadWindow(self):
  988.         try:
  989.             PythonScriptLoader = uimg.PythonScriptLoader()
  990.             PythonScriptLoader.LoadScriptFile(self, "UIScript/AchievementShop_ItemBox.py")
  991.  
  992.         except:
  993.             import exception
  994.             exception.Abort("AchievementShop_ItemBox.LoadDialog.BindObject")
  995.            
  996.         self.itemName = self.GetChild("ItemName")
  997.         self.itemIcon = self.GetChild("ItemIcon")
  998.         self.itemPrice = self.GetChild("ItemPrice")
  999.         self.itemAmount = self.GetChild("ItemAmount")
  1000.         self.buyButton = self.GetChild("BuyButton")
  1001.         self.toolTip = uiToolTip.ItemToolTip()
  1002.         self.toolTip.HideToolTip()
  1003.        
  1004.         self.itemIcon.SAFE_SetStringEvent("MOUSE_OVER_IN", self.toolTip.ShowToolTip)
  1005.         self.itemIcon.SAFE_SetStringEvent("MOUSE_OVER_OUT", self.toolTip.HideToolTip)
  1006.        
  1007.         self.BuyQuestion = uiCommon.QuestionDialog()
  1008.         self.BuyQuestion.SetAcceptEvent(lambda arg = TRUE: self.AnswerBuyItem(arg))
  1009.         self.BuyQuestion.SetCancelEvent(lambda arg = FALSE: self.AnswerBuyItem(arg))
  1010.        
  1011.         self.buyButton.SetEvent(uimg.__mem_func__(self.__OnClickBuyButton))
  1012.         self.isLoaded = True
  1013.        
  1014.     def SetContent(self, id, vnum, price):
  1015.         self.id = id
  1016.         self.data = [vnum, price]
  1017.         item.SelectItem(vnum)
  1018.        
  1019.         self.itemName.SetText("|cffa07970" + item.GetItemName())
  1020.         self.itemIcon.LoadImage(item.GetIconImageFileName())
  1021.         self.itemIcon.SetPosition(35, (46,32,25)[item.GetItemSize()[1]-1])
  1022.         self.itemIcon.SetScale(1, (1,1,0.8)[item.GetItemSize()[1]-1])
  1023.         self.itemPrice.SetText('|cffa08784Kosztuje: |cffa07970%d %s' % (price, "|cffa08784Pkt"))
  1024.         self.itemAmount.KillFocus()
  1025.        
  1026.         if item.IsFlag(4) == 1:
  1027.             self.GetChild("ItemAmountSlot").Show()
  1028.         else:
  1029.             self.GetChild("ItemAmountSlot").Hide()
  1030.        
  1031.         self.toolTip.ClearToolTip()
  1032.         self.toolTip.AddItemData(vnum, [0,0,0])
  1033.         self.toolTip.HideToolTip()
  1034.        
  1035.     def __OnClickBuyButton(self):
  1036.         self.itemAmount.KillFocus()
  1037.         amount = self.itemAmount.GetText()[10]
  1038.    
  1039.  
  1040.         if amount == '1':
  1041.             self.BuyQuestion.SetText("|cffa08784Czy chcesz kupi? %s |cffa08784za |cffa07970%d %s?" % (self.itemName.GetText(), self.data[1], "|cffa08784Punkt?w"))
  1042.         else:
  1043.             self.BuyQuestion.SetText("|cffa08784Czy chcesz kupi? %sx %s |cffa08784za |cffa07970%d %s?" % (amount, self.itemName.GetText(), self.data[1]*int(amount), "|cffa08784Punkt?w"))
  1044.         self.BuyQuestion.Open()
  1045.        
  1046.     def AnswerBuyItem(self, arg):
  1047.         if arg:
  1048.             constInfo.Achievements['QCMD'] = 'BUY_ITEM#%d#%s' % (self.id, self.itemAmount.GetText())
  1049.             event.QuestButtonClick(constInfo.Achievements['QID'])
  1050.         self.BuyQuestion.Close()
  1051.        
  1052.     def OnUpdate(self):
  1053.         if not self.itemAmount.IsFocus() and (self.itemAmount.GetText() == '' or self.itemAmount.GetText() == '0'):
  1054.             self.itemAmount.SetText('1')
  1055.        
  1056.     def __del__(self):
  1057.         uimg.ScriptWindow.__del__(self)
  1058.  
  1059.     def Open(self, parent, x, y):
  1060.         if not self.isLoaded:
  1061.             self.__LoadWindow()
  1062.            
  1063.         self.SetParent(parent)
  1064.         self.SetPosition(x, y)
  1065.         self.SetTop()
  1066.         self.Show()
Add Comment
Please, Sign In to add comment