Skip to content

Instantly share code, notes, and snippets.

Created September 15, 2013 04:49
Show Gist options
  • Save anonymous/6568115 to your computer and use it in GitHub Desktop.
Save anonymous/6568115 to your computer and use it in GitHub Desktop.
Error
from utils_new import is_subset
class Land(object):
VALID_COLORS = ["C", "W", "U", "B", "G", "R"]
VALID_TYPES = ["Land", "Plains", "Island", "Swamp", "Forest", "Mountain"]
VALID_LAND_TYPES =["Basic", "Shock", "Tapland", "Gate"]
TYPES_TO_COLORS = { "Land":"C",
"Plains":"W",
"Island":"U",
"Swamp":"B",
"Forest":"G",
"Mountain":"R" }
def __init__(self, name, types, colors, land_type, required_types):
self.name = name
self.types = types
self.colors = colors
self.land_type = land_type
self.required_types = required_types
@classmethod
def basic(cls, name):
land = cls(name, [name], [cls.TYPES_TO_COLORS[name]], "Basic", [])
return land
@property
def name(self):
return self._name
@name.setter
def name(self, name):
self._name = name
@property
def types(self):
return self._types
@types.setter
def types(self, types):
if is_subset(types, self.__class__().VALID_TYPES):
self._types = types
else:
raise AttributeError()
@property
def colors(self):
return self._colors
@colors.setter
def colors(self, colors):
if is_subset(colors, self.__class__().VALID_COLORS):
self._colors = colors
else:
raise AttributeError()
@property
def land_type(self):
return self._land_type
@land_type.setter
def land_type(self, land_type):
if land_type in self.__class__().VALID_LAND_TYPES:
self._land_type = land_type
else:
raise AttributeError()
@property
def required_types(self):
return self._required_types
@required_types.setter
def required_types(self, required_types):
if is_subset(required_types, self.__class__().VALID_TYPES):
self._required_types = required_types
else:
raise AttributeError()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment