예제 #1
0
 def __init__(self, closeButton=True):
     g.selectMeneWindowOpened = True
     self.currentMeneID = g.currMeneID
     self.selectMeneID = None
     self.meneCont = []
     self.meneButtons = []
     self.closeButton = closeButton
     self.constructMeneButtons()
     selectButton = HighlightedButton("Select Mene",
                                      on_release=self.selectMene,
                                      width=150,
                                      height=30)
     if closeButton:
         closeBtn = HighlightedButton("",
                                      on_release=self.delete,
                                      width=19,
                                      height=19,
                                      path='delete')
         cont = VerticalContainer(content=[
             HorizontalContainer(content=[Spacer(0, 0), closeBtn]),
             HorizontalContainer(content=self.meneCont),
             Spacer(0, 10), selectButton
         ])
     else:
         cont = VerticalContainer(content=[
             HorizontalContainer(content=self.meneCont),
             Spacer(0, 10), selectButton
         ])
     Manager.__init__(self,
                      Frame(cont),
                      window=g.screen,
                      batch=g.guiBatch,
                      is_movable=False,
                      offset=(0, 0),
                      theme=g.theme)
예제 #2
0
 def __init__(self):
     g.postWindowOpened = True
     label1 = Label("Notifications", bold=True, color=g.loginFontColor)
     closeBtn = HighlightedButton("",
                                  on_release=self.delete,
                                  width=19,
                                  height=19,
                                  path='delete')
     self.postCont = []
     #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=self.menes[0]["name"]
     for c in g.mails:
         label = Label(c["s"],
                       bold=True,
                       color=g.guiNameColor,
                       font_size=g.theme["font_size"] + 2)
         label1 = Label(c["t"][:16] + '...', color=g.whiteColor)
         deleteBtn = HighlightedButton("",
                                       on_release=self.deletemail,
                                       width=14,
                                       height=14,
                                       path='delete_alt',
                                       argument=c["id"])
         openBtn = HighlightedButton("",
                                     on_release=self.openmail,
                                     width=20,
                                     height=21,
                                     path='mailopen',
                                     argument=c["id"])
         self.postCont.append(
             VerticalContainer(content=[
                 HorizontalContainer(content=[openBtn, label, deleteBtn]),
                 label1
             ],
                               align=HALIGN_LEFT))
     self.vertCont = VerticalContainer(self.postCont, align=VALIGN_TOP)
     self.report = Document("",
                            is_fixed_size=True,
                            height=g.SCREEN_HEIGHT / 2,
                            width=g.SCREEN_WIDTH / 5)
     self.scrollable = Scrollable(content=self.vertCont,
                                  height=g.SCREEN_HEIGHT / 2,
                                  width=g.SCREEN_WIDTH / 5)
     total = HorizontalContainer(
         content=[self.scrollable, self.report, 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)
     if len(self.postCont) > 0:
         self.openmail(self.postCont[0]._content[0]._content[0].arg)
예제 #3
0
    def __init__(self):
        g.ignoreWindowOpened = True

        label1 = Label("Ignore List", bold=True, color=g.loginFontColor)
        closeBtn = HighlightedButton("",
                                     on_release=self.delete,
                                     width=19,
                                     height=19,
                                     path='delete')
        title = [label1, None, closeBtn]
        ignores = []
        for c in ignoreList:
            ignores.append(c)
        ignores.sort()
        ignoreCont = []
        for c in ignores:
            label = HighlightedButton(c,
                                      width=150,
                                      height=24,
                                      path='baroutline_btn',
                                      on_release=self.constructSelect,
                                      argument=c,
                                      align=HALIGN_LEFT,
                                      font_color=g.guiNameColor)
            ignoreCont.append(label)
            #label=Label(c,bold=True,color=g.nameColorLighter)
            #removeBtn = HighlightedButton("",on_release=self.removeIgnore,width=24,height=24,path='ignoreremove',argument=c)
            #ignoreCont.append(HorizontalContainer(content=[label,removeBtn]))
        addBtn = HighlightedButton("Ignore Player",
                                   on_release=addIgnorePopup,
                                   width=100,
                                   height=24)
        horzCont = HorizontalContainer(content=title)
        frame = Frame(
            VerticalContainer(content=[
                horzCont,
                Scrollable(height=400,
                           width=400,
                           content=VerticalContainer(content=ignoreCont,
                                                     align=HALIGN_LEFT,
                                                     padding=0)), addBtn
            ]))
        Manager.__init__(
            self,
            frame,
            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)
예제 #4
0
 def __init__(self, title, content=None, x=0, y=0, type=0):
     g.selectedWindowOpened = True
     cont = []
     self.type = type
     cont.append(Label(title, color=g.loginFontColor))
     for c in content:
         cont.append(
             HighlightedButton(c["text"],
                               on_release=c["function"],
                               width=120,
                               height=24,
                               path='empty',
                               argument=c["argument"],
                               align=HALIGN_LEFT))
     frame = Frame(VerticalContainer(content=cont,
                                     padding=0,
                                     align=HALIGN_LEFT),
                   path='frame_alternative')
     Manager.__init__(self,
                      frame,
                      window=g.screen,
                      batch=g.selectWindowBatch,
                      is_movable=False,
                      offset=(0, 0),
                      theme=g.theme)
     self.set_position(x, y - self.height)
예제 #5
0
    def __init__(self,
                 options,
                 labels=None,
                 max_height=400,
                 align=VALIGN_TOP,
                 on_select=None):
        Selector.__init__(self,
                          options,
                          labels,
                          on_select=on_select,
                          selected=options[0])
        HighlightedButton.__init__(self)

        self.max_height = max_height
        self.align = align

        self._pulldown_menu = None
예제 #6
0
    def __init__(self):
        g.reportWindowOpened = True
        getReport()
        label1 = Label("Send Ticket", bold=True, color=g.loginFontColor)
        closeBtn = HighlightedButton("",
                                     on_release=self.delete,
                                     width=19,
                                     height=19,
                                     path='delete')
        horzCont = HorizontalContainer(content=[label1, None, closeBtn])
        #self.infoLabel = Label("No reports founds")
        self.reportInput = TextInput(text="",
                                     padding=5,
                                     length=16,
                                     max_length=400,
                                     width=g.SCREEN_WIDTH / 3,
                                     height=g.SCREEN_HEIGHT / 3,
                                     multiline=True)

        clearBtn = HighlightedButton("Clear",
                                     on_release=self.clear,
                                     width=120,
                                     height=30)
        deleteBtn = HighlightedButton("Delete",
                                      on_release=self.remove,
                                      width=120,
                                      height=30)
        sendBtn = HighlightedButton("Send",
                                    on_release=self.send,
                                    width=120,
                                    height=30)
        buttons = HorizontalContainer(content=[clearBtn, deleteBtn, sendBtn])
        frame = Frame(
            VerticalContainer(content=[horzCont, self.reportInput, buttons]))

        Manager.__init__(self,
                         frame,
                         window=g.screen,
                         batch=g.guiBatch,
                         is_movable=False,
                         theme=g.theme)
        frame.expand(g.SCREEN_WIDTH / 2, height=g.SCREEN_HEIGHT / 4 * 3)
예제 #7
0
    def __init__(self, text="", ok="Ok", cancel="Cancel",
                 window=None, batch=None, group=None, theme=None,
                 on_ok=None, on_cancel=None, argument=None,offset=(0,0)):
        self.arg=argument
        def on_ok_click(_):
            if on_ok is not None:
                on_ok(self.arg)
            self.delete()

        def on_cancel_click(_):
            if on_cancel is not None:
                on_cancel(self.arg)
            self.delete()

        Manager.__init__(self, content=Frame(
            VerticalContainer([
                Label(text),
                HorizontalContainer([HighlightedButton(ok, on_release=on_ok_click),
                                     HighlightedButton(cancel, on_release=on_cancel_click)]
                )])
        ), window=window, batch=batch, group=group, theme=theme, is_movable=True,offset=offset)
예제 #8
0
    def __init__(self, text="", window=None, textcolor=None,batch=None, group=None, width=None,
                 theme=None, on_escape=None, have_focus=False,font_size=None):
        def on_ok(_):
            if on_escape is not None:
                on_escape(self)
            self.delete()

        #button = FocusButton("Ok", on_press=on_ok)
        button=HighlightedButton("Ok",on_release=on_ok,height=35,width=80)
        Manager.__init__(self, content=Frame(VerticalContainer(
                         [Label(text,color=textcolor,font_size=font_size,width=width,multiline=True), Spacer(min_height=5),button])),
                         window=window, batch=batch, group=group,
                         theme=theme, is_movable=True)
        Manager.set_next_focus(self, 1)
예제 #9
0
 def __init__(self):
     gameSettingsButton = HighlightedButton(label="Game Settings",on_release=self.gameSettings,width=120,height=30)
     settingsButton = HighlightedButton(label="Video Settings",on_release=self.settings,width=120,height=30)
     keybindingsButton = HighlightedButton(label="Keybindings",on_release=self.keybindings,width=120,height=30)
     helpButton = HighlightedButton(label="Help",on_release=self.help,width=120,height=30)
     disconnectButton = HighlightedButton(label="Disconnect",on_release=self.disconnect,width=120,height=30)
     closeButton = HighlightedButton(label="Close",on_release=self.delete,width=120,height=30)
     quitButton = HighlightedButton(label="Quit",on_release=self.onQuit,width=120,height=30)
     Manager.__init__(self,
         Frame(VerticalContainer(content=[gameSettingsButton,settingsButton,keybindingsButton,helpButton,disconnectButton,quitButton,Spacer(0,20),closeButton])),
         window=g.screen,
         batch=g.guiBatch,
         is_movable=False,
         theme=g.theme)
예제 #10
0
    def initNameMene(self):
        def sendMeneName(event):
            self.menename = self.nameInput.get_text()
            if len(self.menename) > 0:
                self.saveBtn.disabled = True

        self.naming = True
        label = Label("Name Your Mene",
                      color=g.postColor,
                      font_size=18,
                      bold=True)
        #meneTheme = Theme({g.spriteName: {
        #                "image": {
        #                    "source": g.spriteName+'_front.png'
        #                },
        #                "gui_color": [255,255,255,255]
        #            }
        #        },resources_path=g.dataPath+'/menes/'
        #)
        #picture = Graphic(g.spriteName,alternative=meneTheme)
        picture = Graphic(
            texture=g.gameEngine.resManager.meneSprites[g.spriteName]['front'])
        self.nameInput = TextInput(text="",
                                   padding=2,
                                   length=12,
                                   max_length=12,
                                   width=200,
                                   font_size=16)
        self.saveBtn = HighlightedButton(label="Save",
                                         on_release=sendMeneName,
                                         width=100,
                                         height=40,
                                         font_size=16)
        frame = Frame(VerticalContainer(content=[
            label, picture,
            HorizontalContainer([self.nameInput, self.saveBtn])
        ]),
                      path='frame_npc_talk')
        self.meneMan = Manager(frame,
                               window=self.screen,
                               batch=g.guiBatch,
                               theme=g.theme,
                               offset=(0, 0),
                               is_movable=False)
예제 #11
0
 def __init__(self):
     g.adminWindowOpened = True
     label1=Label("Admin Menu",bold=True,color=g.loginFontColor)
     closeBtn = closeBtn =HighlightedButton("",on_release=self.delete,width=19,height=19,path='delete')
     
     adminSayBtn=HighlightedButton("Admin say",on_release=self.adminSay,width=120,height=25)
     muteBtn=HighlightedButton("Mute player",on_release=self.mutePlayer,width=120,height=25)
     unmuteBtn=HighlightedButton("Unmute player",on_release=self.unmutePlayer,width=120,height=25)
     teleportBtn=HighlightedButton("Teleport player",on_release=self.teleportPlayer,width=120,height=25)
     banBtn=HighlightedButton("Ban player",on_release=self.banPlayer,width=120,height=25)
     unbanBtn=HighlightedButton("Unban player",on_release=self.unbanPlayer,width=120,height=25)
     reportBtn=HighlightedButton("Reports",on_release=self.reports,width=120,height=25)
     #addBtn = HighlightedButton("",on_release=self.addFriend,width=24,height=24,path='friendadd')
     
     horzCont = HorizontalContainer(content=[label1,closeBtn])
     frame = Frame(VerticalContainer(content=[horzCont,adminSayBtn,muteBtn,unmuteBtn,teleportBtn,banBtn,unbanBtn,reportBtn]))
     Manager.__init__(self,
         frame,
         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)
예제 #12
0
    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)
