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
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)