Пример #1
0
    def __init__(self, theMap, isHost):
        super(Model, self).__init__()

        self.theMap = theMap

        self.openEditor = False
        self.sendNetMessage = False
        self.starting = False

        self.bg = pygame.Surface(SCREEN_SIZE)
        self.bg.fill(CHARACTER_SELECT_BG_COLOR)

        self.group = CharacterPanelGroup(self.theMap.numOfCharactersPerTeam())
        self.currSelected = None

        x = (CHARACTER_SELECT_PANEL_SELECTION_BORDER_WIDTH * 2) + CHARACTER_SELECT_PANEL_SIZE[0]
        y = (CHARACTER_SELECT_PANEL_SELECTION_BORDER_WIDTH * 2) + CHARACTER_SELECT_PANEL_SIZE[1]

        self.selectionBorder = pygame.Surface((x, y))
        self.selectionBorder.fill(CHARACTER_SELECT_PANEL_SELECTION_BORDER_COLOR)

        tempRect = Rect((0, 0), CHARACTER_SELECT_PLAYER_SIZE)
        tempRect.bottom = SCREEN_SIZE[1] - CHARACTER_SELECT_GROUP_FROM_TOP
        tempRect.centerx = SCREEN_SIZE[0] / 2
        self.clientPanel = PlayerPanel(tempRect, "Client", self.group.num)

        tempRect = Rect((0, 0), CHARACTER_SELECT_PLAYER_SIZE)
        tempRect.bottom = self.clientPanel.rect.top - CHARACTER_SELECT_GROUP_SPACING
        tempRect.centerx = SCREEN_SIZE[0] / 2
        self.hostPanel = PlayerPanel(tempRect, "Host", self.group.num)

        if isHost:
            self.myPanel = self.hostPanel
            self.theirPanel = self.clientPanel
        else:
            self.myPanel = self.clientPanel
            self.theirPanel = self.hostPanel

        tempRect = Rect((0, 0), CHARACTER_SELECT_BUTTON_SIZE)
        tempRect.left = self.myPanel.rect.right + CHARACTER_SELECT_GROUP_SPACING
        tempRect.top = self.myPanel.rect.top
        self.readyButton = Button(tempRect, "Ready")

        if isHost:
            tempRect = Rect((0, 0), CHARACTER_SELECT_BUTTON_SIZE)
            tempRect.left = self.theirPanel.rect.right + CHARACTER_SELECT_GROUP_SPACING
            tempRect.top = self.theirPanel.rect.top
            self.startButton = Button(tempRect, "Start")
        else:
            self.startButton = None

        x = (CHARACTER_SELECT_PANEL_SELECTION_BORDER_WIDTH * 2) + CHARACTER_SELECT_BUTTON_SIZE[0]
        y = (CHARACTER_SELECT_PANEL_SELECTION_BORDER_WIDTH * 2) + CHARACTER_SELECT_BUTTON_SIZE[1]
        self.selectionBorderButton = pygame.Surface((x, y))
        self.selectionBorderButton.fill(CHARACTER_SELECT_PANEL_SELECTION_BORDER_COLOR)

        self.loadingImage = INTERFACE_GRAPHICS[9]
        self.loadingRect = Rect((0, 0), self.loadingImage.get_size())
        self.loadingRect.center = (SCREEN_SIZE[0] / 2, SCREEN_SIZE[1] / 2)
