def patch_resource_database( self, db: ResourceDatabase, configuration: BaseConfiguration) -> ResourceDatabase: base_damage_reduction = db.base_damage_reduction damage_reductions = copy.copy(db.damage_reductions) requirement_template = copy.copy(db.requirement_template) suits = [db.get_item_by_name("Varia Suit")] if configuration.heat_protection_only_varia: requirement_template["Heat-Resisting Suit"] = ResourceRequirement( db.get_item_by_name("Varia Suit"), 1, False) else: suits.extend([ db.get_item_by_name("Gravity Suit"), db.get_item_by_name("Phazon Suit") ]) reductions = [DamageReduction(None, configuration.heat_damage / 10.0)] reductions.extend([DamageReduction(suit, 0) for suit in suits]) damage_reductions[db.get_by_type_and_index(ResourceType.DAMAGE, "HeatDamage1")] = reductions if configuration.progressive_damage_reduction: base_damage_reduction = self.prime1_progressive_damage_reduction else: base_damage_reduction = self.prime1_absolute_damage_reduction return dataclasses.replace(db, damage_reductions=damage_reductions, base_damage_reduction=base_damage_reduction, requirement_template=requirement_template)
def patch_resource_database( self, db: ResourceDatabase, configuration: BaseConfiguration) -> ResourceDatabase: damage_reductions = copy.copy(db.damage_reductions) damage_reductions[db.get_by_type_and_index( ResourceType.DAMAGE, "DarkWorld1")] = [ DamageReduction(None, configuration.varia_suit_damage / 6.0), DamageReduction(db.get_item_by_name("Dark Suit"), configuration.dark_suit_damage / 6.0), DamageReduction(db.get_item_by_name("Light Suit"), 0.0), ] return dataclasses.replace(db, damage_reductions=damage_reductions)
def read_damage_reduction(data: Dict, items: List[ItemResourceInfo]) -> DamageReduction: return DamageReduction( find_resource_info_with_id(items, data["name"], ResourceType.ITEM) if data["name"] is not None else None, data["multiplier"])
def read_damage_reduction(data: Dict, items: List[ItemResourceInfo]) -> DamageReduction: return DamageReduction( find_resource_info_with_id(items, data["index"], ResourceType.ITEM), data["multiplier"])