fix no players in range
This commit is contained in:
parent
005ec8dd3c
commit
d3f70454be
@ -1,8 +1,13 @@
|
||||
from __future__ import annotations
|
||||
from abc import ABC, abstractmethod
|
||||
from bang.expansions import *
|
||||
from typing import List
|
||||
from typing import List, TYPE_CHECKING
|
||||
from globals import G
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from bang.players import Player
|
||||
from bang.game import Game
|
||||
|
||||
class Character(ABC):
|
||||
def __init__(self, name: str, max_lives: int, sight_mod: int = 0, visibility_mod: int = 0, pick_mod: int = 0, desc: str = ''):
|
||||
super().__init__()
|
||||
@ -16,13 +21,13 @@ class Character(ABC):
|
||||
self.icon = '🤷♂️'
|
||||
self.number = ''.join(['❤️']*self.max_lives)
|
||||
|
||||
def check(self, game, character):
|
||||
def check(self, game:Game, character:Character):
|
||||
import bang.expansions.high_noon.card_events as ceh
|
||||
if game.check_event(ceh.Sbornia):
|
||||
return False
|
||||
return isinstance(self, character)
|
||||
|
||||
def special(self, player, data):
|
||||
def special(self, player:Player, data):
|
||||
import bang.expansions.high_noon.card_events as ceh
|
||||
if player.game.check_event(ceh.Sbornia):
|
||||
return False
|
||||
|
@ -59,6 +59,8 @@ class Bottiglia(ShopCard):
|
||||
def play_card(self, player, against=None, _with=None):
|
||||
# bang, birra, panico
|
||||
player.available_cards = [Bang(4,42), Birra(4,42), Panico(4,42)]
|
||||
if not any((player.get_sight() >= p['dist'] for p in player.game.get_visible_players(player))):
|
||||
player.available_cards.pop(0)
|
||||
for i in range(len(player.available_cards)):
|
||||
player.available_cards[i].must_be_used = True
|
||||
player.choose_text = 'choose_bottiglia'
|
||||
|
@ -44,7 +44,7 @@ class Lemat(Card):
|
||||
player.equipment.append(self)
|
||||
player.notify_self()
|
||||
return True
|
||||
elif not player.has_played_bang:
|
||||
elif not player.has_played_bang and any((player.get_sight() >= p['dist'] for p in player.game.get_visible_players(player))):
|
||||
from bang.players import PendingAction
|
||||
player.available_cards = player.hand.copy()
|
||||
player.pending_action = PendingAction.CHOOSE
|
||||
|
@ -11,7 +11,7 @@ class BlackFlower(Character):
|
||||
def special(self, player, data): #fiori = suit.Clubs
|
||||
if player.special_use_count > 0 or not any((c.suit == cs.Suit.CLUBS for c in player.hand)):
|
||||
return False
|
||||
if super().special(player, data):
|
||||
if any((player.get_sight() >= p['dist'] for p in player.game.get_visible_players(player))) and super().special(player, data):
|
||||
from bang.players import PendingAction
|
||||
player.available_cards = [c for c in player.hand if c.suit == cs.Suit.CLUBS]
|
||||
player.special_use_count += 1
|
||||
|
@ -1,3 +1,4 @@
|
||||
from __future__ import annotations
|
||||
from enum import IntEnum
|
||||
import json
|
||||
from random import random, randrange, sample, uniform
|
||||
@ -14,11 +15,14 @@ import bang.expansions.gold_rush.shop_cards as grc
|
||||
import bang.expansions.gold_rush.characters as grch
|
||||
import bang.expansions.the_valley_of_shadows.cards as tvosc
|
||||
import bang.expansions.the_valley_of_shadows.characters as tvosch
|
||||
from typing import List
|
||||
from typing import List, TYPE_CHECKING
|
||||
from metrics import Metrics
|
||||
from globals import G
|
||||
import sys
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from bang.game import Game
|
||||
|
||||
robot_pictures = [
|
||||
'https://i.imgur.com/40rAFIb.jpg',
|
||||
'https://i.imgur.com/gG77VRR.jpg',
|
||||
@ -78,7 +82,6 @@ class Player:
|
||||
print(r)
|
||||
|
||||
def __init__(self, name, sid, bot=False, discord_token=None):
|
||||
import bang.game as g
|
||||
super().__init__()
|
||||
self.name = name
|
||||
self.sid = sid
|
||||
@ -90,7 +93,7 @@ class Player:
|
||||
self.avatar = robot_pictures[randrange(len(robot_pictures))]
|
||||
if self.discord_token:
|
||||
G.sio.start_background_task(self._get_avatar)
|
||||
self.game: g = None
|
||||
self.game: Game = None
|
||||
self.reset()
|
||||
|
||||
def reset(self):
|
||||
|
Loading…
Reference in New Issue
Block a user