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