Commit Graph

50 Commits

Author SHA1 Message Date
LemonNexus 6bcd0ca799 feat(api): add armor sets and mindforce implants endpoints
- Added NexusArmorSet dataclass with pieces list and total protection
- Added NexusMindforceImplant dataclass for MF chips/implants
- Added get_all_armor_sets() method using /armorsets endpoint
- Added get_all_mindforce_implants() method using /mindforceimplants endpoint
- Added cache variables for both new endpoints
2026-02-09 15:55:55 +00:00
LemonNexus b8fc0a8033 fix(api): fix NexusPlate dataclass - add missing protection_acid and protection_electric fields
- Added protection_acid and protection_electric to NexusPlate dataclass
- Updated hardcoded plates to use individual protection fields
- Fixed plate selector crash when sorting by protection
2026-02-09 15:47:53 +00:00
LemonNexus cf95732fff fix(api): update endpoints to match Entropia Nexus API structure
- Plates: /plates → /armorplatings
- Absorbers: Now using /absorbers (was /attachments)
- Amplifiers: Now using /weaponamplifiers (was /attachments)
- Scopes: Now using /weaponvisionattachments (was /attachments)
- Healing: Now fetches both /medicaltools AND /medicalchips

Added separate cache variables and methods for:
- _absorbers_cache, get_all_absorbers()
- _amplifiers_cache, get_all_amplifiers()
- _scopes_cache, get_all_scopes()
- _healing_chips_cache, get_all_healing_chips()
2026-02-09 15:35:54 +00:00
LemonNexus c38d577675 feat(api): add hardcoded plates data since API lacks plates endpoint
Added 20 common armor plates organized by protection type:
- Impact plates (Mk. 5B, 10A, 25A, 50A)
- Cut/Stab plates (Mk. 5C, 10C, 25C, 50C)
- Elemental plates (Electric, Burn, Acid, Cold)
- Shrapnel plates (Mk. 10S, 25S)
- Penetration plates (Mk. 10P, 25P)

Plates selector now works with fallback data.
2026-02-09 15:29:18 +00:00
LemonNexus cdadb7f081 fix(api): correct healing tools parser to use MaxHeal/MinHeal fields
API uses MaxHeal and MinHeal directly in Properties (not nested Heal object).
Parser now correctly reads heal amounts and calculates economy.
Also added type detection for chips vs FAPs based on item name.
2026-02-09 15:27:09 +00:00
LemonNexus 9decd0ba5d fix(api): handle null/None values in API parsing
Added safe_decimal() helper to handle None/empty values from API
that were causing decimal.ConversionSyntax errors.

Fixed parsers:
- NexusHealingTool: Uses safe_decimal for decay/heal amounts
- NexusRing: Uses safe_decimal for max_tt/min_tt
- NexusClothing: Safely handles None buff values

Errors were occurring when API returned null for numeric fields
instead of 0.
2026-02-09 14:35:12 +00:00
LemonNexus ad3d8e535a fix(api): correct rings endpoint to /clothings with Type=Ring filter
- Changed endpoint from /rings to /clothings (correct plural form)
- Filter clothings for Type=Ring to get actual ring data
- Updated NexusRing dataclass to match API structure:
  - slot: 'Left Finger', 'Right Finger'
  - gender: 'Both', 'Male', 'Female'
  - effects: Dict of effect name -> value
  - max_tt/min_tt: PED values from Economy
- Updated UI to display effects dict properly
- Maintained hardcoded fallback
2026-02-09 14:28:14 +00:00
LemonNexus 366104b5a6 feat(api): add hardcoded ring data since API lacks rings endpoint
Added 20 common rings (Ares, Hermetic, Courage, Perseus, Zeus, Apollo,
Artemis, Hephaestus, Aphrodite, Dionysus) with Limited variants.
Fallback when /rings endpoint returns 404.
2026-02-09 14:20:54 +00:00
LemonNexus 36bc075e95 fix(armor): correct decay_per_hit to decay_per_hp field name
Fixed AttributeError where code was referencing non-existent 'decay_per_hit'
instead of the correct 'decay_per_hp' field on ArmorPiece and ArmorPlate.

- ui/loadout_manager.py: _get_current_config() plate/piece copy
- core/armor_system.py: equip_armor_selection() piece copy
2026-02-09 14:13:07 +00:00
LemonNexus a903a65275 fix(api): fix remaining lowercase fields in NexusWeapon 2026-02-09 14:07:44 +00:00
LemonNexus 27c3e5ad6e fix(api): use TitleCase for API field names (Id, Name, Properties)
- Nexus API returns TitleCase keys, not lowercase
- Fixed all from_api() methods to use correct case
- Armor, Healing, Plate, Attachment, Enhancer, Ring, Clothing, Pet
2026-02-09 14:05:56 +00:00
LemonNexus dceafbc69f feat(api): full Entropia Nexus API integration + searchable selectors
- NEW: core/nexus_full_api.py - Complete API for all gear types
  - Weapons, Armors, Plates, Attachments, Enhancers
  - Healing Tools, Rings, Clothing, Pets
  - Search across all categories

