Files
ThordekkCore/PHASE_6_MASTER_PLAN.md
T
2026-01-20 21:33:16 -03:00

12 KiB

PHASE 6: ADVANCED EVENT FEATURES - MASTER PLAN

Status: 🚀 IN PROGRESS Start Date: 2025-10-07 Estimated Duration: 4-6 weeks Goal: Complete event system with all observers, 90%+ event coverage, production ready


EXECUTIVE SUMMARY

Phase 6 completes the event system by adding 6 additional observers and expanding event coverage from 72% to 90%+. All observers will be production-ready, fully documented, and integrated with the bot AI system.

Success Criteria

✅ 6 new observers implemented (Quest, Movement, Trade, Social, Instance, PvP) ✅ Event coverage increased to 90%+ across all categories ✅ All observers registered in BotAI ✅ Type-safe event data for all event types ✅ Enhanced script hooks where needed ✅ Comprehensive documentation ✅ Build success with no errors ✅ Integration testing complete


PHASE 6 ARCHITECTURE

Observer Hierarchy

BotAI
├── CombatEventObserver (Phase 4) ✅
├── AuraEventObserver (Phase 4) ✅
├── ResourceEventObserver (Phase 4) ✅
├── QuestEventObserver (Phase 6.1) ⏳
├── MovementEventObserver (Phase 6.2) ⏳
├── TradeEventObserver (Phase 6.3) ⏳
├── SocialEventObserver (Phase 6.4) ⏳
├── InstanceEventObserver (Phase 6.5) ⏳
└── PvPEventObserver (Phase 6.6) ⏳

Event Distribution

Observer Events Priority Complexity
Quest 32 Medium Medium
Movement 32 Medium High (pathfinding)
Trade 32 Low Medium
Social 20 Low Low
Instance 25 High High (boss mechanics)
PvP 20 Medium High (tactics)
Total 161 - -

PHASE 6.1: QUEST EVENT OBSERVER

Duration: 3-4 days Complexity: Medium Priority: High (foundation for quest automation)

Deliverables

  1. QuestEventObserver.h (~150 lines)

    • Class definition
    • 15+ event handler method declarations
    • Quest state tracking
  2. QuestEventObserver.cpp (~350 lines)

    • OnEvent() dispatcher
    • 15+ event handlers:
      • Quest acceptance/completion
      • Objective progress
      • Quest rewards
      • Quest chains
      • Daily/weekly resets
  3. QuestEventData structures in BotEventData.h

    struct QuestEventData {
        uint32 questId;
        uint32 objectiveIndex;
        uint32 objectiveCount;
        uint32 objectiveRequired;
        bool isComplete;
        bool isDaily;
        bool isWeekly;
        uint32 rewardItemId;
    };
    
  4. Script Hook Enhancements

    • Ensure all quest hooks dispatch events
    • Add quest objective tracking
    • Add reward selection events

Event Coverage Target

Quest events: 50% → 90%


PHASE 6.2: MOVEMENT EVENT OBSERVER

Duration: 3-4 days Complexity: High (pathfinding integration) Priority: High (critical for bot navigation)

Deliverables

  1. MovementEventObserver.h (~180 lines)

    • Movement state tracking
    • Pathfinding failure detection
    • Stuck detection
    • Teleport handling
  2. MovementEventObserver.cpp (~400 lines)

    • 18+ event handlers:
      • Movement start/stop
      • Position updates
      • Pathfinding success/failure
      • Stuck detection
      • Teleportation
      • Map/zone changes
      • Falling/landing
  3. MovementEventData structures

    struct MovementEventData {
        float fromX, fromY, fromZ;
        float toX, toY, toZ;
        float speed;
        uint32 movementType;
        bool hasPath;
        uint32 pathLength;
        bool isStuck;
    };
    
  4. Integration with LeaderFollowBehavior

    • Movement observer updates follow distance
    • Stuck detection triggers repositioning
    • Pathfinding failures handled gracefully

Event Coverage Target

Movement events: 40% → 85%


PHASE 6.3: TRADE EVENT OBSERVER

Duration: 2-3 days Complexity: Medium Priority: Medium (economy features)

