Exemple #1
0
class NormalGUI(Manager):
    def __init__(self):
        friendBtn = HighlightedButton("",
                                      on_release=self.openFriends,
                                      width=32,
                                      height=32,
                                      path='btn_friendwindow')
        ignoreBtn = HighlightedButton("",
                                      on_release=self.openIgnores,
                                      width=32,
                                      height=32,
                                      path='btn_ignorewindow')
        #meneBtn = HighlightedButton("",on_release=self.openMenes,width=50,height=50,path='es')
        meneBtn = HighlightedButton("",
                                    on_release=self.openMenes,
                                    width=50,
                                    height=50,
                                    path='menes')
        fightBtn = HighlightedButton("",
                                     on_release=self.openMenes,
                                     width=50,
                                     height=50,
                                     path='es')
        if g.latencyType == PING_TYPE_GREEN:
            path = 'ping_green'
        elif g.latencyType == PING_TYPE_YELLOW:
            path = 'ping_yellow'
        else:
            path = 'ping_red'
        self.latencyBtn = HoverGraphic(width=15,
                                       height=32,
                                       path=path,
                                       hover=onHover,
                                       hoveringType=HOVERING_PING)
        guildBtn = HighlightedButton("",
                                     on_release=self.openGuild,
                                     width=32,
                                     height=32,
                                     path='guild')
        settingsBtn = HighlightedButton("",
                                        on_release=self.openSettings,
                                        width=32,
                                        height=32,
                                        path='settings')

        self.mailBtn = HighlightedButton("",
                                         on_release=self.openMail,
                                         width=32,
                                         height=32,
                                         path='mail')
        bagBtn = HoverGraphic(width=32,
                              height=32,
                              path='bag',
                              hover=onHover,
                              hoveringType=HOVERING_BAG,
                              showHighlight=True)
        self.horzCont = HorizontalContainer(content=[
            friendBtn, ignoreBtn, meneBtn, fightBtn, guildBtn, self.latencyBtn,
            settingsBtn, bagBtn
        ],
                                            align=VALIGN_BOTTOM)
        Manager.__init__(self,
                         self.horzCont,
                         window=g.screen,
                         batch=g.guiBatch,
                         is_movable=False,
                         anchor=ANCHOR_BOTTOM,
                         offset=(0, 20),
                         theme=g.theme)
        if len(g.mails) > 0:
            self.addMail()

    def setPos(self, x, y):
        self.set_position(x, y)

    def openGuild(self, event):
        if g.guildWindowOpened:
            g.gameEngine.graphics.guildWindow.delete(None)
        else:
            g.gameEngine.graphics.initGuildWindow()

    def openMail(self, event):
        if g.postWindowOpened:
            g.gameEngine.graphics.postWindow.delete(None)
        else:
            g.gameEngine.graphics.initPostWindow()

    def addMail(self):
        found = False
        for c in self.horzCont._content:
            if c._path[0] == 'mail':
                found = True
        if not found:
            self.horzCont.add(self.mailBtn)

    def removeMail(self):
        found = False
        for c in self.horzCont._content:
            if c._path[0] == 'mail':
                found = True
        if found:
            self.horzCont.remove(self.mailBtn)

    def refreshLatencybar(self):
        if g.latencyType == PING_TYPE_GREEN:
            self.latencyBtn._path = 'ping_green'
        elif g.latencyType == PING_TYPE_YELLOW:
            self.latencyBtn._path = 'ping_yellow'
        else:
            self.latencyBtn._path = 'ping_red'
        self.latencyBtn.reload()
        self.latencyBtn.reset_size()

    def delete(self):
        super(Manager, self).delete()

    def openMenes(self, event):
        if g.meneWindowOpened:
            g.gameEngine.graphics.meneWindow.delete(None)
        else:
            g.gameEngine.graphics.initMeneWindow()

    def openSettings(self, event):
        g.gameEngine.graphics.closeAllWindows()
        if g.escWindowOpened:
            g.gameEngine.graphics.escWindow.delete(None)
            g.escWindowOpened = False
        else:
            if g.settingsWindowOpened:
                g.settingsWindowOpened = False
                g.gameEngine.graphics.settingsWindow.delete(None)
            g.escWindowOpened = True
            g.gameEngine.graphics.initEscWindow()

    def printLatency(self, event):
        pass
        #constructText("Ping is "+str(int(g.latency))+' ms.',g.helpColor)
        #g.chatLog+='\n{background_color '+str(g.postBgColor)+'}{color '+str(g.helpColor)+'}'
        #g.chatLog+="Ping is "+str(int(g.latency))+' ms.'
        #g.chatLog+='\n'
        #checkChatLogLength()
        #g.gameEngine.graphics.chat.textArea.update_text(g.chatLog)
    def openFriends(self, event):
        if g.friendWindowOpened:
            g.gameEngine.graphics.friendWindow.delete(None)
        else:
            g.gameEngine.graphics.initFriendWindow()

    def openIgnores(self, event):
        if g.ignoreWindowOpened:
            g.gameEngine.graphics.ignoreWindow.delete(None)
        else:
            g.gameEngine.graphics.initIgnoreWindow()
