fixing leveling xp reporting
This commit is contained in:
@@ -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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user