예제 #13
0
    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()
예제 #14
0
    def __init__(self):
        g.guildWindowOpened = True
        closeBtn = HighlightedButton("",
                                     on_release=self.delete,
                                     width=19,
                                     height=19,
                                     path='delete')
        if g.guildName is None:
            label1 = Label("Guild", bold=True, color=g.loginFontColor)
            horzCont = HorizontalContainer(content=[label1, None, closeBtn])
            label = Label("You are not in a guild", color=g.loginFontColor)
            createBtn = HighlightedButton("Create Guild",
                                          on_release=self.createGuild,
                                          width=120,
                                          height=25)
            frameContent = VerticalContainer(
                content=[horzCont, label, createBtn])
        else:
            label1 = Label(g.guildName, bold=True, color=g.loginFontColor)
            horzCont = HorizontalContainer(content=[label1, None, closeBtn])
            onlineMembers = []
            offlineMembers = []
            for c in guildList:
                if c[2] == 1:
                    onlineMembers.append([c[0], c[1]])
                else:
                    offlineMembers.append([c[0], c[1]])
            onlineMembers.sort()
            offlineMembers.sort()
            members = []
            for c in onlineMembers:
                if c[1] == GUILD_MODERATOR:
                    font_color = g.modColor
                elif c[1] == GUILD_ADMIN:
                    font_color = g.adminColorLighter
                else:
                    font_color = g.loginFontColor
                label = HighlightedButton(c[0],
                                          width=150,
                                          height=24,
                                          path='baroutline_btn',
                                          font_color=font_color,
                                          on_release=self.constructSelect,
                                          argument=c[0],
                                          align=HALIGN_LEFT)
                #whisperBtn = HighlightedButton("",on_release=self.whisper,width=28,height=24,path='chatwhisper',argument=c[0])
                #if c[1]==GUILD_MODERATOR:
                #    label_extra=Label('#Mod#',color=g.modColor)
                #elif c[1]==GUILD_ADMIN:
                #    label_extra=Label('#Admin#',color=g.adminColorLighter)
                #else:
                label_extra = None
                members.append(
                    HorizontalContainer(content=[label, label_extra]))
            for c in offlineMembers:
                if c[1] == GUILD_MODERATOR:
                    font_color = g.errorColor
                elif c[1] == GUILD_ADMIN:
                    font_color = g.adminColor
                else:
                    font_color = g.npcColorLighter
                label = HighlightedButton(c[0],
                                          width=150,
                                          height=24,
                                          path='baroutline_btn',
                                          font_color=font_color,
                                          on_release=self.constructSelect,
                                          argument=c[0],
                                          align=HALIGN_LEFT)
                members.append(label)

            buttons = []
            print g.myGuildAccess
            if g.myGuildAccess > GUILD_MEMBER:
                buttons.append(
                    HighlightedButton("Invite Player",
                                      on_release=invitePlayerGuildPopup,
                                      width=100,
                                      height=24))
            #if g.myGuildAccess==GUILD_ADMIN:
            #    buttons.append(HighlightedButton("Guild Settings",on_release=openSettingsGuild,width=100,height=24))
            #leaveBtn = HighlightedButton("Leave Guild",on_release=self.leaveBtn,width=80,height=24)
            #addBtn = HighlightedButton("",on_release=self.addFriend,width=24,height=24,path='friendadd')
            frameContent = VerticalContainer(content=[
                horzCont,
                Scrollable(height=600,
                           width=400,
                           content=VerticalContainer(
                               content=members, align=HALIGN_LEFT, padding=0)),
                HorizontalContainer(buttons)
            ])
        #horzCont = HorizontalContainer(content=[label1,closeBtn])
        frame = Frame(frameContent)
        Manager.__init__(
            self,
            frame,
            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)
