示例#1
0
 def ask_upgrade(self, player: Player):
     available_colors = self.available_color_to_upgrade(player.owned_fields, player.mortgage_fields)
     if len(player.owned_fields) == 0 or len(available_colors) == 0:
         return
     else:
         available_fields = []
         for fields in player.owned_fields.values():
             for field in fields:
                 if not isinstance(field, Utility) and not isinstance(field, Railway):
                     if field.color in available_colors and field.can_upgrade:
                         available_fields.append(field)
         if len(available_fields) > 0:
             for field in available_fields:
                 if player.in_game:
                     while field.num_of_house < 4:
                         if not player.in_game:
                             return
                         if player.balance > field.cost_of_upgrade:
                             answer = player.build_house(self, field)
                             if answer:
                                 self.upgrade_property(player, field)
                             else:
                                 break
                         else:
                             break