diff --git a/ui/hud_overlay_clean.py b/ui/hud_overlay_clean.py index 91b17d8..cd0f8e9 100644 --- a/ui/hud_overlay_clean.py +++ b/ui/hud_overlay_clean.py @@ -46,7 +46,7 @@ class HUDConfig: show_combat_stats: bool = False # Kills, Globals, DPP show_damage_stats: bool = False # Damage dealt/taken show_cost_metrics: bool = True # Cost per shot/hit/heal - show_shrapnel: bool = False + show_shrapnel: bool = False # Deprecated - now integrated in loot summary show_gear_info: bool = True compact_mode: bool = False @@ -61,7 +61,6 @@ class HUDConfig: 'show_combat_stats': self.show_combat_stats, 'show_damage_stats': self.show_damage_stats, 'show_cost_metrics': self.show_cost_metrics, - 'show_shrapnel': self.show_shrapnel, 'show_gear_info': self.show_gear_info, 'compact_mode': self.compact_mode, } @@ -77,7 +76,6 @@ class HUDConfig: show_combat_stats=data.get('show_combat_stats', False), show_damage_stats=data.get('show_damage_stats', False), show_cost_metrics=data.get('show_cost_metrics', True), - show_shrapnel=data.get('show_shrapnel', False), show_gear_info=data.get('show_gear_info', True), compact_mode=data.get('compact_mode', False), ) @@ -111,14 +109,14 @@ class HUDStats: # Shrapnel (optional) shrapnel_total: Decimal = Decimal('0.0') loot_other: Decimal = Decimal('0.0') # Non-shrapnel loot - + # Session records highest_loot: Decimal = Decimal('0.0') # Highest total loot from single kill - + # Kill tracking buffer _current_kill_loot: Decimal = Decimal('0.0') _last_loot_time: Optional[datetime] = None - + # Cost metrics (core) cost_per_shot: Decimal = Decimal('0.0') cost_per_hit: Decimal = Decimal('0.0') @@ -228,11 +226,7 @@ class HUDSettingsDialog(QDialog): self.cb_damage = QCheckBox("Damage Stats (Dealt/Taken)") self.cb_damage.setChecked(self.config.show_damage_stats) form.addRow(self.cb_damage) - - self.cb_shrapnel = QCheckBox("Shrapnel Amount") - self.cb_shrapnel.setChecked(self.config.show_shrapnel) - form.addRow(self.cb_shrapnel) - + # Display mode form.addRow(QLabel("Display Mode")) @@ -267,7 +261,6 @@ class HUDSettingsDialog(QDialog): self.config.show_cost_breakdown = self.cb_cost_breakdown.isChecked() self.config.show_combat_stats = self.cb_combat.isChecked() self.config.show_damage_stats = self.cb_damage.isChecked() - self.config.show_shrapnel = self.cb_shrapnel.isChecked() self.config.compact_mode = self.cb_compact.isChecked() self.accept() @@ -445,7 +438,7 @@ class HUDOverlay(QWidget): summary_layout = QVBoxLayout(summary_frame) summary_layout.setContentsMargins(8, 4, 8, 4) summary_layout.setSpacing(2) - + # Cost row cost_layout = QHBoxLayout() self.total_cost_label = QLabel("Cost: 0.00") @@ -453,26 +446,26 @@ class HUDOverlay(QWidget): cost_layout.addWidget(self.total_cost_label) cost_layout.addStretch() summary_layout.addLayout(cost_layout) - + # Loot breakdown row loot_layout = QHBoxLayout() - + self.total_loot_label = QLabel("Total: 0.00") self.total_loot_label.setStyleSheet("font-size: 11px; color: #AAFFAA;") - + self.shrapnel_value_label = QLabel("S: 0.00") self.shrapnel_value_label.setStyleSheet("font-size: 11px; color: #87CEEB;") - + self.regular_loot_label = QLabel("R: 0.00") self.regular_loot_label.setStyleSheet("font-size: 11px; color: #FFD700;") - + loot_layout.addWidget(self.total_loot_label) loot_layout.addStretch() loot_layout.addWidget(self.shrapnel_value_label) loot_layout.addWidget(self.regular_loot_label) - + summary_layout.addLayout(loot_layout) - + # Highest loot row highest_layout = QHBoxLayout() self.highest_loot_label = QLabel("Highest: 0.00") @@ -480,7 +473,7 @@ class HUDOverlay(QWidget): highest_layout.addWidget(self.highest_loot_label) highest_layout.addStretch() summary_layout.addLayout(highest_layout) - + layout.addWidget(summary_frame) # Separator before cost metrics @@ -589,28 +582,6 @@ class HUDOverlay(QWidget): sep_footer.setStyleSheet("background-color: rgba(255, 215, 0, 50);") sep_footer.setFixedHeight(1) layout.addWidget(sep_footer) - damage_layout.setContentsMargins(0, 0, 0, 0) - - self.damage_dealt_label = QLabel("Dealt: 0") - self.damage_taken_label = QLabel("Taken: 0") - - damage_layout.addWidget(self.damage_dealt_label) - damage_layout.addStretch() - damage_layout.addWidget(self.damage_taken_label) - - layout.addWidget(damage_frame) - - # === OPTIONAL: Shrapnel === - if self.hud_config.show_shrapnel: - shrapnel_frame = QFrame() - shrapnel_layout = QHBoxLayout(shrapnel_frame) - shrapnel_layout.setContentsMargins(0, 0, 0, 0) - - self.shrapnel_label = QLabel("💎 Shrapnel: 0.00 PED") - shrapnel_layout.addWidget(self.shrapnel_label) - shrapnel_layout.addStretch() - - layout.addWidget(shrapnel_frame) # === FOOTER: Session Time + Drag Hint === footer = QHBoxLayout() @@ -668,8 +639,6 @@ class HUDOverlay(QWidget): height += 25 if self.hud_config.show_damage_stats: height += 25 - if self.hud_config.show_shrapnel: - height += 25 if self.hud_config.show_session_time: height += 20 @@ -731,11 +700,11 @@ class HUDOverlay(QWidget): self._stats.cost_per_shot = cost_per_shot self._stats.cost_per_hit = cost_per_hit self._stats.cost_per_heal = cost_per_heal - + # Initialize kill tracking self._stats._current_kill_loot = Decimal('0.0') self._stats._last_loot_time = None - + self.session_active = True self._timer.start(1000) @@ -753,7 +722,7 @@ class HUDOverlay(QWidget): if self._stats._current_kill_loot > self._stats.highest_loot: self._stats.highest_loot = self._stats._current_kill_loot self._refresh_display() - + self.session_active = False self._timer.stop() self.status_label.setText("● Stopped") @@ -846,7 +815,7 @@ class HUDOverlay(QWidget): """Update loot value - tracks per-kill totals for highest loot.""" if self.session_active: now = datetime.now() - + # Check if this is a new kill (gap of >2 seconds since last loot) if self._stats._last_loot_time is not None: time_since_last = (now - self._stats._last_loot_time).total_seconds() @@ -862,15 +831,15 @@ class HUDOverlay(QWidget): else: # First loot of session self._stats._current_kill_loot = value_ped - + self._stats._last_loot_time = now - + # Add to totals if is_shrapnel: self._stats.shrapnel_total += value_ped else: self._stats.loot_other += value_ped - + self._stats.recalculate() self._refresh_display()