예제 #15
0
 def __init__(self):
     g.gameSettingsWindowOpened = True
     self.mouseoverPaint = g.selectPaint
     self.hoverPaint = g.hoverPaint
     self.musicEnabled = g.MUSIC
     self.musicVolume = g.MUSICVOLUME
     self.soundEnabled = g.SOUND
     self.soundVolume = g.SOUNDVOLUME
     titleText = Label("Game Settings",
                       color=g.loginFontColor,
                       font_size=g.theme["font_size"] + 2)
     mouseoverBtn = Checkbox("Paint tile select",
                             on_press=self.mouseoverSelect,
                             is_pressed=self.mouseoverPaint,
                             align=HALIGN_LEFT,
                             width=24,
                             height=24)
     hoverBtn = Checkbox("Paint hover players",
                         on_press=self.hoverSelect,
                         is_pressed=self.hoverPaint,
                         align=HALIGN_LEFT)
     audioEnabled = Checkbox("Enable music",
                             on_press=self.musicSelect,
                             is_pressed=self.musicEnabled,
                             align=HALIGN_LEFT)
     musicVolume = Label("Music volume")
     musicSlider = HorizontalSlider(on_set=self.musicVolumeChange,
                                    value=self.musicVolume)
     self.musicVolumeNumber = Label('%.2f' % self.musicVolume)
     soundEnabled = Checkbox("Enable sounds",
                             on_press=self.soundSelect,
                             is_pressed=self.soundEnabled,
                             align=HALIGN_LEFT)
     soundVolume = Label("Sound volume")
     soundSlider = HorizontalSlider(on_set=self.soundVolumeChange,
                                    value=self.soundVolume)
     self.soundVolumeNumber = Label('%.2f' % self.soundVolume)
     horz2 = HorizontalContainer(
         [musicVolume, musicSlider, self.musicVolumeNumber], padding=0)
     horz3 = HorizontalContainer(
         [soundVolume, soundSlider, self.soundVolumeNumber], padding=0)
     discardBtn = HighlightedButton(label="Discard",
                                    on_release=self.delete,
                                    width=120,
                                    height=30)
     saveBtn = HighlightedButton(label="Save",
                                 on_release=self.onSave,
                                 width=120,
                                 height=30)
     horzBtn = HorizontalContainer([discardBtn, saveBtn])
     Manager.__init__(self,
                      Frame(
                          VerticalContainer([
                              titleText, mouseoverBtn, hoverBtn,
                              audioEnabled, horz2, soundEnabled, horz3,
                              horzBtn
                          ])),
                      window=g.screen,
                      batch=g.guiBatch,
                      theme=g.theme,
                      is_movable=False)
