예제 #1
0
    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)
예제 #2
0
    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
예제 #3
0
    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