Files
ThordekkCore/PHASE_6_MASTER_PLAN.md
T

537 lines
12 KiB
Markdown
Raw Normal View History

2026-01-20 21:33:16 -03:00
# 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
```cpp
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**
```cpp
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**
```cpp
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**
```cpp
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**
```cpp
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**
```cpp
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