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
|
||||
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():
|
||||
|
@ -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:
|
||||
|
@ -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
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user