vera custer

This commit is contained in:
Alberto Xamin 2020-12-16 19:34:03 +01:00
parent 88f452df8f
commit de303b7eb5
No known key found for this signature in database
GPG Key ID: 4F026F48309500A2
3 changed files with 36 additions and 11 deletions

View File

@ -71,6 +71,14 @@ class BelleStar(Character):
self.desc_eng = "During her turn the green cards of the other players do not work."
self.icon = ''
class VeraCuster(Character):
def __init__(self):
super().__init__("Vera Custer", max_lives=3)
self.desc = "Prima di pescare le sue carte può scegliere l'abilità speciale di un altro giocatore fino al prossimo turno."
self.desc_eng = "Before drawing, she may choose the special ability on another alive player. This ability is used until next turn."
self.icon = '🎭'
def all_characters() -> List[Character]:
return [
PixiePete(),
@ -83,6 +91,7 @@ def all_characters() -> List[Character]:
ApacheKid(),
SeanMallory(),
BelleStar(),
VeraCuster(),
]
#Apache Kid: il suo effetto non conta nei duelli

View File

@ -30,6 +30,7 @@ class Player:
self.equipment: cs.Card = []
self.role: r.Role = None
self.character: chars.Character = None
self.real_character: chars.Character = None
self.lives = 0
self.max_lives = 0
self.game: g = None
@ -55,6 +56,7 @@ class Player:
self.equipment: cs.Card = []
self.role: r.Role = None
self.character: chars.Character = None
self.real_character: chars.Character = None
self.lives = 0
self.max_lives = 0
self.is_my_turn = False
@ -92,13 +94,24 @@ class Player:
def set_character(self, character: str):
print(self.available_characters, character)
self.character = next(
x for x in self.available_characters if x.name == character)
self.available_characters = []
print(f'I {self.name} chose character {self.character.name}')
self.sio.emit('chat_message', room=self.game.name,
data=f'_did_choose_character|{self.name}')
self.game.notify_character_selection()
if self.character == None:
self.character = next(
x for x in self.available_characters if x.name == character)
self.real_character = self.character
self.available_characters = []
print(f'I {self.name} chose character {self.character.name}')
self.sio.emit('chat_message', room=self.game.name,
data=f'_did_choose_character|{self.name}')
self.game.notify_character_selection()
elif self.real_character and isinstance(self.real_character, chd.VeraCuster):
self.character = next(
x for x in self.available_characters if x.name == character)
self.available_characters = []
self.sio.emit('chat_message', room=self.game.name,
data=f'_did_choose_character|{self.name}')
self.pending_action = PendingAction.DRAW
self.notify_self()
def prepare(self):
self.max_lives = self.character.max_lives + self.role.health_mod
@ -281,7 +294,10 @@ class Player:
if any([isinstance(c, cs.Dinamite) or isinstance(c, cs.Prigione) for c in self.equipment]):
self.pending_action = PendingAction.PICK
else:
self.pending_action = PendingAction.DRAW
if isinstance(self.real_character, chd.VeraCuster):
self.set_available_character([p.character for p in self.game.players if p != self])
else:
self.pending_action = PendingAction.DRAW
self.notify_self()
def draw(self, pile):

View File

@ -1,7 +1,7 @@
certifi==2020.11.8
dnspython==1.16.0
eventlet==0.29.1
eventlet==0.30.0
greenlet==0.4.17
python-engineio==3.13.2
python-socketio==4.6.0
python-engineio==4.0.0
python-socketio==5.0.3
six==1.15.0