def getPowerArmorItems(self): equipedPA = [] for item in powerArmorPaperDollSlots: self.paHP[item + 'Cur'] = 0 if (self.pipInventoryInfo): def _filterFunc(item): return inventoryutils.itemHasAnyFilterCategory(item, inventoryutils.eItemFilterCategory.Apparel) power_armor = inventoryutils.inventoryGetItems(self.pipInventoryInfo, _filterFunc) for item in power_armor: if (item.child('isPowerArmorItem').value() and (item.child('equipState').value() == 1)): itemHealthTxt = inventoryutils.itemFindItemCardInfoValue(item, '$health') itemHealth = itemHealthTxt.split('/') i = 0 paperDollLoc = None for section in item.child('PaperdollSection').value(): if section.value(): self.paHP[powerArmorPaperDollSlots[i] + 'Cur'] = int(itemHealth[0]) self.paHP[powerArmorPaperDollSlots[i] + 'Max'] = int(itemHealth[1]) maxHP = self.paHP[powerArmorPaperDollSlots[i] + 'Max'] curHP = self.paHP[powerArmorPaperDollSlots[i] + 'Cur'] percentHP = (curHP*100/maxHP) paSlot = powerArmorPaperDollSlots[i] self.setPowerArmorCondition(paSlot,percentHP, paCords[paSlot]['x'],paCords[paSlot]['y']) equipedPA.append(powerArmorPaperDollSlots[i]) i+=1 for item in powerArmorPaperDollSlots: if (not item in equipedPA and (not item == 'None')): paSlot = item self.setPowerArmorCondition(paSlot,'Empty', paCords[paSlot]['x'],paCords[paSlot]['y'])
def getPowerArmorItems(self): equipedPA = [] for item in powerArmorPaperDollSlots: self.paHP[item + 'Cur'] = 0 if (self.pipInventoryInfo): def _filterFunc(item): return inventoryutils.itemHasAnyFilterCategory(item, inventoryutils.eItemFilterCategory.Apparel) power_armor = inventoryutils.inventoryGetItems(self.pipInventoryInfo, _filterFunc) for item in power_armor: if (item.child('isPowerArmorItem').value() and (item.child('equipState').value() == 1)): itemHealthTxt = inventoryutils.itemFindItemCardInfoValue(item, '$health') itemHealth = itemHealthTxt.split('/') itemTxt = item.child('text').value() i = 0 paperDollLoc = None for section in item.child('PaperdollSection').value(): if section.value(): self.paHP[powerArmorPaperDollSlots[i] + 'Cur'] = int(itemHealth[0]) self.paHP[powerArmorPaperDollSlots[i] + 'Max'] = int(itemHealth[1]) maxHP = self.paHP[powerArmorPaperDollSlots[i] + 'Max'] curHP = self.paHP[powerArmorPaperDollSlots[i] + 'Cur'] percentHP = (curHP*100/maxHP) if itemTxt: self.widget.headItemLabel.setText(itemTxt) self.setWidgetValues(powerArmorPaperDollSlots[i],percentHP, itemHealthTxt,itemTxt) equipedPA.append(powerArmorPaperDollSlots[i]) i+=1 for item in powerArmorPaperDollSlots: if (not item in equipedPA and (not item == 'Body')): self.setWidgetValues(item,0, 'Empty',' ')
def _data(self, item, column, role=QtCore.Qt.DisplayRole): if role == QtCore.Qt.DisplayRole: if column == 0: return item.child('text').value() elif column == 1: return item.child('count').value() elif column == 2: return round( inventoryutils.itemFindItemCardInfoValue( item, inventoryutils.eItemCardInfoValueText.Value), 2) elif column == 3: return round( inventoryutils.itemFindItemCardInfoValue( item, inventoryutils.eItemCardInfoValueText.Weight), 2) elif column == 4: value = inventoryutils.itemFindItemCardInfoValue( item, inventoryutils.eItemCardInfoValueText.Value) weight = inventoryutils.itemFindItemCardInfoValue( item, inventoryutils.eItemCardInfoValueText.Weight) try: if value == 0.0: return 0.0 elif weight == 0.0: return float('inf') else: return round(value / weight, 2) except: return None elif role == QtCore.Qt.TextAlignmentRole: if column == 0: return QtCore.Qt.AlignVCenter | QtCore.Qt.AlignLeft elif column == 1: return QtCore.Qt.AlignVCenter | QtCore.Qt.AlignRight elif column == 2: return QtCore.Qt.AlignVCenter | QtCore.Qt.AlignRight elif column == 3: return QtCore.Qt.AlignVCenter | QtCore.Qt.AlignRight elif column == 4: return QtCore.Qt.AlignVCenter | QtCore.Qt.AlignRight elif role == QtCore.Qt.FontRole: if item.child('equipState').value() > 0: font = QtGui.QFont() font.setBold(True) return font return None
def _data(self, item, column, role=QtCore.Qt.DisplayRole): if role == QtCore.Qt.DisplayRole: if column == 0: return item.child("text").value() elif column == 1: return item.child("count").value() elif column == 2: return round( inventoryutils.itemFindItemCardInfoValue(item, inventoryutils.eItemCardInfoValueText.Value), 2 ) elif column == 3: return round( inventoryutils.itemFindItemCardInfoValue(item, inventoryutils.eItemCardInfoValueText.Weight), 2 ) elif column == 4: value = inventoryutils.itemFindItemCardInfoValue(item, inventoryutils.eItemCardInfoValueText.Value) weight = inventoryutils.itemFindItemCardInfoValue(item, inventoryutils.eItemCardInfoValueText.Weight) try: if value == 0.0: return 0.0 elif weight == 0.0: return float("inf") else: return round(value / weight, 2) except: return None elif role == QtCore.Qt.TextAlignmentRole: if column == 0: return QtCore.Qt.AlignVCenter | QtCore.Qt.AlignLeft elif column == 1: return QtCore.Qt.AlignVCenter | QtCore.Qt.AlignRight elif column == 2: return QtCore.Qt.AlignVCenter | QtCore.Qt.AlignRight elif column == 3: return QtCore.Qt.AlignVCenter | QtCore.Qt.AlignRight elif column == 4: return QtCore.Qt.AlignVCenter | QtCore.Qt.AlignRight elif role == QtCore.Qt.FontRole: if item.child("equipState").value() > 0: font = QtGui.QFont() font.setBold(True) return font return None
def updateWeaponViews(self): self.grenademodel.clear() selectedgrenade = -1 grenadecounter = 0 self.widget.label_EquipedWeapon.setText('') self.widget.lblRofAccRng.setText('') self.widget.lblPdmgIcon.setVisible(False) self.widget.lblPdmg.setVisible(False) self.widget.lblEdmgIcon.setVisible(False) self.widget.lblEdmg.setVisible(False) self.widget.lblRdmgIcon.setVisible(False) self.widget.lblRdmg.setVisible(False) self.widget.lblPodmgIcon.setVisible(False) self.widget.lblPodmg.setVisible(False) def _filterFunc(item): return inventoryutils.itemHasAnyFilterCategory( item, inventoryutils.eItemFilterCategory.Weapon) weapons = inventoryutils.inventoryGetItems(self.pipInventoryInfo, _filterFunc) if (not weapons): return for weapon in weapons: name = weapon.child('text').value() if inventoryutils.itemIsWeaponThrowable(weapon): grenadecounter += 1 count = str(weapon.child('count').value()) if (weapon.child('equipState').value() == 3): equipState = "+" else: equipState = "" if (equipState == "+"): selectedgrenade = grenadecounter item = [ QStandardItem(equipState), QStandardItem(name), QStandardItem(count) ] item[2].setData(QtCore.Qt.AlignCenter, QtCore.Qt.TextAlignmentRole) self.grenademodel.appendRow(item) else: if (weapon.child('equipState').value() > 0): strEquipedWeapon = weapon.child('text').value() strAmmo = '' valueAmmo = inventoryutils.itemFindItemCardInfoValue( weapon, 10, 'damageType') if valueAmmo != None: strAmmo += ' (' + str(valueAmmo) + ')' self.widget.label_EquipedWeapon.setText(strEquipedWeapon + strAmmo) damageInfos = inventoryutils.itemFindItemCardInfos( weapon, inventoryutils.eItemCardInfoValueText.Damage) for info in damageInfos: damageType = info.child('damageType').value() value = info.child('Value').value() if itemCardInfoDamageTypes[ damageType] == 'Phy' and value != 0.0: self.widget.lblPdmg.setText(str(int(value))) self.widget.lblPdmg.setVisible(True) self.widget.lblPdmgIcon.setVisible(True) elif itemCardInfoDamageTypes[ damageType] == 'En' and value != 0.0: self.widget.lblEdmg.setText(str(int(value))) self.widget.lblEdmg.setVisible(True) self.widget.lblEdmgIcon.setVisible(True) elif itemCardInfoDamageTypes[ damageType] == 'Rad' and value != 0.0: self.widget.lblRdmg.setText(str(int(value))) self.widget.lblRdmg.setVisible(True) self.widget.lblRdmgIcon.setVisible(True) elif itemCardInfoDamageTypes[ damageType] == 'Po' and value != 0.0: self.widget.lblPodmg.setText(str(int(value))) self.widget.lblPodmg.setVisible(True) self.widget.lblPodmgIcon.setVisible(True) pass RofAccRngStr = '' rof = inventoryutils.itemFindItemCardInfoValue( weapon, inventoryutils.eItemCardInfoValueText.RateOfFire) if rof == None: speed = inventoryutils.itemFindItemCardInfoValue( weapon, inventoryutils.eItemCardInfoValueText.Speed) if speed: RofAccRngStr = 'Speed: ' + speed[1:].lower() else: RofAccRngStr = 'RoF: ' + str(round(rof, 2)) acc = inventoryutils.itemFindItemCardInfoValue( weapon, inventoryutils.eItemCardInfoValueText.Accuracy) if acc != None: RofAccRngStr += ' Acc: ' + str(round(acc, 2)) rng = inventoryutils.itemFindItemCardInfoValue( weapon, inventoryutils.eItemCardInfoValueText.Range) if rng != None: RofAccRngStr += ' Rng: ' + str(round(rng, 2)) self.widget.lblRofAccRng.setText(RofAccRngStr) self.widget.grenadeView.horizontalHeader().setSectionResizeMode( QHeaderView.ResizeToContents) self.widget.grenadeView.verticalHeader().setSectionResizeMode( QHeaderView.Fixed) self.widget.grenadeView.verticalHeader().setStretchLastSection(False) self.widget.grenadeView.horizontalHeader().setStretchLastSection(True) self.widget.grenadeView.setModel(self.grenademodel) if (selectedgrenade >= 1): self.widget.grenadeView.selectRow(selectedgrenade - 1) self.widget.grenadeView.hideColumn(0) self.widget.grenadeView.sortByColumn(1, QtCore.Qt.AscendingOrder)
def _data(self, item, column, role=QtCore.Qt.DisplayRole): pc = super().columnCount() if role == QtCore.Qt.DisplayRole: if column == pc: if item.child("equipState").value() > 0: return "◼" else: return "" elif column == pc + 1: if item.child("isLegendary").value() > 0: return "◼" else: return "" elif column == pc + 2: cached = item.getUserCache("damagetext") if not cached or cached.dirtyFlag: text = "" isFirst = True damageInfos = inventoryutils.itemFindItemCardInfos( item, inventoryutils.eItemCardInfoValueText.Damage ) for info in damageInfos: damageType = info.child("damageType").value() value = info.child("Value").value() if damageType < 10 and value != 0.0: if isFirst: isFirst = False else: text += " + " text += str(int(value)) text += " " + itemCardInfoDamageTypes[damageType] item.setUserCache("damagetext", text, 10) else: text = cached.value return text elif column == pc + 3: rof = inventoryutils.itemFindItemCardInfoValue(item, inventoryutils.eItemCardInfoValueText.RateOfFire) if rof == None: speed = inventoryutils.itemFindItemCardInfoValue(item, inventoryutils.eItemCardInfoValueText.Speed) if speed: return "Speed: " + speed[1:].lower() else: return None else: return round(rof, 2) elif column == pc + 4: rng = inventoryutils.itemFindItemCardInfoValue(item, inventoryutils.eItemCardInfoValueText.Range) if rng == None: return None else: return round(rng, 2) elif column == pc + 5: val = inventoryutils.itemFindItemCardInfoValue(item, inventoryutils.eItemCardInfoValueText.Accuracy) if val == None: return None else: return round(val, 2) elif column == pc + 6: return inventoryutils.itemFindItemCardInfoValue(item, True, "showAsDescription", "text") elif column == pc + 7: if inventoryutils.itemIsWeaponGun(item): return "Gun" elif inventoryutils.itemIsWeaponMelee(item): return "Melee" elif inventoryutils.itemIsWeaponThrowable(item): return "Grenade" else: return "Unknown" elif column == pc + 8: value = inventoryutils.itemFindItemCardInfoValue(item, 10, "damageType") text = None if value != None: text = inventoryutils.itemFindItemCardInfoValue(item, 10, "damageType", "text") text += " (" + str(value) + ")" return text elif role == QtCore.Qt.TextAlignmentRole: if column == pc: return QtCore.Qt.AlignVCenter | QtCore.Qt.AlignCenter elif column == pc + 1: return QtCore.Qt.AlignVCenter | QtCore.Qt.AlignCenter elif column == pc + 2: return QtCore.Qt.AlignVCenter | QtCore.Qt.AlignRight elif column == pc + 3: return QtCore.Qt.AlignVCenter | QtCore.Qt.AlignRight elif column == pc + 4: return QtCore.Qt.AlignVCenter | QtCore.Qt.AlignRight elif column == pc + 5: return QtCore.Qt.AlignVCenter | QtCore.Qt.AlignRight elif column == pc + 6: return QtCore.Qt.AlignVCenter | QtCore.Qt.AlignLeft elif column == pc + 7: return QtCore.Qt.AlignVCenter | QtCore.Qt.AlignLeft elif column == pc + 8: return QtCore.Qt.AlignVCenter | QtCore.Qt.AlignLeft return super()._data(item, column, role)
def updateWeaponViews(self): self.grenademodel.clear() selectedgrenade = -1 grenadecounter = 0 self.widget.label_EquipedWeapon.setText('') self.widget.lblRofAccRng.setText('') self.widget.lblPdmgIcon.setVisible(False) self.widget.lblPdmg.setVisible(False) self.widget.lblEdmgIcon.setVisible(False) self.widget.lblEdmg.setVisible(False) self.widget.lblRdmgIcon.setVisible(False) self.widget.lblRdmg.setVisible(False) self.widget.lblPodmgIcon.setVisible(False) self.widget.lblPodmg.setVisible(False) def _filterFunc(item): return inventoryutils.itemHasAnyFilterCategory(item, inventoryutils.eItemFilterCategory.Weapon) weapons = inventoryutils.inventoryGetItems(self.pipInventoryInfo, _filterFunc) if(not weapons): return for weapon in weapons: name = weapon.child('text').value() if inventoryutils.itemIsWeaponThrowable(weapon): grenadecounter += 1 count = str(weapon.child('count').value()) if (weapon.child('equipState').value() == 3): equipState = "+" else: equipState = "" if (equipState == "+"): selectedgrenade = grenadecounter item = [ QStandardItem(equipState) , QStandardItem(name) , QStandardItem(count) ] item[2].setData(QtCore.Qt.AlignCenter, QtCore.Qt.TextAlignmentRole) self.grenademodel.appendRow(item) else: if ( weapon.child('equipState').value() > 0): strEquipedWeapon = weapon.child('text').value() strAmmo = '' valueAmmo = inventoryutils.itemFindItemCardInfoValue(weapon, 10, 'damageType') if valueAmmo != None: strAmmo += ' (' + str(valueAmmo) + ')' self.widget.label_EquipedWeapon.setText(strEquipedWeapon + strAmmo) damageInfos = inventoryutils.itemFindItemCardInfos(weapon, inventoryutils.eItemCardInfoValueText.Damage) for info in damageInfos: damageType = info.child('damageType').value() value = info.child('Value').value() if itemCardInfoDamageTypes[damageType] == 'Phy' and value != 0.0: self.widget.lblPdmg.setText( str(int(value))) self.widget.lblPdmg.setVisible(True) self.widget.lblPdmgIcon.setVisible(True) elif itemCardInfoDamageTypes[damageType] == 'En' and value != 0.0: self.widget.lblEdmg.setText (str(int(value))) self.widget.lblEdmg.setVisible(True) self.widget.lblEdmgIcon.setVisible(True) elif itemCardInfoDamageTypes[damageType] == 'Rad' and value != 0.0: self.widget.lblRdmg.setText (str(int(value))) self.widget.lblRdmg.setVisible(True) self.widget.lblRdmgIcon.setVisible(True) elif itemCardInfoDamageTypes[damageType] == 'Po' and value != 0.0: self.widget.lblPodmg.setText (str(int(value))) self.widget.lblPodmg.setVisible(True) self.widget.lblPodmgIcon.setVisible(True) pass RofAccRngStr = '' rof = inventoryutils.itemFindItemCardInfoValue(weapon, inventoryutils.eItemCardInfoValueText.RateOfFire) if rof == None: speed = inventoryutils.itemFindItemCardInfoValue(weapon, inventoryutils.eItemCardInfoValueText.Speed) if speed: RofAccRngStr = 'Speed: ' + speed[1:].lower() else: RofAccRngStr = 'RoF: ' + str(round(rof, 2)) acc = inventoryutils.itemFindItemCardInfoValue(weapon, inventoryutils.eItemCardInfoValueText.Accuracy) if acc != None: RofAccRngStr += ' Acc: ' + str(round(acc, 2)) rng = inventoryutils.itemFindItemCardInfoValue(weapon, inventoryutils.eItemCardInfoValueText.Range) if rng != None: RofAccRngStr += ' Rng: ' + str(round(rng, 2)) self.widget.lblRofAccRng.setText(RofAccRngStr) self.widget.grenadeView.horizontalHeader().setSectionResizeMode(QHeaderView.ResizeToContents) self.widget.grenadeView.verticalHeader().setSectionResizeMode(QHeaderView.Fixed) self.widget.grenadeView.verticalHeader().setStretchLastSection(False) self.widget.grenadeView.horizontalHeader().setStretchLastSection(True) self.widget.grenadeView.setModel(self.grenademodel) if (selectedgrenade >=1): self.widget.grenadeView.selectRow(selectedgrenade-1) self.widget.grenadeView.hideColumn(0) self.widget.grenadeView.sortByColumn(1, QtCore.Qt.AscendingOrder)
def _data(self, item, column, role=QtCore.Qt.DisplayRole): pc = super().columnCount() if role == QtCore.Qt.DisplayRole: if column == pc: if item.child('equipState').value() > 0: return '◼' else: return '' elif column == pc + 1: if item.child('isLegendary').value() > 0: return '◼' else: return '' elif column == pc + 2: cached = item.getUserCache('damagetext') if not cached or cached.dirtyFlag: text = '' isFirst = True damageInfos = inventoryutils.itemFindItemCardInfos( item, inventoryutils.eItemCardInfoValueText.Damage) for info in damageInfos: damageType = info.child('damageType').value() value = info.child('Value').value() if damageType < 10 and value != 0.0: if isFirst: isFirst = False else: text += ' + ' text += str(int(value)) text += ' ' + itemCardInfoDamageTypes[damageType] item.setUserCache('damagetext', text, 10) else: text = cached.value return text elif column == pc + 3: rof = inventoryutils.itemFindItemCardInfoValue( item, inventoryutils.eItemCardInfoValueText.RateOfFire) if rof == None: speed = inventoryutils.itemFindItemCardInfoValue( item, inventoryutils.eItemCardInfoValueText.Speed) if speed: return 'Speed: ' + speed[1:].lower() else: return None else: return round(rof, 2) elif column == pc + 4: rng = inventoryutils.itemFindItemCardInfoValue( item, inventoryutils.eItemCardInfoValueText.Range) if rng == None: return None else: return round(rng, 2) elif column == pc + 5: val = inventoryutils.itemFindItemCardInfoValue( item, inventoryutils.eItemCardInfoValueText.Accuracy) if val == None: return None else: return round(val, 2) elif column == pc + 6: return inventoryutils.itemFindItemCardInfoValue( item, True, 'showAsDescription', 'text') elif column == pc + 7: if inventoryutils.itemIsWeaponGun(item): return 'Gun' elif inventoryutils.itemIsWeaponMelee(item): return 'Melee' elif inventoryutils.itemIsWeaponThrowable(item): return 'Grenade' else: return 'Unknown' elif column == pc + 8: value = inventoryutils.itemFindItemCardInfoValue( item, 10, 'damageType') text = None if value != None: text = inventoryutils.itemFindItemCardInfoValue( item, 10, 'damageType', 'text') text += ' (' + str(value) + ')' return text elif role == QtCore.Qt.TextAlignmentRole: if column == pc: return QtCore.Qt.AlignVCenter | QtCore.Qt.AlignCenter elif column == pc + 1: return QtCore.Qt.AlignVCenter | QtCore.Qt.AlignCenter elif column == pc + 2: return QtCore.Qt.AlignVCenter | QtCore.Qt.AlignRight elif column == pc + 3: return QtCore.Qt.AlignVCenter | QtCore.Qt.AlignRight elif column == pc + 4: return QtCore.Qt.AlignVCenter | QtCore.Qt.AlignRight elif column == pc + 5: return QtCore.Qt.AlignVCenter | QtCore.Qt.AlignRight elif column == pc + 6: return QtCore.Qt.AlignVCenter | QtCore.Qt.AlignLeft elif column == pc + 7: return QtCore.Qt.AlignVCenter | QtCore.Qt.AlignLeft elif column == pc + 8: return QtCore.Qt.AlignVCenter | QtCore.Qt.AlignLeft return super()._data(item, column, role)