def _updateTankmanDossierImpl(descr, results): if not bool(BONUS_CAPS.get(results['bonusType']) & BONUS_CAPS.DOSSIER_TOTAL_VALUES): return descr['battlesCount'] += 1 if not bool(BONUS_CAPS.get(results['bonusType']) & BONUS_CAPS.DOSSIER_RND_VALUES): return for achieveIdx in results['achievements']: arena_achievements.updateDossierRecord(descr, achieveIdx)
def _updateDossierCommonPart(descr, results, originalXP, dossierXP): if not bool(BONUS_CAPS.get(results['bonusType']) & BONUS_CAPS.DOSSIER_TOTAL_VALUES): return (True, False, False) descr.expand() descr['battleLifeTime'] += results['lifeTime'] descr['lastBattleTime'] = int(time.time()) descr['originalXP'] += originalXP descr['damageAssistedTrack'] += results['damageAssistedTrack'] descr['damageAssistedRadio'] += results['damageAssistedRadio'] descr['mileage'] += results['mileage'] descr['shotsReceived'] += results['shotsReceived'] descr['noDamageShotsReceived'] += results['noDamageShotsReceived'] descr['piercedReceived'] += results['piercedReceived'] descr['heHitsReceived'] += results['heHitsReceived'] descr['he_hits'] += results['he_hits'] descr['pierced'] += results['pierced'] _updateDossierRecordsWithBonusTypePrefix(descr, '', results, dossierXP) if bool(BONUS_CAPS.get(results['bonusType']) & BONUS_CAPS.DOSSIER_COMPANY_VALUES): _updateDossierRecordsWithBonusTypePrefix(descr, 'company/', results, dossierXP) if bool(BONUS_CAPS.get(results['bonusType']) & BONUS_CAPS.DOSSIER_CLAN_VALUES): _updateDossierRecordsWithBonusTypePrefix(descr, 'clan/', results, dossierXP) if results['killerID'] == 0 and results['winnerTeam'] == results['team']: descr['winAndSurvived'] += 1 kill_list = results['kill_list'] if kill_list: vehTypeFrags = dict(descr['vehTypeFrags']) vehicles8p = dossiers.g_cache['vehicles8+'] beastVehicles = dossiers.g_cache['beastVehicles'] sinaiVehicles = dossiers.g_cache['sinaiVehicles'] pattonVehicles = dossiers.g_cache['pattonVehicles'] frags8p = fragsBeast = fragsSinai = fragsPatton = 0 for _, vtcd, _ in kill_list: frags = vehTypeFrags.get(vtcd, 0) vehTypeFrags[vtcd] = min(frags + 1, 60001) if vtcd in vehicles8p: frags8p += 1 if vtcd in beastVehicles: fragsBeast += 1 if vtcd in sinaiVehicles: fragsSinai += 1 if vtcd in pattonVehicles: fragsPatton += 1 descr['vehTypeFrags'] = vehTypeFrags if frags8p != 0: descr['frags8p'] += frags8p if fragsBeast != 0: descr['fragsBeast'] += fragsBeast if fragsSinai != 0: descr['fragsSinai'] += fragsSinai if fragsPatton != 0: descr['fragsPatton'] += fragsPatton if not bool(BONUS_CAPS.get(results['bonusType']) & BONUS_CAPS.DOSSIER_RND_VALUES): return (False, False, False) isMaxXPGained = False if dossierXP != 0 and dossierXP >= descr['maxXP']: isMaxXPGained = True descr['maxXP'] = dossierXP for achieveIdx in results['achievements']: arena_achievements.updateDossierRecord(descr, achieveIdx) isMaxFragsGained = False if kill_list and len(kill_list) >= descr['maxFrags']: descr['maxFrags'] = len(kill_list) isMaxFragsGained = True descr['treesCut'] += results['destroyedObjects'].get(DESTR_CODES_BY_TAGS['tree'], 0) return (False, isMaxFragsGained, isMaxXPGained)