def override_if_necessary(source_card: MergedCard, dest_card: MergedCard): if source_card.leader_skill and not dest_card.leader_skill: dest_card.leader_skill = source_card.leader_skill if source_card.active_skill and not dest_card.active_skill: dest_card.active_skill = source_card.active_skill if len(source_card.enemy_behavior) != len(dest_card.enemy_behavior): dest_card.enemy_behavior = source_card.enemy_behavior for idx in range(len(source_card.enemy_behavior)): if type(source_card.enemy_behavior[idx]) != type( dest_card.enemy_behavior[idx]): dest_card.enemy_behavior[idx] = source_card.enemy_behavior[idx] else: # Fill the source name in as a hack. # TODO: rename jp_name to alt_name or something dest_card.enemy_behavior[idx].jp_name = ( source_card.enemy_behavior[idx].name or dest_card.enemy_behavior[idx].name)
def override_if_necessary(source_card: MergedCard, dest_card: MergedCard): if dest_card is None: return source_card if source_card is None: return dest_card # Check if the card isn't available based on the name. new_data_card = _compare_named(source_card.card, dest_card.card) if new_data_card != dest_card.card: dest_card.card = new_data_card # This is kind of gross and makes me think it might be wrong. We're checking the MergedCard.server # when creating the monster to determine where the data was sourced from, so we have to also # overwrite it here. dest_card.server = source_card.server # Apparently some monsters can be ported to servers before their skills are dest_card.leader_skill = _compare_named(source_card.leader_skill, dest_card.leader_skill) dest_card.active_skill = _compare_named(source_card.active_skill, dest_card.active_skill) return dest_card
def override_if_necessary(source_card: MergedCard, dest_card: MergedCard): if dest_card is None: return source_card if source_card is None: return dest_card # Check if the card isn't available based on the name. new_data_card = _compare_named(source_card.card, dest_card.card) if new_data_card != dest_card.card: dest_card.card = new_data_card # This is kind of gross and makes me think it might be wrong. We're checking the MergedCard.server # when creating the monster to determine where the data was sourced from, so we have to also # overwrite it here. dest_card.server = source_card.server # Apparently some monsters can be ported to servers before their skills are dest_card.leader_skill = _compare_named(source_card.leader_skill, dest_card.leader_skill) dest_card.active_skill = _compare_named(source_card.active_skill, dest_card.active_skill) # Same concept with enemy skills, first check if we need to bulk overwrite if len(source_card.enemy_behavior) != len(dest_card.enemy_behavior): dest_card.enemy_behavior = source_card.enemy_behavior # Then check if we need to individually overwrite for idx in range(len(source_card.enemy_behavior)): if type(source_card.enemy_behavior[idx]) != type( dest_card.enemy_behavior[idx]): dest_card.enemy_behavior[idx] = source_card.enemy_behavior[idx] else: # Fill the source name in as a hack. # TODO: rename jp_name to alt_name or something dest_card.enemy_behavior[idx].jp_name = ( source_card.enemy_behavior[idx].name or dest_card.enemy_behavior[idx].name) return dest_card