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',' ')
Esempio n. 2
0
    def _slotInfoUpdated(self):
        if self.pipInventoryInfo and self.playerDataPath is not None:

            def _filterFunc(i):
                if (inventoryutils.itemHasAnyFilterCategory(
                        i, inventoryutils.eItemFilterCategory.Misc) and
                    (self.collectableFormIDs is not None and
                     i.child('formID').value() in self.collectableFormIDs)):
                    return True
                else:
                    return False

            collectables = inventoryutils.inventoryGetItems(
                self.pipInventoryInfo, _filterFunc)
            index = self._app.settings.value(
                self.playerDataPath + self.collectedcollectablesuffix, None)
            if index is None:
                index = []
            if collectables is not None and self.pipPlayerName is not None:
                for item in collectables:
                    if str(item.child('formID').value()) not in index:
                        index.append(str(item.child('formID').value()))
            if self.globalMap is not None:
                if self.fullUpdateFlag:
                    index = list(set(index))  # Remove duplicates
                    self.globalMap.iwcSetCollectablesCollectedState(
                        index, True)
                    self.fullUpdateFlag = False
                else:
                    self.globalMap.iwcSetCollectablesCollectedState(
                        index, False)
            else:
                self._logger.error("No globalmap?")
            self._app.settings.setValue(
                self.playerDataPath + self.collectedcollectablesuffix, index)
Esempio n. 3
0
 def _slotInfoUpdated(self):
     self.availableGrenades = []
     if (self.pipInventoryInfo):
         def _filterFunc(item):
             return inventoryutils.itemHasAnyFilterCategory(item, inventoryutils.eItemFilterCategory.Weapon)
         weapons = inventoryutils.inventoryGetItems(self.pipInventoryInfo, _filterFunc)
         if(not weapons):
             return
         for weapon in weapons:        
             equipped = False
             if inventoryutils.itemIsWeaponThrowable(weapon):        
                 count = str(weapon.child('count').value())
                 name = str(weapon.child('text').value())
                 if (weapon.child('equipState').value() == 3):
                     equipped = True
                     self.lastEquippedGrenade = name.lower()
                 
                 self.availableGrenades.append([name.lower(), equipped])
                 
     self.availableRadioStations = []
     if(self.pipRadioInfo):
         for i in range(0, self.pipRadioInfo.childCount()):
             station = self.pipRadioInfo.child(i)
             if station.child('inRange').value():
                 self.availableRadioStations.append(station)
             if station.child('active').value():
                 self.currentRadioStation = station
 def _slotInfoUpdated(self):
     if self.pipInventoryInfo and self.playerDataPath is not None:
         def _filterFunc(i):
             if (inventoryutils.itemHasAnyFilterCategory(i, inventoryutils.eItemFilterCategory.Misc) and
                     (self.collectableFormIDs is not None and i.child('formID').value() in self.collectableFormIDs)):
                 return True
             else:
                 return False
         collectables = inventoryutils.inventoryGetItems(self.pipInventoryInfo, _filterFunc)
         index = self._app.settings.value(self.playerDataPath + self.collectedcollectablesuffix, None)
         if index is None:
             index = []
         if collectables is not None and self.pipPlayerName is not None:
             for item in collectables:
                 if str(item.child('formID').value()) not in index:
                     index.append(str(item.child('formID').value()))    
         if self.globalMap is not None:
             if self.fullUpdateFlag:
                 index = list(set(index)) # Remove duplicates
                 self.globalMap.iwcSetCollectablesCollectedState(index, True)
                 self.fullUpdateFlag = False
             else:
                 self.globalMap.iwcSetCollectablesCollectedState(index, False)
         else:
             self._logger.error("No globalmap?")
         self._app.settings.setValue(self.playerDataPath + self.collectedcollectablesuffix, index)
