def add_player(self): print("add_player") #roll initiative player = Encounter() initiative = self.ui.spinBox_initiative.value() player.set_option('initiative', initiative) hp = self.ui.spinBox_hp.value() player.set_option('hp', hp) player.set_option('maxHP',hp) #if this seems strange, i have to ensure this function always updates #the name combo box. Because comboBox_name.insertPolicy is set to do nothing. self.ui.comboBox_name.insertItem(self.ui.comboBox_name.currentIndex(), self.ui.comboBox_name.currentText()) name = self.ui.comboBox_name.currentText() player.set_option('name', name) player.set_option('groupOf', 1) item = QListWidgetItem("%s | %s | hp:%s" % ( initiative, name, hp)) # initiative window requires these attributes be added to items item.encounter = player item.encounter.set_option('id', -1) self.main.ui.listWidget_Encounter.addItem(item) self.ui.comboBox_name.setEditText('') self.ui.spinBox_initiative.setValue(1) self.ui.spinBox_hp.setValue(1) self.ui.comboBox_name.setFocus() self.close()
def collapse(self, inItem): print("collapse") EncounterId = inItem.encounter.get_option('id') encounter = inItem.encounter initiative = inItem.encounter.get_option('initiative') group = [] for row in range(0,len(self.ui.listWidget_Encounter)): if self.ui.listWidget_Encounter. \ item(row).encounter.get_option('id') == EncounterId: group.append(row) group.sort() insertPosition = min(group) group.reverse() groupHP = [] groupOf = 0 for row in group: current_item = self.ui.listWidget_Encounter.takeItem(row) groupHP.append(current_item.encounter.get_option('hp')) groupOf = groupOf + 1 encItem = QListWidgetItem("***") encItem.encounter = encounter encItem.encounter.set_option('initiative', initiative) encItem.encounter.set_option('id', EncounterId) encItem.encounter.set_option('groupHP', groupHP) encItem.encounter.set_option('groupOf', groupOf) update_text(encItem) self.ui.listWidget_Encounter.insertItem(insertPosition, encItem)
def load_session(self,fh=None): # print("load_session") try: if fh: with open(fh, 'rb') as fh: print("fh: {}".format(fh)) pack = pickle.load(fh) else: with open('saved_session.pickle', 'rb') as fh: print("fh2: {}".format(fh)) pack = pickle.load(fh) self.ui_e.itemID = pack['itemID'] self.ui_p.ui.comboBox_name.clear() for item in pack['players']: self.ui_p.ui.comboBox_name.insertItem(1,item) for row in range(0, len(self.ui_e.ui.listWidget_Display)): self.ui_e.ui.listWidget_Display.takeItem(0) for encounter in pack['encounters']: self.ui_e.add_item(encounter) for row in range(0,len(self.ui.listWidget_Encounter)): self.ui.listWidget_Encounter.takeItem(0) for encounter in pack['main']: item = QListWidgetItem("***") item.encounter = encounter update_text(item) self.ui.listWidget_Encounter.addItem(item) except: QMessageBox.question(self, 'Wisdom.', 'Sorry no save 0_o', QMessageBox.Ok)
def summon_item(self,encounter=False): print("summon_item") '''set display item for main window.''' for row in range(0,len(self.ui.listWidget_Display)): if self.ui.listWidget_Display.item(row).isSelected(): item = self.ui.listWidget_Display.item(row) encItem = QListWidgetItem('***') encItem.encounter = item.encounter.copy() update_text(encItem) self.main.ui.listWidget_Encounter.addItem(encItem)
def expands(self,row,item): print("expands") for hp in item.encounter.get_option('groupHP'): encItem = QListWidgetItem("***") encItem.encounter = item.encounter.copy() encItem.encounter.set_option('hp', hp) encItem.encounter.set_option('groupOf', 1) encItem.encounter.set_option('id', item.encounter.get_option('id')) encItem.encounter.set_option('initiative', item.encounter. get_option('initiative')) update_text(encItem) self.ui.listWidget_Encounter.insertItem((row + 1), encItem)
def add_item(self,encounter=False): print("add_item") if not encounter: dice_caddy = dice.dice() encounter = self.gen_creature() print("encounter built") #roll initiatives dex_mod = (encounter.get_option('DEX') - 10) / 2 encounter.set_option('initiative', dice_caddy.roll('1d20+%s' % (dex_mod))) groupHP = [] print("initiatives rolled") if encounter.get_option('groupOf') > 1: print("creating group HP divergence") for creature in range(0,encounter.get_option('groupOf')): print("for the hoard!") print("to_dice={}".format( encounter.to_dice() )) groupHP.append(dice_caddy.roll('%s' % encounter.to_dice())) encounter.set_option('groupHP', groupHP) else: print("HP for one plx.") print("to_dice={}".format(encounter.to_dice())) hp = dice_caddy.roll('%s' % encounter.to_dice()) print("hp created: {}".format(hp)) encounter.set_option('hp', hp) print("encounter hp set") encounter.set_option('type', self.ui.comboBox_type.currentText()) print("encounter type set") print("after option dice roll sets") # add item to encounter window item = QListWidgetItem("+ %s" % encounter.get_option('name')) print("QListWidgetItem created") item.txt = 0 item.setToolTip("%s" % encounter.to_string()) item.encounter = encounter item.encounter.set_option('id', self.vault.itemID) self.vault.ui.listWidget_Display.addItem(item) print("item added to ui list") self.vault.itemID += 1 #help keyboard users to get back to name self.close()