Deliverables

  1. TradeEventObserver.h (~120 lines)

    • Trade state tracking
    • Gold tracking
    • Auction house integration
  2. TradeEventObserver.cpp (~300 lines)

    • 12+ event handlers:
      • Trade initiation/completion
      • Gold changes
      • Auction bids/wins
      • Mail received
      • Item trading
  3. TradeEventData structures

    struct TradeEventData {
        ObjectGuid traderGuid;
        uint32 goldAmount;
        std::vector<uint32> itemIds;
        bool isAuction;
        uint32 auctionId;
        uint32 bidAmount;
    };
    

Event Coverage Target

Trade events: 45% → 80%


PHASE 6.4: SOCIAL EVENT OBSERVER

Duration: 2-3 days Complexity: Low Priority: Low (nice-to-have features)

Deliverables

  1. SocialEventObserver.h (~100 lines)

    • Chat message tracking
    • Emote detection
    • Friend/guild management
  2. SocialEventObserver.cpp (~200 lines)

    • 10+ event handlers:
      • Chat messages (say, yell, whisper, group, guild)
      • Emotes received/sent
      • Friend added/removed
      • Guild invites
  3. SocialEventData structures

    struct SocialEventData {
        std::string message;
        uint32 chatType;
        ObjectGuid senderGuid;
        uint32 emoteId;
        bool isWhisper;
    };
    

Event Coverage Target

Social events: 40% → 75%


PHASE 6.5: INSTANCE EVENT OBSERVER

Duration: 4-5 days Complexity: High (boss mechanics) Priority: High (dungeon/raid AI)

Deliverables

  1. InstanceEventObserver.h (~180 lines)

    • Instance state tracking
    • Boss encounter detection
    • Mechanic tracking
  2. InstanceEventObserver.cpp (~450 lines)

    • 15+ event handlers:
      • Instance enter/exit
      • Boss engage/defeat/wipe
      • Dungeon completion
      • Lockout management
      • Boss mechanics (fire, poison, etc.)
  3. InstanceEventData structures

    struct InstanceEventData {
        uint32 instanceId;
        uint32 mapId;
        uint32 bossId;
        uint32 encounterProgress;
        bool isHeroic;
        bool isMythicPlus;
        uint32 mythicLevel;
        std::vector<uint32> activeMechanics;
    };
    
  4. Integration with CombatEventObserver

    • Boss mechanics trigger defensive behaviors
    • Wipe detection resets combat state

Event Coverage Target

Instance events: 35% → 85%


PHASE 6.6: PVP EVENT OBSERVER

Duration: 3-4 days Complexity: High (tactics) Priority: Medium (PvP features)

Deliverables

  1. PvPEventObserver.h (~150 lines)

    • PvP state tracking
    • Battleground objective tracking
    • Arena round tracking
  2. PvPEventObserver.cpp (~350 lines)

    • 12+ event handlers:
      • PvP flag enable/disable
      • Honorable/dishonorable kills
      • Battleground start/end
      • Arena match start/end
      • Objective capture/loss
  3. PvPEventData structures

    struct PvPEventData {
        uint32 battlegroundId;
        uint32 teamId;
        uint32 score;
        bool isArena;
        uint32 arenaRound;
        uint32 honorGained;
        ObjectGuid victimGuid;
    };
    

Event Coverage Target

PvP events: 30% → 75%


PHASE 6.7: EXPAND EVENT DATA STRUCTURES

Duration: 2 days Complexity: Medium Priority: High (type safety)

Deliverables

  1. Expand BotEventData.h

    • Add all missing event data structures
    • Ensure EventDataVariant includes all types
    • Document each structure
  2. Event Data Structures to Add:

    • EquipmentEventData
    • EnvironmentalEventData
    • LootEventData (enhanced)
    • DeathEventData (enhanced)
    • WarWithinEventData (11.2 features)
  3. Total Event Data Structures: 25+


PHASE 6.8: ENHANCE SCRIPT HOOKS

Duration: 2-3 days Complexity: Medium Priority: Medium

Deliverables

  1. Review PlayerbotEventScripts.cpp

    • Identify missing event dispatches
    • Add missing script hooks where available
    • Enhance existing hooks with event data
  2. Script Hooks to Add/Enhance:

    • Quest objective updates
    • Movement stuck detection
    • Trade window events
    • Emote events
    • Instance mechanics
    • PvP objective events
  3. Target: 70+ script hooks (up from 50)


