Beispiel #1
0
 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
Beispiel #2
0
    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
Beispiel #3
0
 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
Beispiel #4
0
    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
Beispiel #5
0
    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
Beispiel #6
0
    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
Beispiel #7
0
    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
Beispiel #8
0
    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
Beispiel #9
0
    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
Beispiel #10
0
    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