SubmitGameData done
This commit is contained in:
parent
71f5ee54de
commit
fa6e81f529
@ -42,6 +42,10 @@ def getTraitFromText(text):
|
|||||||
trait_lid = session.query(tables.Locale).filter_by(TEXT=text).one().TEXT_ID
|
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
|
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):
|
def getTraits(lang):
|
||||||
traits = []
|
traits = []
|
||||||
for trait in session.query(tables.Trait).all():
|
for trait in session.query(tables.Trait).all():
|
||||||
|
@ -32,7 +32,7 @@ class Member:
|
|||||||
self.username = username
|
self.username = username
|
||||||
self.socket = None
|
self.socket = None
|
||||||
self.progress = 0
|
self.progress = 0
|
||||||
self.has_submitted = False
|
self.results = None
|
||||||
|
|
||||||
def __str__(self) -> str:
|
def __str__(self) -> str:
|
||||||
return "Member[username={}]".format(self.username)
|
return "Member[username={}]".format(self.username)
|
||||||
@ -61,6 +61,20 @@ class Game:
|
|||||||
self.members.append(self.owner)
|
self.members.append(self.owner)
|
||||||
return 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):
|
def generate_data(self):
|
||||||
#TODO Get language from player
|
#TODO Get language from player
|
||||||
self.gamedata, self.reaction_table = generateGameData("FR")
|
self.gamedata, self.reaction_table = generateGameData("FR")
|
||||||
@ -93,10 +107,9 @@ class Game:
|
|||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def has_finished(self):
|
def has_finished(self):
|
||||||
for member in self.members:
|
for member in self.members:
|
||||||
if member.progress != 5 : return False
|
if member.results == None : return False
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def __str__(self) -> str:
|
def __str__(self) -> str:
|
||||||
|
@ -125,7 +125,6 @@ def gameProgress():
|
|||||||
game.get_member(username).progress += 1
|
game.get_member(username).progress += 1
|
||||||
|
|
||||||
APP.socketio_app.emit("gameprogress", [flask.session["username"]], room="game."+game.game_id)
|
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}
|
return {"error": 0}
|
||||||
|
|
||||||
@ -140,18 +139,23 @@ def checkAnwser():
|
|||||||
|
|
||||||
member = game.get_member(flask.session["username"])
|
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"}
|
return {"error": 1, "msg": "answers already submitted for this member"}
|
||||||
|
|
||||||
playerResponses = flask.request.values.get("responses")
|
playerResponses = flask.request.values.get("responses")
|
||||||
|
|
||||||
if playerResponses == None:
|
if playerResponses == None:
|
||||||
return {"error": 1, "msg": "no responses were sent"}
|
return {"error": 1, "msg": "no responses were sent"}
|
||||||
|
|
||||||
results = game.getPlayerResults(json.loads(playerResponses))
|
results = game.getPlayerResults(json.loads(playerResponses))
|
||||||
if results == False:
|
if results == False:
|
||||||
return {"error": 1, "msg": "invalid npc sent"}
|
return {"error": 1, "msg": "invalid npc sent"}
|
||||||
|
|
||||||
response = {"error": 0}
|
|
||||||
member.has_submitted = True
|
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
|
return response
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user