2017-12-30 12:15:51 -06:00
|
|
|
from table.supply import Supply
|
2017-12-24 13:00:51 -06:00
|
|
|
|
|
|
|
|
|
|
|
|
|
class Hand(Supply):
|
2018-01-10 14:01:44 -05:00
|
|
|
def contains_one_of(self, acceptable_class):
|
2017-12-24 13:00:51 -06:00
|
|
|
result = False
|
2018-01-10 14:01:44 -05:00
|
|
|
unique_class_instances = self.__get_unique_class_instances()
|
2017-12-24 13:00:51 -06:00
|
|
|
|
2018-01-10 14:01:44 -05:00
|
|
|
for uci in unique_class_instances:
|
|
|
|
|
result |= isinstance(uci, acceptable_class)
|
2017-12-24 13:00:51 -06:00
|
|
|
return result
|
|
|
|
|
|
2018-01-10 14:01:44 -05:00
|
|
|
def get_card_type_count(self, card_class):
|
2017-12-26 15:33:05 -06:00
|
|
|
result = 0
|
|
|
|
|
|
2018-01-10 14:01:44 -05:00
|
|
|
for c in self.get_supply():
|
|
|
|
|
if isinstance(c, card_class):
|
2017-12-26 15:33:05 -06:00
|
|
|
result += 1
|
|
|
|
|
return result
|
|
|
|
|
|
2018-01-10 23:30:39 -05:00
|
|
|
def reaction_blocks_attack(self, what_attack):
|
|
|
|
|
attack_blocked = False
|
2018-01-10 14:01:44 -05:00
|
|
|
for c in self.get_supply():
|
2018-01-10 23:30:39 -05:00
|
|
|
attack_blocked |= c.react(what_attack)
|
2018-01-21 03:41:06 -05:00
|
|
|
if attack_blocked:
|
|
|
|
|
print(str(c.get_owner()) + " has " + str(c) + " as the " + str(self.get_supply().index(c)) +
|
|
|
|
|
' and blocked the ' + what_attack + " attack.")
|
|
|
|
|
return True
|
|
|
|
|
return False
|
2017-12-27 02:12:43 -06:00
|
|
|
|
2018-01-10 14:01:44 -05:00
|
|
|
def __get_unique_class_instances(self):
|
|
|
|
|
unique_class_instances = list()
|
2017-12-24 13:00:51 -06:00
|
|
|
|
2018-01-10 14:01:44 -05:00
|
|
|
for c in self.get_supply():
|
|
|
|
|
if c not in unique_class_instances:
|
|
|
|
|
unique_class_instances.append(c)
|
|
|
|
|
return unique_class_instances
|