- LoadoutManager now uses real healing_tools.py database (25+ tools)
- Added categorized healing tools: Medical Tools and Restoration Chips
- Added Frontier Set (Adjusted) with all 7 pieces
- Includes Regeneration Chip IV (L) for test run
- Added Regeneration Chip IV (L) to healing_tools.py
- Added Frontier and Frontier Adjusted armors to armor_decay.py
- Ready for test hunt with specified gear
- Implemented ArmorSelectorDialog for selecting armors from API
- Search functionality by name
- Displays protection stats (Impact, Cut, Stab, etc.)
- Fixes ImportError in ui/__init__.py
- HuntingSession dataclass with full cost/loot tracking
- Real-time cost calculations (weapon + armor + healing)
- Profit/Loss with return percentage
- Cost per kill and cost per hour metrics
- SessionManager for multiple sessions
- JSON export for session data
- Excludes shrapnel/UA from profit calculations
- Linear decay per damage point (0.05 PEC per HP)
- Plate only decays for damage it actually absorbs
- Added block_chance support for upgraded plates
- Improved documentation
- Ammo Burn from API is in ammo units, not PEC
- 1 ammo = 0.01 PEC = 0.0001 PED
- Was treating 848 ammo as 848 PEC (WRONG)
- Now correctly: 848 ammo = 8.48 PEC
- Fixes cost calculation: 30,552 PED/hr → ~330 PED/hr
- Created core/attachments.py with full attachment type system
- Supports: Amplifiers, Scopes, Absorbers, Finder Amps, Platings, Enhancers, Implants
- Added DPP display to HUD overlay
- Attachment compatibility validation rules
- Project vision and completed features
- Current sprint: Advanced Loadout Manager
- Future sprints: Analytics, Export, Hunter/Miner/Crafter modules
- Attachment system planned
- Full cost tracking scope defined
- Non-Shrapnel loot = definite kill
- Shrapnel: every 2 Shrapnel = 1 kill (since mobs drop 1-2 Shrapnel)
- This handles mobs that drop only Shrapnel
- Reset Shrapnel counter on session start
- Add shots_fired counter to HUDStats
- Display SHOTS in HUD next to DAMAGE DEALT/TAKEN
- Track 1 shot per damage event
- Fix kills: count when non-Shrapnel loot is received
- Shrapnel excluded from kill count (every mob drops it)
- Use actual weapon decay (PEC) from API instead of broken DPP calculation
- Add decay and ammo_burn to weapon stats passed from Gear Selector
- Cost per shot = decay (in PEC) / 100 = PED
- HUD now shows: LOOT, COST, and PROFIT/LOSS (P/L)
- Profit/Loss color-coded: Green=profit, Red=loss, White=break-even
- Cost estimated from weapon DPP and damage dealt
- Weapon stats (DPP, cost/hour) passed when starting session
- Tracks cost per shot based on damage output
- All stats persisted in HUDStats dataclass
- Loads 3099+ real weapons from api.entropianexus.com
- Shows: Name, Type, Damage, DPP, Cost/hour, Efficiency
- Async loading in background thread (no UI freeze)
- Search by name
- Detailed stats preview
- Ready for production use
- Real API endpoint: https://api.entropianexus.com/weapons
- Loads 3099+ weapons from live database
- WeaponStats with full damage breakdown (stab, cut, impact, burn, etc.)
- Auto-calculated DPP and cost per hour
- Search by name
- Caching for performance
Example: ArMatrix BC-10 (L) - DPP: 0.05, Cost/hour: ~201 PED
- Full API client with async support
- Search, get_weapon, get_armor, get_tool methods
- Comprehensive data classes: WeaponStats, ArmorStats, ToolStats, GearLoadout
- Mock data fallback (6 weapons, 5 armors, 4 tools)
- Caching support for performance
- Ready for real API - just set mock_mode=False when endpoints available
API endpoints documented but not publicly available yet.
Using mock data for development and testing.
- Remove auto-kill counting on loot (was overcounting)
- Add GearSelectorDialog to select weapons/armor/tools from Nexus API
- Add Tools → Select Gear menu (Ctrl+G)
- Selected weapon now shows in HUD during session
- Uses mock data from nexus_api.py for now
- LogWatcher callbacks now queue events instead of direct DB access
- Main thread processes queue every 100ms
- Fixes 'SQLite objects created in a thread can only be used in that same thread' error
- Loot will now be properly recorded to database
- log_debug/info/warning/error now use _append_log directly
- Avoids AttributeError when log_watcher is None during init
- LogWatcher is only used for game events, not UI logging