예제 #16
0
    def __init__(self):
        w1 = int(350 * (g.SCREEN_WIDTH / 1920.))
        h1 = int(300 * (g.SCREEN_HEIGHT / 1080.))
        if w1 > 300:
            g.chatTheme["font_size"] = 11
            g.theme["font_size"] = 11
            g.theme["button"]["font_size"] = 11
        elif w1 > 250:
            g.chatTheme["font_size"] = 12
            g.theme["font_size"] = 12
            g.theme["button"]["font_size"] = 12
            w1 = int(w1 * 1.1)
        elif w1 > 200:
            g.chatTheme["font_size"] = 11
            g.theme["font_size"] = 11
            g.theme["button"]["font_size"] = 11
            w1 = int(w1 * 1.2)
        elif w1 > 175:
            g.chatTheme["font_size"] = 10
            g.theme["font_size"] = 10
            g.theme["button"]["font_size"] = 10
            w1 = int(w1 * 1.3)
        else:
            g.chatTheme["font_size"] = 9
            g.theme["font_size"] = 9
            g.theme["button"]["font_size"] = 9
            w1 = int(w1 * 1.3)
        self.chatInput = TextInput(text="",
                                   padding=0,
                                   length=16,
                                   max_length=MAX_CHAT_INPUT,
                                   width=w1 - 5 - 50)
        sendButton = HighlightedButton(label="Send",
                                       on_release=self.sendMessage,
                                       width=50,
                                       height=35)
        realtext = '{font_size ' + str(
            g.chatTheme["font_size"]) + '}{background_color ' + str(
                g.postBgColor
            ) + '}{font_name "' + g.chatTheme["font"] + '"}{wrap "char"} '
        document = pyglet.text.decode_attributed(realtext)
        self.textArea = Document(document,
                                 width=w1,
                                 height=h1,
                                 background=True,
                                 font_size=g.chatTheme["font_size"],
                                 font_name=g.chatTheme["font"],
                                 chat=True)

        vertCont = VerticalContainer(content=[
            self.textArea,
            HorizontalContainer(content=[self.chatInput, sendButton])
        ],
                                     align=HALIGN_LEFT)
        Manager.__init__(self,
                         vertCont,
                         window=g.screen,
                         batch=g.guiBatch,
                         theme=g.chatTheme,
                         anchor=ANCHOR_BOTTOM_LEFT,
                         offset=(g.SCREEN_WIDTH * 0.05, g.SCREEN_HEIGHT * 0.1),
                         is_movable=False)