Пример #2
0
    def __init__(self, num):
        self.num = num

        numOfCols = int(math.ceil(float(num) / float(CHARACTER_SELECT_PANELS_PER_COL)))

        numOfPanelsInCol = []
        for i in range(numOfCols):
            numOfPanelsInCol.append(0)

        count = 0
        currCol = 0
        while count < num:
            numOfPanelsInCol[currCol] += 1
            count += 1
            currCol += 1
            if currCol == numOfCols:
                currCol = 0

        self.characterPanels = []
        for i in range(len(numOfPanelsInCol)):
            colMid = (SCREEN_SIZE[0] / (len(numOfPanelsInCol) + 1)) * (i + 1)
            for j in range(numOfPanelsInCol[i]):
                rect = Rect((0, 0), CHARACTER_SELECT_PANEL_SIZE)
                rect.centerx = colMid
                rect.top = CHARACTER_SELECT_GROUP_FROM_TOP + (
                    (CHARACTER_SELECT_PANEL_SIZE[1] + CHARACTER_SELECT_GROUP_SPACING) * j
                )

                self.characterPanels.append(CharacterPanel(rect, None))
Пример #3
0
    def changeVal(self, val=None):
        if not val is None:
            self.val = val
        self.panel = pygame.Surface(self.rect.size)
        self.panel.blit(self.backPanel, (0, 0))

        font = CHARACTER_SELECTION_FONT
        textHeight = font.get_linesize() + 2
        tempRect = Rect((0, 0), (self.rect.width, textHeight))

        text = textrect.render_textrect(
            self.name, font, tempRect, CHARACTER_SELECTION_FONT_COLOR, ALMOST_BLACK, 0, True
        )
        tempRect = Rect((0, 0), text.get_size())
        tempRect.top = (CHARACTER_SELECT_PANEL_SIZE[1] / 2) - (tempRect.height / 2)
        loc = (tempRect.left + CHARACTER_SELECT_PANEL_BORDER_WIDTH + CHARACTER_SELECT_PANEL_BORDER_SIZE, tempRect.top)
        self.panel.blit(text, loc)

        if self.ready:
            msg = "READY"
            color = CHARACTER_SELECTION_READY_COLOR
        else:
            msg = str(self.val) + "/" + str(self.maxVal)
            color = CHARACTER_SELECTION_FONT_COLOR
        text = textrect.render_textrect(msg, font, tempRect, color, ALMOST_BLACK, 2, True)
        loc = (tempRect.left - CHARACTER_SELECT_PANEL_BORDER_WIDTH - CHARACTER_SELECT_PANEL_BORDER_SIZE, tempRect.top)
        self.panel.blit(text, loc)
Пример #4
0
    def __init__(self, num):
        self.num = num

        numOfCols = int(
            math.ceil(float(num) / float(CHARACTER_SELECT_PANELS_PER_COL)))

        numOfPanelsInCol = []
        for i in range(numOfCols):
            numOfPanelsInCol.append(0)

        count = 0
        currCol = 0
        while count < num:
            numOfPanelsInCol[currCol] += 1
            count += 1
            currCol += 1
            if currCol == numOfCols:
                currCol = 0

        self.characterPanels = []
        for i in range(len(numOfPanelsInCol)):
            colMid = (SCREEN_SIZE[0] / (len(numOfPanelsInCol) + 1)) * (i + 1)
            for j in range(numOfPanelsInCol[i]):
                rect = Rect((0, 0), CHARACTER_SELECT_PANEL_SIZE)
                rect.centerx = colMid
                rect.top = (CHARACTER_SELECT_GROUP_FROM_TOP +
                            ((CHARACTER_SELECT_PANEL_SIZE[1] +
                              CHARACTER_SELECT_GROUP_SPACING) * j))

                self.characterPanels.append(CharacterPanel(rect, None))
