add colorado bill

This commit is contained in:
Alberto Xamin 2023-01-27 15:08:23 +00:00
parent 2a69f8ba7c
commit decd959328
4 changed files with 34 additions and 2 deletions

View File

@ -52,7 +52,7 @@ class TucoFranziskaner(Character):
def all_characters() -> List[Character]: def all_characters() -> List[Character]:
cards = [ cards = [
# BlackFlower(), # BlackFlower(),
# ColoradoBill(), ColoradoBill(),
# DerSpotBurstRinger(), # DerSpotBurstRinger(),
# EvelynShebang(), # EvelynShebang(),
# HenryBlock(), # HenryBlock(),

View File

@ -1122,10 +1122,16 @@ class Player:
self.available_cards.append({'name': '-1hp', 'icon': '💔', 'noDesc': True}) self.available_cards.append({'name': '-1hp', 'icon': '💔', 'noDesc': True})
return True return True
def get_banged(self, attacker, double=False, no_dmg=False, card_index=None, card_name=None): def get_banged(self, attacker, double:bool=False, no_dmg:bool=False, card_index:int|None=None, card_name:str|None=None):
self.attacker = attacker self.attacker = attacker
self.attacking_card = card_name self.attacking_card = card_name
print(f'attacker -> {attacker}') print(f'attacker -> {attacker}')
if isinstance(attacker, Player) and attacker.character.check(self.game, tvosch.ColoradoBill) and card_name == 'Bang!':
picked: cs.Card = self.game.deck.pick_and_scrap()
G.sio.emit('chat_message', room=self.game.name, data=f'_flipped|{attacker.name}|{picked.name}|{picked.num_suit()}')
if picked.check_suit(self.game, [cs.Suit.SPADES]):
self.take_damage_response()
return False
self.mancato_needed = 1 if not double else 2 self.mancato_needed = 1 if not double else 2
if card_index is not None: if card_index is not None:
self.dmg_card_index = card_index self.dmg_card_index = card_index

View File

@ -7,6 +7,8 @@ class DummySocket():
# print(f'event: {event}, data: {data}, to: {to}, room: {room}') # print(f'event: {event}, data: {data}, to: {to}, room: {room}')
if self.true_sio and event == 'chat_message': if self.true_sio and event == 'chat_message':
self.true_sio.emit(event, data, to, room, skip_sid, namespace, callback, **kwargs) self.true_sio.emit(event, data, to, room, skip_sid, namespace, callback, **kwargs)
elif event == 'chat_message':
print(f'event: {event}, data: {data}, to: {to}, room: {room}')
return True return True
def sleep(self, seconds): def sleep(self, seconds):

View File

@ -26,3 +26,27 @@ def test_TucoFranziskaner():
p.equipment = [cs.Barile(0,0)] p.equipment = [cs.Barile(0,0)]
p.draw('') p.draw('')
assert len(p.hand) == 2 assert len(p.hand) == 2
# test ColoradoBill
def test_ColoradoBill():
g = Game('test')
ps = [Player(f'p{i}', f'p{i}') for i in range(2)]
for p in ps:
g.add_player(p)
g.start_game()
for p in ps:
p.available_characters = [ColoradoBill()]
p.set_character(p.available_characters[0].name)
p = g.players[g.turn]
p1 = g.players[(g.turn+1)%2]
p.draw('')
p.hand = [cs.Volcanic(0,0), cs.Bang(0,0), cs.Bang(0,0)]
p.play_card(0)
g.deck.cards.insert(0, cs.Bang(cs.Suit.SPADES,0))
g.deck.cards.insert(1, cs.Bang(cs.Suit.HEARTS,0))
p1.hand = [cs.Mancato(0,0)]
p.play_card(0, p1.name)
assert len(p1.hand) == 1
assert p1.lives == 3
p.play_card(0, p1.name)
assert p1.pending_action == PendingAction.RESPOND