537 lines
12 KiB
Markdown
537 lines
12 KiB
Markdown
# 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
|