feat: add player name setting for accurate global tracking
- Settings dialog now has Avatar Name field - Store player_name in MainWindow - Filter personal globals to only count if player name matches - Warn user if no player name is configured - Log other players' globals separately
This commit is contained in:
parent
3473b2c592
commit
90595a8ebe
|
|
@ -173,19 +173,30 @@ class ProjectStatsDialog(QDialog):
|
|||
class SettingsDialog(QDialog):
|
||||
"""Dialog for application settings."""
|
||||
|
||||
def __init__(self, parent=None):
|
||||
def __init__(self, parent=None, current_player_name: str = ""):
|
||||
super().__init__(parent)
|
||||
self.setWindowTitle("Settings")
|
||||
self.setMinimumWidth(400)
|
||||
self.player_name = current_player_name
|
||||
self.setup_ui()
|
||||
|
||||
def setup_ui(self):
|
||||
layout = QVBoxLayout(self)
|
||||
|
||||
info_label = QLabel("Settings configuration would go here.")
|
||||
info_label.setAlignment(Qt.AlignmentFlag.AlignCenter)
|
||||
layout.addWidget(info_label)
|
||||
|
||||
|
||||
# Player Settings Group
|
||||
player_group = QGroupBox("Player Settings")
|
||||
player_layout = QFormLayout(player_group)
|
||||
|
||||
self.player_name_edit = QLineEdit()
|
||||
self.player_name_edit.setText(self.player_name)
|
||||
self.player_name_edit.setPlaceholderText("Your avatar name in Entropia Universe")
|
||||
player_layout.addRow("Avatar Name:", self.player_name_edit)
|
||||
|
||||
help_label = QLabel("Set your avatar name to track your globals correctly.")
|
||||
help_label.setStyleSheet("color: #888; font-size: 11px;")
|
||||
player_layout.addRow(help_label)
|
||||
|
||||
layout.addWidget(player_group)
|
||||
layout.addStretch()
|
||||
|
||||
button_box = QDialogButtonBox(
|
||||
|
|
@ -194,6 +205,10 @@ class SettingsDialog(QDialog):
|
|||
button_box.accepted.connect(self.accept)
|
||||
button_box.rejected.connect(self.reject)
|
||||
layout.addWidget(button_box)
|
||||
|
||||
def get_player_name(self) -> str:
|
||||
"""Get the configured player name."""
|
||||
return self.player_name_edit.text().strip()
|
||||
|
||||
|
||||
# ============================================================================
|
||||
|
|
@ -250,6 +265,9 @@ class MainWindow(QMainWindow):
|
|||
self.session_state = SessionState.IDLE
|
||||
self.current_session_id: Optional[int] = None
|
||||
self._current_db_session_id: Optional[int] = None
|
||||
|
||||
# Player settings
|
||||
self.player_name: str = "" # Set via Settings dialog
|
||||
|
||||
# Selected gear
|
||||
self._selected_weapon: Optional[str] = None
|
||||
|
|
@ -1048,9 +1066,20 @@ class MainWindow(QMainWindow):
|
|||
"""Handle personal global events (only your globals)."""
|
||||
value_ped = event.data.get('value_ped', Decimal('0.0'))
|
||||
creature = event.data.get('creature', 'Unknown')
|
||||
# Only count personal globals in HUD stats
|
||||
self.hud.on_personal_global(value_ped)
|
||||
self.log_info("Global", f"🎉 YOUR GLOBAL: {creature} for {value_ped} PED!!!")
|
||||
player = event.data.get('player_name', 'Unknown')
|
||||
|
||||
# Only count if it matches our configured player name
|
||||
if self.player_name and player.lower() == self.player_name.lower():
|
||||
# Only count personal globals in HUD stats
|
||||
self.hud.on_personal_global(value_ped)
|
||||
self.log_info("Global", f"🎉 YOUR GLOBAL: {creature} for {value_ped} PED!!!")
|
||||
else:
|
||||
# Log but don't count - might be another player if names are similar
|
||||
self.log_info("Global", f"{player} got global: {creature} for {value_ped} PED")
|
||||
|
||||
# If no player name set, warn user
|
||||
if not self.player_name:
|
||||
self.log_info("Config", "⚠️ Set your avatar name in Settings to track your globals correctly")
|
||||
|
||||
def on_hof(event):
|
||||
"""Handle HoF events."""
|
||||
|
|
@ -1452,8 +1481,13 @@ class MainWindow(QMainWindow):
|
|||
|
||||
def on_settings(self):
|
||||
"""Open settings dialog."""
|
||||
dialog = SettingsDialog(self)
|
||||
dialog.exec()
|
||||
dialog = SettingsDialog(self, self.player_name)
|
||||
if dialog.exec() == QDialog.DialogCode.Accepted:
|
||||
self.player_name = dialog.get_player_name()
|
||||
if self.player_name:
|
||||
self.log_info("Settings", f"Avatar name set to: {self.player_name}")
|
||||
else:
|
||||
self.log_info("Settings", "Warning: No avatar name set. Global tracking may not work correctly.")
|
||||
|
||||
def on_loadout_manager(self):
|
||||
"""Open Loadout Manager dialog."""
|
||||
|
|
|
|||
Loading…
Reference in New Issue