PHASE 6.9: INTEGRATION TESTING

Duration: 3-4 days Complexity: Medium Priority: Critical

Deliverables

  1. Observer Registration Testing

    • Verify all observers register in BotAI
    • Test priority ordering
    • Verify event filtering
  2. Event Flow Testing

    • Test script → queue → observer flow
    • Verify event data extraction
    • Test error handling
  3. Performance Testing

    • Test with 1000+ bots
    • Verify <2KB memory per bot
    • Verify <0.01ms dispatch time
  4. Integration Testing

    • Test observer interaction with BotAI
    • Test cross-observer coordination
    • Test event history

PHASE 6.10: FINAL DOCUMENTATION

Duration: 2-3 days Complexity: Low Priority: High

Deliverables

  1. PHASE_6_COMPLETE.md (~40 KB)

    • Complete implementation summary
    • All observers documented
    • Event coverage analysis
    • Performance metrics
  2. Updated PHASE_4_EVENT_SYSTEM_USAGE_GUIDE.md

    • Add sections for new observers
    • Update event reference
    • Add new examples
  3. OBSERVER_DEVELOPMENT_GUIDE.md (~20 KB)

    • How to create custom observers
    • Observer best practices
    • Event handler patterns
    • Performance guidelines

IMPLEMENTATION TIMELINE

Week 1: Core Observers

  • Day 1-2: QuestEventObserver
  • Day 3-4: MovementEventObserver
  • Day 5: Integration testing

Week 2: Economy & Social

  • Day 1-2: TradeEventObserver
  • Day 3: SocialEventObserver
  • Day 4-5: Integration testing

Week 3: Advanced Features

  • Day 1-3: InstanceEventObserver
  • Day 4-5: PvPEventObserver

Week 4: Polish & Testing

  • Day 1-2: Expand event data structures
  • Day 3: Enhance script hooks
  • Day 4-5: Integration testing

Week 5: Documentation & Finalization

  • Day 1-2: Final documentation
  • Day 3: Build verification
  • Day 4-5: Final testing and polish

SUCCESS METRICS

Code Metrics

Metric Current Target Status
Observers 3 9 ⏳
Event Handlers 34 90+ ⏳
Event Data Structures 17 25+ ⏳
Script Hooks 50 70+ ⏳
Lines of Code 2,981 5,500+ ⏳

Coverage Metrics

Category Current Target Status
Quest 50% 90% ⏳
Movement 40% 85% ⏳
Trade 45% 80% ⏳
Social 40% 75% ⏳
Instance 35% 85% ⏳
PvP 30% 75% ⏳
Overall 72% 90%+ ⏳

Quality Metrics

  • ✅ Build success (0 errors)
  • ✅ CLAUDE.md compliant
  • ✅ Enterprise-grade code
  • ✅ Complete documentation
  • ✅ Performance targets met

RISK MANAGEMENT

Risk 1: Performance Degradation

Mitigation: Profile after each observer, optimize hot paths

Risk 2: Observer Complexity

Mitigation: Follow existing observer patterns, keep handlers simple

Risk 3: Script Hook Availability

Mitigation: Use existing hooks, document TODOs for missing hooks

Risk 4: Event Data Complexity

Mitigation: Keep data structures simple, use std::any for flexibility


DEPENDENCIES

Required for Phase 6

  • ✅ Phase 4 complete (event system core)
  • ✅ BotAI integration working
  • ✅ Script system integrated

Blocks Future Work

  • Quest Automation (needs QuestEventObserver)
  • Dungeon AI (needs InstanceEventObserver)
  • PvP AI (needs PvPEventObserver)
  • Advanced pathfinding (needs MovementEventObserver)

COMPLIANCE

CLAUDE.md Compliance ✅

  • Module-only implementation
  • No core file modifications
  • Enterprise-grade quality
  • Complete error handling
  • Comprehensive documentation
  • No shortcuts or stubs
  • Performance optimized

Status: 🚀 READY TO START Next Step: Phase 6.1 - QuestEventObserver Estimated Completion: 2025-11-15 (5 weeks)


Document Version: 1.0 Created: 2025-10-07 Author: Claude Code Agent Approved: Ready for implementation