Completed
Push — master ( caabd8...c07396 )
by Oleksandr
01:11
created

clean()   B

Complexity

Conditions 1

Size

Total Lines 43

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1
Metric Value
cc 1
dl 0
loc 43
ccs 2
cts 2
cp 1
crap 1
rs 8.8571
1
# -*- coding: utf-8 -*-
2
3 1
from ..converters import to_bool
4 1
from . import ValuesParser
5
6
7 1
class MDSSectionParser(ValuesParser):
8
    """
9
    Parses ``MDS`` section.
10
    View :ref:`detailed description <mds-section>`.
11
    """
12
13 1
    def check_section_name(self, section_name):
14 1
        return section_name == "MDS"
15
16 1
    def parse_line(self, line):
17 1
        super(MDSSectionParser, self).parse_line(line.replace('MDS_', ''))
18
19 1
    def clean(self):
20 1
        return {
21
            'conditions': {
22
                'radar': {
23
                    'advanced_mode': to_bool(self.data['Radar_SetRadarToAdvanceMode']),
24
                    'refresh_interval': int(self.data['Radar_RefreshInterval']),
25
                    'ships': {
26
                        'big': {
27
                            'max_range': int(self.data['Radar_ShipRadar_MaxRange']),
28
                            'min_height': int(self.data['Radar_ShipRadar_MinHeight']),
29
                            'max_height': int(self.data['Radar_ShipRadar_MaxHeight']),
30
                        },
31
                        'small': {
32
                            'max_range': int(self.data['Radar_ShipSmallRadar_MaxRange']),
33
                            'min_height': int(self.data['Radar_ShipSmallRadar_MinHeight']),
34
                            'max_height': int(self.data['Radar_ShipSmallRadar_MaxHeight']),
35
                        },
36
                    },
37
                    'scouts': {
38
                        'max_range': int(self.data['Radar_ScoutRadar_MaxRange']),
39
                        'max_height': int(self.data['Radar_ScoutRadar_DeltaHeight']),
40
                        'alpha': int(self.data['Radar_ScoutGroundObjects_Alpha']),
41
                    },
42
                },
43
                'scouting': {
44
                    'ships_affect_radar': to_bool(self.data['Radar_ShipsAsRadar']),
45
                    'scouts_affect_radar': to_bool(self.data['Radar_ScoutsAsRadar']),
46
                    'only_scouts_complete_targets': to_bool(self.data['Radar_ScoutCompleteRecon']),
47
                },
48
                'communication': {
49
                    'tower_communication': to_bool(self.data['Radar_EnableTowerCommunications']),
50
                    'vectoring': not to_bool(self.data['Radar_DisableVectoring']),
51
                    'ai_radio_silence': to_bool(self.data['Misc_DisableAIRadioChatter']),
52
                },
53
                'home_bases': {
54
                    'hide_ai_aircrafts_after_landing': to_bool(self.data['Misc_DespawnAIPlanesAfterLanding']),
55
                    'hide_unpopulated': to_bool(self.data['Radar_HideUnpopulatedAirstripsFromMinimap']),
56
                    'hide_players_count': to_bool(self.data['Misc_HidePlayersCountOnHomeBase']),
57
                },
58
                'crater_visibility_muptipliers': {
59
                    'le_100kg': float(self.data['Misc_BombsCat1_CratersVisibilityMultiplier']),
60
                    'le_1000kg': float(self.data['Misc_BombsCat2_CratersVisibilityMultiplier']),
61
                    'gt_1000kg': float(self.data['Misc_BombsCat3_CratersVisibilityMultiplier']),
62
                },
63
            },
64
        }
65