def buildPopup(self, instance): '''Builds a popup instance.text = player.name''' content = BoxLayout(orientation='vertical') for entry in Mafia.aliveList: if entry.name == instance.text: player = entry popup = Popup(title=player.role, content = content, size_hint=(.8, .8), auto_dismiss=False) dismissButton = Factory.SmallTextButton(size_hint=(1, .3), text='Take no action') if gameRoles.get(player.role).get('target') == True: actionGrid = GridLayout(cols=2, padding=5, spacing=5) content.add_widget(actionGrid) #adds feedback to button text if player.faction == 'Mafia': if self.mafiaKill == True: label = Label(text='One of your partners has already preformed your team kill') content.add_widget(label) else: self.mafiaKill = True label = Label(text='Preform the Mafia faction kill.', size_hint=(1, .2)) content.add_widget(label) for entry in [i for i in Mafia.aliveList if i.faction == 'Town']: button = ToggleButton(text=entry.name, group='Town') button.action = 'kill' button.bind(on_press=self.update) actionGrid.add_widget(button) dismissButton.text = ('Submit action: %(action)s %(target)s ' % {'action': button.action, 'target': self.killTarget}) elif player.role == 'Doctor': label = Label(text=gameRoles.get('Doctor').get('info'), size_hint=(1, .2)) for entry in [i for i in Mafia.aliveList if i.name != player.name]: button = Button(text=entry.name) button.action = 'protect' button.bind(on_press=self.update) actionGrid.add_widget(button) elif player.role == 'Cop': label = Label(text=gameRoles.get('Cop').get('info'), size_hint=(1, .2)) for entry in [i for i in Mafia.aliveList if i.name != player.name]: button = Button(text=entry.name) button.action = 'investigate' button.bind(on_press=self.investigate) button.bind(on_press=self.clearGrid) actionGrid.add_widget(button) else: content.add_widget(Label(text='Hello %s' % player.name)) popup.name = instance.text content.add_widget(dismissButton) dismissButton.bind(on_press=popup.dismiss) popup.bind(on_dismiss=self.removeButton) popup.open()