Dutch Will
This commit is contained in:
parent
e86de193c7
commit
28555509a3
@ -1,4 +1,5 @@
|
||||
from abc import ABC, abstractmethod
|
||||
from bang.expansions import *
|
||||
from typing import List
|
||||
|
||||
class Character(ABC):
|
||||
@ -158,4 +159,6 @@ def all_characters(expansions: List[str]):
|
||||
]
|
||||
if 'dodge_city' in expansions:
|
||||
base_chars.extend(DodgeCity.get_characters())
|
||||
if 'gold_rush' in expansions:
|
||||
base_chars.extend(GoldRush.get_characters())
|
||||
return base_chars
|
@ -7,3 +7,8 @@ class DodgeCity():
|
||||
def get_cards():
|
||||
from bang.expansions.dodge_city import cards
|
||||
return cards.get_starting_deck()
|
||||
|
||||
class GoldRush():
|
||||
def get_characters():
|
||||
from bang.expansions.gold_rush import characters
|
||||
return characters.all_characters()
|
||||
|
@ -401,6 +401,12 @@ class Player:
|
||||
self.choose_text = 'choose_card_to_get'
|
||||
self.pending_action = PendingAction.CHOOSE
|
||||
self.notify_self()
|
||||
elif self.character.check(self.game, grch.DutchWill):
|
||||
self.is_drawing = True
|
||||
self.available_cards = [self.game.deck.draw() for i in range(2)]
|
||||
self.choose_text = 'choose_card_to_get'
|
||||
self.pending_action = PendingAction.CHOOSE
|
||||
self.notify_self()
|
||||
elif self.character.check(self.game, chd.PatBrennan) and type(pile) == str and pile != self.name and pile in self.game.players_map and len(self.game.get_player_named(pile).equipment) > 0:
|
||||
self.is_drawing = True
|
||||
self.available_cards = self.game.get_player_named(pile).equipment
|
||||
@ -747,6 +753,16 @@ class Player:
|
||||
self.pending_action = PendingAction.PLAY
|
||||
self.manette()
|
||||
self.notify_self()
|
||||
elif self.is_drawing and self.character.check(self.game, grch.DutchWill):
|
||||
self.hand.append(self.available_cards.pop(card_index))
|
||||
if self.game.check_event(ceh.IlTreno) or len([c for c in self.gold_rush_equipment if isinstance(c, grc.Piccone)]) > 0:
|
||||
self.hand.append(self.available_cards.pop(0))
|
||||
else:
|
||||
self.game.deck.scrap(self.available_cards.pop(0), True)
|
||||
self.gold_nuggets += 1
|
||||
self.is_drawing = False
|
||||
self.pending_action = PendingAction.PLAY
|
||||
self.notify_self()
|
||||
elif self.is_drawing and self.character.check(self.game, chd.PatBrennan):
|
||||
self.is_drawing = False
|
||||
card = self.available_cards.pop(card_index)
|
||||
|
Loading…
Reference in New Issue
Block a user