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()
def buildPopup(self, instance): '''Builds a popup, instance.text == Player.name''' #search for Player() content = BoxLayout(orientation='vertical') for entry in Mafia.aliveList: if entry.name == instance.text: player = entry content.add_widget(multiLineLabel(text=gameRoles.get(player.role).get('info'), halign='center', valign='middle' )) if gameRoles.get(player.role).get('partner') == True: if player.role == 'Mason': #search for other masons partners = [] for entry in Mafia.aliveList: if entry.role == 'Mason': partners.append(entry) partners[:] = [i for i in partners if i.name != instance.text] partnerStr = '' for n in partners: partnerStr += '\n' + n.name + ' the Mason' else: partners = [] for entry in Mafia.aliveList: if entry.faction == 'Mafia': partners.append(entry) #removes playerName from set via instance.text partners[:] = [i for i in partners if i.name != instance.text] partnerStr = '' #build a string for n in partners: partnerStr += '\n ' + n.name + ' the ' + n.role + '\n' content.add_widget(Label(text=(' You are teamed up with: [b]%s[/b]' % partnerStr), markup=True, halign='center', valign='middle')) rolePopup = Popup(title =('Hello, %s' % instance.name), content=content, size_hint=(.8, .8), auto_dismiss=False) rolePopup.name = instance.text #dismissButton = Button(text='Destroy this message') #dismissButton.bind(on_press=rolePopup.dismiss) button = Factory.SmallTextButton(text='Destroy this message') content.add_widget(button) button.bind(on_press=rolePopup.dismiss) rolePopup.bind(on_dismiss=self.removeButton) rolePopup.open()