vera custer
This commit is contained in:
parent
88f452df8f
commit
de303b7eb5
@ -71,6 +71,14 @@ class BelleStar(Character):
|
|||||||
self.desc_eng = "During her turn the green cards of the other players do not work."
|
self.desc_eng = "During her turn the green cards of the other players do not work."
|
||||||
self.icon = '❎'
|
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]:
|
def all_characters() -> List[Character]:
|
||||||
return [
|
return [
|
||||||
PixiePete(),
|
PixiePete(),
|
||||||
@ -83,6 +91,7 @@ def all_characters() -> List[Character]:
|
|||||||
ApacheKid(),
|
ApacheKid(),
|
||||||
SeanMallory(),
|
SeanMallory(),
|
||||||
BelleStar(),
|
BelleStar(),
|
||||||
|
VeraCuster(),
|
||||||
]
|
]
|
||||||
|
|
||||||
#Apache Kid: il suo effetto non conta nei duelli
|
#Apache Kid: il suo effetto non conta nei duelli
|
||||||
|
@ -30,6 +30,7 @@ class Player:
|
|||||||
self.equipment: cs.Card = []
|
self.equipment: cs.Card = []
|
||||||
self.role: r.Role = None
|
self.role: r.Role = None
|
||||||
self.character: chars.Character = None
|
self.character: chars.Character = None
|
||||||
|
self.real_character: chars.Character = None
|
||||||
self.lives = 0
|
self.lives = 0
|
||||||
self.max_lives = 0
|
self.max_lives = 0
|
||||||
self.game: g = None
|
self.game: g = None
|
||||||
@ -55,6 +56,7 @@ class Player:
|
|||||||
self.equipment: cs.Card = []
|
self.equipment: cs.Card = []
|
||||||
self.role: r.Role = None
|
self.role: r.Role = None
|
||||||
self.character: chars.Character = None
|
self.character: chars.Character = None
|
||||||
|
self.real_character: chars.Character = None
|
||||||
self.lives = 0
|
self.lives = 0
|
||||||
self.max_lives = 0
|
self.max_lives = 0
|
||||||
self.is_my_turn = False
|
self.is_my_turn = False
|
||||||
@ -92,13 +94,24 @@ class Player:
|
|||||||
|
|
||||||
def set_character(self, character: str):
|
def set_character(self, character: str):
|
||||||
print(self.available_characters, character)
|
print(self.available_characters, character)
|
||||||
self.character = next(
|
if self.character == None:
|
||||||
x for x in self.available_characters if x.name == character)
|
self.character = next(
|
||||||
self.available_characters = []
|
x for x in self.available_characters if x.name == character)
|
||||||
print(f'I {self.name} chose character {self.character.name}')
|
self.real_character = self.character
|
||||||
self.sio.emit('chat_message', room=self.game.name,
|
self.available_characters = []
|
||||||
data=f'_did_choose_character|{self.name}')
|
print(f'I {self.name} chose character {self.character.name}')
|
||||||
self.game.notify_character_selection()
|
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):
|
def prepare(self):
|
||||||
self.max_lives = self.character.max_lives + self.role.health_mod
|
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]):
|
if any([isinstance(c, cs.Dinamite) or isinstance(c, cs.Prigione) for c in self.equipment]):
|
||||||
self.pending_action = PendingAction.PICK
|
self.pending_action = PendingAction.PICK
|
||||||
else:
|
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()
|
self.notify_self()
|
||||||
|
|
||||||
def draw(self, pile):
|
def draw(self, pile):
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
certifi==2020.11.8
|
certifi==2020.11.8
|
||||||
dnspython==1.16.0
|
dnspython==1.16.0
|
||||||
eventlet==0.29.1
|
eventlet==0.30.0
|
||||||
greenlet==0.4.17
|
greenlet==0.4.17
|
||||||
python-engineio==3.13.2
|
python-engineio==4.0.0
|
||||||
python-socketio==4.6.0
|
python-socketio==5.0.3
|
||||||
six==1.15.0
|
six==1.15.0
|
||||||
|
Loading…
Reference in New Issue
Block a user