示例#1
0
 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
示例#2
0
 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)
示例#4
0
 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)
示例#5
0
 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)
            
示例#7
0
 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)
示例#8
0
 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)