Esempio n. 5
0
    def ammoWatchListUpdate(self):

        self.ammoWatchListModel.clear()
        itemList = self.AmmoWatchList
        if (self.pipInventoryInfo):

            def _filterFunc(item):
                if (inventoryutils.itemHasAnyFilterCategory(item,inventoryutils.eItemFilterCategory.Ammo)
                        and (itemList == None or item.child('text').value() in itemList)):
                    return True
                else:
                    return False
            ammoItems = inventoryutils.inventoryGetItems(self.pipInventoryInfo, _filterFunc)
            if(not ammoItems):
                return
            for i in ammoItems:
                name = i.child('text').value()
                count = str(i.child('count').value())
                item = [
                    QStandardItem(name) ,
                    QStandardItem(count)
                ]

                item[1].setData(QtCore.Qt.AlignCenter, QtCore.Qt.TextAlignmentRole)
                self.ammoWatchListModel.appendRow(item)
            self.widget.ammoTableView.horizontalHeader().setSectionResizeMode(QHeaderView.ResizeToContents)
            self.widget.ammoTableView.verticalHeader().setSectionResizeMode(QHeaderView.Fixed)
            self.widget.ammoTableView.verticalHeader().setStretchLastSection(False)
            self.widget.ammoTableView.horizontalHeader().setStretchLastSection(True)
            self.widget.ammoTableView.setModel(self.ammoWatchListModel)

            self.widget.ammoTableView.sortByColumn(0, QtCore.Qt.AscendingOrder)
Esempio n. 6
0
    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'])
Esempio n. 7
0
 def _slotSortedIdsUpdate(self):
     self.layoutAboutToBeChanged.emit()
     for i in self._items:
         i.unregisterValueUpdatedListener(self._onPipItemUpdate)
     self._items.clear()
     self._items = inventoryutils.inventoryGetItems(self.pipInventory, self._acceptItem)
     for item in self._items:
         item.registerValueUpdatedListener(self._onPipItemUpdate)
     self.layoutChanged.emit()
Esempio n. 8
0
 def _slotSortedIdsUpdate(self):
     self.layoutAboutToBeChanged.emit()
     for i in self._items:
         i.unregisterValueUpdatedListener(self._onPipItemUpdate)
     self._items.clear()
     self._items = inventoryutils.inventoryGetItems(self.pipInventory,
                                                    self._acceptItem)
     for item in self._items:
         item.registerValueUpdatedListener(self._onPipItemUpdate)
     self.layoutChanged.emit()
Esempio n. 9
0
    def getAmmoItems(self):
        if (self.pipInventoryInfo):
            self.AmmoListModel.clear()
            def _filterFunc(item):
                return inventoryutils.itemHasAnyFilterCategory(item, inventoryutils.eItemFilterCategory.Ammo)

            ammo_list = inventoryutils.inventoryGetItems(self.pipInventoryInfo, _filterFunc)
            for ammo_item in ammo_list:
                item = QStandardItem(ammo_item.child('text').value())
                item.setCheckable(True)
                if ammo_item.child('text').value() in self.AmmoWatchList:
                   item.setCheckState(Qt.Checked)

                else:
                    item.setCheckState(Qt.Unchecked)
                self.AmmoListModel.appendRow(item)
Esempio n. 10
0
    def updateDrugView(self, itemList, showitemswithzerocount=False):
        self.drugmodel.clear()

        if (self.pipInventoryInfo):
            def _filterFunc(item):
                if (inventoryutils.itemHasAnyFilterCategory(item, inventoryutils.eItemFilterCategory.Aid)
                        and (itemList is None or item.child('text').value().lower() in itemList)):
                    return True
                else:
                    return False

            aidItems = inventoryutils.inventoryGetItems(self.pipInventoryInfo, _filterFunc)
            if (not aidItems):
                return
            for i in aidItems:
                name = i.child('text').value()
                count = str(i.child('count').value())
                itemtooltip = self.getItemToolTip(i)
                modelitem = self.createDrugModelItem(name, count, itemtooltip)

                self.drugmodel.appendRow(modelitem)

            if showitemswithzerocount:
                itemsinmodel = []
                for row in range(0, self.drugmodel.rowCount()):
                    itemsinmodel.append(self.drugmodel.item(row, 0).text().lower())

                for item in itemList:
                    if not item in itemsinmodel:
                        modelitem = self.createDrugModelItem(item.capitalize(), '-', '')
                        self.drugmodel.appendRow(modelitem)

            if (self.widget.btnCustom.isChecked() and self.drugmodel.rowCount() == 0):
                self.drugmodel.appendRow([QStandardItem(''), QStandardItem('Right click on items')])
                self.drugmodel.appendRow([QStandardItem(''), QStandardItem('in the other lists to ')])
                self.drugmodel.appendRow([QStandardItem(''), QStandardItem('add them to this list')])


            self.widget.drugView.horizontalHeader().setSectionResizeMode(QHeaderView.ResizeToContents)
            self.widget.drugView.verticalHeader().setSectionResizeMode(QHeaderView.Fixed)
            self.widget.drugView.verticalHeader().setStretchLastSection(False)
            self.widget.drugView.horizontalHeader().setStretchLastSection(True)
            self.widget.drugView.setModel(self.drugmodel)

            self.widget.drugView.sortByColumn(0, QtCore.Qt.AscendingOrder)
