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 _getNodesToInvalidate(self):
     toInvalidate = self._nodes[:]
     toInvalidate.extend(self._topLevel)
     return [
         node for node in toInvalidate
         if not NODE_STATE.isAnnouncement(node.getState())
     ]
Example #3
0
    def getNationTreeData(self, nationName):
        data = super(BCTechTree,
                     self).getNationTreeData(NATION_NAMES[g_bootcamp.nation])
        dataNodes = data.get('nodes', None)
        nationData = g_bootcamp.getNationData()
        if dataNodes is not None:
            dataNodes = [
                node for node in dataNodes
                if not NODE_STATE.isPremium(node['state'])
            ]
            for node in dataNodes:
                if 'vehCompareTreeNodeData' in node:
                    node['vehCompareTreeNodeData']['modeAvailable'] = False
                nodeState = node['state']
                if not NODE_STATE.inInventory(nodeState):
                    isUnlocked = NODE_STATE.isUnlocked(nodeState)
                    isVehicleSecond = node['id'] == nationData[
                        'vehicle_second']
                    if not (isVehicleSecond and isUnlocked):
                        node['state'] = NODE_STATE_FLAGS.LOCKED
                    if isUnlocked:
                        node['state'] |= NODE_STATE_FLAGS.PURCHASE_DISABLED
                    if isVehicleSecond:
                        node['state'] |= NODE_STATE_FLAGS.NEXT_2_UNLOCK
                    if NODE_STATE.isAnnouncement(nodeState):
                        node['state'] |= NODE_STATE_FLAGS.ANNOUNCEMENT
                        node['state'] |= NODE_STATE_FLAGS.NOT_CLICKABLE

            data['nodes'] = dataNodes
        return data
Example #4
0
 def _getNodesToInvalidate(self):
     """
     Gets list of nodes where search changes.
     :return: list of nodes.
     """
     return [
         node for node in self._nodes
         if not NODE_STATE.isAnnouncement(node.getState())
     ]
Example #5
0
 def _getNodesToInvalidate(self):
     """
     Gets list of nodes where search changes: self_nodes + self._topLevel.
     :return: list of nodes.
     """
     toInvalidate = self._nodes[:]
     toInvalidate.extend(self._topLevel)
     return [
         node for node in toInvalidate
         if not NODE_STATE.isAnnouncement(node.getState())
     ]
Example #6
0
    def getNationTreeData(self, nationName):
        data = super(BCTechTree, self).getNationTreeData(NATION_NAMES[g_bootcamp.nation])
        dataNodes = data.get('nodes', None)
        if dataNodes is not None:
            for node in dataNodes:
                if 'vehCompareTreeNodeData' in node:
                    node['vehCompareTreeNodeData']['modeAvailable'] = False
                nodeState = node['state']
                if not NODE_STATE.inInventory(nodeState) and not NODE_STATE.isPremium(nodeState):
                    node['state'] = NODE_STATE_FLAGS.LOCKED
                    if NODE_STATE.isAnnouncement(nodeState):
                        node['state'] |= NODE_STATE_FLAGS.ANNOUNCEMENT
                        node['state'] |= NODE_STATE_FLAGS.NOT_CLICKABLE

        data['nodes'][0]['displayInfo']['position'] = [16, 90]
        data['nodes'][0]['displayInfo']['lines'][0]['outPin'] = [144, 108]
        return data
Example #7
0
 def _getNodesToInvalidate(self):
     return [
         node for node in self._nodes
         if not NODE_STATE.isAnnouncement(node.getState())
     ]