Merge pull request #107 from ThomasRubini/startGame

This commit is contained in:
Thomas Rubini 2023-03-19 12:23:14 +01:00 committed by GitHub
commit 320b733bfd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 6 additions and 14 deletions

View File

@ -14,21 +14,21 @@ def get_text_from_lid(lang: str, lid: int) -> str:
texts = db.session.query(Text).filter_by(LANG=lang, LID=lid).all()
return random.choice(texts).TEXT
def get_random_place() -> Place:
def get_random_places(n) -> Place:
"""
Returns a random place from the database.
:return: a Place object
"""
return random.choice(db.session.query(Place).all())
return random.sample(db.session.query(Place).all(), n)
def get_random_npc() -> Npc :
def get_random_npcs(n: int = 1) -> Npc :
"""
Returns a random npc from the database
:return: a Npc object
"""
return random.choice(db.session.query(Npc).all())
return random.sample(db.session.query(Npc).all(), n)
def get_npc_random_trait_id(npc_id: int) -> int:
"""

View File

@ -277,20 +277,12 @@ def generate_game_data(lang: str) -> tuple[dict, dict]:
data = {}
data["npcs"] = {}
reactions_table = {}
npcs = []
while len(npcs) != 5:
npc = dbutils.get_random_npc()
if npc not in npcs:
npcs.append(npc)
npcs = list(dbutils.get_random_npcs(5))
for npc in npcs:
data["npcs"][str(npc.NPC_ID)] = generate_npc_text(npc, lang)
reactions_table[str(npc.NPC_ID)] = dbutils.get_npc_random_trait_id(npc)
places = []
while len(places) != 3:
place = dbutils.get_random_place()
if place not in places:
places.append(place)
places = list(dbutils.get_random_places(3))
data["rooms"] = generate_place_data(npcs, places, lang)
data["questions"] = {}