Example #1
0
 def _addNode(self, nodeCD, node):
     state = node.getState()
     if not NODE_STATE.isAnnouncement(state):
         if self.__overrideResearch:
             if not NODE_STATE.inInventory(state) and not (
                     NODE_STATE.isAvailable2Unlock(state)
                     or NODE_STATE.isAvailable2Buy(state)):
                 state = NODE_STATE.addIfNot(state,
                                             NODE_STATE_FLAGS.NOT_CLICKABLE)
             if self.getRootCD() == self.__firstVehicleNode:
                 if self.__secondVehicleResearch:
                     if nodeCD == self.__secondVehicleNode:
                         return -1
                 if not NODE_STATE.inInventory(
                         state
                 ) and not NODE_STATE.isInstalled(
                         state
                 ) and nodeCD != self.__moduleNodeCD and nodeCD != self.__secondVehicleNode:
                     return -1
         item = self._items.getItemByCD(nodeCD)
         if item.level in DISABLED_TANK_LEVELS and NODE_STATE.isAvailable2Buy(
                 state):
             state = NODE_STATE.add(state,
                                    NODE_STATE_FLAGS.PURCHASE_DISABLED)
         if not NODE_STATE.isAvailable2Unlock(
                 state) and self._isLastUnlocked(nodeCD):
             state |= NODE_STATE_FLAGS.LAST_2_BUY
     if NODE_STATE.hasBlueprints(state):
         state = NODE_STATE.remove(state, NODE_STATE_FLAGS.BLUEPRINT)
     node.setState(state)
     return super(BCResearchItemsData, self)._addNode(nodeCD, node)
