mirror of
https://github.com/Jylpah/blitz-tools.git
synced 2026-10-24 03:29:54 +02:00
Fix counting missing stats + stats per battle class (1/2/3rd, Ace)
This commit is contained in:
1 parent
2603c1611c
commit
43dee15de5
1 file changed
+15
-4
+15
-4
@@ -93,6 +93,7 @@ class BattleRecordCategory():
|
|||||||
'battle_type' : [ 'Battle Type',['Encounter', 'Supremacy']],
|
'battle_type' : [ 'Battle Type',['Encounter', 'Supremacy']],
|
||||||
'tank_tier' : [ 'Tank Tier', 'number' ],
|
'tank_tier' : [ 'Tank Tier', 'number' ],
|
||||||
'top_tier' : [ 'Tier', ['Bottom tier', 'Top tier']],
|
'top_tier' : [ 'Tier', ['Bottom tier', 'Top tier']],
|
||||||
|
'mastery_badge' : [ 'Battle Class', ['-', '3rd Class', '2nd Class', '1st Class', 'Mastery' ]],
|
||||||
'tank_name' : [ 'Tank', 'string' ],
|
'tank_name' : [ 'Tank', 'string' ],
|
||||||
'map_name' : [ 'Map', 'string' ],
|
'map_name' : [ 'Map', 'string' ],
|
||||||
'battle_i' : [ 'Battle #', 'number']
|
'battle_i' : [ 'Battle #', 'number']
|
||||||
@@ -103,7 +104,8 @@ class BattleRecordCategory():
|
|||||||
'battle_result',
|
'battle_result',
|
||||||
'battle_type',
|
'battle_type',
|
||||||
'tank_tier',
|
'tank_tier',
|
||||||
'top_tier'
|
'top_tier',
|
||||||
|
'mastery_badge'
|
||||||
]
|
]
|
||||||
|
|
||||||
_result_categories_extended = [
|
_result_categories_extended = [
|
||||||
@@ -142,6 +144,10 @@ class BattleRecordCategory():
|
|||||||
def get_sub_categories(self):
|
def get_sub_categories(self):
|
||||||
return self.category.keys()
|
return self.category.keys()
|
||||||
|
|
||||||
|
|
||||||
|
def get_category_name(self) -> str:
|
||||||
|
return self._result_categories[self.category_name][0]
|
||||||
|
|
||||||
|
|
||||||
def record_result(self, result: dict):
|
def record_result(self, result: dict):
|
||||||
try:
|
try:
|
||||||
@@ -168,7 +174,7 @@ class BattleRecordCategory():
|
|||||||
def print_results(self):
|
def print_results(self):
|
||||||
try:
|
try:
|
||||||
first_btl_record = list(self.category.values())[0]
|
first_btl_record = list(self.category.values())[0]
|
||||||
print(' '.join(first_btl_record.get_headers(self.category_name)))
|
print(' '.join(first_btl_record.get_headers(self.get_category_name())))
|
||||||
for row in self.get_results():
|
for row in self.get_results():
|
||||||
print(' : '.join(row))
|
print(' : '.join(row))
|
||||||
except KeyError as err:
|
except KeyError as err:
|
||||||
@@ -233,6 +239,7 @@ class BattleRecord():
|
|||||||
'enemies_spotted',
|
'enemies_spotted',
|
||||||
'top_tier',
|
'top_tier',
|
||||||
'player_wins',
|
'player_wins',
|
||||||
|
'player_battles',
|
||||||
'allies_wins',
|
'allies_wins',
|
||||||
'enemies_wins',
|
'enemies_wins',
|
||||||
'allies_battles',
|
'allies_battles',
|
||||||
@@ -249,6 +256,9 @@ class BattleRecord():
|
|||||||
MISSING_STATS
|
MISSING_STATS
|
||||||
]
|
]
|
||||||
|
|
||||||
|
_result_counts = [
|
||||||
|
'battles', MISSING_STATS, 'mastery_badge'
|
||||||
|
]
|
||||||
_result_ratios = {
|
_result_ratios = {
|
||||||
'KDR' : [ 'enemies_destroyed', 'destroyed' ],
|
'KDR' : [ 'enemies_destroyed', 'destroyed' ],
|
||||||
'DR' : [ 'damage_made', 'damage_received' ],
|
'DR' : [ 'damage_made', 'damage_received' ],
|
||||||
@@ -278,7 +288,7 @@ class BattleRecord():
|
|||||||
cls.result_fields_ratio = set(cls._result_ratios.keys()) & set(cls.result_fields)
|
cls.result_fields_ratio = set(cls._result_ratios.keys()) & set(cls.result_fields)
|
||||||
|
|
||||||
cls.avg_fields = set(cls.result_fields)
|
cls.avg_fields = set(cls.result_fields)
|
||||||
for field in ['battles', MISSING_STATS]:
|
for field in cls._result_counts:
|
||||||
if field in cls.avg_fields:
|
if field in cls.avg_fields:
|
||||||
cls.avg_fields.remove(field)
|
cls.avg_fields.remove(field)
|
||||||
cls.avg_fields.difference_update(set(cls._result_ratios.keys()))
|
cls.avg_fields.difference_update(set(cls._result_ratios.keys()))
|
||||||
@@ -362,7 +372,7 @@ class BattleRecord():
|
|||||||
for field in self.avg_fields:
|
for field in self.avg_fields:
|
||||||
self.results[field] = self.results[field] / max(self.battles,1)
|
self.results[field] = self.results[field] / max(self.battles,1)
|
||||||
self.results['battles'] = self.battles
|
self.results['battles'] = self.battles
|
||||||
self.results[MISSING_STATS] = self.missing_stats / self.n_players
|
self.results[MISSING_STATS] = self.missing_stats / max(self.n_players, 1)
|
||||||
self.results_ready = True
|
self.results_ready = True
|
||||||
return True
|
return True
|
||||||
except KeyError as err:
|
except KeyError as err:
|
||||||
@@ -385,6 +395,7 @@ class BattleRecord():
|
|||||||
bu.error(str(err))
|
bu.error(str(err))
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
||||||
def get_results(self):
|
def get_results(self):
|
||||||
if not self.results_ready:
|
if not self.results_ready:
|
||||||
self.calc_results()
|
self.calc_results()
|
||||||
|
|||||||
Reference in new issue
Block a user