Esempio n. 1
0
 def __init__(self, ctx=None):
     data = ResearchItemsData()
     if USE_XML_DUMPING and IS_DEVELOPMENT:
         dumper = dumpers.ResearchItemsXMLDumper()
     else:
         dumper = dumpers.ResearchItemsObjDumper()
     data.setDumper(dumper)
     super(Research, self).__init__(data)
     self._statsListener = StatsListener()
     self._invListener = InventoryListener()
     self._resolveLoadCtx(ctx=ctx)
Esempio n. 2
0
 def __init__(self, ctx = None):
     data = ResearchItemsData()
     if USE_XML_DUMPING and IS_DEVELOPMENT:
         dumper = dumpers.ResearchItemsXMLDumper()
     else:
         dumper = dumpers.ResearchItemsObjDumper()
     data.setDumper(dumper)
     super(Research, self).__init__(data)
     self._statsListener = StatsListener()
     self._invListener = InventoryListener()
     self._resolveLoadCtx(ctx=ctx)
Esempio n. 3
0
 def __init__(self, ctx=None):
     if USE_XML_DUMPING and IS_DEVELOPMENT:
         dumper = dumpers.ResearchItemsXMLDumper()
     else:
         dumper = dumpers.ResearchItemsObjDumper()
     super(Research, self).__init__(ResearchItemsData(dumper))
     self._resolveLoadCtx(ctx=ctx)
 def __init__(self, ctx=None, skipConfirm=False):
     super(Research, self).__init__(
         ResearchItemsData(dumpers.ResearchItemsObjDumper()))
     self._resolveLoadCtx(ctx=ctx)
     self._exitEvent = ctx.get(BackButtonContextKeys.EXIT, None)
     self._skipConfirm = skipConfirm
     return
Esempio n. 5
0
def new_rpm_as_updateCurrentVehicleS(self, name, type, vDescription, earnedXP, isElite, isPremIGR):
    if isElite or not g_currentVehicle.isPresent():
        old_rpm_as_updateCurrentVehicleS(self, name, type, vDescription, earnedXP, isElite, isPremIGR)
        return
    if wotxp.config.get('debug', False):
        LOG_NOTE(g_currentVehicle.item.n)
    vehDoss = g_itemsCache.items.getVehicleDossier(g_currentVehicle.item.intCD)
    avgXp = vehDoss.getRandomStats().getAvgXP()
    if not avgXp:
        avgXp = 0
    dumper = dumpers.ResearchItemsObjDumper()
    research = ResearchItemsData(dumper)
    research.setRootCD(g_currentVehicle.item.intCD)
    research.load()
    requiredTopXp = 0
    requiredElitXp = 0
    for node in research._getNodesToInvalidate():
        if wotxp.config.get('debug', False):
            LOG_NOTE(node)
        if node['state'] & NODE_STATE.UNLOCKED > 0:
            continue
        if node['state'] & NODE_STATE.VEHICLE_CAN_BE_CHANGED > 0 and node['displayInfo']['level'] < 0:
            continue
        requiredElitXp += node['unlockProps'].xpCost
        if node['state'] < NODE_STATE.VEHICLE_CAN_BE_CHANGED:
            requiredTopXp += node['unlockProps'].xpCost
    xp = g_itemsCache.items.stats.vehiclesXPs.get(g_currentVehicle.item.intCD, 0)
    freeXP = g_itemsCache.items.stats.actualFreeXP
    descriptionPostfix = ''
    extraXp = 0
    values = {}
    if requiredTopXp > 0:
        if requiredTopXp > xp:
            requiredTopXp -= xp
        else:
            xp -= requiredTopXp
            extraXp += xp
            requiredTopXp = 0
        if wotxp.config.get("useFreeXpForModuleResearch", True):
            if requiredTopXp > freeXP:
                requiredTopXp -= freeXP
            else:
                extraXp += freeXP - requiredTopXp
                requiredTopXp = 0
        requiredElitXp = max(requiredElitXp - xp, 0)
        if wotxp.config.get("useFreeXpForVehicleResearch", False):
            requiredElitXp = max(requiredElitXp - freeXP, 0)
        descriptionPostfix = wotxp.config.get("stockVehicle", "[{{topBattleCount}}|{{requiredTopXp}}]") \
            if requiredTopXp > 0 else wotxp.config.get("stockVehicleResearchCompleted", " [+{{extraXp}}]")
    else:
        if requiredElitXp > xp:
            requiredElitXp -= xp
        else:
            extraXp += xp - requiredElitXp
            requiredElitXp = 0
        if wotxp.config.get("useFreeXpForVehicleResearch", False):
            if requiredElitXp > freeXP:
                requiredElitXp -= freeXP
            else:
                extraXp += freeXP - requiredElitXp
                requiredElitXp = 0
        descriptionPostfix = wotxp.config.get("topVehicle", "[{{elitBattleCount}}|{{requiredElitXp}}]") \
            if requiredElitXp > 0 else wotxp.config.get("topVehicleResearchCompleted", " [+{{extraXp}}]")
    values['requiredTopXp'] = wotxp.numWithPostfix(requiredTopXp)
    values['requiredElitXp'] = wotxp.numWithPostfix(requiredElitXp)
    values['topBattleCount'] = wotxp.numWithPostfix(math.ceil(requiredTopXp/avgXp)) if avgXp > 0 else 'X'
    values['elitBattleCount'] = wotxp.numWithPostfix(math.ceil(requiredElitXp/avgXp)) if avgXp > 0 else 'X'
    values['extraXp'] = wotxp.numWithPostfix(extraXp)
    for key in values.keys():
        descriptionPostfix = descriptionPostfix.replace('{{%s}}' % key, values[key])
    old_rpm_as_updateCurrentVehicleS(self, name, type, vDescription + descriptionPostfix, earnedXP, isElite, isPremIGR)
