def test_average_rating_no_players(qtbot): import config config.no_dialogs = True import client from games.gameitem import GameItem players = [] g = GameItem(0) client.players = dict(map(lambda p: (p.id, p), players)) g.client = client g.players = players assert 0 == g.average_rating
def test_average_rating(qtbot): import config config.no_dialogs = True import client from client import Player from games.gameitem import GameItem players = [Player(id=1, login='******', global_rating=(2000, 200)), Player(id=2, login='******', global_rating=(1000, 150)), Player(id=3, login='******', global_rating=(1200, 100))] g = GameItem(0) client.players = dict(map(lambda p: (p.id, p), players)) g.client = client g.players = players expected_average_rating = sum([conservative_estimate(p.global_rating) for p in players]) / len(players) assert expected_average_rating == g.average_rating
def processGameInfo(self, message): ''' Slot that interprets and propagates game_info messages into GameItems ''' uid = message["uid"] if uid not in self.games: self.games[uid] = GameItem(uid) self.gameList.addItem(self.games[uid]) self.games[uid].update(message, self.client) if message['state'] == 'open' and message['access'] == 'public': self.client.notificationSystem.on_event( ns.NotificationSystem.NEW_GAME, message) else: self.games[uid].update(message, self.client) # Hide private games if self.hideGamesWithPw.isChecked( ) and message['state'] == 'open' and message['access'] == 'password': self.games[uid].setHidden(True) # Special case: removal of a game that has ended if message['state'] == "closed": if uid in self.games: self.gameList.takeItem(self.gameList.row(self.games[uid])) del self.games[uid] return
def processGameInfo(self, message): ''' Slot that interprets and propagates game_info messages into GameItems ''' uid = message["uid"] if message["featured_mod"] == "coop": if 'max_players' in message: message["max_players"] = 4 if uid not in self.games: self.games[uid] = GameItem(uid) self.gameList.addItem(self.games[uid]) self.games[uid].update(message, self.client) else: self.games[uid].update(message, self.client) if message['state'] == "open": # force the display. self.games[uid].setHidden(False) #Special case: removal of a game that has ended if message['state'] == "closed": if uid in self.games: self.gameList.takeItem(self.gameList.row(self.games[uid])) del self.games[uid] return
def __init__(self, parent, item, *args, **kwargs): BaseClass.__init__(self, *args, **kwargs) self.setupUi(self) self.parent = parent self.parent.options = [] if len(item.options) == 0: self.optionGroup.setVisible(False) else: group_layout = QtGui.QVBoxLayout() self.optionGroup.setLayout(group_layout) for option in item.options: checkBox = QtGui.QCheckBox(self) checkBox.setText(option) checkBox.setChecked(True) group_layout.addWidget(checkBox) self.parent.options.append(checkBox) self.setStyleSheet(self.parent.client.styleSheet()) self.setWindowTitle("Hosting Game : " + item.name) self.titleEdit.setText(self.parent.gamename) self.passEdit.setText(self.parent.gamepassword) self.game = GameItem(0) self.gamePreview.setItemDelegate(GameItemDelegate(self)) self.gamePreview.addItem(self.game) self.message = {} self.message['title'] = self.parent.gamename self.message['host'] = self.parent.client.login self.message['teams'] = {1: [self.parent.client.login]} # self.message.get('access', 'public') self.message['featured_mod'] = "faf" self.message['mapname'] = self.parent.gamemap self.message['state'] = "open" self.game.update(self.message, self.parent.client) i = 0 index = 0 if self.parent.canChooseMap == True: allmaps = dict() for map in maps.maps.keys() + maps.getUserMaps(): allmaps[map] = maps.getDisplayName(map) for (map, name) in sorted(allmaps.iteritems(), key=lambda x: x[1]): if map == self.parent.gamemap: index = i self.mapList.addItem(name, map) i = i + 1 self.mapList.setCurrentIndex(index) else: self.mapList.hide() icon = maps.preview(self.parent.gamemap, True) if not icon: icon = util.icon("games/unknown_map.png", False, True) self.mods = {} #this makes it so you can select every non-ui_only mod for mod in modvault.getInstalledMods(): if mod.ui_only: continue self.mods[mod.totalname] = mod self.modList.addItem(mod.totalname) names = [mod.totalname for mod in modvault.getActiveMods(uimods=False)] logger.debug("Active Mods detected: %s" % str(names)) for name in names: l = self.modList.findItems(name, QtCore.Qt.MatchExactly) logger.debug("found item: %s" % l[0].text()) if l: l[0].setSelected(True) #self.mapPreview.setPixmap(icon) self.mapList.currentIndexChanged.connect(self.mapChanged) self.hostButton.released.connect(self.hosting) self.titleEdit.textChanged.connect(self.updateText) self.modList.itemClicked.connect(self.modclicked)
def __init__(self, parent, item, *args, **kwargs): BaseClass.__init__(self, *args, **kwargs) self.setupUi(self) self.parent = parent self.setStyleSheet(self.parent.client.styleSheet()) self.setWindowTitle ( "Hosting Game : " + item.name ) self.titleEdit.setText ( self.parent.gamename ) self.passEdit.setText ( self.parent.gamepassword ) self.game = GameItem(0) self.gamePreview.setItemDelegate(GameItemDelegate(self)) self.gamePreview.addItem(self.game) self.message = { "title": self.parent.gamename, "host": self.parent.client.login, "teams": {1:[self.parent.client.id]}, "featured_mod": "faf", "mapname": self.parent.gamemap, "state": "open", } self.game.update(self.message, self.parent.client) i = 0 index = 0 if self.parent.canChooseMap == True: allmaps = dict() for map in maps.maps.keys() + maps.getUserMaps(): allmaps[map] = maps.getDisplayName(map) for (map, name) in sorted(allmaps.iteritems(), key=lambda x: x[1]): if map == self.parent.gamemap : index = i self.mapList.addItem(name, map) i = i + 1 self.mapList.setCurrentIndex(index) else: self.mapList.hide() self.mods = {} #this makes it so you can select every non-ui_only mod for mod in modvault.getInstalledMods(): if mod.ui_only: continue self.mods[mod.totalname] = mod self.modList.addItem(mod.totalname) names = [mod.totalname for mod in modvault.getActiveMods(uimods=False)] logger.debug("Active Mods detected: %s" % str(names)) for name in names: l = self.modList.findItems(name, QtCore.Qt.MatchExactly) logger.debug("found item: %s" % l[0].text()) if l: l[0].setSelected(True) self.radioFriends.setChecked(self.parent.friends_only) self.mapList.currentIndexChanged.connect(self.mapChanged) self.hostButton.released.connect(self.hosting) self.titleEdit.textChanged.connect(self.updateText)
class HostgameWidget(FormClass, BaseClass): def __init__(self, parent, item, *args, **kwargs): BaseClass.__init__(self, *args, **kwargs) self.setupUi(self) self.parent = parent self.setStyleSheet(self.parent.client.styleSheet()) self.setWindowTitle ( "Hosting Game : " + item.name ) self.titleEdit.setText ( self.parent.gamename ) self.passEdit.setText ( self.parent.gamepassword ) self.game = GameItem(0) self.gamePreview.setItemDelegate(GameItemDelegate(self)) self.gamePreview.addItem(self.game) self.message = { "title": self.parent.gamename, "host": self.parent.client.login, "teams": {1:[self.parent.client.id]}, "featured_mod": "faf", "mapname": self.parent.gamemap, "state": "open", } self.game.update(self.message, self.parent.client) i = 0 index = 0 if self.parent.canChooseMap == True: allmaps = dict() for map in maps.maps.keys() + maps.getUserMaps(): allmaps[map] = maps.getDisplayName(map) for (map, name) in sorted(allmaps.iteritems(), key=lambda x: x[1]): if map == self.parent.gamemap : index = i self.mapList.addItem(name, map) i = i + 1 self.mapList.setCurrentIndex(index) else: self.mapList.hide() self.mods = {} #this makes it so you can select every non-ui_only mod for mod in modvault.getInstalledMods(): if mod.ui_only: continue self.mods[mod.totalname] = mod self.modList.addItem(mod.totalname) names = [mod.totalname for mod in modvault.getActiveMods(uimods=False)] logger.debug("Active Mods detected: %s" % str(names)) for name in names: l = self.modList.findItems(name, QtCore.Qt.MatchExactly) logger.debug("found item: %s" % l[0].text()) if l: l[0].setSelected(True) self.radioFriends.setChecked(self.parent.friends_only) self.mapList.currentIndexChanged.connect(self.mapChanged) self.hostButton.released.connect(self.hosting) self.titleEdit.textChanged.connect(self.updateText) #self.modList.itemClicked.connect(self.modclicked) def updateText(self, text): self.message['title'] = text self.game.update(self.message, self.parent.client) def hosting(self): name = self.titleEdit.text().strip() if len(name) == 0: # TODO: Feedback to the UI that the name must not be blank. return if self.passCheck.isChecked(): password = self.passEdit.text() else: password = None # TODO: Remove this ridiculous use of a parent pointer. map = self.parent.gamemap self.parent.save_last_hosted_settings(name, map, password, self.radioFriends.isChecked()) self.done(1) def mapChanged(self, index): self.parent.gamemap = self.mapList.itemData(index) self.message['mapname'] = self.parent.gamemap self.game.update(self.message, self.parent.client)
def __init__(self, parent, item, *args, **kwargs): BaseClass.__init__(self, *args, **kwargs) self.setupUi(self) self.parent = parent self.parent.options = [] if len(item.options) == 0 : self.optionGroup.setVisible(False) else : group_layout = QtGui.QVBoxLayout() self.optionGroup.setLayout(group_layout) for option in item.options : checkBox = QtGui.QCheckBox(self) checkBox.setText(option) checkBox.setChecked(True) group_layout.addWidget(checkBox) self.parent.options.append(checkBox) self.setStyleSheet(self.parent.client.styleSheet()) self.setWindowTitle ( "Hosting Game : " + item.name ) self.titleEdit.setText ( self.parent.gamename ) self.passEdit.setText ( self.parent.gamepassword ) self.game = GameItem(0) self.gamePreview.setItemDelegate(GameItemDelegate(self)); self.gamePreview.addItem(self.game) self.message = {} self.message['title'] = self.parent.gamename self.message['host'] = self.parent.client.login self.message['teams'] = {1:[self.parent.client.login]} # self.message.get('access', 'public') self.message['featured_mod'] = "faf" self.message['mapname'] = self.parent.gamemap self.message['state'] = "open" self.game.update(self.message, self.parent.client) i = 0 index = 0 if self.parent.canChooseMap == True: allmaps = dict() for map in maps.maps.keys() + maps.getUserMaps(): allmaps[map] = maps.getDisplayName(map) for (map, name) in sorted(allmaps.iteritems(), key=lambda x: x[1]): if map == self.parent.gamemap : index = i self.mapList.addItem(name, map) i = i + 1 self.mapList.setCurrentIndex(index) else: self.mapList.hide() icon = maps.preview(self.parent.gamemap, True) if not icon: icon = util.icon("games/unknown_map.png", False, True) self.mods = {} #this makes it so you can select every non-ui_only mod for mod in modvault.getInstalledMods(): if mod.ui_only: continue self.mods[mod.totalname] = mod self.modList.addItem(mod.totalname) names = [mod.totalname for mod in modvault.getActiveMods(uimods=False)] logger.debug("Active Mods detected: %s" % str(names)) for name in names: l = self.modList.findItems(name, QtCore.Qt.MatchExactly) logger.debug("found item: %s" % l[0].text()) if l: l[0].setSelected(True) #self.mapPreview.setPixmap(icon) self.mapList.currentIndexChanged.connect(self.mapChanged) self.hostButton.released.connect(self.hosting) self.titleEdit.textChanged.connect(self.updateText) self.modList.itemClicked.connect(self.modclicked)