Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
@@ -52,7 +52,7 @@ AUDIO_DIR = "audio_logs"
|
|
52 |
STATE_FILE = "user_state.txt"
|
53 |
CHAT_FILE = os.path.join(CHAT_DIR, "quest_log.md")
|
54 |
|
55 |
-
# Session State Init
|
56 |
def init_session_state():
|
57 |
defaults = {
|
58 |
'server_running': False, 'server_task': None, 'active_connections': {},
|
@@ -65,6 +65,18 @@ def init_session_state():
|
|
65 |
for k, v in defaults.items():
|
66 |
if k not in st.session_state:
|
67 |
st.session_state[k] = v
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
68 |
|
69 |
# Helpers
|
70 |
def format_timestamp(username=""):
|
@@ -163,7 +175,7 @@ async def websocket_handler(websocket, path):
|
|
163 |
if room_id not in st.session_state.active_connections:
|
164 |
st.session_state.active_connections[room_id] = {}
|
165 |
st.session_state.active_connections[room_id][client_id] = websocket
|
166 |
-
username = st.session_state.
|
167 |
st.session_state.players[client_id] = {
|
168 |
"username": username,
|
169 |
"x": random.uniform(-20, 20),
|
@@ -227,7 +239,7 @@ def start_websocket_server():
|
|
227 |
asyncio.set_event_loop(loop)
|
228 |
loop.run_until_complete(run_websocket_server())
|
229 |
|
230 |
-
# Game HTML with Map
|
231 |
html_code = f"""
|
232 |
<!DOCTYPE html>
|
233 |
<html lang="en">
|
@@ -359,15 +371,6 @@ html_code = f"""
|
|
359 |
|
360 |
# Main Game Loop
|
361 |
def main():
|
362 |
-
init_session_state()
|
363 |
-
saved_username = load_username()
|
364 |
-
if saved_username and saved_username in CHARACTERS:
|
365 |
-
st.session_state.username = saved_username
|
366 |
-
if not st.session_state.username:
|
367 |
-
st.session_state.username = random.choice(list(CHARACTERS.keys()))
|
368 |
-
asyncio.run(save_chat_entry(st.session_state.username, "๐บ๏ธ Begins the Rocky Mountain Quest!", CHARACTERS[st.session_state.username]["voice"]))
|
369 |
-
save_username(st.session_state.username)
|
370 |
-
|
371 |
st.title(f"๐ฎ {GAME_NAME}")
|
372 |
st.subheader(f"๐ {st.session_state.username}โs Adventure - Score: {st.session_state.score} ๐")
|
373 |
|
|
|
52 |
STATE_FILE = "user_state.txt"
|
53 |
CHAT_FILE = os.path.join(CHAT_DIR, "quest_log.md")
|
54 |
|
55 |
+
# Session State Init (Moved to Top and Called Immediately)
|
56 |
def init_session_state():
|
57 |
defaults = {
|
58 |
'server_running': False, 'server_task': None, 'active_connections': {},
|
|
|
65 |
for k, v in defaults.items():
|
66 |
if k not in st.session_state:
|
67 |
st.session_state[k] = v
|
68 |
+
# Ensure username is initialized immediately
|
69 |
+
if st.session_state.username is None:
|
70 |
+
saved_username = load_username()
|
71 |
+
if saved_username and saved_username in CHARACTERS:
|
72 |
+
st.session_state.username = saved_username
|
73 |
+
else:
|
74 |
+
st.session_state.username = random.choice(list(CHARACTERS.keys()))
|
75 |
+
asyncio.run(save_chat_entry(st.session_state.username, "๐บ๏ธ Begins the Rocky Mountain Quest!", CHARACTERS[st.session_state.username]["voice"]))
|
76 |
+
save_username(st.session_state.username)
|
77 |
+
|
78 |
+
# Call init_session_state immediately to ensure username is set
|
79 |
+
init_session_state()
|
80 |
|
81 |
# Helpers
|
82 |
def format_timestamp(username=""):
|
|
|
175 |
if room_id not in st.session_state.active_connections:
|
176 |
st.session_state.active_connections[room_id] = {}
|
177 |
st.session_state.active_connections[room_id][client_id] = websocket
|
178 |
+
username = st.session_state.username # Now guaranteed to be set
|
179 |
st.session_state.players[client_id] = {
|
180 |
"username": username,
|
181 |
"x": random.uniform(-20, 20),
|
|
|
239 |
asyncio.set_event_loop(loop)
|
240 |
loop.run_until_complete(run_websocket_server())
|
241 |
|
242 |
+
# Game HTML with Map (Now Safe to Use st.session_state.username)
|
243 |
html_code = f"""
|
244 |
<!DOCTYPE html>
|
245 |
<html lang="en">
|
|
|
371 |
|
372 |
# Main Game Loop
|
373 |
def main():
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
374 |
st.title(f"๐ฎ {GAME_NAME}")
|
375 |
st.subheader(f"๐ {st.session_state.username}โs Adventure - Score: {st.session_state.score} ๐")
|
376 |
|