Merge branch 'main' into dev

This commit is contained in:
Giulio 2022-03-25 11:45:47 +01:00
commit 7c55939e6a
2 changed files with 13 additions and 5 deletions

View File

@ -1,4 +1,5 @@
import time
import os
import json
from typing import List, Set, Dict, Tuple, Optional
import random
@ -14,11 +15,14 @@ import bang.expansions.fistful_of_cards.card_events as ce
import bang.expansions.high_noon.card_events as ceh
import bang.expansions.gold_rush.shop_cards as grc
import bang.expansions.gold_rush.characters as grch
import datadog
class Game:
def __init__(self, name, sio:socketio):
def __init__(self, name, sio:socketio, dd_api:datadog.api = None):
super().__init__()
self.sio = sio
self.name = name
self.dd_api = dd_api
self.players: List[pl.Player] = []
self.spectators: List[pl.Player] = []
self.deck: Deck = None
@ -447,9 +451,11 @@ class Game:
if not self.someone_won:
self.someone_won = True
self.sio.emit('chat_message', room=self.name, data=f'_won|{p.name}|{p.role.name}')
if self.dd_api:
self.dd_api.Metric.send(metric='player_win', points=[(int(time.time()), 1)], tags=["server:backend", f"host:{os.environ['HOST']}", f"char:{p.character.name}", f"role:{p.role.name}"])
p.notify_self()
if hasattr(self.sio, 'is_fake'):
print('announces_winners(): Running for tests, you will have to call reset manually!')
print('announces_winners(): Running for tests, you will have to pytcall reset manually!')
return
for i in range(5):
self.sio.emit('chat_message', room=self.name, data=f'_lobby_reset|{5-i}')
@ -604,6 +610,8 @@ class Game:
self.is_handling_death = True
import bang.expansions.dodge_city.characters as chd
print(f'{self.name}: the killer is {player.attacker}')
if self.dd_api:
self.dd_api.Metric.send(metric='player_death', points=[(int(time.time()), 1)], tags=["server:backend", f"host:{os.environ['HOST']}", f"char:{player.character.name}", f"role:{player.role.name}"])
if len([c for c in player.gold_rush_equipment if isinstance(c, grc.Ricercato)]) > 0 and player.attacker and player.attacker in self.players:
player.attacker.gold_nuggets += 1
player.attacker.hand.append(self.deck.draw(True))

View File

@ -184,7 +184,7 @@ def create_room(sid, room_name):
room_name += f'_{random.randint(0,100)}'
sio.leave_room(sid, 'lobby')
sio.enter_room(sid, room_name)
g = Game(room_name, sio)
g = Game(room_name, sio, api if send_metrics else None)
g.add_player(sio.get_session(sid))
if room_name in blacklist:
g.is_hidden = True
@ -284,7 +284,7 @@ def start_game(sid):
ses.game.start_game()
advertise_lobbies()
if send_metrics:
api.Metric.send(metric='start_game', points=[(int(time.time()), 1)], tags=["server:backend", f"host:{os.environ['HOST']}", [f"exp:{e}" for e in ses.game.expansions]])
api.Metric.send(metric='start_game', points=[(int(time.time()), 1)], tags=(["server:backend", f"host:{os.environ['HOST']}"] + [f"exp:{e}" for e in ses.game.expansions]))
@sio.event
def set_character(sid, name):