Esempio n. 11
0
    def setPipInventory(self, datamanager, pipInventory):
        self.modelAboutToBeReset.emit()

        self.pipInventory = pipInventory
        self.datamanager = datamanager

        for i in self._items:
            i.unregisterValueUpdatedListener(self._onPipItemUpdate)
        self._items.clear()
        if self.pipInvSortedIds:
            self.pipInvSortedIds.unregisterValueUpdatedListener(self._onPipSortedIdsUpdate)
        self.pipInvSortedIds = self.pipInventory.child("sortedIDS")
        if self.pipInvSortedIds:
            self.pipInvSortedIds.registerValueUpdatedListener(self._onPipSortedIdsUpdate)
            self._items = inventoryutils.inventoryGetItems(self.pipInventory, self._acceptItem)
            for item in self._items:
                item.registerValueUpdatedListener(self._onPipItemUpdate)
        self.modelReset.emit()
Esempio n. 12
0
    def getAmmoItems(self):
        if (self.pipInventoryInfo):
            self.AmmoListModel.clear()

            def _filterFunc(item):
                return inventoryutils.itemHasAnyFilterCategory(
                    item, inventoryutils.eItemFilterCategory.Ammo)

            ammo_list = inventoryutils.inventoryGetItems(
                self.pipInventoryInfo, _filterFunc)
            for ammo_item in ammo_list:
                item = QStandardItem(ammo_item.child('text').value())
                item.setCheckable(True)
                if ammo_item.child('text').value() in self.AmmoWatchList:
                    item.setCheckState(Qt.Checked)

                else:
                    item.setCheckState(Qt.Unchecked)
                self.AmmoListModel.appendRow(item)
Esempio n. 13
0
 def unequipAllApparel(self):
     if (self.pipInventoryInfo):
         def _filterFunc(item):
             return inventoryutils.itemHasAnyFilterCategory(item, inventoryutils.eItemFilterCategory.Apparel)
         apparels = inventoryutils.inventoryGetItems(self.pipInventoryInfo, _filterFunc)
         if(not apparels):
             return
         for apparel in apparels:        
             if (apparel.child('equipState').value() > 0):
                 try:
                     self.dataManager.rpcUseItem(apparel)
                 except Exception as e:
                     self._logger.error('unequipAllApparel Exception in rpc call: ' + str(e))
                 ### This is a vile hack to allow each rpc call to complete
                 ### before sending the next 
                 ### It'll do for now, but should really find a better way 
                 ### of handling this, queue action method on datamanager.py 
                 ### perhaps?
                 time.sleep(0.1)             
     return
Esempio n. 14
0
    def setPipInventory(self, datamanager, pipInventory):
        self.modelAboutToBeReset.emit()

        self.pipInventory = pipInventory
        self.datamanager = datamanager

        for i in self._items:
            i.unregisterValueUpdatedListener(self._onPipItemUpdate)
        self._items.clear()
        if self.pipInvSortedIds:
            self.pipInvSortedIds.unregisterValueUpdatedListener(
                self._onPipSortedIdsUpdate)
        self.pipInvSortedIds = self.pipInventory.child('sortedIDS')
        if self.pipInvSortedIds:
            self.pipInvSortedIds.registerValueUpdatedListener(
                self._onPipSortedIdsUpdate)
            self._items = inventoryutils.inventoryGetItems(
                self.pipInventory, self._acceptItem)
            for item in self._items:
                item.registerValueUpdatedListener(self._onPipItemUpdate)
        self.modelReset.emit()