- NEW: ui/armor_selector.py - Searchable armor browser
  - Real-time search, filter by protection type
  - Preview panel with economy info

- NEW: ui/healing_selector.py - Searchable healing tool browser
  - Filter by type (FAP/Chip/Limited)
  - Filter by heal amount
  - Color-coded economy ratings

All gear now searchable like weapons!
2026-02-09 11:43:25 +00:00
LemonNexus 6a6d50e5f8 fix(armor): add decay_per_hp field to ArmorPlate
- Added decay_per_hp field with default 0.05
- Changed constants to ClassVar like ArmorPiece
2026-02-09 11:26:49 +00:00
LemonNexus 62e9fa4a38 fix(armor): replace old slot names with new Nexus slot names
- CHEST -> TORSO
- LEFT_ARM/RIGHT_ARM -> ARMS
- LEFT_HAND/RIGHT_HAND -> HANDS

Note: Duplicate ARMS/HANDS entries exist in armor sets - second entry overwrites first
2026-02-09 11:23:09 +00:00
LemonNexus 30229a8ce3 fix(armor): add decay_per_hp field and ClassVar constants to ArmorPiece
- Added decay_per_hp field for custom economy per piece
- Added BASE_DECAY_FACTOR and MAX_DURABILITY as ClassVar
- Added ClassVar to typing imports
2026-02-09 11:22:35 +00:00
LemonNexus 9e55c751b9 fix(armor): match Entropia Nexus slot naming exactly
- TORSO (was CHEST) - Harness/Chest piece
- LEGS (was THIGHS) - Thigh Guards
- Updated Frontier set with correct slots
- Display names match Nexus: Head, Torso, Arms, Hands, Legs, Shins, Feet

Now matches Nexus JSON export structure exactly
2026-02-09 11:06:46 +00:00
LemonNexus fd2b34e395 fix(armor): correct 7-slot structure to match EU exactly
- HEAD: Helmet
- CHEST: Harness
- ARMS: Arm Guards (both arms combined)
- HANDS: Gloves (both hands combined)
- THIGHS: Thigh Guards
- SHINS: Shin Guards
- FEET: Foot Guards

Updated ArmorSlot enum and Frontier set with correct structure
2026-02-09 10:59:17 +00:00
LemonNexus e48dca4ea2 fix(armor): correct Frontier piece names to match EU exactly
- Frontier Helmet, Adjusted (M)
- Frontier Harness, Adjusted (M)
- Frontier Arm Guards, Adjusted (M) - both arms
- Frontier Gloves, Adjusted (M) - both hands
- Combined leg piece: Thigh+Shin+Foot Guards

