Spaces:
Configuration error
Configuration error
| from enum import Enum | |
| from .card import ResCard | |
| # The different types of harbors found throughout the game | |
| class HarborType(Enum): | |
| # the different 2:1 types | |
| Wood = 0 | |
| Sheep = 1 | |
| Brick = 2 | |
| Wheat = 3 | |
| Ore = 4 | |
| # the 3:1 type | |
| Any = 5 | |
| # represents a catan harbor | |
| class Harbor: | |
| def __init__(self, point_one, point_two, type): | |
| # sets the type | |
| self.type = type | |
| # sets the points | |
| self.point_one = point_one | |
| self.point_two = point_two | |
| def __repr__(self): | |
| return "Harbor %s, %s Type %s" % (self.point_one, self.point_two, self.type) | |
| def get_points(self): | |
| return [self.point_one, self.point_two] | |
| # returns a string representation of the type | |
| # Ex: 3:1, 2:1S, 2:1Wh | |
| def get_type(self): | |
| if self.type == HarborType.Wood: | |
| return "2:1W" | |
| elif self.type == HarborType.Sheep: | |
| return "2:1S" | |
| elif self.type == HarborType.Brick: | |
| return "2:1B" | |
| elif self.type == HarborType.Wheat: | |
| return "2:1Wh" | |
| elif self.type == HarborType.Ore: | |
| return "2:1O" | |
| elif self.type == HarborType.Any: | |
| return "3:1" | |
| def get_card_from_harbor_type(h_type): | |
| if h_type == HarborType.Wood: | |
| return ResCard.Wood | |
| elif h_type == HarborType.Brick: | |
| return ResCard.Brick | |
| elif h_type == HarborType.Wheat: | |
| return ResCard.Wheat | |
| elif h_type == HarborType.Ore: | |
| return ResCard.Ore | |
| elif h_type == HarborType.Sheep: | |
| return ResCard.Sheep | |
| elif h_type == HarborType.Any: | |
| return None | |
| else: | |
| raise Exception("Harbor has invalid type %s" % h_type) | |