예제 #17
0
    def __init__(self):
        g.friendWindowOpened = True
        label1 = Label("Friends List", bold=True, color=g.loginFontColor)
        closeBtn = HighlightedButton("",
                                     on_release=self.delete,
                                     width=19,
                                     height=19,
                                     path='delete')
        onlineFriends = []
        offlineFriends = []
        for c in friendList:
            if c[1] == 1:
                onlineFriends.append(c[0])
            else:
                offlineFriends.append(c[0])
        onlineFriends.sort()
        offlineFriends.sort()
        friends = []
        for c in onlineFriends:
            label = HighlightedButton(c,
                                      width=150,
                                      height=24,
                                      path='baroutline_btn',
                                      on_release=self.constructSelect,
                                      argument=c,
                                      align=HALIGN_LEFT,
                                      font_color=g.loginFontColor)
            friends.append(label)
        for c in offlineFriends:
            label = HighlightedButton(c,
                                      width=150,
                                      height=24,
                                      path='baroutline_btn',
                                      on_release=self.constructSelect,
                                      argument=c,
                                      align=HALIGN_LEFT,
                                      font_color=g.npcColorLighter)
            friends.append(label)
        addBtn = HighlightedButton("Add Friend",
                                   on_release=addFriendPopup,
                                   width=100,
                                   height=24)

        horzCont = HorizontalContainer(content=[label1, None, closeBtn])
        frame = Frame(
            VerticalContainer(content=[
                horzCont,
                Scrollable(height=400,
                           width=400,
                           content=VerticalContainer(content=friends,
                                                     align=HALIGN_LEFT,
                                                     padding=0)), addBtn
            ]))
        Manager.__init__(
            self,
            frame,
            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)
