#event xp "#*#you have slain#*#"
#event xp "#*#has been slain#*#"
#event xp "#*#party experience#*#"
#event enraged "#*#become ENRAGED#*#"
#include mage_routines.inc
#include spell_routines.inc
sub main
/plugin mq2melee
/if (${Me.State.Equal[SIT]}) /stand
/declare Healer string outer HealerNameHere
/declare HomeXLoc int outer ${Me.X}
/declare HomeYLoc int outer ${Me.Y}
/declare ExtraTarget int outer 0
/declare AskBuffs int outer 0
/declare Furious int outer 0
/declare VortexTimer timer outer 5s
/declare enraged int outer 0
/declare Enrage int outer 0
/declare AggroRadius int outer 30
/fs You can /varset AggroRadius ## to change the aggro radius is currently set at ${AggroRadius} units.
:Loop
/if (!${SpawnCount[npc radius ${AggroRadius}]} && !${AskBuffs}) /call checkbuffs
/if (${SpawnCount[npc radius ${AggroRadius}]}>=1) /call engage
/doevents
/goto :Loop
/return
Sub ReturnHome
/if (${SpawnCount[npc radius ${AggroRadius} zradius 20]}>=1) /return
:returnhome
/if (${Me.State.Equal[SIT]}) /stand
/face fast nolook loc ${HomeYLoc},${HomeXLoc}
/if (${Math.Distance[${HomeYLoc},${HomeXLoc}]}>10) /nomodkey /keypress forward hold
/if (${Math.Distance[${HomeYLoc},${HomeXLoc}]}<=10) {
/nomodkey /keypress back
/return
}
/goto :returnhome
/return
sub event_xp
/attack off
/varset AskBuffs 0
/varset ExtraTarget 0
/varset enraged 0
/if (${SpawnCount[npc radius ${AggroRadius} zradius 20]}==0) /call ReturnHome
} else {
/varset ExtraTarget 1
}
/if (${Math.Distance[${Spawn[${Healer} pc].Y},${Spawn[${Healer} pc].X}]}>=${AggroRadius} && !${ExtraTarget}) /call MoveMe "${Spawn[${Healer pc].Y},${Spawn[${Healer} PC].X}
/return
sub event_enraged
/varset enraged 1
/return
sub engage
/if (${ExtraTarget}==0) {
/varset HomeXLoc ${Me.X}
/varset HomeYLoc ${Me.Y}
}
/if (!${Target.ID} || ${Target.Type.Equal[pc]}) /target npc radius ${AggroRadius} zradius 20
/delay 5 ${Target.ID}
/if (!${Target.ID} || ${Target.Type.Equal[PC]}) /return
/if (${Target.Type.NotEqual[PC]} && ${Target.Distance}>${AggroRadius}) {
/target clear
/return
}
/face fast
/killthis
/stick 12 moveback
/delay 2s ${Target.Distance}<=20
/disc Bazu Bellow
/dps reset
/declare thistarget int local ${Target.ID}
:engagewatch
/if (!${Me.Standing}) /stand
/doevents
/if (!${Enraged} && !${Me.Combat}) /attack on
/if (!${Stick.Active}) /stick 12 moveback
/if (${Enraged} && ${Me.Combat}) /attack off
/if (!${VortexTimer} && ${Me.Combat} && ${Target.Distance}<=25 && ${SpawnCount[npc radius ${AggroRadius}]}>=2) /call VortexBlade
/if (${Me.TargetOfTarget.ID}!=${Me.ID} && ${Target.ID}) /doability taunt
/if (${Me.PctHPs}<=15 && !${Enraged} && ${Target.ID} && ${Target.PctHPs}>=40 && !${Furious}) {
/varset Furious 1
/disc Furious Discipline
}
/if (${Target.ID}!=${thistarget}) /return
/if (${Target.Type.Equal[corpse]}) /target clear
/goto :engagewatch
/return
Sub VortexBlade
/if (${Target.Distance}<=25 && !${VortexTimer} && ${SpawnCount[npc radius 45]}>=2) {
/disc vortex blade
/varset VortexTimer 3s
}
/return
sub checkbuffs
/if (${AskBuffs}==1) /return
/if (!${Me.Song[Champion's Aura effect].ID}) {
/delay 1s
/disc Champion's aura
/delay 3s
}
/varset AskBuffs 1
/return
Sub MoveMe(MoveToLoc)
:moveloop
/if (${Me.State.Equal[sit]}) /stand
/face fast nolook loc ${MoveToLoc}
/if (${Math.Distance[${MoveToLoc}]}>2) /nomodkey /keypress forward hold
/if (${Math.Distance[${MoveToLoc}]}<=2) {
/nomodkey /keypress forward
/return
}
/goto :moveloop
/return