awacke1 commited on
Commit
3ab25b4
Β·
verified Β·
1 Parent(s): eee3377

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +54 -3
app.py CHANGED
@@ -58,6 +58,36 @@ class GameTimer:
58
  if 'game_timer' not in st.session_state:
59
  st.session_state.game_timer = GameTimer()
60
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
61
  # πŸ“ Name Generation
62
  def generate_fantasy_name():
63
  prefixes = ['Aer', 'Bal', 'Cal', 'Dor', 'El', 'Fae', 'Gor', 'Hel', 'Il', 'Jor',
@@ -244,11 +274,28 @@ def update_nearby_players():
244
  save_player_state()
245
  st.session_state.nearby_players = nearby
246
 
247
- # 🎨 Game Board Creation
248
  def create_game_board():
249
  current_time = time.time()
250
  all_players = load_all_players(current_time)['players']
251
  images = get_game_images()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
252
  for y in range(GRID_HEIGHT):
253
  cols = st.columns(GRID_WIDTH)
254
  for x in range(GRID_WIDTH):
@@ -257,12 +304,16 @@ def create_game_board():
257
  if (player_data['position']['x'] == x and
258
  player_data['position']['y'] == y):
259
  player_here = player_name
 
260
  if x == st.session_state.position['x'] and y == st.session_state.position['y']:
261
  cols[x].image(images['player'], use_column_width=True)
262
- cols[x].markdown(f"**You** ({st.session_state.character_stats['score']} pts)")
 
 
263
  elif player_here:
264
  cols[x].image(images['other_player'], use_column_width=True)
265
- cols[x].markdown(f"**{player_here}** ({all_players[player_here]['stats']['score']} pts)")
 
266
  else:
267
  cols[x].image(images['tile'], use_column_width=True)
268
 
 
58
  if 'game_timer' not in st.session_state:
59
  st.session_state.game_timer = GameTimer()
60
 
61
+ # Also modify the initialization section to ensure character_stats is properly initialized
62
+ if 'initialized' not in st.session_state:
63
+ st.session_state.initialized = False
64
+ st.session_state.game_state = {
65
+ 'players': {},
66
+ 'chat_messages': [],
67
+ 'last_sync': time.time()
68
+ }
69
+ st.session_state.player_name = None
70
+ st.session_state.character_stats = {
71
+ 'STR': 10,
72
+ 'DEX': 10,
73
+ 'CON': 10,
74
+ 'INT': 10,
75
+ 'WIS': 10,
76
+ 'CHA': 10,
77
+ 'HP': 20,
78
+ 'MAX_HP': 40,
79
+ 'score': 0,
80
+ 'created_at': time.time()
81
+ }
82
+ st.session_state.position = {
83
+ 'x': random.randint(0, GRID_WIDTH - 1),
84
+ 'y': random.randint(0, GRID_HEIGHT - 1)
85
+ }
86
+ st.session_state.last_move = time.time()
87
+ st.session_state.nearby_players = []
88
+ load_game_state()
89
+
90
+
91
  # πŸ“ Name Generation
92
  def generate_fantasy_name():
93
  prefixes = ['Aer', 'Bal', 'Cal', 'Dor', 'El', 'Fae', 'Gor', 'Hel', 'Il', 'Jor',
 
274
  save_player_state()
275
  st.session_state.nearby_players = nearby
276
 
277
+ # Modify the create_game_board function to add safety checks
278
  def create_game_board():
279
  current_time = time.time()
280
  all_players = load_all_players(current_time)['players']
281
  images = get_game_images()
282
+
283
+ # Add safety check for character_stats
284
+ if not st.session_state.character_stats:
285
+ st.session_state.character_stats = {
286
+ 'STR': 10,
287
+ 'DEX': 10,
288
+ 'CON': 10,
289
+ 'INT': 10,
290
+ 'WIS': 10,
291
+ 'CHA': 10,
292
+ 'HP': 20,
293
+ 'MAX_HP': 40,
294
+ 'score': 0,
295
+ 'created_at': time.time()
296
+ }
297
+ save_player_state()
298
+
299
  for y in range(GRID_HEIGHT):
300
  cols = st.columns(GRID_WIDTH)
301
  for x in range(GRID_WIDTH):
 
304
  if (player_data['position']['x'] == x and
305
  player_data['position']['y'] == y):
306
  player_here = player_name
307
+
308
  if x == st.session_state.position['x'] and y == st.session_state.position['y']:
309
  cols[x].image(images['player'], use_column_width=True)
310
+ # Add safety check when accessing score
311
+ score = st.session_state.character_stats.get('score', 0)
312
+ cols[x].markdown(f"**You** ({score} pts)")
313
  elif player_here:
314
  cols[x].image(images['other_player'], use_column_width=True)
315
+ player_score = all_players[player_here]['stats'].get('score', 0)
316
+ cols[x].markdown(f"**{player_here}** ({player_score} pts)")
317
  else:
318
  cols[x].image(images['tile'], use_column_width=True)
319