About This File
Advanced Feral Tank Fight Class Documentation
Overview
Advanced Feral Tank Fight Class is a sophisticated automation script for World of Warcraft 3.3.5 (Wrath of the Lich King) designed for Druid tanks in Bear Form. This fight class features advanced movement AI, intelligent threat management, and optimized rotation systems for maximum tanking performance.
Key Features
Advanced Movement System
- Line of Sight Detection: Uses TraceLine raycast technology to detect obstacles and plan optimal paths
- PathFinding Algorithms: Automatically navigates around obstacles using WRobot's pathfinding system
- Smart Positioning: Analyzes enemy positions and maintains optimal tanking stance
- Stuck Detection: Multiple unstuck mechanisms including jumping, strafing, and backtracking
- Manual Control Override: Detects WASD keyboard input and disables bot movement when player takes manual control
Combat Initiation
The fight class uses Faerie Fire (Feral) as the primary combat opener, providing:
- Long-range threat generation (30-yard range)
- Armor reduction debuff application
- Safe engagement without requiring melee range
- Multi-target application during pulls
Intelligent Threat Management
- Mass Taunt Logic: Automatically uses Challenging Roar when 2+ enemies attack party members
- Priority Targeting: Focuses threats based on distance, casting status, and target priority
- Feral Charge Integration: Uses charge abilities for distant threat pickup
- Tab-Targeting: During Berserk, applies Mangle to multiple targets for maximum TPS
Optimized Rotation System
The rotation follows a sophisticated priority system designed for maximum Threat Per Second (TPS):
- Proactive Rage Management: Uses Enrage early when rage drops below 25
- Berserk Activation: Aggressive use in multi-target or high-threat situations
- Interrupt Priority: Bash casting enemies within range
- Maul Queueing: Dynamic rage thresholds based on enemy count and situation
- Mangle Spam: Primary TPS ability with multi-target application during Berserk
- Faerie Fire Multi-dotting: Applies to multiple targets for threat and armor reduction
- Swipe Optimization: Scales usage based on enemy count and rage availability
- Lacerate Management: Maintains 5-stack DoT with refresh timing
- Demoralizing Roar: Applied strategically for damage reduction
Emergency Systems
- Survival Cooldowns: Automatic use of Survival Instincts, Frenzied Regeneration, and Barkskin
- Healer Support: Intelligent Innervate casting on low-mana healers (below 15%)
- Fear Breaking: Uses Berserk to break fear effects
- Health-based Responses: Graduated emergency responses based on health percentage
Party Support Features
- Auto-buffing: Applies Mark/Gift of the Wild and Thorns when out of combat
- Healer Detection: Identifies healers through role assignment or class detection
- Threat Rescue: Immediate response to party members under attack
- Combat Resurrection: Uses Rebirth on fallen party members when appropriate
Technical Specifications
Movement Controller
- PID Control System: Smooth turning with proportional-integral-derivative control
- Collision Avoidance: Multi-step obstacle detection and avoidance
- Path Optimization: Removes unnecessary waypoints from calculated paths
- Movement States: Priority-based system preventing movement conflicts
Cache Systems
- Enemy Cache: Tracks all attackable units within 40 yards
- Party Cache: Maintains list of party members with role information
- Target Cache: Prevents repeated clearing of dead targets
- Loot Cache: Tracks looted corpses to prevent multiple loot attempts
Performance Optimizations
- Timer-based Updates: Prevents excessive calculations with intelligent timing
- LUA Integration: Uses game's native functions for buff/debuff detection
- Memory Management: Automatic cleanup of outdated cache entries
- Thread Safety: Lock-based synchronization for movement operations
Configuration and Usage
Installation
- Place the fight class file in your WRobot FightClass directory
- Select "Advanced Feral Tank" from the fight class dropdown
- Ensure your character is a Druid with Bear Form available
Combat Behavior
- Pull Initiation: Faerie Fire (Feral) is cast at maximum range to begin combat
- Form Management: Automatically maintains Dire Bear Form or Bear Form
- Positioning: Maintains 1.5-4.5 yard optimal distance from enemies
- Threat Generation: Prioritizes abilities based on enemy count and threat requirements
Manual Override
The fight class detects manual player input through Windows API:
- WASD Detection: Monitors W, A, S, D key presses
- QE Detection: Also monitors Q and E for strafing
- Complete Override: All bot movement stops when manual input detected
- Spell Casting Continues: Rotation continues even during manual movement
Targeting Logic
Auto-targeting prioritizes enemies based on:
- Enemies attacking the player (200 points)
- Enemies attacking party members (150 points + healer bonus)
- Casting enemies (80 points)
- Elite enemies (60 points)
- Higher level enemies (30 points)
- Current target bonus (25 points)
Advanced Features
Line of Sight System
- TraceLine Integration: Uses WRobot's collision detection
- Obstacle Classification: Categorizes obstacles as jumpable, strafeable, or requiring detour
- Alternative Path Generation: Creates waypoint sequences around obstacles
- Path Validation: Verifies each waypoint for accessibility
Unstuck Mechanisms
Progressive unstuck system with escalating responses:
- Jump: Simple vertical movement for small obstacles
- Strafe + Jump: Combination movement for medium obstacles
- Backtrack: Returns to last known good position for major obstacles
Smart Positioning Analysis
- Enemy Centroid Calculation: Weighted center point of all enemies
- Spread Analysis: Detects when enemies are too dispersed
- Behind Detection: Identifies enemies attacking from rear
- Distance Optimization: Maintains ideal tanking range automatically
Troubleshooting
Common Issues
- Movement Conflicts: Ensure no other movement addons are active
- API Errors: Windows API detection may fail on some systems (fallback included)
- Performance Issues: Reduce timer frequencies if experiencing lag
- Form Problems: Verify Bear Form is learned and available
Debug Information
The fight class logs important events:
- Movement state changes
- Threat management actions
- Emergency ability usage
- Auto-targeting decisions
- Manual control detection
Compatibility
- WRobot Version: Compatible with current WRobot releases
- WoW Version: Designed for 3.3.5 (Wrath of the Lich King)
- Hardware Requirements: Windows API requires Windows OS
- Memory Usage: Optimized cache systems minimize memory footprint
Support and Customization
Customizable Parameters
Key values that can be adjusted:
- Timer intervals for different systems
- Distance thresholds for positioning
- Priority scores for threat management
- Rage thresholds for ability usage
Performance Tuning
-
Adjust
objectCacheTimer
(default 100ms) for cache update frequency - Modify movement timer intervals for smoother or more responsive movement
- Tune threat detection sensitivity through score adjustments
This fight class represents a complete tanking solution with professional-grade automation features while maintaining the flexibility for manual override when needed.
What's New in Version 1.0.81 See changelog
Released
Improved HandleEmergency()
HandleEmergency() Function Documentation
Overview
The HandleEmergency()
function is a critical component of the Feral Druid Tank rotation system that manages emergency situations during combat. It handles both self-preservation abilities and party support mechanics, with a primary focus on keeping the tank alive and supporting healers with mana management.
Function Signature
private void HandleEmergency()
Execution Control
The function operates on a timer-based system to prevent spam casting:
-
Timer:
emergencyTimer
with 800ms interval - Early Exit: Returns immediately if timer is not ready
- Reset: Resets timer at start of execution
Core Functionality
1. Healer Support - Innervate Management
The function prioritizes supporting party healers through intelligent Innervate casting:
Healer Detection Methods
Primary Method: Role-based Detection
local healName = '';
local group = {"party1", "party2", "party3", "party4"};
for i = 1, #group do
local isTank, isHeal,_ = UnitGroupRolesAssigned(group[i]);
if isHeal then
healName = UnitName(group[i]);
break;
end
end
Fallback Method: Class-based Detection
- Searches for players with healing classes: Priest, Druid, Shaman, Paladin
- Identifies the healer with lowest mana percentage
Healer Search Process
-
Cache Search: First searches
cachedPartyMembers
for efficiency -
Direct Search: Falls back to
ObjectManager.GetObjectWoWPlayer()
if not found in cache - Validation: Ensures healer is valid, alive, and within 40 yards
Innervate Trigger Conditions
- Healer mana percentage < 15%
- Player is in combat
- Innervate spell is known and available
- Last Innervate wasn't cast recently (prevents spam)
Innervate Execution Process
var currentTarget = ObjectManager.Me.Target;
ObjectManager.Me.Target = healer.Guid;
SpellManager.CastSpellByNameLUA(INNERVATE);
Thread.Sleep(200);
ObjectManager.Me.Target = currentTarget; // Restore original target
2. Self-Preservation Abilities
The function monitors the tank's health percentage and activates defensive cooldowns at specific thresholds:
Critical Health (≤30% HP)
Survival Instincts
- Reduces damage taken by 60% for 12 seconds
- Used as last resort defensive cooldown
- Logs emergency action for debugging
Moderate Health (≤50% HP)
Frenzied Regeneration
- Converts rage into health regeneration
- Provides sustained healing over time
- Complements other defensive abilities
Light Damage (≤60% HP)
Barkskin
- Reduces damage taken by 20%
- No rage cost, relatively short cooldown
- Early intervention defensive measure
Rage Management (≤20 Rage, >80% HP)
Enrage
- Generates rage when not in immediate danger
- Only used when health is high (>80%)
- Ensures rage availability for threat abilities
Technical Implementation Details
Thread Safety
-
Uses
Thread.Sleep(200)
after Innervate to prevent casting conflicts - Saves and restores target to avoid disrupting rotation
Spell Validation
Each spell cast includes validation checks:
if (SpellManager.KnowSpell(SPELL_NAME) && SpellManager.SpellUsableLUA(SPELL_NAME))
Logging Integration
- Emergency actions are logged for monitoring and debugging
- Includes specific information like healer name and mana percentage
Priority System
- Highest: Healer mana support (prevents group wipe)
- High: Critical health situations (≤30% HP)
- Medium: Moderate damage mitigation (≤50-60% HP)
- Low: Rage management when safe (>80% HP)
Integration with Main Rotation
- Called during combat phases only
- Executes after movement and positioning logic
- Runs independently of main spell rotation
- Does not block other rotation components
Error Handling
- Validates all unit references before casting
- Checks spell availability before attempting to cast
- Gracefully handles missing healers or unavailable spells
- Uses safe fallback methods for healer detection
Performance Considerations
- Timer-based execution prevents excessive CPU usage
- Caches party members for efficient lookups
- Minimal LUA calls for optimal performance
- Thread sleep prevents spell queue conflicts