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)
def _getNodesToInvalidate(self): toInvalidate = self._nodes[:] toInvalidate.extend(self._topLevel) return [ node for node in toInvalidate if not NODE_STATE.isAnnouncement(node.getState()) ]
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
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()) ]
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()) ]
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
def _getNodesToInvalidate(self): return [ node for node in self._nodes if not NODE_STATE.isAnnouncement(node.getState()) ]