FIXES:
1. Changed from re.search (finds first) to re.finditer (finds ALL)
- Now extracts all skills visible in the skills window
- Not just the first skill
2. Added category name cleaning
- Removes: Attributes, Combat, Design, Construction, etc.
- Prevents 'Attributes Laser Weaponry Technology' issues
- Now correctly extracts just 'Laser Weaponry Technology'
3. Normalizes whitespace after removing categories
- Joins all text into single space-separated string
- Helps with multi-line skill parsing
4. Added validation for skill name length
- Must be more than 2 characters
- Filters out false positives
ABOUT YOUR FEATURE REQUESTS:
Multi-Page Scanning:
- To scan all pages automatically would require:
1. Detect the skills window is open
2. Click the 'next page' button automatically
3. Wait for page transition
4. Repeat until last page (detect via page counter)
5. This requires UI automation (pyautogui)
6. Risk: Could interfere with gameplay
Progress Bar Detection:
- The green bars represent % progress to next level
- To measure them would require:
1. Image processing (OpenCV) to detect bar length
2. Comparing green pixels to total bar width
3. Converting to percentage
4. This is complex and computationally expensive
5. Alternative: Track skill gains via chat.log instead
RECOMMENDATION:
For tracking skill progress precisely, the best approach is:
1. Use chat.log parsing (already implemented)
2. It catches every skill gain with exact values
3. No OCR needed - 100% accurate
4. Works in background automatically
FIXES:
1. Added 'Arch Master' to the list of multi-word ranks
- Multi-word ranks are now matched first to prevent partial matches
- Changed rank matching order: ['Arch Master', 'Grand Master'] + single ranks
- This fixes 'Laser Weaponry Technology Arch' being parsed incorrectly
- Now correctly parses as: 'Laser Weaponry Technology', 'Arch Master', 8805
2. Added 'Reset Data' button to Skill Scanner plugin
- Red button next to 'Scan Skills Window'
- Shows confirmation dialog before clearing
- Clears: skills_data, skill_gains, and the UI tables
- Also clears the data file (skill_tracker.json)
3. Clean skill names by removing 'Skill' prefix
- OCR sometimes reads 'Skill Laser Weaponry Technology'
- Now strips 'Skill' or 'SKILL' prefix from skill names
4. Updated both Skill Scanner and Game Reader Test plugins
- Both now use the same improved parsing logic
- Both handle multi-word ranks correctly
The previous parser was too simple and couldn't handle the merged text
from OCR on the skills window.
IMPROVEMENTS:
1. Clean up common headers and category names from OCR text
2. Better regex pattern that handles merged text
3. Alternative parser as fallback for heavily merged text
4. Debug logging to show parsed skills
5. Validation to filter out bad matches
PARSING LOGIC:
- Finds pattern: SkillName Rank Points
- Handles multi-word skill names (e.g., 'Combat Reflexes')
- Recognizes all EU skill ranks (Newbie through Awesome)
- Validates points are reasonable numbers
This should correctly parse skills like:
Aim Amazing 5524
Combat Reflexes Incredible 5991
Handgun Grand Master 8621