Пример #5
0
    def changeVal(self, val=None):
        if not val is None:
            self.val = val
        self.panel = pygame.Surface(self.rect.size)
        self.panel.blit(self.backPanel, (0, 0))

        font = CHARACTER_SELECTION_FONT
        textHeight = font.get_linesize() + 2
        tempRect = Rect((0, 0), (self.rect.width, textHeight))

        text = textrect.render_textrect(self.name, font, tempRect,
                                        CHARACTER_SELECTION_FONT_COLOR,
                                        ALMOST_BLACK, 0, True)
        tempRect = Rect((0, 0), text.get_size())
        tempRect.top = ((CHARACTER_SELECT_PANEL_SIZE[1] / 2) -
                        (tempRect.height / 2))
        loc = (tempRect.left + CHARACTER_SELECT_PANEL_BORDER_WIDTH +
               CHARACTER_SELECT_PANEL_BORDER_SIZE, tempRect.top)
        self.panel.blit(text, loc)

        if self.ready:
            msg = "READY"
            color = CHARACTER_SELECTION_READY_COLOR
        else:
            msg = str(self.val) + "/" + str(self.maxVal)
            color = CHARACTER_SELECTION_FONT_COLOR
        text = textrect.render_textrect(msg, font, tempRect, color,
                                        ALMOST_BLACK, 2, True)
        loc = (tempRect.left - CHARACTER_SELECT_PANEL_BORDER_WIDTH -
               CHARACTER_SELECT_PANEL_BORDER_SIZE, tempRect.top)
        self.panel.blit(text, loc)
Пример #6
0
    def setCharacter(self, c):
        self.character = c

        self.panel = pygame.Surface(CHARACTER_SELECT_PANEL_SIZE)
        self.panel.blit(self.backPanel, (0, 0))

        if not self.character is None:
            font = CHARACTER_SELECTION_FONT
            msg = self.character.name
            textHeight = font.get_linesize() + 2
            tempRect = Rect((0, 0), (CHARACTER_SELECT_PANEL_SIZE[0], textHeight))

            text = textrect.render_textrect(msg, font, tempRect, CHARACTER_SELECTION_FONT_COLOR, ALMOST_BLACK, 1, True)
            tempRect = Rect((0, 0), text.get_size())
            tempRect.left = (CHARACTER_SELECT_PANEL_SIZE[0] / 2) - (tempRect.width / 2)
            tempRect.top = (CHARACTER_SELECT_PANEL_SIZE[1] / 2) - (tempRect.height / 2)
            self.panel.blit(text, tempRect.topleft)
Пример #7
0
    def setButton(self, val):
        if not (val == self.enabled):
            self.enabled = val

            self.panel = pygame.Surface(self.rect.size)
            self.panel.blit(self.backPanel, (0, 0))

            if self.enabled:
                color = CHARACTER_SELECTION_BUTTON_COLOR_ON
            else:
                color = CHARACTER_SELECTION_BUTTON_COLOR_OFF

            font = CHARACTER_SELECTION_FONT
            textHeight = font.get_linesize() + 2
            tempRect = Rect((0, 0), (self.rect.width, textHeight))

            text = textrect.render_textrect(self.msg, font, tempRect, color, ALMOST_BLACK, 1, True)
            tempRect = Rect((0, 0), text.get_size())
            tempRect.top = (CHARACTER_SELECT_PANEL_SIZE[1] / 2) - (tempRect.height / 2)
            self.panel.blit(text, tempRect.topleft)
Пример #8
0
    def setCharacter(self, c):
        self.character = c

        self.panel = pygame.Surface(CHARACTER_SELECT_PANEL_SIZE)
        self.panel.blit(self.backPanel, (0, 0))

        if not self.character is None:
            font = CHARACTER_SELECTION_FONT
            msg = self.character.name
            textHeight = font.get_linesize() + 2
            tempRect = Rect((0, 0),
                            (CHARACTER_SELECT_PANEL_SIZE[0], textHeight))

            text = textrect.render_textrect(msg, font, tempRect,
                                            CHARACTER_SELECTION_FONT_COLOR,
                                            ALMOST_BLACK, 1, True)
            tempRect = Rect((0, 0), text.get_size())
            tempRect.left = ((CHARACTER_SELECT_PANEL_SIZE[0] / 2) -
                             (tempRect.width / 2))
            tempRect.top = ((CHARACTER_SELECT_PANEL_SIZE[1] / 2) -
                            (tempRect.height / 2))
            self.panel.blit(text, tempRect.topleft)
