added answer check
This commit is contained in:
parent
0e0e615414
commit
71f5ee54de
@ -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 = {}
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user