def _change2Unlocked(self, node): state = NODE_STATE.change2Unlocked(node['state']) if state < 0: return node['state'] node['state'] = state if self._canBuy(node['id']): state = NODE_STATE.add(state, NODE_STATE.ENOUGH_MONEY) else: state = NODE_STATE.remove(state, NODE_STATE.ENOUGH_MONEY) if state < 0: return node['state'] node['state'] = state return state
def _invalidateMoney(self, nodes): result = [] for node in nodes: state = node['state'] if self._canBuy(node['id']): state = NODE_STATE.add(state, NODE_STATE.ENOUGH_MONEY) else: state = NODE_STATE.remove(state, NODE_STATE.ENOUGH_MONEY) if state > -1: node['state'] = state result.append((node['id'], state)) return result
def _invalidateXP(self, nodes): result = [] stats = self.getUnlockStats() for node in nodes: state = node['state'] props = node['unlockProps'] if self._getAllPossibleXP(props.parentID, stats) >= props.xpCost: state = NODE_STATE.add(state, NODE_STATE.ENOUGH_XP) else: state = NODE_STATE.remove(state, NODE_STATE.ENOUGH_XP) if state > -1: node['state'] = state result.append((node['id'], state)) return result
def _invalidateXP(self, nodes): result = [] xpGetter = self._xps.get freeXP = max(self._accFreeXP, 0) for node in nodes: state = node['state'] props = node['unlockProps'] xp = xpGetter(props.parentID, 0) if freeXP + xp >= props.xpCost: state = NODE_STATE.add(state, NODE_STATE.ENOUGH_XP) else: state = NODE_STATE.remove(state, NODE_STATE.ENOUGH_XP) if state > -1: node['state'] = state result.append((node['id'], state)) return result
def invalidateInstalled(self): self.__loadInstalledItems(self._rootCD) nodes = self._getNodesToInvalidate() result = [] for node in nodes: nodeCD = node['id'] state = node['state'] if nodeCD in self._installed: state = NODE_STATE.add(state, NODE_STATE.INSTALLED) else: state = NODE_STATE.remove(state, NODE_STATE.INSTALLED) if nodeCD in self._elite: state = NODE_STATE.add(state, NODE_STATE.ELITE) if state > -1: node['state'] = state result.append((nodeCD, state, self.getItem(nodeCD).pack())) return result
def invalidateInstalled(self): nodes = self._getNodesToInvalidate() rootItem = self.getRootItem() result = [] for node in nodes: nodeCD = node['id'] state = node['state'] item = self.getItem(nodeCD) if rootItem.isInInventory and item.isInstalled(rootItem): state = NODE_STATE.add(state, NODE_STATE.INSTALLED) else: state = NODE_STATE.remove(state, NODE_STATE.INSTALLED) if item.itemTypeID == GUI_ITEM_TYPE.VEHICLE and item.isElite: state = NODE_STATE.add(state, NODE_STATE.ELITE) if state > -1: node['state'] = state result.append((nodeCD, state)) return result