Пример #9
0
    def setButton(self, val):
        if not (val == self.enabled):
            self.enabled = val

            self.panel = pygame.Surface(self.rect.size)
            self.panel.blit(self.backPanel, (0, 0))

            if self.enabled:
                color = CHARACTER_SELECTION_BUTTON_COLOR_ON
            else:
                color = CHARACTER_SELECTION_BUTTON_COLOR_OFF

            font = CHARACTER_SELECTION_FONT
            textHeight = font.get_linesize() + 2
            tempRect = Rect((0, 0), (self.rect.width, textHeight))

            text = textrect.render_textrect(self.msg, font, tempRect, color,
                                            ALMOST_BLACK, 1, True)
            tempRect = Rect((0, 0), text.get_size())
            tempRect.top = ((CHARACTER_SELECT_PANEL_SIZE[1] / 2) -
                            (tempRect.height / 2))
            self.panel.blit(text, tempRect.topleft)
Пример #10
0
    def __init__(self, inChars, terrainLeft, terrainRight):
        super(Model, self).__init__()
        self.rect = Rect((0, 0), BATTLE_ARENA_SIZE)

        self.testBool = False
        self.testBool2 = False
        
        self.players = inChars
        for p in self.players:
            p.beginBattle()
            pos = (self.rect.centerx,
                   self.rect.height - BATTLE_AREA_FLOOR_HEIGHT)
            self.players[0].setLoc(add_points(pos,
                            ((-BATTLE_PLAYER_START_DISTANCE / 2), 0)))
            self.players[0].facingRight = True
            self.players[1].setLoc(add_points(pos,
                            ((BATTLE_PLAYER_START_DISTANCE / 2), 0)))
            self.players[1].facingRight = False
            
        self.keys = [[False, False, False, False, False, False, False, False, False],
                     [False, False, False, False, False, False, False, False, False]]
        self.keysNow = [[0, 0, 0, 0, 0, 0, 0, 0, 0],
                        [0, 0, 0, 0, 0, 0, 0, 0, 0]]

        self.frameByFrame = [0, 0]
        
        self.returnCode = [0, 0]
        self.projectiles = []
        self.retreatProhibitTime = boundint.BoundInt(0, RETREAT_PROHIBIT_TIME,
                                                     RETREAT_PROHIBIT_TIME)
        self.retreatPhase = 0
        
        self.cameraPlayer = 0
        self.netPlayer = 0
        self.catBar = None
        self.createBars()
        self.resetHitMemory()

        self.endingVal = -1
        self.endingValTick = 0

        self.fx = []

        self.platforms = getPlatforms(terrainLeft, terrainRight)

        self.countdown = countdown.Countdown(BATTLE_COUNTDOWN_LENGTH)
        self.createEndingText()
        
        self.damageTagRects = []
        self.damagePercentRects = []
        for i in range(2):
            rect = Rect((0, 0), (80, 100))
            if (i == 0):
                rect.left = 0
            else:
                rect.right = SCREEN_SIZE[0]
            rect.top = SCREEN_SIZE[1] - 55
            self.damageTagRects.append(rect)
            
            rect2 = Rect((0, 0), (80, 100))
            if (i == 0):
                rect2.left = 0
            else:
                rect2.right = SCREEN_SIZE[0]
            rect2.top = rect.top + 18
            self.damagePercentRects.append(rect2)
            
        self.damageTag = textrect.render_textrect("Strength", STRUCTURE_COUNT_FONT, self.damageTagRects[0],
                                                  ALMOST_BLACK, BLACK, 1, True)