Example #2
0
 def _addNode(self, nodeCD, node):
     state = node['state']
     if self.__overrideResearch:
         if nodeCD == self.__secondVehicleNode:
             g_bootcampGarage.setSecondVehicleNode(node)
         elif nodeCD == self.__moduleNodeCD:
             g_bootcampGarage.setModuleNode(node)
         if not NODE_STATE.inInventory(state):
             state = NODE_STATE.addIfNot(state,
                                         NODE_STATE_FLAGS.NOT_CLICKABLE)
         if self.getRootCD() == self.__firstVehicleNode:
             if self.__secondVehicleResearch:
                 if nodeCD == self.__secondVehicleNode:
                     return -1
             if not NODE_STATE.inInventory(
                     state
             ) and not NODE_STATE.isInstalled(
                     state
             ) and nodeCD != self.__moduleNodeCD and nodeCD != self.__secondVehicleNode:
                 return -1
     state = NODE_STATE.removeIfHas(state, NODE_STATE_FLAGS.ELITE)
     item = self._items.getItemByCD(nodeCD)
     if item.level in DISABLED_TANK_LEVELS and NODE_STATE.isAvailable2Buy(
             state):
         state = NODE_STATE.add(state, NODE_STATE_FLAGS.PURCHASE_DISABLED)
     node['state'] = state
     return super(BCResearchItemsData, self)._addNode(nodeCD, node)
 def _generateOptions(self, ctx = None):
     vehicle = self.itemsCache.items.getItemByCD(self._nodeCD)
     options = [self._makeItem(VEHICLE.INFO, MENU.CONTEXTMENU_VEHICLEINFOEX)]
     if vehicle.isPreviewAllowed():
         options.append(self._makeItem(VEHICLE.PREVIEW, MENU.CONTEXTMENU_SHOWVEHICLEPREVIEW))
     if NODE_STATE.isWasInBattle(self._nodeState):
         options.append(self._makeItem(VEHICLE.STATS, MENU.CONTEXTMENU_SHOWVEHICLESTATISTICS))
     self._manageVehCompareItem(options, vehicle)
     options.append(self._makeSeparator())
     if vehicle.isUnlocked:
         if not vehicle.isPremiumIGR and (not vehicle.isInInventory or vehicle.isRented):
             if vehicle.isRestoreAvailable():
                 label = MENU.CONTEXTMENU_RESTORE
             elif vehicle.canTradeIn:
                 label = MENU.CONTEXTMENU_BUYORTRADEIN
             else:
                 label = MENU.CONTEXTMENU_BUY
             options.append(self._makeItem(VEHICLE.BUY, label, {'enabled': NODE_STATE.isAvailable2Buy(self._nodeState)}))
     else:
         options.append(self._makeItem(VEHICLE.UNLOCK, MENU.CONTEXTMENU_UNLOCK, {'enabled': NODE_STATE.isAvailable2Unlock(self._nodeState) and not NODE_STATE.isPremium(self._nodeState)}))
     if not vehicle.isPremiumIGR:
         isAvailable2SellOrRemove = NODE_STATE.isAvailable2Sell(self._nodeState)
         if isAvailable2SellOrRemove:
             options.append(self._makeItem(VEHICLE.SELL, MENU.CONTEXTMENU_VEHICLEREMOVE if vehicle.isRented else MENU.CONTEXTMENU_SELL, {'enabled': isAvailable2SellOrRemove}))
     options.extend([self._makeSeparator(), self._makeItem(VEHICLE.SELECT, MENU.CONTEXTMENU_SELECTVEHICLEINHANGAR, {'enabled': (NODE_STATE.inInventory(self._nodeState) or NODE_STATE.isRentalOver(self._nodeState)) and NODE_STATE.isVehicleCanBeChanged(self._nodeState)})])
     return options
 def _generateOptions(self, ctx=None):
     vehicle = g_itemsCache.items.getItemByCD(self._nodeCD)
     options = [
         self._makeItem(VEHICLE.INFO, MENU.CONTEXTMENU_VEHICLEINFOEX),
         self._makeItem(
             VEHICLE.STATS, MENU.CONTEXTMENU_SHOWVEHICLESTATISTICS,
             {'enabled': NODE_STATE.isWasInBattle(self._nodeState)}),
         self._makeSeparator(),
         self._makeItem(
             VEHICLE.UNLOCK, MENU.CONTEXTMENU_UNLOCK, {
                 'enabled':
                 NODE_STATE.isAvailable2Unlock(self._nodeState)
                 and not NODE_STATE.isPremium(self._nodeState)
             })
     ]
     if not vehicle.isPremiumIGR:
         options.extend([
             self._makeItem(
                 VEHICLE.BUY, MENU.CONTEXTMENU_BUY,
                 {'enabled': NODE_STATE.isAvailable2Buy(self._nodeState)}),
             self._makeItem(
                 VEHICLE.SELL, MENU.CONTEXTMENU_VEHICLEREMOVE
                 if vehicle.isRented else MENU.CONTEXTMENU_SELL,
                 {'enabled': NODE_STATE.isAvailable2Sell(self._nodeState)}),
             self._makeSeparator(),
             self._makeItem(
                 VEHICLE.SELECT, MENU.CONTEXTMENU_SELECTVEHICLEINHANGAR, {
                     'enabled':
                     NODE_STATE.inInventory(self._nodeState)
                     and NODE_STATE.isVehicleCanBeChanged(self._nodeState)
                 })
         ])
     return options
 def _generateOptions(self, ctx=None):
     vehicle = g_itemsCache.items.getItemByCD(self._nodeCD)
     options = [
         self._makeItem(VEHICLE.INFO, MENU.CONTEXTMENU_VEHICLEINFOEX),
         self._makeItem(
             VEHICLE.STATS,
             MENU.CONTEXTMENU_SHOWVEHICLESTATISTICS,
             {"enabled": NODE_STATE.isWasInBattle(self._nodeState)},
         ),
         self._makeSeparator(),
         self._makeItem(
             VEHICLE.UNLOCK,
             MENU.CONTEXTMENU_UNLOCK,
             {
                 "enabled": NODE_STATE.isAvailable2Unlock(self._nodeState)
                 and not NODE_STATE.isPremium(self._nodeState)
             },
         ),
     ]
     if not vehicle.isPremiumIGR:
         options.extend(
             [
                 self._makeItem(
                     VEHICLE.BUY, MENU.CONTEXTMENU_BUY, {"enabled": NODE_STATE.isAvailable2Buy(self._nodeState)}
                 ),
                 self._makeItem(
                     VEHICLE.SELL,
                     MENU.CONTEXTMENU_VEHICLEREMOVE if vehicle.isRented else MENU.CONTEXTMENU_SELL,
                     {"enabled": NODE_STATE.isAvailable2Sell(self._nodeState)},
                 ),
                 self._makeSeparator(),
                 self._makeItem(
                     VEHICLE.SELECT,
                     MENU.CONTEXTMENU_SELECTVEHICLEINHANGAR,
                     {
                         "enabled": NODE_STATE.inInventory(self._nodeState)
                         and NODE_STATE.isVehicleCanBeChanged(self._nodeState)
                     },
                 ),
             ]
         )
     return options
 def _generateOptions(self, ctx = None):
     vehicle = g_itemsCache.items.getItemByCD(self._nodeCD)
     options = [self._makeItem(VEHICLE.INFO, MENU.CONTEXTMENU_VEHICLEINFOEX)]
     if vehicle.isPreviewAllowed():
         options.append(self._makeItem(VEHICLE.PREVIEW, MENU.CONTEXTMENU_SHOWVEHICLEPREVIEW))
     if NODE_STATE.isWasInBattle(self._nodeState):
         options.append(self._makeItem(VEHICLE.STATS, MENU.CONTEXTMENU_SHOWVEHICLESTATISTICS))
     self._manageVehCompareItem(options, vehicle)
     options.append(self._makeSeparator())
     if vehicle.isUnlocked:
         if not vehicle.isPremiumIGR and (not vehicle.isInInventory or vehicle.isRented):
             if vehicle.isRestoreAvailable():
                 label = MENU.CONTEXTMENU_RESTORE
             else:
                 label = MENU.CONTEXTMENU_BUY
             options.append(self._makeItem(VEHICLE.BUY, label, {'enabled': NODE_STATE.isAvailable2Buy(self._nodeState)}))
     else:
         options.append(self._makeItem(VEHICLE.UNLOCK, MENU.CONTEXTMENU_UNLOCK, {'enabled': NODE_STATE.isAvailable2Unlock(self._nodeState) and not NODE_STATE.isPremium(self._nodeState)}))
     if not vehicle.isPremiumIGR:
         isAvailable2SellOrRemove = NODE_STATE.isAvailable2Sell(self._nodeState)
         if isAvailable2SellOrRemove:
             options.append(self._makeItem(VEHICLE.SELL, MENU.CONTEXTMENU_VEHICLEREMOVE if vehicle.isRented else MENU.CONTEXTMENU_SELL, {'enabled': isAvailable2SellOrRemove}))
     options.extend([self._makeSeparator(), self._makeItem(VEHICLE.SELECT, MENU.CONTEXTMENU_SELECTVEHICLEINHANGAR, {'enabled': (NODE_STATE.inInventory(self._nodeState) or NODE_STATE.isRentalOver(self._nodeState)) and NODE_STATE.isVehicleCanBeChanged(self._nodeState)})])
     return options
 def _isAvailable2Buy(self):
     return not NODE_STATE.isInstalled(
         self._nodeState) and NODE_STATE.isAvailable2Buy(
             self._nodeState) and self._canInstallItems()
 def _isAvailable2Buy(self):
     return not NODE_STATE.isInstalled(self._nodeState) and NODE_STATE.isAvailable2Buy(self._nodeState) and self._canInstallItems()