예제 #18
0
    def initCreateChar(self):
        def checkClothingOk():
            found = 0
            #print g.clothingPairs
            for clothes in g.clothingPairs:
                found = 0
                if clothes["type"] == 'exclude':
                    if 'shirt' in clothes and clothes[
                            'shirt'] == myPlayer.shirt:
                        found += 1
                    if 'hat' in clothes and clothes['hat'] == myPlayer.hat:
                        found += 1
                    if 'face' in clothes and clothes['face'] == myPlayer.face:
                        found += 1
                    if 'shoes' in clothes and clothes[
                            'shoes'] == myPlayer.shoes:
                        found += 1
                    if found >= 2:
                        return False
            return True

        def hatLeft(event):
            myPlayer.hat -= 1
            if myPlayer.hat < 0:
                myPlayer.hat = g.MAX_HAT - 1
            if not checkClothingOk():
                hatLeft(None)
            self.changing = True

        def hatRight(event):
            myPlayer.hat += 1
            if myPlayer.hat >= g.MAX_HAT:
                myPlayer.hat = 0
            if not checkClothingOk():
                hatRight(None)
            self.changing = True

        def faceLeft(event):
            myPlayer.face -= 1
            if myPlayer.face < 0:
                myPlayer.face = g.MAX_FACE - 1
            if not checkClothingOk():
                faceLeft(None)
            self.changing = True

        def faceRight(event):
            myPlayer.face += 1
            if myPlayer.face >= g.MAX_FACE:
                myPlayer.face = 0
            if not checkClothingOk():
                faceRight(None)
            self.changing = True

        def shirtLeft(event):
            myPlayer.shirt -= 1
            if myPlayer.shirt < 0:
                myPlayer.shirt = g.MAX_SHIRT - 1
            if not checkClothingOk():
                shirtLeft(None)
            self.changing = True

        def shirtRight(event):
            myPlayer.shirt += 1
            if myPlayer.shirt >= g.MAX_SHIRT:
                myPlayer.shirt = 0
            if not checkClothingOk():
                shirtRight(None)
            self.changing = True

        def shoesLeft(event):
            myPlayer.shoes -= 1
            if myPlayer.shoes < 0:
                myPlayer.shoes = g.MAX_SHOES - 1
            if not checkClothingOk():
                shoesLeft(None)
            self.changing = True

        def shoesRight(event):
            myPlayer.shoes += 1
            if myPlayer.shoes >= g.MAX_SHOES:
                myPlayer.shoes = 0
            if not checkClothingOk():
                shoesRight(None)
            self.changing = True

        def facingLeft(event):
            myPlayer.dir -= 1
            if myPlayer.dir < DIR_DOWN:
                myPlayer.dir = DIR_RIGHT
                myPlayer.tmpPlayer.spriteFacing = 8
            elif myPlayer.dir == DIR_UP:
                myPlayer.tmpPlayer.spriteFacing = 5
            elif myPlayer.dir == DIR_LEFT:
                myPlayer.tmpPlayer.spriteFacing = 3
            elif myPlayer.dir == DIR_DOWN:
                myPlayer.tmpPlayer.spriteFacing = 0

            #myPlayer.tmpPlayer.spriteFacing-=1
            #if myPlayer.tmpPlayer.spriteFacing<0:
            #    myPlayer.tmpPlayer.spriteFacing=9
        def facingRight(event):
            myPlayer.dir += 1
            if myPlayer.dir > DIR_RIGHT:
                myPlayer.dir = DIR_DOWN
                myPlayer.tmpPlayer.spriteFacing = 0
            elif myPlayer.dir == DIR_UP:
                myPlayer.tmpPlayer.spriteFacing = 5
            elif myPlayer.dir == DIR_LEFT:
                myPlayer.tmpPlayer.spriteFacing = 3
            elif myPlayer.dir == DIR_RIGHT:
                myPlayer.tmpPlayer.spriteFacing = 8

        def saveClothes(event):
            self.ready = True
            saveBtn.disabled = True

        self.changing = True
        label = Label("Create Character", color=g.postColor, font_size=18)
        name = Label(myPlayer.name, bold=True, color=g.nameColor, font_size=18)
        hatBtnLeft = HighlightedButton(label="<-",
                                       on_release=hatLeft,
                                       width=25,
                                       height=25,
                                       font_size=13)
        hatBtnRight = HighlightedButton(label="->",
                                        on_release=hatRight,
                                        width=25,
                                        height=25,
                                        font_size=13)
        hatHorz = HorizontalContainer(
            content=[hatBtnLeft,
                     Spacer(256 - TILESIZE * 2, 0), hatBtnRight])

        faceBtnLeft = HighlightedButton(label="<-",
                                        on_release=faceLeft,
                                        width=25,
                                        height=25,
                                        font_size=13)
        faceBtnRight = HighlightedButton(label="->",
                                         on_release=faceRight,
                                         width=25,
                                         height=25,
                                         font_size=13)
        faceHorz = HorizontalContainer(
            content=[faceBtnLeft,
                     Spacer(256 - TILESIZE * 2, 0), faceBtnRight])

        shirtBtnLeft = HighlightedButton(label="<-",
                                         on_release=shirtLeft,
                                         width=25,
                                         height=25,
                                         font_size=13)
        shirtBtnRight = HighlightedButton(label="->",
                                          on_release=shirtRight,
                                          width=25,
                                          height=25,
                                          font_size=13)
        shirtHorz = HorizontalContainer(content=[
            shirtBtnLeft,
            Spacer(256 - TILESIZE * 2, 0), shirtBtnRight
        ])

        shoesBtnLeft = HighlightedButton(label="<-",
                                         on_release=shoesLeft,
                                         width=25,
                                         height=25,
                                         font_size=13)
        shoesBtnRight = HighlightedButton(label="->",
                                          on_release=shoesRight,
                                          width=25,
                                          height=25,
                                          font_size=13)
        shoesHorz = HorizontalContainer(content=[
            shoesBtnLeft,
            Spacer(256 - TILESIZE * 2, 0), shoesBtnRight
        ])

        facingBtnLeft = HighlightedButton(label="<---",
                                          on_release=facingLeft,
                                          width=30,
                                          height=30,
                                          font_size=13)
        facingBtnRight = HighlightedButton(label="--->",
                                           on_release=facingRight,
                                           width=30,
                                           height=30,
                                           font_size=13)
        facingHorz = HorizontalContainer(
            content=[facingBtnLeft, facingBtnRight])

        saveBtn = HighlightedButton(label="Save",
                                    on_release=saveClothes,
                                    width=100,
                                    height=40,
                                    font_size=16)

        frame = Frame(VerticalContainer(content=[
            label,
            Spacer(256 - TILESIZE, TILESIZE / 4), name,
            Spacer(0, 8), hatHorz, faceHorz, shirtHorz, shoesHorz, facingHorz,
            Spacer(0, 8), saveBtn
        ]),
                      path='frame_npc_talk')
        self.charMan = Manager(frame,
                               window=self.screen,
                               batch=g.guiBatch,
                               theme=g.theme,
                               offset=(0, 0),
                               is_movable=False)
