Dutch Will
This commit is contained in:
parent
e86de193c7
commit
28555509a3
@ -1,4 +1,5 @@
|
|||||||
from abc import ABC, abstractmethod
|
from abc import ABC, abstractmethod
|
||||||
|
from bang.expansions import *
|
||||||
from typing import List
|
from typing import List
|
||||||
|
|
||||||
class Character(ABC):
|
class Character(ABC):
|
||||||
@ -158,4 +159,6 @@ def all_characters(expansions: List[str]):
|
|||||||
]
|
]
|
||||||
if 'dodge_city' in expansions:
|
if 'dodge_city' in expansions:
|
||||||
base_chars.extend(DodgeCity.get_characters())
|
base_chars.extend(DodgeCity.get_characters())
|
||||||
|
if 'gold_rush' in expansions:
|
||||||
|
base_chars.extend(GoldRush.get_characters())
|
||||||
return base_chars
|
return base_chars
|
@ -7,3 +7,8 @@ class DodgeCity():
|
|||||||
def get_cards():
|
def get_cards():
|
||||||
from bang.expansions.dodge_city import cards
|
from bang.expansions.dodge_city import cards
|
||||||
return cards.get_starting_deck()
|
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.choose_text = 'choose_card_to_get'
|
||||||
self.pending_action = PendingAction.CHOOSE
|
self.pending_action = PendingAction.CHOOSE
|
||||||
self.notify_self()
|
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:
|
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.is_drawing = True
|
||||||
self.available_cards = self.game.get_player_named(pile).equipment
|
self.available_cards = self.game.get_player_named(pile).equipment
|
||||||
@ -747,6 +753,16 @@ class Player:
|
|||||||
self.pending_action = PendingAction.PLAY
|
self.pending_action = PendingAction.PLAY
|
||||||
self.manette()
|
self.manette()
|
||||||
self.notify_self()
|
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):
|
elif self.is_drawing and self.character.check(self.game, chd.PatBrennan):
|
||||||
self.is_drawing = False
|
self.is_drawing = False
|
||||||
card = self.available_cards.pop(card_index)
|
card = self.available_cards.pop(card_index)
|
||||||
|
Loading…
Reference in New Issue
Block a user