Example #9
0
 def _generateOptions(self, ctx=None):
     vehicle = self.itemsCache.items.getItemByCD(self._nodeCD)
     options = [
         self._makeItem(VEHICLE.INFO, MENU.CONTEXTMENU_VEHICLEINFOEX)
     ]
     if vehicle.isPreviewAllowed():
         options.append(
             self._makeItem(VEHICLE.PREVIEW,
                            MENU.CONTEXTMENU_SHOWVEHICLEPREVIEW,
                            {'enabled': self._hangarSpace.spaceInited}))
     if NODE_STATE.isWasInBattle(self._nodeState):
         options.append(
             self._makeItem(VEHICLE.STATS,
                            MENU.CONTEXTMENU_SHOWVEHICLESTATISTICS))
     self._manageVehCompareItem(options, vehicle)
     options.append(self._makeSeparator())
     if vehicle.isUnlocked:
         if not vehicle.isPremiumIGR and (not vehicle.isInInventory
                                          or vehicle.isRented):
             if vehicle.isRestoreAvailable():
                 label = MENU.CONTEXTMENU_RESTORE
             elif vehicle.canTradeIn:
                 label = MENU.CONTEXTMENU_BUYORTRADEIN
             else:
                 label = MENU.CONTEXTMENU_BUY
             options.append(
                 self._makeItem(VEHICLE.BUY, label, {
                     'enabled':
                     NODE_STATE.isAvailable2Buy(self._nodeState)
                 }))
     else:
         options.append(
             self._makeItem(
                 VEHICLE.UNLOCK, MENU.CONTEXTMENU_UNLOCK, {
                     'enabled':
                     NODE_STATE.isAvailable2Unlock(self._nodeState)
                     and not NODE_STATE.isPremium(self._nodeState)
                 }))
     if vehicle.hasNationGroup:
         if vehicle.isInInventory or vehicle.isRented:
             isNationChangeAvailable = vehicle.isNationChangeAvailable
             nationChangeIsNew = not AccountSettings.getSettings(
                 NATION_CHANGE_VIEWED)
         else:
             isNationChangeAvailable = False
             nationChangeIsNew = False
         options.append(
             self._makeItem(VEHICLE.NATION_CHANGE,
                            MENU.CONTEXTMENU_NATIONCHANGE, {
                                'enabled': isNationChangeAvailable,
                                'isNew': nationChangeIsNew
                            }))
     if not vehicle.isPremiumIGR and not vehicle.isTelecomRent:
         isAvailable2SellOrRemove = NODE_STATE.isAvailable2Sell(
             self._nodeState)
         if isAvailable2SellOrRemove:
             options.append(
                 self._makeItem(
                     VEHICLE.SELL, MENU.CONTEXTMENU_VEHICLEREMOVE
                     if vehicle.isRented else MENU.CONTEXTMENU_SELL,
                     {'enabled': isAvailable2SellOrRemove}))
     options.extend([
         self._makeSeparator(),
         self._makeItem(
             VEHICLE.SELECT, MENU.CONTEXTMENU_SELECTVEHICLEINHANGAR, {
                 'enabled':
                 NODE_STATE.inInventory(self._nodeState)
                 or NODE_STATE.isRentalOver(self._nodeState)
             })
     ])
     return options