From 2959bfff89b6bda657c41c04a1f8cd883aef2c0a Mon Sep 17 00:00:00 2001 From: LemonNexus Date: Mon, 9 Feb 2026 22:29:05 +0000 Subject: [PATCH] fix: use loadout's cost_per_hit instead of armor decay tracker lookup - Disable ArmorDecayTracker (it requires armor to be in hardcoded database) - Use cost_per_hit from loadout directly when damage is taken - This allows any armor to work, not just ones in the database - Simplified approach: pre-calculate costs in loadout, use during session --- ui/hud_overlay.py | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/ui/hud_overlay.py b/ui/hud_overlay.py index c0386be..ea24674 100644 --- a/ui/hud_overlay.py +++ b/ui/hud_overlay.py @@ -894,12 +894,8 @@ class HUDOverlay(QWidget): self.session_active = True # Initialize armor decay tracker - try: - from core.armor_decay import ArmorDecayTracker - self._armor_tracker = ArmorDecayTracker(armor if armor != "None" else "Ghost") - self._armor_tracker.start_session() - except ImportError: - self._armor_tracker = None + # With simplified loadouts, we use cost_per_hit directly instead of looking up armor + self._armor_tracker = None # Disabled - using loadout's cost_per_hit directly self._timer.start(1000) self._refresh_display() @@ -1057,10 +1053,15 @@ class HUDOverlay(QWidget): self._stats.damage_taken += damage - # Calculate armor decay using tracker - if self._armor_tracker and damage > 0: - armor_decay_ped = self._armor_tracker.record_damage_taken(damage) - self._stats.armor_cost_total += armor_decay_ped + # Calculate armor decay using tracker or loadout's cost_per_hit + if damage > 0: + if self._armor_tracker: + armor_decay_ped = self._armor_tracker.record_damage_taken(damage) + self._stats.armor_cost_total += armor_decay_ped + elif self._stats.cost_per_hit > 0: + # Use pre-calculated cost per hit from loadout + self._stats.armor_cost_total += self._stats.cost_per_hit + self._stats.hits_taken += 1 self._stats.recalculate() self._refresh_display()