Exemplo n.º 1
0
    def __init__(self, ggpk, relational_reader, translation_file_cache):
        self.relational_reader = relational_reader
        self.translation_file_cache = translation_file_cache

        self.gepls = {}
        for gepl in self.relational_reader['GrantedEffectsPerLevel.dat']:
            ge_id = gepl['GrantedEffectsKey']['Id']
            if ge_id not in self.gepls:
                self.gepls[ge_id] = []
            self.gepls[ge_id].append(gepl)

        self.tags = {}
        for tag in self.relational_reader['GemTags.dat']:
            name = tag['Tag']
            self.tags[tag['Id']] = name if name != '' else None

        self.max_levels = {}
        for row in self.relational_reader['ItemExperiencePerLevel.dat']:
            base_item = row['BaseItemTypesKey']['Id']
            level = row['ItemCurrentLevel']
            if base_item not in self.max_levels:
                self.max_levels[base_item] = level
            elif self.max_levels[base_item] < level:
                self.max_levels[base_item] = level

        self.max_totem_id = relational_reader['SkillTotems.dat'].table_rows
        self._skill_totem_life_multipliers = {}
        for row in self.relational_reader['SkillTotemVariations.dat']:
            self._skill_totem_life_multipliers[row['SkillTotemsKey'].rowid] = \
                row['MonsterVarietiesKey']['LifeMultiplier'] / 100

        self.skill_stat_filter = StatFilterFile()
        self.skill_stat_filter.read(ggpk['Metadata/StatDescriptions/skillpopup_stat_filters.txt'].record.extract())
Exemplo n.º 2
0
    def __init__(self, file_system, relational_reader):
        self.relational_reader = relational_reader

        self.gepls = {}
        for gepl in self.relational_reader["GrantedEffectsPerLevel.dat"]:
            ge_id = gepl["GrantedEffectsKey"]["Id"]
            if ge_id not in self.gepls:
                self.gepls[ge_id] = []
            self.gepls[ge_id].append(gepl)

        self.granted_effect_quality_stats = {}
        for geq in self.relational_reader["GrantedEffectQualityStats.dat"]:
            ge_id = geq["GrantedEffectsKey"]["Id"]
            if ge_id not in self.granted_effect_quality_stats:
                self.granted_effect_quality_stats[ge_id] = []
            self.granted_effect_quality_stats[ge_id].append(geq)

        self.tags = {}
        for tag in self.relational_reader["GemTags.dat"]:
            name = tag["Tag"]
            self.tags[tag["Id"]] = name if name != "" else None

        self.max_levels = {}
        for row in self.relational_reader["ItemExperiencePerLevel.dat"]:
            base_item = row["BaseItemTypesKey"]["Id"]
            level = row["ItemCurrentLevel"]
            if base_item not in self.max_levels:
                self.max_levels[base_item] = level
            elif self.max_levels[base_item] < level:
                self.max_levels[base_item] = level

        self.max_totem_id = relational_reader["SkillTotems.dat"].table_rows
        self._skill_totem_life_multipliers = {}
        for row in self.relational_reader["SkillTotemVariations.dat"]:
            self._skill_totem_life_multipliers[row["SkillTotemsKey"].rowid] = (
                row["MonsterVarietiesKey"]["LifeMultiplier"] / 100)

        self.skill_stat_filter = StatFilterFile()
        self.skill_stat_filter.read(
            file_system.get_file(
                "Metadata/StatDescriptions/skillpopup_stat_filters.txt"))