Пример #11
0
    def __init__(self, theMap, isHost):
        super(Model, self).__init__()

        self.theMap = theMap

        self.openEditor = False
        self.sendNetMessage = False
        self.starting = False

        self.bg = pygame.Surface(SCREEN_SIZE)
        self.bg.fill(CHARACTER_SELECT_BG_COLOR)

        self.group = CharacterPanelGroup(self.theMap.numOfCharactersPerTeam())
        self.currSelected = None

        x = ((CHARACTER_SELECT_PANEL_SELECTION_BORDER_WIDTH * 2) +
             CHARACTER_SELECT_PANEL_SIZE[0])
        y = ((CHARACTER_SELECT_PANEL_SELECTION_BORDER_WIDTH * 2) +
             CHARACTER_SELECT_PANEL_SIZE[1])

        self.selectionBorder = pygame.Surface((x, y))
        self.selectionBorder.fill(
            CHARACTER_SELECT_PANEL_SELECTION_BORDER_COLOR)

        tempRect = Rect((0, 0), CHARACTER_SELECT_PLAYER_SIZE)
        tempRect.bottom = SCREEN_SIZE[1] - CHARACTER_SELECT_GROUP_FROM_TOP
        tempRect.centerx = SCREEN_SIZE[0] / 2
        self.clientPanel = PlayerPanel(tempRect, "Client", self.group.num)

        tempRect = Rect((0, 0), CHARACTER_SELECT_PLAYER_SIZE)
        tempRect.bottom = (self.clientPanel.rect.top -
                           CHARACTER_SELECT_GROUP_SPACING)
        tempRect.centerx = SCREEN_SIZE[0] / 2
        self.hostPanel = PlayerPanel(tempRect, "Host", self.group.num)

        if isHost:
            self.myPanel = self.hostPanel
            self.theirPanel = self.clientPanel
        else:
            self.myPanel = self.clientPanel
            self.theirPanel = self.hostPanel

        tempRect = Rect((0, 0), CHARACTER_SELECT_BUTTON_SIZE)
        tempRect.left = self.myPanel.rect.right + CHARACTER_SELECT_GROUP_SPACING
        tempRect.top = self.myPanel.rect.top
        self.readyButton = Button(tempRect, "Ready")

        if isHost:
            tempRect = Rect((0, 0), CHARACTER_SELECT_BUTTON_SIZE)
            tempRect.left = (self.theirPanel.rect.right +
                             CHARACTER_SELECT_GROUP_SPACING)
            tempRect.top = self.theirPanel.rect.top
            self.startButton = Button(tempRect, "Start")
        else:
            self.startButton = None

        x = ((CHARACTER_SELECT_PANEL_SELECTION_BORDER_WIDTH * 2) +
             CHARACTER_SELECT_BUTTON_SIZE[0])
        y = ((CHARACTER_SELECT_PANEL_SELECTION_BORDER_WIDTH * 2) +
             CHARACTER_SELECT_BUTTON_SIZE[1])
        self.selectionBorderButton = pygame.Surface((x, y))
        self.selectionBorderButton.fill(
            CHARACTER_SELECT_PANEL_SELECTION_BORDER_COLOR)

        self.loadingImage = INTERFACE_GRAPHICS[9]
        self.loadingRect = Rect((0, 0), self.loadingImage.get_size())
        self.loadingRect.center = (SCREEN_SIZE[0] / 2, SCREEN_SIZE[1] / 2)
