About This File
🧪 [BETA] Advanced Blood Death Knight Tank 2.0 – Clean AI Movement & Smart Rotation
Author: Calaude
Class: Death Knight – Blood (Tank)
Version: 2.0 BETA (LoS + Debug Build)
Compatibility: WRobot for WoW 3.3.5a (Wrath of the Lich King)
⚠️ This is a BETA release.
While stable in most scenarios, it is still under active testing and optimization.
Please report any issues, stuck behavior, or unexpected AI movements so they can be refined for version 2.1.
🔥 Overview
This fight class is a fully re-engineered Blood DK Tank AI, designed to simulate realistic, intelligent combat behavior.
It features a complete custom movement AI, adaptive decision making, and multi-threaded control logic for smooth, human-like reactions.
Unlike traditional FightClasses, this one runs its own AI movement layer, coordinating with WRobot’s movement manager without conflicting or “fighting” for control.
🧠 Key Features
🧍♂️ Clean Movement AI
-
Fully autonomous positioning system adapted from the Warrior AI project
-
Predictive enemy tracking and movement anticipation using Kalman filtering
-
Intelligent facing, strafing, and backstep control
-
Adaptive hysteresis thresholds that adjust based on FPS and network latency
-
Smooth transitions between AI control and manual player input (WASD detection)
⚔️ Advanced Combat Behavior
-
Rotational logic for tanking: Icy Touch, Plague Strike, Death Strike, Heart Strike, Rune Strike, Blood Boil, Death and Decay
-
Full defensive cooldown usage: Icebound Fortitude, Vampiric Blood, Rune Tap, AMS, Bone Shield, Dancing Rune Weapon
-
Intelligent Death Grip logic that detects isolated targets and chooses the best pull strategy
-
Automatic Horn of Winter and buff upkeep
🧭 Smart Targeting & Positioning
-
AI constantly monitors enemy centroid, spread angle, and threat vectors
-
Repositions automatically when enemies surround the player or attack from behind
-
Pathfinding optimizer creates emergency escape paths based on enemy distribution
-
Handles corner cases like teleports, new pulls, and multi-target engagements
🧩 Defensive Awareness
-
“Danger Detection System” continuously evaluates:
-
Enemies casting or attacking from behind
-
Player health and incoming damage density
-
Safe zones for retreat or repositioning
-
-
Automatically engages defensive control when critical conditions are met
⚙️ Technical Highlights
-
Dual-thread architecture:
-
Rotation Thread – executes combat rotation
-
Movement Thread – runs AI movement logic
-
-
Thread-safe with proper locking and graceful shutdown
-
Built-in performance metrics for real-time profiling
-
Debug and diagnostic output for tuning behavior
🧰 Requirements
-
WRobot for WoW 3.3.5a
-
Death Knight level 80 (Blood Spec recommended)
-
Tanking role (defensive gear and presence)
-
English or localized client (spells auto-detected via string names)
🧪 Debug Options
Inside the code you can enable or disable specific debug sections:
private const bool ENABLE_DANGER_LOGS = true; private const bool ENABLE_AI_DEBUG_LOGS = false; private const bool ENABLE_DEATH_GRIP_LOGS = true;
Set these to true
or false
to toggle:
-
DANGER_LOGS
: Prints warnings when surrounded, low HP, or in unsafe conditions -
AI_DEBUG_LOGS
: Detailed positioning and smoothing diagnostics -
DEATH_GRIP_LOGS
: Information about pull and engagement logic
🛠 Installation
-
Download the
.cs
file -
Place it into:
WRobot\FightClass\
What's New in Version 1.0.220 See changelog
Released
Key Updates
- New range-aware danger constants and sticky cluster tracking keep centroid logic focused on reachable threats (Advanced_BloodDK_TANK_220_Optimized_Calaude_DEBUG_LoS.cs:1692, Advanced_BloodDK_TANK_220_Optimized_Calaude_DEBUG_LoS.cs:1743).
- Reworked CalculateThreatWeight to score enemies by aggression, facing, and distance falloff so far targets lose influence (Advanced_BloodDK_TANK_220_Optimized_Calaude_DEBUG_LoS.cs:2270).
- Introduced ClusterSummary plus BuildEnemyClusters to aggregate nearby mobs and compute danger-weighted centroids for movement decisions (Advanced_BloodDK_TANK_220_Optimized_Calaude_DEBUG_LoS.cs:1569, Advanced_BloodDK_TANK_220_Optimized_Calaude_DEBUG_LoS.cs:3005).
- Rebuilt CalculateWeightedCentroid to pick the strongest cluster with hysteresis, fallback to prior centroid, or nearest enemy when data thins—eliminating ping-pong between distant targets (Advanced_BloodDK_TANK_220_Optimized_Calaude_DEBUG_LoS.cs:2970).
- Reset the new cluster state whenever caches are invalidated so fresh pulls start without stale anchors (Advanced_BloodDK_TANK_220_Optimized_Calaude_DEBUG_LoS.cs:2061).
- No automated tests were run; a manual in-game check is needed to confirm smoother target locking.