Esempio n. 6
0
File: wotxp.py Progetto: IJOL/wotxp
def new_rpm_as_updateCurrentVehicleS(self, name, type, vDescription, earnedXP,
                                     isElite, isPremIGR):
    if isElite or not g_currentVehicle.isPresent():
        old_rpm_as_updateCurrentVehicleS(self, name, type, vDescription,
                                         earnedXP, isElite, isPremIGR)
        return
    if wotxp.config.get('debug', False):
        LOG_NOTE(g_currentVehicle.item.n)
    vehDoss = g_itemsCache.items.getVehicleDossier(g_currentVehicle.item.intCD)
    avgXp = vehDoss.getRandomStats().getAvgXP()
    if not avgXp:
        avgXp = 0
    dumper = dumpers.ResearchItemsObjDumper()
    research = ResearchItemsData(dumper)
    research.setRootCD(g_currentVehicle.item.intCD)
    research.load()
    requiredTopXp = 0
    requiredElitXp = 0
    for node in research._getNodesToInvalidate():
        if wotxp.config.get('debug', False):
            LOG_NOTE(node)
        if node['state'] & NODE_STATE.UNLOCKED > 0:
            continue
        if node['state'] & NODE_STATE.VEHICLE_CAN_BE_CHANGED > 0 and node[
                'displayInfo']['level'] < 0:
            continue
        requiredElitXp += node['unlockProps'].xpCost
        if node['state'] < NODE_STATE.VEHICLE_CAN_BE_CHANGED:
            requiredTopXp += node['unlockProps'].xpCost
    xp = g_itemsCache.items.stats.vehiclesXPs.get(g_currentVehicle.item.intCD,
                                                  0)
    freeXP = g_itemsCache.items.stats.actualFreeXP
    descriptionPostfix = ''
    extraXp = 0
    values = {}
    if requiredTopXp > 0:
        if requiredTopXp > xp:
            requiredTopXp -= xp
        else:
            xp -= requiredTopXp
            extraXp += xp
            requiredTopXp = 0
        if wotxp.config.get("useFreeXpForModuleResearch", True):
            if requiredTopXp > freeXP:
                requiredTopXp -= freeXP
            else:
                extraXp += freeXP - requiredTopXp
                requiredTopXp = 0
        requiredElitXp = max(requiredElitXp - xp, 0)
        if wotxp.config.get("useFreeXpForVehicleResearch", False):
            requiredElitXp = max(requiredElitXp - freeXP, 0)
        descriptionPostfix = wotxp.config.get("stockVehicle", "[{{topBattleCount}}|{{requiredTopXp}}]") \
            if requiredTopXp > 0 else wotxp.config.get("stockVehicleResearchCompleted", " [+{{extraXp}}]")
    else:
        if requiredElitXp > xp:
            requiredElitXp -= xp
        else:
            extraXp += xp - requiredElitXp
            requiredElitXp = 0
        if wotxp.config.get("useFreeXpForVehicleResearch", False):
            if requiredElitXp > freeXP:
                requiredElitXp -= freeXP
            else:
                extraXp += freeXP - requiredElitXp
                requiredElitXp = 0
        descriptionPostfix = wotxp.config.get("topVehicle", "[{{elitBattleCount}}|{{requiredElitXp}}]") \
            if requiredElitXp > 0 else wotxp.config.get("topVehicleResearchCompleted", " [+{{extraXp}}]")
    values['requiredTopXp'] = wotxp.numWithPostfix(requiredTopXp)
    values['requiredElitXp'] = wotxp.numWithPostfix(requiredElitXp)
    values['topBattleCount'] = wotxp.numWithPostfix(
        math.ceil(requiredTopXp / avgXp)) if avgXp > 0 else 'X'
    values['elitBattleCount'] = wotxp.numWithPostfix(
        math.ceil(requiredElitXp / avgXp)) if avgXp > 0 else 'X'
    values['extraXp'] = wotxp.numWithPostfix(extraXp)
    for key in values.keys():
        descriptionPostfix = descriptionPostfix.replace(
            '{{%s}}' % key, values[key])
    old_rpm_as_updateCurrentVehicleS(self, name, type,
                                     vDescription + descriptionPostfix,
                                     earnedXP, isElite, isPremIGR)
Esempio n. 7
0
 def __init__(self, ctx = None, skipConfirm = False):
     super(Research, self).__init__(ResearchItemsData(dumpers.ResearchItemsObjDumper()))
     self._resolveLoadCtx(ctx=ctx)
     self._skipConfirm = skipConfirm