serverside gamemanager can start game but fails on nontype subscription error
This commit is contained in:
@ -14,6 +14,7 @@ class Player:
|
||||
self.__handCards = []
|
||||
self.__deck = deck
|
||||
self.__id = random.randint(3, 99999)
|
||||
self.__mana = mana
|
||||
|
||||
def shuffleDeck(self):
|
||||
self.__deck = random.shuffle(self.__deck)
|
||||
|
Binary file not shown.
@ -43,31 +43,29 @@ class GameManager:
|
||||
# this section mostly only used by the networking and event handling classes
|
||||
# other parts should never need to interface with this unless really required
|
||||
# =============================================================================
|
||||
def startGame(self, tcpSocket:socket):
|
||||
def startGame(self, tcpSocket: socket):
|
||||
self.__state = "running"
|
||||
|
||||
players = list(self.__serverWorld.getPlayers)
|
||||
players = list(self.__players.values())
|
||||
|
||||
print("game starts")
|
||||
self.logger.info("game manager is starting the game")
|
||||
for userAddr in self.__users.keys():
|
||||
for userAddr, player_data in self.__players.items():
|
||||
try:
|
||||
user = self.__players[userAddr]["player"]
|
||||
user = player_data["player"]
|
||||
user.addMana(1000)
|
||||
user.adjustHP(1000)
|
||||
user.shuffleDeck()
|
||||
cards = user.getDeck()
|
||||
user.setHand(cards[:5])
|
||||
|
||||
enemy = players[0]["player"]
|
||||
# iterates until the enemy player is not anymore equal to current player
|
||||
enemy = next(player_data["player"] for player_data in players if player_data["player"] != user)
|
||||
|
||||
if enemy == user:
|
||||
enemy = players[1]["player"]
|
||||
|
||||
payload = {
|
||||
"event":"startgame",
|
||||
"event": "startgame",
|
||||
"player": {
|
||||
"mana":user.getMana(),
|
||||
"mana": user.getMana(),
|
||||
"hp": user.getHP(),
|
||||
"hand": user.getHand()
|
||||
},
|
||||
@ -82,8 +80,6 @@ class GameManager:
|
||||
except Exception as e:
|
||||
self.logger.error(f"failed to start game due to error: {e}")
|
||||
break
|
||||
# handles notifying all players that the game starts
|
||||
pass
|
||||
|
||||
def stopGame(self):
|
||||
# handles notifying all players that the game stops
|
||||
|
@ -15,6 +15,20 @@ class TCPEventHandler:
|
||||
def handleTCPEvents(self, event, gameManager:GameManager, address):
|
||||
gameManager.getLogger().info(f"incommingevent {event}")
|
||||
if event["event"] == "PlaceCard":
|
||||
gameManager.getLogger().info(f"player {event['user']} attempted to place card {event['card']}")
|
||||
for playerKey in gameManager.getPlayers().keys():
|
||||
player = gameManager.getPlayers()[playerKey]
|
||||
if int(event["user"]) != player["player"].getID():
|
||||
payload = {
|
||||
"event":"cardPlaced",
|
||||
"card": {
|
||||
"card":event["card"],
|
||||
"owner": event["user"],
|
||||
"x": event["x"],
|
||||
"y": event["y"]
|
||||
}
|
||||
}
|
||||
player["socket"].send(payload)
|
||||
pass
|
||||
elif event["event"] == "MoveCard":
|
||||
pass
|
||||
|
@ -93,6 +93,7 @@ class NetworkManager:
|
||||
self.send({
|
||||
"event": "loginresponse",
|
||||
"status": "success",
|
||||
"username": user[client_address]["player"].getName(),
|
||||
"id": user[client_address]["player"].getID(),
|
||||
}, client_address)
|
||||
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user