Beispiel #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)
 def createGoPanel(self):
     if (self.playerNum == 0 and
         (not self.readyPanels[0] is None and self.readyPanels[0].data.value == True) and
         (not self.readyPanels[1] is None and self.readyPanels[1].data.value == True)):
         
         rect = Rect((0,0), GO_PANEL_SIZE)
         rect.centerx = SCREEN_SIZE[0] / 2
         rect.bottom = SCREEN_SIZE[1] - CHARACTER_SELECTION_PANEL_SPACING
         goPanel = Panel(0, True, rect)
         goPanel.setData(GoData())
         
         self.goPanel = goPanel
    def createGoPanel(self):
        if (self.playerNum == 0
                and (not self.readyPanels[0] is None
                     and self.readyPanels[0].data.value == True)
                and (not self.readyPanels[1] is None
                     and self.readyPanels[1].data.value == True)):

            rect = Rect((0, 0), GO_PANEL_SIZE)
            rect.centerx = SCREEN_SIZE[0] / 2
            rect.bottom = SCREEN_SIZE[1] - CHARACTER_SELECTION_PANEL_SPACING
            goPanel = Panel(0, True, rect)
            goPanel.setData(GoData())

            self.goPanel = goPanel
    def selectMap(self, map, wasRandom):

        self.mapPanel.setData(MapData(map, wasRandom))

        numOfCharacterSlots = 0
        if not map is None:
            numOfCharacterSlots = len(map.startingPoints[0])

        self.characterPanels = []

        for i in range(2):
            xMid = (SCREEN_SIZE[0] / 4) * (1 + (i * 2))

            yMid = SCREEN_SIZE[1] / 2
            if (numOfCharacterSlots % 2 == 0):
                numToDisplaceFromCenter = (numOfCharacterSlots / 2) - 1
                yMid -= (CHARACTER_SELECTION_PANEL_SPACING /
                         2) + (CHARACTER_SELECTION_PANEL_SIZE[1] / 2)
            else:
                numToDisplaceFromCenter = int(numOfCharacterSlots / 2)

            yMid -= (
                CHARACTER_SELECTION_PANEL_SPACING +
                CHARACTER_SELECTION_PANEL_SIZE[1]) * numToDisplaceFromCenter

            for j in range(numOfCharacterSlots):
                rect = Rect((0, 0), CHARACTER_SELECTION_PANEL_SIZE)
                rect.centerx = xMid
                rect.centery = yMid + ((CHARACTER_SELECTION_PANEL_SPACING +
                                        CHARACTER_SELECTION_PANEL_SIZE[1]) * j)
                self.characterPanels.append(
                    Panel(i, (self.playerNum == i), rect))

            rect = rect = Rect((0, 0), READY_PANEL_SIZE)
            rect.centerx = xMid
            rect.bottom = SCREEN_SIZE[1] - CHARACTER_SELECTION_PANEL_SPACING
            readyPanel = Panel(i, (self.playerNum == i), rect)
            readyPanel.faceUp = True
            readyPanel.setData(ReadyData(False))
            self.readyPanels[i] = readyPanel

        self.subScreen = 0
 def selectMap(self, map, wasRandom):
     
     self.mapPanel.setData(MapData(map, wasRandom))
     
     numOfCharacterSlots = 0
     if not map is None:
         numOfCharacterSlots = len(map.startingPoints[0])
         
     self.characterPanels = []
     
     for i in range(2):
         xMid = (SCREEN_SIZE[0] / 4) * (1 + (i * 2))
         
         yMid = SCREEN_SIZE[1] / 2
         if (numOfCharacterSlots % 2 == 0):
             numToDisplaceFromCenter = (numOfCharacterSlots / 2) - 1
             yMid -= (CHARACTER_SELECTION_PANEL_SPACING / 2) + (CHARACTER_SELECTION_PANEL_SIZE[1] / 2)
         else:
             numToDisplaceFromCenter = int(numOfCharacterSlots / 2)
             
         yMid -= (CHARACTER_SELECTION_PANEL_SPACING + CHARACTER_SELECTION_PANEL_SIZE[1]) * numToDisplaceFromCenter
             
         
         for j in range(numOfCharacterSlots):
             rect = Rect((0,0), CHARACTER_SELECTION_PANEL_SIZE)
             rect.centerx = xMid
             rect.centery = yMid + ((CHARACTER_SELECTION_PANEL_SPACING + CHARACTER_SELECTION_PANEL_SIZE[1]) * j)
             self.characterPanels.append(Panel(i, (self.playerNum == i), rect))
             
         rect = rect = Rect((0,0), READY_PANEL_SIZE)
         rect.centerx = xMid
         rect.bottom = SCREEN_SIZE[1] - CHARACTER_SELECTION_PANEL_SPACING
         readyPanel = Panel(i, (self.playerNum == i), rect)
         readyPanel.faceUp = True
         readyPanel.setData(ReadyData(False))
         self.readyPanels[i] = readyPanel
         
     self.subScreen = 0
Beispiel #6
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)