Пример #12
0
    def __init__(self, inChars, terrainLeft, terrainRight):
        super(Model, self).__init__()
        self.rect = Rect((0, 0), BATTLE_ARENA_SIZE)

        self.testBool = False
        self.testBool2 = False

        self.players = inChars
        for p in self.players:
            p.beginBattle()
            pos = (self.rect.centerx,
                   self.rect.height - BATTLE_AREA_FLOOR_HEIGHT)
            self.players[0].setLoc(
                add_points(pos, ((-BATTLE_PLAYER_START_DISTANCE / 2), 0)))
            self.players[0].facingRight = True
            self.players[1].setLoc(
                add_points(pos, ((BATTLE_PLAYER_START_DISTANCE / 2), 0)))
            self.players[1].facingRight = False

        self.keys = [[
            False, False, False, False, False, False, False, False, False
        ], [False, False, False, False, False, False, False, False, False]]
        self.keysNow = [[0, 0, 0, 0, 0, 0, 0, 0, 0],
                        [0, 0, 0, 0, 0, 0, 0, 0, 0]]

        self.frameByFrame = [0, 0]

        self.returnCode = [0, 0]
        self.projectiles = []
        self.retreatProhibitTime = boundint.BoundInt(0, RETREAT_PROHIBIT_TIME,
                                                     RETREAT_PROHIBIT_TIME)
        self.retreatPhase = 0

        self.cameraPlayer = 0
        self.netPlayer = 0
        self.catBar = None
        self.createBars()
        self.resetHitMemory()

        self.endingVal = -1
        self.endingValTick = 0

        self.fx = []

        self.platforms = getPlatforms(terrainLeft, terrainRight)

        self.countdown = countdown.Countdown(BATTLE_COUNTDOWN_LENGTH)
        self.createEndingText()

        self.damageTagRects = []
        self.damagePercentRects = []
        for i in range(2):
            rect = Rect((0, 0), (80, 100))
            if (i == 0):
                rect.left = 0
            else:
                rect.right = SCREEN_SIZE[0]
            rect.top = SCREEN_SIZE[1] - 55
            self.damageTagRects.append(rect)

            rect2 = Rect((0, 0), (80, 100))
            if (i == 0):
                rect2.left = 0
            else:
                rect2.right = SCREEN_SIZE[0]
            rect2.top = rect.top + 18
            self.damagePercentRects.append(rect2)

        self.damageTag = textrect.render_textrect("Strength",
                                                  STRUCTURE_COUNT_FONT,
                                                  self.damageTagRects[0],
                                                  ALMOST_BLACK, BLACK, 1, True)
Пример #13
0
    def __init__(self, isHost):
        super(Model, self).__init__()

        self.bgs = [
            scrollingbackground.ScrollingBackground(Rect(
                (0, 0), SCREEN_SIZE), CHARACTER_SELECT_BG_SKY, [0, 0]),
            scrollingbackground.ScrollingBackground(
                Rect((0, SCREEN_SIZE[1] -
                      CHARACTER_SELECT_BG_MOUNTAINS_FAR.get_size()[1] - 70),
                     SCREEN_SIZE), CHARACTER_SELECT_BG_MOUNTAINS_FAR,
                [-0.3, 0]),
            scrollingbackground.ScrollingBackground(
                Rect((0, SCREEN_SIZE[1] -
                      CHARACTER_SELECT_BG_MOUNTAINS_NEAR.get_size()[1]),
                     SCREEN_SIZE), CHARACTER_SELECT_BG_MOUNTAINS_NEAR,
                [-0.8, 0])
        ]

        self.starting = False
        self.map = None

        self.netMessage = None

        self.subScreen = 0

        if isHost:
            self.playerNum = 0
        else:
            self.playerNum = 1

        #Create Map-selection Panel
        rect = Rect((0, 0), CHARACTER_SELECTION_PANEL_SIZE)
        rect.centerx = SCREEN_SIZE[0] / 2
        rect.top = CHARACTER_SELECTION_PANEL_SPACING
        self.mapPanel = Panel(0, isHost, rect)

        self.characterPanels = []

        tempRect = Rect((50, 50), (200, 0))
        menuOptions = []
        for map in gamemap.getMapList():
            menuOptions.append(map.name + " (" +
                               str(len(map.startingPoints[0])) + ")")
        menuOptions.append("<RANDOM>")

        self.mapMenu = minimenu.MiniMenu(tempRect, menuOptions, MAIN_MENU_FONT,
                                         MAIN_MENU_COLOR_ON,
                                         MAIN_MENU_COLOR_OFF,
                                         MAIN_MENU_COLOR_BG)
        self.mapMenu.center(ENTIRE_SCREEN, True, True)

        #Create Species Selection Menu
        speciesClasses = [(mapchar.Hare, hare.Hare), (mapchar.Cat, cat.Cat)]
        speciesList = []
        for speciesClassGroup in speciesClasses:
            mapClass = speciesClassGroup[0]
            battleClass = speciesClassGroup[1]
            speciesList.append(mapClass(self.playerNum, battleClass()))

        self.speciesDialog = DetailDialog(SPECIES_SELECTION_DIALOG_SLOT_SIZE,
                                          SPECIES_SELECTION_DIALOG_MARGIN,
                                          SPECIES_SELECTION_DIALOG_SPACING,
                                          speciesList, [4, 2])

        self.currCharacterPanel = None

        self.readyPanels = [None, None]

        self.goPanel = None