class TestHorizontalContainer(TestPygletGUI):
    """
    This test case tests basic functionality of
    an horizontal container.
    """

    def setUp(self):
        super().setUp()

        self.container = HorizontalContainer([Viewer(width=50, height=50),
                                           Viewer(width=50, height=50)])

        self.manager = Manager(self.container, window=self.window, batch=self.batch, theme=self.theme)

    def _test_content_position(self):
        """
        Tests the position of the two widgets within the container.
        """
        # first widget x is the left x (container.x)
        self.assertEqual(self.container.content[0].x,
                         self.container.x)

        # second widget x is the left x (container.x + container.content[0].width)
        # plus the padding (self.container.padding)
        self.assertEqual(self.container.content[1].x,
                         self.container.x + self.container.content[0].width
                         + self.container.padding)

    def test_top_down_draw(self):
        """
        Tests that the manager's size was set according to the child size.
        """
        # manager size is correct
        self.assertEqual(self.manager.width, 100 + self.container.padding)
        self.assertEqual(self.manager.height, 50)

        # widget is centered in the window
        self.assertEqual(self.container.x, self.window.width/2 - self.container.width/2)
        self.assertEqual(self.container.y, self.window.height/2 - self.container.height/2)

        self._test_content_position()

    def test_bottom_up_draw(self):
        """
        Tests that the manager's size is modified
        if we set a new size to the widget.
        """
        self.container.content[0].width = 60
        self.container.content[0].height = 60
        self.container.content[0].parent.reset_size()

        # manager width was set
        self.assertEqual(self.manager.width, 110 + self.container.padding)
        # container height was set
        self.assertEqual(self.container.height, 60)

        # container and manager were re-centered in the window
        self.assertEqual(self.container.x, self.window.width/2 - self.container.width/2)
        self.assertEqual(self.manager.y, self.window.height/2 - self.manager.height/2)

        self._test_content_position()

    def test_add_widget(self):
        self.container.add(Viewer(width=50, height=50))

        self.assertEqual(self.manager.width, 150 + 2*self.container.padding)
        self.assertEqual(self.manager.height, 50)

        self._test_content_position()

    def test_remove_widget(self):
        self.container.remove(self.container.content[0])

        self.assertEqual(self.manager.width, 50 + self.container.padding)
        self.assertEqual(self.manager.height, 50)

    def tearDown(self):
        self.manager.delete()
        super().tearDown()
