fixing leveling xp reporting

This commit is contained in:
2025-11-30 18:20:40 -06:00
parent 805d04cf4e
commit 70b2b0f124
6 changed files with 131 additions and 12 deletions

View File

@@ -1261,7 +1261,12 @@ class CombatService:
xp_per_player = rewards.experience // max(1, len(player_combatants))
gold_per_player = rewards.gold // max(1, len(player_combatants))
for player in player_combatants:
# Distribute items evenly among players
# For simplicity, give all items to each player in solo mode,
# or distribute round-robin in multiplayer
items_to_distribute = [Item.from_dict(item_dict) for item_dict in rewards.items]
for i, player in enumerate(player_combatants):
if session.is_solo():
char_id = session.solo_character_id
else:
@@ -1278,6 +1283,18 @@ class CombatService:
# Add gold
character.gold += gold_per_player
# Distribute items
if session.is_solo():
# Solo mode: give all items to the character
for item in items_to_distribute:
character.add_item(item)
else:
# Multiplayer: distribute items round-robin
# Player i gets items at indices i, i+n, i+2n, etc.
for idx, item in enumerate(items_to_distribute):
if idx % len(player_combatants) == i:
character.add_item(item)
# Save character
self.character_service.update_character(character, user_id)