Esempio n. 15
0
    def saveEquippedApparelToSlot(self, slotIndex):
        slotIndex = str(slotIndex)
        self._logger.debug('saveEquippedApparelToSlot: slot ' + str(slotIndex))
        self.savedApparelSlots[slotIndex] = []
        selectedSlot = self.savedApparelSlots[slotIndex]
        
        if (self.pipInventoryInfo):
            def _filterFunc(item):
                return inventoryutils.itemHasAnyFilterCategory(item, inventoryutils.eItemFilterCategory.Apparel)
            apparels = inventoryutils.inventoryGetItems(self.pipInventoryInfo, _filterFunc)
            if(not apparels):
                return
            for apparel in apparels:        
                if (apparel.child('equipState').value() > 0):
                    selectedSlot.append(apparel.child('text').value())
                    
            self._logger.debug('saveEquippedApparelToSlot: saving: ' + str(selectedSlot))
            settingPath = 'hotkeyswidget/apparelslots/'
            self._app.settings.setValue(settingPath+str(slotIndex), selectedSlot)

        return
Esempio n. 16
0
    def ammoWatchListUpdate(self):

        self.ammoWatchListModel.clear()
        itemList = self.AmmoWatchList
        if (self.pipInventoryInfo):

            def _filterFunc(item):
                if (inventoryutils.itemHasAnyFilterCategory(
                        item, inventoryutils.eItemFilterCategory.Ammo)
                        and (itemList == None
                             or item.child('text').value() in itemList)):
                    return True
                else:
                    return False

            ammoItems = inventoryutils.inventoryGetItems(
                self.pipInventoryInfo, _filterFunc)
            if (not ammoItems):
                return
            for i in ammoItems:
                name = i.child('text').value()
                count = str(i.child('count').value())
                item = [QStandardItem(name), QStandardItem(count)]

                item[1].setData(QtCore.Qt.AlignCenter,
                                QtCore.Qt.TextAlignmentRole)
                self.ammoWatchListModel.appendRow(item)
            self.widget.ammoTableView.horizontalHeader().setSectionResizeMode(
                QHeaderView.ResizeToContents)
            self.widget.ammoTableView.verticalHeader().setSectionResizeMode(
                QHeaderView.Fixed)
            self.widget.ammoTableView.verticalHeader().setStretchLastSection(
                False)
            self.widget.ammoTableView.horizontalHeader().setStretchLastSection(
                True)
            self.widget.ammoTableView.setModel(self.ammoWatchListModel)

            self.widget.ammoTableView.sortByColumn(0, QtCore.Qt.AscendingOrder)
    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 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)
            
Esempio n. 19
0
    def updateDrugView(self, itemList, showitemswithzerocount=False):
        self.drugmodel.clear()

        if (self.pipInventoryInfo):

            def _filterFunc(item):
                if (inventoryutils.itemHasAnyFilterCategory(
                        item, inventoryutils.eItemFilterCategory.Aid) and
                    (itemList is None
                     or item.child('text').value().lower() in itemList)):
                    return True
                else:
                    return False

            aidItems = inventoryutils.inventoryGetItems(
                self.pipInventoryInfo, _filterFunc)
            if (not aidItems):
                return
            for i in aidItems:
                name = i.child('text').value()
                count = str(i.child('count').value())
                itemtooltip = self.getItemToolTip(i)
                modelitem = self.createDrugModelItem(name, count, itemtooltip)

                self.drugmodel.appendRow(modelitem)

            if showitemswithzerocount:
                itemsinmodel = []
                for row in range(0, self.drugmodel.rowCount()):
                    itemsinmodel.append(
                        self.drugmodel.item(row, 0).text().lower())

                for item in itemList:
                    if not item in itemsinmodel:
                        modelitem = self.createDrugModelItem(
                            item.capitalize(), '-', '')
                        self.drugmodel.appendRow(modelitem)

            if (self.widget.btnCustom.isChecked()
                    and self.drugmodel.rowCount() == 0):
                self.drugmodel.appendRow(
                    [QStandardItem(''),
                     QStandardItem('Right click on items')])
                self.drugmodel.appendRow([
                    QStandardItem(''),
                    QStandardItem('in the other lists to ')
                ])
                self.drugmodel.appendRow([
                    QStandardItem(''),
                    QStandardItem('add them to this list')
                ])

            self.widget.drugView.horizontalHeader().setSectionResizeMode(
                QHeaderView.ResizeToContents)
            self.widget.drugView.verticalHeader().setSectionResizeMode(
                QHeaderView.Fixed)
            self.widget.drugView.verticalHeader().setStretchLastSection(False)
            self.widget.drugView.horizontalHeader().setStretchLastSection(True)
            self.widget.drugView.setModel(self.drugmodel)

            self.widget.drugView.sortByColumn(0, QtCore.Qt.AscendingOrder)