SubmitGameData done

This commit is contained in:
Djalim Simaila 2023-01-09 17:10:39 +01:00
parent 71f5ee54de
commit fa6e81f529
3 changed files with 28 additions and 7 deletions

View File

@ -42,6 +42,10 @@ def getTraitFromText(text):
trait_lid = session.query(tables.Locale).filter_by(TEXT=text).one().TEXT_ID
return session.query(tables.Trait).filter_by(NAME_LID=trait_lid).one().TRAIT_ID
def getTraitFromTraitId(trait_id):
trait = session.query(tables.Trait).filter_by(TRAIT_ID=trait_id).one()
return trait
def getTraits(lang):
traits = []
for trait in session.query(tables.Trait).all():

View File

@ -32,7 +32,7 @@ class Member:
self.username = username
self.socket = None
self.progress = 0
self.has_submitted = False
self.results = None
def __str__(self) -> str:
return "Member[username={}]".format(self.username)
@ -60,6 +60,20 @@ class Game:
self.owner = Member(username)
self.members.append(self.owner)
return self.owner
def generateGameResults(self):
data = {}
npcs = data["npcs"] = {}
for npc_id in self.gamedata["npcs"]:
npcs[npc_id] = {}
npcs[npc_id]["name"] = self.gamedata["npcs"][npc_id]["name"]
traitId = self.reaction_table[npc_id]
trait = getTraitFromTraitId(traitId)
npcs[npc_id]["reaction"] = getTextFromLid("FR",trait.NAME_LID)
player_results = data["player"] = {}
for member in self.members:
player_results[member.username] = member.results
return data
def generate_data(self):
#TODO Get language from player
@ -91,12 +105,11 @@ class Game:
return results
except:
return False
def has_finished(self):
for member in self.members:
if member.progress != 5 : return False
if member.results == None : return False
return True
def __str__(self) -> str:

View File

@ -125,7 +125,6 @@ def gameProgress():
game.get_member(username).progress += 1
APP.socketio_app.emit("gameprogress", [flask.session["username"]], room="game."+game.game_id)
if game.has_finished() : APP.socketio_app.emit("gamefinshed",room="game."+game.game_id)
return {"error": 0}
@ -140,18 +139,23 @@ def checkAnwser():
member = game.get_member(flask.session["username"])
if member.has_submitted == True:
if member.results != None:
return {"error": 1, "msg": "answers already submitted for this member"}
playerResponses = flask.request.values.get("responses")
if playerResponses == None:
return {"error": 1, "msg": "no responses were sent"}
results = game.getPlayerResults(json.loads(playerResponses))
if results == False:
return {"error": 1, "msg": "invalid npc sent"}
response = {"error": 0}
member.has_submitted = True
response["results"] = results
member.results = results
if game.has_finished():
jsonGameResults = game.generateGameResults()
APP.socketio_app.emit("gamefinshed",jsonGameResults,room="game."+game.game_id)
response = {"error": 0}
return response