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
|
|
|
|
|
|
2017-12-27 02:12:43 -06:00
|
|
|
def blocks_attack(self, what_attack):
|
|
|
|
|
yes_no = False
|
|
|
|
|
found_at = -1
|
|
|
|
|
|
2018-01-10 14:01:44 -05:00
|
|
|
for c in self.get_supply():
|
2017-12-27 02:12:43 -06:00
|
|
|
if c.prevent_attack:
|
2018-01-10 14:01:44 -05:00
|
|
|
found_at = self.get_supply().index(c)
|
2017-12-27 02:12:43 -06:00
|
|
|
|
|
|
|
|
if found_at >= 0:
|
2018-01-10 14:01:44 -05:00
|
|
|
owner = self.get_supply()[found_at].get_owner()
|
2018-01-05 21:33:36 -06:00
|
|
|
yes_no = "Y" == owner.get_general_input("Player " + str(owner.get_player_index()) + ", enter 'Y' if you'd "
|
2018-01-10 14:01:44 -05:00
|
|
|
"like to reveal " + self.get_supply()[found_at].get_name() +
|
|
|
|
|
" to block the " + what_attack + " attack: ", str)
|
2017-12-27 02:12:43 -06:00
|
|
|
return yes_no
|
|
|
|
|
|
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
|