Note: Full separation of Thigh/Shin/Foot would require additional armor slots
2026-02-09 10:55:19 +00:00
LemonNexus 95a511bbfd feat(gear): add real healing tools and Frontier armor set
- 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
2026-02-09 10:51:32 +00:00
LemonNexus cfc01688f1 feat(gear): add test run equipment to databases
- 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
2026-02-09 10:44:25 +00:00
LemonNexus dd2fce8b62 docs: add comprehensive test hunt guide
- Step-by-step instructions for first test hunt
- Pre-test checklist
- Expected cost calculations
- Troubleshooting section
- Post-test review steps
2026-02-09 10:40:46 +00:00
LemonNexus 17bb5cbf0b feat(hunting): complete hunting session tracker
- 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
2026-02-09 10:38:37 +00:00
LemonNexus b8d5b4a50e feat(healing): add healing tools database with 25+ tools
- Vivo, Hedoc, EMT Kit series
- Restoration Chips I-X (Mindforce)
- Adjusted Restoration Chip (popular mid-level)
- Special tools: H.E.A.R.T., Herb Box
- Economy calculations (hp/pec)
- Cost per heal in PED
- Recommendations by level
2026-02-09 10:36:30 +00:00
LemonNexus b59b016c86 feat(armor): final armor system updates from agent swarm 2026-02-09 10:33:32 +00:00
LemonNexus 5b4a8f07ea feat(armor): add Loot 2.0 decay mechanics to armor_system.py
- 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
2026-02-09 10:32:41 +00:00
LemonNexus ae182f408b feat(armor): implement official decay formula (VU 15.15)
- Formula: Decay = damage * 0.05 * (1 - durability/100000)
- Added armor_decay.py with complete calculation module
- Database of 30+ armors with durability values
- Economy comparison: Ghost (20.41) → Perseus L (23.53) hp/pec
- Example: 15 dmg on Ghost = 0.00735 PED decay
2026-02-09 10:27:05 +00:00
LemonNexus 08aec368a9 docs: add official armor guide from PlanetCalypsoForum 2020 edition
- Loot 2.0 armor changes (June 2017)
- Correct decay mechanics (plate/armor independent)
- Armor progression guide (Gremlin → Ghost → Adj Nemesis)
- 20 hp/pec base economy standard
- Damage absorption flow and formulas
2026-02-09 10:21:57 +00:00
LemonNexus d5ddb0deb7 fix(attachments): add default value for attachment_type to fix dataclass init error 2026-02-09 09:34:01 +00:00
LemonNexus d24d5e149e feat(swarm): Agent swarm - Loadout Manager v2.0, Armor Decay, Attachments
- Loadout Manager v2.0 with full Nexus API integration (3,099 weapons, 1,985 armors)
- Attachment system: Amplifiers, Scopes, Absorbers, Armor Platings
- Weapon/Armor/Attachment selectors with real data
- Armor decay tracking when hit (cost added to HUD)
- Complete cost calculations (weapon + armor + attachments + healing)
- NEW: ui/attachment_selector.py standalone module
- Updated core/nexus_api.py with decay fields
- DPP display in HUD overlay
2026-02-09 09:28:41 +00:00
LemonNexus 32e095350b feat(attachments): add attachment system and DPP display
- 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
2026-02-09 09:15:03 +00:00
LemonNexus 6130cfcd28 feat(api): complete Entropia Nexus API with all endpoints
- Weapons: 3,099 items
- Armors: 1,985 items
- Finders: 106 items
- Excavators: Available via get_all_excavators()
- Mobs: 817 creatures with HP/damage stats
- Data classes: WeaponStats, ArmorStats, FinderStats, ExcavatorStats, MobStats
- Sync API for simpler GUI integration
- Full caching support
2026-02-08 23:07:51 +00:00
LemonNexus d07c43ce97 feat(api): full Entropia Nexus API integration
- 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
2026-02-08 23:02:53 +00:00
LemonNexus 08e08164e0 feat(api): complete Entropia Nexus API implementation
- 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.
2026-02-08 22:53:28 +00:00
LemonNexus 510deb04e7 fix(log_watcher): update loot pattern for English format
- Match [System]: with optional colon
- Match item names with optional brackets [Shrapnel]
- Fixes loot not being detected in user's log format
2026-02-08 22:22:08 +00:00
LemonNexus a99bccbc11 fix(nexus_api): correct DPP calculation formula and mock data values
- DPP was calculating damage per PED instead of per PEC (100x error)
- Fixed Sollomate Opalo DPP: 3.70 → 3.33
- Added pytest.ini with asyncio configuration
- Tests now pass correctly
2026-02-08 21:13:56 +00:00
LemonNexus 97b9403b11 feat(phase2): Complete Phase 2 Integration - Bug fixes: SimpleCache self._timestamps typo, MOCK_TOOLS key typo. Agent-swarm UI: main_window, hud_overlay, loadout_manager. Nexus API with mock data. All tests passing. 2026-02-08 21:07:47 +00:00
LemonNexus 77d8e808fb feat(globals): add personal global detection with PLAYER_NAME setting
- Add PLAYER_NAME setting to .env.example for avatar name configuration
- Add personal_global patterns for Swedish and English:
  - EN: '[Globals] Player killed a creature (Creature) for X PED'
  - SV: '[Globala] Player dödade ett kreatur (Creature) med X PED'
- Distinguish personal globals from other players' globals
- Show 🎉🎉🎉 YOUR GLOBAL notification with creature name
- Track personal_globals separately in session summary

Fixes #42 - Users can now see when THEY global vs others.
2026-02-08 18:23:35 +00:00
LemonNexus 06a95f56f4 feat(enhancer): add broken enhancer tracking
- Add pattern for broken enhancers: 'Your enhancer X on your Y broke'
- Track enhancer breaks with type and weapon info
- Display 💔 ENHANCER BROKEN notifications
- Include enhancers_broken in session summary

Based on user-provided reference code but with cleaner regex pattern.
2026-02-08 18:20:04 +00:00
LemonNexus f957165394 feat(heal): add English self-heal and attribute patterns
- Add English self-heal: 'You healed yourself X points'
- Add English attribute gain: 'Your Agility has improved by X' / 'You gained X Agility'
- Update EVENT_PATTERNS with all language variants
- Add parsing logic for English heal and attribute events

Based on user-provided regex reference code.
2026-02-08 18:18:00 +00:00
LemonNexus b28b3915fd feat(combat): add critical hit tracking and filter Universal Ammo
- Add English critical hit pattern: 'Critical hit - Additional damage! You inflicted X'
- Display 💀 CRITICAL notifications with damage
- Filter out Universal Ammo from loot (converted shrapnel, not real loot)
- Critical hits count toward damage_dealt stats

