Developer and copyright owner: WiNiFiX
Project started in: January 2016
Project considered complete and ready for beta testing on: 2016.07.29
Last Readme Update: 2016.07.30
Note: This project will be getting delayed updates from 01 Aug 2016 for at least 1 month (from myself)
However Xcesius will be available on Discord should you have any queries during this time.
Latest Build:
For those of you whom don't know how to compile the source and run it you can download this version here then unzip the
"PixelMagic-master.zip" file and look in the "PixelMagic-master\PixelMagic\Builds" folder and run
the application "PixelMagic.exe"
Sample Rotations:
For a good working sample rotation (with Legion support) look at the DKUnholy.cs rotation file.
For a sample rotation which shows you how to create custom configuration screens for your rotation look at the Warrior.cs
rotation file.
Website for FAQ: here
Official Discord: here
Additional Sample Rotations: here
Instructions on how to use / test / build this version are on Discord along with support
Xcesius Rotations: here
Xcesius has been assisting with testing the rotations and developing his own custom ones, see the above GitHub for samples
Note: he will only update rotations in that folder, not the bot itself
Currently supports WoW Versions
- Warlords of Dreanor
- Legion
Sample screenshots
Sample ingame screenshot of the addon in action
Sample recount from Unholy DK in Legion
Sample Keybindings in-game (for Unholy DeathKnight)
How to setup your spellbook (sample for basic Unholy DeathKnight)
License Agreement
The software is provided "as is", without warranty of any kind, express or implied, including
but not limited to the warranties of merchantability, fitness for a particular purpose and
noninfringement. In no event shall the authors or copyright holders be liable for any claim,
damages or other liability, whether in an action of contract, tort or otherwise, arising from,
out of or in connection with the software or the use or other dealings in the software.
Anyone using / copying any part of the software must include this license
Icon backlink: HADezign
Supported Commands in combat routines
Returns true / false
- WoW.HasTarget
- WoW.PlayerIsCasting
- WoW.TargetIsCasting
- WoW.TargetIsVisible
- WoW.TargetIsFriend
- WoW.TargetIsEnemy
- WoW.IsSpellOnCooldown(string spellBookSpellName)
- WoW.IsSpellInRange(string spellBookSpellName)
- WoW.CanCast(string spellBookSpellName, ...)
- WoW.HasBuff(string buffName)
- WoW.HasDebuff(string debuffName)
Returns int
- WoW.CurrentRunes;
- WoW.CurrentComboPoints;
- WoW.CurrentSoulShards;
- WoW.CurrentHolyPower;
- WoW.HealthPercent;
- WoW.TargetHealthPercent;
- WoW.Power;
- WoW.Focus;
- WoW.Mana;
- WoW.Energy;
- WoW.Rage;
- WoW.Fury;
- WoW.RunicPower;
- WoW.HasFocus;
- WoW.GetBuffStacks(string auraName);
- WoW.GetDebuffTimeRemaining(string debuffName);
- WoW.GetDebuffStacks(string debuffName);
- WoW.GetSpellCharges(string spellName);
Returns void
- WoW.CastSpellByName(string spellBookSpellName)
- Log.Write(string message, System.Drawing.Color c)
- WoW.SendKeyAtLocation(Keys key, int x, int y)
- WoW.SendMacro(string macro)
- WoW.KeyDown(Keys Key) // Make key a configurable setting !!!
- WoW.KeyUp(Keys Key) // Make key a configurable setting !!!
- WoW.KeyPressRelease(Keys Key) // Make key a configurable setting !!!
Rotation Types
- combatRoutine.Type = RotationType.SingleTarget or RotationType.AOE or RotationType.SingleTargetCleave
Sample Combat Routine
// winifix@gmail.com
// ReSharper disable UnusedMember.Global
// ReSharper disable ConvertPropertyToExpressionBody
using PixelMagic.Helpers;
using System.Drawing;
using System.Threading;
using System.Windows.Forms;
namespace PixelMagic.Rotation
{
public class DKUnholy : CombatRoutine
{
public override string Name
{
get
{
return "DK Unholy Rotation";
}
}
public override string Class
{
get
{
return "Deathknight";
}
}
public override void Initialize()
{
Log.Write("Welcome to DK Unholy", Color.Green);
}
public override void Stop()
{
}
public override void Pulse() // Updated for Legion (tested and working for single target)
{
if (combatRoutine.Type == RotationType.SingleTarget) // Do Single Target Stuff here
{
if (WoW.HasTarget && WoW.TargetIsEnemy)
{
if (!WoW.HasDebuff("Virulent Plague") && WoW.CurrentRunes >= 1 && WoW.CanCast("Outbreak", true, false, true, false, true))
{
WoW.CastSpellByName("Outbreak");
}
if (WoW.CanCast("Dark Transformation", true, true, true, false, true))
{
WoW.CastSpellByName("Dark Transformation");
}
if ((WoW.CanCast("Death Coil", true, true, false, false, true) && (WoW.RunicPower >= 80)) ||
(WoW.HasBuff("Sudden Doom") && WoW.IsSpellOnCooldown("Dark Arbiter")))
{
WoW.CastSpellByName("Death Coil");
}
if (WoW.CanCast("Festering Strike", true, true, true, false, true) && WoW.GetDebuffStacks("Festering Wound") <= 4)
{
WoW.CastSpellByName("Festering Strike");
}
if (WoW.CanCast("Clawing Shadows", true, true, false, false, true) && WoW.CurrentRunes >= 3)
{
WoW.CastSpellByName("Clawing Shadows");
}
}
}
if (combatRoutine.Type == RotationType.AOE)
{
// Do AOE stuff here
}
if (combatRoutine.Type == RotationType.SingleTargetCleave)
{
// Do Single Target Cleave stuff here if applicable else ignore this one
}
}
public override Form SettingsForm { get; set; }
}
}
/*
[AddonDetails.db]
AddonAuthor=ThomasTrainWoop
AddonName=Engine
WoWVersion=Legion - 70000
[SpellBook.db]
Spell,85948,Festering Strike,D1
Spell,77575,Outbreak,D2
Spell,207311,Clawing Shadows,D3
Spell,47541,Death Coil,D4
Spell,194918,Blighted Rune Weapon,D5
Spell,63560,Dark Transformation,D6
Spell,207349,Dark Arbiter,Q
Aura,81340,Sudden Doom
Aura,194310,Festering Wound
Aura,191587,Virulent Plague
*/