forked from m0rg/RKMacros
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathRKDruid.mac
166 lines (124 loc) · 5.44 KB
/
RKDruid.mac
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
#Event HOT_Landed_Self "#*#hot landed self message#*#"
#Event HOT_Landed "#1#'s hot landed message"
#Event HOT_Worn_off_Self "#*#hot wore off self message#*#"
#Event HOT_Worn_off "hot wore off message #1#."
#Event SnareImmune "#*#Your target is immune to changes in its run speed."
#include RKBase.inc
#include RKCasterBase.inc
#include RKHealerBase.inc
Sub Main
/call Init_RKBase
/call AddToArray "CombatActionSubs" "DruidCombat"
/call Init_RKCasterBase
/call Init_RKHealerBase
| *** VARIABLE DECLARATIONS
/varset HealMode FALSE
/varset InCombatStickToCommander TRUE
/declare ShouldSnare bool outer TRUE
/varset UpperAggroThreshold 100
/varset SpellMemSlot 10
/varset HealSpell Lunasoothe Rk. II
/varset TankHealThreshold 60
/varset SingleTargetHealThreshold 60
/varset EmergencyHealSpell Lunasoothe Rk. II
/varset EmergencyHealThreshold 50
/varset GroupHeal Lunasoothe Rk. II
/varset GroupHealThreshold 75
/varset EmergencyGroupHeal Survival of the Serendipitous Rk. III
/varset EmergencyGroupHealThreshold 90
/call AddToArray "InvisModeSubs" "CastGroupInvis"
/call AddToArray "NonCombatSubs" "DruidNonCombat"
/call AddToArray "NonCombatSubs" "CheckCheetah"
/call AddToArray "PreTargetAcquisitionSubs" "CheckCheetah"
/call AddToArray "DefensiveActionSubs" "ExecuteDefensiveActions"
/call AddToArray "BurnCombatActionSubs" "DruidBurnActions"
|/call AddToArray "DetrimentalSpells" "Dichotomic Winds"
/call AddToArray "DetrimentalSpells" "Nature's Fiery Wrath Rk. II"
/call AddToArray "DetrimentalSpells" "Anabatic Roar Rk. II"
/call AddToArray "DetrimentalSpells" "Remote Sunflash Rk. III"
/call AddToArray "DetrimentalSpells" "Blizard Breath Rk. II"
/call AddToArray "DetrimentalSpells" "Sunfire Blessing Rk. II"
/call AddToArray "CombatTankBuffs" "Pellicle of the Reptile Rk. II"
/call AddToArray "NonCombatSelfBuffs" "Legacy of Daggerspurs Rk. II"
/call AddToArray "NonCombatSelfBuffs" "Mystical Ways Rk. III"
/call AddToArray "NonCombatSelfBuffs" "Shieldstone Blessing Rk. II"
/call AddToArrayWithUniqueName "NonCombatSelfBuffs" "Copsetender's Unity Rk. II" "Daggerspur Coat Rk. II"
/call AddToArrayWithUniqueName "NonCombatSelfBuffs" "Copsetender's Unity Rk. II" "Mask of the Corpsetender Rk. II"
| *** INITIALIZATION
/echo Starting Box Commander - Druid Macro
| *** MAIN LOOP
:loop
/call Tick
/goto :loop
/return
Sub DruidNonCombat
|/if (!${Me.Buff[Flight of Eagles].ID}) /call RKAACast "Flight of Eagles"
/if (!${Me.Aura.Equal[Frostweave Aura Rk. II]}) /call RKBuff "Frostweave Aura Rk. II" ${Me.ID}
/return FALSE
Sub DruidCombat
/if (${Me.Casting.ID} || ${Me.Moving}) /return FALSE
/if (${SnareMode} && ${ShouldSnare} && !${Target.Buff[Entrap].ID}) /call RKAACast "Entrap"
/if (${Bool[${Me.XTarget[1].ID}]}) {
/call RKCast "Glacial Pillar Rk. II" ${CurrentTargetId}
/if (${Macro.Return}) /return TRUE
}
/call RKAACast "Fire Storm" ${CurrentTargetId}
/if (${Target.PctHPs} < 20) /return FALSE
/if (!${Target.Buff[Fixation of Ro I].ID}) /call RKAACast "Blessing of Ro" ${CurrentTargetId}
/call RKAACast "Storm Strike" ${CurrentTargetId}
/if (${Target.PctHPs} < 50) /return FALSE
/call RKAACast "Peaceful Spirit of the Wood" ${CurrentTargetId}
/call RKAACast "Wrath of the Wild" ${TankId}
/call RKItemSlotCast chest
/if (!${Bool[${Me.Buff[Improved Twincast III]}]}) /call RKCast "Twincast" ${CurrentTargetId}
/return FALSE
Sub DruidBurnActions
/if (!${Me.Buff[Twincast].ID}) /call RKAACast "Improved Twincast"
/call RKAACast "Swarm of Fireflies" ${TankId}
/call RKAACast "Peaceful Convergence of Spirits" ${TankId}
/call RKAACast "Spirit of the Bear" ${TankId}
/if (!${Me.Buff[Spirit of the Black Wolf V].ID}) {
/call RKAACast "Group Spirit of the Black Wolf"
/if (${Macro.Return}) /return TRUE
}
/if (!${Me.Buff[Group Spirit of the Black Wolf II].ID}) {
/if (${Me.Mount.ID}) {
/dismount
/delay 1s
}
/call RKAACast "Spirit of the Black Wolf"
/if (${Macro.Return}) /return TRUE
}
/call RKAACast "Season's Wrath" ${CurrentTargetId}
/call RKAACast "Focus of Arcanum"
|/call RKAACast "Fundament: First Spire of Nature"
/alt act 1491
/call RKAACast "Nature's Fury"
/call RKAACast "Nature's Guardian"
/call RKAACast "Spirit of the Bear" ${TankId}
/call RKCast "Dichotomic Winds" ${CurrentTargetId}
/return FALSE
Sub CheckCheetah
/if (${DebugMode}) /echo CheckCheetah
/if (${Me.Buff[Communion of the Cheetah].ID} && ${Me.Buff[Communion of the Cheetah].Duration} > 8) /return FALSE
/call RKAACast "Communion of the Cheetah" ${CurrentTargetId}
/delay 5
/if (${BOTMode} == 1 || ${BOTMode} == 3) /call RKAACast "Innate Camouflage"
/return FALSE
Sub ExecuteDefensiveActions
|/if (${GroupHealthPercentage} != 0 && ${GroupHealthPercentage} < 30) /call RKAACast "Exodus"
/if (${Me.PctHPs} < 15) /call RKAACast "Egress"
/if (${Me.PctHPs} < 50) /call RKAACast "Veil of the Underbrush"
/if (${Me.PctHPs} < 70) /call RKAACast "Protection of Direwood"
/if (${Me.PctHPs} < 90) /call RKAACast "Wrath of the Wild" ${CurrentTargetId}
/return FALSE
Sub CastGroupInvis
/if (!${Me.Buff[Shared Camouflage].ID}) /call RKAACast "Shared Camouflage"
/if (${DebugMode}) /echo Group Invis
/return FALSE
Sub ResetSnareMode
/if (${SnareMode}) /varset ShouldSnare TRUE
/return FALSE
Sub Event_SnareImmune
/varset ShouldSnare FALSE
/return