Fixes loot inflation from shrapnel conversion and tracks critical strikes.
2026-02-08 18:15:00 +00:00
LemonNexus 0f19155dd8 feat(gear): add weapon tier gain tracking
- Add English tier pattern: 'Your Weapon has reached tier X'
- Track weapon tier progression in real-time
- Display ⬆️ TIER UP notifications
- Include weapon_tiers in session summary

Gear progression now tracked alongside skills and loot.
2026-02-08 18:12:41 +00:00
LemonNexus 555bea7c33 feat(skills): add skill gains and level up tracking
- Fix skill pattern: 'You have gained' (not just 'You gained')
- Add level_up pattern: 'You have advanced to level X in Skill'
- Track skill experience gains in real-time
- Display 🎉 LEVEL UP notifications
- Include level_ups in session summary
- Add level_up event subscription

Skill progression now tracked alongside combat and loot events.
2026-02-08 18:11:33 +00:00
LemonNexus e3f3a595fb feat(combat): add damage tracking and combat events
- Add English damage taken pattern: 'You took X points of damage'
- Add damage_dealt, damage_taken, evade subscriptions in main.py
- Update evade pattern for 'The target Evaded your attack' and 'The attack missed you'
- Show combat stats in session summary
- Display real-time damage dealt/taken/evade events

Combat events now tracked alongside loot for complete hunting analytics.
2026-02-08 18:07:06 +00:00
LemonNexus bd506e53c2 fix(logs): update English patterns for actual game output format
- English loot uses parentheses: 'x (2)' not 'x 2'
- Add English damage pattern: 'You inflicted X points of damage'
- Support both Swedish and English damage dealt events
- Fix empty bracket pattern: [System] [] Message

Tested with real log output showing English client format.
2026-02-08 17:54:48 +00:00
LemonNexus c511ff2042 feat(logs): add Swedish language support from real game logs
- Add Swedish regex patterns based on real chat.log from user session
- Support loot, globals, skills, damage, healing, weapon tier
- Add real-chat-sample.log for testing (14 events parsed)
- LogWatcher now parses Swedish game client output correctly
2026-02-08 17:30:31 +00:00
LemonNexus dfe4e8125f feat: add gear management + Windows testing guide
- Fix terminology: Projects (activities) vs Sessions (gameplay)
- Add EntropiaNexusAPI integration for weapon/armor/tool stats
- Implement GearLoadout class for equipment management
- Calculate hunting/mining costs per hour
- Add DPP (Damage Per PEC) efficiency tracking
- Create comprehensive WINDOWS_TESTING_GUIDE.md
- Document live game testing scenarios
- Explain ROI calculations and data model

Ready for Windows PC live testing with game client.
2026-02-08 17:17:37 +00:00
LemonNexus a516ff4d0c fix(db): correct SQL comment syntax for SQLite compatibility
- Replace Python-style # comments with SQL-standard -- comments
- SQLite does not recognize # as comment character
- Fixes database initialization failure on first run

Test: Database now initializes successfully.
2026-02-08 17:06:45 +00:00
LemonNexus 4efbf39e7e feat(core): implement LogWatcher with Observer Pattern
- Create LogWatcher using Observer Pattern for loose coupling
- Implement compiled regex patterns for EU chat.log parsing:
  - Global/HoF detection
  - Regular loot parsing
  - Skill gain tracking
  - Weapon decay monitoring
- Add async polling loop (1s interval for 60+ FPS compliance)
- Implement MockLogGenerator for testing
- Efficient file seeking (only reads new lines)
- Event types: global, hof, loot, skill, decay, kill, enhancer_break

Performance optimized: minimal CPU, non-blocking async.
2026-02-08 16:56:49 +00:00
LemonNexus 28b8921efa feat(core): implement ProjectManager with Data Principle
- Create ProjectManager class enforcing Data Principle
- Implement ProjectData, SessionData, LootEvent dataclasses
- Add create_project, load_project, archive_project methods
- Implement session lifecycle (start_session, end_session)
- Add loot recording with auto-screenshot trigger (>50 PED)
- Include analytics: get_project_summary, compare_to_historical
- All PED calculations use Decimal for precision (Rule #4)

Every session is a Project: auto-saved, archivable, comparable.
2026-02-08 16:56:40 +00:00
LemonNexus b47ddbec2e feat(db): initialize SQLite schema and DatabaseManager
- Create schema.sql with Data Principle support (projects, sessions, loot)
- Implement DatabaseManager with connection pooling and WAL mode
- Add Decimal adapter for PED/PEC precision (Rule #4)
- Enable foreign keys and performance optimizations (Rule #3)
- Add backup functionality for data safety

Database supports project archiving, session tracking, and
historical data comparison per Data Principle.
2026-02-08 16:56:32 +00:00