예제 #19
0
    def __init__(self, name, text, actionType=0):
        g.npcTalkWindowOpened = True
        g.cursorRound = -1
        self.name = name
        sendTalkToNpc(name)
        if actionType == NPC_ACTIONTYPE_SHOP:
            namecolor = g.npcColor
            postcolor = g.whiteColor
            path = 'frame_npc_talk_shop'
        else:
            namecolor = g.npcColorLighter
            postcolor = g.postColor
            path = 'frame_npc_talk'
        label1 = Label(name, color=namecolor, bold=True)
        closeBtn = HighlightedButton("",
                                     on_release=self.delete,
                                     width=19,
                                     height=19,
                                     path='delete')
        horzCont = HorizontalContainer(content=[label1, None, closeBtn])
        self.yourmoney = None
        w1 = int(300 * (g.SCREEN_WIDTH / 1920.)) + 50
        h1 = int(500 * (g.SCREEN_HEIGHT / 1080.))
        textArr = text.split('\n\n')
        realText = ""

        for c in textArr:
            if c[0] == '>':
                realText += '{color ' + str(
                    g.greentextColor) + '}' + c + '\n\n'
            else:
                realText += '{color ' + str(postcolor) + '}' + c + '\n\n'
        realText = realText[:-2]
        document = pyglet.text.decode_attributed(realText)
        self.textArea = Document(document,
                                 width=w1,
                                 height=h1,
                                 background=False,
                                 font_size=g.chatTheme["font_size"],
                                 font_name=g.chatTheme["font"])
        if actionType == NPC_ACTIONTYPE_HEAL:
            healButton = HighlightedButton("Heal my menes",
                                           on_release=self.healButton)
            okButton = HighlightedButton("Goodbye", on_release=self.delete)
            cont = VerticalContainer(content=[
                horzCont, self.textArea,
                HorizontalContainer([healButton, okButton])
            ])
        elif actionType == NPC_ACTIONTYPE_SHOP:
            #TODO: When more items, do a loop that adds then dynamically instead of statically like this
            disabled = False
            if Items["es"]["cost"] > g.moneyAmount:
                #    print "TAPAHTU"
                disabled = True
            self.esButton = AbilityButton(
                width=50,
                height=50,
                argument=Items["es"]["id"],
                disabled=disabled,
                on_press=buyItem,
                texture=g.gameEngine.resManager.items[Items["es"]["sprite"]],
                outline='abilityoutline',
                hover=onHover,
                hoveringType=HOVERING_ITEM,
                arguments={
                    'name': Items["es"]["name"],
                    'info': Items["es"]["info"],
                    "args": ()
                })
            nameLabel = Label(Items["es"]["name"], color=g.npcColor)
            esCost = Items["es"]["cost"] / 100.0
            costLabel = Label("%.2f" % esCost)
            euroPicture = Graphic("euro")
            costCont = HorizontalContainer(content=[costLabel, euroPicture])
            infoCont = VerticalContainer(
                content=[Spacer(), nameLabel, costCont], align=HALIGN_LEFT)
            itemCont = HorizontalContainer(content=[self.esButton, infoCont])
            moneyTmp = g.moneyAmount / 100.0
            self.yourmoney = Label('%.2f' % moneyTmp)
            yourmoneyCont = HorizontalContainer(
                content=[self.yourmoney, Graphic("euro")])
            self.yourES = Label('%s' % g.esAmount)
            yourESCont = HorizontalContainer(
                content=[self.yourES, Graphic("es_icon")])
            okButton = HighlightedButton("Goodbye", on_release=self.delete)
            cont = VerticalContainer(content=[
                horzCont, self.textArea, itemCont,
                Spacer(0, 20),
                HorizontalContainer(content=[
                    Spacer(),
                    VerticalContainer(content=[yourmoneyCont, yourESCont],
                                      align=HALIGN_RIGHT)
                ]), okButton
            ])
        else:
            okButton = HighlightedButton("Goodbye", on_release=self.delete)
            cont = VerticalContainer(
                content=[horzCont, self.textArea, okButton])
        frame = Frame(cont, path=path)
        Manager.__init__(
            self,
            frame,
            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)
