added answer check

This commit is contained in:
Djalim Simaila 2023-01-09 14:20:18 +01:00
parent 0e0e615414
commit 71f5ee54de
2 changed files with 40 additions and 5 deletions

View File

@ -32,6 +32,7 @@ class Member:
self.username = username
self.socket = None
self.progress = 0
self.has_submitted = False
def __str__(self) -> str:
return "Member[username={}]".format(self.username)
@ -82,6 +83,16 @@ class Game:
reaction_id = self.reaction_table[npc_id][int(reaction)]
return read_image(f"./truthseeker/static/images/npc/{npc_id}/{reaction_id}.png")
def getPlayerResults(self,responses: dict):
results = {}
try:
for npc_id in responses:
results[npc_id] = responses[npc_id] == str(self.reaction_table[npc_id])
return results
except:
return False
def has_finished(self):
for member in self.members:
@ -142,10 +153,7 @@ def generateNpcText(npc: tables.Npc, lang: str) -> dict:
return data
def generateNpcReactions(npc : tables.Npc) ->list:
data = []
data.append(getNpcRandomTraitId(npc))
data.append(getNpcRandomTraitId(npc))
return data
return getNpcRandomTraitId(npc)
def generatePlaceData(npcs :list, places: list, lang : str) -> dict:
data = {}

View File

@ -1,5 +1,5 @@
import flask
import json
from truthseeker import APP
from truthseeker.logic import game_logic
from truthseeker.utils import check_username
@ -128,3 +128,30 @@ def gameProgress():
if game.has_finished() : APP.socketio_app.emit("gamefinshed",room="game."+game.game_id)
return {"error": 0}
@routes_api.route("/submitAnswers", methods=["GET", "POST"])
def checkAnwser():
if not flask.session:
return {"error": 1, "msg": "No session"}
game = game_logic.get_game(flask.session["game_id"])
if game == None:
return {"error": 1, "msg": "this game doesn't exist"}
member = game.get_member(flask.session["username"])
if member.has_submitted == True:
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
return response