class AbilityButtons(Manager):
    def __init__(self,
                 ability1=None,
                 ability2=None,
                 ability3=None,
                 ability4=None):

        self.a1 = ability1
        self.a2 = ability2
        self.a3 = ability3
        self.a4 = ability4
        #self.abilityCont=[]
        abilityButtons = []
        for i in xrange(4):
            abilityButtons.append(
                Graphic(width=100, height=100, path='abilityoutline'))
        self.abilityCont = HorizontalContainer(content=abilityButtons,
                                               align=VALIGN_BOTTOM)

        Manager.__init__(self,
                         self.abilityCont,
                         window=g.screen,
                         batch=g.guiBatch,
                         is_movable=False,
                         anchor=ANCHOR_BOTTOM,
                         offset=(0, 0),
                         theme=g.theme)
        self.constructAbilityButtons()

    def setPos(self, x, y):
        self.set_position(x, y)

    def delete(self):
        super(Manager, self).delete()

    def changeDisableds(self, disabled=True):
        try:
            for ability in self.abilityCont.content:
                ability.changeDisable(disabled)
        except:
            return

    def updateAbilityButtons(self,
                             ability1=None,
                             ability2=None,
                             ability3=None,
                             ability4=None):
        self.a1 = ability1
        self.a2 = ability2
        self.a3 = ability3
        self.a4 = ability4
        #for i in reversed(range(len(self.abilityCont.content))):
        #    self.abilityCont.remove(self.abilityCont.content[0])
        self.constructAbilityButtons()
        self.abilityCont.layout()

    def constructAbilityButtons(self):
        for i in reversed(range(len(self.abilityCont.content))):
            self.abilityCont.remove(self.abilityCont.content[0])
        if self.a1 is not None:
            self.abilityCont.add(
                AbilityButton(width=100,
                              height=100,
                              argument=self.a1.id,
                              on_press=sendAttack,
                              texture=g.gameEngine.resManager.abilities[
                                  self.a1.spriteName],
                              outline='abilityoutline',
                              hover=onHover,
                              hoveringType=HOVERING_ABILITY,
                              arguments={
                                  'name': self.a1.name,
                                  'type':
                                  getAbilityTypeName(self.a1.abilityType),
                                  'info': self.a1.infotext,
                                  "args": (self.a1.power, self.a1.length)
                              }))
        else:
            self.abilityCont.add(
                Graphic(width=100, height=100, path='abilityoutline'))
        if self.a2 is not None:
            self.abilityCont.add(
                AbilityButton(width=100,
                              height=100,
                              argument=self.a2.id,
                              on_press=sendAttack,
                              texture=g.gameEngine.resManager.abilities[
                                  self.a2.spriteName],
                              outline='abilityoutline',
                              hover=onHover,
                              hoveringType=HOVERING_ABILITY,
                              arguments={
                                  'name': self.a2.name,
                                  'type':
                                  getAbilityTypeName(self.a2.abilityType),
                                  'info': self.a2.infotext,
                                  "args": (self.a2.power, self.a2.length)
                              }))
        else:
            self.abilityCont.add(
                Graphic(width=100, height=100, path='abilityoutline'))
        if self.a3 is not None:
            self.abilityCont.add(
                AbilityButton(width=100,
                              height=100,
                              argument=self.a3.id,
                              on_press=sendAttack,
                              texture=g.gameEngine.resManager.abilities[
                                  self.a3.spriteName],
                              outline='abilityoutline',
                              hover=onHover,
                              hoveringType=HOVERING_ABILITY,
                              arguments={
                                  'name': self.a3.name,
                                  'type':
                                  getAbilityTypeName(self.a3.abilityType),
                                  'info': self.a3.infotext,
                                  "args": (self.a3.power, self.a3.length)
                              }))
        else:
            self.abilityCont.add(
                Graphic(width=100, height=100, path='abilityoutline'))
        if self.a4 is not None:
            self.abilityCont.add(
                AbilityButton(width=100,
                              height=100,
                              argument=self.a4.id,
                              on_press=sendAttack,
                              texture=g.gameEngine.resManager.abilities[
                                  self.a4.spriteName],
                              outline='abilityoutline',
                              hover=onHover,
                              hoveringType=HOVERING_ABILITY,
                              arguments={
                                  'name': self.a4.name,
                                  'type':
                                  getAbilityTypeName(self.a4.abilityType),
                                  'info': self.a4.infotext,
                                  "args": (self.a4.power, self.a4.length)
                              }))
        else:
            self.abilityCont.add(
                Graphic(width=100, height=100, path='abilityoutline'))
        if g.esAmount > 0 and not iHasMene(spriteName=g.enemyMene.spriteName):
            disabled = False
        else:
            disabled = True
        self.abilityCont.add(
            AbilityButton(
                width=50,
                height=50,
                argument=Items["es"]["id"],
                disabled=disabled,
                on_press=useES,
                texture=g.gameEngine.resManager.items[Items["es"]["sprite"]],
                outline='abilityoutline',
                hover=onHover,
                hoveringType=HOVERING_ABILITY,
                arguments={
                    'name': Items["es"]["name"],
                    'info': Items["es"]["info"],
                    "args": ()
                }))
        self.abilityCont.add(
            AbilityButton(width=50,
                          height=50,
                          on_press=openMeneSelector,
                          path='mymenes',
                          outline='abilityoutline',
                          hover=onHover,
                          hoveringType=HOVERING_ABILITY,
                          arguments={
                              'name': "Change Mene",
                              'info':
                              "Don't have balls do play till death?? :D",
                              "args": ()
                          }))
        self.abilityCont.add(
            AbilityButton(width=50,
                          height=50,
                          on_press=leaveMatchStartConfirm,
                          path='leavematch',
                          outline='abilityoutline',
                          hover=onHover,
                          hoveringType=HOVERING_ABILITY,
                          arguments={
                              'name': "Leave Match",
                              'info': "Run away :DD pussy :D",
                              "args": ()
                          }))
