def _getDamage(item): cached = item.getUserCache('damagevalue') if not cached or cached.dirtyFlag: value = 0.0 damageInfos = inventoryutils.itemFindItemCardInfos(item, inventoryutils.eItemCardInfoValueText.Damage) for info in damageInfos: damageType = info.child('damageType').value() ivalue = info.child('Value').value() if damageType < 10: value += ivalue item.setUserCache('damagevalue', value, 10) else: value = cached.value return value
def _getDamage(item): cached = item.getUserCache('damagevalue') if not cached or cached.dirtyFlag: value = 0.0 damageInfos = inventoryutils.itemFindItemCardInfos( item, inventoryutils.eItemCardInfoValueText.Damage) for info in damageInfos: damageType = info.child('damageType').value() ivalue = info.child('Value').value() if damageType < 10: value += ivalue item.setUserCache('damagevalue', value, 10) else: value = cached.value return value
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("damageresisttext") if not cached or cached.dirtyFlag: text = "" isFirst = True damageInfos = inventoryutils.itemFindItemCardInfos( item, inventoryutils.eItemCardInfoValueText.DamageResist ) 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("damageresisttext", text, 10) else: text = cached.value return text elif column == pc + 3: cached = item.getUserCache("effectstext") descCount = 0 if not cached or cached.dirtyFlag: text = "" isFirst = True for info in item.child("itemCardInfoList").value(): itext = info.child("text").value() isDesc = info.child("showAsDescription") ivalue = info.child("Value").value() if ( not itext[0] == "$" and not itext[0] == "%" and ((isDesc and isDesc.value() and descCount == 0) or ivalue != 0.0) ): if isFirst: isFirst = False else: text += ", " text += itext if not isDesc or not isDesc.value(): duration = info.child("duration") scaleWithDur = info.child("scaleWithDuration") if scaleWithDur and scaleWithDur.value(): ivalue *= duration.value() asPercent = info.child("showAsPercent") if (not asPercent or not asPercent.value()) and ivalue > 0: text += " +" + str(int(ivalue)) else: text += " " + str(int(ivalue)) if asPercent and asPercent.value(): text += "%" if duration and duration.value() > 0.0: if scaleWithDur and scaleWithDur.value(): text += " over " else: text += " (" text += str(int(duration.value())) + "sec" if scaleWithDur and scaleWithDur.value(): pass else: text += ")" else: descCount += 1 item.setUserCache("effectstext", text, 10) else: text = cached.value return text # return inventoryutils.itemFindItemCardInfoValue(item, True, 'showAsDescription', 'text') elif column == pc + 4: text = "" i = 0 isFirst = True for section in item.child("PaperdollSection").value(): if section.value(): if isFirst: isFirst = False else: text += ", " text += itemApparelPaperDollSections[i] i += 1 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.AlignLeft elif column == pc + 4: return QtCore.Qt.AlignVCenter | QtCore.Qt.AlignLeft return super()._data(item, column, role)
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('damageresisttext') if not cached or cached.dirtyFlag: text = '' isFirst = True damageInfos = inventoryutils.itemFindItemCardInfos( item, inventoryutils.eItemCardInfoValueText.DamageResist) 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('damageresisttext', text, 10) else: text = cached.value return text elif column == pc + 3: cached = item.getUserCache('effectstext') descCount = 0 if not cached or cached.dirtyFlag: text = '' isFirst = True for info in item.child('itemCardInfoList').value(): itext = info.child('text').value() isDesc = info.child('showAsDescription') ivalue = info.child('Value').value() if not itext[0] == '$' and not itext[0] == '%' and ( (isDesc and isDesc.value() and descCount == 0) or ivalue != 0.0): if isFirst: isFirst = False else: text += ', ' text += itext if not isDesc or not isDesc.value(): duration = info.child('duration') scaleWithDur = info.child('scaleWithDuration') if scaleWithDur and scaleWithDur.value(): ivalue *= duration.value() asPercent = info.child('showAsPercent') if (not asPercent or not asPercent.value()) and ivalue > 0: text += ' +' + str(int(ivalue)) else: text += ' ' + str(int(ivalue)) if asPercent and asPercent.value(): text += '%' if duration and duration.value() > 0.0: if scaleWithDur and scaleWithDur.value(): text += ' over ' else: text += ' (' text += str(int(duration.value())) + 'sec' if scaleWithDur and scaleWithDur.value(): pass else: text += ')' else: descCount += 1 item.setUserCache('effectstext', text, 10) else: text = cached.value return text #return inventoryutils.itemFindItemCardInfoValue(item, True, 'showAsDescription', 'text') elif column == pc + 4: text = '' i = 0 isFirst = True for section in item.child('PaperdollSection').value(): if section.value(): if isFirst: isFirst = False else: text += ', ' text += itemApparelPaperDollSections[i] i += 1 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.AlignLeft elif column == pc + 4: return QtCore.Qt.AlignVCenter | QtCore.Qt.AlignLeft return super()._data(item, column, role)
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)