예제 #1
0
def ScorePanGalacticHologrid(card):
    if card == "Expanding Colony":
        return 2
    if DeckInfo.GoodType(card) == NOVELTY:
        return 2
    if DeckInfo.CardIsWorld(card):
        return 1
    return 0
예제 #2
0
    def ScoreFor6Dev(self, card):
        score = 0
        gal_ex_types = 0
        mil_worlds_bonus = 0

        if card == 'Galactic Renaissance':
            score += self.vp / 3
        elif card == 'Pan-Galactic Affluence':
            score += self.prestige
        elif card == 'Galactic Exchange':
            good_types = set()
            for other_card in self.card_list:
                good_types.add(DeckInfo.GoodType(other_card))
            gal_ex_types = len(good_types - set([NO_GOOD]))
            #print 'num good types = ', gal_ex_types
        elif card == 'New Galactic Order':
            if 'Hidden Fortress' in self.card_list:
                for other_card in self.card_list:
                    mil_worlds_bonus += DeckInfo.IsMilWorld(other_card)
            if 'Rebel Freedom Fighters' in self.card_list:
                imp = False
                for card in self.card_list:
                    if 'Imperium' in card:
                        imp = True
                        break
                if imp:
                    score -= 2
        elif card == 'Universal Peace Institute':
            if 'Hidden Fortress' in self.card_list:
                for other_card in self.card_list:
                    mil_worlds_bonus -= DeckInfo.IsMilWorld(other_card)
            if 'Rebel Freedom Fighters' in self.card_list:
                imp = False
                for card in self.card_list:
                    if 'Imperium' in card:
                        imp = True
                        break
                if imp:
                    score += 2

        score += gal_ex_types * (gal_ex_types + 1) / 2
        score += mil_worlds_bonus
        table_for_this_dev = _six_dev_score_table[card]
        for other_card in self.card_list:
            score += table_for_this_dev[other_card]
            #if other_card != card:
            #    self.bonus_points_per_card[other_card] += bonus
        if not card in self.card_list:
            score += table_for_this_dev[card]
        return score
예제 #3
0
def ScoreGalacticGenomeProject(card):
    if card == 'Genetics Lab':
        return 3
    return 2 * (DeckInfo.GoodType(card) == GENES)
예제 #4
0
def ScoreFreeTradeAssociation(card):
    if card in ['Consumer Markets', 'Expanding Colony']:
        return 2
    if DeckInfo.GoodType(card) == NOVELTY:
        return 1 + (DeckInfo.ProductionPower(card) == PRODUCTION)
    return 0
예제 #5
0
def ScoreProspectingGuild(card):
    if DeckInfo.GoodType(card) == RARE:
        return 2
    if 'Terraforming' in DeckInfo.Keywords(card):
        return 1
    return DeckInfo.CardIsWorld(card)
예제 #6
0
def ScorePanGalacticLeague(card):
    if card == 'Contact Specialist':
        return 3
    if DeckInfo.GoodType(card) == GENES:
        return 2
    return DeckInfo.IsMilWorld(card)
예제 #7
0
def ScoreMiningLeague(card):
    if card in ['Mining Conglomerate', 'Mining Robots']:
        return 2
    return (DeckInfo.GoodType(card) == RARE) * (
        (DeckInfo.ProductionPower(card) == PRODUCTION) + 1)