예제 #20
0
    def initManagers(self):
        g.gameEngine.changeMusicSong(LOGINMENUSONG)
        g.gameEngine.musicManager.volume = g.MUSICVOLUME
        self.skyHeight = int(0.4592592 * g.SCREEN_HEIGHT)
        self.skyWidth = int(1.625 * g.SCREEN_WIDTH)
        self.ukkeliSprite._set_scale(self.screen.width / 1920.0)
        #self.ukkeliSprite.anchor_x=self.ukkeliSprite.width//2
        #self.ukkeliSprite.anchor_y=self.ukkeliSprite.height//2

        self.ukkeliSprite.x = 0.5 * self.screen.width
        self.ukkeliSprite2._set_scale(self.screen.width / 1920.0)
        self.ukkeliSprite2.x = 0.5 * self.screen.width
        #self.ukkeliSprite2.anchor_x=self.ukkeliSprite2.width//2
        #self.ukkeliSprite2.anchor_y=self.ukkeliSprite2.height//2
        self.logo._set_scale(self.screen.width / 1920.0)
        self.logo.x = (self.screen.width - self.l1.width *
                       (self.screen.width / 1920.0)) / 2
        self.logo.y = (self.screen.height - 350) * (1080.0 /
                                                    self.screen.height)

        self.charTick = int(
            (datetime.datetime.utcnow() -
             datetime.datetime(1970, 1, 1)).total_seconds() * 1000)

        label = Label("Username", color=g.loginFontColor, font_size=18)
        label1 = Label("Password", color=g.loginFontColor, font_size=18)
        self.logininput = TextInput(text="",
                                    padding=2,
                                    length=16,
                                    max_length=16,
                                    width=220,
                                    font_size=18)
        self.passwordinput = TextInput(text="",
                                       font=g.defaultPWFont.name,
                                       padding=0,
                                       length=21.5,
                                       width=220,
                                       font_size=18)

        self.button = HighlightedButton(label="Login",
                                        on_release=self.tryLogin,
                                        width=210,
                                        height=50,
                                        font_size=16)

        vertCont = VerticalContainer([
            label, self.logininput,
            Spacer(min_height=10), label1, self.passwordinput,
            Spacer(min_height=40), self.button
        ])

        versionInfo = Label("Version: " + GAME_VERSION,
                            color=(0, 0, 0, 255),
                            font_size=10)
        self.exitButton = HighlightedButton(label="Exit",
                                            on_release=self.exit,
                                            width=100,
                                            height=40,
                                            font_size=14)
        vertCont2 = VerticalContainer([versionInfo, self.exitButton])
        self.man1 = Manager(vertCont,
                            window=self.screen,
                            batch=g.guiBatch,
                            theme=g.theme,
                            offset=(0, -50),
                            is_movable=False)
        self.man2 = Manager(vertCont2,
                            window=self.screen,
                            batch=g.guiBatch,
                            theme=g.theme,
                            anchor=ANCHOR_BOTTOM_RIGHT,
                            offset=(-50, 50),
                            is_movable=False)
        self.man1.set_focus(self.logininput)
예제 #21
0
 def __init__(self):
     g.keybindingsWindowOpened = True
     self.resW = g.SCREEN_WIDTH
     self.resH = g.SCREEN_HEIGHT
     self.fullscreen = g.FULLSCREEN
     self.vsync = g.VSYNC
     self.screenSelected = g.SCREENSELECTED
     screens = pyglet.window.get_platform().get_default_display(
     ).get_screens()
     screenopts = []
     for i in range(len(screens)):
         screenopts.append(str(i))
     if int(self.screenSelected) >= 0 and int(
             self.screenSelected) < len(screens):
         screenopts.insert(0, str(self.screenSelected))
     options = []
     modes = pyglet.window.get_platform().get_default_display(
     ).get_default_screen().get_modes()
     for i in modes:
         if i.width >= 1024 and i.height >= 720:
             opt = str(int(i.width)) + ':' + str(int(i.height))
             if opt not in options:
                 options.append(opt)
     options.insert(0, str(g.SCREEN_WIDTH) + ':' + str(g.SCREEN_HEIGHT))
     titleText = Label("Video Settings",
                       color=g.loginFontColor,
                       font_size=g.theme["font_size"] + 2)
     windowTypeInfo = Label("Window mode")
     if g.FULLSCREEN:
         windowType = Dropdown(['Fullscreen', 'Windowed'],
                               on_select=self.selection)
     else:
         windowType = Dropdown(['Windowed', 'Fullscreen'],
                               on_select=self.selection)
     horz = HorizontalContainer([windowTypeInfo, windowType])
     resolutionInfo = Label("Resolution")
     resolutionType = Dropdown(options, on_select=self.resSelect)
     horz1 = HorizontalContainer([resolutionInfo, resolutionType])
     vsyncBtn = Checkbox("VSync",
                         on_press=self.vsyncSelect,
                         is_pressed=self.vsync,
                         align=HALIGN_LEFT)
     resolutionInfo = Label("Monitor")
     resolutionType = Dropdown(screenopts, on_select=self.screenSelect)
     horz3 = HorizontalContainer([resolutionInfo, resolutionType])
     discardBtn = HighlightedButton(label="Discard",
                                    on_release=self.delete,
                                    width=120,
                                    height=30)
     saveBtn = HighlightedButton(label="Save",
                                 on_release=self.onSave,
                                 width=120,
                                 height=30)
     horzBtn = HorizontalContainer([discardBtn, saveBtn])
     Manager.__init__(self,
                      Frame(
                          VerticalContainer([
                              titleText, horz, horz1, vsyncBtn, horz3,
                              horzBtn
                          ])),
                      window=g.screen,
                      batch=g.guiBatch,
                      theme=g.theme,
                      is_movable=False)
예제 #22
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