Пример #14
0
 def __init__(self, isHost):
     super(Model, self).__init__()
     
     self.bgs = [scrollingbackground.ScrollingBackground(Rect((0, 0),
                                                              SCREEN_SIZE), CHARACTER_SELECT_BG_SKY, [0, 0]),
                 
                 scrollingbackground.ScrollingBackground(Rect((0, SCREEN_SIZE[1] - CHARACTER_SELECT_BG_MOUNTAINS_FAR.get_size()[1] - 70),
                                                              SCREEN_SIZE), CHARACTER_SELECT_BG_MOUNTAINS_FAR, [-0.3, 0]),
                 
                 scrollingbackground.ScrollingBackground(Rect((0, SCREEN_SIZE[1] - CHARACTER_SELECT_BG_MOUNTAINS_NEAR.get_size()[1]),
                                                              SCREEN_SIZE), CHARACTER_SELECT_BG_MOUNTAINS_NEAR, [-0.8, 0])
                 ]
     
     self.starting = False
     self.map = None
     
     self.netMessage = None
     
     self.subScreen = 0
     
     if isHost:
         self.playerNum = 0
     else:
         self.playerNum = 1
         
     #Create Map-selection Panel
     rect = Rect((0,0), CHARACTER_SELECTION_PANEL_SIZE)
     rect.centerx = SCREEN_SIZE[0] / 2
     rect.top = CHARACTER_SELECTION_PANEL_SPACING
     self.mapPanel = Panel(0, isHost, rect)
     
     self.characterPanels = []
     
     tempRect = Rect( (50, 50), (200, 0) )
     menuOptions = []
     for map in gamemap.getMapList():
         menuOptions.append(map.name + " (" + str(len(map.startingPoints[0])) + ")")
     menuOptions.append("<RANDOM>")
         
     self.mapMenu = minimenu.MiniMenu(tempRect, menuOptions,
                                      MAIN_MENU_FONT, MAIN_MENU_COLOR_ON,
                                      MAIN_MENU_COLOR_OFF,
                                      MAIN_MENU_COLOR_BG)
     self.mapMenu.center(ENTIRE_SCREEN, True, True)
     
     
     
     #Create Species Selection Menu
     speciesClasses = [(mapchar.Hare, hare.Hare),
                       (mapchar.Cat, cat.Cat)]
     speciesList = []
     for speciesClassGroup in speciesClasses:
         mapClass = speciesClassGroup[0]
         battleClass = speciesClassGroup[1]
         speciesList.append(mapClass(self.playerNum, battleClass()))
         
     self.speciesDialog = DetailDialog(SPECIES_SELECTION_DIALOG_SLOT_SIZE, SPECIES_SELECTION_DIALOG_MARGIN,
                                       SPECIES_SELECTION_DIALOG_SPACING, speciesList, [4, 2] )
                 
     self.currCharacterPanel = None
     
     self.readyPanels = [None, None]
     
     self.goPanel = None