Exemple #4
0
class TestHorizontalContainer(TestPygletGUI):
    """
    This test case tests basic functionality of
    an horizontal container.
    """

    def setUp(self):
        super(TestHorizontalContainer, self).setUp()

        self.container = HorizontalContainer([Viewer(width=50, height=50),
                                           Viewer(width=50, height=50)])

        self.manager = Manager(self.container, window=self.window, batch=self.batch, theme=self.theme)

    def _test_content_position(self):
        """
        Tests the position of the two widgets within the container.
        """
        # first widget x is the left x (container.x)
        self.assertEqual(self.container.content[0].x,
                         self.container.x)

        # second widget x is the left x (container.x + container.content[0].width)
        # plus the padding (self.container.padding)
        self.assertEqual(self.container.content[1].x,
                         self.container.x + self.container.content[0].width
                         + self.container.padding)

    def test_top_down_draw(self):
        """
        Tests that the manager's size was set according to the child size.
        """
        # manager size is correct
        self.assertEqual(self.manager.width, 100 + self.container.padding)
        self.assertEqual(self.manager.height, 50)

        # widget is centered in the window
        self.assertEqual(self.container.x, self.window.width//2 - self.container.width//2)
        self.assertEqual(self.container.y, self.window.height//2 - self.container.height//2)

        self._test_content_position()

    def test_bottom_up_draw(self):
        """
        Tests that the manager's size is modified
        if we set a new size to the widget.
        """
        self.container.content[0].width = 60
        self.container.content[0].height = 60
        self.container.content[0].parent.reset_size()

        # manager width was set
        self.assertEqual(self.manager.width, 110 + self.container.padding)
        # container height was set
        self.assertEqual(self.container.height, 60)

        # container and manager were re-centered in the window
        self.assertEqual(self.container.x, self.window.width//2 - self.container.width//2)
        self.assertEqual(self.manager.y, self.window.height//2 - self.manager.height//2)

        self._test_content_position()

    def test_add_widget(self):
        self.container.add(Viewer(width=50, height=50))

        self.assertEqual(self.manager.width, 150 + 2*self.container.padding)
        self.assertEqual(self.manager.height, 50)

        self._test_content_position()

    def test_remove_widget(self):
        self.container.remove(self.container.content[0])

        self.assertEqual(self.manager.width, 50 + self.container.padding)
        self.assertEqual(self.manager.height, 50)

    def tearDown(self):
        self.manager.delete()
        super(TestHorizontalContainer, self).tearDown()
Exemple #5
0
class MeneWindow(Manager):
    def __init__(self):
        t1=time.time()*1000
        g.meneWindowOpened = True
        label1=Label("My Menes",bold=True,color=g.loginFontColor)
        closeBtn =HighlightedButton("",on_release=self.delete,width=19,height=19,path='delete')
        self.meneCont= []
        self.menes=[]
        self.established=False
        for c in meneList:
            self.menes.append({"name":c.name,
                               "hp":c.hp,
                               "maxhp":c.maxhp,
                               "xp":c.xp,
                               "level":c.level,
                               "power":c.power,
                               "id":c.ID,
                               "defense":c.defense,
                               "speed":c.speed,
                               "attack1":c.attack1,
                               "attack2":c.attack2,
                               "attack3":c.attack3,
                               "attack4":c.attack4,
                               "sprite":c.spriteName,
                               "defaultmene":c.defaultMene})
        #self.menes = [{"name":"Hitler","hp":100,"level":1,"power":50,"defense":40,"speed":60,"sprite":'americanbear'},{"name":"Stalin","hp":100,"level":1,"power":50,"defense":40,"speed":60,"sprite":'lorslara'},{"name":"Ebin","hp":100,"level":1,"power":50,"defense":40,"speed":60,"sprite":'squadlider'},{"name":"Mao","hp":100,"level":1,"power":50,"defense":40,"speed":60,"sprite":'mongolbear'},{"name":"Uusi mene","hp":100,"level":1,"power":50,"defense":40,"speed":60,"sprite":'mongol'},{"name":"Hintti","hp":50,"level":15,"power":60,"defense":50,"speed":70,'sprite':'uusimene'}]
        self.selectedMene=getDefaultMeneID()
        
        for i in range(6):
            if i < len(self.menes):
                if self.menes[i]["id"]==self.selectedMene:
                    menebutton = Button("",on_press=self.updateWindow,width=64,height=64, argument=self.menes[i]["id"],texture=g.gameEngine.resManager.meneSprites[self.menes[i]["sprite"]]["portrait"],is_pressed=True,outline='menewindowbutton')
                else:
                    menebutton = Button("",on_press=self.updateWindow,width=64,height=64, argument=self.menes[i]["id"],texture=g.gameEngine.resManager.meneSprites[self.menes[i]["sprite"]]["portrait"],is_pressed=False,outline='menewindowbutton')
                nameLabel = Label(self.menes[i]["name"],bold=True,color=g.npcColor)
                levelLabel = Label("Lvl " + str(self.menes[i]["level"]),color=g.whiteColor,font_size=g.theme["font_size_small"])
                defaultMeneLabel=None
                if self.menes[i]["defaultmene"]==1:
                    defaultMeneLabel= Label('Default Mene',color=g.whiteColor,font_size=g.theme["font_size_small"])
                    #self.meneCont.append(HorizontalContainer(content=[menebutton,VerticalContainer(content=[nameLabel,levelLabel,defaultMeneLabel],align=HALIGN_LEFT)],align=HALIGN_CENTER))
                #else:
                self.meneCont.append(HorizontalContainer(content=[menebutton,VerticalContainer(content=[nameLabel,levelLabel,defaultMeneLabel],align=HALIGN_LEFT)],align=HALIGN_CENTER))
            else:
                
                menebutton = Button("",width=64,height=64,is_pressed=False,path='menewindowbutton',disabled=True)
                self.meneCont.append(menebutton)
       
        self.menelisting = VerticalContainer(content=[label1,VerticalContainer(content=self.meneCont,align=HALIGN_LEFT)])
        
        properties=Label("Mene Properties",bold=True,color=g.loginFontColor)
        #horzCont = HorizontalContainer(content=[properties,closeBtn])
        nameinfoLabel = Label("Name:",color=g.whiteColor)
        self.selectedNAME = Label("Uusi mene",bold=True,color=g.npcColor)
        
        levelinfoLabel = Label("Level:",color=g.whiteColor)
        self.selectedLevel = Label("0",bold=True,color=g.npcColor)
        
        hpinfoLabel = Label("HP:",color=g.whiteColor)
        self.selectedHp = Label("0",bold=True,color=g.npcColor)
        
        xpinfoLabel = Label("XP:",color=g.whiteColor)
        #self.selectedXp = Label("0",bold=True,color=g.npcColor)
        
        attackinfoLabel = Label("Power:",color=g.whiteColor)
        self.selectedAttack = Label("0",bold=True,color=g.npcColor)
        
        self.hpBar = HpBar()
        
        self.defaultButton = HighlightedButton("Set Default Mene :D",argument=None,on_release=makeDefaultMene)
        
        self.xpBar = HpBar(type="xp",height=20,width=100)
        
        defenseinfoLabel = Label("Defense:",color=g.whiteColor)
        self.selectedDefense = Label("0",bold=True,color=g.npcColor)
        
        speedinfoLabel = Label("Speed:",color=g.whiteColor)
        self.selectedSpeed = Label("0",bold=True,color=g.npcColor)
        
        #selectTheme = Theme({'uusimene': {
        #                "image": {
        #                    "source": 'uusimene_front.png'
        #                },
        #                "gui_color": [255,255,255,255]
        #            }
        #        },resources_path=g.dataPath+'/menes/'
        #    )
            
        self.picture = Graphic(texture=g.gameEngine.resManager.meneSprites['uusimene']['front'])
        abilities = ['burger', 'burger']
        #abilityTheme = self.constructAbilityTheme(abilities)
        abilityButtons=[]
        for i in xrange(4):
            #if i<len(abilities):
            #    self.abilityButtons.append(HoverGraphic(width=50,height=50,path=abilities[i],alternative=abilityTheme,outline='abilityoutline',hover=onHover,hoveringType=HOVERING_ABILITY,arguments={'name':'Burger Attack','type':'Attack','info':'Throws a burger at the enemy. Deals X damage.'}))
            #else:
            abilityButtons.append(Graphic(width=50,height=50,path='abilityoutline'))

        
        infoCont1 = VerticalContainer([nameinfoLabel,levelinfoLabel,xpinfoLabel],align=HALIGN_LEFT)
        infoCont2 = VerticalContainer([attackinfoLabel,defenseinfoLabel,speedinfoLabel],align=HALIGN_LEFT)
        statsCont1 = VerticalContainer([self.selectedNAME,self.selectedLevel,self.xpBar],align=HALIGN_LEFT)
        statsCont2 = VerticalContainer([self.selectedAttack,self.selectedDefense,self.selectedSpeed],align=HALIGN_LEFT)
        
        infoAndStatsCont = HorizontalContainer([infoCont1,statsCont1,infoCont2,statsCont2])
        
        self.abilityCont = HorizontalContainer(abilityButtons,padding=10)
        rightFrame = VerticalContainer(content=[properties,self.picture,self.hpBar,infoAndStatsCont,self.abilityCont,self.defaultButton])
        total = HorizontalContainer(content=[self.menelisting,Spacer(30,0),rightFrame,closeBtn],align=VALIGN_TOP)
        Manager.__init__(self,
            Frame(total),
            window=g.screen,
            batch=g.guiBatch,
            is_movable=False,
            anchor=ANCHOR_LEFT,
            offset=(40,int(g.SCREEN_HEIGHT*g.WINDOW_POSY_RELATIVE)),
            theme=g.theme)
        self.changeInfos(self.selectedMene)
    
    def updateWindow(self,argument):
        for c in self.meneCont:
            try:
                if c.content[0].arg!=argument and c.content[0]._is_pressed:
                    c.content[0].changeStateWithoutFnc()
            except:
                break
        for c in self.meneCont:
            try:
                if c.content[0].arg==argument and not c.content[0]._is_pressed:
                    c.content[0].changeStateWithoutFnc()
            except:
                break
        
        self.changeInfos(argument)
    def constructAbilityButtons(self,a1,a2,a3,a4):
        if a1 is not None:
            self.abilityCont.add(HoverGraphic(width=50,height=50,outline='abilityoutline',hover=onHover,texture=g.gameEngine.resManager.abilities[a1.spriteName],hoveringType=HOVERING_ABILITY,arguments={'name':a1.name,'type':getAbilityTypeName(a1.abilityType),'info':a1.infotext,"args":(a1.power, a1.length)}))
        else:
            self.abilityCont.add(Graphic(width=50,height=50,path='abilityoutline'))
        if a2 is not None:
            self.abilityCont.add(HoverGraphic(width=50,height=50,outline='abilityoutline',texture=g.gameEngine.resManager.abilities[a2.spriteName],hover=onHover,hoveringType=HOVERING_ABILITY,arguments={'name':a2.name,'type':getAbilityTypeName(a2.abilityType),'info':a2.infotext,"args":(a2.power, a2.length)}))
        else:
            self.abilityCont.add(Graphic(width=50,height=50,path='abilityoutline'))
        if a3 is not None:
            self.abilityCont.add(HoverGraphic(width=50,height=50,outline='abilityoutline',texture=g.gameEngine.resManager.abilities[a3.spriteName],hover=onHover,hoveringType=HOVERING_ABILITY,arguments={'name':a3.name,'type':getAbilityTypeName(a3.abilityType),'info':a3.infotext,"args":(a3.power, a3.length)}))
        else:
            self.abilityCont.add(Graphic(width=50,height=50,path='abilityoutline'))
        if a4 is not None:
            self.abilityCont.add(HoverGraphic(width=50,height=50,outline='abilityoutline',texture=g.gameEngine.resManager.abilities[a4.spriteName],hover=onHover,hoveringType=HOVERING_ABILITY,arguments={'name':a4.name,'type':getAbilityTypeName(a4.abilityType),'info':a4.infotext,"args":(a4.power, a4.length)}))
        else:
            self.abilityCont.add(Graphic(width=50,height=50,path='abilityoutline'))
        
    def changeInfos(self,ID):
        selectedMene = None
        for c in self.menes:
            if c["id"]==ID:
                
                selectedMene=c
        #print selectedMene, self.selectedMene
        if selectedMene != None and (ID!=self.selectedMene or (ID==self.selectedMene and not self.established)):
            self.selectedMene=ID
            for i in reversed(range(len(self.abilityCont.content))):
                self.abilityCont.remove(self.abilityCont.content[0])
            #self.abilityCont.unload_content()
            #for c in self.abilityCont.content:
            #    self.abilityCont.remove()
            #for abilityButton in self.abilityButtons:
            #    abilityButton.unload()
            #print self.abilityCont.__dict__
            #for abilityButton in self.abilityButtons:
            #    print abilityButton.__dict__
            #    self.abilityCont.remove(abilityButton)
            self.constructAbilityButtons(selectedMene["attack1"],selectedMene["attack2"],selectedMene["attack3"],selectedMene["attack4"])
            #self.abilityCont.load_content()
            #self.abilityCont.remove(self.abilityButtons[0])
            #self.abilityCont.add(Graphic(width=50,height=50,path='abilityoutline'),0)
            self.selectedNAME.set_text(selectedMene["name"])
            self.selectedLevel.set_text(str(selectedMene["level"]))
            #self.selectedHp.set_text(str(selectedMene["hp"])+' / '+str(selectedMene["maxhp"]))
            self.hpBar.setHP(selectedMene["hp"],selectedMene["maxhp"])
            self.xpBar.setHP(selectedMene["xp"]-selectedMene["level"]**3,(selectedMene["level"]+1)**3-selectedMene["level"]**3)
            #self.selectedXp.set_text(str(selectedMene["xp"]))
            self.selectedAttack.set_text(str(selectedMene["power"]))
            self.selectedDefense.set_text(str(selectedMene["defense"]))
            self.selectedSpeed.set_text(str(selectedMene["speed"]))
            if selectedMene["defaultmene"]==1:
                self.defaultButton._label._set_text("Dis is default mene")
            else:
                self.defaultButton._label._set_text("Set Default Mene :D")
            self.defaultButton.layout()
            self.defaultButton.arg=ID
            
            #selectTheme = Theme({selectedMene["sprite"]: {
            #            "image": {
            #                "source": selectedMene["sprite"]+'_front.png'
            #            },
            #            "gui_color": [255,255,255,255]
            #        }
            #    },resources_path=g.dataPath+'/menes/'
            #)
            #self.picture._path=selectedMene["sprite"]
            #self.picture._alt=selectTheme
            self.picture.textureTmp = g.gameEngine.resManager.meneSprites[selectedMene["sprite"]]['front']
            #self.picture.unload_graphics(False)
            self.picture.reload()
            self.picture.layout()
            self.established=True
    def delete(self,event):
        super(Manager,self).delete()
        g.meneWindowOpened = False
        if g.hoveringType==HOVERING_ABILITY:
            g.gameEngine.graphics.hoverWindow.delete(None)
        
    #def on_mouse_motion(self,x,y,dx,dy):
    #    print self._hover